From 7b7dd8dc1e097893f07223e6ebef80d8cbbff9be Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sat, 23 May 2026 13:07:59 +0200 Subject: [PATCH 01/11] add compat package --- .gitignore | 3 + CMakeLists.txt | 30 +- compat/index.ts | 1 + compat/package.json | 30 + compat/wasm/wllama.js | 8169 +++++++++++++++++++++++++++++ examples/basic/index.html | 9 + llama.cpp | 2 +- scripts/docker-compose.yml | 14 + scripts/generate_wasm_from_cdn.js | 5 + src/utils.ts | 17 + src/wasm-from-cdn.ts | 5 + src/wasm/wllama.wasm | Bin 7414264 -> 7437543 bytes src/wllama.ts | 50 +- src/worker.ts | 46 +- src/workers-code/generated.ts | 2 +- 15 files changed, 8362 insertions(+), 21 deletions(-) create mode 100644 compat/index.ts create mode 100644 compat/package.json create mode 100644 compat/wasm/wllama.js diff --git a/.gitignore b/.gitignore index 890bd429..b1cd22f1 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ node_modules .vscode /cache /build +/build-compat /build-wasm /docs /dist @@ -18,3 +19,5 @@ tmp.patch a.out.js a.out.wasm + +/compat/wasm/*.wasm diff --git a/CMakeLists.txt b/CMakeLists.txt index 06c3ed61..bc5b43dc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,14 +10,10 @@ set(THREADS_PREFER_PTHREAD_FLAG ON) add_compile_options( -O3 -msimd128 -DNDEBUG -flto=full -frtti - -fwasm-exceptions -pthread - -sMEMORY64=1 ) add_link_options( - -sMEMORY64=1 -flto=full - -fwasm-exceptions --no-entry -sEXPORT_ALL=1 -sEXPORT_ES6=0 @@ -33,8 +29,6 @@ add_link_options( -sPTHREAD_POOL_SIZE=Module[\"pthreadPoolSize\"] -sUSE_PTHREADS=1 -pthread - -sJSPI - -sJSPI_EXPORTS=['wllama_start','wllama_action'] -Wl,--wrap,fopen -Wl,--wrap,fclose -Wl,--wrap,fread @@ -42,6 +36,30 @@ add_link_options( -Wl,--wrap,ftell ) +if (WLLAMA_COMPAT) + # no wasm exception (not compatible with asyncify - asyncify is needed for firefox and safari) + # no mem64 (not compatible with safari) + add_compile_options( + -fexceptions + -pthread + ) + add_link_options( + -fexceptions + -sASYNCIFY=1 + ) +else() + add_compile_options( + -sMEMORY64=1 + -fwasm-exceptions + ) + add_link_options( + -sMEMORY64=1 + -fwasm-exceptions + -sJSPI + -sJSPI_EXPORTS=['wllama_start','wllama_action'] + ) +endif() + add_subdirectory(llama.cpp) set(LLAMA_INSTALL_VERSION 0.0.${LLAMA_BUILD_NUMBER}) diff --git a/compat/index.ts b/compat/index.ts new file mode 100644 index 00000000..d35476c4 --- /dev/null +++ b/compat/index.ts @@ -0,0 +1 @@ +// refer to README.md for more diff --git a/compat/package.json b/compat/package.json new file mode 100644 index 00000000..644d05f8 --- /dev/null +++ b/compat/package.json @@ -0,0 +1,30 @@ +{ + "name": "@wllama/wllama-compat", + "version": "3.1.1", + "description": "Optional package providing compatibility with older browsers for @wllama/wllama", + "main": "index.js", + "type": "module", + "scripts": { + "upload": "npm publish --access public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ngxson/wllama.git" + }, + "keywords": [ + "wasm", + "webassembly", + "llama", + "llm", + "ai", + "rag", + "embeddings", + "generation" + ], + "author": "Xuan Son NGUYEN ", + "license": "MIT", + "bugs": { + "url": "https://github.com/ngxson/wllama/issues" + }, + "homepage": "https://github.com/ngxson/wllama#readme" +} diff --git a/compat/wasm/wllama.js b/compat/wasm/wllama.js new file mode 100644 index 00000000..efc88a8a --- /dev/null +++ b/compat/wasm/wllama.js @@ -0,0 +1,8169 @@ +var Module = typeof Module != 'undefined' ? Module : {}; +var ENVIRONMENT_IS_WEB = !!globalThis.window; +var ENVIRONMENT_IS_WORKER = !!globalThis.WorkerGlobalScope; +var ENVIRONMENT_IS_NODE = + globalThis.process?.versions?.node && globalThis.process?.type != 'renderer'; +var ENVIRONMENT_IS_PTHREAD = + ENVIRONMENT_IS_WORKER && self.name?.startsWith('em-pthread'); +if (ENVIRONMENT_IS_NODE) { + var worker_threads = require('worker_threads'); + global.Worker = worker_threads.Worker; + ENVIRONMENT_IS_WORKER = !worker_threads.isMainThread; + ENVIRONMENT_IS_PTHREAD = + ENVIRONMENT_IS_WORKER && worker_threads['workerData'] == 'em-pthread'; +} +var arguments_ = []; +var thisProgram = './this.program'; +var quit_ = (status, toThrow) => { + throw toThrow; +}; +var _scriptName = globalThis.document?.currentScript?.src; +if (typeof __filename != 'undefined') { + _scriptName = __filename; +} else if (ENVIRONMENT_IS_WORKER) { + _scriptName = self.location.href; +} +var scriptDirectory = ''; +function locateFile(path) { + if (Module['locateFile']) { + return Module['locateFile'](path, scriptDirectory); + } + return scriptDirectory + path; +} +var readAsync, readBinary; +if (ENVIRONMENT_IS_NODE) { + var fs = require('fs'); + scriptDirectory = __dirname + '/'; + readBinary = (filename) => { + filename = isFileURI(filename) ? new URL(filename) : filename; + var ret = fs.readFileSync(filename); + return ret; + }; + readAsync = async (filename, binary = true) => { + filename = isFileURI(filename) ? new URL(filename) : filename; + var ret = fs.readFileSync(filename, binary ? undefined : 'utf8'); + return ret; + }; + if (process.argv.length > 1) { + thisProgram = process.argv[1].replace(/\\/g, '/'); + } + arguments_ = process.argv.slice(2); + if (typeof module != 'undefined') { + module['exports'] = Module; + } + quit_ = (status, toThrow) => { + process.exitCode = status; + throw toThrow; + }; +} else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + try { + scriptDirectory = new URL('.', _scriptName).href; + } catch {} + if (!ENVIRONMENT_IS_NODE) { + if (ENVIRONMENT_IS_WORKER) { + readBinary = (url) => { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.responseType = 'arraybuffer'; + xhr.send(null); + return new Uint8Array(xhr.response); + }; + } + readAsync = async (url) => { + if (isFileURI(url)) { + return new Promise((resolve, reject) => { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.responseType = 'arraybuffer'; + xhr.onload = () => { + if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { + resolve(xhr.response); + return; + } + reject(xhr.status); + }; + xhr.onerror = reject; + xhr.send(null); + }); + } + var response = await fetch(url, { credentials: 'same-origin' }); + if (response.ok) { + return response.arrayBuffer(); + } + throw new Error(response.status + ' : ' + response.url); + }; + } +} else { +} +var defaultPrint = console.log.bind(console); +var defaultPrintErr = console.error.bind(console); +if (ENVIRONMENT_IS_NODE) { + var utils = require('util'); + var stringify = (a) => (typeof a == 'object' ? utils.inspect(a) : a); + defaultPrint = (...args) => + fs.writeSync(1, args.map(stringify).join(' ') + '\n'); + defaultPrintErr = (...args) => + fs.writeSync(2, args.map(stringify).join(' ') + '\n'); +} +var out = defaultPrint; +var err = defaultPrintErr; +var wasmBinary; +var wasmModule; +var ABORT = false; +var EXITSTATUS; +function assert(condition, text) { + if (!condition) { + abort(text); + } +} +var isFileURI = (filename) => filename.startsWith('file://'); +function growMemViews() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } +} +if (ENVIRONMENT_IS_NODE && ENVIRONMENT_IS_PTHREAD) { + var parentPort = worker_threads['parentPort']; + parentPort.on('message', (msg) => global.onmessage?.({ data: msg })); + Object.assign(globalThis, { + self: global, + postMessage: (msg) => parentPort['postMessage'](msg), + }); + process.on('uncaughtException', (err) => { + postMessage({ cmd: 'uncaughtException', error: err }); + process.exit(1); + }); +} +var startWorker; +if (ENVIRONMENT_IS_PTHREAD) { + var initializedJS = false; + self.onunhandledrejection = (e) => { + throw e.reason || e; + }; + function handleMessage(e) { + try { + var msgData = e['data']; + var cmd = msgData.cmd; + if (cmd === 'load') { + let messageQueue = []; + self.onmessage = (e) => messageQueue.push(e); + startWorker = () => { + postMessage({ cmd: 'loaded' }); + for (let msg of messageQueue) { + handleMessage(msg); + } + self.onmessage = handleMessage; + }; + for (const handler of msgData.handlers) { + if (!Module[handler] || Module[handler].proxy) { + Module[handler] = (...args) => { + postMessage({ cmd: 'callHandler', handler, args }); + }; + if (handler == 'print') out = Module[handler]; + if (handler == 'printErr') err = Module[handler]; + } + } + wasmMemory = msgData.wasmMemory; + updateMemoryViews(); + wasmModule = msgData.wasmModule; + createWasm(); + run(); + } else if (cmd === 'run') { + establishStackSpace(msgData.pthread_ptr); + __emscripten_thread_init(msgData.pthread_ptr, 0, 0, 1, 0, 0); + PThread.threadInitTLS(); + __emscripten_thread_mailbox_await(msgData.pthread_ptr); + if (!initializedJS) { + initializedJS = true; + } + try { + invokeEntryPoint(msgData.start_routine, msgData.arg); + } catch (ex) { + if (ex != 'unwind') { + throw ex; + } + } + } else if (msgData.target === 'setimmediate') { + } else if (cmd === 'checkMailbox') { + if (initializedJS) { + checkMailbox(); + } + } else if (cmd) { + err(`worker: received unknown command ${cmd}`); + err(msgData); + } + } catch (ex) { + __emscripten_thread_crashed(); + throw ex; + } + } + self.onmessage = handleMessage; +} +var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; +var HEAP64, HEAPU64; +var runtimeInitialized = false; +function updateMemoryViews() { + var b = wasmMemory.buffer; + HEAP8 = new Int8Array(b); + HEAP16 = new Int16Array(b); + HEAPU8 = new Uint8Array(b); + HEAPU16 = new Uint16Array(b); + HEAP32 = new Int32Array(b); + HEAPU32 = new Uint32Array(b); + HEAPF32 = new Float32Array(b); + HEAPF64 = new Float64Array(b); + HEAP64 = new BigInt64Array(b); + HEAPU64 = new BigUint64Array(b); +} +function initMemory() { + if (ENVIRONMENT_IS_PTHREAD) { + return; + } + if (Module['wasmMemory']) { + wasmMemory = Module['wasmMemory']; + } else { + var INITIAL_MEMORY = Module['INITIAL_MEMORY'] || 134217728; + wasmMemory = new WebAssembly.Memory({ + initial: INITIAL_MEMORY / 65536, + maximum: 65536, + shared: true, + }); + } + updateMemoryViews(); +} +function preRun() { + if (Module['preRun']) { + if (typeof Module['preRun'] == 'function') + Module['preRun'] = [Module['preRun']]; + while (Module['preRun'].length) { + addOnPreRun(Module['preRun'].shift()); + } + } + callRuntimeCallbacks(onPreRuns); +} +function initRuntime() { + runtimeInitialized = true; + if (ENVIRONMENT_IS_PTHREAD) return startWorker(); + if (!Module['noFSInit'] && !FS.initialized) FS.init(); + TTY.init(); + wasmExports['dc'](); + FS.ignorePermissions = false; +} +function preMain() {} +function postRun() { + if (ENVIRONMENT_IS_PTHREAD) { + return; + } + if (Module['postRun']) { + if (typeof Module['postRun'] == 'function') + Module['postRun'] = [Module['postRun']]; + while (Module['postRun'].length) { + addOnPostRun(Module['postRun'].shift()); + } + } + callRuntimeCallbacks(onPostRuns); +} +function abort(what) { + Module['onAbort']?.(what); + what = 'Aborted(' + what + ')'; + err(what); + ABORT = true; + what += '. Build with -sASSERTIONS for more info.'; + var e = new WebAssembly.RuntimeError(what); + throw e; +} +var wasmBinaryFile; +function findWasmBinary() { + return locateFile('wllama.wasm'); +} +function getBinarySync(file) { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); + } + if (readBinary) { + return readBinary(file); + } + throw 'both async and sync fetching of the wasm failed'; +} +async function getWasmBinary(binaryFile) { + if (!wasmBinary) { + try { + var response = await readAsync(binaryFile); + return new Uint8Array(response); + } catch {} + } + return getBinarySync(binaryFile); +} +async function instantiateArrayBuffer(binaryFile, imports) { + try { + var binary = await getWasmBinary(binaryFile); + var instance = await WebAssembly.instantiate(binary, imports); + return instance; + } catch (reason) { + err(`failed to asynchronously prepare wasm: ${reason}`); + abort(reason); + } +} +async function instantiateAsync(binary, binaryFile, imports) { + if (!binary && !isFileURI(binaryFile) && !ENVIRONMENT_IS_NODE) { + try { + var response = fetch(binaryFile, { credentials: 'same-origin' }); + var instantiationResult = await WebAssembly.instantiateStreaming( + response, + imports + ); + return instantiationResult; + } catch (reason) { + err(`wasm streaming compile failed: ${reason}`); + err('falling back to ArrayBuffer instantiation'); + } + } + return instantiateArrayBuffer(binaryFile, imports); +} +function getWasmImports() { + assignWasmImports(); + var imports = { a: wasmImports }; + return imports; +} +async function createWasm() { + function receiveInstance(instance, module) { + wasmExports = instance.exports; + wasmExports = Asyncify.instrumentWasmExports(wasmExports); + wasmExports = applySignatureConversions(wasmExports); + registerTLSInit(wasmExports['Tc']); + assignWasmExports(wasmExports); + wasmModule = module; + removeRunDependency('wasm-instantiate'); + return wasmExports; + } + addRunDependency('wasm-instantiate'); + function receiveInstantiationResult(result) { + return receiveInstance(result['instance'], result['module']); + } + var info = getWasmImports(); + if (Module['instantiateWasm']) { + return new Promise((resolve, reject) => { + Module['instantiateWasm'](info, (inst, mod) => { + resolve(receiveInstance(inst, mod)); + }); + }); + } + if (ENVIRONMENT_IS_PTHREAD) { + var instance = new WebAssembly.Instance(wasmModule, getWasmImports()); + return receiveInstance(instance, wasmModule); + } + wasmBinaryFile ??= findWasmBinary(); + var result = await instantiateAsync(wasmBinary, wasmBinaryFile, info); + var exports = receiveInstantiationResult(result); + return exports; +} +class ExitStatus { + name = 'ExitStatus'; + constructor(status) { + this.message = `Program terminated with exit(${status})`; + this.status = status; + } +} +var terminateWorker = (worker) => { + worker.terminate(); + worker.onmessage = (e) => {}; +}; +var cleanupThread = (pthread_ptr) => { + var worker = PThread.pthreads[pthread_ptr]; + PThread.returnWorkerToPool(worker); +}; +var callRuntimeCallbacks = (callbacks) => { + while (callbacks.length > 0) { + callbacks.shift()(Module); + } +}; +var onPreRuns = []; +var addOnPreRun = (cb) => onPreRuns.push(cb); +var runDependencies = 0; +var dependenciesFulfilled = null; +var removeRunDependency = (id) => { + runDependencies--; + Module['monitorRunDependencies']?.(runDependencies); + if (runDependencies == 0) { + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); + } + } +}; +var addRunDependency = (id) => { + runDependencies++; + Module['monitorRunDependencies']?.(runDependencies); +}; +var spawnThread = (threadParams) => { + var worker = PThread.getNewWorker(); + if (!worker) { + return 6; + } + PThread.runningWorkers.push(worker); + PThread.pthreads[threadParams.pthread_ptr] = worker; + worker.pthread_ptr = threadParams.pthread_ptr; + var msg = { + cmd: 'run', + start_routine: threadParams.startRoutine, + arg: threadParams.arg, + pthread_ptr: threadParams.pthread_ptr, + }; + if (ENVIRONMENT_IS_NODE) { + worker.unref(); + } + worker.postMessage(msg, threadParams.transferList); + return 0; +}; +var runtimeKeepaliveCounter = 0; +var keepRuntimeAlive = () => noExitRuntime || runtimeKeepaliveCounter > 0; +var stackSave = () => _emscripten_stack_get_current(); +var stackRestore = (val) => __emscripten_stack_restore(val); +var stackAlloc = (sz) => __emscripten_stack_alloc(sz); +var proxyToMainThread = (funcIndex, emAsmAddr, sync, ...callArgs) => { + var serializedNumCallArgs = callArgs.length * 2; + var sp = stackSave(); + var args = stackAlloc(serializedNumCallArgs * 8); + var b = args >>> 3; + for (var i = 0; i < callArgs.length; i++) { + var arg = callArgs[i]; + if (typeof arg == 'bigint') { + (growMemViews(), HEAP64)[(b + 2 * i) >>> 0] = 1n; + (growMemViews(), HEAP64)[(b + 2 * i + 1) >>> 0] = arg; + } else { + (growMemViews(), HEAP64)[(b + 2 * i) >>> 0] = 0n; + (growMemViews(), HEAPF64)[(b + 2 * i + 1) >>> 0] = arg; + } + } + var rtn = __emscripten_run_js_on_main_thread( + funcIndex, + emAsmAddr, + serializedNumCallArgs, + args, + sync + ); + stackRestore(sp); + return rtn; +}; +function _proc_exit(code) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(0, 0, 1, code); + EXITSTATUS = code; + if (!keepRuntimeAlive()) { + PThread.terminateAllThreads(); + Module['onExit']?.(code); + ABORT = true; + } + quit_(code, new ExitStatus(code)); +} +function exitOnMainThread(returnCode) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(1, 0, 0, returnCode); + _exit(returnCode); +} +var exitJS = (status, implicit) => { + EXITSTATUS = status; + if (ENVIRONMENT_IS_PTHREAD) { + exitOnMainThread(status); + throw 'unwind'; + } + _proc_exit(status); +}; +var _exit = exitJS; +var PThread = { + unusedWorkers: [], + runningWorkers: [], + tlsInitFunctions: [], + pthreads: {}, + init() { + if (!ENVIRONMENT_IS_PTHREAD) { + PThread.initMainThread(); + } + }, + initMainThread() { + var pthreadPoolSize = Module['pthreadPoolSize']; + while (pthreadPoolSize--) { + PThread.allocateUnusedWorker(); + } + addOnPreRun(async () => { + var pthreadPoolReady = PThread.loadWasmModuleToAllWorkers(); + addRunDependency('loading-workers'); + await pthreadPoolReady; + removeRunDependency('loading-workers'); + }); + }, + terminateAllThreads: () => { + for (var worker of PThread.runningWorkers) { + terminateWorker(worker); + } + for (var worker of PThread.unusedWorkers) { + terminateWorker(worker); + } + PThread.unusedWorkers = []; + PThread.runningWorkers = []; + PThread.pthreads = {}; + }, + returnWorkerToPool: (worker) => { + var pthread_ptr = worker.pthread_ptr; + delete PThread.pthreads[pthread_ptr]; + PThread.unusedWorkers.push(worker); + PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1); + worker.pthread_ptr = 0; + __emscripten_thread_free_data(pthread_ptr); + }, + threadInitTLS() { + PThread.tlsInitFunctions.forEach((f) => f()); + }, + loadWasmModuleToWorker: (worker) => + new Promise((onFinishedLoading) => { + worker.onmessage = (e) => { + var d = e['data']; + var cmd = d.cmd; + if (d.targetThread && d.targetThread != _pthread_self()) { + var targetWorker = PThread.pthreads[d.targetThread]; + if (targetWorker) { + targetWorker.postMessage(d, d.transferList); + } else { + err( + `Internal error! Worker sent a message "${cmd}" to target pthread ${d.targetThread}, but that thread no longer exists!` + ); + } + return; + } + if (cmd === 'checkMailbox') { + checkMailbox(); + } else if (cmd === 'spawnThread') { + spawnThread(d); + } else if (cmd === 'cleanupThread') { + callUserCallback(() => cleanupThread(d.thread)); + } else if (cmd === 'loaded') { + worker.loaded = true; + if (ENVIRONMENT_IS_NODE && !worker.pthread_ptr) { + worker.unref(); + } + onFinishedLoading(worker); + } else if (d.target === 'setimmediate') { + worker.postMessage(d); + } else if (cmd === 'uncaughtException') { + worker.onerror(d.error); + } else if (cmd === 'callHandler') { + Module[d.handler](...d.args); + } else if (cmd) { + err(`worker sent an unknown command ${cmd}`); + } + }; + worker.onerror = (e) => { + var message = 'worker sent an error!'; + err(`${message} ${e.filename}:${e.lineno}: ${e.message}`); + throw e; + }; + if (ENVIRONMENT_IS_NODE) { + worker.on('message', (data) => worker.onmessage({ data })); + worker.on('error', (e) => worker.onerror(e)); + } + var handlers = []; + var knownHandlers = ['onExit', 'onAbort', 'print', 'printErr']; + for (var handler of knownHandlers) { + if (Module.propertyIsEnumerable(handler)) { + handlers.push(handler); + } + } + worker.postMessage({ cmd: 'load', handlers, wasmMemory, wasmModule }); + }), + async loadWasmModuleToAllWorkers() { + if (ENVIRONMENT_IS_PTHREAD) { + return; + } + let pthreadPoolReady = Promise.all( + PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker) + ); + return pthreadPoolReady; + }, + allocateUnusedWorker() { + var worker; + var pthreadMainJs = _scriptName; + if (Module['mainScriptUrlOrBlob']) { + pthreadMainJs = Module['mainScriptUrlOrBlob']; + if (typeof pthreadMainJs != 'string') { + pthreadMainJs = URL.createObjectURL(pthreadMainJs); + } + } + worker = new Worker(pthreadMainJs, { + workerData: 'em-pthread', + name: 'em-pthread', + }); + PThread.unusedWorkers.push(worker); + }, + getNewWorker() { + if (PThread.unusedWorkers.length == 0) { + PThread.allocateUnusedWorker(); + PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0]); + } + return PThread.unusedWorkers.pop(); + }, +}; +var onPostRuns = []; +var addOnPostRun = (cb) => onPostRuns.push(cb); +var dynCalls = {}; +var dynCallLegacy = (sig, ptr, args) => { + sig = sig.replace(/p/g, 'i'); + var f = dynCalls[sig]; + return f(ptr, ...args); +}; +var dynCall = (sig, ptr, args = [], promising = false) => { + var rtn = dynCallLegacy(sig, ptr, args); + function convert(rtn) { + return sig[0] == 'p' ? rtn >>> 0 : rtn; + } + return convert(rtn); +}; +function establishStackSpace(pthread_ptr) { + var stackHigh = (growMemViews(), HEAPU32)[((pthread_ptr + 52) >>> 2) >>> 0]; + var stackSize = (growMemViews(), HEAPU32)[((pthread_ptr + 56) >>> 2) >>> 0]; + var stackLow = stackHigh - stackSize; + _emscripten_stack_set_limits(stackHigh, stackLow); + stackRestore(stackHigh); +} +function getValue(ptr, type = 'i8') { + if (type.endsWith('*')) type = '*'; + switch (type) { + case 'i1': + return (growMemViews(), HEAP8)[ptr >>> 0]; + case 'i8': + return (growMemViews(), HEAP8)[ptr >>> 0]; + case 'i16': + return (growMemViews(), HEAP16)[(ptr >>> 1) >>> 0]; + case 'i32': + return (growMemViews(), HEAP32)[(ptr >>> 2) >>> 0]; + case 'i64': + return (growMemViews(), HEAP64)[(ptr >>> 3) >>> 0]; + case 'float': + return (growMemViews(), HEAPF32)[(ptr >>> 2) >>> 0]; + case 'double': + return (growMemViews(), HEAPF64)[(ptr >>> 3) >>> 0]; + case '*': + return (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0]; + default: + abort(`invalid type for getValue: ${type}`); + } +} +var invokeEntryPoint = (ptr, arg) => { + runtimeKeepaliveCounter = 0; + noExitRuntime = 0; + var result = ((a1) => dynCall_ii(ptr, a1))(arg); + function finish(result) { + if (keepRuntimeAlive()) { + EXITSTATUS = result; + return; + } + __emscripten_thread_exit(result); + } + finish(result); +}; +invokeEntryPoint.isAsync = true; +var noExitRuntime = true; +var registerTLSInit = (tlsInitFunc) => + PThread.tlsInitFunctions.push(tlsInitFunc); +function setValue(ptr, value, type = 'i8') { + if (type.endsWith('*')) type = '*'; + switch (type) { + case 'i1': + (growMemViews(), HEAP8)[ptr >>> 0] = value; + break; + case 'i8': + (growMemViews(), HEAP8)[ptr >>> 0] = value; + break; + case 'i16': + (growMemViews(), HEAP16)[(ptr >>> 1) >>> 0] = value; + break; + case 'i32': + (growMemViews(), HEAP32)[(ptr >>> 2) >>> 0] = value; + break; + case 'i64': + (growMemViews(), HEAP64)[(ptr >>> 3) >>> 0] = BigInt(value); + break; + case 'float': + (growMemViews(), HEAPF32)[(ptr >>> 2) >>> 0] = value; + break; + case 'double': + (growMemViews(), HEAPF64)[(ptr >>> 3) >>> 0] = value; + break; + case '*': + (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0] = value; + break; + default: + abort(`invalid type for setValue: ${type}`); + } +} +var wasmMemory; +var INT53_MAX = 9007199254740992; +var INT53_MIN = -9007199254740992; +var bigintToI53Checked = (num) => + num < INT53_MIN || num > INT53_MAX ? NaN : Number(num); +var UTF8Decoder = globalThis.TextDecoder && new TextDecoder(); +var findStringEnd = (heapOrArray, idx, maxBytesToRead, ignoreNul) => { + var maxIdx = idx + maxBytesToRead; + if (ignoreNul) return maxIdx; + while (heapOrArray[idx] && !(idx >= maxIdx)) ++idx; + return idx; +}; +var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead, ignoreNul) => { + idx >>>= 0; + var endPtr = findStringEnd(heapOrArray, idx, maxBytesToRead, ignoreNul); + if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { + return UTF8Decoder.decode( + heapOrArray.buffer instanceof ArrayBuffer + ? heapOrArray.subarray(idx, endPtr) + : heapOrArray.slice(idx, endPtr) + ); + } + var str = ''; + while (idx < endPtr) { + var u0 = heapOrArray[idx++]; + if (!(u0 & 128)) { + str += String.fromCharCode(u0); + continue; + } + var u1 = heapOrArray[idx++] & 63; + if ((u0 & 224) == 192) { + str += String.fromCharCode(((u0 & 31) << 6) | u1); + continue; + } + var u2 = heapOrArray[idx++] & 63; + if ((u0 & 240) == 224) { + u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; + } else { + u0 = + ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heapOrArray[idx++] & 63); + } + if (u0 < 65536) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 65536; + str += String.fromCharCode(55296 | (ch >> 10), 56320 | (ch & 1023)); + } + } + return str; +}; +var UTF8ToString = (ptr, maxBytesToRead, ignoreNul) => { + ptr >>>= 0; + return ptr + ? UTF8ArrayToString( + (growMemViews(), HEAPU8), + ptr, + maxBytesToRead, + ignoreNul + ) + : ''; +}; +function ___assert_fail(condition, filename, line, func) { + condition >>>= 0; + filename >>>= 0; + func >>>= 0; + return abort( + `Assertion failed: ${UTF8ToString(condition)}, at: ` + + [ + filename ? UTF8ToString(filename) : 'unknown filename', + line, + func ? UTF8ToString(func) : 'unknown function', + ] + ); +} +var exceptionCaught = []; +var uncaughtExceptionCount = 0; +function ___cxa_begin_catch(ptr) { + ptr >>>= 0; + var info = new ExceptionInfo(ptr); + if (!info.get_caught()) { + info.set_caught(true); + uncaughtExceptionCount--; + } + info.set_rethrown(false); + exceptionCaught.push(info); + ___cxa_increment_exception_refcount(ptr); + return ___cxa_get_exception_ptr(ptr); +} +function ___cxa_current_primary_exception() { + if (!exceptionCaught.length) { + return 0; + } + var info = exceptionCaught[exceptionCaught.length - 1]; + ___cxa_increment_exception_refcount(info.excPtr); + return info.excPtr; +} +var exceptionLast = 0; +var ___cxa_end_catch = () => { + _setThrew(0, 0); + var info = exceptionCaught.pop(); + ___cxa_decrement_exception_refcount(info.excPtr); + exceptionLast = 0; +}; +class ExceptionInfo { + constructor(excPtr) { + this.excPtr = excPtr; + this.ptr = excPtr - 24; + } + set_type(type) { + (growMemViews(), HEAPU32)[((this.ptr + 4) >>> 2) >>> 0] = type; + } + get_type() { + return (growMemViews(), HEAPU32)[((this.ptr + 4) >>> 2) >>> 0]; + } + set_destructor(destructor) { + (growMemViews(), HEAPU32)[((this.ptr + 8) >>> 2) >>> 0] = destructor; + } + get_destructor() { + return (growMemViews(), HEAPU32)[((this.ptr + 8) >>> 2) >>> 0]; + } + set_caught(caught) { + caught = caught ? 1 : 0; + (growMemViews(), HEAP8)[(this.ptr + 12) >>> 0] = caught; + } + get_caught() { + return (growMemViews(), HEAP8)[(this.ptr + 12) >>> 0] != 0; + } + set_rethrown(rethrown) { + rethrown = rethrown ? 1 : 0; + (growMemViews(), HEAP8)[(this.ptr + 13) >>> 0] = rethrown; + } + get_rethrown() { + return (growMemViews(), HEAP8)[(this.ptr + 13) >>> 0] != 0; + } + init(type, destructor) { + this.set_adjusted_ptr(0); + this.set_type(type); + this.set_destructor(destructor); + } + set_adjusted_ptr(adjustedPtr) { + (growMemViews(), HEAPU32)[((this.ptr + 16) >>> 2) >>> 0] = adjustedPtr; + } + get_adjusted_ptr() { + return (growMemViews(), HEAPU32)[((this.ptr + 16) >>> 2) >>> 0]; + } +} +var setTempRet0 = (val) => __emscripten_tempret_set(val); +var findMatchingCatch = (args) => { + var thrown = exceptionLast; + if (!thrown) { + setTempRet0(0); + return 0; + } + var info = new ExceptionInfo(thrown); + info.set_adjusted_ptr(thrown); + var thrownType = info.get_type(); + if (!thrownType) { + setTempRet0(0); + return thrown; + } + for (var caughtType of args) { + if (caughtType === 0 || caughtType === thrownType) { + break; + } + var adjusted_ptr_addr = info.ptr + 16; + if (___cxa_can_catch(caughtType, thrownType, adjusted_ptr_addr)) { + setTempRet0(caughtType); + return thrown; + } + } + setTempRet0(thrownType); + return thrown; +}; +function ___cxa_find_matching_catch_2() { + return findMatchingCatch([]); +} +function ___cxa_find_matching_catch_3(arg0) { + arg0 >>>= 0; + return findMatchingCatch([arg0]); +} +function ___cxa_find_matching_catch_4(arg0, arg1) { + arg0 >>>= 0; + arg1 >>>= 0; + return findMatchingCatch([arg0, arg1]); +} +function ___cxa_find_matching_catch_7(arg0, arg1, arg2, arg3, arg4) { + arg0 >>>= 0; + arg1 >>>= 0; + arg2 >>>= 0; + arg3 >>>= 0; + arg4 >>>= 0; + return findMatchingCatch([arg0, arg1, arg2, arg3, arg4]); +} +var ___cxa_rethrow = () => { + var info = exceptionCaught.pop(); + if (!info) { + abort('no exception to throw'); + } + var ptr = info.excPtr; + if (!info.get_rethrown()) { + exceptionCaught.push(info); + info.set_rethrown(true); + info.set_caught(false); + uncaughtExceptionCount++; + } + exceptionLast = ptr; + throw exceptionLast; +}; +function ___cxa_rethrow_primary_exception(ptr) { + ptr >>>= 0; + if (!ptr) return; + var info = new ExceptionInfo(ptr); + exceptionCaught.push(info); + info.set_rethrown(true); + ___cxa_rethrow(); +} +function ___cxa_throw(ptr, type, destructor) { + ptr >>>= 0; + type >>>= 0; + destructor >>>= 0; + var info = new ExceptionInfo(ptr); + info.init(type, destructor); + exceptionLast = ptr; + uncaughtExceptionCount++; + throw exceptionLast; +} +var ___cxa_uncaught_exceptions = () => uncaughtExceptionCount; +function pthreadCreateProxied(pthread_ptr, attr, startRoutine, arg) { + if (ENVIRONMENT_IS_PTHREAD) + return proxyToMainThread(2, 0, 1, pthread_ptr, attr, startRoutine, arg); + return ___pthread_create_js(pthread_ptr, attr, startRoutine, arg); +} +var _emscripten_has_threading_support = () => !!globalThis.SharedArrayBuffer; +function ___pthread_create_js(pthread_ptr, attr, startRoutine, arg) { + pthread_ptr >>>= 0; + attr >>>= 0; + startRoutine >>>= 0; + arg >>>= 0; + if (!_emscripten_has_threading_support()) { + return 6; + } + var transferList = []; + var error = 0; + if (ENVIRONMENT_IS_PTHREAD && (transferList.length === 0 || error)) { + return pthreadCreateProxied(pthread_ptr, attr, startRoutine, arg); + } + if (error) return error; + var threadParams = { startRoutine, pthread_ptr, arg, transferList }; + if (ENVIRONMENT_IS_PTHREAD) { + threadParams.cmd = 'spawnThread'; + postMessage(threadParams, transferList); + return 0; + } + return spawnThread(threadParams); +} +function ___resumeException(ptr) { + ptr >>>= 0; + if (!exceptionLast) { + exceptionLast = ptr; + } + throw exceptionLast; +} +var syscallGetVarargI = () => { + var ret = (growMemViews(), HEAP32)[(+SYSCALLS.varargs >>> 2) >>> 0]; + SYSCALLS.varargs += 4; + return ret; +}; +var syscallGetVarargP = syscallGetVarargI; +var PATH = { + isAbs: (path) => path.charAt(0) === '/', + splitPath: (filename) => { + var splitPathRe = + /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1); + }, + normalizeArray: (parts, allowAboveRoot) => { + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === '.') { + parts.splice(i, 1); + } else if (last === '..') { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + if (allowAboveRoot) { + for (; up; up--) { + parts.unshift('..'); + } + } + return parts; + }, + normalize: (path) => { + var isAbsolute = PATH.isAbs(path), + trailingSlash = path.slice(-1) === '/'; + path = PATH.normalizeArray( + path.split('/').filter((p) => !!p), + !isAbsolute + ).join('/'); + if (!path && !isAbsolute) { + path = '.'; + } + if (path && trailingSlash) { + path += '/'; + } + return (isAbsolute ? '/' : '') + path; + }, + dirname: (path) => { + var result = PATH.splitPath(path), + root = result[0], + dir = result[1]; + if (!root && !dir) { + return '.'; + } + if (dir) { + dir = dir.slice(0, -1); + } + return root + dir; + }, + basename: (path) => path && path.match(/([^\/]+|\/)\/*$/)[1], + join: (...paths) => PATH.normalize(paths.join('/')), + join2: (l, r) => PATH.normalize(l + '/' + r), +}; +var initRandomFill = () => { + if (ENVIRONMENT_IS_NODE) { + var nodeCrypto = require('crypto'); + return (view) => nodeCrypto.randomFillSync(view); + } + return (view) => + view.set(crypto.getRandomValues(new Uint8Array(view.byteLength))); +}; +var randomFill = (view) => { + (randomFill = initRandomFill())(view); +}; +var PATH_FS = { + resolve: (...args) => { + var resolvedPath = '', + resolvedAbsolute = false; + for (var i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = i >= 0 ? args[i] : FS.cwd(); + if (typeof path != 'string') { + throw new TypeError('Arguments to path.resolve must be strings'); + } else if (!path) { + return ''; + } + resolvedPath = path + '/' + resolvedPath; + resolvedAbsolute = PATH.isAbs(path); + } + resolvedPath = PATH.normalizeArray( + resolvedPath.split('/').filter((p) => !!p), + !resolvedAbsolute + ).join('/'); + return (resolvedAbsolute ? '/' : '') + resolvedPath || '.'; + }, + relative: (from, to) => { + from = PATH_FS.resolve(from).slice(1); + to = PATH_FS.resolve(to).slice(1); + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== '') break; + } + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== '') break; + } + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + var fromParts = trim(from.split('/')); + var toParts = trim(to.split('/')); + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push('..'); + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + return outputParts.join('/'); + }, +}; +var FS_stdin_getChar_buffer = []; +var lengthBytesUTF8 = (str) => { + var len = 0; + for (var i = 0; i < str.length; ++i) { + var c = str.charCodeAt(i); + if (c <= 127) { + len++; + } else if (c <= 2047) { + len += 2; + } else if (c >= 55296 && c <= 57343) { + len += 4; + ++i; + } else { + len += 3; + } + } + return len; +}; +var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => { + outIdx >>>= 0; + if (!(maxBytesToWrite > 0)) return 0; + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; + for (var i = 0; i < str.length; ++i) { + var u = str.codePointAt(i); + if (u <= 127) { + if (outIdx >= endIdx) break; + heap[outIdx++ >>> 0] = u; + } else if (u <= 2047) { + if (outIdx + 1 >= endIdx) break; + heap[outIdx++ >>> 0] = 192 | (u >> 6); + heap[outIdx++ >>> 0] = 128 | (u & 63); + } else if (u <= 65535) { + if (outIdx + 2 >= endIdx) break; + heap[outIdx++ >>> 0] = 224 | (u >> 12); + heap[outIdx++ >>> 0] = 128 | ((u >> 6) & 63); + heap[outIdx++ >>> 0] = 128 | (u & 63); + } else { + if (outIdx + 3 >= endIdx) break; + heap[outIdx++ >>> 0] = 240 | (u >> 18); + heap[outIdx++ >>> 0] = 128 | ((u >> 12) & 63); + heap[outIdx++ >>> 0] = 128 | ((u >> 6) & 63); + heap[outIdx++ >>> 0] = 128 | (u & 63); + i++; + } + } + heap[outIdx >>> 0] = 0; + return outIdx - startIdx; +}; +var intArrayFromString = (stringy, dontAddNull, length) => { + var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) u8array.length = numBytesWritten; + return u8array; +}; +var FS_stdin_getChar = () => { + if (!FS_stdin_getChar_buffer.length) { + var result = null; + if (ENVIRONMENT_IS_NODE) { + var BUFSIZE = 256; + var buf = Buffer.alloc(BUFSIZE); + var bytesRead = 0; + var fd = process.stdin.fd; + try { + bytesRead = fs.readSync(fd, buf, 0, BUFSIZE); + } catch (e) { + if (e.toString().includes('EOF')) bytesRead = 0; + else throw e; + } + if (bytesRead > 0) { + result = buf.slice(0, bytesRead).toString('utf-8'); + } + } else if (globalThis.window?.prompt) { + result = window.prompt('Input: '); + if (result !== null) { + result += '\n'; + } + } else { + } + if (!result) { + return null; + } + FS_stdin_getChar_buffer = intArrayFromString(result, true); + } + return FS_stdin_getChar_buffer.shift(); +}; +var TTY = { + ttys: [], + init() {}, + shutdown() {}, + register(dev, ops) { + TTY.ttys[dev] = { input: [], output: [], ops }; + FS.registerDevice(dev, TTY.stream_ops); + }, + stream_ops: { + open(stream) { + var tty = TTY.ttys[stream.node.rdev]; + if (!tty) { + throw new FS.ErrnoError(43); + } + stream.tty = tty; + stream.seekable = false; + }, + close(stream) { + stream.tty.ops.fsync(stream.tty); + }, + fsync(stream) { + stream.tty.ops.fsync(stream.tty); + }, + read(stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(60); + } + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = stream.tty.ops.get_char(stream.tty); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.atime = Date.now(); + } + return bytesRead; + }, + write(stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(60); + } + try { + for (var i = 0; i < length; i++) { + stream.tty.ops.put_char(stream.tty, buffer[offset + i]); + } + } catch (e) { + throw new FS.ErrnoError(29); + } + if (length) { + stream.node.mtime = stream.node.ctime = Date.now(); + } + return i; + }, + }, + default_tty_ops: { + get_char(tty) { + return FS_stdin_getChar(); + }, + put_char(tty, val) { + if (val === null || val === 10) { + out(UTF8ArrayToString(tty.output)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + }, + fsync(tty) { + if (tty.output?.length > 0) { + out(UTF8ArrayToString(tty.output)); + tty.output = []; + } + }, + ioctl_tcgets(tty) { + return { + c_iflag: 25856, + c_oflag: 5, + c_cflag: 191, + c_lflag: 35387, + c_cc: [ + 3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, 23, 22, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + }, + ioctl_tcsets(tty, optional_actions, data) { + return 0; + }, + ioctl_tiocgwinsz(tty) { + return [24, 80]; + }, + }, + default_tty1_ops: { + put_char(tty, val) { + if (val === null || val === 10) { + err(UTF8ArrayToString(tty.output)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + }, + fsync(tty) { + if (tty.output?.length > 0) { + err(UTF8ArrayToString(tty.output)); + tty.output = []; + } + }, + }, +}; +var zeroMemory = (ptr, size) => + (growMemViews(), HEAPU8).fill(0, ptr, ptr + size); +var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment; +var mmapAlloc = (size) => { + size = alignMemory(size, 65536); + var ptr = _emscripten_builtin_memalign(65536, size); + if (ptr) zeroMemory(ptr, size); + return ptr; +}; +var MEMFS = { + ops_table: null, + mount(mount) { + return MEMFS.createNode(null, '/', 16895, 0); + }, + createNode(parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + throw new FS.ErrnoError(63); + } + MEMFS.ops_table ||= { + dir: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + lookup: MEMFS.node_ops.lookup, + mknod: MEMFS.node_ops.mknod, + rename: MEMFS.node_ops.rename, + unlink: MEMFS.node_ops.unlink, + rmdir: MEMFS.node_ops.rmdir, + readdir: MEMFS.node_ops.readdir, + symlink: MEMFS.node_ops.symlink, + }, + stream: { llseek: MEMFS.stream_ops.llseek }, + }, + file: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + }, + stream: { + llseek: MEMFS.stream_ops.llseek, + read: MEMFS.stream_ops.read, + write: MEMFS.stream_ops.write, + mmap: MEMFS.stream_ops.mmap, + msync: MEMFS.stream_ops.msync, + }, + }, + link: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + readlink: MEMFS.node_ops.readlink, + }, + stream: {}, + }, + chrdev: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + }, + stream: FS.chrdev_stream_ops, + }, + }; + var node = FS.createNode(parent, name, mode, dev); + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node; + node.stream_ops = MEMFS.ops_table.dir.stream; + node.contents = {}; + } else if (FS.isFile(node.mode)) { + node.node_ops = MEMFS.ops_table.file.node; + node.stream_ops = MEMFS.ops_table.file.stream; + node.usedBytes = 0; + node.contents = null; + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node; + node.stream_ops = MEMFS.ops_table.link.stream; + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node; + node.stream_ops = MEMFS.ops_table.chrdev.stream; + } + node.atime = node.mtime = node.ctime = Date.now(); + if (parent) { + parent.contents[name] = node; + parent.atime = parent.mtime = parent.ctime = node.atime; + } + return node; + }, + getFileDataAsTypedArray(node) { + if (!node.contents) return new Uint8Array(0); + if (node.contents.subarray) + return node.contents.subarray(0, node.usedBytes); + return new Uint8Array(node.contents); + }, + expandFileStorage(node, newCapacity) { + var prevCapacity = node.contents ? node.contents.length : 0; + if (prevCapacity >= newCapacity) return; + var CAPACITY_DOUBLING_MAX = 1024 * 1024; + newCapacity = Math.max( + newCapacity, + (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125)) >>> 0 + ); + if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); + var oldContents = node.contents; + node.contents = new Uint8Array(newCapacity); + if (node.usedBytes > 0) + node.contents.set(oldContents.subarray(0, node.usedBytes), 0); + }, + resizeFileStorage(node, newSize) { + if (node.usedBytes == newSize) return; + if (newSize == 0) { + node.contents = null; + node.usedBytes = 0; + } else { + var oldContents = node.contents; + node.contents = new Uint8Array(newSize); + if (oldContents) { + node.contents.set( + oldContents.subarray(0, Math.min(newSize, node.usedBytes)) + ); + } + node.usedBytes = newSize; + } + }, + node_ops: { + getattr(node) { + var attr = {}; + attr.dev = FS.isChrdev(node.mode) ? node.id : 1; + attr.ino = node.id; + attr.mode = node.mode; + attr.nlink = 1; + attr.uid = 0; + attr.gid = 0; + attr.rdev = node.rdev; + if (FS.isDir(node.mode)) { + attr.size = 4096; + } else if (FS.isFile(node.mode)) { + attr.size = node.usedBytes; + } else if (FS.isLink(node.mode)) { + attr.size = node.link.length; + } else { + attr.size = 0; + } + attr.atime = new Date(node.atime); + attr.mtime = new Date(node.mtime); + attr.ctime = new Date(node.ctime); + attr.blksize = 4096; + attr.blocks = Math.ceil(attr.size / attr.blksize); + return attr; + }, + setattr(node, attr) { + for (const key of ['mode', 'atime', 'mtime', 'ctime']) { + if (attr[key] != null) { + node[key] = attr[key]; + } + } + if (attr.size !== undefined) { + MEMFS.resizeFileStorage(node, attr.size); + } + }, + lookup(parent, name) { + if (!MEMFS.doesNotExistError) { + MEMFS.doesNotExistError = new FS.ErrnoError(44); + MEMFS.doesNotExistError.stack = ''; + } + throw MEMFS.doesNotExistError; + }, + mknod(parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev); + }, + rename(old_node, new_dir, new_name) { + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) {} + if (new_node) { + if (FS.isDir(old_node.mode)) { + for (var i in new_node.contents) { + throw new FS.ErrnoError(55); + } + } + FS.hashRemoveNode(new_node); + } + delete old_node.parent.contents[old_node.name]; + new_dir.contents[new_name] = old_node; + old_node.name = new_name; + new_dir.ctime = + new_dir.mtime = + old_node.parent.ctime = + old_node.parent.mtime = + Date.now(); + }, + unlink(parent, name) { + delete parent.contents[name]; + parent.ctime = parent.mtime = Date.now(); + }, + rmdir(parent, name) { + var node = FS.lookupNode(parent, name); + for (var i in node.contents) { + throw new FS.ErrnoError(55); + } + delete parent.contents[name]; + parent.ctime = parent.mtime = Date.now(); + }, + readdir(node) { + return ['.', '..', ...Object.keys(node.contents)]; + }, + symlink(parent, newname, oldpath) { + var node = MEMFS.createNode(parent, newname, 511 | 40960, 0); + node.link = oldpath; + return node; + }, + readlink(node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(28); + } + return node.link; + }, + }, + stream_ops: { + read(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= stream.node.usedBytes) return 0; + var size = Math.min(stream.node.usedBytes - position, length); + if (size > 8 && contents.subarray) { + buffer.set(contents.subarray(position, position + size), offset); + } else { + for (var i = 0; i < size; i++) + buffer[offset + i] = contents[position + i]; + } + return size; + }, + write(stream, buffer, offset, length, position, canOwn) { + if (buffer.buffer === (growMemViews(), HEAP8).buffer) { + canOwn = false; + } + if (!length) return 0; + var node = stream.node; + node.mtime = node.ctime = Date.now(); + if (buffer.subarray && (!node.contents || node.contents.subarray)) { + if (canOwn) { + node.contents = buffer.subarray(offset, offset + length); + node.usedBytes = length; + return length; + } else if (node.usedBytes === 0 && position === 0) { + node.contents = buffer.slice(offset, offset + length); + node.usedBytes = length; + return length; + } else if (position + length <= node.usedBytes) { + node.contents.set(buffer.subarray(offset, offset + length), position); + return length; + } + } + MEMFS.expandFileStorage(node, position + length); + if (node.contents.subarray && buffer.subarray) { + node.contents.set(buffer.subarray(offset, offset + length), position); + } else { + for (var i = 0; i < length; i++) { + node.contents[position + i] = buffer[offset + i]; + } + } + node.usedBytes = Math.max(node.usedBytes, position + length); + return length; + }, + llseek(stream, offset, whence) { + var position = offset; + if (whence === 1) { + position += stream.position; + } else if (whence === 2) { + if (FS.isFile(stream.node.mode)) { + position += stream.node.usedBytes; + } + } + if (position < 0) { + throw new FS.ErrnoError(28); + } + return position; + }, + mmap(stream, length, position, prot, flags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + var ptr; + var allocated; + var contents = stream.node.contents; + if ( + !(flags & 2) && + contents && + contents.buffer === (growMemViews(), HEAP8).buffer + ) { + allocated = false; + ptr = contents.byteOffset; + } else { + allocated = true; + ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + if (contents) { + if (position > 0 || position + length < contents.length) { + if (contents.subarray) { + contents = contents.subarray(position, position + length); + } else { + contents = Array.prototype.slice.call( + contents, + position, + position + length + ); + } + } + (growMemViews(), HEAP8).set(contents, ptr >>> 0); + } + } + return { ptr, allocated }; + }, + msync(stream, buffer, offset, length, mmapFlags) { + MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); + return 0; + }, + }, +}; +var FS_modeStringToFlags = (str) => { + var flagModes = { + r: 0, + 'r+': 2, + w: 512 | 64 | 1, + 'w+': 512 | 64 | 2, + a: 1024 | 64 | 1, + 'a+': 1024 | 64 | 2, + }; + var flags = flagModes[str]; + if (typeof flags == 'undefined') { + throw new Error(`Unknown file open mode: ${str}`); + } + return flags; +}; +var FS_getMode = (canRead, canWrite) => { + var mode = 0; + if (canRead) mode |= 292 | 73; + if (canWrite) mode |= 146; + return mode; +}; +var asyncLoad = async (url) => { + var arrayBuffer = await readAsync(url); + return new Uint8Array(arrayBuffer); +}; +var FS_createDataFile = (...args) => FS.createDataFile(...args); +var getUniqueRunDependency = (id) => id; +var preloadPlugins = []; +var FS_handledByPreloadPlugin = async (byteArray, fullname) => { + if (typeof Browser != 'undefined') Browser.init(); + for (var plugin of preloadPlugins) { + if (plugin['canHandle'](fullname)) { + return plugin['handle'](byteArray, fullname); + } + } + return byteArray; +}; +var FS_preloadFile = async ( + parent, + name, + url, + canRead, + canWrite, + dontCreateFile, + canOwn, + preFinish +) => { + var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; + var dep = getUniqueRunDependency(`cp ${fullname}`); + addRunDependency(dep); + try { + var byteArray = url; + if (typeof url == 'string') { + byteArray = await asyncLoad(url); + } + byteArray = await FS_handledByPreloadPlugin(byteArray, fullname); + preFinish?.(); + if (!dontCreateFile) { + FS_createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + } + } finally { + removeRunDependency(dep); + } +}; +var FS_createPreloadedFile = ( + parent, + name, + url, + canRead, + canWrite, + onload, + onerror, + dontCreateFile, + canOwn, + preFinish +) => { + FS_preloadFile( + parent, + name, + url, + canRead, + canWrite, + dontCreateFile, + canOwn, + preFinish + ) + .then(onload) + .catch(onerror); +}; +var FS = { + root: null, + mounts: [], + devices: {}, + streams: [], + nextInode: 1, + nameTable: null, + currentPath: '/', + initialized: false, + ignorePermissions: true, + filesystems: null, + syncFSRequests: 0, + readFiles: {}, + ErrnoError: class { + name = 'ErrnoError'; + constructor(errno) { + this.errno = errno; + } + }, + FSStream: class { + shared = {}; + get object() { + return this.node; + } + set object(val) { + this.node = val; + } + get isRead() { + return (this.flags & 2097155) !== 1; + } + get isWrite() { + return (this.flags & 2097155) !== 0; + } + get isAppend() { + return this.flags & 1024; + } + get flags() { + return this.shared.flags; + } + set flags(val) { + this.shared.flags = val; + } + get position() { + return this.shared.position; + } + set position(val) { + this.shared.position = val; + } + }, + FSNode: class { + node_ops = {}; + stream_ops = {}; + readMode = 292 | 73; + writeMode = 146; + mounted = null; + constructor(parent, name, mode, rdev) { + if (!parent) { + parent = this; + } + this.parent = parent; + this.mount = parent.mount; + this.id = FS.nextInode++; + this.name = name; + this.mode = mode; + this.rdev = rdev; + this.atime = this.mtime = this.ctime = Date.now(); + } + get read() { + return (this.mode & this.readMode) === this.readMode; + } + set read(val) { + val ? (this.mode |= this.readMode) : (this.mode &= ~this.readMode); + } + get write() { + return (this.mode & this.writeMode) === this.writeMode; + } + set write(val) { + val ? (this.mode |= this.writeMode) : (this.mode &= ~this.writeMode); + } + get isFolder() { + return FS.isDir(this.mode); + } + get isDevice() { + return FS.isChrdev(this.mode); + } + }, + lookupPath(path, opts = {}) { + if (!path) { + throw new FS.ErrnoError(44); + } + opts.follow_mount ??= true; + if (!PATH.isAbs(path)) { + path = FS.cwd() + '/' + path; + } + linkloop: for (var nlinks = 0; nlinks < 40; nlinks++) { + var parts = path.split('/').filter((p) => !!p); + var current = FS.root; + var current_path = '/'; + for (var i = 0; i < parts.length; i++) { + var islast = i === parts.length - 1; + if (islast && opts.parent) { + break; + } + if (parts[i] === '.') { + continue; + } + if (parts[i] === '..') { + current_path = PATH.dirname(current_path); + if (FS.isRoot(current)) { + path = current_path + '/' + parts.slice(i + 1).join('/'); + nlinks--; + continue linkloop; + } else { + current = current.parent; + } + continue; + } + current_path = PATH.join2(current_path, parts[i]); + try { + current = FS.lookupNode(current, parts[i]); + } catch (e) { + if (e?.errno === 44 && islast && opts.noent_okay) { + return { path: current_path }; + } + throw e; + } + if (FS.isMountpoint(current) && (!islast || opts.follow_mount)) { + current = current.mounted.root; + } + if (FS.isLink(current.mode) && (!islast || opts.follow)) { + if (!current.node_ops.readlink) { + throw new FS.ErrnoError(52); + } + var link = current.node_ops.readlink(current); + if (!PATH.isAbs(link)) { + link = PATH.dirname(current_path) + '/' + link; + } + path = link + '/' + parts.slice(i + 1).join('/'); + continue linkloop; + } + } + return { path: current_path, node: current }; + } + throw new FS.ErrnoError(32); + }, + getPath(node) { + var path; + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint; + if (!path) return mount; + return mount[mount.length - 1] !== '/' + ? `${mount}/${path}` + : mount + path; + } + path = path ? `${node.name}/${path}` : node.name; + node = node.parent; + } + }, + hashName(parentid, name) { + var hash = 0; + for (var i = 0; i < name.length; i++) { + hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; + } + return ((parentid + hash) >>> 0) % FS.nameTable.length; + }, + hashAddNode(node) { + var hash = FS.hashName(node.parent.id, node.name); + node.name_next = FS.nameTable[hash]; + FS.nameTable[hash] = node; + }, + hashRemoveNode(node) { + var hash = FS.hashName(node.parent.id, node.name); + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next; + } else { + var current = FS.nameTable[hash]; + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next; + break; + } + current = current.name_next; + } + } + }, + lookupNode(parent, name) { + var errCode = FS.mayLookup(parent); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + var hash = FS.hashName(parent.id, name); + for (var node = FS.nameTable[hash]; node; node = node.name_next) { + var nodeName = node.name; + if (node.parent.id === parent.id && nodeName === name) { + return node; + } + } + return FS.lookup(parent, name); + }, + createNode(parent, name, mode, rdev) { + var node = new FS.FSNode(parent, name, mode, rdev); + FS.hashAddNode(node); + return node; + }, + destroyNode(node) { + FS.hashRemoveNode(node); + }, + isRoot(node) { + return node === node.parent; + }, + isMountpoint(node) { + return !!node.mounted; + }, + isFile(mode) { + return (mode & 61440) === 32768; + }, + isDir(mode) { + return (mode & 61440) === 16384; + }, + isLink(mode) { + return (mode & 61440) === 40960; + }, + isChrdev(mode) { + return (mode & 61440) === 8192; + }, + isBlkdev(mode) { + return (mode & 61440) === 24576; + }, + isFIFO(mode) { + return (mode & 61440) === 4096; + }, + isSocket(mode) { + return (mode & 49152) === 49152; + }, + flagsToPermissionString(flag) { + var perms = ['r', 'w', 'rw'][flag & 3]; + if (flag & 512) { + perms += 'w'; + } + return perms; + }, + nodePermissions(node, perms) { + if (FS.ignorePermissions) { + return 0; + } + if (perms.includes('r') && !(node.mode & 292)) { + return 2; + } else if (perms.includes('w') && !(node.mode & 146)) { + return 2; + } else if (perms.includes('x') && !(node.mode & 73)) { + return 2; + } + return 0; + }, + mayLookup(dir) { + if (!FS.isDir(dir.mode)) return 54; + var errCode = FS.nodePermissions(dir, 'x'); + if (errCode) return errCode; + if (!dir.node_ops.lookup) return 2; + return 0; + }, + mayCreate(dir, name) { + if (!FS.isDir(dir.mode)) { + return 54; + } + try { + var node = FS.lookupNode(dir, name); + return 20; + } catch (e) {} + return FS.nodePermissions(dir, 'wx'); + }, + mayDelete(dir, name, isdir) { + var node; + try { + node = FS.lookupNode(dir, name); + } catch (e) { + return e.errno; + } + var errCode = FS.nodePermissions(dir, 'wx'); + if (errCode) { + return errCode; + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return 54; + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return 10; + } + } else { + if (FS.isDir(node.mode)) { + return 31; + } + } + return 0; + }, + mayOpen(node, flags) { + if (!node) { + return 44; + } + if (FS.isLink(node.mode)) { + return 32; + } else if (FS.isDir(node.mode)) { + if (FS.flagsToPermissionString(flags) !== 'r' || flags & (512 | 64)) { + return 31; + } + } + return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); + }, + checkOpExists(op, err) { + if (!op) { + throw new FS.ErrnoError(err); + } + return op; + }, + MAX_OPEN_FDS: 4096, + nextfd() { + for (var fd = 0; fd <= FS.MAX_OPEN_FDS; fd++) { + if (!FS.streams[fd]) { + return fd; + } + } + throw new FS.ErrnoError(33); + }, + getStreamChecked(fd) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + return stream; + }, + getStream: (fd) => FS.streams[fd], + createStream(stream, fd = -1) { + stream = Object.assign(new FS.FSStream(), stream); + if (fd == -1) { + fd = FS.nextfd(); + } + stream.fd = fd; + FS.streams[fd] = stream; + return stream; + }, + closeStream(fd) { + FS.streams[fd] = null; + }, + dupStream(origStream, fd = -1) { + var stream = FS.createStream(origStream, fd); + stream.stream_ops?.dup?.(stream); + return stream; + }, + doSetAttr(stream, node, attr) { + var setattr = stream?.stream_ops.setattr; + var arg = setattr ? stream : node; + setattr ??= node.node_ops.setattr; + FS.checkOpExists(setattr, 63); + setattr(arg, attr); + }, + chrdev_stream_ops: { + open(stream) { + var device = FS.getDevice(stream.node.rdev); + stream.stream_ops = device.stream_ops; + stream.stream_ops.open?.(stream); + }, + llseek() { + throw new FS.ErrnoError(70); + }, + }, + major: (dev) => dev >> 8, + minor: (dev) => dev & 255, + makedev: (ma, mi) => (ma << 8) | mi, + registerDevice(dev, ops) { + FS.devices[dev] = { stream_ops: ops }; + }, + getDevice: (dev) => FS.devices[dev], + getMounts(mount) { + var mounts = []; + var check = [mount]; + while (check.length) { + var m = check.pop(); + mounts.push(m); + check.push(...m.mounts); + } + return mounts; + }, + syncfs(populate, callback) { + if (typeof populate == 'function') { + callback = populate; + populate = false; + } + FS.syncFSRequests++; + if (FS.syncFSRequests > 1) { + err( + `warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work` + ); + } + var mounts = FS.getMounts(FS.root.mount); + var completed = 0; + function doCallback(errCode) { + FS.syncFSRequests--; + return callback(errCode); + } + function done(errCode) { + if (errCode) { + if (!done.errored) { + done.errored = true; + return doCallback(errCode); + } + return; + } + if (++completed >= mounts.length) { + doCallback(null); + } + } + for (var mount of mounts) { + if (mount.type.syncfs) { + mount.type.syncfs(mount, populate, done); + } else { + done(null); + } + } + }, + mount(type, opts, mountpoint) { + var root = mountpoint === '/'; + var pseudo = !mountpoint; + var node; + if (root && FS.root) { + throw new FS.ErrnoError(10); + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + mountpoint = lookup.path; + node = lookup.node; + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + } + var mount = { type, opts, mountpoint, mounts: [] }; + var mountRoot = type.mount(mount); + mountRoot.mount = mount; + mount.root = mountRoot; + if (root) { + FS.root = mountRoot; + } else if (node) { + node.mounted = mount; + if (node.mount) { + node.mount.mounts.push(mount); + } + } + return mountRoot; + }, + unmount(mountpoint) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(28); + } + var node = lookup.node; + var mount = node.mounted; + var mounts = FS.getMounts(mount); + for (var [hash, current] of Object.entries(FS.nameTable)) { + while (current) { + var next = current.name_next; + if (mounts.includes(current.mount)) { + FS.destroyNode(current); + } + current = next; + } + } + node.mounted = null; + var idx = node.mount.mounts.indexOf(mount); + node.mount.mounts.splice(idx, 1); + }, + lookup(parent, name) { + return parent.node_ops.lookup(parent, name); + }, + mknod(path, mode, dev) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + if (!name) { + throw new FS.ErrnoError(28); + } + if (name === '.' || name === '..') { + throw new FS.ErrnoError(20); + } + var errCode = FS.mayCreate(parent, name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.mknod(parent, name, mode, dev); + }, + statfs(path) { + return FS.statfsNode(FS.lookupPath(path, { follow: true }).node); + }, + statfsStream(stream) { + return FS.statfsNode(stream.node); + }, + statfsNode(node) { + var rtn = { + bsize: 4096, + frsize: 4096, + blocks: 1e6, + bfree: 5e5, + bavail: 5e5, + files: FS.nextInode, + ffree: FS.nextInode - 1, + fsid: 42, + flags: 2, + namelen: 255, + }; + if (node.node_ops.statfs) { + Object.assign(rtn, node.node_ops.statfs(node.mount.opts.root)); + } + return rtn; + }, + create(path, mode = 438) { + mode &= 4095; + mode |= 32768; + return FS.mknod(path, mode, 0); + }, + mkdir(path, mode = 511) { + mode &= 511 | 512; + mode |= 16384; + return FS.mknod(path, mode, 0); + }, + mkdirTree(path, mode) { + var dirs = path.split('/'); + var d = ''; + for (var dir of dirs) { + if (!dir) continue; + if (d || PATH.isAbs(path)) d += '/'; + d += dir; + try { + FS.mkdir(d, mode); + } catch (e) { + if (e.errno != 20) throw e; + } + } + }, + mkdev(path, mode, dev) { + if (typeof dev == 'undefined') { + dev = mode; + mode = 438; + } + mode |= 8192; + return FS.mknod(path, mode, dev); + }, + symlink(oldpath, newpath) { + if (!PATH_FS.resolve(oldpath)) { + throw new FS.ErrnoError(44); + } + var lookup = FS.lookupPath(newpath, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var newname = PATH.basename(newpath); + var errCode = FS.mayCreate(parent, newname); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.symlink(parent, newname, oldpath); + }, + rename(old_path, new_path) { + var old_dirname = PATH.dirname(old_path); + var new_dirname = PATH.dirname(new_path); + var old_name = PATH.basename(old_path); + var new_name = PATH.basename(new_path); + var lookup, old_dir, new_dir; + lookup = FS.lookupPath(old_path, { parent: true }); + old_dir = lookup.node; + lookup = FS.lookupPath(new_path, { parent: true }); + new_dir = lookup.node; + if (!old_dir || !new_dir) throw new FS.ErrnoError(44); + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(75); + } + var old_node = FS.lookupNode(old_dir, old_name); + var relative = PATH_FS.relative(old_path, new_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(28); + } + relative = PATH_FS.relative(new_path, old_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(55); + } + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) {} + if (old_node === new_node) { + return; + } + var isdir = FS.isDir(old_node.mode); + var errCode = FS.mayDelete(old_dir, old_name, isdir); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + errCode = new_node + ? FS.mayDelete(new_dir, new_name, isdir) + : FS.mayCreate(new_dir, new_name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { + throw new FS.ErrnoError(10); + } + if (new_dir !== old_dir) { + errCode = FS.nodePermissions(old_dir, 'w'); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + FS.hashRemoveNode(old_node); + try { + old_dir.node_ops.rename(old_node, new_dir, new_name); + old_node.parent = new_dir; + } catch (e) { + throw e; + } finally { + FS.hashAddNode(old_node); + } + }, + rmdir(path) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, true); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.rmdir(parent, name); + FS.destroyNode(node); + }, + readdir(path) { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + var readdir = FS.checkOpExists(node.node_ops.readdir, 54); + return readdir(node); + }, + unlink(path) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, false); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.unlink(parent, name); + FS.destroyNode(node); + }, + readlink(path) { + var lookup = FS.lookupPath(path); + var link = lookup.node; + if (!link) { + throw new FS.ErrnoError(44); + } + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(28); + } + return link.node_ops.readlink(link); + }, + stat(path, dontFollow) { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + var node = lookup.node; + var getattr = FS.checkOpExists(node.node_ops.getattr, 63); + return getattr(node); + }, + fstat(fd) { + var stream = FS.getStreamChecked(fd); + var node = stream.node; + var getattr = stream.stream_ops.getattr; + var arg = getattr ? stream : node; + getattr ??= node.node_ops.getattr; + FS.checkOpExists(getattr, 63); + return getattr(arg); + }, + lstat(path) { + return FS.stat(path, true); + }, + doChmod(stream, node, mode, dontFollow) { + FS.doSetAttr(stream, node, { + mode: (mode & 4095) | (node.mode & ~4095), + ctime: Date.now(), + dontFollow, + }); + }, + chmod(path, mode, dontFollow) { + var node; + if (typeof path == 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + FS.doChmod(null, node, mode, dontFollow); + }, + lchmod(path, mode) { + FS.chmod(path, mode, true); + }, + fchmod(fd, mode) { + var stream = FS.getStreamChecked(fd); + FS.doChmod(stream, stream.node, mode, false); + }, + doChown(stream, node, dontFollow) { + FS.doSetAttr(stream, node, { timestamp: Date.now(), dontFollow }); + }, + chown(path, uid, gid, dontFollow) { + var node; + if (typeof path == 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + FS.doChown(null, node, dontFollow); + }, + lchown(path, uid, gid) { + FS.chown(path, uid, gid, true); + }, + fchown(fd, uid, gid) { + var stream = FS.getStreamChecked(fd); + FS.doChown(stream, stream.node, false); + }, + doTruncate(stream, node, len) { + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(31); + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(28); + } + var errCode = FS.nodePermissions(node, 'w'); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + FS.doSetAttr(stream, node, { size: len, timestamp: Date.now() }); + }, + truncate(path, len) { + if (len < 0) { + throw new FS.ErrnoError(28); + } + var node; + if (typeof path == 'string') { + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + } else { + node = path; + } + FS.doTruncate(null, node, len); + }, + ftruncate(fd, len) { + var stream = FS.getStreamChecked(fd); + if (len < 0 || (stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(28); + } + FS.doTruncate(stream, stream.node, len); + }, + utime(path, atime, mtime) { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + var setattr = FS.checkOpExists(node.node_ops.setattr, 63); + setattr(node, { atime, mtime }); + }, + open(path, flags, mode = 438) { + if (path === '') { + throw new FS.ErrnoError(44); + } + flags = typeof flags == 'string' ? FS_modeStringToFlags(flags) : flags; + if (flags & 64) { + mode = (mode & 4095) | 32768; + } else { + mode = 0; + } + var node; + var isDirPath; + if (typeof path == 'object') { + node = path; + } else { + isDirPath = path.endsWith('/'); + var lookup = FS.lookupPath(path, { + follow: !(flags & 131072), + noent_okay: true, + }); + node = lookup.node; + path = lookup.path; + } + var created = false; + if (flags & 64) { + if (node) { + if (flags & 128) { + throw new FS.ErrnoError(20); + } + } else if (isDirPath) { + throw new FS.ErrnoError(31); + } else { + node = FS.mknod(path, mode | 511, 0); + created = true; + } + } + if (!node) { + throw new FS.ErrnoError(44); + } + if (FS.isChrdev(node.mode)) { + flags &= ~512; + } + if (flags & 65536 && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + if (!created) { + var errCode = FS.mayOpen(node, flags); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + if (flags & 512 && !created) { + FS.truncate(node, 0); + } + flags &= ~(128 | 512 | 131072); + var stream = FS.createStream({ + node, + path: FS.getPath(node), + flags, + seekable: true, + position: 0, + stream_ops: node.stream_ops, + ungotten: [], + error: false, + }); + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + if (created) { + FS.chmod(node, mode & 511); + } + if (Module['logReadFiles'] && !(flags & 1)) { + if (!(path in FS.readFiles)) { + FS.readFiles[path] = 1; + } + } + return stream; + }, + close(stream) { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (stream.getdents) stream.getdents = null; + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream); + } + } catch (e) { + throw e; + } finally { + FS.closeStream(stream.fd); + } + stream.fd = null; + }, + isClosed(stream) { + return stream.fd === null; + }, + llseek(stream, offset, whence) { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(70); + } + if (whence != 0 && whence != 1 && whence != 2) { + throw new FS.ErrnoError(28); + } + stream.position = stream.stream_ops.llseek(stream, offset, whence); + stream.ungotten = []; + return stream.position; + }, + read(stream, buffer, offset, length, position) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.read) { + throw new FS.ErrnoError(28); + } + var seeking = typeof position != 'undefined'; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesRead = stream.stream_ops.read( + stream, + buffer, + offset, + length, + position + ); + if (!seeking) stream.position += bytesRead; + return bytesRead; + }, + write(stream, buffer, offset, length, position, canOwn) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.write) { + throw new FS.ErrnoError(28); + } + if (stream.seekable && stream.flags & 1024) { + FS.llseek(stream, 0, 2); + } + var seeking = typeof position != 'undefined'; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesWritten = stream.stream_ops.write( + stream, + buffer, + offset, + length, + position, + canOwn + ); + if (!seeking) stream.position += bytesWritten; + return bytesWritten; + }, + mmap(stream, length, position, prot, flags) { + if ( + (prot & 2) !== 0 && + (flags & 2) === 0 && + (stream.flags & 2097155) !== 2 + ) { + throw new FS.ErrnoError(2); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(2); + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(43); + } + if (!length) { + throw new FS.ErrnoError(28); + } + return stream.stream_ops.mmap(stream, length, position, prot, flags); + }, + msync(stream, buffer, offset, length, mmapFlags) { + if (!stream.stream_ops.msync) { + return 0; + } + return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); + }, + ioctl(stream, cmd, arg) { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(59); + } + return stream.stream_ops.ioctl(stream, cmd, arg); + }, + readFile(path, opts = {}) { + opts.flags = opts.flags || 0; + opts.encoding = opts.encoding || 'binary'; + if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { + abort(`Invalid encoding type "${opts.encoding}"`); + } + var stream = FS.open(path, opts.flags); + var stat = FS.stat(path); + var length = stat.size; + var buf = new Uint8Array(length); + FS.read(stream, buf, 0, length, 0); + if (opts.encoding === 'utf8') { + buf = UTF8ArrayToString(buf); + } + FS.close(stream); + return buf; + }, + writeFile(path, data, opts = {}) { + opts.flags = opts.flags || 577; + var stream = FS.open(path, opts.flags, opts.mode); + if (typeof data == 'string') { + data = new Uint8Array(intArrayFromString(data, true)); + } + if (ArrayBuffer.isView(data)) { + FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn); + } else { + abort('Unsupported data type'); + } + FS.close(stream); + }, + cwd: () => FS.currentPath, + chdir(path) { + var lookup = FS.lookupPath(path, { follow: true }); + if (lookup.node === null) { + throw new FS.ErrnoError(44); + } + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(54); + } + var errCode = FS.nodePermissions(lookup.node, 'x'); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + FS.currentPath = lookup.path; + }, + createDefaultDirectories() { + FS.mkdir('/tmp'); + FS.mkdir('/home'); + FS.mkdir('/home/web_user'); + }, + createDefaultDevices() { + FS.mkdir('/dev'); + FS.registerDevice(FS.makedev(1, 3), { + read: () => 0, + write: (stream, buffer, offset, length, pos) => length, + llseek: () => 0, + }); + FS.mkdev('/dev/null', FS.makedev(1, 3)); + TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); + TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); + FS.mkdev('/dev/tty', FS.makedev(5, 0)); + FS.mkdev('/dev/tty1', FS.makedev(6, 0)); + var randomBuffer = new Uint8Array(1024), + randomLeft = 0; + var randomByte = () => { + if (randomLeft === 0) { + randomFill(randomBuffer); + randomLeft = randomBuffer.byteLength; + } + return randomBuffer[--randomLeft]; + }; + FS.createDevice('/dev', 'random', randomByte); + FS.createDevice('/dev', 'urandom', randomByte); + FS.mkdir('/dev/shm'); + FS.mkdir('/dev/shm/tmp'); + }, + createSpecialDirectories() { + FS.mkdir('/proc'); + var proc_self = FS.mkdir('/proc/self'); + FS.mkdir('/proc/self/fd'); + FS.mount( + { + mount() { + var node = FS.createNode(proc_self, 'fd', 16895, 73); + node.stream_ops = { llseek: MEMFS.stream_ops.llseek }; + node.node_ops = { + lookup(parent, name) { + var fd = +name; + var stream = FS.getStreamChecked(fd); + var ret = { + parent: null, + mount: { mountpoint: 'fake' }, + node_ops: { readlink: () => stream.path }, + id: fd + 1, + }; + ret.parent = ret; + return ret; + }, + readdir() { + return Array.from(FS.streams.entries()) + .filter(([k, v]) => v) + .map(([k, v]) => k.toString()); + }, + }; + return node; + }, + }, + {}, + '/proc/self/fd' + ); + }, + createStandardStreams(input, output, error) { + if (input) { + FS.createDevice('/dev', 'stdin', input); + } else { + FS.symlink('/dev/tty', '/dev/stdin'); + } + if (output) { + FS.createDevice('/dev', 'stdout', null, output); + } else { + FS.symlink('/dev/tty', '/dev/stdout'); + } + if (error) { + FS.createDevice('/dev', 'stderr', null, error); + } else { + FS.symlink('/dev/tty1', '/dev/stderr'); + } + var stdin = FS.open('/dev/stdin', 0); + var stdout = FS.open('/dev/stdout', 1); + var stderr = FS.open('/dev/stderr', 1); + }, + staticInit() { + FS.nameTable = new Array(4096); + FS.mount(MEMFS, {}, '/'); + FS.createDefaultDirectories(); + FS.createDefaultDevices(); + FS.createSpecialDirectories(); + FS.filesystems = { MEMFS }; + }, + init(input, output, error) { + FS.initialized = true; + input ??= Module['stdin']; + output ??= Module['stdout']; + error ??= Module['stderr']; + FS.createStandardStreams(input, output, error); + }, + quit() { + FS.initialized = false; + for (var stream of FS.streams) { + if (stream) { + FS.close(stream); + } + } + }, + findObject(path, dontResolveLastLink) { + var ret = FS.analyzePath(path, dontResolveLastLink); + if (!ret.exists) { + return null; + } + return ret.object; + }, + analyzePath(path, dontResolveLastLink) { + try { + var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + path = lookup.path; + } catch (e) {} + var ret = { + isRoot: false, + exists: false, + error: 0, + name: null, + path: null, + object: null, + parentExists: false, + parentPath: null, + parentObject: null, + }; + try { + var lookup = FS.lookupPath(path, { parent: true }); + ret.parentExists = true; + ret.parentPath = lookup.path; + ret.parentObject = lookup.node; + ret.name = PATH.basename(path); + lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + ret.exists = true; + ret.path = lookup.path; + ret.object = lookup.node; + ret.name = lookup.node.name; + ret.isRoot = lookup.path === '/'; + } catch (e) { + ret.error = e.errno; + } + return ret; + }, + createPath(parent, path, canRead, canWrite) { + parent = typeof parent == 'string' ? parent : FS.getPath(parent); + var parts = path.split('/').reverse(); + while (parts.length) { + var part = parts.pop(); + if (!part) continue; + var current = PATH.join2(parent, part); + try { + FS.mkdir(current); + } catch (e) { + if (e.errno != 20) throw e; + } + parent = current; + } + return current; + }, + createFile(parent, name, properties, canRead, canWrite) { + var path = PATH.join2( + typeof parent == 'string' ? parent : FS.getPath(parent), + name + ); + var mode = FS_getMode(canRead, canWrite); + return FS.create(path, mode); + }, + createDataFile(parent, name, data, canRead, canWrite, canOwn) { + var path = name; + if (parent) { + parent = typeof parent == 'string' ? parent : FS.getPath(parent); + path = name ? PATH.join2(parent, name) : parent; + } + var mode = FS_getMode(canRead, canWrite); + var node = FS.create(path, mode); + if (data) { + if (typeof data == 'string') { + var arr = new Array(data.length); + for (var i = 0, len = data.length; i < len; ++i) + arr[i] = data.charCodeAt(i); + data = arr; + } + FS.chmod(node, mode | 146); + var stream = FS.open(node, 577); + FS.write(stream, data, 0, data.length, 0, canOwn); + FS.close(stream); + FS.chmod(node, mode); + } + }, + createDevice(parent, name, input, output) { + var path = PATH.join2( + typeof parent == 'string' ? parent : FS.getPath(parent), + name + ); + var mode = FS_getMode(!!input, !!output); + FS.createDevice.major ??= 64; + var dev = FS.makedev(FS.createDevice.major++, 0); + FS.registerDevice(dev, { + open(stream) { + stream.seekable = false; + }, + close(stream) { + if (output?.buffer?.length) { + output(10); + } + }, + read(stream, buffer, offset, length, pos) { + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = input(); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.atime = Date.now(); + } + return bytesRead; + }, + write(stream, buffer, offset, length, pos) { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset + i]); + } catch (e) { + throw new FS.ErrnoError(29); + } + } + if (length) { + stream.node.mtime = stream.node.ctime = Date.now(); + } + return i; + }, + }); + return FS.mkdev(path, mode, dev); + }, + forceLoadFile(obj) { + if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; + if (globalThis.XMLHttpRequest) { + abort( + 'Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.' + ); + } else { + try { + obj.contents = readBinary(obj.url); + } catch (e) { + throw new FS.ErrnoError(29); + } + } + }, + createLazyFile(parent, name, url, canRead, canWrite) { + class LazyUint8Array { + lengthKnown = false; + chunks = []; + get(idx) { + if (idx > this.length - 1 || idx < 0) { + return undefined; + } + var chunkOffset = idx % this.chunkSize; + var chunkNum = (idx / this.chunkSize) | 0; + return this.getter(chunkNum)[chunkOffset]; + } + setDataGetter(getter) { + this.getter = getter; + } + cacheLength() { + var xhr = new XMLHttpRequest(); + xhr.open('HEAD', url, false); + xhr.send(null); + if (!((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304)) + abort("Couldn't load " + url + '. Status: ' + xhr.status); + var datalength = Number(xhr.getResponseHeader('Content-length')); + var header; + var hasByteServing = + (header = xhr.getResponseHeader('Accept-Ranges')) && + header === 'bytes'; + var usesGzip = + (header = xhr.getResponseHeader('Content-Encoding')) && + header === 'gzip'; + var chunkSize = 1024 * 1024; + if (!hasByteServing) chunkSize = datalength; + var doXHR = (from, to) => { + if (from > to) + abort( + 'invalid range (' + from + ', ' + to + ') or no bytes requested!' + ); + if (to > datalength - 1) + abort('only ' + datalength + ' bytes available! programmer error!'); + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + if (datalength !== chunkSize) + xhr.setRequestHeader('Range', 'bytes=' + from + '-' + to); + xhr.responseType = 'arraybuffer'; + if (xhr.overrideMimeType) { + xhr.overrideMimeType('text/plain; charset=x-user-defined'); + } + xhr.send(null); + if (!((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304)) + abort("Couldn't load " + url + '. Status: ' + xhr.status); + if (xhr.response !== undefined) { + return new Uint8Array(xhr.response || []); + } + return intArrayFromString(xhr.responseText || '', true); + }; + var lazyArray = this; + lazyArray.setDataGetter((chunkNum) => { + var start = chunkNum * chunkSize; + var end = (chunkNum + 1) * chunkSize - 1; + end = Math.min(end, datalength - 1); + if (typeof lazyArray.chunks[chunkNum] == 'undefined') { + lazyArray.chunks[chunkNum] = doXHR(start, end); + } + if (typeof lazyArray.chunks[chunkNum] == 'undefined') + abort('doXHR failed!'); + return lazyArray.chunks[chunkNum]; + }); + if (usesGzip || !datalength) { + chunkSize = datalength = 1; + datalength = this.getter(0).length; + chunkSize = datalength; + out( + 'LazyFiles on gzip forces download of the whole file when length is accessed' + ); + } + this._length = datalength; + this._chunkSize = chunkSize; + this.lengthKnown = true; + } + get length() { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._length; + } + get chunkSize() { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._chunkSize; + } + } + if (globalThis.XMLHttpRequest) { + if (!ENVIRONMENT_IS_WORKER) + abort( + 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc' + ); + var lazyArray = new LazyUint8Array(); + var properties = { isDevice: false, contents: lazyArray }; + } else { + var properties = { isDevice: false, url }; + } + var node = FS.createFile(parent, name, properties, canRead, canWrite); + if (properties.contents) { + node.contents = properties.contents; + } else if (properties.url) { + node.contents = null; + node.url = properties.url; + } + Object.defineProperties(node, { + usedBytes: { + get: function () { + return this.contents.length; + }, + }, + }); + var stream_ops = {}; + for (const [key, fn] of Object.entries(node.stream_ops)) { + stream_ops[key] = (...args) => { + FS.forceLoadFile(node); + return fn(...args); + }; + } + function writeChunks(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= contents.length) return 0; + var size = Math.min(contents.length - position, length); + if (contents.slice) { + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i]; + } + } else { + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents.get(position + i); + } + } + return size; + } + stream_ops.read = (stream, buffer, offset, length, position) => { + FS.forceLoadFile(node); + return writeChunks(stream, buffer, offset, length, position); + }; + stream_ops.mmap = (stream, length, position, prot, flags) => { + FS.forceLoadFile(node); + var ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + writeChunks(stream, (growMemViews(), HEAP8), ptr, length, position); + return { ptr, allocated: true }; + }; + node.stream_ops = stream_ops; + return node; + }, +}; +var SYSCALLS = { + DEFAULT_POLLMASK: 5, + calculateAt(dirfd, path, allowEmpty) { + if (PATH.isAbs(path)) { + return path; + } + var dir; + if (dirfd === -100) { + dir = FS.cwd(); + } else { + var dirstream = SYSCALLS.getStreamFromFD(dirfd); + dir = dirstream.path; + } + if (path.length == 0) { + if (!allowEmpty) { + throw new FS.ErrnoError(44); + } + return dir; + } + return dir + '/' + path; + }, + writeStat(buf, stat) { + (growMemViews(), HEAPU32)[(buf >>> 2) >>> 0] = stat.dev; + (growMemViews(), HEAPU32)[((buf + 4) >>> 2) >>> 0] = stat.mode; + (growMemViews(), HEAPU32)[((buf + 8) >>> 2) >>> 0] = stat.nlink; + (growMemViews(), HEAPU32)[((buf + 12) >>> 2) >>> 0] = stat.uid; + (growMemViews(), HEAPU32)[((buf + 16) >>> 2) >>> 0] = stat.gid; + (growMemViews(), HEAPU32)[((buf + 20) >>> 2) >>> 0] = stat.rdev; + (growMemViews(), HEAP64)[((buf + 24) >>> 3) >>> 0] = BigInt(stat.size); + (growMemViews(), HEAP32)[((buf + 32) >>> 2) >>> 0] = 4096; + (growMemViews(), HEAP32)[((buf + 36) >>> 2) >>> 0] = stat.blocks; + var atime = stat.atime.getTime(); + var mtime = stat.mtime.getTime(); + var ctime = stat.ctime.getTime(); + (growMemViews(), HEAP64)[((buf + 40) >>> 3) >>> 0] = BigInt( + Math.floor(atime / 1e3) + ); + (growMemViews(), HEAPU32)[((buf + 48) >>> 2) >>> 0] = + (atime % 1e3) * 1e3 * 1e3; + (growMemViews(), HEAP64)[((buf + 56) >>> 3) >>> 0] = BigInt( + Math.floor(mtime / 1e3) + ); + (growMemViews(), HEAPU32)[((buf + 64) >>> 2) >>> 0] = + (mtime % 1e3) * 1e3 * 1e3; + (growMemViews(), HEAP64)[((buf + 72) >>> 3) >>> 0] = BigInt( + Math.floor(ctime / 1e3) + ); + (growMemViews(), HEAPU32)[((buf + 80) >>> 2) >>> 0] = + (ctime % 1e3) * 1e3 * 1e3; + (growMemViews(), HEAP64)[((buf + 88) >>> 3) >>> 0] = BigInt(stat.ino); + return 0; + }, + writeStatFs(buf, stats) { + (growMemViews(), HEAPU32)[((buf + 4) >>> 2) >>> 0] = stats.bsize; + (growMemViews(), HEAPU32)[((buf + 60) >>> 2) >>> 0] = stats.bsize; + (growMemViews(), HEAP64)[((buf + 8) >>> 3) >>> 0] = BigInt(stats.blocks); + (growMemViews(), HEAP64)[((buf + 16) >>> 3) >>> 0] = BigInt(stats.bfree); + (growMemViews(), HEAP64)[((buf + 24) >>> 3) >>> 0] = BigInt(stats.bavail); + (growMemViews(), HEAP64)[((buf + 32) >>> 3) >>> 0] = BigInt(stats.files); + (growMemViews(), HEAP64)[((buf + 40) >>> 3) >>> 0] = BigInt(stats.ffree); + (growMemViews(), HEAPU32)[((buf + 48) >>> 2) >>> 0] = stats.fsid; + (growMemViews(), HEAPU32)[((buf + 64) >>> 2) >>> 0] = stats.flags; + (growMemViews(), HEAPU32)[((buf + 56) >>> 2) >>> 0] = stats.namelen; + }, + doMsync(addr, stream, len, flags, offset) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (flags & 2) { + return 0; + } + var buffer = (growMemViews(), HEAPU8).slice(addr, addr + len); + FS.msync(stream, buffer, offset, len, flags); + }, + getStreamFromFD(fd) { + var stream = FS.getStreamChecked(fd); + return stream; + }, + varargs: undefined, + getStr(ptr) { + var ret = UTF8ToString(ptr); + return ret; + }, +}; +function ___syscall_fcntl64(fd, cmd, varargs) { + if (ENVIRONMENT_IS_PTHREAD) + return proxyToMainThread(3, 0, 1, fd, cmd, varargs); + varargs >>>= 0; + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.getStreamFromFD(fd); + switch (cmd) { + case 0: { + var arg = syscallGetVarargI(); + if (arg < 0) { + return -28; + } + while (FS.streams[arg]) { + arg++; + } + var newStream; + newStream = FS.dupStream(stream, arg); + return newStream.fd; + } + case 1: + case 2: + return 0; + case 3: + return stream.flags; + case 4: { + var arg = syscallGetVarargI(); + stream.flags |= arg; + return 0; + } + case 12: { + var arg = syscallGetVarargP(); + var offset = 0; + (growMemViews(), HEAP16)[((arg + offset) >>> 1) >>> 0] = 2; + return 0; + } + case 13: + case 14: + return 0; + } + return -28; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } +} +function ___syscall_fstat64(fd, buf) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(4, 0, 1, fd, buf); + buf >>>= 0; + try { + return SYSCALLS.writeStat(buf, FS.fstat(fd)); + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } +} +var stringToUTF8 = (str, outPtr, maxBytesToWrite) => + stringToUTF8Array(str, (growMemViews(), HEAPU8), outPtr, maxBytesToWrite); +function ___syscall_getcwd(buf, size) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(5, 0, 1, buf, size); + buf >>>= 0; + size >>>= 0; + try { + if (size === 0) return -28; + var cwd = FS.cwd(); + var cwdLengthInBytes = lengthBytesUTF8(cwd) + 1; + if (size < cwdLengthInBytes) return -68; + stringToUTF8(cwd, buf, size); + return cwdLengthInBytes; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } +} +function ___syscall_getdents64(fd, dirp, count) { + if (ENVIRONMENT_IS_PTHREAD) + return proxyToMainThread(6, 0, 1, fd, dirp, count); + dirp >>>= 0; + count >>>= 0; + try { + var stream = SYSCALLS.getStreamFromFD(fd); + stream.getdents ||= FS.readdir(stream.path); + var struct_size = 280; + var pos = 0; + var off = FS.llseek(stream, 0, 1); + var startIdx = Math.floor(off / struct_size); + var endIdx = Math.min( + stream.getdents.length, + startIdx + Math.floor(count / struct_size) + ); + for (var idx = startIdx; idx < endIdx; idx++) { + var id; + var type; + var name = stream.getdents[idx]; + if (name === '.') { + id = stream.node.id; + type = 4; + } else if (name === '..') { + var lookup = FS.lookupPath(stream.path, { parent: true }); + id = lookup.node.id; + type = 4; + } else { + var child; + try { + child = FS.lookupNode(stream.node, name); + } catch (e) { + if (e?.errno === 28) { + continue; + } + throw e; + } + id = child.id; + type = FS.isChrdev(child.mode) + ? 2 + : FS.isDir(child.mode) + ? 4 + : FS.isLink(child.mode) + ? 10 + : 8; + } + (growMemViews(), HEAP64)[((dirp + pos) >>> 3) >>> 0] = BigInt(id); + (growMemViews(), HEAP64)[((dirp + pos + 8) >>> 3) >>> 0] = BigInt( + (idx + 1) * struct_size + ); + (growMemViews(), HEAP16)[((dirp + pos + 16) >>> 1) >>> 0] = 280; + (growMemViews(), HEAP8)[(dirp + pos + 18) >>> 0] = type; + stringToUTF8(name, dirp + pos + 19, 256); + pos += struct_size; + } + FS.llseek(stream, idx * struct_size, 0); + return pos; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } +} +function ___syscall_ioctl(fd, op, varargs) { + if (ENVIRONMENT_IS_PTHREAD) + return proxyToMainThread(7, 0, 1, fd, op, varargs); + varargs >>>= 0; + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.getStreamFromFD(fd); + switch (op) { + case 21509: { + if (!stream.tty) return -59; + return 0; + } + case 21505: { + if (!stream.tty) return -59; + if (stream.tty.ops.ioctl_tcgets) { + var termios = stream.tty.ops.ioctl_tcgets(stream); + var argp = syscallGetVarargP(); + (growMemViews(), HEAP32)[(argp >>> 2) >>> 0] = termios.c_iflag || 0; + (growMemViews(), HEAP32)[((argp + 4) >>> 2) >>> 0] = + termios.c_oflag || 0; + (growMemViews(), HEAP32)[((argp + 8) >>> 2) >>> 0] = + termios.c_cflag || 0; + (growMemViews(), HEAP32)[((argp + 12) >>> 2) >>> 0] = + termios.c_lflag || 0; + for (var i = 0; i < 32; i++) { + (growMemViews(), HEAP8)[(argp + i + 17) >>> 0] = + termios.c_cc[i] || 0; + } + return 0; + } + return 0; + } + case 21510: + case 21511: + case 21512: { + if (!stream.tty) return -59; + return 0; + } + case 21506: + case 21507: + case 21508: { + if (!stream.tty) return -59; + if (stream.tty.ops.ioctl_tcsets) { + var argp = syscallGetVarargP(); + var c_iflag = (growMemViews(), HEAP32)[(argp >>> 2) >>> 0]; + var c_oflag = (growMemViews(), HEAP32)[((argp + 4) >>> 2) >>> 0]; + var c_cflag = (growMemViews(), HEAP32)[((argp + 8) >>> 2) >>> 0]; + var c_lflag = (growMemViews(), HEAP32)[((argp + 12) >>> 2) >>> 0]; + var c_cc = []; + for (var i = 0; i < 32; i++) { + c_cc.push((growMemViews(), HEAP8)[(argp + i + 17) >>> 0]); + } + return stream.tty.ops.ioctl_tcsets(stream.tty, op, { + c_iflag, + c_oflag, + c_cflag, + c_lflag, + c_cc, + }); + } + return 0; + } + case 21519: { + if (!stream.tty) return -59; + var argp = syscallGetVarargP(); + (growMemViews(), HEAP32)[(argp >>> 2) >>> 0] = 0; + return 0; + } + case 21520: { + if (!stream.tty) return -59; + return -28; + } + case 21537: + case 21531: { + var argp = syscallGetVarargP(); + return FS.ioctl(stream, op, argp); + } + case 21523: { + if (!stream.tty) return -59; + if (stream.tty.ops.ioctl_tiocgwinsz) { + var winsize = stream.tty.ops.ioctl_tiocgwinsz(stream.tty); + var argp = syscallGetVarargP(); + (growMemViews(), HEAP16)[(argp >>> 1) >>> 0] = winsize[0]; + (growMemViews(), HEAP16)[((argp + 2) >>> 1) >>> 0] = winsize[1]; + } + return 0; + } + case 21524: { + if (!stream.tty) return -59; + return 0; + } + case 21515: { + if (!stream.tty) return -59; + return 0; + } + default: + return -28; + } + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } +} +function ___syscall_lstat64(path, buf) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(8, 0, 1, path, buf); + path >>>= 0; + buf >>>= 0; + try { + path = SYSCALLS.getStr(path); + return SYSCALLS.writeStat(buf, FS.lstat(path)); + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } +} +function ___syscall_newfstatat(dirfd, path, buf, flags) { + if (ENVIRONMENT_IS_PTHREAD) + return proxyToMainThread(9, 0, 1, dirfd, path, buf, flags); + path >>>= 0; + buf >>>= 0; + try { + path = SYSCALLS.getStr(path); + var nofollow = flags & 256; + var allowEmpty = flags & 4096; + flags = flags & ~6400; + path = SYSCALLS.calculateAt(dirfd, path, allowEmpty); + return SYSCALLS.writeStat(buf, nofollow ? FS.lstat(path) : FS.stat(path)); + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } +} +function ___syscall_openat(dirfd, path, flags, varargs) { + if (ENVIRONMENT_IS_PTHREAD) + return proxyToMainThread(10, 0, 1, dirfd, path, flags, varargs); + path >>>= 0; + varargs >>>= 0; + SYSCALLS.varargs = varargs; + try { + path = SYSCALLS.getStr(path); + path = SYSCALLS.calculateAt(dirfd, path); + var mode = varargs ? syscallGetVarargI() : 0; + return FS.open(path, flags, mode).fd; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } +} +function ___syscall_stat64(path, buf) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(11, 0, 1, path, buf); + path >>>= 0; + buf >>>= 0; + try { + path = SYSCALLS.getStr(path); + return SYSCALLS.writeStat(buf, FS.stat(path)); + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } +} +var __abort_js = () => abort(''); +function __emscripten_init_main_thread_js(tb) { + tb >>>= 0; + __emscripten_thread_init( + tb, + !ENVIRONMENT_IS_WORKER, + 1, + !ENVIRONMENT_IS_WEB, + 65536, + false + ); + PThread.threadInitTLS(); +} +var handleException = (e) => { + if (e instanceof ExitStatus || e == 'unwind') { + return EXITSTATUS; + } + quit_(1, e); +}; +var maybeExit = () => { + if (!keepRuntimeAlive()) { + try { + if (ENVIRONMENT_IS_PTHREAD) { + if (_pthread_self()) __emscripten_thread_exit(EXITSTATUS); + return; + } + _exit(EXITSTATUS); + } catch (e) { + handleException(e); + } + } +}; +var callUserCallback = (func) => { + if (ABORT) { + return; + } + try { + func(); + maybeExit(); + } catch (e) { + handleException(e); + } +}; +function __emscripten_thread_mailbox_await(pthread_ptr) { + pthread_ptr >>>= 0; + if (Atomics.waitAsync) { + var wait = Atomics.waitAsync( + (growMemViews(), HEAP32), + pthread_ptr >>> 2, + pthread_ptr + ); + wait.value.then(checkMailbox); + var waitingAsync = pthread_ptr + 128; + Atomics.store((growMemViews(), HEAP32), waitingAsync >>> 2, 1); + } +} +var checkMailbox = () => + callUserCallback(() => { + var pthread_ptr = _pthread_self(); + if (pthread_ptr) { + __emscripten_thread_mailbox_await(pthread_ptr); + __emscripten_check_mailbox(); + } + }); +function __emscripten_notify_mailbox_postmessage(targetThread, currThreadId) { + targetThread >>>= 0; + currThreadId >>>= 0; + if (targetThread == currThreadId) { + setTimeout(checkMailbox); + } else if (ENVIRONMENT_IS_PTHREAD) { + postMessage({ targetThread, cmd: 'checkMailbox' }); + } else { + var worker = PThread.pthreads[targetThread]; + if (!worker) { + return; + } + worker.postMessage({ cmd: 'checkMailbox' }); + } +} +var proxiedJSCallArgs = []; +function __emscripten_receive_on_main_thread_js( + funcIndex, + emAsmAddr, + callingThread, + numCallArgs, + args +) { + emAsmAddr >>>= 0; + callingThread >>>= 0; + args >>>= 0; + numCallArgs /= 2; + proxiedJSCallArgs.length = numCallArgs; + var b = args >>> 3; + for (var i = 0; i < numCallArgs; i++) { + if ((growMemViews(), HEAP64)[(b + 2 * i) >>> 0]) { + proxiedJSCallArgs[i] = (growMemViews(), HEAP64)[(b + 2 * i + 1) >>> 0]; + } else { + proxiedJSCallArgs[i] = (growMemViews(), HEAPF64)[(b + 2 * i + 1) >>> 0]; + } + } + var func = proxiedFunctionTable[funcIndex]; + PThread.currentProxiedOperationCallerThread = callingThread; + var rtn = func(...proxiedJSCallArgs); + PThread.currentProxiedOperationCallerThread = 0; + return rtn; +} +var __emscripten_runtime_keepalive_clear = () => { + noExitRuntime = false; + runtimeKeepaliveCounter = 0; +}; +function __emscripten_thread_cleanup(thread) { + thread >>>= 0; + if (!ENVIRONMENT_IS_PTHREAD) cleanupThread(thread); + else postMessage({ cmd: 'cleanupThread', thread }); +} +function __emscripten_thread_set_strongref(thread) { + thread >>>= 0; + if (ENVIRONMENT_IS_NODE) { + PThread.pthreads[thread].ref(); + } +} +var isLeapYear = (year) => + year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); +var MONTH_DAYS_LEAP_CUMULATIVE = [ + 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, +]; +var MONTH_DAYS_REGULAR_CUMULATIVE = [ + 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, +]; +var ydayFromDate = (date) => { + var leap = isLeapYear(date.getFullYear()); + var monthDaysCumulative = leap + ? MONTH_DAYS_LEAP_CUMULATIVE + : MONTH_DAYS_REGULAR_CUMULATIVE; + var yday = monthDaysCumulative[date.getMonth()] + date.getDate() - 1; + return yday; +}; +function __localtime_js(time, tmPtr) { + time = bigintToI53Checked(time); + tmPtr >>>= 0; + var date = new Date(time * 1e3); + (growMemViews(), HEAP32)[(tmPtr >>> 2) >>> 0] = date.getSeconds(); + (growMemViews(), HEAP32)[((tmPtr + 4) >>> 2) >>> 0] = date.getMinutes(); + (growMemViews(), HEAP32)[((tmPtr + 8) >>> 2) >>> 0] = date.getHours(); + (growMemViews(), HEAP32)[((tmPtr + 12) >>> 2) >>> 0] = date.getDate(); + (growMemViews(), HEAP32)[((tmPtr + 16) >>> 2) >>> 0] = date.getMonth(); + (growMemViews(), HEAP32)[((tmPtr + 20) >>> 2) >>> 0] = + date.getFullYear() - 1900; + (growMemViews(), HEAP32)[((tmPtr + 24) >>> 2) >>> 0] = date.getDay(); + var yday = ydayFromDate(date) | 0; + (growMemViews(), HEAP32)[((tmPtr + 28) >>> 2) >>> 0] = yday; + (growMemViews(), HEAP32)[((tmPtr + 36) >>> 2) >>> 0] = -( + date.getTimezoneOffset() * 60 + ); + var start = new Date(date.getFullYear(), 0, 1); + var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset(); + var winterOffset = start.getTimezoneOffset(); + var dst = + (summerOffset != winterOffset && + date.getTimezoneOffset() == Math.min(winterOffset, summerOffset)) | 0; + (growMemViews(), HEAP32)[((tmPtr + 32) >>> 2) >>> 0] = dst; +} +function __mmap_js(len, prot, flags, fd, offset, allocated, addr) { + if (ENVIRONMENT_IS_PTHREAD) + return proxyToMainThread( + 12, + 0, + 1, + len, + prot, + flags, + fd, + offset, + allocated, + addr + ); + len >>>= 0; + offset = bigintToI53Checked(offset); + allocated >>>= 0; + addr >>>= 0; + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var res = FS.mmap(stream, len, offset, prot, flags); + var ptr = res.ptr; + (growMemViews(), HEAP32)[(allocated >>> 2) >>> 0] = res.allocated; + (growMemViews(), HEAPU32)[(addr >>> 2) >>> 0] = ptr; + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } +} +function __munmap_js(addr, len, prot, flags, fd, offset) { + if (ENVIRONMENT_IS_PTHREAD) + return proxyToMainThread(13, 0, 1, addr, len, prot, flags, fd, offset); + addr >>>= 0; + len >>>= 0; + offset = bigintToI53Checked(offset); + try { + var stream = SYSCALLS.getStreamFromFD(fd); + if (prot & 2) { + SYSCALLS.doMsync(addr, stream, len, flags, offset); + } + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } +} +var timers = {}; +var _emscripten_get_now = () => performance.timeOrigin + performance.now(); +function __setitimer_js(which, timeout_ms) { + if (ENVIRONMENT_IS_PTHREAD) + return proxyToMainThread(14, 0, 1, which, timeout_ms); + if (timers[which]) { + clearTimeout(timers[which].id); + delete timers[which]; + } + if (!timeout_ms) return 0; + var id = setTimeout(() => { + delete timers[which]; + callUserCallback(() => __emscripten_timeout(which, _emscripten_get_now())); + }, timeout_ms); + timers[which] = { id, timeout_ms }; + return 0; +} +var __tzset_js = function (timezone, daylight, std_name, dst_name) { + timezone >>>= 0; + daylight >>>= 0; + std_name >>>= 0; + dst_name >>>= 0; + var currentYear = new Date().getFullYear(); + var winter = new Date(currentYear, 0, 1); + var summer = new Date(currentYear, 6, 1); + var winterOffset = winter.getTimezoneOffset(); + var summerOffset = summer.getTimezoneOffset(); + var stdTimezoneOffset = Math.max(winterOffset, summerOffset); + (growMemViews(), HEAPU32)[(timezone >>> 2) >>> 0] = stdTimezoneOffset * 60; + (growMemViews(), HEAP32)[(daylight >>> 2) >>> 0] = Number( + winterOffset != summerOffset + ); + var extractZone = (timezoneOffset) => { + var sign = timezoneOffset >= 0 ? '-' : '+'; + var absOffset = Math.abs(timezoneOffset); + var hours = String(Math.floor(absOffset / 60)).padStart(2, '0'); + var minutes = String(absOffset % 60).padStart(2, '0'); + return `UTC${sign}${hours}${minutes}`; + }; + var winterName = extractZone(winterOffset); + var summerName = extractZone(summerOffset); + if (summerOffset < winterOffset) { + stringToUTF8(winterName, std_name, 17); + stringToUTF8(summerName, dst_name, 17); + } else { + stringToUTF8(winterName, dst_name, 17); + stringToUTF8(summerName, std_name, 17); + } +}; +var _emscripten_date_now = () => Date.now(); +var nowIsMonotonic = 1; +var checkWasiClock = (clock_id) => clock_id >= 0 && clock_id <= 3; +function _clock_time_get(clk_id, ignored_precision, ptime) { + ignored_precision = bigintToI53Checked(ignored_precision); + ptime >>>= 0; + if (!checkWasiClock(clk_id)) { + return 28; + } + var now; + if (clk_id === 0) { + now = _emscripten_date_now(); + } else if (nowIsMonotonic) { + now = _emscripten_get_now(); + } else { + return 52; + } + var nsec = Math.round(now * 1e3 * 1e3); + (growMemViews(), HEAP64)[(ptime >>> 3) >>> 0] = BigInt(nsec); + return 0; +} +var _emscripten_check_blocking_allowed = () => {}; +var runtimeKeepalivePush = () => { + runtimeKeepaliveCounter += 1; +}; +var _emscripten_exit_with_live_runtime = () => { + runtimeKeepalivePush(); + throw 'unwind'; +}; +var getHeapMax = () => 4294901760; +function _emscripten_get_heap_max() { + return getHeapMax(); +} +var _emscripten_has_asyncify = () => 1; +var _emscripten_num_logical_cores = () => + ENVIRONMENT_IS_NODE + ? require('os').cpus().length + : navigator['hardwareConcurrency']; +var growMemory = (size) => { + var oldHeapSize = wasmMemory.buffer.byteLength; + var pages = ((size - oldHeapSize + 65535) / 65536) | 0; + try { + wasmMemory.grow(pages); + updateMemoryViews(); + return 1; + } catch (e) {} +}; +function _emscripten_resize_heap(requestedSize) { + requestedSize >>>= 0; + var oldSize = (growMemViews(), HEAPU8).length; + if (requestedSize <= oldSize) { + return false; + } + var maxHeapSize = getHeapMax(); + if (requestedSize > maxHeapSize) { + return false; + } + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); + overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); + var newSize = Math.min( + maxHeapSize, + alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536) + ); + var replacement = growMemory(newSize); + if (replacement) { + return true; + } + } + return false; +} +var stringToUTF8OnStack = (str) => { + var size = lengthBytesUTF8(str) + 1; + var ret = stackAlloc(size); + stringToUTF8(str, ret, size); + return ret; +}; +var writeI53ToI64 = (ptr, num) => { + (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0] = num; + var lower = (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0]; + (growMemViews(), HEAPU32)[((ptr + 4) >>> 2) >>> 0] = + (num - lower) / 4294967296; +}; +var stringToNewUTF8 = (str) => { + var size = lengthBytesUTF8(str) + 1; + var ret = _malloc(size); + if (ret) stringToUTF8(str, ret, size); + return ret; +}; +var readI53FromI64 = (ptr) => + (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0] + + (growMemViews(), HEAP32)[((ptr + 4) >>> 2) >>> 0] * 4294967296; +var WebGPU = { + Internals: { + jsObjects: [], + jsObjectInsert: (ptr, jsObject) => { + ptr >>>= 0; + WebGPU.Internals.jsObjects[ptr] = jsObject; + }, + bufferOnUnmaps: [], + futures: [], + futureInsert: (futureId, promise) => { + WebGPU.Internals.futures[futureId] = new Promise((resolve) => + promise.finally(() => resolve(futureId)) + ); + }, + }, + getJsObject: (ptr) => { + if (!ptr) return undefined; + ptr >>>= 0; + return WebGPU.Internals.jsObjects[ptr]; + }, + importJsAdapter: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateAdapter(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsBindGroup: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateBindGroup(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsBindGroupLayout: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateBindGroupLayout(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsBuffer: (buffer, parentPtr = 0) => { + assert(buffer.mapState === 'unmapped'); + var bufferPtr = _emwgpuCreateBuffer(parentPtr); + WebGPU.Internals.jsObjectInsert(bufferPtr, buffer); + return bufferPtr; + }, + importJsCommandBuffer: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateCommandBuffer(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsCommandEncoder: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateCommandEncoder(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsComputePassEncoder: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateComputePassEncoder(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsComputePipeline: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateComputePipeline(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsDevice: (device, parentPtr = 0) => { + var queuePtr = _emwgpuCreateQueue(parentPtr); + var devicePtr = _emwgpuCreateDevice(parentPtr, queuePtr); + WebGPU.Internals.jsObjectInsert(queuePtr, device.queue); + WebGPU.Internals.jsObjectInsert(devicePtr, device); + return devicePtr; + }, + importJsExternalTexture: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateExternalTexture(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsPipelineLayout: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreatePipelineLayout(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsQuerySet: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateQuerySet(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsQueue: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateQueue(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsRenderBundle: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateRenderBundle(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsRenderBundleEncoder: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateRenderBundleEncoder(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsRenderPassEncoder: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateRenderPassEncoder(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsRenderPipeline: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateRenderPipeline(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsSampler: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateSampler(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsShaderModule: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateShaderModule(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsSurface: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateSurface(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsTexture: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateTexture(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsTextureView: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateTextureView(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + errorCallback: (callback, type, message, userdata) => { + var sp = stackSave(); + var messagePtr = stringToUTF8OnStack(message); + ((a1, a2, a3) => dynCall_viii(callback, a1, a2, a3))( + type, + messagePtr, + userdata + ); + stackRestore(sp); + }, + iterateExtensions: (root, handlers) => { + for ( + var ptr = (growMemViews(), HEAPU32)[(root >>> 2) >>> 0]; + ptr; + ptr = (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0] + ) { + var sType = (growMemViews(), HEAP32)[((ptr + 4) >>> 2) >>> 0]; + var handler = handlers[sType](ptr); + } + }, + setStringView: (ptr, data, length) => { + (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0] = data; + (growMemViews(), HEAPU32)[((ptr + 4) >>> 2) >>> 0] = length; + }, + makeStringFromStringView: (stringViewPtr) => { + var ptr = (growMemViews(), HEAPU32)[(stringViewPtr >>> 2) >>> 0]; + var length = (growMemViews(), HEAPU32)[((stringViewPtr + 4) >>> 2) >>> 0]; + return UTF8ToString(ptr, length); + }, + makeStringFromOptionalStringView: (stringViewPtr) => { + var ptr = (growMemViews(), HEAPU32)[(stringViewPtr >>> 2) >>> 0]; + var length = (growMemViews(), HEAPU32)[((stringViewPtr + 4) >>> 2) >>> 0]; + if (!ptr) { + if (length === 0) { + return ''; + } + return undefined; + } + return UTF8ToString(ptr, length); + }, + makeColor: (ptr) => ({ + r: (growMemViews(), HEAPF64)[(ptr >>> 3) >>> 0], + g: (growMemViews(), HEAPF64)[((ptr + 8) >>> 3) >>> 0], + b: (growMemViews(), HEAPF64)[((ptr + 16) >>> 3) >>> 0], + a: (growMemViews(), HEAPF64)[((ptr + 24) >>> 3) >>> 0], + }), + makeExtent3D: (ptr) => ({ + width: (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0], + height: (growMemViews(), HEAPU32)[((ptr + 4) >>> 2) >>> 0], + depthOrArrayLayers: (growMemViews(), HEAPU32)[((ptr + 8) >>> 2) >>> 0], + }), + makeOrigin3D: (ptr) => ({ + x: (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0], + y: (growMemViews(), HEAPU32)[((ptr + 4) >>> 2) >>> 0], + z: (growMemViews(), HEAPU32)[((ptr + 8) >>> 2) >>> 0], + }), + makeTexelCopyTextureInfo: (ptr) => ({ + texture: WebGPU.getJsObject((growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0]), + mipLevel: (growMemViews(), HEAPU32)[((ptr + 4) >>> 2) >>> 0], + origin: WebGPU.makeOrigin3D(ptr + 8), + aspect: + WebGPU.TextureAspect[(growMemViews(), HEAP32)[((ptr + 20) >>> 2) >>> 0]], + }), + makeTexelCopyBufferLayout: (ptr) => { + var bytesPerRow = (growMemViews(), HEAPU32)[((ptr + 8) >>> 2) >>> 0]; + var rowsPerImage = (growMemViews(), HEAPU32)[((ptr + 12) >>> 2) >>> 0]; + return { + offset: readI53FromI64(ptr), + bytesPerRow: bytesPerRow === 4294967295 ? undefined : bytesPerRow, + rowsPerImage: rowsPerImage === 4294967295 ? undefined : rowsPerImage, + }; + }, + makeTexelCopyBufferInfo: (ptr) => { + var layoutPtr = ptr + 0; + var bufferCopyView = WebGPU.makeTexelCopyBufferLayout(layoutPtr); + bufferCopyView['buffer'] = WebGPU.getJsObject( + (growMemViews(), HEAPU32)[((ptr + 16) >>> 2) >>> 0] + ); + return bufferCopyView; + }, + makePassTimestampWrites: (ptr) => { + if (ptr === 0) return undefined; + return { + querySet: WebGPU.getJsObject( + (growMemViews(), HEAPU32)[((ptr + 4) >>> 2) >>> 0] + ), + beginningOfPassWriteIndex: (growMemViews(), HEAPU32)[ + ((ptr + 8) >>> 2) >>> 0 + ], + endOfPassWriteIndex: (growMemViews(), HEAPU32)[((ptr + 12) >>> 2) >>> 0], + }; + }, + makePipelineConstants: (constantCount, constantsPtr) => { + if (!constantCount) return; + var constants = {}; + for (var i = 0; i < constantCount; ++i) { + var entryPtr = constantsPtr + 24 * i; + var key = WebGPU.makeStringFromStringView(entryPtr + 4); + constants[key] = (growMemViews(), HEAPF64)[((entryPtr + 16) >>> 3) >>> 0]; + } + return constants; + }, + makePipelineLayout: (layoutPtr) => { + if (!layoutPtr) return 'auto'; + return WebGPU.getJsObject(layoutPtr); + }, + makeComputeState: (ptr) => { + if (!ptr) return undefined; + var desc = { + module: WebGPU.getJsObject( + (growMemViews(), HEAPU32)[((ptr + 4) >>> 2) >>> 0] + ), + constants: WebGPU.makePipelineConstants( + (growMemViews(), HEAPU32)[((ptr + 16) >>> 2) >>> 0], + (growMemViews(), HEAPU32)[((ptr + 20) >>> 2) >>> 0] + ), + entryPoint: WebGPU.makeStringFromOptionalStringView(ptr + 8), + }; + return desc; + }, + makeComputePipelineDesc: (descriptor) => { + var desc = { + label: WebGPU.makeStringFromOptionalStringView(descriptor + 4), + layout: WebGPU.makePipelineLayout( + (growMemViews(), HEAPU32)[((descriptor + 12) >>> 2) >>> 0] + ), + compute: WebGPU.makeComputeState(descriptor + 16), + }; + return desc; + }, + makeRenderPipelineDesc: (descriptor) => { + function makePrimitiveState(psPtr) { + if (!psPtr) return undefined; + return { + topology: + WebGPU.PrimitiveTopology[ + (growMemViews(), HEAP32)[((psPtr + 4) >>> 2) >>> 0] + ], + stripIndexFormat: + WebGPU.IndexFormat[ + (growMemViews(), HEAP32)[((psPtr + 8) >>> 2) >>> 0] + ], + frontFace: + WebGPU.FrontFace[ + (growMemViews(), HEAP32)[((psPtr + 12) >>> 2) >>> 0] + ], + cullMode: + WebGPU.CullMode[(growMemViews(), HEAP32)[((psPtr + 16) >>> 2) >>> 0]], + unclippedDepth: !!(growMemViews(), HEAPU32)[((psPtr + 20) >>> 2) >>> 0], + }; + } + function makeBlendComponent(bdPtr) { + if (!bdPtr) return undefined; + return { + operation: + WebGPU.BlendOperation[(growMemViews(), HEAP32)[(bdPtr >>> 2) >>> 0]], + srcFactor: + WebGPU.BlendFactor[ + (growMemViews(), HEAP32)[((bdPtr + 4) >>> 2) >>> 0] + ], + dstFactor: + WebGPU.BlendFactor[ + (growMemViews(), HEAP32)[((bdPtr + 8) >>> 2) >>> 0] + ], + }; + } + function makeBlendState(bsPtr) { + if (!bsPtr) return undefined; + return { + alpha: makeBlendComponent(bsPtr + 12), + color: makeBlendComponent(bsPtr + 0), + }; + } + function makeColorState(csPtr) { + var format = + WebGPU.TextureFormat[ + (growMemViews(), HEAP32)[((csPtr + 4) >>> 2) >>> 0] + ]; + return format + ? { + format, + blend: makeBlendState( + (growMemViews(), HEAPU32)[((csPtr + 8) >>> 2) >>> 0] + ), + writeMask: (growMemViews(), HEAPU32)[((csPtr + 16) >>> 2) >>> 0], + } + : undefined; + } + function makeColorStates(count, csArrayPtr) { + var states = []; + for (var i = 0; i < count; ++i) { + states.push(makeColorState(csArrayPtr + 24 * i)); + } + return states; + } + function makeStencilStateFace(ssfPtr) { + return { + compare: + WebGPU.CompareFunction[ + (growMemViews(), HEAP32)[(ssfPtr >>> 2) >>> 0] + ], + failOp: + WebGPU.StencilOperation[ + (growMemViews(), HEAP32)[((ssfPtr + 4) >>> 2) >>> 0] + ], + depthFailOp: + WebGPU.StencilOperation[ + (growMemViews(), HEAP32)[((ssfPtr + 8) >>> 2) >>> 0] + ], + passOp: + WebGPU.StencilOperation[ + (growMemViews(), HEAP32)[((ssfPtr + 12) >>> 2) >>> 0] + ], + }; + } + function makeDepthStencilState(dssPtr) { + if (!dssPtr) return undefined; + return { + format: + WebGPU.TextureFormat[ + (growMemViews(), HEAP32)[((dssPtr + 4) >>> 2) >>> 0] + ], + depthWriteEnabled: !!(growMemViews(), HEAPU32)[ + ((dssPtr + 8) >>> 2) >>> 0 + ], + depthCompare: + WebGPU.CompareFunction[ + (growMemViews(), HEAP32)[((dssPtr + 12) >>> 2) >>> 0] + ], + stencilFront: makeStencilStateFace(dssPtr + 16), + stencilBack: makeStencilStateFace(dssPtr + 32), + stencilReadMask: (growMemViews(), HEAPU32)[((dssPtr + 48) >>> 2) >>> 0], + stencilWriteMask: (growMemViews(), HEAPU32)[ + ((dssPtr + 52) >>> 2) >>> 0 + ], + depthBias: (growMemViews(), HEAP32)[((dssPtr + 56) >>> 2) >>> 0], + depthBiasSlopeScale: (growMemViews(), HEAPF32)[ + ((dssPtr + 60) >>> 2) >>> 0 + ], + depthBiasClamp: (growMemViews(), HEAPF32)[((dssPtr + 64) >>> 2) >>> 0], + }; + } + function makeVertexAttribute(vaPtr) { + return { + format: + WebGPU.VertexFormat[ + (growMemViews(), HEAP32)[((vaPtr + 4) >>> 2) >>> 0] + ], + offset: readI53FromI64(vaPtr + 8), + shaderLocation: (growMemViews(), HEAPU32)[((vaPtr + 16) >>> 2) >>> 0], + }; + } + function makeVertexAttributes(count, vaArrayPtr) { + var vas = []; + for (var i = 0; i < count; ++i) { + vas.push(makeVertexAttribute(vaArrayPtr + i * 24)); + } + return vas; + } + function makeVertexBuffer(vbPtr) { + if (!vbPtr) return undefined; + var stepMode = + WebGPU.VertexStepMode[ + (growMemViews(), HEAP32)[((vbPtr + 4) >>> 2) >>> 0] + ]; + var attributeCount = (growMemViews(), HEAPU32)[ + ((vbPtr + 16) >>> 2) >>> 0 + ]; + if (!stepMode && !attributeCount) { + return null; + } + return { + arrayStride: readI53FromI64(vbPtr + 8), + stepMode, + attributes: makeVertexAttributes( + attributeCount, + (growMemViews(), HEAPU32)[((vbPtr + 20) >>> 2) >>> 0] + ), + }; + } + function makeVertexBuffers(count, vbArrayPtr) { + if (!count) return undefined; + var vbs = []; + for (var i = 0; i < count; ++i) { + vbs.push(makeVertexBuffer(vbArrayPtr + i * 24)); + } + return vbs; + } + function makeVertexState(viPtr) { + if (!viPtr) return undefined; + var desc = { + module: WebGPU.getJsObject( + (growMemViews(), HEAPU32)[((viPtr + 4) >>> 2) >>> 0] + ), + constants: WebGPU.makePipelineConstants( + (growMemViews(), HEAPU32)[((viPtr + 16) >>> 2) >>> 0], + (growMemViews(), HEAPU32)[((viPtr + 20) >>> 2) >>> 0] + ), + buffers: makeVertexBuffers( + (growMemViews(), HEAPU32)[((viPtr + 24) >>> 2) >>> 0], + (growMemViews(), HEAPU32)[((viPtr + 28) >>> 2) >>> 0] + ), + entryPoint: WebGPU.makeStringFromOptionalStringView(viPtr + 8), + }; + return desc; + } + function makeMultisampleState(msPtr) { + if (!msPtr) return undefined; + return { + count: (growMemViews(), HEAPU32)[((msPtr + 4) >>> 2) >>> 0], + mask: (growMemViews(), HEAPU32)[((msPtr + 8) >>> 2) >>> 0], + alphaToCoverageEnabled: !!(growMemViews(), HEAPU32)[ + ((msPtr + 12) >>> 2) >>> 0 + ], + }; + } + function makeFragmentState(fsPtr) { + if (!fsPtr) return undefined; + var desc = { + module: WebGPU.getJsObject( + (growMemViews(), HEAPU32)[((fsPtr + 4) >>> 2) >>> 0] + ), + constants: WebGPU.makePipelineConstants( + (growMemViews(), HEAPU32)[((fsPtr + 16) >>> 2) >>> 0], + (growMemViews(), HEAPU32)[((fsPtr + 20) >>> 2) >>> 0] + ), + targets: makeColorStates( + (growMemViews(), HEAPU32)[((fsPtr + 24) >>> 2) >>> 0], + (growMemViews(), HEAPU32)[((fsPtr + 28) >>> 2) >>> 0] + ), + entryPoint: WebGPU.makeStringFromOptionalStringView(fsPtr + 8), + }; + return desc; + } + var desc = { + label: WebGPU.makeStringFromOptionalStringView(descriptor + 4), + layout: WebGPU.makePipelineLayout( + (growMemViews(), HEAPU32)[((descriptor + 12) >>> 2) >>> 0] + ), + vertex: makeVertexState(descriptor + 16), + primitive: makePrimitiveState(descriptor + 48), + depthStencil: makeDepthStencilState( + (growMemViews(), HEAPU32)[((descriptor + 72) >>> 2) >>> 0] + ), + multisample: makeMultisampleState(descriptor + 76), + fragment: makeFragmentState( + (growMemViews(), HEAPU32)[((descriptor + 92) >>> 2) >>> 0] + ), + }; + return desc; + }, + fillLimitStruct: (limits, limitsOutPtr) => { + var nextInChainPtr = (growMemViews(), HEAPU32)[(limitsOutPtr >>> 2) >>> 0]; + function setLimitValueU32(name, basePtr, limitOffset, fallbackValue = 0) { + var limitValue = limits[name] ?? fallbackValue; + (growMemViews(), HEAPU32)[((basePtr + limitOffset) >>> 2) >>> 0] = + limitValue; + } + function setLimitValueU64(name, basePtr, limitOffset, fallbackValue = 0) { + var limitValue = limits[name] ?? fallbackValue; + writeI53ToI64(basePtr + limitOffset, limitValue); + } + setLimitValueU32('maxTextureDimension1D', limitsOutPtr, 4); + setLimitValueU32('maxTextureDimension2D', limitsOutPtr, 8); + setLimitValueU32('maxTextureDimension3D', limitsOutPtr, 12); + setLimitValueU32('maxTextureArrayLayers', limitsOutPtr, 16); + setLimitValueU32('maxBindGroups', limitsOutPtr, 20); + setLimitValueU32('maxBindGroupsPlusVertexBuffers', limitsOutPtr, 24); + setLimitValueU32('maxBindingsPerBindGroup', limitsOutPtr, 28); + setLimitValueU32( + 'maxDynamicUniformBuffersPerPipelineLayout', + limitsOutPtr, + 32 + ); + setLimitValueU32( + 'maxDynamicStorageBuffersPerPipelineLayout', + limitsOutPtr, + 36 + ); + setLimitValueU32('maxSampledTexturesPerShaderStage', limitsOutPtr, 40); + setLimitValueU32('maxSamplersPerShaderStage', limitsOutPtr, 44); + setLimitValueU32('maxStorageBuffersPerShaderStage', limitsOutPtr, 48); + setLimitValueU32('maxStorageTexturesPerShaderStage', limitsOutPtr, 52); + setLimitValueU32('maxUniformBuffersPerShaderStage', limitsOutPtr, 56); + setLimitValueU32('minUniformBufferOffsetAlignment', limitsOutPtr, 80); + setLimitValueU32('minStorageBufferOffsetAlignment', limitsOutPtr, 84); + setLimitValueU64('maxUniformBufferBindingSize', limitsOutPtr, 64); + setLimitValueU64('maxStorageBufferBindingSize', limitsOutPtr, 72); + setLimitValueU32('maxVertexBuffers', limitsOutPtr, 88); + setLimitValueU64('maxBufferSize', limitsOutPtr, 96); + setLimitValueU32('maxVertexAttributes', limitsOutPtr, 104); + setLimitValueU32('maxVertexBufferArrayStride', limitsOutPtr, 108); + setLimitValueU32('maxInterStageShaderVariables', limitsOutPtr, 112); + setLimitValueU32('maxColorAttachments', limitsOutPtr, 116); + setLimitValueU32('maxColorAttachmentBytesPerSample', limitsOutPtr, 120); + setLimitValueU32('maxComputeWorkgroupStorageSize', limitsOutPtr, 124); + setLimitValueU32('maxComputeInvocationsPerWorkgroup', limitsOutPtr, 128); + setLimitValueU32('maxComputeWorkgroupSizeX', limitsOutPtr, 132); + setLimitValueU32('maxComputeWorkgroupSizeY', limitsOutPtr, 136); + setLimitValueU32('maxComputeWorkgroupSizeZ', limitsOutPtr, 140); + setLimitValueU32('maxComputeWorkgroupsPerDimension', limitsOutPtr, 144); + setLimitValueU32('maxImmediateSize', limitsOutPtr, 148); + if (nextInChainPtr !== 0) { + var sType = (growMemViews(), HEAP32)[((nextInChainPtr + 4) >>> 2) >>> 0]; + var compatibilityModeLimitsPtr = nextInChainPtr; + setLimitValueU32( + 'maxStorageBuffersInVertexStage', + compatibilityModeLimitsPtr, + 8, + limits.maxStorageBuffersPerShaderStage + ); + setLimitValueU32( + 'maxStorageBuffersInFragmentStage', + compatibilityModeLimitsPtr, + 16, + limits.maxStorageBuffersPerShaderStage + ); + setLimitValueU32( + 'maxStorageTexturesInVertexStage', + compatibilityModeLimitsPtr, + 12, + limits.maxStorageTexturesPerShaderStage + ); + setLimitValueU32( + 'maxStorageTexturesInFragmentStage', + compatibilityModeLimitsPtr, + 20, + limits.maxStorageTexturesPerShaderStage + ); + } + }, + fillAdapterInfoStruct: (info, infoStruct) => { + (growMemViews(), HEAPU32)[((infoStruct + 52) >>> 2) >>> 0] = + info.subgroupMinSize; + (growMemViews(), HEAPU32)[((infoStruct + 56) >>> 2) >>> 0] = + info.subgroupMaxSize; + var strs = info.vendor + info.architecture + info.device + info.description; + var strPtr = stringToNewUTF8(strs); + var vendorLen = lengthBytesUTF8(info.vendor); + WebGPU.setStringView(infoStruct + 4, strPtr, vendorLen); + strPtr += vendorLen; + var architectureLen = lengthBytesUTF8(info.architecture); + WebGPU.setStringView(infoStruct + 12, strPtr, architectureLen); + strPtr += architectureLen; + var deviceLen = lengthBytesUTF8(info.device); + WebGPU.setStringView(infoStruct + 20, strPtr, deviceLen); + strPtr += deviceLen; + var descriptionLen = lengthBytesUTF8(info.description); + WebGPU.setStringView(infoStruct + 28, strPtr, descriptionLen); + strPtr += descriptionLen; + (growMemViews(), HEAP32)[((infoStruct + 36) >>> 2) >>> 0] = 2; + var adapterType = info.isFallbackAdapter ? 3 : 4; + (growMemViews(), HEAP32)[((infoStruct + 40) >>> 2) >>> 0] = adapterType; + (growMemViews(), HEAPU32)[((infoStruct + 44) >>> 2) >>> 0] = 0; + (growMemViews(), HEAPU32)[((infoStruct + 48) >>> 2) >>> 0] = 0; + }, + AddressMode: [, 'clamp-to-edge', 'repeat', 'mirror-repeat'], + BlendFactor: [ + , + 'zero', + 'one', + 'src', + 'one-minus-src', + 'src-alpha', + 'one-minus-src-alpha', + 'dst', + 'one-minus-dst', + 'dst-alpha', + 'one-minus-dst-alpha', + 'src-alpha-saturated', + 'constant', + 'one-minus-constant', + 'src1', + 'one-minus-src1', + 'src1-alpha', + 'one-minus-src1-alpha', + ], + BlendOperation: [, 'add', 'subtract', 'reverse-subtract', 'min', 'max'], + BufferBindingType: [, , 'uniform', 'storage', 'read-only-storage'], + BufferMapState: [, 'unmapped', 'pending', 'mapped'], + CompareFunction: [ + , + 'never', + 'less', + 'equal', + 'less-equal', + 'greater', + 'not-equal', + 'greater-equal', + 'always', + ], + CompilationInfoRequestStatus: [, 'success', 'callback-cancelled'], + ComponentSwizzle: [, '0', '1', 'r', 'g', 'b', 'a'], + CompositeAlphaMode: [ + , + 'opaque', + 'premultiplied', + 'unpremultiplied', + 'inherit', + ], + CullMode: [, 'none', 'front', 'back'], + ErrorFilter: [, 'validation', 'out-of-memory', 'internal'], + FeatureLevel: [, 'compatibility', 'core'], + FeatureName: { + 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', + 22: 'texture-component-swizzle', + 327692: 'chromium-experimental-unorm16-texture-formats', + 327729: 'chromium-experimental-multi-draw-indirect', + }, + FilterMode: [, 'nearest', 'linear'], + FrontFace: [, 'ccw', 'cw'], + IndexFormat: [, 'uint16', 'uint32'], + InstanceFeatureName: [ + , + 'timed-wait-any', + 'shader-source-spirv', + 'multiple-devices-per-adapter', + ], + LoadOp: [, 'load', 'clear'], + MipmapFilterMode: [, 'nearest', 'linear'], + OptionalBool: ['false', 'true'], + PowerPreference: [, 'low-power', 'high-performance'], + PredefinedColorSpace: [, 'srgb', 'display-p3'], + PrimitiveTopology: [ + , + 'point-list', + 'line-list', + 'line-strip', + 'triangle-list', + 'triangle-strip', + ], + QueryType: [, 'occlusion', 'timestamp'], + SamplerBindingType: [, , 'filtering', 'non-filtering', 'comparison'], + Status: [, 'success', 'error'], + StencilOperation: [ + , + 'keep', + 'zero', + 'replace', + 'invert', + 'increment-clamp', + 'decrement-clamp', + 'increment-wrap', + 'decrement-wrap', + ], + StorageTextureAccess: [, , 'write-only', 'read-only', 'read-write'], + StoreOp: [, 'store', 'discard'], + SurfaceGetCurrentTextureStatus: [ + , + 'success-optimal', + 'success-suboptimal', + 'timeout', + 'outdated', + 'lost', + 'error', + ], + TextureAspect: [, 'all', 'stencil-only', 'depth-only'], + TextureDimension: [, '1d', '2d', '3d'], + TextureFormat: [ + , + 'r8unorm', + 'r8snorm', + 'r8uint', + 'r8sint', + 'r16unorm', + 'r16snorm', + 'r16uint', + 'r16sint', + 'r16float', + 'rg8unorm', + 'rg8snorm', + 'rg8uint', + 'rg8sint', + 'r32float', + 'r32uint', + 'r32sint', + 'rg16unorm', + 'rg16snorm', + 'rg16uint', + 'rg16sint', + 'rg16float', + 'rgba8unorm', + 'rgba8unorm-srgb', + 'rgba8snorm', + 'rgba8uint', + 'rgba8sint', + 'bgra8unorm', + 'bgra8unorm-srgb', + 'rgb10a2uint', + 'rgb10a2unorm', + 'rg11b10ufloat', + 'rgb9e5ufloat', + 'rg32float', + 'rg32uint', + 'rg32sint', + 'rgba16unorm', + 'rgba16snorm', + 'rgba16uint', + 'rgba16sint', + 'rgba16float', + 'rgba32float', + 'rgba32uint', + 'rgba32sint', + 'stencil8', + 'depth16unorm', + 'depth24plus', + 'depth24plus-stencil8', + 'depth32float', + 'depth32float-stencil8', + 'bc1-rgba-unorm', + 'bc1-rgba-unorm-srgb', + 'bc2-rgba-unorm', + 'bc2-rgba-unorm-srgb', + 'bc3-rgba-unorm', + 'bc3-rgba-unorm-srgb', + 'bc4-r-unorm', + 'bc4-r-snorm', + 'bc5-rg-unorm', + 'bc5-rg-snorm', + 'bc6h-rgb-ufloat', + 'bc6h-rgb-float', + 'bc7-rgba-unorm', + 'bc7-rgba-unorm-srgb', + 'etc2-rgb8unorm', + 'etc2-rgb8unorm-srgb', + 'etc2-rgb8a1unorm', + 'etc2-rgb8a1unorm-srgb', + 'etc2-rgba8unorm', + 'etc2-rgba8unorm-srgb', + 'eac-r11unorm', + 'eac-r11snorm', + 'eac-rg11unorm', + 'eac-rg11snorm', + 'astc-4x4-unorm', + 'astc-4x4-unorm-srgb', + 'astc-5x4-unorm', + 'astc-5x4-unorm-srgb', + 'astc-5x5-unorm', + 'astc-5x5-unorm-srgb', + 'astc-6x5-unorm', + 'astc-6x5-unorm-srgb', + 'astc-6x6-unorm', + 'astc-6x6-unorm-srgb', + 'astc-8x5-unorm', + 'astc-8x5-unorm-srgb', + 'astc-8x6-unorm', + 'astc-8x6-unorm-srgb', + 'astc-8x8-unorm', + 'astc-8x8-unorm-srgb', + 'astc-10x5-unorm', + 'astc-10x5-unorm-srgb', + 'astc-10x6-unorm', + 'astc-10x6-unorm-srgb', + 'astc-10x8-unorm', + 'astc-10x8-unorm-srgb', + 'astc-10x10-unorm', + 'astc-10x10-unorm-srgb', + 'astc-12x10-unorm', + 'astc-12x10-unorm-srgb', + 'astc-12x12-unorm', + 'astc-12x12-unorm-srgb', + ], + TextureSampleType: [ + , + , + 'float', + 'unfilterable-float', + 'depth', + 'sint', + 'uint', + ], + TextureViewDimension: [, '1d', '2d', '2d-array', 'cube', 'cube-array', '3d'], + ToneMappingMode: [, 'standard', 'extended'], + VertexFormat: [ + , + 'uint8', + 'uint8x2', + 'uint8x4', + 'sint8', + 'sint8x2', + 'sint8x4', + 'unorm8', + 'unorm8x2', + 'unorm8x4', + 'snorm8', + 'snorm8x2', + 'snorm8x4', + 'uint16', + 'uint16x2', + 'uint16x4', + 'sint16', + 'sint16x2', + 'sint16x4', + 'unorm16', + 'unorm16x2', + 'unorm16x4', + 'snorm16', + 'snorm16x2', + 'snorm16x4', + 'float16', + 'float16x2', + 'float16x4', + 'float32', + 'float32x2', + 'float32x3', + 'float32x4', + 'uint32', + 'uint32x2', + 'uint32x3', + 'uint32x4', + 'sint32', + 'sint32x2', + 'sint32x3', + 'sint32x4', + 'unorm10-10-10-2', + 'unorm8x4-bgra', + ], + VertexStepMode: [, 'vertex', 'instance'], + WGSLLanguageFeatureName: [ + , + 'readonly_and_readwrite_storage_textures', + 'packed_4x8_integer_dot_product', + 'unrestricted_pointer_parameters', + 'pointer_composite_access', + 'uniform_buffer_standard_layout', + 'subgroup_id', + 'texture_and_sampler_let', + 'subgroup_uniformity', + 'texture_formats_tier1', + ], +}; +var emwgpuStringToInt_DeviceLostReason = { + undefined: 1, + unknown: 1, + destroyed: 2, +}; +var runtimeKeepalivePop = () => { + runtimeKeepaliveCounter -= 1; +}; +function _emwgpuAdapterRequestDevice( + adapterPtr, + futureId, + deviceLostFutureId, + devicePtr, + queuePtr, + descriptor +) { + adapterPtr >>>= 0; + futureId = bigintToI53Checked(futureId); + deviceLostFutureId = bigintToI53Checked(deviceLostFutureId); + devicePtr >>>= 0; + queuePtr >>>= 0; + descriptor >>>= 0; + var adapter = WebGPU.getJsObject(adapterPtr); + var desc = {}; + if (descriptor) { + var requiredFeatureCount = (growMemViews(), HEAPU32)[ + ((descriptor + 12) >>> 2) >>> 0 + ]; + if (requiredFeatureCount) { + var requiredFeaturesPtr = (growMemViews(), HEAPU32)[ + ((descriptor + 16) >>> 2) >>> 0 + ]; + desc['requiredFeatures'] = Array.from( + (growMemViews(), HEAPU32).subarray( + (requiredFeaturesPtr >>> 2) >>> 0, + ((requiredFeaturesPtr + requiredFeatureCount * 4) >>> 2) >>> 0 + ), + (feature) => WebGPU.FeatureName[feature] + ); + } + var limitsPtr = (growMemViews(), HEAPU32)[((descriptor + 20) >>> 2) >>> 0]; + if (limitsPtr) { + var nextInChainPtr = (growMemViews(), HEAPU32)[(limitsPtr >>> 2) >>> 0]; + var requiredLimits = {}; + function setLimitU32IfDefined( + name, + basePtr, + limitOffset, + ignoreIfZero = false + ) { + var ptr = basePtr + limitOffset; + var value = (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0]; + if (value != 4294967295 && (!ignoreIfZero || value != 0)) { + requiredLimits[name] = value; + } + } + function setLimitU64IfDefined(name, basePtr, limitOffset) { + var ptr = basePtr + limitOffset; + var limitPart1 = (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0]; + var limitPart2 = (growMemViews(), HEAPU32)[((ptr + 4) >>> 2) >>> 0]; + if (limitPart1 != 4294967295 || limitPart2 != 4294967295) { + requiredLimits[name] = readI53FromI64(ptr); + } + } + setLimitU32IfDefined('maxTextureDimension1D', limitsPtr, 4); + setLimitU32IfDefined('maxTextureDimension2D', limitsPtr, 8); + setLimitU32IfDefined('maxTextureDimension3D', limitsPtr, 12); + setLimitU32IfDefined('maxTextureArrayLayers', limitsPtr, 16); + setLimitU32IfDefined('maxBindGroups', limitsPtr, 20); + setLimitU32IfDefined('maxBindGroupsPlusVertexBuffers', limitsPtr, 24); + setLimitU32IfDefined('maxBindingsPerBindGroup', limitsPtr, 28); + setLimitU32IfDefined( + 'maxDynamicUniformBuffersPerPipelineLayout', + limitsPtr, + 32 + ); + setLimitU32IfDefined( + 'maxDynamicStorageBuffersPerPipelineLayout', + limitsPtr, + 36 + ); + setLimitU32IfDefined('maxSampledTexturesPerShaderStage', limitsPtr, 40); + setLimitU32IfDefined('maxSamplersPerShaderStage', limitsPtr, 44); + setLimitU32IfDefined('maxStorageBuffersPerShaderStage', limitsPtr, 48); + setLimitU32IfDefined('maxStorageTexturesPerShaderStage', limitsPtr, 52); + setLimitU32IfDefined('maxUniformBuffersPerShaderStage', limitsPtr, 56); + setLimitU32IfDefined('minUniformBufferOffsetAlignment', limitsPtr, 80); + setLimitU32IfDefined('minStorageBufferOffsetAlignment', limitsPtr, 84); + setLimitU64IfDefined('maxUniformBufferBindingSize', limitsPtr, 64); + setLimitU64IfDefined('maxStorageBufferBindingSize', limitsPtr, 72); + setLimitU32IfDefined('maxVertexBuffers', limitsPtr, 88); + setLimitU64IfDefined('maxBufferSize', limitsPtr, 96); + setLimitU32IfDefined('maxVertexAttributes', limitsPtr, 104); + setLimitU32IfDefined('maxVertexBufferArrayStride', limitsPtr, 108); + setLimitU32IfDefined('maxInterStageShaderVariables', limitsPtr, 112); + setLimitU32IfDefined('maxColorAttachments', limitsPtr, 116); + setLimitU32IfDefined('maxColorAttachmentBytesPerSample', limitsPtr, 120); + setLimitU32IfDefined('maxComputeWorkgroupStorageSize', limitsPtr, 124); + setLimitU32IfDefined('maxComputeInvocationsPerWorkgroup', limitsPtr, 128); + setLimitU32IfDefined('maxComputeWorkgroupSizeX', limitsPtr, 132); + setLimitU32IfDefined('maxComputeWorkgroupSizeY', limitsPtr, 136); + setLimitU32IfDefined('maxComputeWorkgroupSizeZ', limitsPtr, 140); + setLimitU32IfDefined('maxComputeWorkgroupsPerDimension', limitsPtr, 144); + setLimitU32IfDefined('maxImmediateSize', limitsPtr, 148, true); + if (nextInChainPtr !== 0) { + var sType = (growMemViews(), HEAP32)[ + ((nextInChainPtr + 4) >>> 2) >>> 0 + ]; + var compatibilityModeLimitsPtr = nextInChainPtr; + if ('maxStorageBuffersInVertexStage' in GPUSupportedLimits.prototype) { + setLimitU32IfDefined( + 'maxStorageBuffersInVertexStage', + compatibilityModeLimitsPtr, + 8 + ); + setLimitU32IfDefined( + 'maxStorageTexturesInVertexStage', + compatibilityModeLimitsPtr, + 12 + ); + setLimitU32IfDefined( + 'maxStorageBuffersInFragmentStage', + compatibilityModeLimitsPtr, + 16 + ); + setLimitU32IfDefined( + 'maxStorageTexturesInFragmentStage', + compatibilityModeLimitsPtr, + 20 + ); + } + } + desc['requiredLimits'] = requiredLimits; + } + var defaultQueuePtr = (growMemViews(), HEAPU32)[ + ((descriptor + 24) >>> 2) >>> 0 + ]; + if (defaultQueuePtr) { + var defaultQueueDesc = { + label: WebGPU.makeStringFromOptionalStringView(defaultQueuePtr + 4), + }; + desc['defaultQueue'] = defaultQueueDesc; + } + desc['label'] = WebGPU.makeStringFromOptionalStringView(descriptor + 4); + } + runtimeKeepalivePush(); + WebGPU.Internals.futureInsert( + futureId, + adapter.requestDevice(desc).then( + (device) => { + runtimeKeepalivePop(); + callUserCallback(() => { + WebGPU.Internals.jsObjectInsert(queuePtr, device.queue); + WebGPU.Internals.jsObjectInsert(devicePtr, device); + WebGPU.Internals.futureInsert( + deviceLostFutureId, + device.lost.then((info) => { + callUserCallback(() => { + device.onuncapturederror = (ev) => {}; + var sp = stackSave(); + var messagePtr = stringToUTF8OnStack(info.message); + _emwgpuOnDeviceLostCompleted( + deviceLostFutureId, + emwgpuStringToInt_DeviceLostReason[info.reason], + messagePtr + ); + stackRestore(sp); + }); + }) + ); + device.onuncapturederror = (ev) => { + var type = 5; + if (ev.error instanceof GPUValidationError) type = 2; + else if (ev.error instanceof GPUOutOfMemoryError) type = 3; + else if (ev.error instanceof GPUInternalError) type = 4; + var sp = stackSave(); + var messagePtr = stringToUTF8OnStack(ev.error.message); + _emwgpuOnUncapturedError(devicePtr, type, messagePtr); + stackRestore(sp); + }; + _emwgpuOnRequestDeviceCompleted(futureId, 1, devicePtr, 0); + }); + }, + (ex) => { + runtimeKeepalivePop(); + callUserCallback(() => { + var sp = stackSave(); + var messagePtr = stringToUTF8OnStack(ex.message); + _emwgpuOnRequestDeviceCompleted(futureId, 3, devicePtr, messagePtr); + if (deviceLostFutureId) { + _emwgpuOnDeviceLostCompleted(deviceLostFutureId, 4, messagePtr); + } + stackRestore(sp); + }); + } + ) + ); +} +function _emwgpuBufferDestroy(bufferPtr) { + bufferPtr >>>= 0; + var buffer = WebGPU.getJsObject(bufferPtr); + var onUnmap = WebGPU.Internals.bufferOnUnmaps[bufferPtr]; + if (onUnmap) { + for (var i = 0; i < onUnmap.length; ++i) { + onUnmap[i](); + } + delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]; + } + buffer.destroy(); +} +var warnOnce = (text) => { + warnOnce.shown ||= {}; + if (!warnOnce.shown[text]) { + warnOnce.shown[text] = 1; + if (ENVIRONMENT_IS_NODE) text = 'warning: ' + text; + err(text); + } +}; +function _emwgpuBufferGetConstMappedRange(bufferPtr, offset, size) { + bufferPtr >>>= 0; + offset >>>= 0; + size >>>= 0; + var buffer = WebGPU.getJsObject(bufferPtr); + if (size == 4294967295) size = undefined; + var mapped; + try { + mapped = buffer.getMappedRange(offset, size); + } catch (ex) { + return 0; + } + var data = _memalign(16, mapped.byteLength); + (growMemViews(), HEAPU8).set(new Uint8Array(mapped), data >>> 0); + WebGPU.Internals.bufferOnUnmaps[bufferPtr].push(() => _free(data)); + return data; +} +var _emwgpuBufferMapAsync = function (bufferPtr, futureId, mode, offset, size) { + bufferPtr >>>= 0; + futureId = bigintToI53Checked(futureId); + mode = bigintToI53Checked(mode); + offset >>>= 0; + size >>>= 0; + var buffer = WebGPU.getJsObject(bufferPtr); + WebGPU.Internals.bufferOnUnmaps[bufferPtr] = []; + if (size == 4294967295) size = undefined; + runtimeKeepalivePush(); + WebGPU.Internals.futureInsert( + futureId, + buffer.mapAsync(mode, offset, size).then( + () => { + runtimeKeepalivePop(); + callUserCallback(() => { + _emwgpuOnMapAsyncCompleted(futureId, 1, 0); + }); + }, + (ex) => { + runtimeKeepalivePop(); + callUserCallback(() => { + var sp = stackSave(); + var messagePtr = stringToUTF8OnStack(ex.message); + var status = + ex.name === 'AbortError' ? 4 : ex.name === 'OperationError' ? 3 : 0; + _emwgpuOnMapAsyncCompleted(futureId, status, messagePtr); + delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]; + }); + } + ) + ); +}; +function _emwgpuBufferUnmap(bufferPtr) { + bufferPtr >>>= 0; + var buffer = WebGPU.getJsObject(bufferPtr); + var onUnmap = WebGPU.Internals.bufferOnUnmaps[bufferPtr]; + if (!onUnmap) { + return; + } + for (var i = 0; i < onUnmap.length; ++i) { + onUnmap[i](); + } + delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]; + buffer.unmap(); +} +function _emwgpuDelete(ptr) { + ptr >>>= 0; + delete WebGPU.Internals.jsObjects[ptr]; +} +function _emwgpuDeviceCreateBuffer(devicePtr, descriptor, bufferPtr) { + devicePtr >>>= 0; + descriptor >>>= 0; + bufferPtr >>>= 0; + var mappedAtCreation = !!(growMemViews(), HEAPU32)[ + ((descriptor + 32) >>> 2) >>> 0 + ]; + var desc = { + label: WebGPU.makeStringFromOptionalStringView(descriptor + 4), + usage: (growMemViews(), HEAPU32)[((descriptor + 16) >>> 2) >>> 0], + size: readI53FromI64(descriptor + 24), + mappedAtCreation, + }; + var device = WebGPU.getJsObject(devicePtr); + var buffer; + try { + buffer = device.createBuffer(desc); + } catch (ex) { + return false; + } + WebGPU.Internals.jsObjectInsert(bufferPtr, buffer); + if (mappedAtCreation) { + WebGPU.Internals.bufferOnUnmaps[bufferPtr] = []; + } + return true; +} +function _emwgpuDeviceCreateShaderModule( + devicePtr, + descriptor, + shaderModulePtr +) { + devicePtr >>>= 0; + descriptor >>>= 0; + shaderModulePtr >>>= 0; + var nextInChainPtr = (growMemViews(), HEAPU32)[(descriptor >>> 2) >>> 0]; + var sType = (growMemViews(), HEAP32)[((nextInChainPtr + 4) >>> 2) >>> 0]; + var desc = { + label: WebGPU.makeStringFromOptionalStringView(descriptor + 4), + code: '', + }; + switch (sType) { + case 2: { + desc['code'] = WebGPU.makeStringFromStringView(nextInChainPtr + 8); + break; + } + } + var device = WebGPU.getJsObject(devicePtr); + WebGPU.Internals.jsObjectInsert( + shaderModulePtr, + device.createShaderModule(desc) + ); +} +var _emwgpuDeviceDestroy = (devicePtr) => { + const device = WebGPU.getJsObject(devicePtr); + device.onuncapturederror = null; + device.destroy(); +}; +function _emwgpuInstanceRequestAdapter( + instancePtr, + futureId, + options, + adapterPtr +) { + instancePtr >>>= 0; + futureId = bigintToI53Checked(futureId); + options >>>= 0; + adapterPtr >>>= 0; + var opts; + if (options) { + opts = { + featureLevel: + WebGPU.FeatureLevel[ + (growMemViews(), HEAP32)[((options + 4) >>> 2) >>> 0] + ], + powerPreference: + WebGPU.PowerPreference[ + (growMemViews(), HEAP32)[((options + 8) >>> 2) >>> 0] + ], + forceFallbackAdapter: !!(growMemViews(), HEAPU32)[ + ((options + 12) >>> 2) >>> 0 + ], + }; + var nextInChainPtr = (growMemViews(), HEAPU32)[(options >>> 2) >>> 0]; + if (nextInChainPtr !== 0) { + var sType = (growMemViews(), HEAP32)[((nextInChainPtr + 4) >>> 2) >>> 0]; + var webxrOptions = nextInChainPtr; + opts.xrCompatible = !!(growMemViews(), HEAPU32)[ + ((webxrOptions + 8) >>> 2) >>> 0 + ]; + } + } + if (!('gpu' in navigator)) { + var sp = stackSave(); + var messagePtr = stringToUTF8OnStack( + 'WebGPU not available on this browser (navigator.gpu is not available)' + ); + _emwgpuOnRequestAdapterCompleted(futureId, 3, adapterPtr, messagePtr); + stackRestore(sp); + return; + } + runtimeKeepalivePush(); + WebGPU.Internals.futureInsert( + futureId, + navigator.gpu.requestAdapter(opts).then( + (adapter) => { + runtimeKeepalivePop(); + callUserCallback(() => { + if (adapter) { + WebGPU.Internals.jsObjectInsert(adapterPtr, adapter); + _emwgpuOnRequestAdapterCompleted(futureId, 1, adapterPtr, 0); + } else { + var sp = stackSave(); + var messagePtr = stringToUTF8OnStack( + 'WebGPU not available on this browser (requestAdapter returned null)' + ); + _emwgpuOnRequestAdapterCompleted( + futureId, + 3, + adapterPtr, + messagePtr + ); + stackRestore(sp); + } + }); + }, + (ex) => { + runtimeKeepalivePop(); + callUserCallback(() => { + var sp = stackSave(); + var messagePtr = stringToUTF8OnStack(ex.message); + _emwgpuOnRequestAdapterCompleted(futureId, 4, adapterPtr, messagePtr); + stackRestore(sp); + }); + } + ) + ); +} +var _emwgpuQueueOnSubmittedWorkDone = function (queuePtr, futureId) { + queuePtr >>>= 0; + futureId = bigintToI53Checked(futureId); + var queue = WebGPU.getJsObject(queuePtr); + runtimeKeepalivePush(); + WebGPU.Internals.futureInsert( + futureId, + queue.onSubmittedWorkDone().then(() => { + runtimeKeepalivePop(); + callUserCallback(() => { + _emwgpuOnWorkDoneCompleted(futureId, 1); + }); + }) + ); +}; +var _emwgpuWaitAny = function (futurePtr, futureCount, timeoutMSPtr) { + futurePtr >>>= 0; + futureCount >>>= 0; + timeoutMSPtr >>>= 0; + return Asyncify.handleAsync(async () => { + var promises = []; + if (timeoutMSPtr) { + var timeoutMS = (growMemViews(), HEAP32)[(timeoutMSPtr >>> 2) >>> 0]; + promises.length = futureCount + 1; + promises[futureCount] = new Promise((resolve) => + setTimeout(resolve, timeoutMS, 0) + ); + } else { + promises.length = futureCount; + } + for (var i = 0; i < futureCount; ++i) { + var futureId = readI53FromI64(futurePtr + i * 8); + if (!(futureId in WebGPU.Internals.futures)) { + return futureId; + } + promises[i] = WebGPU.Internals.futures[futureId]; + } + const firstResolvedFuture = await Promise.race(promises); + delete WebGPU.Internals.futures[firstResolvedFuture]; + return firstResolvedFuture; + }); +}; +_emwgpuWaitAny.isAsync = true; +var ENV = {}; +var getExecutableName = () => thisProgram || './this.program'; +var getEnvStrings = () => { + if (!getEnvStrings.strings) { + var lang = + ((typeof navigator == 'object' && navigator.language) || 'C').replace( + '-', + '_' + ) + '.UTF-8'; + var env = { + USER: 'web_user', + LOGNAME: 'web_user', + PATH: '/', + PWD: '/', + HOME: '/home/web_user', + LANG: lang, + _: getExecutableName(), + }; + for (var x in ENV) { + if (ENV[x] === undefined) delete env[x]; + else env[x] = ENV[x]; + } + var strings = []; + for (var x in env) { + strings.push(`${x}=${env[x]}`); + } + getEnvStrings.strings = strings; + } + return getEnvStrings.strings; +}; +function _environ_get(__environ, environ_buf) { + if (ENVIRONMENT_IS_PTHREAD) + return proxyToMainThread(15, 0, 1, __environ, environ_buf); + __environ >>>= 0; + environ_buf >>>= 0; + var bufSize = 0; + var envp = 0; + for (var string of getEnvStrings()) { + var ptr = environ_buf + bufSize; + (growMemViews(), HEAPU32)[((__environ + envp) >>> 2) >>> 0] = ptr; + bufSize += stringToUTF8(string, ptr, Infinity) + 1; + envp += 4; + } + return 0; +} +function _environ_sizes_get(penviron_count, penviron_buf_size) { + if (ENVIRONMENT_IS_PTHREAD) + return proxyToMainThread(16, 0, 1, penviron_count, penviron_buf_size); + penviron_count >>>= 0; + penviron_buf_size >>>= 0; + var strings = getEnvStrings(); + (growMemViews(), HEAPU32)[(penviron_count >>> 2) >>> 0] = strings.length; + var bufSize = 0; + for (var string of strings) { + bufSize += lengthBytesUTF8(string) + 1; + } + (growMemViews(), HEAPU32)[(penviron_buf_size >>> 2) >>> 0] = bufSize; + return 0; +} +function _fd_close(fd) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(17, 0, 1, fd); + try { + var stream = SYSCALLS.getStreamFromFD(fd); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return e.errno; + } +} +var doReadv = (stream, iov, iovcnt, offset) => { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = (growMemViews(), HEAPU32)[(iov >>> 2) >>> 0]; + var len = (growMemViews(), HEAPU32)[((iov + 4) >>> 2) >>> 0]; + iov += 8; + var curr = FS.read(stream, (growMemViews(), HEAP8), ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) break; + if (typeof offset != 'undefined') { + offset += curr; + } + } + return ret; +}; +function _fd_read(fd, iov, iovcnt, pnum) { + if (ENVIRONMENT_IS_PTHREAD) + return proxyToMainThread(18, 0, 1, fd, iov, iovcnt, pnum); + iov >>>= 0; + iovcnt >>>= 0; + pnum >>>= 0; + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doReadv(stream, iov, iovcnt); + (growMemViews(), HEAPU32)[(pnum >>> 2) >>> 0] = num; + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return e.errno; + } +} +function _fd_seek(fd, offset, whence, newOffset) { + if (ENVIRONMENT_IS_PTHREAD) + return proxyToMainThread(19, 0, 1, fd, offset, whence, newOffset); + offset = bigintToI53Checked(offset); + newOffset >>>= 0; + try { + if (isNaN(offset)) return 61; + var stream = SYSCALLS.getStreamFromFD(fd); + FS.llseek(stream, offset, whence); + (growMemViews(), HEAP64)[(newOffset >>> 3) >>> 0] = BigInt(stream.position); + if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return e.errno; + } +} +var doWritev = (stream, iov, iovcnt, offset) => { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = (growMemViews(), HEAPU32)[(iov >>> 2) >>> 0]; + var len = (growMemViews(), HEAPU32)[((iov + 4) >>> 2) >>> 0]; + iov += 8; + var curr = FS.write(stream, (growMemViews(), HEAP8), ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) { + break; + } + if (typeof offset != 'undefined') { + offset += curr; + } + } + return ret; +}; +function _fd_write(fd, iov, iovcnt, pnum) { + if (ENVIRONMENT_IS_PTHREAD) + return proxyToMainThread(20, 0, 1, fd, iov, iovcnt, pnum); + iov >>>= 0; + iovcnt >>>= 0; + pnum >>>= 0; + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doWritev(stream, iov, iovcnt); + (growMemViews(), HEAPU32)[(pnum >>> 2) >>> 0] = num; + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return e.errno; + } +} +function _llvm_eh_typeid_for(type) { + type >>>= 0; + return type; +} +function _random_get(buffer, size) { + buffer >>>= 0; + size >>>= 0; + try { + randomFill( + (growMemViews(), HEAPU8).subarray(buffer >>> 0, (buffer + size) >>> 0) + ); + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return e.errno; + } +} +var emwgpuStringToInt_FeatureName = { + 'core-features-and-limits': 1, + 'depth-clip-control': 2, + 'depth32float-stencil8': 3, + 'texture-compression-bc': 4, + 'texture-compression-bc-sliced-3d': 5, + 'texture-compression-etc2': 6, + 'texture-compression-astc': 7, + 'texture-compression-astc-sliced-3d': 8, + 'timestamp-query': 9, + 'indirect-first-instance': 10, + 'shader-f16': 11, + 'rg11b10ufloat-renderable': 12, + 'bgra8unorm-storage': 13, + 'float32-filterable': 14, + 'float32-blendable': 15, + 'clip-distances': 16, + 'dual-source-blending': 17, + subgroups: 18, + 'texture-formats-tier1': 19, + 'texture-formats-tier2': 20, + 'primitive-index': 21, + 'texture-component-swizzle': 22, + 'chromium-experimental-unorm16-texture-formats': 327692, + 'chromium-experimental-multi-draw-indirect': 327729, +}; +function _wgpuAdapterGetFeatures(adapterPtr, supportedFeatures) { + adapterPtr >>>= 0; + supportedFeatures >>>= 0; + var adapter = WebGPU.getJsObject(adapterPtr); + var featuresPtr = _malloc(adapter.features.size * 4); + var offset = 0; + var numFeatures = 0; + for (const feature of adapter.features) { + var featureEnumValue = emwgpuStringToInt_FeatureName[feature]; + if (featureEnumValue >= 0) { + (growMemViews(), HEAP32)[((featuresPtr + offset) >>> 2) >>> 0] = + featureEnumValue; + offset += 4; + numFeatures++; + } + } + (growMemViews(), HEAPU32)[((supportedFeatures + 4) >>> 2) >>> 0] = + featuresPtr; + (growMemViews(), HEAPU32)[(supportedFeatures >>> 2) >>> 0] = numFeatures; +} +function _wgpuAdapterGetInfo(adapterPtr, info) { + adapterPtr >>>= 0; + info >>>= 0; + var adapter = WebGPU.getJsObject(adapterPtr); + WebGPU.fillAdapterInfoStruct(adapter.info, info); + return 1; +} +function _wgpuAdapterGetLimits(adapterPtr, limitsOutPtr) { + adapterPtr >>>= 0; + limitsOutPtr >>>= 0; + var adapter = WebGPU.getJsObject(adapterPtr); + WebGPU.fillLimitStruct(adapter.limits, limitsOutPtr); + return 1; +} +function _wgpuAdapterHasFeature(adapterPtr, featureEnumValue) { + adapterPtr >>>= 0; + var adapter = WebGPU.getJsObject(adapterPtr); + return adapter.features.has(WebGPU.FeatureName[featureEnumValue]); +} +var _wgpuBufferGetSize = function (bufferPtr) { + bufferPtr >>>= 0; + var ret = (() => { + var buffer = WebGPU.getJsObject(bufferPtr); + return buffer.size; + })(); + return BigInt(ret); +}; +function _wgpuCommandEncoderBeginComputePass(encoderPtr, descriptor) { + encoderPtr >>>= 0; + descriptor >>>= 0; + var desc; + if (descriptor) { + desc = { + label: WebGPU.makeStringFromOptionalStringView(descriptor + 4), + timestampWrites: WebGPU.makePassTimestampWrites( + (growMemViews(), HEAPU32)[((descriptor + 12) >>> 2) >>> 0] + ), + }; + } + var commandEncoder = WebGPU.getJsObject(encoderPtr); + var ptr = _emwgpuCreateComputePassEncoder(0); + WebGPU.Internals.jsObjectInsert(ptr, commandEncoder.beginComputePass(desc)); + return ptr; +} +function _wgpuCommandEncoderCopyBufferToBuffer( + encoderPtr, + srcPtr, + srcOffset, + dstPtr, + dstOffset, + size +) { + encoderPtr >>>= 0; + srcPtr >>>= 0; + srcOffset = bigintToI53Checked(srcOffset); + dstPtr >>>= 0; + dstOffset = bigintToI53Checked(dstOffset); + size = bigintToI53Checked(size); + var commandEncoder = WebGPU.getJsObject(encoderPtr); + var src = WebGPU.getJsObject(srcPtr); + var dst = WebGPU.getJsObject(dstPtr); + commandEncoder.copyBufferToBuffer(src, srcOffset, dst, dstOffset, size); +} +function _wgpuCommandEncoderFinish(encoderPtr, descriptor) { + encoderPtr >>>= 0; + descriptor >>>= 0; + var commandEncoder = WebGPU.getJsObject(encoderPtr); + var ptr = _emwgpuCreateCommandBuffer(0); + WebGPU.Internals.jsObjectInsert(ptr, commandEncoder.finish()); + return ptr; +} +function _wgpuComputePassEncoderDispatchWorkgroups(passPtr, x, y, z) { + passPtr >>>= 0; + var pass = WebGPU.getJsObject(passPtr); + pass.dispatchWorkgroups(x, y, z); +} +function _wgpuComputePassEncoderEnd(passPtr) { + passPtr >>>= 0; + var pass = WebGPU.getJsObject(passPtr); + pass.end(); +} +function _wgpuComputePassEncoderSetBindGroup( + passPtr, + groupIndex, + groupPtr, + dynamicOffsetCount, + dynamicOffsetsPtr +) { + passPtr >>>= 0; + groupPtr >>>= 0; + dynamicOffsetCount >>>= 0; + dynamicOffsetsPtr >>>= 0; + var pass = WebGPU.getJsObject(passPtr); + var group = WebGPU.getJsObject(groupPtr); + if (dynamicOffsetCount == 0) { + pass.setBindGroup(groupIndex, group); + } else { + pass.setBindGroup( + groupIndex, + group, + (growMemViews(), HEAPU32), + dynamicOffsetsPtr >>> 2, + dynamicOffsetCount + ); + } +} +function _wgpuComputePassEncoderSetPipeline(passPtr, pipelinePtr) { + passPtr >>>= 0; + pipelinePtr >>>= 0; + var pass = WebGPU.getJsObject(passPtr); + var pipeline = WebGPU.getJsObject(pipelinePtr); + pass.setPipeline(pipeline); +} +function _wgpuComputePipelineGetBindGroupLayout(pipelinePtr, groupIndex) { + pipelinePtr >>>= 0; + var pipeline = WebGPU.getJsObject(pipelinePtr); + var ptr = _emwgpuCreateBindGroupLayout(0); + WebGPU.Internals.jsObjectInsert(ptr, pipeline.getBindGroupLayout(groupIndex)); + return ptr; +} +var _wgpuDeviceCreateBindGroup = function (devicePtr, descriptor) { + devicePtr >>>= 0; + descriptor >>>= 0; + function makeEntry(entryPtr) { + var bufferPtr = (growMemViews(), HEAPU32)[((entryPtr + 8) >>> 2) >>> 0]; + var samplerPtr = (growMemViews(), HEAPU32)[((entryPtr + 32) >>> 2) >>> 0]; + var textureViewPtr = (growMemViews(), HEAPU32)[ + ((entryPtr + 36) >>> 2) >>> 0 + ]; + var externalTexturePtr = 0; + WebGPU.iterateExtensions(entryPtr, { + 327681: (ptr) => { + externalTexturePtr = (growMemViews(), HEAPU32)[((ptr + 8) >>> 2) >>> 0]; + }, + }); + var resource; + if (bufferPtr) { + var size = readI53FromI64(entryPtr + 24); + if (size == -1) size = undefined; + resource = { + buffer: WebGPU.getJsObject(bufferPtr), + offset: readI53FromI64(entryPtr + 16), + size, + }; + } else { + resource = WebGPU.getJsObject( + samplerPtr || textureViewPtr || externalTexturePtr + ); + } + return { + binding: (growMemViews(), HEAPU32)[((entryPtr + 4) >>> 2) >>> 0], + resource, + }; + } + function makeEntries(count, entriesPtrs) { + var entries = []; + for (var i = 0; i < count; ++i) { + entries.push(makeEntry(entriesPtrs + 40 * i)); + } + return entries; + } + var desc = { + label: WebGPU.makeStringFromOptionalStringView(descriptor + 4), + layout: WebGPU.getJsObject( + (growMemViews(), HEAPU32)[((descriptor + 12) >>> 2) >>> 0] + ), + entries: makeEntries( + (growMemViews(), HEAPU32)[((descriptor + 16) >>> 2) >>> 0], + (growMemViews(), HEAPU32)[((descriptor + 20) >>> 2) >>> 0] + ), + }; + var device = WebGPU.getJsObject(devicePtr); + var ptr = _emwgpuCreateBindGroup(0); + WebGPU.Internals.jsObjectInsert(ptr, device.createBindGroup(desc)); + return ptr; +}; +function _wgpuDeviceCreateCommandEncoder(devicePtr, descriptor) { + devicePtr >>>= 0; + descriptor >>>= 0; + var desc; + if (descriptor) { + desc = { label: WebGPU.makeStringFromOptionalStringView(descriptor + 4) }; + } + var device = WebGPU.getJsObject(devicePtr); + var ptr = _emwgpuCreateCommandEncoder(0); + WebGPU.Internals.jsObjectInsert(ptr, device.createCommandEncoder(desc)); + return ptr; +} +function _wgpuDeviceCreateComputePipeline(devicePtr, descriptor) { + devicePtr >>>= 0; + descriptor >>>= 0; + var desc = WebGPU.makeComputePipelineDesc(descriptor); + var device = WebGPU.getJsObject(devicePtr); + var ptr = _emwgpuCreateComputePipeline(0); + WebGPU.Internals.jsObjectInsert(ptr, device.createComputePipeline(desc)); + return ptr; +} +var _wgpuQueueSubmit = function (queuePtr, commandCount, commands) { + queuePtr >>>= 0; + commandCount >>>= 0; + commands >>>= 0; + var queue = WebGPU.getJsObject(queuePtr); + var cmds = Array.from( + (growMemViews(), HEAP32).subarray( + (commands >>> 2) >>> 0, + ((commands + commandCount * 4) >>> 2) >>> 0 + ), + (id) => WebGPU.getJsObject(id) + ); + queue.submit(cmds); +}; +function _wgpuQueueWriteBuffer(queuePtr, bufferPtr, bufferOffset, data, size) { + queuePtr >>>= 0; + bufferPtr >>>= 0; + bufferOffset = bigintToI53Checked(bufferOffset); + data >>>= 0; + size >>>= 0; + var queue = WebGPU.getJsObject(queuePtr); + var buffer = WebGPU.getJsObject(bufferPtr); + var subarray = (growMemViews(), HEAPU8).subarray( + data >>> 0, + (data + size) >>> 0 + ); + queue.writeBuffer(buffer, bufferOffset, subarray, 0, size); +} +var wasmTableMirror = []; +var getWasmTableEntry = (funcPtr) => { + var func = wasmTableMirror[funcPtr]; + if (!func) { + wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr); + } + return func; +}; +var runAndAbortIfError = (func) => { + try { + return func(); + } catch (e) { + abort(e); + } +}; +var Asyncify = { + instrumentWasmImports(imports) { + var importPattern = /^(invoke_.*|__asyncjs__.*)$/; + for (let [x, original] of Object.entries(imports)) { + if (typeof original == 'function') { + let isAsyncifyImport = original.isAsync || importPattern.test(x); + } + } + }, + instrumentFunction(original) { + var wrapper = (...args) => { + Asyncify.exportCallStack.push(original); + try { + return original(...args); + } finally { + if (!ABORT) { + var top = Asyncify.exportCallStack.pop(); + Asyncify.maybeStopUnwind(); + } + } + }; + Asyncify.funcWrappers.set(original, wrapper); + return wrapper; + }, + instrumentWasmExports(exports) { + var ret = {}; + for (let [x, original] of Object.entries(exports)) { + if (typeof original == 'function') { + var wrapper = Asyncify.instrumentFunction(original); + ret[x] = wrapper; + } else { + ret[x] = original; + } + } + return ret; + }, + State: { Normal: 0, Unwinding: 1, Rewinding: 2, Disabled: 3 }, + state: 0, + StackSize: 4096, + currData: null, + handleSleepReturnValue: 0, + exportCallStack: [], + callstackFuncToId: new Map(), + callStackIdToFunc: new Map(), + funcWrappers: new Map(), + callStackId: 0, + asyncPromiseHandlers: null, + sleepCallbacks: [], + getCallStackId(func) { + if (!Asyncify.callstackFuncToId.has(func)) { + var id = Asyncify.callStackId++; + Asyncify.callstackFuncToId.set(func, id); + Asyncify.callStackIdToFunc.set(id, func); + } + return Asyncify.callstackFuncToId.get(func); + }, + maybeStopUnwind() { + if ( + Asyncify.currData && + Asyncify.state === Asyncify.State.Unwinding && + Asyncify.exportCallStack.length === 0 + ) { + Asyncify.state = Asyncify.State.Normal; + runtimeKeepalivePush(); + runAndAbortIfError(_asyncify_stop_unwind); + if (typeof Fibers != 'undefined') { + Fibers.trampoline(); + } + } + }, + whenDone() { + return new Promise((resolve, reject) => { + Asyncify.asyncPromiseHandlers = { resolve, reject }; + }); + }, + allocateData() { + var ptr = _malloc(12 + Asyncify.StackSize); + Asyncify.setDataHeader(ptr, ptr + 12, Asyncify.StackSize); + Asyncify.setDataRewindFunc(ptr); + return ptr; + }, + setDataHeader(ptr, stack, stackSize) { + (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0] = stack; + (growMemViews(), HEAPU32)[((ptr + 4) >>> 2) >>> 0] = stack + stackSize; + }, + setDataRewindFunc(ptr) { + var bottomOfCallStack = Asyncify.exportCallStack[0]; + var rewindId = Asyncify.getCallStackId(bottomOfCallStack); + (growMemViews(), HEAP32)[((ptr + 8) >>> 2) >>> 0] = rewindId; + }, + getDataRewindFunc(ptr) { + var id = (growMemViews(), HEAP32)[((ptr + 8) >>> 2) >>> 0]; + var func = Asyncify.callStackIdToFunc.get(id); + return func; + }, + doRewind(ptr) { + var original = Asyncify.getDataRewindFunc(ptr); + var func = Asyncify.funcWrappers.get(original); + runtimeKeepalivePop(); + return func(); + }, + handleSleep(startAsync) { + if (ABORT) return; + if (Asyncify.state === Asyncify.State.Normal) { + var reachedCallback = false; + var reachedAfterCallback = false; + startAsync((handleSleepReturnValue = 0) => { + if (ABORT) return; + Asyncify.handleSleepReturnValue = handleSleepReturnValue; + reachedCallback = true; + if (!reachedAfterCallback) { + return; + } + Asyncify.state = Asyncify.State.Rewinding; + runAndAbortIfError(() => _asyncify_start_rewind(Asyncify.currData)); + if (typeof MainLoop != 'undefined' && MainLoop.func) { + MainLoop.resume(); + } + var asyncWasmReturnValue, + isError = false; + try { + asyncWasmReturnValue = Asyncify.doRewind(Asyncify.currData); + } catch (err) { + asyncWasmReturnValue = err; + isError = true; + } + var handled = false; + if (!Asyncify.currData) { + var asyncPromiseHandlers = Asyncify.asyncPromiseHandlers; + if (asyncPromiseHandlers) { + Asyncify.asyncPromiseHandlers = null; + (isError + ? asyncPromiseHandlers.reject + : asyncPromiseHandlers.resolve)(asyncWasmReturnValue); + handled = true; + } + } + if (isError && !handled) { + throw asyncWasmReturnValue; + } + }); + reachedAfterCallback = true; + if (!reachedCallback) { + Asyncify.state = Asyncify.State.Unwinding; + Asyncify.currData = Asyncify.allocateData(); + if (typeof MainLoop != 'undefined' && MainLoop.func) { + MainLoop.pause(); + } + runAndAbortIfError(() => _asyncify_start_unwind(Asyncify.currData)); + } + } else if (Asyncify.state === Asyncify.State.Rewinding) { + Asyncify.state = Asyncify.State.Normal; + runAndAbortIfError(_asyncify_stop_rewind); + _free(Asyncify.currData); + Asyncify.currData = null; + Asyncify.sleepCallbacks.forEach(callUserCallback); + } else { + abort(`invalid state: ${Asyncify.state}`); + } + return Asyncify.handleSleepReturnValue; + }, + handleAsync: (startAsync) => + Asyncify.handleSleep((wakeUp) => { + startAsync().then(wakeUp); + }), +}; +var getCFunc = (ident) => { + var func = Module['_' + ident]; + return func; +}; +var writeArrayToMemory = (array, buffer) => { + (growMemViews(), HEAP8).set(array, buffer >>> 0); +}; +var ccall = (ident, returnType, argTypes, args, opts) => { + var toC = { + string: (str) => { + var ret = 0; + if (str !== null && str !== undefined && str !== 0) { + ret = stringToUTF8OnStack(str); + } + return ret; + }, + array: (arr) => { + var ret = stackAlloc(arr.length); + writeArrayToMemory(arr, ret); + return ret; + }, + }; + function convertReturnValue(ret) { + if (returnType === 'string') { + return UTF8ToString(ret); + } + if (returnType === 'pointer') return ret >>> 0; + if (returnType === 'boolean') return Boolean(ret); + return ret; + } + var func = getCFunc(ident); + var cArgs = []; + var stack = 0; + if (args) { + for (var i = 0; i < args.length; i++) { + var converter = toC[argTypes[i]]; + if (converter) { + if (stack === 0) stack = stackSave(); + cArgs[i] = converter(args[i]); + } else { + cArgs[i] = args[i]; + } + } + } + var previousAsync = Asyncify.currData; + var ret = func(...cArgs); + function onDone(ret) { + runtimeKeepalivePop(); + if (stack !== 0) stackRestore(stack); + return convertReturnValue(ret); + } + var asyncMode = opts?.async; + runtimeKeepalivePush(); + if (Asyncify.currData != previousAsync) { + return Asyncify.whenDone().then(onDone); + } + ret = onDone(ret); + if (asyncMode) return Promise.resolve(ret); + return ret; +}; +var cwrap = (ident, returnType, argTypes, opts) => { + var numericArgs = + !argTypes || + argTypes.every((type) => type === 'number' || type === 'boolean'); + var numericRet = returnType !== 'string'; + if (numericRet && numericArgs && !opts) { + return getCFunc(ident); + } + return (...args) => ccall(ident, returnType, argTypes, args, opts); +}; +var FS_createPath = (...args) => FS.createPath(...args); +var FS_unlink = (...args) => FS.unlink(...args); +var FS_createLazyFile = (...args) => FS.createLazyFile(...args); +var FS_createDevice = (...args) => FS.createDevice(...args); +PThread.init(); +FS.createPreloadedFile = FS_createPreloadedFile; +FS.preloadFile = FS_preloadFile; +FS.staticInit(); +{ + initMemory(); + if (Module['noExitRuntime']) noExitRuntime = Module['noExitRuntime']; + if (Module['preloadPlugins']) preloadPlugins = Module['preloadPlugins']; + if (Module['print']) out = Module['print']; + if (Module['printErr']) err = Module['printErr']; + if (Module['wasmBinary']) wasmBinary = Module['wasmBinary']; + if (Module['arguments']) arguments_ = Module['arguments']; + if (Module['thisProgram']) thisProgram = Module['thisProgram']; + if (Module['preInit']) { + if (typeof Module['preInit'] == 'function') + Module['preInit'] = [Module['preInit']]; + while (Module['preInit'].length > 0) { + Module['preInit'].shift()(); + } + } +} +Module['addRunDependency'] = addRunDependency; +Module['removeRunDependency'] = removeRunDependency; +Module['ccall'] = ccall; +Module['cwrap'] = cwrap; +Module['FS_preloadFile'] = FS_preloadFile; +Module['FS_unlink'] = FS_unlink; +Module['FS_createPath'] = FS_createPath; +Module['FS_createDevice'] = FS_createDevice; +Module['FS_createDataFile'] = FS_createDataFile; +Module['FS_createLazyFile'] = FS_createLazyFile; +Module['ExitStatus'] = ExitStatus; +Module['PThread'] = PThread; +Module['terminateWorker'] = terminateWorker; +Module['cleanupThread'] = cleanupThread; +Module['addOnPreRun'] = addOnPreRun; +Module['onPreRuns'] = onPreRuns; +Module['callRuntimeCallbacks'] = callRuntimeCallbacks; +Module['addRunDependency'] = addRunDependency; +Module['runDependencies'] = runDependencies; +Module['removeRunDependency'] = removeRunDependency; +Module['dependenciesFulfilled'] = dependenciesFulfilled; +Module['spawnThread'] = spawnThread; +Module['_exit'] = _exit; +Module['exitJS'] = exitJS; +Module['_proc_exit'] = _proc_exit; +Module['keepRuntimeAlive'] = keepRuntimeAlive; +Module['runtimeKeepaliveCounter'] = runtimeKeepaliveCounter; +Module['proxyToMainThread'] = proxyToMainThread; +Module['stackSave'] = stackSave; +Module['stackRestore'] = stackRestore; +Module['stackAlloc'] = stackAlloc; +Module['exitOnMainThread'] = exitOnMainThread; +Module['addOnPostRun'] = addOnPostRun; +Module['onPostRuns'] = onPostRuns; +Module['dynCall'] = dynCall; +Module['dynCallLegacy'] = dynCallLegacy; +Module['dynCalls'] = dynCalls; +Module['establishStackSpace'] = establishStackSpace; +Module['getValue'] = getValue; +Module['invokeEntryPoint'] = invokeEntryPoint; +Module['noExitRuntime'] = noExitRuntime; +Module['registerTLSInit'] = registerTLSInit; +Module['setValue'] = setValue; +Module['wasmMemory'] = wasmMemory; +Module['___assert_fail'] = ___assert_fail; +Module['bigintToI53Checked'] = bigintToI53Checked; +Module['INT53_MAX'] = INT53_MAX; +Module['INT53_MIN'] = INT53_MIN; +Module['UTF8ToString'] = UTF8ToString; +Module['UTF8ArrayToString'] = UTF8ArrayToString; +Module['UTF8Decoder'] = UTF8Decoder; +Module['findStringEnd'] = findStringEnd; +Module['___cxa_begin_catch'] = ___cxa_begin_catch; +Module['exceptionCaught'] = exceptionCaught; +Module['uncaughtExceptionCount'] = uncaughtExceptionCount; +Module['___cxa_current_primary_exception'] = ___cxa_current_primary_exception; +Module['___cxa_end_catch'] = ___cxa_end_catch; +Module['exceptionLast'] = exceptionLast; +Module['___cxa_find_matching_catch_2'] = ___cxa_find_matching_catch_2; +Module['findMatchingCatch'] = findMatchingCatch; +Module['ExceptionInfo'] = ExceptionInfo; +Module['setTempRet0'] = setTempRet0; +Module['___cxa_find_matching_catch_3'] = ___cxa_find_matching_catch_3; +Module['___cxa_find_matching_catch_4'] = ___cxa_find_matching_catch_4; +Module['___cxa_find_matching_catch_7'] = ___cxa_find_matching_catch_7; +Module['___cxa_rethrow'] = ___cxa_rethrow; +Module['___cxa_rethrow_primary_exception'] = ___cxa_rethrow_primary_exception; +Module['___cxa_throw'] = ___cxa_throw; +Module['___cxa_uncaught_exceptions'] = ___cxa_uncaught_exceptions; +Module['___pthread_create_js'] = ___pthread_create_js; +Module['pthreadCreateProxied'] = pthreadCreateProxied; +Module['_emscripten_has_threading_support'] = _emscripten_has_threading_support; +Module['___resumeException'] = ___resumeException; +Module['___syscall_fcntl64'] = ___syscall_fcntl64; +Module['syscallGetVarargP'] = syscallGetVarargP; +Module['syscallGetVarargI'] = syscallGetVarargI; +Module['SYSCALLS'] = SYSCALLS; +Module['PATH'] = PATH; +Module['FS'] = FS; +Module['randomFill'] = randomFill; +Module['initRandomFill'] = initRandomFill; +Module['PATH_FS'] = PATH_FS; +Module['TTY'] = TTY; +Module['FS_stdin_getChar'] = FS_stdin_getChar; +Module['FS_stdin_getChar_buffer'] = FS_stdin_getChar_buffer; +Module['intArrayFromString'] = intArrayFromString; +Module['lengthBytesUTF8'] = lengthBytesUTF8; +Module['stringToUTF8Array'] = stringToUTF8Array; +Module['MEMFS'] = MEMFS; +Module['mmapAlloc'] = mmapAlloc; +Module['zeroMemory'] = zeroMemory; +Module['alignMemory'] = alignMemory; +Module['FS_modeStringToFlags'] = FS_modeStringToFlags; +Module['FS_getMode'] = FS_getMode; +Module['FS_createPreloadedFile'] = FS_createPreloadedFile; +Module['FS_preloadFile'] = FS_preloadFile; +Module['asyncLoad'] = asyncLoad; +Module['FS_createDataFile'] = FS_createDataFile; +Module['getUniqueRunDependency'] = getUniqueRunDependency; +Module['FS_handledByPreloadPlugin'] = FS_handledByPreloadPlugin; +Module['preloadPlugins'] = preloadPlugins; +Module['___syscall_fstat64'] = ___syscall_fstat64; +Module['___syscall_getcwd'] = ___syscall_getcwd; +Module['stringToUTF8'] = stringToUTF8; +Module['___syscall_getdents64'] = ___syscall_getdents64; +Module['___syscall_ioctl'] = ___syscall_ioctl; +Module['___syscall_lstat64'] = ___syscall_lstat64; +Module['___syscall_newfstatat'] = ___syscall_newfstatat; +Module['___syscall_openat'] = ___syscall_openat; +Module['___syscall_stat64'] = ___syscall_stat64; +Module['__abort_js'] = __abort_js; +Module['__emscripten_init_main_thread_js'] = __emscripten_init_main_thread_js; +Module['__emscripten_notify_mailbox_postmessage'] = + __emscripten_notify_mailbox_postmessage; +Module['checkMailbox'] = checkMailbox; +Module['callUserCallback'] = callUserCallback; +Module['handleException'] = handleException; +Module['maybeExit'] = maybeExit; +Module['__emscripten_thread_mailbox_await'] = __emscripten_thread_mailbox_await; +Module['__emscripten_receive_on_main_thread_js'] = + __emscripten_receive_on_main_thread_js; +Module['proxiedJSCallArgs'] = proxiedJSCallArgs; +Module['__emscripten_runtime_keepalive_clear'] = + __emscripten_runtime_keepalive_clear; +Module['__emscripten_thread_cleanup'] = __emscripten_thread_cleanup; +Module['__emscripten_thread_set_strongref'] = __emscripten_thread_set_strongref; +Module['__localtime_js'] = __localtime_js; +Module['ydayFromDate'] = ydayFromDate; +Module['isLeapYear'] = isLeapYear; +Module['MONTH_DAYS_LEAP_CUMULATIVE'] = MONTH_DAYS_LEAP_CUMULATIVE; +Module['MONTH_DAYS_REGULAR_CUMULATIVE'] = MONTH_DAYS_REGULAR_CUMULATIVE; +Module['__mmap_js'] = __mmap_js; +Module['__munmap_js'] = __munmap_js; +Module['__setitimer_js'] = __setitimer_js; +Module['timers'] = timers; +Module['_emscripten_get_now'] = _emscripten_get_now; +Module['__tzset_js'] = __tzset_js; +Module['_clock_time_get'] = _clock_time_get; +Module['_emscripten_date_now'] = _emscripten_date_now; +Module['nowIsMonotonic'] = nowIsMonotonic; +Module['checkWasiClock'] = checkWasiClock; +Module['_emscripten_check_blocking_allowed'] = + _emscripten_check_blocking_allowed; +Module['_emscripten_exit_with_live_runtime'] = + _emscripten_exit_with_live_runtime; +Module['runtimeKeepalivePush'] = runtimeKeepalivePush; +Module['_emscripten_get_heap_max'] = _emscripten_get_heap_max; +Module['getHeapMax'] = getHeapMax; +Module['_emscripten_has_asyncify'] = _emscripten_has_asyncify; +Module['_emscripten_num_logical_cores'] = _emscripten_num_logical_cores; +Module['_emscripten_resize_heap'] = _emscripten_resize_heap; +Module['growMemory'] = growMemory; +Module['_emwgpuAdapterRequestDevice'] = _emwgpuAdapterRequestDevice; +Module['emwgpuStringToInt_DeviceLostReason'] = + emwgpuStringToInt_DeviceLostReason; +Module['WebGPU'] = WebGPU; +Module['stringToUTF8OnStack'] = stringToUTF8OnStack; +Module['writeI53ToI64'] = writeI53ToI64; +Module['stringToNewUTF8'] = stringToNewUTF8; +Module['readI53FromI64'] = readI53FromI64; +Module['runtimeKeepalivePop'] = runtimeKeepalivePop; +Module['_emwgpuBufferDestroy'] = _emwgpuBufferDestroy; +Module['_emwgpuBufferGetConstMappedRange'] = _emwgpuBufferGetConstMappedRange; +Module['warnOnce'] = warnOnce; +Module['_emwgpuBufferMapAsync'] = _emwgpuBufferMapAsync; +Module['_emwgpuBufferUnmap'] = _emwgpuBufferUnmap; +Module['_emwgpuDelete'] = _emwgpuDelete; +Module['_emwgpuDeviceCreateBuffer'] = _emwgpuDeviceCreateBuffer; +Module['_emwgpuDeviceCreateShaderModule'] = _emwgpuDeviceCreateShaderModule; +Module['_emwgpuDeviceDestroy'] = _emwgpuDeviceDestroy; +Module['_emwgpuInstanceRequestAdapter'] = _emwgpuInstanceRequestAdapter; +Module['_emwgpuQueueOnSubmittedWorkDone'] = _emwgpuQueueOnSubmittedWorkDone; +Module['_emwgpuWaitAny'] = _emwgpuWaitAny; +Module['_environ_get'] = _environ_get; +Module['getEnvStrings'] = getEnvStrings; +Module['ENV'] = ENV; +Module['getExecutableName'] = getExecutableName; +Module['_environ_sizes_get'] = _environ_sizes_get; +Module['_fd_close'] = _fd_close; +Module['_fd_read'] = _fd_read; +Module['doReadv'] = doReadv; +Module['_fd_seek'] = _fd_seek; +Module['_fd_write'] = _fd_write; +Module['doWritev'] = doWritev; +Module['_llvm_eh_typeid_for'] = _llvm_eh_typeid_for; +Module['_random_get'] = _random_get; +Module['_wgpuAdapterGetFeatures'] = _wgpuAdapterGetFeatures; +Module['emwgpuStringToInt_FeatureName'] = emwgpuStringToInt_FeatureName; +Module['_wgpuAdapterGetInfo'] = _wgpuAdapterGetInfo; +Module['_wgpuAdapterGetLimits'] = _wgpuAdapterGetLimits; +Module['_wgpuAdapterHasFeature'] = _wgpuAdapterHasFeature; +Module['_wgpuBufferGetSize'] = _wgpuBufferGetSize; +Module['_wgpuCommandEncoderBeginComputePass'] = + _wgpuCommandEncoderBeginComputePass; +Module['_wgpuCommandEncoderCopyBufferToBuffer'] = + _wgpuCommandEncoderCopyBufferToBuffer; +Module['_wgpuCommandEncoderFinish'] = _wgpuCommandEncoderFinish; +Module['_wgpuComputePassEncoderDispatchWorkgroups'] = + _wgpuComputePassEncoderDispatchWorkgroups; +Module['_wgpuComputePassEncoderEnd'] = _wgpuComputePassEncoderEnd; +Module['_wgpuComputePassEncoderSetBindGroup'] = + _wgpuComputePassEncoderSetBindGroup; +Module['_wgpuComputePassEncoderSetPipeline'] = + _wgpuComputePassEncoderSetPipeline; +Module['_wgpuComputePipelineGetBindGroupLayout'] = + _wgpuComputePipelineGetBindGroupLayout; +Module['_wgpuDeviceCreateBindGroup'] = _wgpuDeviceCreateBindGroup; +Module['_wgpuDeviceCreateCommandEncoder'] = _wgpuDeviceCreateCommandEncoder; +Module['_wgpuDeviceCreateComputePipeline'] = _wgpuDeviceCreateComputePipeline; +Module['_wgpuQueueSubmit'] = _wgpuQueueSubmit; +Module['_wgpuQueueWriteBuffer'] = _wgpuQueueWriteBuffer; +Module['getWasmTableEntry'] = getWasmTableEntry; +Module['wasmTableMirror'] = wasmTableMirror; +Module['Asyncify'] = Asyncify; +Module['runAndAbortIfError'] = runAndAbortIfError; +Module['ccall'] = ccall; +Module['getCFunc'] = getCFunc; +Module['writeArrayToMemory'] = writeArrayToMemory; +Module['cwrap'] = cwrap; +Module['FS_createPath'] = FS_createPath; +Module['FS_unlink'] = FS_unlink; +Module['FS_createLazyFile'] = FS_createLazyFile; +Module['FS_createDevice'] = FS_createDevice; +var proxiedFunctionTable = [ + _proc_exit, + exitOnMainThread, + pthreadCreateProxied, + ___syscall_fcntl64, + ___syscall_fstat64, + ___syscall_getcwd, + ___syscall_getdents64, + ___syscall_ioctl, + ___syscall_lstat64, + ___syscall_newfstatat, + ___syscall_openat, + ___syscall_stat64, + __mmap_js, + __munmap_js, + __setitimer_js, + _environ_get, + _environ_sizes_get, + _fd_close, + _fd_read, + _fd_seek, + _fd_write, +]; +function __asyncjs__js_file_read(path_ptr, offset, req_size, out_ptr) { + return Asyncify.handleAsync( + async () => + await _wllama_js_file_read( + UTF8ToString(Number(path_ptr)), + Number(offset), + Number(req_size), + Number(out_ptr) + ) + ); +} +var ___cxa_free_exception, + _malloc, + _free, + _wllama_malloc, + _wllama_start, + _wllama_action, + _wllama_exit, + _wllama_debug, + _main, + _emwgpuCreateBindGroup, + _emwgpuCreateBindGroupLayout, + _emwgpuCreateCommandBuffer, + _emwgpuCreateCommandEncoder, + _emwgpuCreateComputePassEncoder, + _emwgpuCreateComputePipeline, + _emwgpuCreateExternalTexture, + _emwgpuCreatePipelineLayout, + _emwgpuCreateQuerySet, + _emwgpuCreateRenderBundle, + _emwgpuCreateRenderBundleEncoder, + _emwgpuCreateRenderPassEncoder, + _emwgpuCreateRenderPipeline, + _emwgpuCreateSampler, + _emwgpuCreateSurface, + _emwgpuCreateTexture, + _emwgpuCreateTextureView, + _emwgpuCreateAdapter, + _emwgpuCreateBuffer, + _emwgpuCreateDevice, + _emwgpuCreateQueue, + _emwgpuCreateShaderModule, + _emwgpuOnCompilationInfoCompleted, + _emwgpuOnCreateComputePipelineCompleted, + _emwgpuOnCreateRenderPipelineCompleted, + _emwgpuOnDeviceLostCompleted, + _emwgpuOnMapAsyncCompleted, + _emwgpuOnPopErrorScopeCompleted, + _emwgpuOnRequestAdapterCompleted, + _emwgpuOnRequestDeviceCompleted, + _emwgpuOnWorkDoneCompleted, + _emwgpuOnUncapturedError, + __emscripten_tls_init, + _pthread_self, + _emscripten_builtin_memalign, + __emscripten_run_callback_on_thread, + __emscripten_thread_init, + __emscripten_thread_crashed, + __emscripten_run_js_on_main_thread, + __emscripten_thread_free_data, + __emscripten_thread_exit, + __emscripten_timeout, + __emscripten_check_mailbox, + _memalign, + _setThrew, + __emscripten_tempret_set, + _emscripten_stack_set_limits, + __emscripten_stack_restore, + __emscripten_stack_alloc, + _emscripten_stack_get_current, + ___cxa_decrement_exception_refcount, + ___cxa_increment_exception_refcount, + ___cxa_can_catch, + ___cxa_get_exception_ptr, + dynCall_iii, + dynCall_viii, + dynCall_ii, + dynCall_vi, + dynCall_vii, + dynCall_v, + dynCall_viiii, + dynCall_viiiii, + dynCall_iiii, + dynCall_viiiiiiiiiiiiii, + dynCall_viiiiiii, + dynCall_viiiiiiii, + dynCall_iiiiii, + dynCall_viiiiiiiii, + dynCall_j, + dynCall_viiiiii, + dynCall_iiiiiii, + dynCall_iiji, + dynCall_iiiii, + dynCall_iiiiiiii, + dynCall_vij, + dynCall_iij, + dynCall_iifff, + dynCall_iiiffiiii, + dynCall_iiiiiiiiii, + dynCall_iiiiiiiiiiiiiiiiiii, + dynCall_iiiiiiiiiiiiiii, + dynCall_di, + dynCall_ji, + dynCall_dii, + dynCall_jii, + dynCall_viiijj, + dynCall_iid, + dynCall_vid, + dynCall_viiiijj, + dynCall_viid, + dynCall_vjjiii, + dynCall_iiiiiijii, + dynCall_iiiji, + dynCall_fiii, + dynCall_viiij, + dynCall_iiif, + dynCall_ifi, + dynCall_iiiiiiiiiiiiii, + dynCall_iiiiff, + dynCall_viijj, + dynCall_iiiiiiiiiii, + dynCall_viif, + dynCall_iiijj, + dynCall_iiijjjj, + dynCall_iiiiiiiiiffffffi, + dynCall_iiiiiiiii, + dynCall_i, + dynCall_iiij, + dynCall_viiiijjji, + dynCall_iiiiiiiiiifi, + dynCall_iiiiiiiiiiiijjiifiiiiiii, + dynCall_iiiiiiiiiiiiiiii, + dynCall_iiijjj, + dynCall_iiiiiiiiifi, + dynCall_iiiff, + dynCall_iiiiiiji, + dynCall_iiiiijiiijjjjjjj, + dynCall_iiiiijji, + dynCall_iiiiiiiiiiii, + dynCall_viiiiiiiiii, + dynCall_viij, + dynCall_iiijiiii, + dynCall_iiiiiifi, + dynCall_iiiiiiiifii, + dynCall_vj, + dynCall_viijii, + dynCall_viijijj, + dynCall_viiiij, + dynCall_iiid, + dynCall_jiji, + dynCall_iidiiii, + dynCall_iiiij, + dynCall_iiiiij, + dynCall_iiiiid, + dynCall_jiiii, + dynCall_diii, + dynCall_viiiiiiiiiiiiiii, + dynCall_viji, + dynCall_iiiiijj, + dynCall_iiiiiijj, + _asyncify_start_unwind, + _asyncify_stop_unwind, + _asyncify_start_rewind, + _asyncify_stop_rewind, + __indirect_function_table, + wasmTable; +function assignWasmExports(wasmExports) { + ___cxa_free_exception = Module['___cxa_free_exception'] = wasmExports['ec']; + _malloc = Module['_malloc'] = wasmExports['fc']; + _free = Module['_free'] = wasmExports['gc']; + _wllama_malloc = Module['_wllama_malloc'] = wasmExports['hc']; + _wllama_start = Module['_wllama_start'] = wasmExports['ic']; + _wllama_action = Module['_wllama_action'] = wasmExports['jc']; + _wllama_exit = Module['_wllama_exit'] = wasmExports['kc']; + _wllama_debug = Module['_wllama_debug'] = wasmExports['lc']; + _main = Module['_main'] = wasmExports['mc']; + _emwgpuCreateBindGroup = Module['_emwgpuCreateBindGroup'] = wasmExports['nc']; + _emwgpuCreateBindGroupLayout = Module['_emwgpuCreateBindGroupLayout'] = + wasmExports['oc']; + _emwgpuCreateCommandBuffer = Module['_emwgpuCreateCommandBuffer'] = + wasmExports['pc']; + _emwgpuCreateCommandEncoder = Module['_emwgpuCreateCommandEncoder'] = + wasmExports['qc']; + _emwgpuCreateComputePassEncoder = Module['_emwgpuCreateComputePassEncoder'] = + wasmExports['rc']; + _emwgpuCreateComputePipeline = Module['_emwgpuCreateComputePipeline'] = + wasmExports['sc']; + _emwgpuCreateExternalTexture = Module['_emwgpuCreateExternalTexture'] = + wasmExports['tc']; + _emwgpuCreatePipelineLayout = Module['_emwgpuCreatePipelineLayout'] = + wasmExports['uc']; + _emwgpuCreateQuerySet = Module['_emwgpuCreateQuerySet'] = wasmExports['vc']; + _emwgpuCreateRenderBundle = Module['_emwgpuCreateRenderBundle'] = + wasmExports['wc']; + _emwgpuCreateRenderBundleEncoder = Module[ + '_emwgpuCreateRenderBundleEncoder' + ] = wasmExports['xc']; + _emwgpuCreateRenderPassEncoder = Module['_emwgpuCreateRenderPassEncoder'] = + wasmExports['yc']; + _emwgpuCreateRenderPipeline = Module['_emwgpuCreateRenderPipeline'] = + wasmExports['zc']; + _emwgpuCreateSampler = Module['_emwgpuCreateSampler'] = wasmExports['Ac']; + _emwgpuCreateSurface = Module['_emwgpuCreateSurface'] = wasmExports['Bc']; + _emwgpuCreateTexture = Module['_emwgpuCreateTexture'] = wasmExports['Cc']; + _emwgpuCreateTextureView = Module['_emwgpuCreateTextureView'] = + wasmExports['Dc']; + _emwgpuCreateAdapter = Module['_emwgpuCreateAdapter'] = wasmExports['Ec']; + _emwgpuCreateBuffer = Module['_emwgpuCreateBuffer'] = wasmExports['Fc']; + _emwgpuCreateDevice = Module['_emwgpuCreateDevice'] = wasmExports['Gc']; + _emwgpuCreateQueue = Module['_emwgpuCreateQueue'] = wasmExports['Hc']; + _emwgpuCreateShaderModule = Module['_emwgpuCreateShaderModule'] = + wasmExports['Ic']; + _emwgpuOnCompilationInfoCompleted = Module[ + '_emwgpuOnCompilationInfoCompleted' + ] = wasmExports['Jc']; + _emwgpuOnCreateComputePipelineCompleted = Module[ + '_emwgpuOnCreateComputePipelineCompleted' + ] = wasmExports['Kc']; + _emwgpuOnCreateRenderPipelineCompleted = Module[ + '_emwgpuOnCreateRenderPipelineCompleted' + ] = wasmExports['Lc']; + _emwgpuOnDeviceLostCompleted = Module['_emwgpuOnDeviceLostCompleted'] = + wasmExports['Mc']; + _emwgpuOnMapAsyncCompleted = Module['_emwgpuOnMapAsyncCompleted'] = + wasmExports['Nc']; + _emwgpuOnPopErrorScopeCompleted = Module['_emwgpuOnPopErrorScopeCompleted'] = + wasmExports['Oc']; + _emwgpuOnRequestAdapterCompleted = Module[ + '_emwgpuOnRequestAdapterCompleted' + ] = wasmExports['Pc']; + _emwgpuOnRequestDeviceCompleted = Module['_emwgpuOnRequestDeviceCompleted'] = + wasmExports['Qc']; + _emwgpuOnWorkDoneCompleted = Module['_emwgpuOnWorkDoneCompleted'] = + wasmExports['Rc']; + _emwgpuOnUncapturedError = Module['_emwgpuOnUncapturedError'] = + wasmExports['Sc']; + __emscripten_tls_init = Module['__emscripten_tls_init'] = wasmExports['Tc']; + _pthread_self = Module['_pthread_self'] = wasmExports['Uc']; + _emscripten_builtin_memalign = Module['_emscripten_builtin_memalign'] = + wasmExports['Vc']; + __emscripten_run_callback_on_thread = Module[ + '__emscripten_run_callback_on_thread' + ] = wasmExports['Wc']; + __emscripten_thread_init = Module['__emscripten_thread_init'] = + wasmExports['Yc']; + __emscripten_thread_crashed = Module['__emscripten_thread_crashed'] = + wasmExports['Zc']; + __emscripten_run_js_on_main_thread = Module[ + '__emscripten_run_js_on_main_thread' + ] = wasmExports['_c']; + __emscripten_thread_free_data = Module['__emscripten_thread_free_data'] = + wasmExports['$c']; + __emscripten_thread_exit = Module['__emscripten_thread_exit'] = + wasmExports['ad']; + __emscripten_timeout = Module['__emscripten_timeout'] = wasmExports['bd']; + __emscripten_check_mailbox = Module['__emscripten_check_mailbox'] = + wasmExports['cd']; + _memalign = Module['_memalign'] = wasmExports['dd']; + _setThrew = Module['_setThrew'] = wasmExports['ed']; + __emscripten_tempret_set = Module['__emscripten_tempret_set'] = + wasmExports['fd']; + _emscripten_stack_set_limits = Module['_emscripten_stack_set_limits'] = + wasmExports['gd']; + __emscripten_stack_restore = Module['__emscripten_stack_restore'] = + wasmExports['hd']; + __emscripten_stack_alloc = Module['__emscripten_stack_alloc'] = + wasmExports['id']; + _emscripten_stack_get_current = Module['_emscripten_stack_get_current'] = + wasmExports['jd']; + ___cxa_decrement_exception_refcount = Module[ + '___cxa_decrement_exception_refcount' + ] = wasmExports['kd']; + ___cxa_increment_exception_refcount = Module[ + '___cxa_increment_exception_refcount' + ] = wasmExports['ld']; + ___cxa_can_catch = Module['___cxa_can_catch'] = wasmExports['md']; + ___cxa_get_exception_ptr = Module['___cxa_get_exception_ptr'] = + wasmExports['nd']; + dynCall_iii = dynCalls['iii'] = Module['dynCall_iii'] = wasmExports['od']; + dynCall_viii = dynCalls['viii'] = Module['dynCall_viii'] = wasmExports['pd']; + dynCall_ii = dynCalls['ii'] = Module['dynCall_ii'] = wasmExports['qd']; + dynCall_vi = dynCalls['vi'] = Module['dynCall_vi'] = wasmExports['rd']; + dynCall_vii = dynCalls['vii'] = Module['dynCall_vii'] = wasmExports['sd']; + dynCall_v = dynCalls['v'] = Module['dynCall_v'] = wasmExports['td']; + dynCall_viiii = + dynCalls['viiii'] = + Module['dynCall_viiii'] = + wasmExports['ud']; + dynCall_viiiii = + dynCalls['viiiii'] = + Module['dynCall_viiiii'] = + wasmExports['vd']; + dynCall_iiii = dynCalls['iiii'] = Module['dynCall_iiii'] = wasmExports['wd']; + dynCall_viiiiiiiiiiiiii = + dynCalls['viiiiiiiiiiiiii'] = + Module['dynCall_viiiiiiiiiiiiii'] = + wasmExports['xd']; + dynCall_viiiiiii = + dynCalls['viiiiiii'] = + Module['dynCall_viiiiiii'] = + wasmExports['yd']; + dynCall_viiiiiiii = + dynCalls['viiiiiiii'] = + Module['dynCall_viiiiiiii'] = + wasmExports['zd']; + dynCall_iiiiii = + dynCalls['iiiiii'] = + Module['dynCall_iiiiii'] = + wasmExports['Ad']; + dynCall_viiiiiiiii = + dynCalls['viiiiiiiii'] = + Module['dynCall_viiiiiiiii'] = + wasmExports['Bd']; + dynCall_j = dynCalls['j'] = Module['dynCall_j'] = wasmExports['Cd']; + dynCall_viiiiii = + dynCalls['viiiiii'] = + Module['dynCall_viiiiii'] = + wasmExports['Dd']; + dynCall_iiiiiii = + dynCalls['iiiiiii'] = + Module['dynCall_iiiiiii'] = + wasmExports['Ed']; + dynCall_iiji = dynCalls['iiji'] = Module['dynCall_iiji'] = wasmExports['Fd']; + dynCall_iiiii = + dynCalls['iiiii'] = + Module['dynCall_iiiii'] = + wasmExports['Gd']; + dynCall_iiiiiiii = + dynCalls['iiiiiiii'] = + Module['dynCall_iiiiiiii'] = + wasmExports['Hd']; + dynCall_vij = dynCalls['vij'] = Module['dynCall_vij'] = wasmExports['Id']; + dynCall_iij = dynCalls['iij'] = Module['dynCall_iij'] = wasmExports['Jd']; + dynCall_iifff = + dynCalls['iifff'] = + Module['dynCall_iifff'] = + wasmExports['Kd']; + dynCall_iiiffiiii = + dynCalls['iiiffiiii'] = + Module['dynCall_iiiffiiii'] = + wasmExports['Ld']; + dynCall_iiiiiiiiii = + dynCalls['iiiiiiiiii'] = + Module['dynCall_iiiiiiiiii'] = + wasmExports['Md']; + dynCall_iiiiiiiiiiiiiiiiiii = + dynCalls['iiiiiiiiiiiiiiiiiii'] = + Module['dynCall_iiiiiiiiiiiiiiiiiii'] = + wasmExports['Nd']; + dynCall_iiiiiiiiiiiiiii = + dynCalls['iiiiiiiiiiiiiii'] = + Module['dynCall_iiiiiiiiiiiiiii'] = + wasmExports['Od']; + dynCall_di = dynCalls['di'] = Module['dynCall_di'] = wasmExports['Pd']; + dynCall_ji = dynCalls['ji'] = Module['dynCall_ji'] = wasmExports['Qd']; + dynCall_dii = dynCalls['dii'] = Module['dynCall_dii'] = wasmExports['Rd']; + dynCall_jii = dynCalls['jii'] = Module['dynCall_jii'] = wasmExports['Sd']; + dynCall_viiijj = + dynCalls['viiijj'] = + Module['dynCall_viiijj'] = + wasmExports['Td']; + dynCall_iid = dynCalls['iid'] = Module['dynCall_iid'] = wasmExports['Ud']; + dynCall_vid = dynCalls['vid'] = Module['dynCall_vid'] = wasmExports['Vd']; + dynCall_viiiijj = + dynCalls['viiiijj'] = + Module['dynCall_viiiijj'] = + wasmExports['Wd']; + dynCall_viid = dynCalls['viid'] = Module['dynCall_viid'] = wasmExports['Xd']; + dynCall_vjjiii = + dynCalls['vjjiii'] = + Module['dynCall_vjjiii'] = + wasmExports['Yd']; + dynCall_iiiiiijii = + dynCalls['iiiiiijii'] = + Module['dynCall_iiiiiijii'] = + wasmExports['Zd']; + dynCall_iiiji = + dynCalls['iiiji'] = + Module['dynCall_iiiji'] = + wasmExports['_d']; + dynCall_fiii = dynCalls['fiii'] = Module['dynCall_fiii'] = wasmExports['$d']; + dynCall_viiij = + dynCalls['viiij'] = + Module['dynCall_viiij'] = + wasmExports['ae']; + dynCall_iiif = dynCalls['iiif'] = Module['dynCall_iiif'] = wasmExports['be']; + dynCall_ifi = dynCalls['ifi'] = Module['dynCall_ifi'] = wasmExports['ce']; + dynCall_iiiiiiiiiiiiii = + dynCalls['iiiiiiiiiiiiii'] = + Module['dynCall_iiiiiiiiiiiiii'] = + wasmExports['de']; + dynCall_iiiiff = + dynCalls['iiiiff'] = + Module['dynCall_iiiiff'] = + wasmExports['ee']; + dynCall_viijj = + dynCalls['viijj'] = + Module['dynCall_viijj'] = + wasmExports['fe']; + dynCall_iiiiiiiiiii = + dynCalls['iiiiiiiiiii'] = + Module['dynCall_iiiiiiiiiii'] = + wasmExports['ge']; + dynCall_viif = dynCalls['viif'] = Module['dynCall_viif'] = wasmExports['he']; + dynCall_iiijj = + dynCalls['iiijj'] = + Module['dynCall_iiijj'] = + wasmExports['ie']; + dynCall_iiijjjj = + dynCalls['iiijjjj'] = + Module['dynCall_iiijjjj'] = + wasmExports['je']; + dynCall_iiiiiiiiiffffffi = + dynCalls['iiiiiiiiiffffffi'] = + Module['dynCall_iiiiiiiiiffffffi'] = + wasmExports['ke']; + dynCall_iiiiiiiii = + dynCalls['iiiiiiiii'] = + Module['dynCall_iiiiiiiii'] = + wasmExports['le']; + dynCall_i = dynCalls['i'] = Module['dynCall_i'] = wasmExports['me']; + dynCall_iiij = dynCalls['iiij'] = Module['dynCall_iiij'] = wasmExports['ne']; + dynCall_viiiijjji = + dynCalls['viiiijjji'] = + Module['dynCall_viiiijjji'] = + wasmExports['oe']; + dynCall_iiiiiiiiiifi = + dynCalls['iiiiiiiiiifi'] = + Module['dynCall_iiiiiiiiiifi'] = + wasmExports['pe']; + dynCall_iiiiiiiiiiiijjiifiiiiiii = + dynCalls['iiiiiiiiiiiijjiifiiiiiii'] = + Module['dynCall_iiiiiiiiiiiijjiifiiiiiii'] = + wasmExports['qe']; + dynCall_iiiiiiiiiiiiiiii = + dynCalls['iiiiiiiiiiiiiiii'] = + Module['dynCall_iiiiiiiiiiiiiiii'] = + wasmExports['re']; + dynCall_iiijjj = + dynCalls['iiijjj'] = + Module['dynCall_iiijjj'] = + wasmExports['se']; + dynCall_iiiiiiiiifi = + dynCalls['iiiiiiiiifi'] = + Module['dynCall_iiiiiiiiifi'] = + wasmExports['te']; + dynCall_iiiff = + dynCalls['iiiff'] = + Module['dynCall_iiiff'] = + wasmExports['ue']; + dynCall_iiiiiiji = + dynCalls['iiiiiiji'] = + Module['dynCall_iiiiiiji'] = + wasmExports['ve']; + dynCall_iiiiijiiijjjjjjj = + dynCalls['iiiiijiiijjjjjjj'] = + Module['dynCall_iiiiijiiijjjjjjj'] = + wasmExports['we']; + dynCall_iiiiijji = + dynCalls['iiiiijji'] = + Module['dynCall_iiiiijji'] = + wasmExports['xe']; + dynCall_iiiiiiiiiiii = + dynCalls['iiiiiiiiiiii'] = + Module['dynCall_iiiiiiiiiiii'] = + wasmExports['ye']; + dynCall_viiiiiiiiii = + dynCalls['viiiiiiiiii'] = + Module['dynCall_viiiiiiiiii'] = + wasmExports['ze']; + dynCall_viij = dynCalls['viij'] = Module['dynCall_viij'] = wasmExports['Ae']; + dynCall_iiijiiii = + dynCalls['iiijiiii'] = + Module['dynCall_iiijiiii'] = + wasmExports['Be']; + dynCall_iiiiiifi = + dynCalls['iiiiiifi'] = + Module['dynCall_iiiiiifi'] = + wasmExports['Ce']; + dynCall_iiiiiiiifii = + dynCalls['iiiiiiiifii'] = + Module['dynCall_iiiiiiiifii'] = + wasmExports['De']; + dynCall_vj = dynCalls['vj'] = Module['dynCall_vj'] = wasmExports['Ee']; + dynCall_viijii = + dynCalls['viijii'] = + Module['dynCall_viijii'] = + wasmExports['Fe']; + dynCall_viijijj = + dynCalls['viijijj'] = + Module['dynCall_viijijj'] = + wasmExports['Ge']; + dynCall_viiiij = + dynCalls['viiiij'] = + Module['dynCall_viiiij'] = + wasmExports['He']; + dynCall_iiid = dynCalls['iiid'] = Module['dynCall_iiid'] = wasmExports['Ie']; + dynCall_jiji = dynCalls['jiji'] = Module['dynCall_jiji'] = wasmExports['Je']; + dynCall_iidiiii = + dynCalls['iidiiii'] = + Module['dynCall_iidiiii'] = + wasmExports['Ke']; + dynCall_iiiij = + dynCalls['iiiij'] = + Module['dynCall_iiiij'] = + wasmExports['Le']; + dynCall_iiiiij = + dynCalls['iiiiij'] = + Module['dynCall_iiiiij'] = + wasmExports['Me']; + dynCall_iiiiid = + dynCalls['iiiiid'] = + Module['dynCall_iiiiid'] = + wasmExports['Ne']; + dynCall_jiiii = + dynCalls['jiiii'] = + Module['dynCall_jiiii'] = + wasmExports['Oe']; + dynCall_diii = dynCalls['diii'] = Module['dynCall_diii'] = wasmExports['Pe']; + dynCall_viiiiiiiiiiiiiii = + dynCalls['viiiiiiiiiiiiiii'] = + Module['dynCall_viiiiiiiiiiiiiii'] = + wasmExports['Qe']; + dynCall_viji = dynCalls['viji'] = Module['dynCall_viji'] = wasmExports['Re']; + dynCall_iiiiijj = + dynCalls['iiiiijj'] = + Module['dynCall_iiiiijj'] = + wasmExports['Se']; + dynCall_iiiiiijj = + dynCalls['iiiiiijj'] = + Module['dynCall_iiiiiijj'] = + wasmExports['Te']; + _asyncify_start_unwind = Module['_asyncify_start_unwind'] = + wasmExports['asyncify_start_unwind']; + _asyncify_stop_unwind = Module['_asyncify_stop_unwind'] = + wasmExports['asyncify_stop_unwind']; + _asyncify_start_rewind = Module['_asyncify_start_rewind'] = + wasmExports['asyncify_start_rewind']; + _asyncify_stop_rewind = Module['_asyncify_stop_rewind'] = + wasmExports['asyncify_stop_rewind']; + __indirect_function_table = + Module['__indirect_function_table'] = + wasmTable = + wasmExports['Xc']; +} +var wasmImports; +function assignWasmImports() { + wasmImports = { + Ra: ___assert_fail, + ya: __asyncjs__js_file_read, + s: ___cxa_begin_catch, + Wa: ___cxa_current_primary_exception, + B: ___cxa_end_catch, + b: ___cxa_find_matching_catch_2, + n: ___cxa_find_matching_catch_3, + P: ___cxa_find_matching_catch_4, + bc: ___cxa_find_matching_catch_7, + ja: ___cxa_rethrow, + Ua: ___cxa_rethrow_primary_exception, + v: ___cxa_throw, + Xa: ___cxa_uncaught_exceptions, + eb: ___pthread_create_js, + i: ___resumeException, + wa: ___syscall_fcntl64, + Ta: ___syscall_getcwd, + Ya: ___syscall_getdents64, + rb: ___syscall_ioctl, + xa: ___syscall_openat, + bb: ___syscall_stat64, + wb: __abort_js, + mb: __emscripten_init_main_thread_js, + _a: __emscripten_notify_mailbox_postmessage, + fb: __emscripten_receive_on_main_thread_js, + Pa: __emscripten_runtime_keepalive_clear, + ta: __emscripten_thread_cleanup, + lb: __emscripten_thread_mailbox_await, + tb: __emscripten_thread_set_strongref, + ib: __localtime_js, + gb: __mmap_js, + hb: __munmap_js, + Qa: __setitimer_js, + jb: __tzset_js, + vb: _clock_time_get, + ua: _emscripten_check_blocking_allowed, + ub: _emscripten_date_now, + sb: _emscripten_exit_with_live_runtime, + $a: _emscripten_get_heap_max, + ba: _emscripten_get_now, + xb: _emscripten_has_asyncify, + ab: _emscripten_num_logical_cores, + Za: _emscripten_resize_heap, + Bb: _emwgpuAdapterRequestDevice, + W: _emwgpuBufferDestroy, + Fb: _emwgpuBufferGetConstMappedRange, + Eb: _emwgpuBufferMapAsync, + Db: _emwgpuBufferUnmap, + p: _emwgpuDelete, + _: _emwgpuDeviceCreateBuffer, + za: _emwgpuDeviceCreateShaderModule, + Cb: _emwgpuDeviceDestroy, + Ab: _emwgpuInstanceRequestAdapter, + zb: _emwgpuQueueOnSubmittedWorkDone, + yb: _emwgpuWaitAny, + ob: _environ_get, + pb: _environ_sizes_get, + cb: _exit, + ca: _fd_close, + va: _fd_read, + kb: _fd_seek, + qb: _fd_write, + M: invoke_di, + ga: invoke_dii, + Aa: invoke_diii, + L: invoke_fiii, + K: invoke_i, + Fa: invoke_ifi, + d: invoke_ii, + S: invoke_iid, + ac: invoke_iifff, + f: invoke_iii, + Ca: invoke_iiid, + A: invoke_iiif, + Xb: invoke_iiiff, + Ia: invoke_iiiffiiii, + g: invoke_iiii, + oa: invoke_iiiiff, + o: invoke_iiiii, + Pb: invoke_iiiiid, + l: invoke_iiiiii, + ka: invoke_iiiiiifi, + m: invoke_iiiiiii, + H: invoke_iiiiiiii, + Vb: invoke_iiiiiiiifii, + aa: invoke_iiiiiiiii, + r: invoke_iiiiiiiiiffffffi, + na: invoke_iiiiiiiiifi, + F: invoke_iiiiiiiiii, + u: invoke_iiiiiiiiiifi, + I: invoke_iiiiiiiiiii, + X: invoke_iiiiiiiiiiii, + _b: invoke_iiiiiiiiiiiiii, + $: invoke_iiiiiiiiiiiiiii, + t: invoke_iiiiiiiiiiiiiiii, + Ha: invoke_iiiiiiiiiiiiiiiiiii, + D: invoke_iiiiiiiiiiiijjiifiiiiiii, + Ea: invoke_iiiiiiji, + Ja: invoke_iiiiiijii, + Ba: invoke_iiiiij, + ma: invoke_iiiiijiiijjjjjjj, + la: invoke_iiiiijji, + Rb: invoke_iiiij, + Y: invoke_iiij, + $b: invoke_iiiji, + U: invoke_iiijiiii, + E: invoke_iiijj, + w: invoke_iiijjj, + G: invoke_iiijjjj, + N: invoke_iij, + ra: invoke_iiji, + Sb: invoke_j, + C: invoke_ji, + T: invoke_jii, + ea: invoke_jiiii, + h: invoke_v, + q: invoke_vi, + ha: invoke_vid, + c: invoke_vii, + Mb: invoke_viid, + Nb: invoke_viif, + e: invoke_viii, + j: invoke_viiii, + k: invoke_viiiii, + z: invoke_viiiiii, + O: invoke_viiiiiii, + qa: invoke_viiiiiiii, + ia: invoke_viiiiiiiii, + V: invoke_viiiiiiiiii, + sa: invoke_viiiiiiiiiiiiii, + da: invoke_viiiiiiiiiiiiiii, + R: invoke_viiiij, + Ka: invoke_viiiijj, + y: invoke_viiiijjji, + Q: invoke_viiij, + La: invoke_viiijj, + Qb: invoke_viij, + Da: invoke_viijii, + Tb: invoke_viijijj, + Ga: invoke_viijj, + J: invoke_vij, + fa: invoke_vj, + Z: invoke_vjjiii, + x: _llvm_eh_typeid_for, + a: wasmMemory, + Oa: _proc_exit, + Sa: _random_get, + Va: _wgpuAdapterGetFeatures, + db: _wgpuAdapterGetInfo, + nb: _wgpuAdapterGetLimits, + Na: _wgpuAdapterHasFeature, + cc: _wgpuBufferGetSize, + Ub: _wgpuCommandEncoderBeginComputePass, + Gb: _wgpuCommandEncoderCopyBufferToBuffer, + Ib: _wgpuCommandEncoderFinish, + Kb: _wgpuComputePassEncoderDispatchWorkgroups, + Jb: _wgpuComputePassEncoderEnd, + Lb: _wgpuComputePassEncoderSetBindGroup, + Ob: _wgpuComputePassEncoderSetPipeline, + Zb: _wgpuComputePipelineGetBindGroupLayout, + Yb: _wgpuDeviceCreateBindGroup, + Wb: _wgpuDeviceCreateCommandEncoder, + Ma: _wgpuDeviceCreateComputePipeline, + Hb: _wgpuQueueSubmit, + pa: _wgpuQueueWriteBuffer, + }; +} +function invoke_iii(index, a1, a2) { + var sp = stackSave(); + try { + return dynCall_iii(index, a1, a2); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_vii(index, a1, a2) { + var sp = stackSave(); + try { + dynCall_vii(index, a1, a2); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_viii(index, a1, a2, a3) { + var sp = stackSave(); + try { + dynCall_viii(index, a1, a2, a3); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_v(index) { + var sp = stackSave(); + try { + dynCall_v(index); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_ii(index, a1) { + var sp = stackSave(); + try { + return dynCall_ii(index, a1); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_viiii(index, a1, a2, a3, a4) { + var sp = stackSave(); + try { + dynCall_viiii(index, a1, a2, a3, a4); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_viiiii(index, a1, a2, a3, a4, a5) { + var sp = stackSave(); + try { + dynCall_viiiii(index, a1, a2, a3, a4, a5); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiii(index, a1, a2, a3) { + var sp = stackSave(); + try { + return dynCall_iiii(index, a1, a2, a3); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_viiiiiiiiiiiiii( + index, + a1, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10, + a11, + a12, + a13, + a14 +) { + var sp = stackSave(); + try { + dynCall_viiiiiiiiiiiiii( + index, + a1, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10, + a11, + a12, + a13, + a14 + ); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiii(index, a1, a2, a3, a4, a5) { + var sp = stackSave(); + try { + return dynCall_iiiiii(index, a1, a2, a3, a4, a5); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_viiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9) { + var sp = stackSave(); + try { + dynCall_viiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_vi(index, a1) { + var sp = stackSave(); + try { + dynCall_vi(index, a1); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiiii(index, a1, a2, a3, a4, a5, a6) { + var sp = stackSave(); + try { + return dynCall_iiiiiii(index, a1, a2, a3, a4, a5, a6); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiji(index, a1, a2, a3) { + var sp = stackSave(); + try { + return dynCall_iiji(index, a1, a2, a3); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiii(index, a1, a2, a3, a4) { + var sp = stackSave(); + try { + return dynCall_iiiii(index, a1, a2, a3, a4); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_viiiiiii(index, a1, a2, a3, a4, a5, a6, a7) { + var sp = stackSave(); + try { + dynCall_viiiiiii(index, a1, a2, a3, a4, a5, a6, a7); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_viiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8) { + var sp = stackSave(); + try { + dynCall_viiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_viiiiii(index, a1, a2, a3, a4, a5, a6) { + var sp = stackSave(); + try { + dynCall_viiiiii(index, a1, a2, a3, a4, a5, a6); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiiiii(index, a1, a2, a3, a4, a5, a6, a7) { + var sp = stackSave(); + try { + return dynCall_iiiiiiii(index, a1, a2, a3, a4, a5, a6, a7); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_vij(index, a1, a2) { + var sp = stackSave(); + try { + dynCall_vij(index, a1, a2); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iij(index, a1, a2) { + var sp = stackSave(); + try { + return dynCall_iij(index, a1, a2); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_di(index, a1) { + var sp = stackSave(); + try { + return dynCall_di(index, a1); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_ji(index, a1) { + var sp = stackSave(); + try { + return dynCall_ji(index, a1); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + return 0n; + } +} +function invoke_iid(index, a1, a2) { + var sp = stackSave(); + try { + return dynCall_iid(index, a1, a2); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_vid(index, a1, a2) { + var sp = stackSave(); + try { + dynCall_vid(index, a1, a2); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_viiijj(index, a1, a2, a3, a4, a5) { + var sp = stackSave(); + try { + dynCall_viiijj(index, a1, a2, a3, a4, a5); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_viiiijj(index, a1, a2, a3, a4, a5, a6) { + var sp = stackSave(); + try { + dynCall_viiiijj(index, a1, a2, a3, a4, a5, a6); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_vjjiii(index, a1, a2, a3, a4, a5) { + var sp = stackSave(); + try { + dynCall_vjjiii(index, a1, a2, a3, a4, a5); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiiijii(index, a1, a2, a3, a4, a5, a6, a7, a8) { + var sp = stackSave(); + try { + return dynCall_iiiiiijii(index, a1, a2, a3, a4, a5, a6, a7, a8); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iifff(index, a1, a2, a3, a4) { + var sp = stackSave(); + try { + return dynCall_iifff(index, a1, a2, a3, a4); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiffiiii(index, a1, a2, a3, a4, a5, a6, a7, a8) { + var sp = stackSave(); + try { + return dynCall_iiiffiiii(index, a1, a2, a3, a4, a5, a6, a7, a8); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_jii(index, a1, a2) { + var sp = stackSave(); + try { + return dynCall_jii(index, a1, a2); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + return 0n; + } +} +function invoke_fiii(index, a1, a2, a3) { + var sp = stackSave(); + try { + return dynCall_fiii(index, a1, a2, a3); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_viiij(index, a1, a2, a3, a4) { + var sp = stackSave(); + try { + dynCall_viiij(index, a1, a2, a3, a4); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8) { + var sp = stackSave(); + try { + return dynCall_iiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiji(index, a1, a2, a3, a4) { + var sp = stackSave(); + try { + return dynCall_iiiji(index, a1, a2, a3, a4); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiiiiiiiiiii( + index, + a1, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10, + a11, + a12, + a13 +) { + var sp = stackSave(); + try { + return dynCall_iiiiiiiiiiiiii( + index, + a1, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10, + a11, + a12, + a13 + ); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9) { + var sp = stackSave(); + try { + return dynCall_iiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiiiiiiiiiiiiiiii( + index, + a1, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10, + a11, + a12, + a13, + a14, + a15, + a16, + a17, + a18 +) { + var sp = stackSave(); + try { + return dynCall_iiiiiiiiiiiiiiiiiii( + index, + a1, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10, + a11, + a12, + a13, + a14, + a15, + a16, + a17, + a18 + ); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiiiiiiiiiiii( + index, + a1, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10, + a11, + a12, + a13, + a14 +) { + var sp = stackSave(); + try { + return dynCall_iiiiiiiiiiiiiii( + index, + a1, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10, + a11, + a12, + a13, + a14 + ); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiif(index, a1, a2, a3) { + var sp = stackSave(); + try { + return dynCall_iiif(index, a1, a2, a3); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) { + var sp = stackSave(); + try { + return dynCall_iiiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_viijj(index, a1, a2, a3, a4) { + var sp = stackSave(); + try { + dynCall_viijj(index, a1, a2, a3, a4); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiijj(index, a1, a2, a3, a4) { + var sp = stackSave(); + try { + return dynCall_iiijj(index, a1, a2, a3, a4); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiijjjj(index, a1, a2, a3, a4, a5, a6) { + var sp = stackSave(); + try { + return dynCall_iiijjjj(index, a1, a2, a3, a4, a5, a6); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiiiiiiffffffi( + index, + a1, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10, + a11, + a12, + a13, + a14, + a15 +) { + var sp = stackSave(); + try { + return dynCall_iiiiiiiiiffffffi( + index, + a1, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10, + a11, + a12, + a13, + a14, + a15 + ); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_i(index) { + var sp = stackSave(); + try { + return dynCall_i(index); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiij(index, a1, a2, a3) { + var sp = stackSave(); + try { + return dynCall_iiij(index, a1, a2, a3); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_ifi(index, a1, a2) { + var sp = stackSave(); + try { + return dynCall_ifi(index, a1, a2); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiff(index, a1, a2, a3, a4, a5) { + var sp = stackSave(); + try { + return dynCall_iiiiff(index, a1, a2, a3, a4, a5); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_viiiijjji(index, a1, a2, a3, a4, a5, a6, a7, a8) { + var sp = stackSave(); + try { + dynCall_viiiijjji(index, a1, a2, a3, a4, a5, a6, a7, a8); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiiiiiiifi( + index, + a1, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10, + a11 +) { + var sp = stackSave(); + try { + return dynCall_iiiiiiiiiifi( + index, + a1, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10, + a11 + ); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiiiiiiiiijjiifiiiiiii( + index, + a1, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10, + a11, + a12, + a13, + a14, + a15, + a16, + a17, + a18, + a19, + a20, + a21, + a22, + a23 +) { + var sp = stackSave(); + try { + return dynCall_iiiiiiiiiiiijjiifiiiiiii( + index, + a1, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10, + a11, + a12, + a13, + a14, + a15, + a16, + a17, + a18, + a19, + a20, + a21, + a22, + a23 + ); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiiiiiiiiiiiii( + index, + a1, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10, + a11, + a12, + a13, + a14, + a15 +) { + var sp = stackSave(); + try { + return dynCall_iiiiiiiiiiiiiiii( + index, + a1, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10, + a11, + a12, + a13, + a14, + a15 + ); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiijjj(index, a1, a2, a3, a4, a5) { + var sp = stackSave(); + try { + return dynCall_iiijjj(index, a1, a2, a3, a4, a5); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiiiiiifi(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) { + var sp = stackSave(); + try { + return dynCall_iiiiiiiiifi(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiff(index, a1, a2, a3, a4) { + var sp = stackSave(); + try { + return dynCall_iiiff(index, a1, a2, a3, a4); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiiiji(index, a1, a2, a3, a4, a5, a6, a7) { + var sp = stackSave(); + try { + return dynCall_iiiiiiji(index, a1, a2, a3, a4, a5, a6, a7); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiijiiijjjjjjj( + index, + a1, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10, + a11, + a12, + a13, + a14, + a15 +) { + var sp = stackSave(); + try { + return dynCall_iiiiijiiijjjjjjj( + index, + a1, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10, + a11, + a12, + a13, + a14, + a15 + ); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiijji(index, a1, a2, a3, a4, a5, a6, a7) { + var sp = stackSave(); + try { + return dynCall_iiiiijji(index, a1, a2, a3, a4, a5, a6, a7); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiiiiiiiii( + index, + a1, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10, + a11 +) { + var sp = stackSave(); + try { + return dynCall_iiiiiiiiiiii( + index, + a1, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10, + a11 + ); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_dii(index, a1, a2) { + var sp = stackSave(); + try { + return dynCall_dii(index, a1, a2); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_viiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) { + var sp = stackSave(); + try { + dynCall_viiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiijiiii(index, a1, a2, a3, a4, a5, a6, a7) { + var sp = stackSave(); + try { + return dynCall_iiijiiii(index, a1, a2, a3, a4, a5, a6, a7); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiiifi(index, a1, a2, a3, a4, a5, a6, a7) { + var sp = stackSave(); + try { + return dynCall_iiiiiifi(index, a1, a2, a3, a4, a5, a6, a7); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiiiiifii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) { + var sp = stackSave(); + try { + return dynCall_iiiiiiiifii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_vj(index, a1) { + var sp = stackSave(); + try { + dynCall_vj(index, a1); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_viijijj(index, a1, a2, a3, a4, a5, a6) { + var sp = stackSave(); + try { + dynCall_viijijj(index, a1, a2, a3, a4, a5, a6); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_viijii(index, a1, a2, a3, a4, a5) { + var sp = stackSave(); + try { + dynCall_viijii(index, a1, a2, a3, a4, a5); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_viiiij(index, a1, a2, a3, a4, a5) { + var sp = stackSave(); + try { + dynCall_viiiij(index, a1, a2, a3, a4, a5); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiid(index, a1, a2, a3) { + var sp = stackSave(); + try { + return dynCall_iiid(index, a1, a2, a3); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_j(index) { + var sp = stackSave(); + try { + return dynCall_j(index); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + return 0n; + } +} +function invoke_iiiij(index, a1, a2, a3, a4) { + var sp = stackSave(); + try { + return dynCall_iiiij(index, a1, a2, a3, a4); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiij(index, a1, a2, a3, a4, a5) { + var sp = stackSave(); + try { + return dynCall_iiiiij(index, a1, a2, a3, a4, a5); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_viij(index, a1, a2, a3) { + var sp = stackSave(); + try { + dynCall_viij(index, a1, a2, a3); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_iiiiid(index, a1, a2, a3, a4, a5) { + var sp = stackSave(); + try { + return dynCall_iiiiid(index, a1, a2, a3, a4, a5); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_jiiii(index, a1, a2, a3, a4) { + var sp = stackSave(); + try { + return dynCall_jiiii(index, a1, a2, a3, a4); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + return 0n; + } +} +function invoke_diii(index, a1, a2, a3) { + var sp = stackSave(); + try { + return dynCall_diii(index, a1, a2, a3); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_viiiiiiiiiiiiiii( + index, + a1, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10, + a11, + a12, + a13, + a14, + a15 +) { + var sp = stackSave(); + try { + dynCall_viiiiiiiiiiiiiii( + index, + a1, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10, + a11, + a12, + a13, + a14, + a15 + ); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_viif(index, a1, a2, a3) { + var sp = stackSave(); + try { + dynCall_viif(index, a1, a2, a3); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function invoke_viid(index, a1, a2, a3) { + var sp = stackSave(); + try { + dynCall_viid(index, a1, a2, a3); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} +function applySignatureConversions(wasmExports) { + wasmExports = Object.assign({}, wasmExports); + var makeWrapper_pp = (f) => (a0) => f(a0) >>> 0; + var makeWrapper_p = (f) => () => f() >>> 0; + var makeWrapper_ppp = (f) => (a0, a1) => f(a0, a1) >>> 0; + wasmExports['fc'] = makeWrapper_pp(wasmExports['fc']); + wasmExports['Uc'] = makeWrapper_p(wasmExports['Uc']); + wasmExports['Vc'] = makeWrapper_ppp(wasmExports['Vc']); + wasmExports['dd'] = makeWrapper_ppp(wasmExports['dd']); + wasmExports['id'] = makeWrapper_pp(wasmExports['id']); + wasmExports['jd'] = makeWrapper_p(wasmExports['jd']); + wasmExports['nd'] = makeWrapper_pp(wasmExports['nd']); + return wasmExports; +} +function callMain() { + var entryFunction = _main; + var argc = 0; + var argv = 0; + try { + var ret = entryFunction(argc, argv); + exitJS(ret, true); + return ret; + } catch (e) { + return handleException(e); + } +} +function run() { + if (runDependencies > 0) { + dependenciesFulfilled = run; + return; + } + if (ENVIRONMENT_IS_PTHREAD) { + initRuntime(); + return; + } + preRun(); + if (runDependencies > 0) { + dependenciesFulfilled = run; + return; + } + function doRun() { + Module['calledRun'] = true; + if (ABORT) return; + initRuntime(); + preMain(); + Module['onRuntimeInitialized']?.(); + var noInitialRun = Module['noInitialRun'] || false; + if (!noInitialRun) callMain(); + postRun(); + } + if (Module['setStatus']) { + Module['setStatus']('Running...'); + setTimeout(() => { + setTimeout(() => Module['setStatus'](''), 1); + doRun(); + }, 1); + } else { + doRun(); + } +} +var wasmExports; +if (!ENVIRONMENT_IS_PTHREAD) { + createWasm(); + run(); +} diff --git a/examples/basic/index.html b/examples/basic/index.html index 9e59c0aa..55d7aaec 100644 --- a/examples/basic/index.html +++ b/examples/basic/index.html @@ -87,6 +87,15 @@

Embeddings

async function startCompletions(modelUrl, files) { const wllama = new Wllama(CONFIG_PATHS); // await wllama.cacheManager.clear(); + + // note: this is optional + if (window.location.href.match(/localhost|127\.0\.0\.1/)) { + wllama.setCompat({ + wasm: '../../compat/wasm/wllama.wasm', + worker: '../../compat/wasm/wllama.js', + }); + } + if (files) { await wllama.loadModel(files); } else { diff --git a/llama.cpp b/llama.cpp index 64b38b56..56f16f23 160000 --- a/llama.cpp +++ b/llama.cpp @@ -1 +1 @@ -Subproject commit 64b38b561b987679c4e1c6231f93860d3eec2638 +Subproject commit 56f16f235c4a6ffd0cd316e1d4b5dcfbf2dcb7a4 diff --git a/scripts/docker-compose.yml b/scripts/docker-compose.yml index 96a260aa..4e37a2f3 100644 --- a/scripts/docker-compose.yml +++ b/scripts/docker-compose.yml @@ -40,7 +40,21 @@ services: # list files ls -lh build + # build compat package + mkdir -p build-compat + cd build-compat + emcmake cmake .. -DWLLAMA_COMPAT=ON -DLLAMA_WASM_MEM64=OFF -DGGML_WEBGPU=ON -DGGML_WEBGPU_JSPI=OFF -DEMDAWNWEBGPU_DIR="$${EMDAWNWEBGPU_DIR}" + emmake make wllama -j + + # go back to root + cd .. + # copy output files mkdir -p src/wasm cp build/wllama.js src/wasm cp build/wllama.wasm src/wasm + + # copy output files (compat build) + mkdir -p compat/wasm + cp build-compat/wllama.js compat/wasm + cp build-compat/wllama.wasm compat/wasm diff --git a/scripts/generate_wasm_from_cdn.js b/scripts/generate_wasm_from_cdn.js index afb83ddc..bb158510 100644 --- a/scripts/generate_wasm_from_cdn.js +++ b/scripts/generate_wasm_from_cdn.js @@ -13,6 +13,11 @@ const WasmFromCDN = { default: 'https://cdn.jsdelivr.net/npm/@wllama/wllama@${version}/src/wasm/wllama.wasm', }; +export const WasmCompatFromCDN = { + worker: 'https://cdn.jsdelivr.net/npm/@wllama/wllama-compat@${version}/wasm/worker.js', + wasm: 'https://cdn.jsdelivr.net/npm/@wllama/wllama-compat@${version}/wasm/wllama.wasm', +}; + export default WasmFromCDN; `.trim(); diff --git a/src/utils.ts b/src/utils.ts index 76c18fc6..3533d1d7 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -268,6 +268,21 @@ export const isSupportWebGPU = () => { return !!(navigator as any).gpu && isSupportJSPI(); }; +/** + * @returns true if browser support WASM Memory64 + */ +export const isSupportMem64 = (): boolean => { + try { + new WebAssembly.Memory({ + address: 'i64', + initial: 1n, // 1 page (64 KiB) + } as any); + return true; + } catch { + return false; + } +}; + /** * Throws an error if the environment is not compatible */ @@ -373,3 +388,5 @@ export const cbToAsyncIter = * Please refer to README-dev.md for more details. */ export const canUseAsyncFileRead = () => isSupportJSPI(); + +export const needCompat = () => !isSupportJSPI() || !isSupportMem64(); diff --git a/src/wasm-from-cdn.ts b/src/wasm-from-cdn.ts index c7e1fd9d..ec0b8768 100644 --- a/src/wasm-from-cdn.ts +++ b/src/wasm-from-cdn.ts @@ -5,4 +5,9 @@ const WasmFromCDN = { default: 'https://cdn.jsdelivr.net/npm/@wllama/wllama@3.1.1/src/wasm/wllama.wasm', }; +export const WasmCompatFromCDN = { + worker: 'https://cdn.jsdelivr.net/npm/@wllama/wllama-compat@3.1.1/wasm/worker.js', + wasm: 'https://cdn.jsdelivr.net/npm/@wllama/wllama-compat@3.1.1/wasm/wllama.wasm', +}; + export default WasmFromCDN; \ No newline at end of file diff --git a/src/wasm/wllama.wasm b/src/wasm/wllama.wasm index b7fccbc0aec82890f49cdeae72ddc47e0e546996..35bab7443245aa5b51e4fce510b4159bed731e88 100755 GIT binary patch delta 1153675 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%0AZ1VQGaS{hN4v3(;2omL+0kn_4Q$e7! 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

CE|DCGt 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

ktorIv&ETB)Acv8b!|yS} z;*Tl>MTQ-hEv#PFUdR^O-MaKTIiyz)C_EFy9$egRAHiKEA&GvV!}PnU{VB&fHax8M zbVoPA1I1)=ZluqLGYZ5F`@7AX*q*T3y6(9A9RBMd?zq6JO^ z#O_}T_1e3vOVhGzjLyr{fi^aEsoE(U8S-O!iK4JM%hdr@B7-FU4^7kDuWYlZuPXr9yg#HY&9m^m-CrI%eFzbiqbUXJoE+%Qh%lWm_{l?bS_OrIvX| zU}vtGJ%x_#gI{-1!%*gdFWXoYa91#i7d?oVQoCbnelb*W^buL7==c?~@L5e{4h9or z8*O)kkJuCny}{bPg|T(4am`!QRg7hOSF6``qCA=2@S*3yFULTn>No*YT>9~Fjvjm+ z&o^vn+A+M5M8Llkda&2o<_YERvo34ZvWib=O9FHCk__4*QT-X@g3Nvq3eBlkDcDd$ zD}$ulQ0};>>}FKQCziinWZ2ErR*|U#aS7wE83TLg#qzQ=%E~HZ(%b4yisOYS{5_@U zFT7-{WaJ)oMMV8a!q@Til?C2a%Z%_ktbhJQF*&04Ho9%V{2?CVWCqCkCw%5<5CsFp zBW&(QHS#AaN~|rLze(KyMZg1_)ynt~vne~q+Re~d$A6y3Kc~KrT=%^ zDI3%l#-I<>-U-B_h|_kf?O9}Hs{7+3=b1Jtww;wTk&nTd*!Ht=hJmEFQT5ST zSp&MWu!fT`kUYW;d~!D4fb2=u{Ij!U5M1rVuGpmp*sjmdMmg&XwGCUlPVLFI?@}{Z zlb!09e<~!!VIYo*Kl8@`{aG>$iZ-lujp{P`eT8m0K1Lw|VCz*0pDht+V}R_E1V~my z8)NlewXIL)BtcjLB0&}&yrcni|sS~o(r%Jp?1ShP&UK^1bM znxXHR0MO6D4HgK63W2$3!03s$up{58S2yH7hEurT*Hgkta0Z1kvqOzt@5b&tjKXea ziw>(hpxJ)@hYE9#1a0V*WV(3WV3F83LN#Su0 z7wPbJ@-kDN&2kxae^IB|ln`5V9Lu#3+kRXf(><=B>nX$7G2ppK(YYUGQIrw^m{~5y zl80^u=!*dp>zK`K<_XoE_38{;<**F>y;;WFC)7g<;-7y~{j%!M@r#y=YoAC9EaKlH zSj?RjQC*}8uf=}O$IW)0I(H5wK<>u2H3ws6DXl6tDJwYmv0ZOKC8C8kFI1}VcHEbv zCpl|NPN}hLkCRg$M8Pd$u$=puO9_?emp>)`)&^u-NXG9bXvWQ*1&adBB81&@TAkX9 ze-+^^_scxI>26nqmyVZ(Q21?vJAwg?DXxpoKv&bvcu4R)(Q!0(X?>BSr(DR`a<;~$dCTKkjoJOA z^U|gZ-p3`u{%~m{5y?om)<;CrhGlxRf*#8=_@NK-Yo=$@jKNL{E1kzIvTwy~wH-6^ zirW0Mn>|`fL_Wr&^+e$YO;0-MpKK7QDOQP!)01}#{W4Q!y5WQ_RMiH>y^o7zBYrA|4>fABkc6+LaF zp6b}ozHFfRs*a4O9-1coZ<*TCaM$V!?H)+L2gmC|El(1p=rfRu8TPo|TIz2OcI8$G z`j{Yf!4{cCvoMZkvfY*@_ACO5Fpf!S%DfG=ei;W}c47#c#U5#>wa=b24L?ZTKZ}JM zYHhO*OsC&m5RW$0o@{w!Gx#!)=V)9Wmqfd6H5$7e52o6P4{t%Td}YRC0AS7($!WjYyG;dkafE-Eh8fvags-oHJvnX zhp3%KW^O0MH{5v|CFxlH;cI-#2cQn7#Q-*65av6U*I9e2uJw_!Q2V_#+tgXB-*6W{ z_-$sL4?-e1DRHdeMphT?az*{vj!8^9F5aP$Z9cqi>MM`1`@3oll}}l)t5(!7Sc@Dy zOo3V>jPTS;$7pEr`aX+x)o^xx5A%1^hGjg1Mx5nX&lYsk>J?Zai)gKZ>&nG3DSM&g zYj(Puwhmj8?^I~@m4j?|h1LYW9(g#s5o=MY$<4}}E46$mryr=)nx;;%dD2*m3z~Y_ z(n@V@p2&27PURregLJJBnVzD{OmjqJ8vAHguA$E@bG&aaW-(p!(4TghVvBf68k_KR z-`4D=?ppUcREP$S^%-Omu_UZ10*LEm=`7t!Gw${ipfZopJPM_w~~5Ne!nL z7qHvfrQrtEUfL!lY`l4qw!zjGpJBXC4Ge$a^I0^oyh0R`?g7bgET9&aPM0Y`zM=JT zMA>V-wSMrQbE>!247-L+F4dOcGR0k&YWL$Yq>t7jjW<%ZsE^i|&ALq6ZGOgiw%7Y; z-zW>%ibwLc6Tdf^3fuZ7K(P6Z1+6n;xAaDhbC_sS;61Z1)w~@zlw-+zj^c z6>wMdQ(vt)90kE2xfvAKqFO=Q_0t~b*gg{zvcsc!r=R9-FI0JrdAT4SFtnKZJxOm2 z22;HIprt-_AB}6fj}o@~QlwkhUvogW*ZxYa*eBVq<<^IrVt?GVsROUndZg~mFK*0p z>%h*fC5~V!#BuMH8msk36u3&e^WTIv3a-{(w1InbuhrTpvyC0sYCqU6jPD3ZGZ|l; zoskTb_Foiba(`6Y^{jb+t*|b3Bp}S+lW4A_0rucgb_2e5_!Rrrq~_R~i;n;!cve>7 z5+nK@K1v(PJp4%h8pyVx?)>!~A@+KI&7;g>@AcP8ymU&G>LkOlI#u`#rC%P$*OPD5 z)Pza^Q&0)>kn40k3I_d)oafeI%`VkSS<5T6^g5Q4TrQ`MkJ->0ae@SP46od%T?!MY zA8ypz=FUT#;HKNzux@I3lUA1fLMjXf$b@4gyZI*V{HlaY9~@7kn#dBsDa{{vP;UNE z$6p7L{g);o{9G&1lX8ZZ1;jA4ore5;D={F?@tMtH$87{t4>c;CTjb=)egf6PJCB2z z{yJtyL19Jb5x}M=JYv(`t{BQt$Vevj8dlc|xP*E}%j~4Itdw_1XRSI>Jyb1h_01UJ zzhIx~Z6f4HY4U6L+1ib@6j#jCrhtNhVhF?i**PrwPHJmo_G{YF+ER5} zs!gS6MX^U2TA}@+l2o>CXn~Wxb4%ma#&-t#gwz;L_p%AU<`uF|tF!|+6;k|`)-7}P zuS(?#kN&N3&s&;;d$vDj_pjFefv0hBwKgg>|Hn^lO;WI@9V1Vz$5>TF`@{CiE+eo` zD^qOSUp3~fhdkK6n`o@xptV+PYhE>uy{k1;Y@bhLzKvQZWxa9jM(s+4r!yl<|B;0^ zX{&7Oe`EJ=)|x^m-{|4y7uq7LSah?tzWGF3I_6V+vp8Fy55HpY(ncHj@L+-CR?<@h z7DSsA=GfM&5xaX)rDpuLMf*@urn5~SXw`V!w^a+kGhMV*lLkiihgw^53fgs>)?3+S zjM}C_1v{T%Y(z!sIXYORYF--3g^~rdNOMWuxVn+VKq7wlw-0%=?L5N{?m6z^}EEI?6Kk z;?MMxtrU;1#KU$B!oSRDbWDSp-2pcE7ws`P1p4V0tx?)%KcqQ+WA%R3`ls{PRMzjf z)|y@Zt5%o2^Q-o0>NeUzt^X^&wQkb9F57inTcvC#*LHy3@&^*d;jpfB`lbZMhT5c}je?H+9Zb~&jvx%l9_WyPKRdF^encgvu7OB(^J z0DS7~*Kma+xYN|$q_~U!#_lO8Dep|GRQv;`pRzwza^v3TXLG$Ra*&mf1N@510e;CGP&`gnXm@4*H* z*(ghQ^;Qb1@AY3d$)7FCP)SdhE1P`AtM<<8o;2Nh+2cedY5&TXXb)MA0GzI&ub$}L3$v6^*kGK71#VwX8Ih=^PRW5P4-4%999|`1x(-UDdtxzP z9#gu8gst^)j{fozz)&g?z9Ld(71>fN<>)8F2oMwjmdgl&rrIe-U-ki#4+(s!#6uF_ zxf*y_;7cS9<08u6v`o9b%09$CSSXZj#)l4)|d)2rnuIa)7W**xeyvJHg-+4L1-J5yI_xITwLxN zsGLhg>~OPl%)#HAyT;j?RNq^23#kjxzYHpIl%sFGbrO2nx`S%l*}WyV`5mlJx$7Z= zwQ^;hTQ5(@8ipIX%0?oFbrq2#rO}28U1)9qBG=0K$ zfTF>EYJpaJP1BEl0hG7bs>*jP*lMq7`tbJvr||apwuzbLr&9AZU&vz zkS*A1#%cPp`GC!4Jkx}WxYs4>CerkMF9J84@eIO^t1iIUL5=PrzfLWzhrg%4(q9?h z=z98f(de#OT2e`kZdC`~=sI2K+F(bM`J;0}qwDSOcjqb;;E+3oK z)s_C|mbbhswLAkM{*fM6caQfxYu#m7b%#^%f2zB<&96V#U7W`M&vlnU#t~kdYnGTO7$T?W^UP~Bvlt?n{v>n`KZb;sWBJFjb#G!2i6`QEO3aTeys-mW6YTxuOD`mu?rmC;5dhV?FW zy<<~mu&?^K>N#g9r&3CC=o)*dZ^~^wCgBdayvr>B2lHXtPQb+kbdf-vjw$3@8Ng)( zJSc&Jjwv__NkCr$W=O!|L=WRrB69Fx*uyTca zpXnGifB^*DEP=v~DY*i;lYp@jsMj$iPXPB2uvP*MI;KDiOHn;Qz)=YlcTA}xfPnuV*B+o(yI4~oYK=p%u$jwuBKc#43*5@_5p1!{hx7(~Du0I+uaps%aD-8O2r;kep$ zT9IU$zPp8X(`)q zngr&?s=t#E5+PpGEzlINPWtdEQZQd8knQU4>RK6`btomyQU$-br3%hZtc2gL#<-P| zLf~>{tc}DgY*$XqlOj$}jCetsyMggz!1Xm&K*ndoT%GI~nCp&kwZNld1bX&rHfV%v6&~k5@0w35 z`kLom9cd9-G}3il4z0$pvck1K9~(nPx?ZwXeKnoe`?fPmWk)Vyh1Ql`p?+j0FuzV% zClfQ}rBLT|12|^US>vrq*f)XD>hDd;m?B84%y?mJ&n4TWtr4)5YK=sBvLRbSy3i5C z(*^}<(FP^TX`_j>RZ$7^(nb=AVcKp+&51GA$1}>Bu$!62L?ND4);z&1aU_v8B8pVy zH;FNuk0&d#U2Mg+Xm zqK-)FQB|}|irF~%mlhtArREE)fFL*R2nzLpBrqm1%L^VWIvtu_7uMb-pP$Q7IZ64JD$XM6^cKu0>m88}zWr zMot_~gu{{z91SF*fkbp5uRbegYZ_waxk7?$_Fk8IVen&^+j#tim?M&ch5vM*uIDZ$ z=YjY>3{FENlF6w@D*D=}v1Od=2BnG<4CE~OBTe7GUhx;nnNN{EcLC~j07o}r4htid zBHe16MLKcaoJeo6P^)nk>5QhdVqAIOLd`jNkr+TQdC^hbTP@U_y%g!kUPkSR;pIaM zG`kDrjwUE#VET+eV}H9r;n%kK5^h` zrE;5vnk>lEUz#CV5Vb&a0+*+U2^5U@$OK6;;k}BdwJj4S3;m|Kj@jdj7R>y2MVnxu zwMF}^wrDdfR2FR&fud+LEl?J127y$x-b&>x3zbDXQ(Lsz7AT80l|~U!v}zL+MPmhB zvQ#!?nroV|HsmTxC|XU%zbo2a3q5Pmj#{WJ8kc!dwC^qO&qYJ6{a~SIE8341c($Vb zWP-eCsiM|)q1M>)Ij+Gp4!4`@YDwepopW6`@o`wC4ONW8AIx>FRx(MVey3Urb+OJvNan}awq#Jd!X;RJ^)IIL8OVcMtjVH$%I;Y%#s z8l8N4t+ulAO$#+y?bG=n+?SIsw?M0wd^#V42XJ(Sg<3W2yF%w0}FoHSfwruB&Y%-}y^imy>+ovc&Zs zo<`YH$a@tfdon9-6fYHZSHa^PmBm|msil`K6-!_tR--M@6suBw?u)W^mY5)~ol^Z6 zt(+Y^&ZQO^RjP(%VyTz}34wT%P~+P-U3X`S#`Qn7DA}1Fb>!e#O@yb$0VL$fdja8YFFxtMh+W7;>Wc z|L6+i|H8DIH%l@3y%QJT%IU8ilidGn)9Q|LT0JCg_Wal8)j#ZY-T6P;BhVh8YCN&V z=T(^hZdd79`i4no?Hk0`v-AzU{tt8&<85x0O}3kq z5^9c{loEY&+@zGq&UOE%L->DQlA!;1UcOTC9pPeGy>vs25>i&6(z}AJm#R)S6 zTlKyC<5@ZZOc0jVbD!G;!N3IJCK}XlY<-Ts0ONCm4Q(VfCU^Kxr||#29`Zk(LevO!a<5N4r>XZx&v~83$O?CNYF=9_ z-EJE;21>>#{xR_V-TIWb7_B0|hx`1vuN7Cji>=A?bg1Be6?P;pYoY71^z#HBw?K29 z>#`K|36$2l&?N1vCy-ieN|P3g#_7G{)3sKOCN)-#3FOwQ(WM`J39B(Ib_xE8GG=`L zxOeCxp zOd&XyA`}EBbwzF5#?njOv(HJ^j1he?j$jcvfu@g-8;-xbUlu<}&iMD@JKZfIa9yu< zm;SGkF!s(oUu$FEweF$+5wpK2X3yW~F19tSR!%$p)0EQ<6j-I4#;z#6!+R6nZT#I1 zuTg=A++83wZ$ISjV5?SGx69ocdE2VXf%cy!r2Rw}OQx5@Y|%deOB?8O(;pEB={gWfhMT?^IdEW5qjF)<-RUjakk4zVyFT zw?^?(ZkS3}8?*0m?^pg333H5bUr2JWCi#xgBv$j&oder-IRd%`pEPlc^sDxp$0ccu{TK#sea>CRLrBqI z{l8H3jax^${i*-y+5cM4{>oUl+up4D-idxioc-Xl7XFJ)rqupQH-E7ML3dXOQ^N`F z2;Txek&P|jBNNDH1H5Mv25s$Bv z`?V1ZG&k0K`s!8Y?!HpF&H}s19n7N~``za< z4lwr$u?zTGd{MOcqC6+)G+7iaz9=Is)GUgoe@|A~<{qI1nnls#i}Hd6o^KXK)8mRV z#zM`aXnI^x#u8}so#yUp=hZSL7u7O(ru!}%|GAldrp|V+w)0w=k{4G?^@VA%$luOf zUQ6|@HG6%1D|uEBdy%^=(9B+aef1=Og417Epqah;`twsIr@u5o$3;fhx$X~A9dWzn zd$Fy5((u0KHtbb=J6q&rIeoVKTbeoH6*eh9F5fNV4OD8Z&}Ql_#kRQ+t~V{vtdW-b zhtwVS<#8^sK**(=Zv&aIDD$TT8+R>o->PV2OKrDRh=1^vDK?aMEq0fu^{0K~eev0A z8^3WM&gX?`YuUE8jo-LmVuC#Jw)$%yNQTcP#JFX-yG?G3Lob7yB2U|ex2A5Ese3nl zYpp%YMgrjn%Y8{2<+ly%vfW*1G+OVz$?o8Br0`<@#-pD2p1XHeOa57K_XS{-?M*ZYd&*7CGQ97R*JI01vh+-a5J{K2mP7Om=Q&Q!;JUM0U8bv(aO}`)`^3 zxsjU4|Iqq8|K&XYG$Kmxm!Evq~}oOjgn&Xv?p8so4cIQy}!AA6#DdU?(6c=bV_Xgu0zQ57)B$vpLFlF zk&#Hx)9wz6?clpc)fxAAB?ple^P6-IzPsG(8KzX3hFkC9q zuUep4|K-9g#-S59!2-?BtXx>sq;N23f~FLhhB!nvK3Bhyy3BIRI;C86L47&hI4e@C zWtZ#GrO3|!j=o@_md3SQSO5*==x9RO<2KJE-n`b7z)Y;b?iohrGcVaam)T$yw%_h) zAx4+?0815Udwnd8enNu3D(2GAp69*27#D?{d}$(1*;6N?(FMw_r=@%ga~AjgAT5Vd0iq*JKVf(gg3cU`r$2UjK@Y-h>7Gg$0LA zrEq)wLxMvB{?dX&66WJ~uw3AKEIcT2Zp#)B@IHc#Uo=n5#vK@PN8k<|q8Cl>xW}_I z?Pkj5*wQ$8s-rKiJ#_T3@Wofh>P745!HE!QAyWUeK(iIq5gnS4#7_uhEgE>Hng^o9 zSpHE1Pcv>DcBa_#lzBitjRiM&RMucz>uh6MiRU?60!6d3e@nqY(bMSI#B)*+hOk0t zrs6<$biSoW@k(uQ!5#<%)y028PqQ0R- zYVge@g{<$lXf0Vc)2!fPGPc_=XVE63yAg)NN85USRUAB;*8J(@_F<%X~=quDxeB%{{hU;3>!B*aaRk8)@CaQ{VAZtx@L6#uUdb9X!Qni(^6u zk7f>+BFUW;+z#&p)R~!+h+iAm@{;@#kSvIzEV4qIf}-i;C*Yj5V1i+RrZ||CeRdSMK0J zMAmo^J4_kPtd;r)!Tq%#kA$r=YTm3doNOVes7DIdIw@QSp6BU}^)HSXzjyQO7wfZk zo5b-YPydikY!BceXEfnljJKd4M!6SdpJ}01ub-zMrM0Fg`Ya1IWj#-yL1*?`^N2$x zc(v7T^Yr=Cfr>KEwn)t~=ZQ(a;Mpq{XjVs_7~oQPymJU-OS*fS<`1t!zVC@Iqnl!s zJ=on-9`|iJee?J5?1KXfdrwcJI&eY}RQzL=G1!+SKNKB$dLC9BvuwrKsfE&g5bhKt z7ZgS>4?Jb!0*y;Nw2!vu5>IC|siNMVx6=5C9x6w?yRY!9H+$k@A?ds)W=s2ep5Wi% zT1mK=6+Lvvex6%0_exn@hJ~_7V#eZ2|Y@ z@k0`V*GnzXS}N!1i)c+Jn7zzGC9_x4IYYth)daFWH+b4L7*>Z|M-#JGwu~!*9iILa z$Iv<~bc3g5T%c%jpcD#p^ajrjoQb2GqZhfnzo(JS5oeY?zZsGU@Er9S;2E4oQ`)V6^GsH7 z$=@A!dp=5~867@Ejr0dS{cP5BmN>MhB~P!^5`9=V)3F_qnHmeUn!7k3B5LE11)7;L z?VCkyd}o4YFV5%B19_Dgt;CR3Du*mH$pNCqTABH=hOAQ2-1>5KorPL*XC_*~(e)N8 zOd^J;@ZIl-sUq9l{f;~8qnOVTo) z0WX?}H6FFpzoauwexB|x!f|R#s~%g5^E{%ej#(hJ0b~2)o)_#bl5VHR*RVnz@QNzYw{JJ2uH<6uJ4*0?mrV5ihD`2hZwP7HC#vVSFEUl0aj7 zz|%UjiXX%f5w2~+xzgP#UUxD36%oE|fo6o=MfOv8Y6nb^^V1{~1)I{=jMMBkOfpft zNLyW_hS5EK3_ac!{o9M9Je_Hw_t7X%2`%(~8Ra=l4Pf7B&&KrhH{tTl-+^6`<+;{K zo#?sKR`u-y*-^dOj;B~*t*k2a?R4%;q`2Gysgke&snBOH!Z0k#zrg}chF0kBt(6Sj zVS#4(EA&IP{Z!ic_DGZ+ndIq2xo-NBr#|KSl9xPZDA$)v_FRyyylD&#c^7L|#pfTcDX@FOeO=@o#y8o#%MMl;HPsJT4??q|f!tP3QWp?>p$nzq6a3 zxtr3xIO-pmI>3Q_FBEbVDV#$6peb{825f@qgnm{A%bx%&ZIoZx(AN>uJ z?O9nZ(u~$iJ*%l>I#yNzGM2(0!{We(Pz*Z zPm#CJEYM^|lX&s_+yr@*Hi0TV0Zv48|Q$VxN%y&Gu^1)}qg&2Gue#dhGoo$%6-m{NnjK7tS5dxyTyZxtUfl1-uJvkk$wJwXC@vvka!Q9jL zLQrbOf%h*$ivCHUvEnyRK`M`8VOK=4{j_JDQb9@n6F;S1At&Cy#EPyw)*LI=9DT{N z(hX+ir#Qq;=UDM#!vqRmNglR&N5W^x37hwuQc80~x41M5 zgw9Q5b~i<9D5+jt+O&v0k>=g4yuq$X_x^%kmu7f%{2G_x^|hl|w#Ubk72j*l?#6ST zMN%eeyPN*|UgOIQ@0!$xL^>go5|;yb^sIH9ae!!zHM!pF?H#M{{gai-pY{mvrH%T; z&GOTJJNvQP>oV?ic<&(*_^`nHI_LcY4ZI&(*V|ID?T8vnoZj;lUX&jT;|E6{_hjY7@a!qx)%G=D0&WaAFmpnsE&+RErFZURXuF_#7yZXb7hw$>Y{T`Vo`xl<2W1J+1m!*>m!}LMOAU`*CxGZ@!jm+P1Xr%ebGXB|8DZFM#MYO z!sseN6X)$NCh!Rok4c<6U<*_UrQT>6z|!hjoD=v+iCaoRi*o{hUg9BBX=pJ{;3Fh% zolPJtSF(+lGyT zqkXKYMITFRO+D30iJJWGW2vnPH7u0#vyYHdA>%77$Qr@>2r1>wr>b(fgw5$*AAJqE zn-lG4sYI>z(?{QX2=D-2q&FmNHGw|*hXjiz@VbPpCeTO!oM5vFEZk^1!|S74ZJ>|7 zh`M024a}DjSZ$z>zKigX5S4inx0*m7{awP%Ch)4nttQY%KT7_X%qB3$Cj*#mfEVk7 z%~Vr2T<85jsN5&u(vaG*vA(|Za}0liyL%Co=7Vutx_o~|ROvp6nmtH;;TFNcli4p( zvr6mhjJ!IfaP(`A8n4_)g9PN|pEr5O(rn|lTf7I+u^PSa@ZM#s+WiSiBM4TSSDQ5F zGSFOKPFh5fl3_vC5Z+u5)VgO_AyG4z&Gi|CiV`lDsM$w0*WV(vf^u0^`KE+T`Dw0y zPH-`g~H*ner3f;uYLSaYR?a$&SBI z)wk&`Z#_HrXtv@5`hE0XZ$}&d{WJgF`T>l7=VH8XME>rrRN(pU1sLqJbs6p=_S!t} z^~OIQ_f8?h>KC{HKYtO1)yBO~dTrjjVa+)2K$7hiL9dUBbn!%QTRa9$^j6^O+KHI%61@kQ7q+p)75ZI*>t^jvp|H3a`y0W_cfDMU!KupiFbyQ3*mFz50(VFO?-*UH7sdU-xRP`JL{%?1z9ituBHni9w93mU%yhN3N$$>no$>axZRYuYQ_U zuJsnu^Hw}jmdFZk5guQy@ScZ99mCs6raK zz0%uGflD#;5L9*DCV~6ie@<=RZIWYF2D@#i8y6jzhxv2Zg>QM?Ji>!@%?J%d_>7WM zJyfyG#Msc4-ugz}HQwgb{=2Q^tiBl!I|8wFE4+pLW%mkiYyRReyp3{Kn(Eg*PJP~r zx4kP(`;q^q8OY&v-q$G6$s4?{@N9mjqC2g8*SpB<)3TC$mStJy{JLf9}29Mm?7DvG)Qt zZ>P7O{Be4xx7_@3zH#d=@0?T>&F}u?^&L~{`kWd^l9zQxw>{qO{LI1qqCIEsMSBK= zX7BShq!xU?)ghkP=l#dIiT|tLdas~PcAQAznL}b|8E5sm+2@B8jmg zi9F(-te|xy>7JHvvlGPD>Uw9?n(59ka4w|KM)fj7+NaOpM!Ni) zG4ho6>2u>?JH^K0cApS~R9`8oZoI|6UsHX;p=XF zY@F?TEbgO$khy99S}f7GLtvA|@?PeziW7U*%X30$af}+yydCB2_&MkG#_oJ zzOVT%Kr^wqeBaR5LvCM(Je(I1qe|8w{}|$roAvbg8Y0+z9$!Rhg*G}taokTEVzPmA z3)YhH^chC*vLB$&>;|8YOj)P+eBHzW66=Tx2@kzn=ZWYYM^ud8eZGFY%kSs$d64Yg zMZRLrm2GW&h4rhI9Fid3i9cKNr_Nr`urKTTx>D;V5+vTCfv<$`D}1pveg>bXA6|)7 zNT?CNv+A3CK7-HGLyg38G*29sY|T&Kna2wAtkqNAS&mueSt~Y^azH#~Rs2RNKT_D2 z!{!mqJZa`?5@YE@Ckkb{*2>3B7*pT4 zl5Y_S^TY#biPV8KK@I+MuH*W~gv9Cc9uYey4=0g_O>&buBw(3%NWz@DCOt9nnsh7j zBUQ8vgNL_-#G?}DKpo7gO3Zsu;+#C1L>`qePdp-EnRrCPoH~$`n0O#3 zA@Nu?VE7!97w3FNrpNWz>t;7Ck7U@A|nW}ZYHt4bsf7bKF03lj1k z60l@@NWwhvnk4EP3G=K+lc=MBtKtMMST`~8VBLho0|J(b2PDiBk2n*lBhCcsuz)3X zSin`NeNG-rB9A4K*CdhGNSITH)WpO?YC_^c0n5aL5*8=Qqgo<)R7)U_2w0LwB+L^J zz&k+vm>6&+P{)#}WAW55*9<3-hZD&|0+xw~B+L`9aVI8T<4#CCDqu++l`y9cR(TT1 zgSaj*zHb+>Bo9cKlSh)MBN7(vJc&9iVNMeH*@85i>=Bwhm?uuQy0!kj$hOU!!6 zmp~m9u%r%3m{UguTqS2RQHhIoo^R`j3CdH;s*z8_|0^Vf7K?!r}XcBeQ zKd35R+9OHikwo%9abn_u;sn0MlBi>e)Zvmiwu5is5~8k>6UdOjYwMij1oOPtB$3xh zSk!qEbyUKfI#`;Rc(ByWdX<=d1_Uk>4_LT4Z*Q1L9%-0R^00sn*(TIpwjt&voAUI3H0+vD-mavd` z0oQUgCUH()lSE!4VP2>}QkesZWsVAJS>|XWbxd>xfGY$?W3n&cu}35>;E04bPeyAD zie7F#^`S=F&c4P{J2bqj?_u*tFLq(2ub`H{-+hEV$5?|T{+?)H@;BCi_{(eRP`r;M zQ+&fo9cwtTV+{#d_Ua)Et}?sEB=Q;y7kwK}`p|eL$)ghH<&6oLmzM_9SRx!rf+KP8 zRn&QjUSE>e$X=hv9!`S85*9VxAW?h+4TSjK)7^KUd5~Rp2sQPR*n6;^$=;fJTzp@t z72lAESBh^46%aSA3kq0@Z&1Qqe4_%c72l}DMSqe+9+5CFRE>b8eAXnwIB7`rA>nW$ z92GNwTJep_DFBZ>Byl0Wp+q<)COf-cbcit{&LIZZ?vmpR zg%rJKS0DQh|iS%|CYfPiI92PDjEIwIiOnvO_Z^m9q%VF~lPhzeL%Wi$~E zCBdOYI3lac?5HAgqRL|rN?g=*FcGd1GjvhYE&KYqB=`3bZxS0fdrdY*u#x~9$JVkj zASUdRjR84f=X{7Itp;L=tAVhfu4Q95kvx>N90*C67c?SZ$;L<`987|PiEvo*!DM4t zW{$@mkhoxDAQ6s=MVesaf@^&jB(pK>PGaLqx5>sZ7L#D(uv#|8k`{z9x#AP!UebcF zM#5YgLt?>K%f^sg@p1BC(t6lVO=e?AOJd`E&17Q;3IVY3NjaUXNzw?^$R$5#Lo`Vv5S1|JV$jqG zNY!3Y=9H5Ml2if#3G;%4lFAuMgky2#h6WPxs55aijY`EBk3A%mc9Nl? zx`LroAM&kCW@w-wiJ>D4Ooj%aDFj1rlMIa{sR|=f7sxphPEr+yCCnKbGpQv*V-n}& zHA&<(66R$JBo#T3SmdanmPL*xQpbcAl;Cb$LSs@(%43hz;v9}7!a$T^7Q9K#Us{Cx) zD4!!qRHNBROx}@gGC7K^C^YyA$z*t*pn^yy2T==gOb!TGGC3e&&g6(mEtwpVxacpE z$ioumY={b2mNS|Nhmzn>A{?pZl3;Q~Zguh4gS9wkaxf9D5u1E6@tQ2&gR<2x_zpK3 zZmV@~iFdiQz`I;pz_9M4C*94<{*sBH@zCAwHi|Ob=sV8$wer_!Siu-LIYlzGo~UX; zbrywt6!S<0zh^=&A|sheRlZsHFoqr%JEy4f_Oi+Yv_BbFMymY|$lnQpe6F!s*D#&XHVSknG?Ozv-UHr6C$;MDBXJZ4&#u^cs?0{<05;~x$fF&QI66S0Sik#N6F(|Xj z*%%PGBo9cKmn4)_&`=^Aiz_If6U)Rob@2bA?oHsMDzf(BzBiq{lXO_J^zD1;goGUh zmw=#>ZWRy}k=K32ahY*L(3x=q(zrl$1R4Y?DocY10a+Ra5@c%xoro+As6^Jrg#iR? z*9j`{J*TQ}_if_L-}n80zwez7f9CeR=c!YtPMtb+YPogeWU0nLG96!=Oj2VMWf#7c zC&xD_GoGi4?)s}5v>?(D>M=!*A_`4BH3TVZCa=AvESRm)tj@Xf*V3geri7r9!n%a*%pOqL1Bzh3@Z8Qr(S zHBe-Px}c2K7Lu?VSGa~-c4@Oq>s^h_S+-l5VA;x41`DnA5Acsc4P{qH zT`e8v$3j;WS!$#mV{2Vwnyattx`g@?RX=Z?StCL5S>7#0R3m9&m&0yaUc6RK%WKQd zU5UfS2XA!sGV@7P$h3`Sg}~KO9ak3<$5R_!L;hzK!rzdY^MUIYQJtx0DK_;irKTqB zMX&4jch^(2R=A+SRf5ar2A4R4?fqit>`x!M>dX?vOUcgNl+aYmxS`G8WNHe14V7yz zFIUD#t`Ef9*3(>;T4=$}Y;(QVocH|5Z}D!s-Q_09ytM77@cu~`Y|c8TE$&hUeeUEj3hwv}mpk>a=BVPJbcagF2c{Vh$D zYeVzQFWZ&KJfW#IyUfyHTO(!uo<eM=jcccmoq@J-4iU-taUOlNldQXs@7RMl07OnOlE%}7onVZ$}ikC@~@ zf=oh*R}sHAsb3%s*lCoisJSE>_lFdExQnrX7e`S&*@sjfv8W!Y3COI4@lisRQFo+}W zi>b3A#l_;8bH{=4Cy|$!o4HaYK*eTkFZqm)Mv1xE3d6P*t z$Hw4J{ucZ9Nil1vui^$L=Lk%L6XdlfIT$Ak_a?~et4zB2a)DGFrWlC(M7SOBfcRN1uGbl zPPs_ad&vRm4dz30SfFI%1hCsKRBbq$rWD~caGq;vKzo~soD$FqTG6TMDM0>-&O#hW zqurVvQ{L7794Gvd2zEhWK1EVektBmCI9-q*Ai7D>G96V**2Yylb%#*#om|Ct`Wop} zN}=L0CdpLsoxbnSGd27|oG3MXCnhN4k<4>(s?_kEzMofv$~Ek*dNxj$8otxF{wP`akCV-?;!fX^1t1UOwLP#%)zBW#kMQ`I9s6)4L@_J6Lo6=UhN}QwkX_AmG-?2Jig^&S| zxT`UR#5Y4~K@~zyj8mnMF5eduKovqxic{m>X3NBQGkS$nA*9O`(q;V+!|R+}H?o6< zV37Rpq(+YK$ zw0$a_ZNHQ)?X11){6_c)f^DKtEwE?0XycXrEUT;L=`wzo;>q&5`{gJu-{QAY==9hI zcXp4I43FK{Gyy@l&1?6)y|tys?wrYP?5fRg^U*(AqDV6pK!LIKNa>GDgKdN_Z1bqj z{meK=Yj^IyV%yVX+s$N4@14%9d;A=&wW7SuUOZR(*gabDq&h##fa|pTYIi{`9$v;B z6nE7<)lJ)|Dm&Pv=W7otFS7aPYu9AGT-Va0Qk~44dVw~eY685cbDHWR(+;T4>O7Cq zL7juc%LdW(qH|ncHqeOe%541Cqz_fHGt$pd5!$KTC#b%kKSJi+IOS_eF<+BaeW!Oq zJ3_K!CXriB-G>)w)k<69cffkwnZ1L0y*KU3oJ`K}1RbvM=L&6Q6#>WK1Os#2>Phn* zqC*ac`F>iTjvE@0%~Rn2!C+9S>OEk)2IWZesEd3lV^G3|d&qyh_i;Y3 zLLK5;u&)IklfRgUs->&~maM!=Ngi9+L(9G*F!PA*bPJo!s|?Sv`RL9$?1~&)TBWl- zwb+wZCZCN_GHuy{{3!Z6wbIu#Z5>_L zUZj=N^{b1tj%sWpbN13Sa#me?X*xNpt9xmk>G@NM=dRRr>gL$;UYd`Rp6sO^r&EFs z_ttvQaY3x)60N73%2SOA*|_TLqW|rf0>ob~(Jrg{XE<&@^TZ%F&3u_T&9_u^k;J9e zB+4e2=G#vxg;~s(L^2Dm!&Ue~NIcIp-;WCct>l!gCLiJ7TSEEsi7KpU8&TPSOSMVL z1h(%|t)1~smRG$tCj|zn;LsLN>fjt(cDBdn+-gUQt79d7G?z2_CACA&er#)Ea8(~| zmb!mDJJCn$t&Uy6I#+6I)!8-d>q_k{dS2tzdeQTbz1kXj{)$iQsBBN95&QhgIghU$J{r$MVC$Z@EnCP&gE?xi_7W|7_R8r~%Cz!G;gdY{}lb zOdF%ru=6h0eChkgr@<9CnJ1vMXR|NYZb{`&UgKkZtj6WiZUYhRUBl-`Pt-$d|Y zb6#1J;%i(}?rbi1AVbYVsbyek# zf}}?c_2rJ%Nl&WZEq5e~7+zBDXqkiwhRPi+lAhGeDR<;2J!x7{?r|k(>0S35;@*o>VU_cQ}%sG|ek_WG6idv2sUN(v$i(%CV?s)pT@mxuYs0=}~Z9 zxg$O4NdRh0OL`J}y`0t{E`eJD9nSYw^+jW| zd6f$Fa6Vj5Bf1yq|j(m3smhn~J z2OCh-8u}$9Ao%((h);mSFTX~+Nx;M8FyDC}Ew!G0ad;>t4yXCBS!`n*9#sK)emUTc z^ozqIY8*~ed$ZW(1GSsP?j}EhA~Zs6QcQSEiNk4@GEt}~5e}UqHPVV|f)F8sP#{fQ zf?)I7q{1w>iE-GYDqd#52wNk)ULM1RNgmxY#mT( zUZr0S!YxshASrzBJET{d^_hjlKM@oa@ zh3Jc^0AVg?3t7*QNyV!RsPqQ*-nClin}wPa#R?^rH%Nr70je(QHWG>m5TW*KZb?!R z+>R8VZE%hPORBqKkd~&j=Is3h{%$mZssEV8hFqt0szOVMmw^_C&niMsq!A@RFqz2M zgU6y~;N26Cop`+9Im!Wjed4hVk9l?B85%hSkG9hE3)Mj-sVsA_)}^!D1|^kViRwyC z1YrGu<1INp8*1I|NqtNMd*ohb%buH}q>LgR zN1Uak5NekmG`~hC+GAf-B%+`^XMGmiU0G_h2xOP40;HCta2lKSU)n|9Kz2zAupR`m zHR!}-!dPY!%cjgY%f@61Hl+1B=qzJwc3COw@vPl#M3oZMJh`5z0#UhKraWPVb$iy{ zmR&csq&3^R;0m3^uGe0qxZ{}{v=e2bvxde8mDcO>j%fCynPLDV8q1&T)%&P*HZ(owyYtJg!gNt{FK+pX8E3pz;tp;!ovB zsKhhU`R2Su4```b+j2`lJc$Sp^qEg;eH@&gCYc|7QrpZX zKCPXfyH@FHgVA$G;#|v)jncZPTNE~WRe2#Ba?y46I_(*)R#A?y{IS|?tj$R6N%8v@ z_Uj8;1#3S_>#sb`hKd=!LuW{lR!KFZ}tXER1=m#`;afJ{f~AouQnm8ybW z`;y2cjb}os?UcF)JN1(GJX`UUwx@3N-?Sf6l)ZI-ouJ*UDD&C2fOZ`&B@?xgxXhf0 z!Ond4^+fF*x|_sl-%ip-cS_}%-jAOH_6GE#jK4m<2q*ZRtAO|shy?m&3WiF!=D((OEFf@79300EdQEFfm=RM^ zgSal3is2Tn+vWA!*AN-wUSnE$H}LSJcr*U|IC%{0a++t!-sEUODD2==tu>|gzYe>4 zlWBiN@!U09&$G%EAySZYWeD>Nh?O`>%hGi_*UdQd6<^1V)%e80e>0ei9cj4)@I{2LvE3^yK z=POs_AZTE*I_(ZNwoYp$sKn`Lo%S&<>*_g&oRz#WOjyb9_N~-TlhJhF3r4%vYFE+C ztRK-LDmQ99*=KFtm$M_QG$+;LFRO(4&-zYlN%t46*4nor^Dl~W?EZDy3}SI^nOn5=;<)^Yw*Cl+1bQSa+WJf3 ze_f6b!=fA~!lE4R^`aaPm%DkJe{j8!ah!au@^D3V5o;FPNZ)E8k zw0TnU&TP%!MXNUJ&E1oSpSo_ul!I5`+Jl=XTSNe^=E|Lx?&cA|`gAvs0Df0P+qYX-?wQ@va;3O; zvH5$r`L5j)H(wsTz!tdW{_jir0YZ@>2Y4vL{ld`$7R6o~6%Fmls8H;!2W6aw;r$1t3IB$c_0OdV=Lszj`&_y+r|`XNKNpHTD4%D1Ar#!{3-SD#FSzeL z@`ZLU`QB^4#Oyb&L%-CD=vw_H;Qozu3%=AA!y}qz@}KIIJFpo|7UywRKbYj6xqbhi zI+Fh{JTsU1arn9xC*!95AL*IL#+@?h_0m&u^KR~$J2B^J(f9rDx;waM3LY;}+=)K# zKhGiaP=ed)zwpHfCDPnHl=$Cwb9VPwHfpDq#%{@U=R&uC%8cvwKhq&+u~s>585Wzd zL}zAk$d|MGbA@*Qle{wGpnNyEg;(<3+%=!fcehFPZ!Gh)V6pcw{DpVEpao(Pc;_2i zxc~p*o%@vXnpjxsPSk`Y!uPQWZQcKIW0MYSKs#O&YuoXfs4Hvlu1Z7A%<1Z;$(C4G z_hjX8-3#Zq?@eP%dLS}t*vK~baL;P-Bdtt(RD5=mCe16I2QZWMZYLLewWm9v2AWvp z1x#>Wdy(7Cj$Gi@z$*1ZHzoz@Zn)5Wu~Nc^w3yLNdC1%6K^jbBv7>`}!9(84hf46% zIiI~<;Vz?2xv|2{+ukKT+>d4CV%iVX9qjRo+;f#>%+<^NM_ium<$ej5oZjw2d}6V@ zw|i2d8aQ3IaJ|2WPdDXvq zQ-;$lUxw40yQylZi4B5>Hbq?*b=h1u6&XEy3}mkjqrLrsSi09v(az6m*QJ_=fC6rxnSX#@)F(a zp?oolAC9ky_?C<*XO}H=cT%@*W{)m&8wDFV#^KHIq^LOJ_- zncGD_>N1wQe@#n?fR?`6J%|5TyxRR1{iwTrjr-+HWl`Oc58N9RWntZ-2KTv&vZij| zhwdL!l;v#a7WbRVo9wBr?&okhwbkv$#kI}-owAhWMBJAoJ-n9HMcg^c(z^E}Zk+4) zHhXl3`vF`&+u`1#tgoB5(;ZTjeeC8>-0gAkf8t)NhHF{nr|x@k`{t+a-o@eCvQoRZ z>ha+fY7nQ_+dXN+sUZaBvy-2?2diIAXV>g<4+DDbF8AH)l1Z$j(cPxSK5pW3usV}B z0BcD$=RP*L(LJlMerHOF!;?-kgPHxYGa4M6{>*&=c#Zx{=A4#m_j5h&_N@70Z2Sy z7wva{ufDUIopZo_oJ7>4?(#O{8t9EftQV(XTaHKVZiA5Y@fFF2-5quJ?QlpbZRu68 zSqE8pMwGx;cuy;Q<<&QXa<(BomJ=q`ZHu}mWEe+NU8WS)AL7|jHsT1(;%j#3h`UTV zRF{3!ovOme3Ypi z?(WLex~iYtFDmLk-eg%#?vd)Txpgl#xts9W!n$XFb>}%#0+Y(wWQYE8i&J)LOR1g~ z!t>Dc^K$fi@r6W|qj%xB4|4QU{$pF7{Nc>ihbyPpv$=W&fGczL_P89()i1!qf;>II z(ev~4w#||ivTUb*iE^s$N~eyGR-a3tgqeRW0@Vkn>k9^^Um9Yo+%ySv{{0;rks3bMpEeY)hxTsSGVvY{no4& zwORJG5!s{EXHw;klsr~+x!$oV&69SyjsJ`FxktkmV|%bP{q`h7Pl!_7T`-m>n0%V}GLrE0l{$T6hW< zmSB%zNmdH7QL$j;vB4jud9vP>;Ao%V?9vS8yh1NP*6FO{6?)q$Na<-g3Nnv?Ucn|u zg5fz*!Awo5#K$#MqN^i3nI4x%o%dk9Cu5eCr~NgwW_vs#X-VEdWhhmG*wkmXq}ap3 z*&h4ssyHx+MiXa|;8uAL_S3oI_pQP~q>?yKrRByM4$8;Tb+fZe?H8rkU(JN zaw;1?a((Iu>^#)+NInOTvVv=jviNq3d14Uvpg+$R#tHB>zX%@E{^=9-nDIRp)WHosG){|Fe z^EjM+5!TtVo!5bHo^QdHxb4T(D!#)dk1yq_p6r{k5|RQN$d;Bxu8a7WWMzAbybAq4 zpwy-Ayb4L%i9kf_AwT$+BWl?T7DZ8!Z? zDLq7HVN~V;uX#Q7lLADN3?u?G`s-b)vQcqVZ)lGss%b&%@k4Nd@j8V4qdrShP1B36 zGogJf_H>UHgdC-*{Ewb%Vjhgv0ZC&=1IS;b2x9Ocay}F0*9sg{M>Rp0; zyx5P}g4;<8-`c-};`9+^F;Uo_+w{AN8{R)m-F?1cBQ|!g^57!+29NU#w(jq#IvaMo zo|YNM)K%TCKcp(l>%P8IFGJkNoI~_2*sHjIh;CfTcd^*Ks&C#KE#TL&mjn!Xs5MO~ zP31bH?rb5{M+(7{BJ3vMshmjl#s^5nH>R*F?$&!6ujCbb6f^{iAe^-+Xbk3khY`-@ z?Df0#!AcW5akoAsCvf5r_G>f_KqVhO&TjjI-tpp3(E7YK>;$?B4{0+8uHGudICLL6 z{tpvh&3^{3R4d7|r&VGLNsxvAplb@&N&ld?FAkwSst}{ZxytV1LeO2Q^GoKwM{l2X zV~L%@6laOTuDM4qx>)hF^|bTa`eS=hbw99EeNpTXFSYr`zC(V+|99I6=iPXYRL&>7 zwvsYm)1<>TU#jy4M=Be2zuw+ycix=MTfVP$p4~U&4BLB;e!ViZuKT_E4kbJ0#P%0N zx;QbI<=(HC;sJUnM3heFjjZ?mx;rKOTt2(?e%+N}GG-(0*E=gWv&w1RboT!J`t5li zykPHWg9d8*L!_-Qux@|U2e5??>cy_(Uy)+^qS|095nO$>Bz}r7$QJ!kzf=jak|lbP zD>xrzMf2Y_*Ysb{fHOZ41g zZ+t$rL z*z|6ymA>oURF>7-@UUTj)>E1DLA{iH^^jiZR()I-0gFfz>lNf5_`t@lTdKEYv5rPt z_Vpk2;ugFRek+nyJ_PA+{}Y6o`jGC-eE)Ou7_s+dQco|Vj8#2^PF(SY*_ns*HhKep zy(yehnljSYV6Q5*Q!GItsC}e!C40GEFUoGfz6EU0OCM2^&Sw41>1L7J3SQDYWuA5v zw$b?A9GT*s{ECcEIL&87IOvrY1^F4=;wD8-1u7v)&n2a+ZG87ZCR6;cNTCA zJNT$xz-B(GmkPNX03o@<7U&_i=TZGq4`)%`N|p;(lhq+n5;k!dSY10T&PqbVRw(=1 zF#XaJ&Z?%hU=_eMnN^^*ko@#8{e0)U2a@b?6Y~z&FYD3mP5_qZ%|q7E@GLxQ)o++`pKHSK|@b0IqQ? zd-yMAeH|t`Oe1Qg^Qw<}1g`^eUWZEruPCl2uMN!oSJR9d+Df@_jnldM!)*8$dTTb} zuclbFw4(w=2;v%tvdv&6ir82#=n-5^`Z7_Izg>QnhwB19RXZT>_*n*$#@YZJ#3|Ob%mLCCyF@pNmH!D9YwZLTuoLR z*j}(|!COk8Q{wp!*5xVlc`WJq2s{@mY3eLQi{WbW6SW@eEQ|4!nRk5`feqmr$FeR@ z$9YM5%u46Qh;Sor0TSH<=$Wmp0^$pz)cn9#>2u`f72-d`?Lj zg3dC$!~*9ldy7a#g3;CxF^W{g8I_oQN+YuKlvSt^OSae#^o)L|5}Z0hFG}AaEo$Nj z{XF(I(+x9ay-XRhr2LruZG?XBpef&>$Hoc4wBx;wUUo}C?&b->s_!3Tu|Xb3qY!ys zE0Zi=x|Y&MudqnZ`iw*mcI_y=xQKUe5i3y?jrm9E*NK`ATd2oa{wO3ZsWN-UP!jQJ zBED3m7hug-^szw;{WGC{V%?K{f-pjKt^q5AU0nqhm%a$E9jwyN$r-CBqL~S7PnCX0 z`mV`{{}8lvpQ4}7`ut7LVO4&;7+u(_e)N3{-%&vI6SXJ%r(ZXeAS)QHx5*HMXqc^^ ztoLANUe}AeM#6Z(k6W`%)LH{-o1&vI)w(pArK^cySf+b=nqHh1qI5y#d{%FRxzBFT z>bE2JaddZxEqYeJ6c&Pyf5k3x=j1F(5EaWX`@8%sf1bnOL~#8w1^eNdcTCgr-8@?=O{j$ z0$h@=BGl^0cd7HO>!~9Vbn$@Ar`!xrknU4O$hH<~iW{BT7Ds`|4Da?q^H9riW2642-zXxUT1gLD=rh;}qVo!_k@P?k{mz%o z^wpB?x6o_ZR-*ItO_z!MW4M}@QOhnJXQn?a=}`-P23t&Yp1x7iBS~~)yqUg1(!&<| zcWgY-dHQ-u4<*r0$J5tJdeA~&$A(VOZ<6Jg^gt5*0MWT6RZF_xLie*l0W*D*PnI87 zv;2Ox9(2)J9hUT{h5pi83c%6#g#Q>eQ7P0g2k=U>Wdz$mb zD^uJr4W0y77Gw`kLNqQYAxYUll;dn4QMSKLvIHgNf>(H&fv?0V0ZDn2D9714qO4m& zY5bB>Fqx<6HW`*GC^6wO-@4bJB(sPR;C(?<5Soxe*1lJ0FM_M7y#VVx#ngU-q=zl^ zNo*R?MeR#^D2bjkRllcueeMWMN-I7;u9=w8N=>Omn@sh!y3W!OU+jrzJC)6vs`u&e zGAl2k@QGJ`6X>3H6>7|a6TNPX<=0?b!y98SrniHl?`H8nIclMzV?IZTv4fzBE;4Lk zHg%DLyuxhztLS1ra2N%pGUs}LDEtapz`J-{5+dF`Sa644?BP17mC#@_Xiz|%I|1e8 zsUawW%|J6~KtPA>GPzbusJ|K1FQCy~7;`_pOV1PSq^UPpr$AM>nl-tL^?psigxxaO zkfI)zpr{ojVr=Gp4W;^Uu)%xlbe4)<6~@!%b-4G1tk3KEAKLTM$_}X(9H@H@S~!Vr zIY^vZv0-oMWmBi=Zt&2jfyYvI$u!=#)Zi{d^u*C#qVF2|EOn>7&gxEki5$YXngtTQ za9AcAHl25;smbsUE=bBML$O4?o*1ZYa963@i7F>c>B5#&K zE0;q6%HfIyIFC)3ixs&DTi?QH?S^i6GxJ*zA92U$Pp~TE*s0Iyb~bRHUZ@1v0f*tv z?Lc$BHXjavD@}I}tqaW4(^TiNuWTJ`w$gI=fqr2A4QrEU6y$u|o(Hlu^k^^paK3(9 z?yKw7#IsrKtvq8uPJ;!ujlH-)zcP266*ieg7wA{u?E0Bb!-vZ^Zy{2ydQ0zO{_dS` z$lqNQoX@yW@2a3u2P{HOEo2Wa(*J5)OP7H4VRq*d&Uz*8r2U025UdMAXBm3!1=1hMDHh!8BlSscr}MO;Baj8a`jxBBEAU@%d!M zp0~m27^{4n3;8*N_5vJpC=<#m(FbG(PFDxTB6yOu373|0+y{M%OS}dSiw)#VGnDMP%ROro> zR<%k74}3jsJ?pRu>t%cDFsku7Bx1&Xi*3%`&t`4X`?JgH^}?wi=~>R-ZMkKZMK;)Q z7Hj-SZ>5IQd8Z;u6tzqZPv#|xb|Oz+!OFInlYtQ{hE;7wfnEktFbG?SU-RK?xD)Gs z9(4NS7QIlaBxC`dVApN|hc?|!r3Nj;F!#H`PE0x9=%F}xi)A@m^^CmGX%!J%h02w- z>@=IU6)KtdAtHOnRy{LshLt>9kUfVT9<>WrF|pAo$3xqLYWq9;I2}!a`nuGprxj4d~`}zNZ(Kh!CiWmN)>8S(Z425STFB2`oI5 z91}z>kdv(UPFTvZW3b$;h@K}W#;u4I)CMD*3B2mTotTdeoo3$dMo+ShVz$4Vk*>}V zPYSK(V8mbswjr5*((cZj4vita9<~?=&-~_n_;8CCRb4-VbT3Ynqec7 zFU=uR-w_X?s$8YIuK1&(kFaJFf` zS-16)XDA7z?+2*Y0kdvvB`BB#8b_c71me=w5D1nUNCKTA(Dj>5PSq0RPXax10HDzS-p@FiqyM}7QqVD|7uzpzr zvKiran%W9%3|G?_%z0L^@#$P) z#7(6F6vNfj#V%HI2%to0dze5FJ(>iXNT7sMX_TNy5=i+6Kxa9X2125c;Uwg6LRy?k zy+nnQPzMP`J)vk6wFE+=2quB9I}8x{ZBfP=2?`{E))NRbz=fJQk7gmC z2B0L@UrR7@sutKT_UPB(#cN4;5y>l%1Uf(<(!EPY=N76|MakK!;Ot_E7)`S|!Im5Y zo1^;>iTrddX#mv-7@1oB9PTABr24I(oX;dvnXO`zQ=aE zX4{;iJ&Y^aUF{6ee*pdTyrk`V3Vw+_8cNkDhxi9@LE>p;YO0-qTy*Pmho+Y>OeLQ)J$DkJV2stAgtx3_-G0_RE&e_?sWE;$S2=6% zD;6yX=-j+NX#?VCY{<|0mDuPV_*L&wqT|CAII`2XO70MBjo&NeZ`x!ym#M#C3gP%K zde2hqgXY);`)R?W!d3|S8~bfE)5SL=zOtXa`HS8kdn`C>L&7KS5s(7F|0aJE>t9&k zU%|TjDXeI$`x(0h-7>+?l0R*D{LaGvb9NXB)JPT$-P^R-9Zf3N(Ws4ii!seM;a9x? zo6>zT_WmjTnt#7FvIG0M3Wo96Y2B@k*~bE>_2C(dzOuo(Bf4-a?lXGtj2Cv(qo92B z*ctsQyyLX?j6P2JVanCU!x>BV6FuhUNv7;Hu2SA*Z4~42jOhnBFF~MP#s&+V(bL&N z)o8)KRE$;`uk9g3*v;0b8!cH&)wo4D!yZwM`!c?pWv5If<+y4*2H!Fy1(d&W2}4qx zXo~Tdj290Qn}7rlvl};NEaZ>;^3g%N@n0oTY<4UR*)Jb+f?3psgC*JMR0F3le~yD*jC<3!aF$UPPB&Vyi_?s&((69s1r$$avOdK3Y>jdl{8AhGbST{4% zxKz2~FeJsxHaMKK6fet=bhJ;tG1KE2gm16RnLr*_T;>Vb-TLxLjRe4lH6A8JYc(nC`C$6iIvD>mxxF|@EdayDQtl}%MKv@)QFipWTo*)BE;4gBl}?yJqsNY zrVM3=_)-RS!FS|VwzhN8&GOd3_fpfDURsngKU<| z7$k=W5*4tbSZ5a$O2Mhzs!t&Fets)REFlWbSo*-GB7u$JYF6SQmaTyy!lOb5oCHpe z<*!!Mu!l6GR{>6mg@Y^_QIdv@dF5%9DV4ZC&Q@uLJ7eQg1vk+m;a9)Yj0=R=jo|LV zT74v*3l4r~m2P7oyz2zFQIxSktfc;I^Jg6r}xR?D^H`-(z zdgC1oI=y4n#Vrgv+j}$V*LZ!&a+ZIB`%kkAr`1qOvA>?Gb zLdXEF$wCH1+OPpIttqR4ua#plazV#7l_SQ#)zx7eUNBVO1Qewl+ zu;JEXLcC3U;<}!&u=Y?hY)JB@2vYE^mDpf2Y!Fx(9%r(Z?V*#zl3F#TqR9zss;M1h zn-dXd6TS07L3+|VFT)6w2w)FOP&5e?B~Uzo70Z$l3qrn~LT}l$W`nk2@b^(~gFIVi z+_PnhDeoX#(-Cb+xQ$RNONT(t0ZpxIC!;9c^eUX+uut?Ze6JdYhtoloi38Tekj;^u z5zj2cGArIB-x`Wp-x}hs2K)LRg}kAI;D64ydTxmrtskZYsI6$T1W}P7E|8f2YLxg$ zGkiqgxk9*v>2V3uEfUrf15{q98H3PoOIRy&3^q#;{7nhzoO?djXoe4*B_Z3>6#?jv z=bGJb%<|@zcq=Q$-`uKTUtAvVIW3sE%zq9{<&JLgL9~Tf&o>@KT8PR0cPh>0&#)E4 z2AvBAZM`OgkcBvl2LK^3p!HK)E)#us(1O{;Jl(+HtIJFV{LFT_hkvw)AY>8F?`z1_ znib8~Z{~<6*uwO5cSC1?JTI=1eACI`^IUvuL@Zwnakl{@nnu)$5u4Dbo^K2i5ly5S zF_Ld-1~bn$xr8miRq{=~NSsZm88u{O^XLU8o1g{wKA)Zrvfu@#G=XN+fR#<33r#ip zExMno%Q8q1^*<4q*%C zO|kmRoIOkqp=Q*ORgfh;40Bd4XhHtK`2=NNpJWq=cSnI{pn#R#=DGhjb7W$ALB_9^ zjJ{@Dd%}hjv2-jip_vwS|?w|D%7RWX_&~}GH z{`PME_j{61&+cVM9{`Ha7f!y!D0cI19`DqvzMsCsrrWSZ?oXy(j5003?ufP=RZp~S zClRuQtSBC5h4RF-Puok3qB4%ICCrR7^k#Ul89bQBW?cZka_my0s4cJj8p3c90?p8Y zJTU>49!FObhKu5FhQ^4Iulqc8sZp$R-c7l2QDXE{ww+Jd#h0Rhcl0sUaF~e8*F)lH z5^OQSwh@f8YmCDpNia_zz{bI!3w1RRQ7F{{dylItoSSgWqWtx7bf_6Rlq*U^p1M>h zmoR&~LAA}mK@RT0rh1K{QlVNC9B2j(_DeY!_I3!V zo9N|aj>b;IxMD>aW7v>|zGLcnMkdSmA%sdrKY_TSj}LK$SOCY~E*@t6^)kL2V@ZM% z=I=vS@V*6U+5jNaguoUH){5BWLIVb(&EiW~*bT?4{_b8z5k@8KOo9~Pq#gwb3(SV6 z#v7i>)^S zpD@zU9BQk6pnSlt0U%vaLTpe!V~{e5t-&*i4$2&U>4zLPvabCwm=frKLo}RW{lO=| zW`Ux7!`AkL<$clLC@z~#dor77Og7r@_d9W{0sWQ+FIdEw=SpNamc7_N&NiAYiuBQy z$Z#7wm7qkjg{4*w;DQgol4m&nN@TcXfKgmNiT1$On;ClG8=7Sp;>>$6&s9cI$u<(O zmN4)m7*w4lTrisqvIh$g_5;H50Vc2*aGiw>NTE}%Hi}EQ9MzJqzZuq#Vq9%p3uVr~ zDqiYXmZ;)mS94|RSH~&QETNCPu7N&gvx%TU&5N%_sdwU0*;syHLlz`@R;W2lzmwD) zX3l|7^EUR>HF36~Ea4?r4@8@wHV0EUo*)Nhu4~Rgu9Mi^19`5a1{$Sq$@;_CpitbR&RAPKaPK(zX4zQtQjFgpfhNig?d zs0~B+G%cseL2`DDL8ur9-m!b!VVT17tsdNtSL=K z4nE3eJCTo*0mVrtDu0VH%>MFUM#mxqXj#r(I17ko6(afO2_q4<0@Q&AKEY%GKKDF# zy6W9$m#+?+Uwc-4Q}=_6uRRm_ggBN9)7tXQVtkNC^28ZTNVCF}CM=~o}5z0tYwSM&R>4?3P=Nj^h1`5c&w((q2nfdUXm{(_kiw z;FXT~z@DjF;Wv)6pOGiNk)hpY&>r^Tw;7&{PkGcHO=BhR>NKf!m>%vClUivMO;)hJ zxAVkz-HycXG5_s6@u#@UsOPhueu=x_4vxF#4&cVKp?7fHM%-n*B3>9uC4N2Fo+*3- z%*A&CcZA(>r*R|lU52}iXF1N#aTTn^U2rbgD03HZFR^Rx;gtoz;2;(@!7QIIteLFf(dnG=C;@ei^`|A6#+Sl|yl{UO|Cj2AC?t3pz~u|LS} zxCgjb*rVhQIN4l?6l>l(^Rl~|H%1`N>Cz_ zvICShJfQ0@luDDQvKNW)GFFac2baKFD*t3|J?|-y-7H8p>`%rGVmRDEP(2Ci8nzEq zgV!C+o}%h3!=E+WHux~Bf{l5=XkXr#f<>GPwK0Xe3pxbH?(2LbPDH}$&lumC=U+mH zr?MRn826-qHWiZrSf9H1LBj=&-t?fc10T}u^pJ5*_K`Gx=8`S@hgaA=4;cgV-wvY> zkEU_I0{4QZ`rboEKj)I=DRL^jG2MfY{juVQ;m%eu@59EG+K1?l zx6dzk(x)`RA-b;FDvIpG8$u!U7UiYP%)9H9hd z1v`*P;s_=PD_P~RI4?&aLDoVN$%}Yy>MCc2`Xw9mxX~)-h0T1!hb<2WbpFJK zKaPb{0lH@{qMyU~q)!_4!}xrnnuGKH#D8@ErHT&;r96~tPqis3I#&hXu%!g}KxpDO zj%tlR$0?wycgwi6zBsZ_@kR;EuKlxdPoIS;f&5c09Mu7w}p>^OvEc#cYq(u$-ZQq&-9wP0d>ZoTe zpD^x+!iJ7FIyfwKyNWG-!tmrwxR9^$@*0@T_B?@wuUA>wlg9a1tV%C!H5{Lk6yZY& zF%D0{=)!5Sx5=l`&gfJ-Yg4mWTXw?QaPC`LWu{Uj%?!iAPo6Y}!?E{!${3&X{*Nm6 zE%bTvHSF`Jj2nwzsS_@y5RYD#zscSF%C39bD2G#e;%Q?dnp);F#&sA--1ZC_-mC1% zXN>dIWxLtJXABLu4bK=;FY+tUQFD0%e%d>!_MYnV@+p1>U}j`rVhu+yFWv%dpPyA^y?%UX9<$orTBQ_&{>J` zby7*@iMz?fGHo|As6<=B`+mnp8bjIbqm07N=P3ARPifh*wX=mgzfD#~cFXd#;<7S) znX0@jGq1^gGqv+mWalE9@jyMuWBvKnV488eq{rRxcTOpUMdOiJm z*`n~T9bw7%Gw8Y;IxP`>84Z$qIyxg+;;s|!s5R$w1QRs*FI7iJ9Kd6^v{^e9ZZ;mY zkBK|w?jO`kmTxq>u?hoB?kLLGrYa*lgSIx!u zmZs5(ilubq0vt_(b6OJTG;rSTkGmioMBIHG7Bq*9HZqDonIY_=HPT1qZ#q>t%tnun zr${9+hOp~K8->MnmIQBG63n(H=t>FhjXSv^r3IvodrON4^>~mVv{6)zVfEm$*EwJ%taKsAAA@Gduq|qn*;9-TIu-M(vi(X1r$f zO1D=!uXo^P>8qF?iackW!#z(Xc^<4elIO`F&yz)-hk6V=py#aZ^G3k}G7{I}^U+qOpd<6+=G+o3~x9JzSx7gVtJk{XDk#f!#IM zD7M!qjxsi4tns8iM|G5*Akds68$eHxv1aaNS=rJprbw?)pvB9@m%6=_IRTk*-0Dr>3DR0huN>=jiOG+5>;4A zR_sCiQa6)M@C_&qgJdBq#>LJ&6OGmueg0cnuD7&D-NFSEL>+kff>X&J6-)E@A1Sua z+1B|hsto3tD3#e&a$DEdsZ*T$T$81CQSo=yaf&aI0u1DcK? z|olOMHXY;v3T zgtz?neyYn^&hp`@7)gCQQ#foKDee25g{B%MS&fPeyj!q6Q;pjO`VfHjbQD;Ol5*xo zDV*eQ6ztziV)g^3$2eQJ!N0cW|))+C1Mo&V>pAVjVSCi~r^E>U zj0`i+oEBjwcYY2hRZ37ZQaW@k48r)gXUlr?-{4~#>`@4reWS| znHcV|MbnJV#Xkg7cl~K``EYB4E?rxIW!dAP&%K^z&uD_IVPS*K2r*c;5Oa2o=ux>=;>i8 zW_Y^MTid%ti0MJ&*}Noyw)-MyfQT30_Ha<|K5mr?GCWjW; zELW**n4h7bxDAGUVw_KsLe7SyLW?;Zn#ytH#kCEOEsnJJUy6!WZMI6(^r>uhv+Bqd zpa)PV97QHzq5^SL4x!M01<@(c>XhkbJiL=|(AO~{evTDk);Tr*H@*Q; zejj$*M59s$cxlvV5i6eOHa!LddT8#WumiZ4GhUoOC0+ef0xsG7F0iL+6!L2JDpqXh47F^@;aV0ud; z!6KIP1`^DX2`+rY=$-fcvsP32fmIQrRwCvB@f%(_U3z6!ILG)KM&Pihr*SdfG`iv? zimTr=&ezWD5W{7%#&32c24;5O0ruLP$RdP~b+pDz(0gwh_qc=^7}5;L1WYqvedZd| zFlDlLE=KoJc5<%K9bfwHJkRLV#pSkIZw-m5h(xhVWA2Ic`VZXcg5U0pzot;O)FMiuA% zRI8q_l?eu_3-w{X?-(kVz8#rSgpS-rOTE#n- zxgK_MzHxsmJmr48nqNKX*aKU`9$#SKYddN-yR{Y}^Qr~dE<1;%yv1u{)LVuZwGn>H z=-xG8%^)QMnk!A)}+``{g8tUrGKP!dYUZKnylM zWc0}Xbq8rXOuA!{kWu_!yZ5%hgOJp+Cm&K`1sSh9JspUuhTW7TN)Hs8OZ60CSrx24XZUsx zuXOqr7sNS?o>YhvRY4!aIY(7t7^D&h)-B?g2w{%yA>NTVrYk0aD%6HJD2%UIsJ<_` z1nAvFZs7DKQ1x+Ch*<6ajBCgO>HrPJF+swt6&kW&_976#U_#0rAW&!*SCIfI9jj8B z6wI%i5I;dad!Kr7zl8W=3g)&jzkvQP#*(T6GsIIHH`}uuz(r?s*Z#F1p1i^ z<+p(L0@M^&eT?+#=bU0(ujB?%zHT^5)N306kD20oc}be@M|c%Hj(+Jec19Gk&q4j20q#3+i1f#n~(xug+cdf^Hudw zKbF`3hrRcXucGMU#_#UEH}|G*NPv)pyR#d5k%07?EK=+N6>N`y<*_UH*bOA0B1Irb znNZXqDxrs>mrekI&;!y`gdm_u(Et`ih4*`Ac5iZn&-=c=Ki*&Ye17^Ndw0&XojG&n zv^fJ7Sfu~LpAQC-Z#YS>_@HtEUlxT=%EA`t1ga{GlvQCpm&fu8pVUjvibqxixC5|A z5kR~b#A8!}yCBly2~teAMp4zBlyeD4#W%n`7~eov7+!qJTPOZ9-T}FskYh%}ih}*l zo16=`WlGGikz>Z-o*8-r20-I*nsS4$Xw(tD9>`IifOUvx8J@9t7UAiql6Xc&WD@aG zGqYUUIk%}|l>&k;lqL|SxtMCuL>`D@z#?>p~s$t_?Qgk~J2G8^R(o zwNcV~FKaV2J47JGr=UazbTuBWq7Zcb(Kln{@HozM$*Efv>w;TADpbC+Vo zL6*RqkHwL@2~G@wGmqmRt_-9km)OGu&V)r&4iiHDt_&ol{#Xy521=IO`eq`nBHHJ$ z#7IUcnYt>Fmg|(RHps%STMTj*f`rOhf#!(t4l{#7FuqnPV!*VANfHqJbX&q#XRz?a zSt(t0Kv}U*lg)$LPM{KMc5Hj}1z$?@>rZf_>L*Z``aCd8wUzz-Xq+UTvff4++tMhV%g!v%Iq<7OZTSCuyQ1F_u_5W1X|{f{DKf2Xx`Cvp2h>j zu^yHtggm#ke1xz+kzdr+xN!565;8YSp*RNnr1mrJfU}=oZA=18my05qpLS4cfL131 znS^h@LY9R{0%%ns7%7F%>}J+&0&J;($*}-SABSXdH-fxSq=MSzA+~Qud53Z{l0*!gQ zl0Y0UUms|yEaEXGfk%~Pd9Xb=!YJ9easD9W4b8eXTg@tvx2f4ECFjj$ zm5i&$i@$&$$prr9=0JC)Ki|4J&{!+j_Xy1xmRANSNdCU5TX3-Z=y+U2X_b3<#@Uw5 zU}=V}sElr8dgpV#Y)fFR`cVOYVQb*s=>E`-j3CWaf0K_XMI6WGrMLm)=y-l>X>%T$o5MN&vo57U=Gz ziU|}&c9#V#C$%y!+Z(taQ~$=^z`vt6f{cz5GklSs+Z%XMnZpO|3uNUIS~abLRS}lx zJUk+3afr^lfftTPM1*x_9|%XG$C^Fboi$l{RN~@Q2qZ+wY;bWkFbP6cz$KO7T=-kS z!Ws^T9x|-n?O#Z*w*4XL7hCIC1Y)isx4=PJDY6a9%YqaqLyV6>7C< z1g~BNT&~s)hm-gRxJ6izZq4DV_Xl1~2f1*t9QS!*t>8VHHCl0#OZ->9Uc1Qq9tgZz zg8*Vv(99H;D3-&K1A!OqbZjGA+VFXK8DS^wX8;P`PL(V+oWVeC`m| zEQtB4!-393TrM9D^rL6?SAoCOqJ8|1uLE`H{mHKbCur?_6SyPy$9Y(VWpV`0HM578 zgjYENU*rQ^BEjb!FiEWvymk()VF~`p0YmL&gTI*%aG?bM?0^eH;8lwwa!D5?hPT3j z=ZE0S$6*7?li=SSFiEJg@sGv>T%m~4mmP2g*fa_LiooR({D%WB4}q@@2e>R(!ml{+ zvJhM>;p}jvb$ALJr3Z#XNg;!#9lUV%pz80=`X5ZCZ>l5@4wDyQiH$d3_Dt-&gz_Y` z$qy4f%Tp>F4?g&9;2AeOL5F?^71`Nx7*%oG&+$MG9_Nk+@+D*p9{v-7U3eTk5%^5q zrtp#HDzM6iU_kn(qUzRLQIJ zgg3j?=I@T|;^&J`L($t}Wc%c)rvj+?wyu%9^oKwan*H{Nux5?$LOFu!VtqN|2+n8J zF3g$BS__@Vkwk&3iWn0cqJ=>O=>mzdfh-(oQ!X2r5e^iTD>qa$GaPD@F1u)UIM7BB z?ZwKL2Zrac(ZuQ3;Bcse1&Wm`z83Rb^>c+7LTF&O4lD@+J6K|a3#)-i6;P#gaW!yp zRd5^@eibEb{40TO9ldg4hjEt(J0ZEt^K;a!t#WfxCEg+O1;hy44GQk^%Zq`w zzWnMV=XXYqAAh}#uB_)TUkbeXf8)sUc9(It#Q&l3vaV;v|Mvzf82KmMmfZOZ)A@z< zUF-4J|AM}}fWQA&ptG`{fBhHyJa_S|zY#6teZB+_DWzy)6Od9$##K!A8b0)DU^Z~X zxCRaU-eCSU#8LA63|!@dAM03)|Gc)d&kOF}n#UU{`e(RH<*1^!SNlivaSvi25#+IoA0EgFDa=R_qg?&AjJ5%@?6IhKRg_%rmy(3ZoP+~TK|M38P?%R zDvV)*Y^fw@(?V1wv1gV2C+&qzoK%+3Rs|Expl78ML?wH{pSr|;vQ4p0QG5VYA~6lh z(s2;}UA(17zb!F;rdXz#400n_gCa#k;4hD!jKc+UJ^Di!Lcdpk7DMnRH7FZuO*9nKpZO9rkg2bcb>Uk~x_f=d^v(UCfH@(M1UWC-3VQm-Re zBykD1X2z2A3`yeOk@_okx;R!8$)ZI1&z0%W>}a^V9h?hgb4^Nh87Bg%Z89@Ozy?JJ|b_djBm`!HMsu*wiUH23| zS<`#wo^B;(dG1s->urRZfK(GnVb26nh_v?XN6#_K1Rm*tomq~wKDh=$fLSK+Xb0@f za-=otD!_RXJjMY#lN>3gqSs(i_+1C;Omd|48`V8fK*u>yXObhW<#`zIYylllP+pjz z*UY4TOmH&Wvl=Od;4ncm(*8Wb!B!D8`L79jPadD9*HMo1dur%^Vvp~Ws5c>DWoV+_ zS%rROb)x^GK^^2?+HD>;<8G=ko{_53MO5XXt}?<68Q? z%5FZQmVS@&6CYSx?-YrA(EyDOLIk zzgw-?!(U3)pZC(_A^?Eb*8)Ajyk$bOc1`pEN2!didTqqo(i=m^@KhbWy-(z}GC0du zOs>CqV^lOWaZpUN52IJc$=o^bwO)yPSNWrTlsS-`c2f@@)Z4P8UiC#M{vH+ z`M*;2rOHiQO9Np)9&DVZk5WAI6d?70T6!(Mqplu<&pupNeD)0id{_a;qZ40sd zsdFv)&AL?rfqrbEW|lK7)x}VQdrqPWQYDm1{R5YfMvJ^u29U+2D&!^+<&( z%x$LcpoVU1E*l!tTsCyRxt>kw-ENTSLvN7j+ z1#_L>TCb<(o#CIi25OPTV83S3lYC>TbVn*t;~I?t$s6Z zyXw+T9|S(;!*=?;ROcV^!mcrndVh7Kc&2GW&hYJzaVbg7cD%VVMB zEgkd+lpXxj4tgIN(LXxqt)0$5^_PLO5Ez;+9reD{%*2kenLQo#Ld@OZPI^rzv*>vo zWuDRrgFkl~|Dlt9s{=&`Yz>~(SynZ*Gw_NQQ>2ye=Bz8Qw`Lc_wM8G=bly} zS9R4}^I#V}o!UOqMYf&NRes{ouKGvHSDbaz?<4RV-6VKrHwjM5)Pt0MAXA@0&u6ma z({0J;bo<$|yZ)3~ypg}(U2ls|+TUHT4>ED3J0|~E{=iMB?CMv1-A#H&%;X<8VbyNt zfgXBaI57|Dp}$Bq|IkCf3&2i20Yos?p8Cl8a#tX#pAF+(Y=AWqI}8{W+F@V?6FW?F zFZ~rkH6n4IXz!U;&1*ywmC45$A3^9aG74YvYO7lOXfJ&QLXh&_dT+766h;d|ZP?pO zVRYE`k}sjA4b2Zh#qN?Pq4jNOUI;2Smx?G+a|0V%5#`iO+k82I-LWGyvZ3W6sMuS| zWZA|xv@8S_drOIgHUX5+x>>K)koK0QcHZJp-h5(3a15Kcf+A7{@T16_ORs-Q%>YKr zKC~SvwYB*&x2>(ksD;44ZJ`aoCn~#~YPVHxpMQ_EF8+ia5hudKDtAtV+m+*dDZsgo zE*MlWRJ+*h{&5@JPHazEgsAvPz;3rJ!Wm1c8I|BruS-H;F$BdDJVvrNxo9^8|AqLm zLJ1!$;TV$;_{}BQb@C;6yaUb;fj1NboF~Eg4md9a-nj^1TmL=D0axVOhp!^7wF?0+ zm-_L^4%|5w7HNGp6Y;|V`1QLRs&oj!Q25m$HMFp&kIw&M+!HtToS2l#-j>* zLA;gC6xxL=!ZgB>!Zk>i{Ree)q*Y=ojGf7@R+>CcMCn|~^MLh&YR}Q^p=%+&PT&Fy zhuXZX-R+EUpv?u_z|3%9IH#3u&Cadbs>6HRWe0|rtz_v$p9Y6RZFVpkJQ0-Th*dzp zh-EEN#ll}EEot#qiLH%|7c6To>4Is&E_dLLE;wHDtc4OBbijq7;)1L|6-=d9IABK= z94~lQ2y6sho6D%P`pI4!xfuj79K7gE{abUwWtBAI74nY`y!vWk<2@T-I0Uid@qX0y!eAg8jg1 zO#pPU*drXQjIa)p98=;JKxPANtaJ3o{F7|`PufX7>Z1=Ob-vM8uTSs2`-0iPb8%m} zx1H~cz5gKBzKha%zq|Cd1RH;s{!$w4^wF&LuwiBlcK8SuC3pC8IGT;;`rZ0-Nmt#{ zdR$1xJ@7oEU_<1y?$*+Z%q5{(Mbpq{c8aUbF!F zD5e~>d;95AlL?f-YUB(vYdBEMIH1e=>1Eg(-|DZAQVXW=xO?>t7|pVKbv^g`6%*m8 zM{F&8*ouj86f6G=tCOe}E2eV6;5eg8E@N8(UqEddoiSq&7T$fV+r+fddID@BOIW9KvJQn!MlmSkI0R!IaQN11V4$1D^f@f|8c*3HtQIyc5EBq)?_)C82QN71q*ZD8lN>gTynV@EM z6NEu^@E;6%DF~M)U?q-XQEYTowa=uM3l=`6FIJTDVD{sB65SM>`m}EH&cmPyeg6rJ z;&~qZr2ZBj`A_OOIIkZ26dvdKn5T3y9wGAzH)4kH`zCkNdG3(*e*X8+vhX?m9XG;+ z@Zry)(BR3P{GrM;KJ4v|c9HUqofCN3vwEy(;D!RH6KGT8anm{>DD7>T(Y*XQy)p0h zbT^q7EjKHu(mRbW4$rx$pc8du7iD5EwAXmxP={E4OLo`fD%A~qt%Kb(b#qTar|Y_T zeu(}!su?r`)jab~M?W9-g81yKFX-?8f7*n_Y#Y))o3E-Gxc*;j!jg*CFaueMO|k5c z!>%6&c6NOm41yL0b_kjcuBZmC2(LV^i5gzq;aKeA*!)7Z^9?WQtAIxr;xi5Y{>x%9 zc5Q^;yAm_~{MJ_>Jf7ztz9QD6$W!u)UY9@js(u^NSHG&y#$&*1`VKsrz7B)NHjql_ zkPsaxF|#pm^agP9JTH1f{}2zoCF-r)6!muL&^eY5%K;%f&%bUFmKqo;QWsG1+w=5T zzHX@g6tXoQrWfJSl5+2=lc`CdmMehAk}_NJe|1HrE0G{A!rtW=&=D^sVuFaH0F zf~?qi)lerd9Cfe{hfo7MUzV@_c;aAA09Y_wse?Tr@oz^45F(4r_;RdtvGPjkL@ zg#MJ^Tl`kWq>K+*@&Rw^|L(P#WIm~^-;*LXI=|qX{nq9kfH1*X?6)D#7U-AUlvc^K z@R+x-Mket0--4NI5C7{eJr()|;UA;bZiqu%?A-thgN>Oi(do(XPn^hd|)>xBGr*#pxIsr#g6C(k30!{)?c z$+LakY;d@+?+Xe0Hn==Yn)f{`js=l8Z^O&N;Z~U~?b~1oZN&428h3OBHn_MN*wz(< zIQf$C`cP*^VWLFj3=*zxpP=6?%$f>0plW8E?KoL9L6@FlvE*Z>nF={x!VG#tzMUS) z5FC*_#iR$>^2&7RR>@OLdXROT7|IX#WX&{LEm2QNWxDW0tH)}K^q%j9@&lhWvw`$n z3+{Xm%4=FUcT9$27|&Ugb>V9E;S^oCnys3mp94b9nW|@z1>?+A{ZYK$iRikyLWnA? zHavx)!9D*eR(-w%7m#}>VTI$^2jAxL0Ov{YGzSb_g^jAht*t^zXww~Vg)PAOEV#9S z43a1$>?Z zcla86xrOP9Kp<@C)P@eOq_#9Cw(RO)wBxQ-{oPs0dA1N}Nw-+6R(tP)<$OO4OqdMm zvz)EXZX6q9NI(siP1AR{)ryb#`|m@jIK|hzua8UF?ly5g==5ksTdI&YgKWEWV&?RB zd`V9PQ9Z?nJRj8{_~8focZyoLAUNpNhD)()ES9Pw_1DF+Z>96I+vaTck%) zwp$iKrG;!u7J-Ld$oDML8^`_Zb46WU}c}cO}UHvVdPmHgh3fqmbM1M#vSj2}f z(Qm1FFbeaF=yY_x5#2xFMvK#V`4asL_vudpJUXdSOxcXZnr*lq;j! z0E;`$T=4J52_g)!iGwQ4*C!R~S@@d48|WL}>vO#~x|jdC{y2T@@!It>@Y*D(x1+DT zHMxG1CLUmlHW}wMQOFJa!)PIp8J+r}Df7@bd+`Tf&zIa6o61)w*S}%v3jGOp-s}L+ zx<9rFpRz*le;*ZdI&eb59Q z1%g@6Qby)jm#6X_YxFk%y=#&GwQEFX{(IMCxqs|hR9M$UHMQx}L!HBUU%PX`scZEZ zxBK+)K=6|iy^jJ@=k|?|MKd?)U23_kI;~dH}frcsGAl3*Jk~Gybjx}KN7!Lfy=xL93#AJ zsJe>H`oAUYe!gT2G+Uebpso54QL~Fb_l1rNE4Jz{cu>yAFHF}{d0wghbnH$=h#=?~ zj!^NT-!yK>$F@;ez&(^sA0iG2){ti?bLZe-9q2rkSP>#;PD)sk7*7r7h$S}NpMsdb z4~=cx3hO6&j$4fw=7v;bv7shnbYb}O<#bvf;z=hLBNtlNls8!T~Zy2iD}hgUVi+s=CwUAB4~W)h{QU%$wb$E*=9730MkE2KL)yh z%0{8eROb6D%7wKIP9A3-kuxIOjH2Lm_@`Q+O1{j%O>oJ+8LsHn~}nujZeh zf$7vl_VG5v7Jx_{rY#8GxkJBQRey-W4U@If)VH+Ynq7JWRrw)!Vh@}F_>O&gpW6K} zl)rqfXcr<37ah9=jlg^Erp1)E#g%)5~8uq-XF+ zhxNq&S!xShsrMs4bKss4g!jsA!qG!4;=K!4JX5ILj7x_ssl{hS~?KAwLDBrWp@NZPS) z^>k!#9~C5R03ISsgv@gIsNU6nZ~3j>mp^+$oK&nBD9D#>Z z>HHlwdbFH;9Gbq(e9dvVe2J_9e(AXWEq?F)PCtc5>KW())*ORc;rkQ%znnY|pVV`r zKn>&V4;X$%Z$v%q3Zi`HDTgS#s(iuX?{!U zJP+>xC;TYE=*5E)j03CyqrHENFIITh(-5p z;eJHC@QAGmK;onjz{Um2PY!$7-LP5Fm*_w1&m@ZSRJID>gP-+J@#Q@#^m>?{D)sxR zDEyL9IIlu~DQUBU>QPo!N$E-toM+H)=lw3|FEsxv9%s_g9qq4pkTb7=fH(#YQ1*!R z#$dOJi^chHgfPa;$7`cB{_6$(CbSCNXvLqo2xFF<_2B-C`YIn$nEWgHj#yBb2mNf4 zQsYg{NI=7$9I%E87{WI-u0*kPb&SRvM6vs{Dzt4Rkz_t0iZxAJcEp3Iu*A1po>9$R z;?-cP70AKu3t)<;lh72+vJ~-_&R2dF6U`^IXSF%*eYq#j-W_5i!0TY$JP^a0)qe-k zo5VJPzZ3$(*+ODHB9mKNrNm$xj9~%3J%+{CK0gwlOvJQYNg-P9f`_detyjdb=}Arl zYGv67Dw`H5Nq1dqPHS5BM>1?P-@MX6H17-h$wzx@@*`%lviN$TF<6Z>m{; zdBu+4b<|g0O8}Vw7DU)UCiM_DP^&D-%XRh}+CRkD9oh-1)+K=3s3dP=u%U7N46wTf zh6#MioO!&&V7)6t13`szlX7qH9+RagwevL!4Z$KByEDOOL6#e;P1cN9ZZu(E^84zs z=E@TOPCd4?<|I0LON=yS#WW+ZnD!pOqdx1@U2GtWf!mU&vq$ zYE-XviR^Oaz~#1NJ$-hiyu2Mt;^i&bsq4!9IIr5LYWAn{7jI;LAY#*Vtyy}k6R9aC zwhls74Eoidj0mj}*vDgt9YPdvDa}McmIT37w1a$qYesTVQX4klx;8(Y&);stZmk@G zD5p)mE!Ny0d{A5V5K0kRR8Gp}xqNTis-^r?DxKflju~lo4=7eswc#E&pO0);wU`)G z;1p-=S-t3UJ_PQugFM~Yo_*?_cQ!(s%CEF%ZQU!+NAL?BSq6`5$Kon`Yq$GB2i66( z9O=MXU-yN7&a3u?Uh#zp&Myaw0(E3{{b%GuhmUuxihQyxni|##qq8Jf(uv)o)a!>E zWu|mSC=(aSg)|pl?OtaZMj>peS34WLp$qGzG^~=!Ib3o=>ns%;`L`hRKDlf|wom3SD{o%K*A2D7`fR}?%;Z(`|+vW}nY!Sa+N!DoA- zgUZI>++HjqQu!%ZoXu``t7U%&uieF7a>GdQQh#=%Izi*doB2(?vp?&leY6)msU#u` zD1tgqzn29OdF`8fSxyAVK`j=|i?{Yk<}cmHreS7qg^y7aOB=3&YL0bi9%uJgMTZ!k z{V!nAl?RxCAzpPq8v*a;E)TF9uPeH09v|^Q)uPd1MbjQ+3mQo5lg%NXA~@d>XAm`k z3t$#l>8UJ5t|Fh;Dgwp-g=nLQnm*hJi>aZK$hnoV{vND@fx;o%LSr{ zlh}|JvOLy?vwY&?Y?N{!nDPXxP?DfUjIs)(7LmO3qpZW<@xW88Hnzfq)v@XP-KSY1 zf95H+_n))&c{(iX3>2Fcla-AatwNweTzr8=h)Ys z_S12c!@x#=R-Q*2Q^SPf9X2Ja=+tP10#guiv6QR2+m(WYCst;Ti4Y4i10RymBt7`b z^UNf@CcW^rgV|~vet2yNtE>G@t;^l)3bh{mbO?J(xv`(=x0Y_AXh1kp7KsJq7Yhh8 zN$MTf7mTGUIPy% z79kBbMtScc9`zy{j8kK8yvUwXz6^f>(=u|8QP_DuqAAz<)_mzm$I%m`Mz!DhxK&D0EvPLGK0F5-bOD%wn5IEK*))XihC zE6xaB8pA%1Qa%XIo5G%mRF(%5KV+{exPau{LN?L8EGmT`A7Li(*0WeGb@vs1+blLP zW%6*3cG4|0N?_?0M3^c?BvP%_fAB4{SnK%p0uCyH13)fqC6D|F>wXD8ems%|8_i}v zDtI}2BJy-pyc}JZ_FK^NDT^Sij4ooQJnGS%{Ne(3jGkXEWc}2O-|(i3SXvf21swn{ z;Aqw{JR(St425F{3G$GLDx5NGXod)QBcOcLB6c{EEW&GRSi$A|$;GUTTCtZGEe7$K z#CI-cx2cz+c>MGpDZ$potlX_0!4=ET-(8b8UCxq~Yy76=AWMsR-g1_Nt6)fICB>T; zJjAT!tPQRLJG7kX5fi{HBk8Z@Y*g+NR);C|Tol*`YzOgk6s8Dzibi;|ioX6Hj!X0l zF04WDFwh!lyTO~&94{swy=QcT|E-MC&#H>BDjO~p;i!g>QABvET#8R6UTs0tDgnq^ zqG%K1OocXS>z6;=m`_)99p-{?N+mTZ8kSN{%1+oU(w~pEC=nkKJrlP?3`<8pg-i=p z3g6*}My*(rOe+)@6y}MKJJQ;R!+&Pm3OK_*RmQ0|h6ErG=g(_2Ypx(EW1$TX4Ob44h>F!{yVCm(lKrVEo_lx-sH zyE2p?44;M@7UYS@!z)2FWf%z9R%lIakiiiAA*TbsCBi`DN$^Go>=S;xA+3AW!rz&fjTB7zxCd7Kzqt_gPR?2nQd|MOIuo|=+_npYWqF=Enz8>=LUBX zkRM;ok{+OM*zM%CIdOap*~R2Z!95PpHeUOsRZKb`l-WR9PpcJ0v1c2)J*#v(&tAil zqPCAlbYT3^7VziRux9tt&zUOJf=mU9OVA9wBOu+?WFV2qiwsVXHMjO#tfYz|2sD2c zR1MY;*u0J|Nd2G>7uT?#>1@z<>)0OkEiYfTo*h%J1}BxU2NWE#{doiX6|%&sjqK%C z^MtY+GJy2yWnf~Cp8-MENR(V?xko}6D}AJ$JK0)1Le0A3vwr8}HnCN?1zyP{c_mGe zVX`V@;4!abh4;#9?<7fSh=C>nDZ`O*_-2f3wy5{2yu-!oSm=cj@MP71OkQizZm2c~ zi|h-0@@$INF(RT`0Ujv89}0fvhcDPI+WtL)%b~uH7T0EFZDtSSfbqwhfxXlCkDJ*% zJSJ~p?eW;Pg)JQTA(0r_W3zgX1x$Xb1G90;{!&R=ZJ1F0*#J#YRRZv@x3cz0{R{=X zlxo4lMk+1+u#gQY1LM)9l*Q;R*4N4Vc_QQ&f8de$|xm8aQ6SL>HKXh#vHpI1&N;ix7IzC ztw+$kMcQjTYCC&Dh5Ny^OPN|s~7%{+BE*J9jqN7$M&+?(I6Kz zAE*6RIS=k&T^jwk1Bd`BAuvo{6QzdCyU;}w1BktIEl=CYn4fZ8^;-w|O*>g@Wo_`a zo#2?15BS7gtgBkQh40<;Lm>>Xn*BEW19aiV_CKOq4I-A1g{kX z8HBp#h6?!Zy{toRFn-WJAau0SMs*>G78dTlN3{L?5-iJ0}#byZLItOU4e$^^j11cl$Xxb=E`l{piqgwk8kQqaiEOmf3(S>L8EWt3+ z-A`V`Gr*FX{U!TXtQ2%fvEf0?q}cteS>0a=m*x0kgB8oj8(K!Z&n0hqh8LSUhR_x$ zscaB#SeO=Zctw?$MagcC7i4AbewLMVVh@M}ZWgfie2KnfXQ|fPpYyBxS@T*4=en)w z%g|bL*C-_w9|73L{XFXctE-Nk#0S#z-QRgGo;Pj;%c~Fu3;>#V!6Hhz+q(Lh3N02a zD+q^{<-Q#~L{v1Q#Cd!9o&(INdtf07%I^XvQT@AO53;5=IbQ@VAyqMq!K+MGQP)ci zfN>s0rZ({^kAuUJZSRb0LBRXDEhanR8w z->OvwSIZpW{}Eh0_%&+)ijlw5OZ(8kZ`f_M#2i4`>5+q5MSDx!gQcUHNIerA{&wKf^yS=qr=Isq(QYrOad_@VV%Dq-I8~|Ps`k-Qph6;4L z=UetLmMIZMH~;}XF7hwFWzBV3rXD%%ijB_hP@6HnNyjIrC%TFG4y{uvyqfns$^uHi zN$2J?Ft===)-YjVXj$3w7!N;Q=53tfEDO)|3%lYdn}``1af~%q*L!(FqrR!U^cc%l zzTkDrS-N)myx{Ch-p1BN%3OY1IlBSCH_F-VwMsPfFFKt}n%Y7lPx#^yyMsr|*)(tN z$b*8KQORFqv;)kDbasnS5*(B6>WN)6d{PI{G}Ld z-)~_1NN(_}7#(ao>M*?1HHp?`fI+GuZoBwz-?KJe%08E8{J@gzpEv)&8f!?UC<3r- ziTdX95kIiKPcHMA_|`^LDPjXl>=By*k)>uX-H5;xdTC#){9*)}!PG-5OvYu@2qFrT zzROw$l&HqaRH4CzB}zI!cA7=>ab||llfETO)wU5a7w_1J8fjZ-H>rF_78hkv#TdoI zX0uyWykr_K+FTbM;Lo3mOyhljWT$b0r_&ksMARaorb!%24CdGIN7_`y(S@P3t9#!sw4P1zK{ZYzEyD#IkAp4)$7 zttAMn+rqq24+JPU^(WR+MdhUxtS=s^7uZy#f-k**)jEeCy}-K1QI(jTI13kOqplVg z+2_G^zd(DWRgVtDul>f7`QqPL=0Ad(s}<0!o;OnYgyKf2!AE~*2}<;4x;(QK924%_ z&AZGdy9#)0_r!d*?oP-h9+ zw>;l%6cDh9$Cwed0d$o-6|@0-!?v1f{H({AD=WrcX6^fcf9N%~LUeyT!f2wb3%(a& zth5^*2nE*kE5Uw#BiViLale$C+}1}YK_>=V!)K~lg0mps5l8sN^#<#K?Rkm-kCPjc zj3rI16|TYh5@0aWRQd|pfP!11jg2ZoEsTyc#C^)o`8x7S17tPDQl;|Fye4^SscXSPA zu=;IL@w)s3X3!2fHkeh{xS}Lb4(t726HwP23Lg9}zfCvlXn*g){AkuM?|HJmBUzQd zq#GY;Tec$=q#LPAMQTH4bW4?tis{P+hh1R5__JeiUGV(iaAqVY*OrO6dBK5G)}r~m zxV@2A$}aTu zYD4s2Twq{3+`6q#z5%#Qg1wU|UIWkWVARR|Wh`CH2D+w=MFHl8^G#c|P_Yh>dP2w> zPCA1B1AAq9ewF;V2LVVg(}{<1@*}SQU^|)Ch?9)K_XF)@$ZLH=>E5<#ww+EYAt!qT zO`)uurqJ%A50|{ysbC<+y0y1s#E1Xh5S~39I~q4TGZat5URHI64$lvM(9yW9R+SmD z;gt38e6I8{^xR(yLNin>PjEXkw1FUUhL+fn${BixfO3YGI>68j2~^4u{hVd{NI9An zwlm5mNKgez6BY=Z-|DYx6If}ABbP z;{IIs5V0WT!VWFSNHKZglLXf}hICBcb+d$IOkVgb$=sN{um$PN-KhYUUd0nen`BH8 zT~Fb$it!6qS6Ic1zsL0%%Yt2=G*(7E)K)(+nHx^WHL4ZknP7}4Nc1y1|evEbOU zAP3*7AtB01Aa~Xl3evbT)JW_Cknpmiyp}pLha`ZF@KFh6x6_ahZaT6~Na8rj<Rp5(;8K!ULcyd@;$PW!O zZfO7AF`~>MTjc)Y(Vl})?IueS?&4&`kmo?HOSdSLi+sQcJ0I_oYoxZ9sX&Elr5n+v zNM1deL&GX?@&)sAjT{9A-q_&=tkV3h;l>kmif8R`<95#mpP^8M{p6S^a;eOt``Hn| zztsq1Y_2$|AyxYJVgD$hXd~JYCC_n4jeZD9r`i`E`0R@heB$B*KeqVdLO$b7W0rC=@A8&0 zOv&QkwpSW^SBwMu%L_-ff@|*EMiPSA3ab9Ydyo_p2>%+tZPZlAH869eaV7zF9FyE` z{D}Go#stT(I=y40(D?O#$5`0>Ih3hnbOxf8oYrz_A_LH&CSIDC3^&>yH1s z<(WH%Zw`I3U|umGLbqNuD!rYV2FT9L4~{afQhyJQHUf#%Aw)VP;}68E2+?ET7-Id2QkAs zD$M*6C?YILIycjXaDl$j*P?n7U9f!T2=yOA&TdTG76yWDtmue%x;rQOu;lqTk;-P}(@< z5KbcKKmk4KKr5|i^CqFeYymy)K%FJ$w?nmFzY#N|fRjW_VXdxp

H$KxM(&rm?T@sr9;sM6{Aox>Hjw1+uIjxgAu7nmyV_NK5cRCxPQI5k>`>WB zC<&{RXHfMR?oet5Qg_$*GzrNV=mD0C6fxG6Exd>u_0$Dp`EG91RWBCt^W110Q-Ryn zyrf&k#Iqz9u80y4h{K*2NA?19pz_>vjwVSVhQ`?HjbYrF&Io@B%)tM)J zetQzvryE}77_UFwSfJ)#=4EedUAQ*GsG}a9CzSv_XBcT}!9xD%41=jf#eC!pqgT?R zslbdzh_yI!I;{`r!akYHkIyh_M~ei~i65TH-7}3LG6BjSYt;L}+?kM>>zs~>J{7A* z3+p^&hM}fV$5@3^gMB`LIEpwm!GncHnm9iC%PfeGmwAhijC5@|DbiflH-9Ku^J>!C zdH5rvFF8Ye{*f^?`FApLf`L%PJ#%msL69Ov+v?*+vQdW*oo&S3QbmTfEfS;=63Ym| zUFi&S*hyreZlpB^ZNve{*qUhiqng(6bHM|%jaG^#DjX<;Vo_nR_9w<1g|y%$pBl@R zZv3S=Mz?!D^8xL!B5i|%C?rL4$1Y;iCt-V%0(e)O5QWHzC?)MuLjLBFMMj$JfUHZV zwka|?wJ*sRlj5c(3wF}}L% zvNr`4fn}z-9mrI{Vg04Syk0r)$WX<;D8=ypMQ?&T?; z89giA|DO2FNUNSxtPAbl;PlUo>?)puKQ1>?t7mm8O%GPBbV$%B5vRpH#D`F@Yq)}e z9qGQp*i2X&wbFPRL6BZvX$)`v`&Yu$LaS>=jJ*Yg==pCy3oAPT-zQ+O-YO&DP7oJw z<>3-WeDEd__4lr|#xr+{SN0w3LwOi#9JVQDZV13x4j%qFa64+ZI!7~ZW zgjjn6CUDtW#nXD3z%zHy9BM(* z#~PnqYD|Ovv&%N)p2y$BMRFuHGRU1cVPOrIHW`m~;gcHJ><19hCd&#_h1Z~Pi<9&7 zr5vLwUW1FLUm7xG4P*B*X#kC7Ao>k>4W4Ypv% zd;IM(qd|&DC?t^ttQFn3*HtZokfH7aMvP?h7qI-@LFQXG>q7$v%Kw>hTcmgWFXM ztQ{MYDH<2|^zoTrf@OFsfmeKKq%ct_L#5Xa(l=r?53pz1T7mDK7HqQL(3CC*XgDd` zwh^?GQ8v=NgQAvtwe9fZ5w4^V$rB=6m=w1q3Q+Gq9Z`e7a=_?QleU0)9jfmD-ySfU zHrwijsf|o~a2mCXx={2dYD;dJRopj@pZC-a_Bm+8D(TlzH;)`@ISzBc@0 zs&#xU77ba5D9AH(&U|o}R-O5YZwyBA!0@Fl>+rx4BMya|A2B-WxT^(g9=aK`hKR01 z*S(#<1#=2b4z|3JM~rszX1P2WAw$Gv;k%C*i(x?<_O0>nrv2%tJ1pw{tkkFDJc_C+ zaM<_(GX6WYtmUg=hLuP~H_-8f7j8`C=20VE9rXwAb=26A3o0P*tfcUmr&S^mxXjV9 z1qr|7AGiSxcd}dHjH$1i zh%*M5`U<}dTnkCp==vE1qfg0b>fHHQRW8yfOhnNq{L5p;QH}qJtv*B4RaA@6Wkb2K zi4`Hx=fbnbU>Pq`%ITud{TGf2!U+@_Ih>^C zL6}T`b4PDS4)WR}pSVE>ymk4t3x?N+>pI=q-zq;o)iB5t2_*{X?#*Dki$frR;k*V!NT>zHt>fYv zaFL~uvP|AbSqdw&;Lex=A~hllT)!1-Oc`Y%d_pZ&5#n3#bHl+WGXkDdRz5;E;}yQl z2-KqGSZh8@@>!~OzXAOgy_c-;;EeG7{DEJL`YrwriWi`r$8vtds%k4NM}?Zrqh?or z#TWnLd`<=JHDzCs36}6)d=7j9+PO~?MHPK5rz}5+EajD1GTONhhq9DWmR}B2EoGHi z+T(`fP?i$P@{y>8xTFCr6Rs$5K%{_IFk0uMkB!}zp)6qTX08ct9Fwt|FGdyEK|M4_ z^Gye5-m!RqGIJq9=L4WEfWSJq4*>p zdf6BS^>V}?MmL=L>G_AzJ67a(iEd9>#%KItj0dF26=RTuWC+O7WxU{u(J#UNpcJ{B zJn)sccExCGmi!=H^np{y=vO|`qSGRAlpsr|dH+9+x-~{!vY|D|H0#0f6yZeaj@M4| z1%DcKIvrF~h&syZeVYAB8pHh4R5TAvj^(tLU^juoCun!-Uj|E(4J0FhktB#67EK_6 zkJ$)nofOPws2X3W8ZA@};s+h$!>ZOpQOUyUQPI&bo3R6Giel9ohg+Spc>TRpGX-UJAb9Gb1D6I>A(kx+VxtYt?mE zEEyc4wLUoBaW}NS$9D6NHS=S5g5I2924Y2nV#$mfp2%NJFiR80C16xUx>zT>Px9Mq zn77E5#IgX^%&uWJ0oLrUVLlSV;`WK=BS4gyiDtcog_pc^uWiY87yS9)_mj`}CYmi| zYns3xzJkXlnYY02=H4W;RR~{bz-d|!LkP8Jp^Sd!pXLjaOb1^8rHhhH>_;N-Qo1_| zv!K*8Q^5JB)igKBmI{fR-ZDCopQ~xUCO;sblID-+Lu#3uH(plg*ZJQdq)MQ_QC7$4hzd6thE(LpTvfkzsrcR_OLLbiqj} z<}6PH+>G2-GN15Xc1?b#ZoZDw&)aqL3_|~Y#?0n8YJ7s3H{z&qZNp4cwI!+(%)t-O zEp2bGd%8JNfg{@XdghZ5vVv{un^P3T<=oN0Y!zGTr6#d|V8b}fqZ*p&(h1Tfd}XB* zWS55KFMe^$Gjv>h@2ZtbKUei-ivK%*r`FmbxA1m{Dq zs&zV+A)RzCpa+)7^L%myMTxmwtvtO~Eq_{;PbjDIr}0Ntfn%q4H!(LTU3smh<{h=i zo`}#M#Cdk1_O#?%Je>5_f1=h7zSq=bO4`R?KrD7yL9B{{Qlj<}V}LH8iQUaGl5_cA z&CEaXxZKL2e&bDZO~; zz!x}p7xe#lrS38piCA=)NM<1@rqoaILulg@pGCDpy)0i0`qbdQ4D)Lx1+_pujI97# z;wP{zk{$pCyDf1k{Kpn1V}Mbe5aqtq?EX zC`TLPi&6OTdk|#lp*H3N%Ikbp8?%1&uoOZp_$|YO9mDa(8S8en>Z1rT?Xg8 zkPm5#g;2JIf6&%^7^mZuc4kj)fgEv!UqP@Lt7HN1-_HCY8mUcGml10nUchf|Zw^rw z@YU_jv?!VTGpl?7Ki=NF6Ui+*n9X|1WW$5<7zdoO6h3xzZqcLl6p1tk2!T{eaEvfb zj0iB}&%)2Y;00)vE#R{|fWj=`KXouy8+MhdC@nA=;~8nQd#kyYqS zl2tUBf7QustrkxX#&FG9UdwUMhf zR2PJ#;uBEsfG%cJZH3*E*HC~QC6oE|E@or3bTZ%E#hlx!luBaEM1>{vB2b?Y-lCGS zRxj1+rGY7#94zc=#`xR^-dFgb93zEq>tQD6?xr{k6aXk2xQ&w)t{m%PJ*23b4IzF+ zfWV|!OWy%XRfUyESSes5tHUl!SRQ;V7f*psvTC_vRn)m+0D#*!V2i5?JS~A0fSnjw ztze;B6fAP*SewBKhLt-kVda4RqyrSG!4T5ZYykyK8o$ufyd!eu8ET5sd-t-_U+-o1 z!~Ix$dzq;>g+93eF)T0|g%LT{u2NTcD`gUP7_jYQXgGWrDkw9=iN69L&x&-{=Dm8G zu`n_5e!a~m^c>OK?45gZE48jTBiqqc;S@;BSY^m10f=Jo*$Q=a&iL6j^Xm1FG- zfrOO9i;pCv#DI&FGLJ|5Dp+!}`KVHRJ5Dy*iO}(cUU;|TT1xPqTg`^*4e~SxA%wtE zuXS-fIem-M-{7;wsRJeCB+mD~-Y|uCTjh&DSinr|jrRuk-fntvMwTDC(+nto@!#&m z9`IW*Iopg-ZY~45i}RlHxF_E1Mw{*c+AMqZ-eFo|qNXDKWiF$_O^$n0J# zFEN+&zC+1PhqgRS*-+ebarq(Bq6#|?Fim<69AMU|nfGiiXfG(9@SCTSko5TQht1SP zC|E%et@t<5>aZNz8>9G=hs|2?Hb5IHVf?sVp?9F!n<~C@pxKO`LkF65??IK&+~Tqq zbOAqo=#cL&#BsCoo*jm8kzg8WBXSdx)5k%Pnn=-vzV=}K0n5e5;YTEm6F!R2FRz&Y zJkYGAAd=-Evwm*17N84b5oiHdd&m}`H~n9>pkl=^e`Om~8e`rE+DesFnJQQxicd{0 zv;?5e;k=RpA1OX>klC;orMdAH5b&5+ek%4+=c`EtTBT2T3Gb6ze6?HqnkPSOrs2cd zJZ!eZUj{!l?gaJ69hy&A4J2%g#ZN8y+)zh~C4r{EvgfCp_l#{+~x<-D9HnKRjk;Gy2GA zC#IfP+d;#aV~T6$XlWJm{{J=?KaEj0-GnlJF~Echk@A~KDH2)$kPa&s0EvoW=ovzV zum#|)z5s?iZYE)pMm}!Vi=)1X+k0hSRy=Ngs$x0^K4BX4eDewHr+6;5pWi%T_El!^ z8=f?8kaP$*j!>xRHz*zG(DP54x2VNxus9GkUj;#W(1=Py;D@)KG4qt0ioZV%XK`qH zr>S$yh>orp1key^_zaPzc67x$X?{BmA+q9Ru1HD=_I}RHRx(Agm}V}xqN1b`C37Gl zRwh74LyaLJPA0^L65>TQho3hGDfK6hbvJgo+9{-l8ZUq2=r%O#NN@By*JHMz;bWF1d>!OZi_O-PRBLtZoQ;NQPsUZ8w_ zW(ptvidjD_scTX{bfx%&R|X|<*CR&x zUf$wWvtF7LltkF^VS{}R%BS4EhF{I3ff^oLm%sZeda{5|f7Q&ysmE_#HOA^z zCp~uWS9~CQA0>O=@PR~=4{Uw6CmFVT`!FeHf%b5W1{8<5Bt@H`hSyEM60=2#byL3}{H)^#-Y{ExcHy`_pZM)vsT>C;Q`)U14MYUxh=e36 zVxOTwXdiO26!3pDL}<{kWMT_v@Yixo=KBnLK8A*G$T1W7jE?bf^s7MKrSNNuYNYU& zhMGz043Bu3l)ok-IDe?QQc=qIW4T~HJ_{D-ngi)IVYqmGaJX5ds5AZuM!adZRuDM3 z(_7|y?&1+?yzDJA2RzH|Z<{~lt{9$1vI`E89jZx(Ie-?hWY&bdL22tN(~6w5IhASo zG7XrOWZF`n+f=BA%SjG>0&#-Nkg63y{$_64KnY%vM8+Ezy9tuhjJYBYNFZGz!^bpw_&>Zse2SIi_#nR?#w@(VGj0gE_G>r z`QmqDYVorTd)MdvW}5#|uT=0IGtC9+f(yad-Zy{tD%XNf&Ng={>Z<7AQ?t!`6#nj~ z=11sii#h1k9$qvD9OF7(I>$6(4w9%6ZB6}9(U#*PQeU0_!QPw4NmX2Z<9%=U>{}1R zKo7%m``!!8Far#r>=@>{fJ+>WTVnDgn8YWE@k#W_^Te2d-MEe>O1su*5^dB-Yg9Uk zI-{aCMqyCURxyl5rBS0DmoTnO6y^8*R^47_Q1d+R@ALli>W8^~Z&jT-b?VfqQ>RXy z616cX%nypjnE5&$pTx|aaQl7nR`cwVTaq4R`uc6AC|UcI`}4=*-+yn;@okxcl;8f| z>?zs)cdyEHn)p@IQDepZx0{vvc^ky$+s)}EJ2x=#pSPP&m)wB>LU)Pe9p3_szetYj_e>C?p*Dvof|D=iDFWqg%br5v0*PN&i-GuNoKC7%-gAJ$WZgJ*) z=ETy0Qdl5v7T@eM$5M)kJMS|)%O2>**0TRpk?1o|YPuNf1Z?;-`honxEgy_y#6sw} z*IWXf{73hin;KRjbcc+@fUF381e3uCwUw;;?8<^mpsTEcoqfdm;50=Rmsz;kEzgVI z)TaAYbm6d19Dl#r5gLM9l)Mebto1+Y4OYwD8)xA za0Ivn(t=l8B%xqdLTO|B=6RPx21DIs8;CEYpZ5;v*1#+(5$b`L#3~#|3?0u|q}4m1 zi>tPn2ZV;WL8E`-@nT-|roGg#5HSJqnV~n~{$Q+Q{Kr9>63`&BwtMz@%|;c4nL?;p zIv+6Ju#R8;-)Yq~1b}-zKtrltfKsn}3|C+QO4>_N0<>GbDet_0^GXCtfI!kKF_1x@ z26WI1Sf+HKi?+D+BIYu%$Ei(7H%Ki6B`{br&5}H-20UeA8kiDa@w>-NdjW{V7Wpv- zWV|Kti~^{{TLvevDlMrjiPn&;!uPm2y@oraqI6sU`b@A?tpC`UB)<8$`Q14N8Ud?U zfb^5b(-uX%u-AXMiG;j#ED^luqZaY;<5)0OiWytYIW?936$layQgERqj(OJn?ln)C zrDMQ!pOjU(0MNCtcj^9T#5-Hf$<<49ZSD~EHnRh;PS|G7X~>5K{9BCD6F&nYlsiD2 z^n^KiQa(fy5#i5T87!KQQw|e)J$}|AC?kwm&fIy>f%mF?@;Ut-j9qT%&w0oY+ zCH7?!v6|zu8#-Ev966Qn(#3??fZ=kE2^Ajel5(Eo8Ed+=NfgF3n=Dwj(!{kdSgA0b zBSQ>5Y5GHQEraN72C`vU&y~$6tY*eGWA#+!Utv_?FdTNH5L6$(G^0lPCNUSw5Powo zub3QaK^(U!GpbewM;i$8=)pE?B|54K#sd61zImnT4xlT8f<|? zg|~o|7+F-IzF;5A=XAs1gXthpf|1A*@=$}XzNt(poE&usRv?WpxDo-}lGE=3zUo>j zWSoxBN}~dT7mGX$gl8%OQrAzPtkC zP)?&*2kOD-@-{PL2kOHMxT;$BuTUA#r~(p+pe}iEdaEXuCgKhu$9( zEq^hcaX5YkgA7X<96s_FoHhK_72@{i%-Q1JznIO7m2BnAhix~^(ujb7IXfp^yZ?_# zR}0hP=Sf#_;SO`g$^Qd+TH-`GNjTTP4MUeQP;+kh^IO>Abf<=XNPKbhy17;<=Yu}4 zm^Way)yWCNmzyxo95BaE;$(3hCZKQ7ZUfemlSQeUDeVW}+IVN#Zsd=l#2*l4sC43KH9me<;MwQ)h!b)L^?>%Tv5&RCMc1=+Jx zAqkZ09W7VsXZFrV&u4lkGfQJS=PaF_&Q%Ygi5Z+T-N+sqFawqxF__L>eN5?KX5Mgx z!p0tg9FmiEmgpn2BAb>WEn1kF&$DTt(OIm52xLHKdj=Z9Xt$3k1l?@ttdm|a7aN$- zz|Utfs;fJn6&Wi2^ny8gF~q@MY)WC5p`1FUYG|+#nk|LHfIdtcW;j~PIJjMkF)x}^ zYZ{Fz$U7xa8^sYXn&Xf0c50^uz4YG2kV1a`k%APWHS%ad%axL}706F`$6bLu zu;ZzUlp^wo*!A+HMp1S8t!Ui?v65#SnLWy382k!!!;YNH}>>3H%};?ZuC)kHLl4FIpwy z@^6=q)6vXbw+0QdbkOvP^LLvKnpZ46T{~D@yl+|aNHBQWNe+g0(EQRQTC5b}i0Z|$ zpO1LTBQYPd!qB+?dlr?NO!hUJ=o~_oD$7^|5@VJ%8uDNPuRyNT;0#pWU`Da!%o&s8 zJfcw(SGm_=8epl2CT6~bxn!sK?n~w$5sQE9PV+zXl8yZ|0$jYyyt+Yc4$@Yk!?{8l zAVvM0%F!)FCP#0c$&p^d8Iz+|)E|yW(cLeb)zu7P2<|NJm(8s(z0m~e z^*@N6TG4gwA}BJ7-L>#NS>qZ`H2pUGu8>8y)Ul?XR25#@zbSg@1c9 zxuND{tPtUPg<&9f7cPF?Jhpu4DlB3(r$xN-x*2S`xgNw(J#XN`nsdC+5&<8!>IrG= zQNb3`nTDcsoCy*9UQwfgt4TU)+vcU*l#-5UPKFv>h$Co=OB?bxjMQp(z>AGKxmANb zlH;2}t*h4m`Q5u?FO{C$O#hm591q4s7SPFXgXgx*IsU_|%rdnJiBk{&SPm@(4>)bC z;`UmIg#7wH%yCD#ZN-v{ZH87ST`fRuEwhyYQ6)zhiz_=Je7aZ(*0G4s3sqGXgeD_q zt(Y(gp;LGL1NNqedYg8et9|hQ`}KR~GT;2^o)m2TDIZFZwUa)ub`oz+8rEwm4fgql zkE*m!j;i*wPjUY~mI#-)B}B>a5@EzK*lUh&!-+-?7r{xiCsSbk2nBj%f#!C&8Osvu zSt6b(ffEM9hI-sB5qC>$W{LhxiJc>q=vO5I{cee!ERo8T*n^AgF!YZbgbzz*=%-3@ zLw}E3D#cPmC1ghYbsj0_om1@AL@f;GnZW{o-C9gdhaqpGmO^i;`0$@*gCBIq++Pb{ z=~@6#NlG4$8z?NF%9I~a<);jw)PTHR1?nh%BZGvN#_u$tVYH=d#XB#T1P)h8+J$xV z@K0q6*TErG{zk_S)}mp9$mK-pGNP|;IE^E9vg5}_>Qt|+LwP5bDe;il_^~-M`XzQI4d#oeLk~x#9fyn)kMA~Xe2Av4=ccsDF=%Ho7sEJy zGuSp+qz}LQfCM|WPaON*QGr94%}Mylc=+qzMUyIWrjau(OSR~O@QfeyV;$(n%wP3J zwO(_M&I{ZSL0^Z*Nc?rN<`Xz!^>jdrI791TaIM2$%MIeOPfV*R{<@4j1wouku9eB9 zpPKfFyT`;Q|Yo%_s5;?7UahVp^g&?ewTBDQ=AW88WX-)A1Is~mI62UX&bSh)}Ws4B6= ztw@SNhuVOb^&6=7NmJEJfPJRG{@=u!K9lt(Oj+;MhgoyK)H8dfe^rnM4mtB@5O-qo zdo{jhn}YLfvz&hKDxAt;lqf>#x%z&qRr~GLf3w0sbKUneODlPvk*3A!pB&yGLb}yn zzh0O68E7sS^#1j|8+6O7!;vxJvnFfjh}V49=?456p)8^kr|E(DdVntwuvm}sPmBNO z;y+8QqfusK3Cr}pUSjq6^bgM!Yb&iZpTDfKx@$Moqa9vnpdN-A|K{FcwKY-Gwu+@S z*1h`LC&b5iYTLx!wbp&wfH(k=R0J2^v);3x1 zX#>4ikF&m^X=(9pGr(@SUfem}+5rFFA5O3qA$8pZ%dg}5)4oa8UHZWDy+1OnA85Ef zb0BEl10Se0rnOkpqGGEB^n1mHHX#3AES_xj!YTXx$=1u-hhoPR>s@VC?_*P~9U8Vw zZfv!pTHR2c`NK|Mmv5=Ec!^`%tkKxA{r5KOKs|h=_-&gNz&7m0_iGw@x3pPDYWCj3 z0`Plz?rjfDWYRRvUD-11%FdsT;?XO`kEhGxv%Wi_q4(F*tx8RMTii0ka`doYyfMT2 ziGKNJ@vWKGT(t9=nN}JU4|P~E?G4c~%Q{?tuU>S%#}dX_a1CLgb+dE?8B_zBD~4iWmYV7 z>n7-}IE3}#2U=%pt@23DKZUhn8`4uMeP=eEM^V&qrhl+}Ql-C?O;2Xi-{?nrLZ!c$ zP3IvLlt&PXgO*!s6%sf-P>2M4FWgEb5>b_&Ln4|@mq_4_XqL|*5y_@YB*H2^hXgz_ zCHxxk&BLvmTuKxpF_;CSC{c_=Dx0n-QH%ukc-%%PN)#iJQ0WyOal*-#Uqp_uURRiO z6j1}GKNZC#9)?WK(Za~2N-X?Elz{A4WhD+CnVO{olXOZ$907_N*f|g%9%)^okT|0V ziQGXoiN%T{EFf9kiXuGi#oURtTRuI)#oQTo(|x_QM_WHF=ce|BCt7{lE4^Pj$vR7OImK5@8(#*h;uMvh z>!MUPU2%#^&#`MVo31!TrDwazNx111;=r$E$4p5P63~C$rYX{>^c)h=Y`P+iO3xv| zgKv4P5?1LsB%s1GU9sy~E+vYQ7|a4ulqg053bb2^qC_zg$!xl!L@^QxH{BzS{JM3! z%Ou`nN?^ZGwM0=urRPy1o31FK((@>hO_xZ7ReByJR65*ie)53A?j2X$MD@qhICX7ZB z$r5qnH?23INnH9ZD?v@7YlW47CgDHD+K74W=~JK`+$=8pw)HSHiDSQGJxooa@w-U8 zLhQhUn#6Ud;&r3=#=j%ey<*b$paArW7ruv&IF|8!Jbouu`~VLj%+mk>n#60T;q_?| z`ysMk*n8^f*4b1ccK!$8ZMnYp#vfS=s5HEA2J{Xn4cDHD0Su*~{wF}DS8V$UO8s73 z@?X}cc99-nmNeYT~ zoubthsR-iCv!qUO;aN&4c;GB51-*Yc%bK8h-+s~~o)20}sS(USTWJJ$oGmqiSI?Fj z!M2}Ejo_!huntEsqr@+)XP^dLwNk19hp&=qz^AK}8qj-=R0G~U$I@!D6TkTQm-%YI zZNIYqyBstzuC^wW-%){0NxFy}dbM@@gy&+|l<(FIy|bDT5^)Z%cN?SWP$Hfx?z!3u zYA=X^tF5V_%)X*`c?~>Looff{c|1sW{?0Hw-&X)ubn4Dc2|%OD?LU>4PpGNoH21-P z1n)%eQt6_Mqavk-&;LT{I^4s9SqNr8SP)k^2%L)@(Cikbt~RH}An2ko-mPi5s%a@O zefri>s0n_5r;6*Yv06L&;Lqzn%&6clDd3e?anV4F2tVjf-%C8Ps5!SHyvuF|J`wL- zV?Cvxf0NiGEa^GJ%~LTbtQpf}qgqr|26jn5+QPduFz23{K@O`24W^ez#rhs=jQD1c zHEFgiRIUm!aQY?h06$QH8);ml_3JRv`2yHU%`ZHmDgiSsmI0-_f@DVzIOJ^cL67C& zF1GpCTAiBK*ZcG9tdF#%eLk=pR*pF4E)7K3?l-U!!MXzx#BZ+{7pPz=)|q~G z%WJJu<&Pt7w4OtPeUmkt@4a8U$-0u7<=elrPDTvM<+p%+VKxh`v$jH2Jt}75*j4Xe zV%EVLp5tz_j50hI{lWT~Py1Bdb+`2kJUZ^N9B;gPviR?NtVwvk`X1{)=RMLr`6{D) znqF;qr|BEq7i=(2)BD^P4_{DBW2I0O+ zqm_ez-uGCeD?X(wA0tL{3=&pcO@-*nojOrjJpPSxW5H8(fvqk4wiIk!7Y~_yKzzv?|RrnP9lD++pI#A5Jy< z(4B7EhG;<_#2y0k4&Ye>h^#3oS~gqL8l$WTq37M2pwT+vUyA!TS?%9~%|@38^ic(T z(^U9`J51a;l3*2;nJW5OMFOBJ@r>aK!;K^#t06$WQ^RqyE*ZA~*u$}d1;p;n)-OeG zzg0K367p&}yDqB1NQKUeX#id)f)T4pe8?OSZz@O9%`w0nxNMR+8lSQjiNvLrZ%RL% z!B8HtDULub+)>0%x(fd=1^)5jpD5;62TJ+Q46Gy}ZUgA*y_si-#y(dJ;r3KIo*9;|XEUg#JX zarC$c6ZhdTYd!)P*<}0Z@cf%GSAuBxtb!rFbDUH?rOg4AtdvI;d zYwn=<_2ZU#0z52-H}+@4+KL^v5vp0Cs(C?H^L<&(C6CjCcFp6~dDWX~w(>YHT_L@A zw^|o2;^|3AItrmDHtD$`uY?f!9aMv`2-4a%Ob8vWgwQNcQqM{u>~%m2;o1!JO`#N` zOrR9PxvY_;kUdNaZP=J67;|E%W8PCZz~TxaR0tu2vm}`cvqA`So)kiyy4!&%5#p;HUU6goWPsDw`J32WMz5rocd=lR5j zO_n82cmkS8QvBoz%N~VYE-6shAxfBtZ#-!^B~POZ?h-dWY4s}k0lRf}u;%0kF0{?c z4{lgUNl+j^DpigHw?M*FXL5vHSY+}bVZ#U z@lvkT7cuE{Pmx@y%@oVYm6x7|TxotBvZ^|h2-GD^h59gHq181tV z`y9m6fK)Nilki#DOow-EyER_i`cbe!bZobduim4pEf0wAl!$D%W|uth4#(u??a2pjiLBwG{f_;PciT zt?5pNVDvcaFVZ`&t3fV?315aC5bR1mxO8;yF)vuxd9g%$bEkEhc3ba>DXUqlIIjZ3 z*;94NRB_5Pc4P0FUDn_0ac}L}??E5J)#~rQZ#|~t8k7h2SYv~XLUz%0*+7&uu;Va` zEKfr^0t0-o$C}-gIjB-i*LDvTaJaU6oej5$jc?e&qq;RX%tD=}MqTd(1?Bb?V@&DJ zo%`5M={~vb(R%P8Vt!^-c=^MRSxMGdfn!5wi#vv_jr9*u@#N)}NvKm$K^_sIe_Hzx zP9yY@H3J8A?)=C)PCvIyct5s&iLYxuhKhK5?|ppeSeLxE*P1qO+dr`CVt^r|X0Cod zpS4)Fv2WM*11FAmF65wkc%3a9@J5vb>!W3#Kp}m;_q9)~?`t?R(Y4Q-swI2R+6S9F zx^%W?&(=3riCMkJju+=@b~9$+>ot1`t9?T*s4x1EOBH51H`dCe%f3gLOd% z(VWZwz}QOAJy6$w>h=$0N!?zgvc}x3QD%MoUKy!LWv`WnX*b0iPN>t09DY2*N$+yJ561#DtECzYN7A-|FMLe!8Q7jhu3vyiste&SmEAQo9HH6y0U^L}0tF%gkIO>C`;MZ3-;5)5R^b5iH?BMuL4PR)}{40YSVf7$R ztg#otJLQTRdx?exXR_9AIZ!5MYY(tq6I+~N0LR8^2?DaPXbGygPgX&L)oL-l&Ym24 zm{_E|Skpgo0RsimAh%ZDeNfS&`+@=b#~VQ$`t(0r8pNsw%|e*yrFw`z%R6;?Xycd9 zXoCOM>7Dv%(%K+DoL*&&JN*ub4X|l|e-Mh6)HTbc%L+Kf@GLOOSNS)}fIFb$$#7DI zA3G#5ZdZUi47eQL7dl;b0-X&<)?oc(1pcct9yZQAR0RF@IBlF*?6)n5)D?bvba^{4 zWIbY~-+sxwrz#jw9aQEFp~W#TL{R1fX?nLJ+5G#MZfyp2lj5}pUV6KiONtq+b8fS2#=tI5 z;TlikyKE?qY_R9dyc<%aj3*$F4B=f3t}rK}n^5vs=Z}))>I|tmWq;h!fU*8nv9-ZI zB0F%!#L@Q8z`?b+n(gT~mm*FVR*ffHUyc0^-=?D%+$eH{Q@ zGuCb|dwZAcnBFa8?KYn_LwwL|8+eQvZ%>`G_a3ly1U`YzbDP+b2vGeNgETBdEK>u* z6iTNLPdM5vbH{D(8RPAT^)Z_e`4qzdOXk&x1cjerM8^B8SU$-)|yf1 ztj^ZENQbD*jDf7lAbVwws$I|3jtr{ynu@&2fyA=v3PoI1%cqmT_Pa6ao%2Y=>o^ zo@1+Qs-@IVzR|R*wE)slGJ#zg$f6pajq0!}XrBxXdUubwp#r zaD%s-ZbC0b@Bvs^=uL_j!zeo*$8x+lNCSNcA8>Us^fr`da){|C^Uzi~QcD4+8CE*{ zrpUl=FJ%sndbo0_-TrGi<=lzngN|psTeZ>W^)25`)QB-$59^@X9f&p}QNz6x8RH_8#b@ z(qRm`JqRiNXOR!Fv@m6ZfB`50m^s7`s}Ejqs!>6rfQNCoag?NXWK@>gl9*DBYvCb8 z(y5H3FyR`?9x!lon0@PXn#lJycTmV@5K3pcB_o~DmK$46JHc!|92LHzi+l8LQ! zyMn<9Qly2ypef9iGZuWo0yL{CjxF~i764pENUH4bWN-7KmkN_osUO_=!_rQ zP>T1(kVdN>=$f(uJ1H0zK}z>_arr1AbHDkwn%@ATrrMajnijxkqX zjtZa;n}{^#yy`)yF}x#=m05xJhc)#MD#RI&Cjh;bkE0R)5{^*bmBCSX4#Fr>jb{Q+ zddtP|L^By%74{c+jlt3|7Ej1$oMl5gp7l(}lm3K5;#&`PjfG~3NYEGgGInZ4_CdrW zxopzW)!Y{H@bnlDo8a^=4y!7M9Ta=BY2;GMPOT$o8GlK>2y&X%NC*F|elrN7m}Y0| zku{nae6VXm6(%jXfmY4czgi{6KGZdJE>5cWj38oENvj)H&U~71h{coBXE#hmu%qJo zM#E?}4C zAe6gQElwdbKx5}k)J8UtLUo;Zadnv`F5B2u3Qb_&LtV2gqQHUTASO;(cxZ#Tvv*lp z4fW_COpJziv8Pv@lIWTmO7JpRbR{;%geW?;7wP$NY#3HsHHYPJ^8v-y%>d-!6jyEb%|2k)V~?;bK* zoWHTlpSu|uZg~n7)El9~EAHIbWokX*sf}Gzzc%EOq#G3LtX}BZ$@ig$y{(8s;_c^4 z_|M)J4?Ozd`Yii>yN}VB2K11!&?84bP$Z>@YN`KzDO!8Pu@85R3#DA}gDl+OfIQ)j(m|17!euLA*2A7tTWBII!sS)rW7+>^E`o3-&E-K;G_ryFt`Q} zY!zoRV~dEZQY-_Kp3p)10L%9MRgM)|7OyyRC6^*9<`*cm2R+5(9^&--%0`JB-#uiM zhz=g&6IY&p=vZ;ms6+kjP7_Xg>m0{pAsDy6tg*vAb@=`0%kXw*?|3{IBV<tL`8vbxi?qv1GB7G0?V6$uiH=9R z#sk!sAMKhMBB+f3<(m$OkRL$UB~XHmynYA!6S5Tql9@IZW zd*P<8<9R(sX%OrnGk(lO3^ zfU^=%UI-}ATCRe7*r!O1xz8vd;$#iB?Wwgn*ItIEM0FXc_S$l}c);jGM{x0=ggV9< zcI3C$alrYXsWUL?oEZY4z5b_hPX|?i&PtqRLmSw&%W$e(XB$)th(BwV_}6iJ$!9~G zl0o*f@JqnMnyLYj22>4)V(F`+2DhPVdTIAeb%(_L7gSY<)3#x(*o6_OX+q z+$w<$6ywdcfkti>&ur-mR>Z+4P;UL*;*%|1lR`0e(kI(Nny4m?pF>Yc$s@ao7EqL@ z6NCJbZviE9#elM+weEkkoM-g#F>>=YjV3#KO z4fGyDFDaX@z7&HSca)%4_{R%Nkr|YZ8DO}JAMctNg6SxTJaEleZbIN5g6=)t{N+gvb1HJ5^HEyaWAnT1>;_^x}kKe`0m!OlVD8Pu(hkLNe|Ez1#x@~|11a6 zhl5uNYH@>`n&Sb>3FNV;Nv=TNE%R-0JIDhjpeuj*#7w#?K$lkgvenTHmG z1lb7O?L2Tn2?A8eCKHJNLELf!30i?oNj=Joas}1NvIdkD|q2F@w(L2fS($X!*Rsjq_`1W zuWpugh2UC?>oD6r?!iO!IK87ls})q6Je@csa+U$tB#pp%cw_JTSP8oGjx4zbN$gCI zgF`!Ejb(qP%GS!Gh=?>I3-dV7hEIKR0xQMud-z*ef9V<>>bXJo5GaE65|`g2_SMAd zN&o*Kixn1H`gzz2<1bhQL~s5gs7|P!Sd1zbM)`C_XXfZy26ALN5*yi>9`-OmCi*5v z;c}5$*U~6{n(S%`#jpP&n2fK+n&DsT;qxv)#GB9U;r$Wqx(iCOU3}FAqVuV)vETe+ zs5V!RXFp)QnIOA^-(DtDUov`;Mpo}cl)pX0xjRxK>OX903{f-Y$i|5DIZfci5)ktK z3vmAu0P*1FpIpSq#5d)dsEmwF9Hw&A&=Sp2a~0rG)80dP7o0B}>1`51M=JneZhkmia)Koo=Ydi|dYyt0QjlMv2Q!yjq^jSVj*GZNR zxx*dD)|^K^P{W=4{eb&>7*FFyp@LS{6tuDiMHBlJ7}=xlZwk0u5>N-u==3_*Ttxkm zzW-~r5L?CB0>&InyNJG}#Q*0Am$B8DLOh+gs$Mc*r7LTD&UHJUvNn2d36G0uX;;?1 zF`OHRe2w`NLPpraaTc@laAAveUOolktdkQ8Z0+9j6#s&=ouTt2+YJ{A(C-QehzOZ$ zU{rGZfui=@^CjXT58-^8fm2MVfwf;mpfpyG`9ge<#|GQouKzOmVB7zk51z>5gDw01 z6>cA0-T1E}{ozoKcXzwLhx6{tBH9mU-v2q$4b`KIk*+S}7l@}Ezf^;`SAU=mF;X5} zx<5i!79$O2&tn*#mEZQMIv7bfkA6x@2SU*=!X2Zk8;WuMyov9&j}*?F_}00B$!KEhpb*^^p zaYBt)G(zLWDnnYqJe`dTJ?p&2D0gr+f>hD4ny)EnuMB5reoSrkt_=M2pRUFSWgSxR zvX9i9LxUryzjsEGf=US1DYZBw1YB$QEWC+@LrS$NmVVh;@H2JL+UmM5)bn}LFYXeU!tYl6K9m-mVGREHv*4Sn zRY!4Ncx^QmtH6<8NN=uzIk!j!#2#1vyi*Q}i>LnDHAy_XuEh{_FF?KgV)Up+Fvemf z6-rn^KVU0C_CsgoA`e%T1+#PijU$VdP~keQs=AtYP`&b=&$0a%asTr{_h&J{&&T_i znyP9XDUnOt+(K=6Mxj_LS8P+U;)4a?$=}n02fv#Atk_0LmX<5F*360xF{G7hKH@5- z9KpEO4jeLOsfUB-V(j%75~TZgBNL>M9%a?#gfdqA@YzEu7HxR??vJ0{`s+U)L{|}v zO7!Olnld!w8Z^dTtGa_y;eR6#I=T~+mt0`pl&|!})QjhD?r?v5#Nkdu>iz*&xqv@X zD!7s(t1ndg%os4&9Y+ z|9JHa**`vuJ>4Pn($-h5d3)gV@%t=>{9lqh;Ls9t$+I&LSQ&$<~+IvwhVeEU-nv8^Aws9A063@m^YNgtk=8d%DiCpkxY(b zbFwR!_wOU;9aEV1fNx{x8!<~XQ>seRtsSdmI9EQswm?PXKoj(HKn2Ee!zoJPC1nj6*-C zkJZKT*oA==fLj|ZVu}~iU6oa_to1l1-br^&Yq<1o7!EpMIJo6p8V)*OHxQj=T7w9u zYs*T5oi#tKHN??>#~wmyg{$7I%UU_1sr5+OMU-14r_FVmQR}LF)T1BxFlVsnbAP)U z-$VIu;u20Q2j?NpsLzA5epDWy+thEd;;pVgRrh5!j2k$9ahWYv-)4*xFTLG0K7@uM zl9SwN#~$}FHI?v*bk_vgYOzo$L?3f#9{M!fy!U=?>HC)Z`-`A&d5ZAAz%}<$Weuy} z3jOdE3Vl3t=$~ASeg$sQEJpteQ2&Cqp%(uHHRmIjQ>fxEAUO~3& zn5`$Gvf-J_wkQu8U4f*Vly6vru|OznFjUHQ;=q4&8Iy7xj7)_bj7$%S|N2K)M^)r< zRX3iwx(iSo{72XLlVVq_Eh46Vh;^^zno=Wd$}3v84|I!yQq09^2S0sw>0=yIog7k{j6llIQ6% zxa>|)g1}Q~WMsT2KntSnPc9J-%wUr{%u46H+?(1VlQNFNGH=662ahb-+BJ0?HsY}* zkXhsN8eeWs!VBCZZhoR{rubm6tA1QRcL?#>kIxy8Hf&j;zl8BlSD+eKP0RGLEVlIc z=Eey%#W}J2EweC=vpA1W$N0cYwMTyS_V8m=eMB=Rxy`^+HDgk?8Ixo)j*p`N znlY)M8Iy{dF{!8-n$zz>=2Jr6nT5R5h1@S8Ckr6sTLFQR!y%_!$b3r3d$N%CD9Fd9 zB;<4fWPB@toE{E&$c4ituHu8yqZv}wE#xP<;3`J%>CE#^g z!0Qy?h(Rj%6adDz0>C}P0modxd`iF%WdT2=0LLWYcmZI1D*zlH4mjZg=2HURkp;X% z0ZvH3{RM#WtpITUaKHmDU_K?_-C4l9CE%|NNWiHA!1z`GI5iybpbMB!3HYL55Kflu zo{NIw$mtl5gGDfg3SrRS+4H|2eT2{*ggazVLFh^=$$%j9+< zL5^E*B*?={V1}Rxos`aXfsp@d3Y(b95OXuchh<2p3<)!Aot&K z?U{5zHn5GD3gUp!VL){tD2#!lE%DQt_BTf3tA`#n1M+F`{*bhIZKiF7Qb7>G8B}Nw zx@Zq&(e_>B-v7-pN6Dyl?>aP8Q*XcH8mM$+9yh=L=7K!vTZbgczG_R258! zXp#$=PYL_n!x69b+SgLP9fR9iO%@i@hK3+lXG%Wd z@T~xeo+-l!7juF0DS_rIbHx6-wGhdheJ-dkolC5cVr>&a3Loomg;7c!p`^6o6;-3oGOKtfIxK*qNM$f;t;=#myaJQc2FQ{65ZoPtgmL$0`1 zla+)b$Ob+~_*Qv$3o>CgY$>dyr=^I9vRSvGlG|ETvtliav>1Ln@fO*y@fOvueJ#cP z+V5h-Cn~FH_w3A~v{RyVT)#vqS%4D06|_59j1qhTUC4aOw(iLS-Xj5@o|1sm1%UCb z0C2h(u9u8k~k{a2kjko#u{z zJS7Qwr)7xSI}M>*&s}J@hN8#`y<%EEdGW1)2(f8Jt^SblX1-VyQp# z*2lL#;*fH2;8Sr_7Kc5+LCqB3Oi3it1xVmq0TStABw!YBf%7SWuW6%V29Llt6%?8? zbd4@{b?9TokEYw@-x(?b8g46SnX62HrYbSACZVVhhHw@;=h}@SD5R62E@r0Atkf=) z=UHKf;`u@jy0{WQ^7}|qf`V{_5rzCS!I_If!`M?QNQyHQt_k*0BGY3@z9r=wv`zFZ zdQSq2wBZOr8wmpnV+A04D%=Kkks9tyBr*fKx~EOC8=rNuJJ!41vA#_Xm?7u zEm=$e8RrBiWl!I(@X7#$PPA4IqCprslo0}pt%=|ioW+55>}>iwG~^ycwqam{NNp#+ zY-bF`NUaQPfYWtw+tB>4AetLh^6nOdTfo6K(GnCvv!N-p0J0zq0a}3|12~aDM{1mQ zGvRaI=?gYF0~eMc1W_m$z`y2B4KWfz!3lUy>{NE{7X7YP#4UicdAv2)%tpL1H8`H{ z(NRIzOBS!dJpoO^EfU#>OezgONW7Kf^^-N4d^C~9(&0j^X4&Ciu9%aqMyCGgUiig@{@4*Iw3no@l z4)V?k&K8Ivr7$g5eZZg&f8K?;0zn=2I(8tmw*z&9;yAHA-Lo2gCPVn(q#AK@cwVch+N0<%EoqlDHky5x@%sSc$=tH&Q)r0MM^+UCY zz@_A&0f`>26YYoCo!`lj$;Ba2DRIEn8^g$y?a)4qRH6~D1R76CG~$&&gUDmVV&>ue zLW~gcbl{Q+B6$b`U6e9JMYP^5K?n$p@KPLU?es3=xWTO_JgdtX4wPc$m@?~w&`W&S z@NGTRHjHs|_0fD|QnbPx2g-zaz8l+SM)`ElRpJMS+9!q9T8JOB&~vu>c#XBt^K!^1a9n`}ufxw({Mn+%aO`n~`guEkeito-yyx`C!%>_UooEGvopKjU+PrwY z`ig3@Wve&U5%kfO4?`~1!4BrMlib#&JhfUWcA`VmP!B@yP~BriqKSXEp}(XoF~3W-pi17N3Hbls0xmfpRiMd>++r~k--o# z5nzRcyREQud1VEn8t6`nYN?K~gk^!LmIXBU4F$!`F5y{zoDx1m{3*1?e1HQZ;^J1L$sZhLOQTg5j08y3;L!bA6hXTeGhp$9r;jC zzXcJDR#~8{(lFxF5mdpuRDz+lQ6rvOZjbf#P4}-CZ!Nb^UXWCPk_u423n--krE`G# zM+TI10UbKtNg;<^xdnyf>%04G0cdk{mX!90&G8`6brnm57MWBkV~n5g1g# zPj2qWj6C=c<>ij4+%cIu?&gl==iZT*JE3wXWbS@9cOpOc?!4RsD))fQopN&zo-ceX7J1K!@oUe_;*=?V;W$CrfDvk(-zaUK+R1(>GJppLTd)#!SgAiJ7=bnk5D% zlc^vtCUcVD5qnI=7ef)H0-l~Jp1RHsOjl(FPzFO0`#Elzp^?gj#p*q!ff<9U%pl4% zvP}0BRZnEf2=(;HGWFdZiqT_k-l+J|m+b@Qc6Strg9s#1zBs_U6bIdWX2d~H2gN~C zMF%+%Es4t-Mn&Bk5^fEBQ^d|Kbz{WBqwV^+(ZYISMfKoaiJkm<;u@cchNp=^3RF)jv%6Y=YHZ2Ra3;+X+swrGRf$CGZKHxg28)_SX z4FDKj+ZT(DN^7F{YL{((8503+1B7iwA}demr`=DHMJj1fV4xmN@QX%W;rY#U*Ik{Z0ER7z5R z5SKbjgR{GDBMFh7#rvlq@Ja&Mu!JF?HAA@Y9Dp6SNE@1sC0@11BQ~Epb5v-KEES%^ z%K|`)9vZjsjJ6hVQvfoXi`*25)qh+79`lHWkt-u;kMco}M^nRM)>rIcOBhBF@clI8=8WKk z56ITAJ}-BV%zaFc%pGNJ+!GJX;RZoV3S#)kR!ECWEb|tp#ifVweG)mSyYrw9C>#bP z)D)ps5Ql+W?u%SA7cm}`xmyQi?jhzza4Fpx%;mlzFL!sFoc&t6+lXbP4cW_>z5Bpy z1AFtbM^*MIFwP)*jM=fMV9)fm1x{ZIWSnL}e=9vW#E>$F5;kZ6#Dopdg{XwU1!cG<`>OxdUp*ZduC zPng|37x980>s20 z+ZTGSBP?)!93et_@Y{*b&6^jV%tNKGUCt!)QB9x3Cebcu5-D&1sgI=-`K5Q~l^#%~ zr=#?MES<`geix;mckvhm9s`5~X_*q*Np|3nv}$5%?n-ks8#&ajs2-kPKy{QE%CCLh z^c)!@;>;5{*H4#3nyzNR$h^FkK9rX`CUY;1$=q?3n>2c4`XcRiEJ(;KiRp9o7#An; zd?-8fp!BOc`y~{pFj5=o&(FOlFLz4jZcEAB>0F(AQRk~}okOTI#X31B&J)4ChXv~A zq5DCT?inskW{9?v?5T6p^9m-b!Fh#~72c(2O!FxxE1awvnkQy`)o!f8&%t@*NmLUN z+CL@->cjI@HBq;k9`VdccFWxG{DNA#5gjXkO2oUYCCq20mdN~UE#33oT4Jh}9=Dc0 zx0bkA`Bl`?Q&>y1s204-T6*$piREgEW@<^uT8@je7WCVEdKZ9n{cdf^8F0^l0Vu0_ zND)2*A{>C7`(uyc^hGxwP*5G&rZB2XcuJ9n#2%x3m2X@=nEl#evK0+8?`7s8%r8_=x;qd&ae*s!hbVPZ3v_8NEnN!wJ43M6 zQ2|X)T1krreq!%)lA2KmCuOt@??wI>psUHSkz?rV736XRxV%;MJ#V@()DkD$<`Lb;(qWk|w~7fO!hEEvTqiYSDQ913AWq0nt)Q1H3B@OzW|?ex?^^^CgTpPeObkB=_KmIb#hp#91* zB{7P0h+Qk}U?qm3e2;aA>Qn3~$EUbw7IPsCE?DT6m1AgDNgoa<3=u~`MQXmP& zQRZHRSMzj=L%$7cdTJ7lyOIgiA{V2icAkE_T=0TV8cec>e4FlhWX?iQ^dR=)Cm#I; z-hDnGQ(E=6czL>8=6zH@D1Rf@-e%us8y06>S>rDrVY2UFA3O%v}EuzJkEppP8WMoA( z*IJAnwE}CgQD7`S2fdjw79(dB?7YEo)$aCZrY9f|xN32>4#KLCtd>`Gyi+B2V?yXQ zYy@y?M|XPnAw8kehg3QiC2lf80Pfd<3Y2V-mKb;kv1ITidW1;q+|8 zelCAuZ55$WO$W9;H;xeG*Y6u14uo`79# z4I8$mMh^y{uPzZ8!p4vD79*<;mgnus4&rvV&)k#6B_a@4(9Q}%gM$ya+vKDW${JOK zTd=nc^-{E8?1l2369(MIZ0G`DmU;Xd*r}oc4tNanGdngg&4<`2+k{V zIL8T*y@@#>H8mu?0SveZAaw53>;{y+99<0oT)xs-^9jhn7v(?U0*sX77~!28xhWZu z04dQQnTEYr!kUYp#jwJFwXFcwP?@2R=jO&>Sr*tJqS`C$pz?~7zGs`E)YQ+!G5Ik! zSpZ5QIDlV-nasgVN|>LEU}P@|aMXxsDT>>U=(L2n*QJ8j{f&sYe6!jCmKwjk>4(E;(o-S2g z@X1p2)TTjpds2coJk%9usa0cSmg&V@E4S;t2m-dsAF03>8S7l_)yfv2XFDL!Ow^F> z03$YGtE>sPqTHPZZaB!jyha23U!8}2utXMvJ{N;HF;JVvabjSEP$=C|)v3d)B_9S^ z_SrRn5zWHrabZMqFd{CIbhS|oSSg>`tke<^D>5tS<>>VynZ)a1OT8yjAA+h8DS@id zJM}dC2yG&0fNX3<#kg2pe4Tb zA9hEDg^3L3unluv&wtpOW{O#@hm5a)Pzv)PpV|B1kL>e(t##bLPI*n7per|V_e;6a zVBm}_x=DVnGjNwgIouTLdVly6JEn!o(3ijf`&+1-G5djB_pBhSiymlyvJFswdf34w zG9MT|!Z(<)yJr~;T5ps=amE*w!i!nRk&5DwH_+i^R~}k}%`BtVX!hS>1%1_C>3lN^ zJ_%L@wvS!!8-&FZcf9hYu_5VflVKg@asXYG-VhmK9?tgv5FB6RAb~#yB<#)y$;X2T zj*Xjvq~1J|pABR>Hd}E!&++Pp9yWY1>wOR!>@Z}sPOtxRdXuPBx!;>*MqI_Kp`y)K zA>dDnzBh8jVtQACiud0rhE7UU;6aBfu!Bt17u|+^1Gk0&209?UT(#NhFZl}Yy#vHY zN_fTuvpSx&R5vjOWe0J4nrs70(>e|~P@f6hD#qmssvgZ0Y4wjY2i>%5aBchxB!YnR$l*B9Lw^2on-_too2a6P08$wXqJb1T=GXsAQaDklH|t_l@qA* zhXJ2IR8YgsMK#>K-x}CT#ia=KpoWYOH4Ho<=M}_y%&Z3#FTwZC47ek?$p{!tM?ix5 zuc?4+Cbd#f%#+wJlX`ZNDtjXHmf%}F^A_h@6jK8D0(`!Gni#P_-BV<^I&fGsRMu#RAX5@B@I&mg%Ol zM6=i)q7XAN#+gwFHoR^!7NuoYvHyqT{p?sJ? zHV-2g(10`t4zC=8l=MRjoxb;)i4LDwH(@6mzvXUq_agD_ki9U}4Z28i$F3OClpz5* zaOFI@oP8NAk+FO@7KStwN51Yw{G>agUxqQ@t?)OfaPB(z(Ou!*#>5Wkju_1(BD#rM z{+<^BxTVgmV^Q?ROe#W~sno%RVs_Y`S^?x(BVHf6r^3R;)u?-5q0{rBY80LjVyaO| zZo#J)idfiQIySv9uTed^^0iDZ6#K&V#LDzS>44?ned=mdg3PQ0udHM;XtkGfBf+A& zzJ=%lgs7*n2)W{{rhlQhVYS^>2M#mQ#@HgT7!J;g`o@N)??|1x4;wuS4qjC;dG`|L zImeJRCOKn^0GoB_a(2TENhW1H8TU#W$-}ZEST`n8R+m^JPB_;#=O$>)aQc_vT5O#{ z0=(9brqGfE|2{yJ!wLu^Bmw7b1G8*uiMZojyS*Z@#Pmpr;_}xg+siBE?d8Ypfby+I$ zV|<}_=f%p&JYqTYDSF)Fra}kdfWUPvm>gusaC~2IzP+RhjZvA>wPM@(_Lp@$$6sJ? z@uh1`O(gEAz*!7QJ18<5tEeSU;biwx1L_ebU9>$v8%d08P>h((Eeo9a5je|_j^Xw! zXA9u`+=aM_k&Wg>j%WuZjgvTk$vOPlSL>w9LSWIpS*R28V9PXjoj%?3@>H6LGFrK= zj%TFa<${i&UwxLG=uSkqyC%D!lM|6LMr@e|dH_U7PG+2Ks1WebFs@@$0B0x+fJxl<096J0)k2_00tcu!uuEQhl}p1cHV79g3*&CS>|{=CoFg)=C{gA1 z?1T~!&X&W~DzY3dRzY~}ga*jCSVdOq^tC&gZGHOs?iPo2+pTRJ!fLqixC-)PX#0P! zW*F6@IZon;5f66TRh8MES}E$6nO3M&4Y??WoE#kfRVG}KJy=k|j)iO4a2GSWq-Qn> zXEfnf!P%%Qu+Zb-1RtHvDU~BI%Fl2MEjMsII?BL-R^EE9AtbgD;N9(5ck$2x@yyi~ ztjZe`B7CtuTHkP^`1|Gdq%y3>sI!U<7u!Zi_Ddq$Ll9MxSiBz`>#sLAOYMy0`t0== zSKt(^BeXDl)!AF_$@FW$uI^7sl_TM_}{8C`^pfOu^lB}fXeZ#RTBXDoLu zk`TLQIe|*f&^s(s8K5aqvuZ7wdQ3e_UB z$yM^C8po+c4pr%S)ufa}^gd|2#KnS#gknn+8uEYw!6E~6HH{h_Po}XM?l;v~K!R%L zrD_M_=!Y?bb8Q3eph3Jwe2}`3Tmkmg@|sfF1ce#wC@f74uf(Z34pev7ghrru_pj{f zTIh|@&O6FoUZcP`6U>SrVf)~l=e*F^>OrTc`TG_5+p`aW>`ndKPgW?z+rAKs#!v(Ro(+rOU=VtNkxpBTk7RV2LDzBm&1H8V#;h zJ8R|g>N?0`kOa+7(Oq#s{RW3ZZ&JU}SD2*n+lf<~!LuJv+$)Z~x^*~ldx-P&!#CM zRXl#VJ-*VlP2r+Z@y_M;*ec4x(xp0QLeX%A-4c32-pa!pTGb&h-bZw5cAkXwiZheU z6k(=MSIZUselvxc={A`uEGHeO+7$O^744wNb8ue9;0CGGIXGC#_*{Opxq#HZkw8WCEU*B^L_M1Ck_*FAwIL zsn|hc*NHO%A%2HAdJIqG>^lf!EzaMV^yRju59$Hpc<~c{0>YMql;ApuV-a(9yWC{Q zPpn|u@qsRrTcm3$*xjVPJ0`E4)H`w0f?SJ!G9a(U(>d#foYl|iGkHw}kA&*y@Ng&a z=!bkBddA~4GkP^gw45+F4IIyVBGCn2|D)a@E^Bo=T1IPIk`b7SAyL2oyt0fumBY{f zhDLt~C?*>3t*n|C0%+7nR5d2@ev>T1xL{%@um1TviL_KXfOyoUG_F1&r5V|p4RHFOUcL6B zJFdO=Z(t9J@Fm+la%PH$n0&={uo=*&A)x?$jkM38|9_0;IqWrmsF>!ssbIe}e}7Ph zs#HzbJ18$gkY|nykp5hnqy8+(LsE2o5l+d+S|Tl%&EPculj>MC2+6k|I^(!Q8Wv3D zE&`>ck5)>~N>b4Sr8!1D;?n;-%KsJWSL8u|F9)H5Lehs92Q>;Ku~>=#sTZg41^ln% zt+akY!JvTDoj<+AyfGY#>R+2h%QF}GlpH)Y=w=G+tAZ?QeLhxCHhh&3OW8v zxipW3AOxv7fo@8;z$AfEJV1yN-fGv}h;hnXUb&m&0}`tsBVeA?)Q+k&p=3q??rHXm zQi?(>TS17(j>iQs$whFPz z*hWIfZi^C`nc1*2Ws{f?}ITg6jxwOzyBx)6mP-f=858NH(mlb{SgGhkd7{>VnZ8z zr{sDvB-d-YlTg;LJ{qjlsx*I+&O6tTs8xQj{~vSj0bf;-#gD&xUrA4H3hBUm;oUnA zX#u5M$VHL0f(2P@u&b`S8pOJ;f(bT)6axY$ffHXU?2+1`U7*sbp$|`6=oKmlY_1H^lkKDfxt| z_&n<^YI*bnC*RFcg{SI}3BP0HP*leI`Ke;bLVS;^SdOrjL%>*@0yRFazB-;pO!Hq? z0Cho-ILMkq3jFwB%fuXhwwv!ffT8xe(*eYjcmR;9!@B+U{*MX(SxBAIX4pcg@r67J zg*s`MFpIhk)&3-TLwjJCVKAY4=#VH4(p~N3-q$)YHdZ9m%lH`rnV}*+2V4{$DUe^d zQ=Bjzhry+^;HsACNxT6-YfZ}8c_b_2>F{)aI}oYtQh%n#EF(B$zP3ZQs(9*E>hB(1 zjd77D!+081>TfUV?C;klNbv80Q)PvVks45yxp)zNq?i+wwL zF>QbDR&T*+&=0V0a`?Cjw8%jTZUZH%hMKcnSjaSxPfo1FU0TRqpduH$ae(82UFG}% z9$S8t@&`&ll%q=gJ2$K0GFq_D4Y|g<{co+%lUOVBi z47tE8Ej!)}hF_V*SJUFd)h;oeU-kHR~A z@W?9bI*HK4E6)SpgEmHajx}PXR(NZ1jx|J;2ziLUSgE{7A4nWM7 zVJFAi9O5a-a?XSDg~(GT)4Dr0+2H{h;-q4KUufYK+_;1MTv>O=d>P{S!yyoJJwk@Q z+D|i{$xAQ5=lR$T{ft5WPG3R6Zs}2YM$E%tbB7@6Wim!nt9REO-E4eJfHxZiE%dEGr;9V1! zv&*bU5#d_Xk@pv5*_A)M*HMj9(D0*JdPyrDh$g{_CM@{6~75z%RcrK1EEZC9qh~RSeJmq(aGVpo`m%yW_OqK549m(C7ahhHEQ6mgVm0@SzQXf|lid$J9R~Cw654+rp z2CobpfI|tpV{rXz*T-Ha?8v2|IQCUx$Cb*sBnBuM)8Wa*Qf;TCay@JpR{);?JjLw5Jls~T*M{k+Hyl?LirZ2jR}qR^Sszyxikn>@R~(9a zy*{q4xoqP>u*l8BjZ|Ba@Q_*`w>}iNu0F0@#>w{==Bv^H7tFD6v59fXfVCBlu(pvE zBeh$bKwB61@4AJp=XsUX*{h_m71qS0t{1P8SGzV?B|nFj42YlHL{W#NldbHX+X@Td z-w^4R*Ta}2s^V(MahvOZWbFWp%Uue0dm%2jECzc;h|4YEj}Vtz#2@usF6OubFX`C4 zGi2O|SRa$aLIWucpf-#AoqATpz$=s0$MvBT43Hx_RM6^ubUku3PN_x;4SOXggMRq_ z&Q$8WEGj7;H*JuV*f>~DkBrF4q$jTLlU$%mz8l^gKXa;1$$5tl7}|anXOkT+wTI;j zP+}+~95|$cV&S1e++|FhtY}aB93kPaL+fve{Ln8PL$6@@3ZJEWK{EiqY!KXYrB({p z*AI$B?zuS-9zfrC?h6Cp7f(L6;>uIx*%n!l!&wLg3{MXn5&}cf==a4Chp>9lTm_LX z0Qpaxm)vIEcwDErah(!DgJQi|H28$u)8CCX>(W9`oM7m*(Qa$tYf&*8f5B8=9f~es z$f2X=Rl*Ut;sjeCs#C@73Z`D_IXlhDcWKo@zYqG&Ilw4%Hl)t10Xx78^OXN|0f!KW zl=4kp1F@TSzdcO9qsMHb0ck16Cm}DMdU3?;_Neagq_{cOEIur85Dk{7IR(x>K93Va zjPo9#1z`ks4Ktg*YI;X_)w`JJ%Kb#971v`P4z&{fi_xANKZ{_u2H}D{xVhyGv{z!Z z^;?q&ZT)7h2)_30Q`=2wvNn7(F59ZZtGALQ0GP%p)%7VAxG}dDffFuuQOSB_rMSM{ z%kQs<_3^;7ZoqonGul;^HLj|>zA9KMG~Ay`>Qm}sE^4GO)JV^|m~bP7^^Nf0Sx|*W zEz}b%+AzGJvb<<%+{OrB!;#;rjSmOOvP$rpSEDA7#SS|ex_N|$e}(D!+}L$c}R}T zae<%#2nf1p`j9?pF=$TZE7}aNn`VsYlR~9MeWGqhWte9$QXE7gfYekT@IXIp{J^4A z+20wDES#cg02`tNFEl$i%*FLPhdq4J7Do4BdY*Z!HyU`#*dK)uA`5RMLN7zu--57@ zgb-zL!7ne40V({~Ldn$CL+i`LAOtQ}os*7E)Y53l&cs9sw}}b?aDOZ4gFwO!)%k(H z2{#h@GyE91hdZec^V$xMUF|=u1k+deA8_hl#j6P~sE~S?)sA5~yxGas$>V~v68KQQ z#HC}?`leIvte#o)*t@;bK_Ma9R*os@bpNuX^oW5dQ+_0i1`YLP77W2h4LTMDDKR^Z zFkLT0gzPj|BQ6@@8ier(S0Ri=_!&Ze>M!DDUxE{qn*Z_DIQo@zBhUy_)6)5DPQ-vX zrnne-?NB0&Kip7DVqjUJaEK)QD&MBpq=NRtTOd@jP=%wT3Un|d`@3k|@Qx`3uGx9Y zBk_@n>U6n15s{c!XWo&WAANwsbr<{uj@=py5tcI#S5&tGwq>iGEm^w*iRP!PoxIJX z)@Yw67Or-}xwgI~&tfvy?zh|xazU}z$;U#j>+mV1AY9qWQ$T6#^*y|?sLa!#vULrb z+|;N^D7!lIVyw!7XVh?AE6&JkO2;+cIMfAoXD2_v$4!2Ac{tO0{#nr3ag{e7nSf$p zxJGWP@8h^_&IVwC7KR(#x}iQ-^#(Z-c7vch&OE&S#tr_u#JVx%@f!Z21y*-&g7ilU z*2eDu?wUJKV{h_;JTQKAb_V3V);Ir7#y9rW2Wj|nJ&gu-?dvLlHu;gg-#htNr&~eh_ZB7_pqp;vJBe>_B4cy*_CL$P@yS`a&mI zQ@Lk(sk*@FFR*qE-Zyv$Vax~Wa7nl)a*pu2`U8;xng%4rg-Y|B2umX|0>mXJG7IA# zhXuk!Op4pPIdCF2mw)4s$2!mjbA|oeDM>Y^4=j&cax;=OE3j&3eW~U-I6AV|UTZS> ziosmICPKRhY9|25YnSR12WrlVm;yF$fb(Z$0gJ@mmiYn*l!$pK45Y+Jxg7)Rn3Zr? zmJmqb^>I5Gd%Atb)y+CdH_nbmUYs>)$bYEK|KdEuKMekTz5kp`ITd_pqrW^2VcI^tQx$VE zk;Q2k`jd%Nd9sDC;O9gf0om38v*t22#?U#cqVnKk4}GlP$`JPLP#+f<#G2ON#u-@AE>b6pOX~%*e*Ez#jX|SZ19WZ~9MX z#-jQ&JF+_TRMF_K^SDW-JxJ z#>azcw~D=8_7ivP?^5w0e^WPT4%8VJ9`Zjy`mH^)6RSXB*qe8Fe^qNFOz^F>f7*L5NW5ACF zZxX;(noj-X|7(kLyis$rXA*tUDyTI^$bOhlVX2Rz?V#t6_%oX@Sg|bmfMJdV3`!@` zGlx$pqA!p5vo7Dv=%Yy(Ucy*JVtW1%hRmb>ETxV*9rf$Vmf$@{{Y@3+G(A@fL;Wqm zHMRb`6>Zb!%$%4nPf+tFEAW{@xyStjkUHwP|4WxzwvzsQ+HXdUnl5wItqjgO?Z;{_ z`IyS;{NtL;!ZWBq6ll5tVVJ#$G3!>+Eob~UYap7m#_MQ_lfXZ>$0zmoQgKM%oezxZ$0=4}OorkQ)Dt9dUr2SmXozxZ1zi9bcN zZX^Z=T`z%J)d@Ow&fi0MlRBLDKdH>2chCD50qz06`ma%y6B8%v{Sqf?K4`KvC=yf@ zeU3}{ndZ6mzZu0&IG3{hX<3_5g_`U!RS=ufwJ^F4b2YFJyOUK84r z4*hv^@_UN*6@Bf|uTmCMVub#bTD5{kMCg;6PG1j<_qw5$4(>yHQv*6g@<{P|9vtiz zslTtN>nmt~lwKP1ll>5QtagmXMeE5Ah9aW1V@gbHG)o{t!jZfD>;I5jGq z8YNRB8*&p&_w)S||b*&BtisFwrT;1_1J6fCtI2 zG8DKTlMtg#b72Vin{FB@^0}ZqW=3j1(dv<6X!i7ENxpeu;7syzQlla>UK4jJ$EZ)d zo`<08DB)LYrqKPPM57A;TLCpoJ|HKV)%aSuAzk8Vb}nR-)YA01oTyz8X9<1#Ob^U-6O z`d!LGYMZ5}VfWdUsi#6!;odC0S*DxojrCY>Mmx1%6iXoN(yZL+J0KPsc})V>j&^0~ZlqW}l9-8%wELd8)W2+Tha}jA zPD_dc#Diuinqyf>kqkSjFWcXR2ss^$I7|G8aKOSD89C63>~DSHsK;4)Q{D%?G7IGI zGA=zwVNH%XQX5#dQN>E%;JxL?IiL~WE#l4-zqqMdjzL8=2$}1zRH0(kyZWhxuWj$=yW>;oqy>Df16KW^jjc5^VG{L_~M zz3?jNm9}wofn_lGTCOdfD+|KEep7DkL1`{eI5iKg=^HI=KgU`ZL#8m zF->@DznL#0xgETv0=5nU9qtNR$Hs;JfYwO$H?9%qXR9g=o*~$Z3zhJOh3XmA@lFpE z^3LKA6URtn^B0Asv?NJy9#y3H6tHVBVc3zRi-KuiC0e2chk2?jMf)3Ulw^I@PH0yw zkugfaP6*Ql3u10!qnkmtn%l@eFAAN^K`v8mjPkh{BJB$&ZXZf&Mk?AuJR-#C%d>*p z^dCklDKaknRJsE>%l6UZk3}0aBwHVmvjemTujpu>MloEB;SL`7ha~@KWmYz|6x5?B z$lR`A%fF`ND)enL{h8#6E*M^i2N-2WD75>5l=mpYtG}S!OD!vtv*<5Pb(3E4>ZI%p zHudQ*DqxyQbM()Y8T3F4{jqL4T|QM#8v7K-Da?#y34=VofadSAM?*#3_1DOZ9@+?s z^Xo@Y>p8!!D_TDvuHb!9s7ghuxt7`+dPYR~^la0q-AR27y`|Eho;UR8J6x1=+$N{? zH=ZyY@-|}qYA3N2AfSZQ(kdJqO}l-`zKAHGChn1feT2S1Q7VIKOMQ=W(I9|vv6Ww}q%0t1y?exhmWqdH|3VoguY~5PlrzDI{;u+8IdU(9GY2T-jT1rpA5( zLXIWNV^tdb@dkZ~5_JAmAE7AwY19LHwlXVN_JCfYxcBp(PwjiUQ-Z@E(r2kO?I!(- z_-Tw$a7v|s9$}iQZ_@vTr;G>OtPjG&#vk7d%zGjD!_E4l2-l3HSa@t0=*ptScVhE- zj=sE8@2k#8qQ{Hcv<}|bPw(vV%u!A3^Z^c+eUq>uDTSFM;7i(Wv%*>c`$$2hdT!H)*% zHz+~<@A@|`<=x=feEkju;jNG9Ya`QV0bt&V9ZYN;;L$PR>BF@B!8Xt8A3LMpPGW@; zO!V7y;(6Vt%%&zo_4#V~B3e5XT*cBQ)N`1ApJxl-#crY5!}Qs{no*VgyawKhUP;$>GOM=X=T!c!l=92rAe7e3+ z|GP4d78L5YtHpKX8LkT@f6_gDZ{@GP_w;Q-_dL*7qgliCCzQRE_M+aVYsJ2X590Bc z{T`lKh~MVVqdeLe6#^$56HS?Fy^L3}kA}Ud-xMP=%{}4PPDRkBX|6P?Zg04PM_<&J z#|v5;VXE4IOm75xr2-=bXJR<#E9S~25xDRjAVpryDgZwm3M5Ivv@p@d#a1NXv74yse9uP8FVQ;Rrk2b)Zvp0$3 zXzY0XPbmu_T?mrKc6d4@x@|s!g)We7u@EdMG-*Omlf?J zX@T-3RZP=6G%c!Sz!=F{^a4_eYgltVBH?Z4PD+@rw{puXcp5bO)(p}I zLu5&>OgtS*#C~BVp7~Oq;<(znP$GCKD{)@J7hp&nvgjF3rS)&?KNsv{At)9*5EnpH zVp2zXZ0k1FJid z#}yKf&;-kwg1XOMC6l9F7;pJN)Jr^Kg^H~1f`tC*cl3VAM`LoNz#)|dohpl5b_RF8 zqYsJFr1&=qor*#dM7>mbxznJR=j*HE7l7TUPYL!b*Y{(Nf>$ll+p5@H9$kWE56)uO zhu{om1iuRE#fnl(_kVMr(u2^W8LpGUTL;|jf1j!i72c{_^tV3!%#*Eru4 z&>*HGB`b7)@&NN)8!ihioZ1hxX@!1AYVko{2RKWZH9uM_!fBT7qH(6%n^JUwW5D)e zjiAObgP5aY2N}0gzg@X((;SzX23t%^APU-DVA1X;(TQVoEUUbS@w;vg#jnz{;1b}6V7V}~1)b(tVJk&}cjZkX6Dyl7!f;uv z)he;^RIyrbMlXG;d*f$HCJ$vs?DJ@oXu+p?M|ISmV9lrcLZ!utw{Yt&Rb&~Q;ZvpL zS$PJv;q^ePHu_|>KE;KtIGx&kuIJL|HTpKSR-wCB>DhE)qn<^jYxS|fqIT=_=Uf#@ zu^yUVp?hiLI{p5HnmzJ8(i{&&b!PP*>b_pD#dh5KbN&7Jx;I#qk4;tWVOH#+y`Sq> zsY~}zyA6Om?+g7fK7#nj1BM14|56{KG;FmmYU%rxzD0c_nG&Z1l3ttiGT`pfP5RZ! zr_{DmZ{6ZkmoL@2o{iQ%b>*b`QfwKRCE>(1@(dbQsW*oVY-**R!PVFHQgU!cfPigh zrQQJ-EQy=-zon0ziHjuA%5*1)XcM5Myowk*lZrP3yvpFeH-m#wex!r{*7McPDh=$C zlu1v1tzSrcAv4`AB|3b6$xgcPCs%upMt-CJLw!4nbEXAjzlFE}EA3C;>CviE5xk>H z|5(L}OWdYsIn}u*sO?Vu71wA_teb{D8q+lR%}zZ^;rLyutS-yX7pIMOKIe zcFnd=0mXszcJnqmvRluBFE?&JgNFW~M^ft_bV?jMwoz^4$I>@H=&k&}U!A-i!dY+g zwqT1rU=4FF%~}i-du~}~<%}!#>JKZfYFDgE1+{txeYsyxp&_Sq7u~&IPeVewlZHPU zlM;q2mZt63@5uRbjpPx0kdE=Gy9_iFf<#EmcG6kYL0;S2#^ZUI*)b0e)~J88LbTfaFWsuJ)rk;{-ELt^qg+MgE(9P?xJG{ z^ee;U153yzA29OVMPpNLuO}aT_-FC~MsFX@h|Od2K~rkL%JEWlRpVNR3V z*ER<$Yryly?#RWF91arz;WpeG=s(84y*L81+6h-}s`=Jp>Uv0jfzc4dl}+Cs(nnzd z4LYnZQWJPT;3JgBEXOc!4z@U|w`FGewpyGrUI@NWt4FEvg^MF3onbDZXfaJZu6I*k z-A9{`>uKtWHFWT}o}*Tcr}z{4-LV)qdDrGNUpYokpV0m4nYV*ePUy`P2!@xP)OUcd zDLJM8p#HoiIP_=z4MlwqBFs8H1FNQ0oqo4OW1zQ>-aDiJ8K)oTS^cvNQsn@^FMTvN z$U`3f@f}8l4o^4AtkMA(tgJ4SuE=H}Nj1xr|wg zz_uhwGYfBic{@T5{cQjUZors6;xDra`-9uuhD-4rKkhcMF!yWfe8YWY_>4Lz+Ti2(sA%IMWfN>CzJm8 zJ@Yds#U-Gsf+j{n3}!@S#eyN)CMt|K+T)C|Fy6Q+?wd6#BMmOwqs;9TlVDsPxd}Ti zK${Tkm0-N8s+$zrtQkEiG08~rAT7#Fr{S8B9_*Q9e53@>I?mcw<>}g<2mljp0rSDa zdSDhUq-80_<;o^Hl49giQHtS@|K0R^GPp~>TT2c-8gE3=*d|6K>Z2ycUl5#aV!Ri* z`Aw%bQuV?ATT1KZ^hK%>t!~7}pYSkhZK{zb_VEp)WXmybSfh$o3BedIX52sH{M!;b z0*bbe+NK%HTkQInE6ZW4l05a1cvW%Wa?x#qc4|wU*TwPUt8`5>Bbx&0#@`dxDqvJ1 zv=xe#flAYjuOs(PmQ}c@;-IH#@LW?PMTxQm3CKwYvW->rOqS6uvg(iW)kf~TG)pAf zgtueVl-}GpqMV03$`})IY=g>R)5?RMW`ri2&{tmLLXy?23jlI|oW0`Ql>1^_li*38 z(L!}?L~nSUno<|P(O)@9dWi{YLE8v?h=!} zFd9c%*$6TWdC9DL|J(Q7ub?_aG6=ZcL;?<1LB%kBQ8UgeA{+J zJYvVtJ(nB3(muoj==pSlH2s zQI)eay0g(XTpiyfaCKlWxH{V0*(eStI&nJSM7}rR#AmxSNQ6|UAt2Pet5J;Jm3Nh$ zyl_p@->6MD<1Ive(amUzpr)HK%6B#zz-(%Lqf(A{_x zxs@xqP_X%x#zLhfx(7ZBo#zs8HeC-e5;D9Iz)wy>C(mAG)G8R=L)REZ&AAv}o^;8P zLzB1>l4axU{*3Qo+=!-j_Ar{Esq;OIjY^Xb<)zQXId_>x=P(o=*_f<}bqO#s7ejGP zPh+*(>_gls_}tdCIdDhZW0)+%6qjet*UMPxLi4+C;1LU+zQK6EzNhX#Y~zcYjMr3U zEZupl(Wb)~T(DYLgXQY+LQJR0D2y#*Q;yq<$9Oo3FU4>{0<2nmt8p_1O6_A@4IuLR z7`|xqqe*(Cw+Ym>+xIj6Ol$fW0-a;5lp`OH)5eE%u8)z25?A*%QW4zQ*SI#lK^|*_ zL+G@iuW?<&RBP^{?D3Dk&6xH3sbAb?bpPGdVAI=;C?~ov`Wch$T+x?|8Ex%n+-|2v zU7C9BUB)$+riNgja+fjJPHiw7u{P`j`y1VUH#NAhKcLgTPr`UI)9k=ztZLuWhP#c{ zncI`n-Pm$mQqc}_pL*=2#Cwdp!mAHjiw$usSa6Rqp&mgRECrhsT#STQ-e>Grlrz*~ zpfNaoCSS+1GX_3sK;4W5jMx^|(R%}p&WUFL5Wfk5EuOE^uz4LDXk;ieDP|C`V_Y8E?C`D%vnA{G0LTL_XWb;B1T0i}1#o zIMg2en{f@;x*<;+X_WV{F)$*Zbtmgo`aIwG6CHclc-kXlDrn4L<3I{pD}b@zL6tgk8K3|v-uMC zrTNA`Q9O6Bu^Pdt!C;Lggg3L;n*mB~08kDrPD3DVdd#?j8CP_;NTsI3jGL+d5F^7H zf@+0E4l`QPj3I`=4bA66jOze?!sDQ$n`r3c#uf|WM*wBT6JcQE#z1i|!Yss~C@_8N z`J~ap_Zsv{%@UYM#F;ye^JtXeyd9o{?`FE_(Wi_K^wE<>x-yThdd6rw=_zA?>~B(i zKFrl4Ps#p%@RadS3&wIMjU9}M>+!TP&MTY2oB$OrX(rzMZYCXj8iaXX5DiRMV#hGO zg?DoaX3am10ZM+b=d(ts(!6$AR-!76!?1?Oct1KT%I?eoU7$o==B#ywdLbB7KgGWX2SsCuZ; z5!q9RNpyL6nDHq9y#58_9z_-dpD!B;9S3AFoEKIU7+0X!i2`GUy5l$vEi~>@z7Bp< z2o@t{3d~)A_!@gs!e0!PHieqJXx!Jlf@f$c9^#0HnvtC?!Yo2Wf;Uc^5*+`c0S&da zl=F%)Ls>zqU#VYrarU~q@l~T8xR~c(H5PT_^(LKZV#u6BO|YtYxPR4d&Ey?Af{&2U zk>{m|^m?{O8)E_Bu~sXw>Q$tuSgaBaKcr zMwh6xvII+b;G2evnocz0;_A?CuA~mrm`~*+F_xPs?logU6APA#OJTV@u8dIxg~~Bn z`IJ0L!Zm7?@xFy`)xft9S~GAB(3uGVk19!m-PKo1;E`arhamLfi6sj0!1R7H^Ido^n8CRjMyb|L+YV$&a z{+2=dkx%o-OY-p48^&CahwX0~SJHhG49%ty83`eJC7T4jDw%+@^d|azf{|}gz#%kl z6zD+${0_uG^8tgxrWKp0c%o5>b_Y!|J_IdzVXDy&id&BnPDB#aoHVp=&v%%7Nr06S zIoAM~$rs@JfF5`g+kZZ-dPCAM0C`ggzC;T?CSM^4@0ctp>WIl0-+Zc_Z1e@4GN%~5 z0QSf!#=}fsKbVM3AmJ?|XbpUgn})w`Tu<{Rfy-_PY!`}~W<=SDP$fDxdx_ z4FZn*;EriVk{Visa<)Q?Py&WU7(D|rmQ9p5!x+em@a-AKD_DdrXM#0KUhK5)Wvu-f zYff8CBi}aKW@8P;o27WQBtk9?oASj2^{^~P%`z^JD|GRw!$mg0%cl*qjDhJ53Zz=N zS6=|zS`eAuQLu0ye;0_hf=0euzi=b$g{#e$3%AE?W0AE{o}O)t#f-z2y@sy(04wO5 zGUExX!g!__5&+P0tipJvbQfHR53Rx){=h1H{5{$KviBtIN`2qBhu0)3T(3~cr!F5@%P8Jlk7X1g$#y*N6!l#J*;eQ9GNN1N;J7n^dd)R_4UymO@3V8Qt#Gcj z70zRFNyUpK8Xa3?q0u#qjf@6pB%uYOe>q>G(S`YtH|5hq<;ERAqvhqswaTVR3*>H> zzrc7pW`e51=8APsVyVwuBdy_nTo1(M)O(>3i+b){C?VOn@PC6uQ1N0T8ptzcu>?n5 zV%%zh(~(9jF%pnMOF}^Pr0YL4{;FJ{4?Z+X5L_EXPnOU>gYrvT3el1L>Ow=8Vk9om zj-^HqWgRv9$nb*P)K6fD+{hu>PW?aP5ebg^$XI}Dh-Gy3aw8iw3w#+y&(&FC2H^ z)ez}LA1t;uK|XH)F&8eua1)&qW95RkD}Gx9q7|DF&zI63$i=_|%PROaBCng>Pl8MK zutR0+Qf!OFb{pV`ts0_QI~*`?bo*4CG<;5$sClF5wQKaQTEs9^X%@ub?1c*M$eMK2 z*_OJVad(Nw4HJ$}@`@B&H$8sTnG(&%0az?DZP@gjXi1+hi-=QAFI`w`Jc%wpxz3=t z8JnePiVF2Xa~7qoH+CjiQ8|&F>`2$=#uZrpfUye|tTWouqn~5Pz^HC8CQ$Bq;i83K z7|k!LY3CQl3zz}q`BsU1Q#A{2i}QGC(0=e{0|RX$g8er_UaVBmyr$3l$akti+VhohU+a*UTYkya!IelR`SQnG`Ng9G!D9u*rA zLxcAiscaq!$H(Aaz^89Q8)X&r-X^1+x;lzxd<7_uZ8CB|JyI%-s`wCUbU`6t#@R}v z_~N*d&Bh7zdGx=H3ZTi&UmHuUuYc08Z;Z+Ko&K%yw=j-L&{5OaZ;dA|iA?y;*rqHA z9{LXZ5{9Tll@Z|Z?yW|=;##7lN71T1#=Z2#_lTcB*Y7o&$A@M~);o*5+aLs561;mG zP6o&_W;-*hRI}Z9;bO3#+F{%Yc)!?T^uIVMcP9v1K0UqDm}3S1q&IgNS6u?`zFoiF zhbHuVwec7#KU58|X@2ng-LfC#++!?5?20``(eHzwLPdKad0P^kzt`yPM83KM#%r#f zN$Ie&-fdh)@1?2?SucZ-A^6x|}$bwm1r^c!nN0ii6G> z8hzBbGHp*-Xa-J4$~qvm(mtVGM{!0uLv=@uZ{p5Cqc9`~dnmZI)@Y@~e!^xOP{l;% zGo&3ix+C*VR#0@@xY~I}xsJXX1x|4xi)5TJMq=QCZ=W>=tH_mf-uV8~T<6Xk zw=2p+)aQcHx&uITL)eS)!q9r8;7vwJxub>+p0C+8M6tLCw|5xNc^3fuCsca@V!1OD z<3%3+_7OSw`=n@zzf(m3f7gn;06{ZFGy_0aDPk+nXquCAP@Yp{BDlvX`r|Pkh@(M3 zVUoxozy=oJXlH^OoB|#{en|2qrn4xQ38f0%ho{}5b-TSu>7IsilloEf^oUZ@p?wcw zN_`|%x;((IFYATm($@m@v^cv_;|eV zE6#r?E-KybX+j$#lQZbblee{?pAyAvbyy~Cek%?#X_vNuK28!ZrKCVs4O2^N5Lnq4 zgFsg&i*&aX_0ZkPVvNP99!?g6=r1Xvi87c5Jsx!h9bKU$(kCh6S+#Hmb#5ZARu0fJ zO$0P84pKtrJ7xs?rHX46_hc95ffmf}nNHpxd%Ef4G*P5h%%NjH-`1Q?-ImnHSvWC+ z7Tg|@Nx4&QZ%)V3g*TNQ$Lw3~yvV#RC^E$DN@U343cZ*q3gytiq9HO%WQTrVmL-EKKeLEWUD`XPv7T=8`Q#Rx+O=#$uB7t!KJ`geg6A-k`FS6nrH%cyDbV=&x zQ}Yy`r8HgT7;4sjPq*me^7!|oKuqGyqHojLrw_fZgGlwKk94v355^}xUGv8OPvgUH zMPYnc4dOqI55M`Of+kY75CLm^8c&ilH0DEm@#%>S1nlL0XOe)V4JV1l3vog%-a;b+ zB3G^cjy?*A!SN@9md+P!Jj`=J>ey0vFDqBmVdC1_VLLg4I-AC{%>zrUizbx{T8gvE z%faU^!_fU9ym9{#6)+D&tnFtZ)}{G#bF@c&>ASs&9SO+a{|Xs^>e3EUZ5wf;g-ZXoV1%X}OHJyEvQs5%sqx*+MYCdq*j!p2H%0(2Ls-5_e{zace@xoO6(|->4{vC{0Bo83G9sgFJ`VGgi3m>wE{h0CV2(^ z-mt-7Pa#)(k*FM`)b`?0wdgRt++O%oeq+{Mq_h_)$hf(^xYN1xAhbr_hf}a?JBVA< z!eqkZdrj%4Hh`vlawem+Qyh6O94*&lV%=BSLp(!??0IUI^gXoUV!mo{v^*PPsJNcU37j2&0 zNkyGSCotE$yNVu4$)qmm;OJQTXE)K5p6DW$axYtVMK51UrbS&vo5nd2iJWpMZs{)m zu9hC4Iq%&*ny$N2q-4JA^2GviEkg(Mu=NyF0BC)Jp1e}zKw*(q&4Wr|w$LonuAF;G$F z(xcZ2)_1+Pm(Zi;k5KbQYUZ-TG^&@lx#gyrN!Sg*jYGu)ydEouf}XW@T*Fcn)<5C= zpT?MzNVy)TfYa3TdT~SCxqq{xEhz!mGlnK#FYfpC&B9H>>xsUEbi5-jt&2>Vs~mTF z5EM*3OqspG&z914y+w1V*ge==u*%2i-lA3JTdW76&CLOC4kzgzxDYDiqll(WrOmxX z;mxOCg_WSg+=fRz=R`~OeWz4wcbaef3^jGHOj%>6ux0=>;`3f$pHyB=`hl`Q$psu+ z$I`Svi7Nuvvz-jnr|Wsb%%!ls1U1Jmex~V_L`l}+y8U`O`zO&Ql3P9+ZN5X@ZV>-c zKBmPth-a0LgKcia0Z3UDeB~zLR`5OQX3-np^vx~eLczyQZvwkmNsu?c62yfu=Hlf} z2uy7Fr0)^)r42Bc=^-90#DnO@wSC23)Z%|rSzj?1 z&Z+y|CUnSqhu$W-tMgPEFw~b5+;$trqt|SH>THN?W?872+Axrx%|bJURx_W3lKIh) z>usASIsDoNntX@2Auy$sEkZFFpH?M$V;M8=_r_Y5>aph1Pf-=FtdJOty;DGS`{YaT zg<~PWciHGdaQ;2uQk;WxT(oL=!u=?Zob~|Et&{9g9)H!(vOSoImzjw!m_r#xCH@ zB{b~;;f*_FPXbTkQQGi;@Ws!!XN)KD!STdMCWLsKGS6xQL#A zNDTS^dLHnm^TosdU(5rRXTxa-Vj3dU0%*>|hn93A=5+_ufc6QqU@8tfkf^Z)8^$Bh zO2KKGb4o`l4f2^GDYGhF!toi>Ep5%f(KyX>Q$cG`2~ZX{oz^ZDnddZL{T80$*!P=a zlKTD-YtQ_Sb`AjpLc!*bi)@&K(v?q$g>3%ugb*&+ zsyJ!%;%hUg=?Nu*x;-ggK~moq&aB|JC&eyBSx%2XBeK+GQB-~=v8j3jmWpQ*18Q{< z-G5_(An)14fSpHKMq{3VknIG`c}8^P9KM?px~s*L$@@={*gwVI zc=pF|j34-b$ggffaL}{Dt0?=Z?>VQgE`5y_Jl4ZU*KCf6^Yw%3Xq5Jy(}!__ekvw} zJ?^4Z?XL$MW{h@cuB#8eQD4g zuZgSUjzmC$0rf`}QIl!bLk*+&*8+Dz8W{hENbT1T zioDy4TrA47@X;B<$B-P)5fcEQ7x{HtwAG@|+=UPA-_DrFE&Q*jriyh*53v)R7U-N= zG>;M|;GD4M4I$!MDas45Dg6^X^;+@Skn>ZU3F2C#pU;hH@Bw7i#M9Eal2Gyr@*JA9 z3SnA)Xm$h)*;cL;9h)9gQ9Og=PIf-jiu+zC6h+%8Ezs+=TzPB-lD+fEeK zxcE<)B${+xq4*-fE=OV`hixEq!Qlp5IudBuY-HnR*OhUz_f8Vs(i^tus&7#Xx7Y$A zu9K6*ICMq{cLoMM=*&g6ep11;&UsH<`TMoDpDGL*@qBb5!9`t!&&L{saD^?!@i?N& zlYXT6${J|YD|G4~!xkAv?>7tMFT=2+r$XPJy7xy5xaSz5y41R2u=;$7^1{PGb^DWW6(frqU zCN_hos(${XY2aI;nG?Ry>ArVFMw0Ys(E_(2wnvNDCYJw=7JOlXObgx-ovcj02APs% zCTg|Zb)eEs{P=n~krE&uOe^M#Qz+D1x`1PpWTPLKSp74Yi^ zas@OVim`vVX04%UdP#Gz4r85MUZs&Rj!Dk>?{SQA6zG*n&E|yT%w260WgUu#3W{+P$6X%H_#_HzzqD9txmXN>-LEGz+gwka$ohCh?#7bCOkoRNZ z11eO`7cZ*MWm@DRzZ|>|(dcq<;hKw(+Wh9nkRzBdnbv;4kz}qg+(^Pgah1KW`Yyb* z3k?=$*+TI&I^JxNxblyXIQCE8>|psKk>ylA4}STfcv|&rjKV-i*OS9A-5dLnSQs6i zir>i*8=SffW74SSpyB3(|EcF%ea~YW&}^PCJ2wSXxMjc!<3k9)JA5Mgg$4$BET=Xh7d*UCFrE1H6VcLg3e$iDu#=w_ z4G4gbdaV$>Zs`Xfx#vFfXh&6_{dOd3VAeFe&ou!R zst{K}0{mKq=v0uv%trBX=7b<*?G+;}!9w3LGPU%*j7F)UZ!5KOdE?a3x0PD7xN&Oe zJEjSm!@-9hStYu}Zx6kz$y}d7RvxO`q=V8gOo-erSJ@5mr=}@ z=KNl^MzzhY&xXA){84~bk2GxPXB!?ijgvNUR*+_o(YnmWV`P6@sWl55k3#6%O0AgF zI8}c4Kr=BOm<*4;gr_YTo!&Pq24=Ym`*E#wge={py{F`QA$7~Aqc3FTP~X?vHyMEI z+d_6Bf}P*?h8|J?V!6UBOJ&Oe2@&_}8bq=GGX!1W1DLPJhbx#X{0i`&TzTZxUIOtm zD`~h0q&TZbrc>hGeKW5eDbWZn7aeBB-qeeE@yflafcvEgC4%8DRxJm#m?+D@Lb3Hl z=d2d(n6ivpC$gJ@$|~mMvkoTm@EL;>H`Lqkny4}q%AAzCMl^%gpUR4&ud@YrNKq6r zCzTaNZ(SogUk=q!>86D}*F4LA3bFX+xU{#}4_l~YNJCMU+)f{@5p6G%1u+QRY>r2R z{=c*oRHPm$d?6~#R0BTfkS4Ch`FS4QwpQ#`zNTFd2U6*Vb>d5B(XP}<(PmaZgp3~; zNZVC1jQDt%N)B8yOl1dnn0|^@U6v#1a#$8yN4Zj{$HD>_dZIimm>F8V9{1uQJq+dx zHWsrazng=-T0n9M2^CKyY#?#<*3vnUr_#yl`R0l_EWBFA_BBW-L^NzP6mzXLF1F7p zj*OJ5^-H7`U&s~J1nU3^l!7pXl@I}pMq@q~SqbNZs&<;?8;p(GYZUxkT-7X{eY(wq ztj_Xg>@-98#~{z5q%XvkX+S6mL>QF!XS+}nm2VVXXzCY2r+*v}u}uLxcS@_kIR>H^ zpHy+ekqi|T?V>|pV24>maT`Q&_{3+m@zY&_Y+AbkBKwzU{zh>F<$ftT_JBbV9RC5c zaOcF2XUL}qnxn3e3Lh69Rbz?LFs8gf5;6ErmQI@|KA?BL#3k|)+VrKkG5*8{mf*BE zlHuYkuu%jq0^;6{;;JU0jt=C}eVG3Y(IiawtF_xm`$}}MLnGV9kt3Jl$dOd)`+3h~ z^rP+NNKqZ*?X*NCl9zYk?<{ZdYIIXZ8y`)n6fwNar&NjT zf=iZpqz{WWFCI@N`E97@X2G^o&ukV$5-!wP(ezI#B|XW-SQ{ z{9DY;UBZ=M$F`btT2z89P%JWGwce0axW5*?U?p_Z*AS{C%sw9$wyWm6^Yq>~U=j0a z{WlQdhDeeGWIJ8HOUuP<5p1#3V+%M@(9G3a#C0H1 z(N*GaAxc$LC7x2tPg>J#h1N7TsXTkhG*_Rc`?rebaa-3~n!eZ>%pEjptH{(=e+}v; z-QO%_x%@Y@WUKJIq3Vl`!naLa*~H0i?49Ncc>&s8;i45gsonP?BVo&VdC{QClHZ@F zy6;5`S+vY5iaRVWI%2a!D)VyDv74##cZxnbu=uPsu$+<3T9+6gON=ml;lvXL$_TV@ zvdZ`-hIdUgOKQ55trKYVHj#@FKeY{qysxSKcJbhKg|=P_ zxA}_o+X4E-ZN}A?&x8C$o5k@>tUfJkYL6P1TSwcriwr2w%coK#TnE3l`YZuEO7S~{ z7x>72!WkU)m~G>uxkKCsVl-oi2y{7hPWIoC3SRf9{Toj-n7huotkxWm{W4_DBsoK$ ztnq-SOfe;_z{e1648FHhT&{#k8OO~E{D&kT za6vu2x601l4Zbyg-Vyt*hsSmyefxvBDs!HN1(<4=X)g_IWiFG>Q|mn-?fG=e9?`2Y zC^Tb_*c`vU*1B!t7Ba_0cAdI-YfP-U^mCsr&8hfqIb*Z_fQ8mGyKZpwMxEzNW6uJ)`y{n_%=Oq7<3_@iVlmr;zLvgy9*PQpAL(rNQ(JM+}RXN z4BYRw?yht~+PaxGGB~~X`gSG_`$^<@LmM^L8zTsB=Ar$X;hPm)`ICrX@X(_YweFZj zH>}X28?Dw4PrI1=s~Vn$?E!4RA}J-Gy1<70no5H{>Y3rg56K_#23Gp=C56jhre^mA zTBO_A{-^z`>K6+@E3^PiT{`NLHr9_yqjASXlk~>?C{&$6;Gq&&_{QeX(o<@g>EoDM zY$_YAa|?|-1*O$rkBQjJS@eNK+)Z2iK`5ua{Y-Djq!#f9nAEF|GhwHvk4prnHKlgwQU1#G&0BDXV~SU?83x>LwRD7AuBJl%ST=(G{Ih5k zUaHKH&Z2QYi>biGcBi3x5yGi(${qCmY0<2}?1C53_;j(f(EcC%hX6mle4mc!4$SSj z%#W_1f%?TK3v8zmYM^_r%>SRbJO;So@&lK5HRU=3E}RNGIsE?%)}g4=D{Emg4!6T@=16`T0jK9jSZ-Z(wnN{ z0@tDV=DV&-rreM8_~141KwE3%;63j*Ms7nw;7?(*BMHT_)In~-WCtOWoy?kfm(*4_k0IGb&6)(V9+V?q!h~B}%@YOJyS6+; zl39r<*F%8Gf`K-UVwL@r$}g|nPoNiMOY}Zu>(c_aIeVa~x6%Szn|86l0?RDH3hj>)tXaYF>4A5YFjiQRbX{iP(}?a& z!q?AXQqYXPyd@AzkL~E2rd}Kqoomf^)sjm_xn{|4%y;oZYrcyY*3Wm@(o4!NU24rY zvj5S1*Uq=*8=;)^Rx#7{Si$zv~xB3E~ z)=$1&N%IzgRq&>W$uIvXJo(X73Jg#i#AuhT|MZe^uKM&hX1s8vHRFXV>u0=V%_U{a z)>t!+?0+=l)gSYW3#ejZ!hKhLeo0-GpEDfG!mn&sLz>N+`XQ-s=z>qdbmX<~olP+Y zdIz!53(rSqQ%56^o($KQp;+5FlO&oBwb`^TzKM1 zp#_K9r6>;iWY=xJf(WqOxUvOAXkjV00CHzFY=*e-!h)9>YQ8>0@|6~mf*>AzFkV+i zEWfb~aWdq%*2~0-*Nul@*jb`FU0I`{m3(v*a1H*@Yj^(&JQ=SIPU`^^~K#>)-z^9{qP;-Tl#FOr!sgJalR#W`0FKXg@z|Bv)GAOoH zAQ47=zG(8b3it}5c-!U-IdKdR?*;QYCUk)yRa03s$inne-Yu9oa1Jl4aPp55C{tj> zAP%&o>Ntx55jn!Efq;9YmklXmm$^V2aD&2;xOkvdtpZJza@y4@&>CJ61@X!ed55j*2YUQ!yD^AFy3qLC!`r_ffDRj7X zpgSI?VK7-~$MLwRH3f26hHsO&h-S{mlLojZkbS}>l6H~9<>kl&8Bw&vFBW@@J_vk8ql-z-AKD#S)$)NHRyAPqM3*(7ky+iG`fXeon(; zWGLlwl8drJfy-u8x)h6&7Gwn4Q;(S~qax%r!1^y5oHf>eVVyNDtNr>?Li){bY%Qgg zHuG3nPlVThcS+f*?`-C=@(;I`x{WsTxKT0_S6A=2q_)}}49Ve+An7iCM!eY5cyj>( zx0MzYY8ANNAB9OX{||d_0w-5h=KWVySM|PBC!M6TS5>xKn3zP_K}cUnhzpQ_C@LdS zQJFzUP{)mgYW5aU8W&DnX%vT6P#QrKMWqpic0rmEu@QyFjdlSV1qmSV|NfqHZ&mdY z1Ydk-{_kg^^u2ZOJ==4h^X%t2!(`04*?sqgL6oiL)IEbQ*Z=V|$?R<@lDw_mE4XgK zXCAKM7vFB@+uLU}g@Z{Q;?4t(pJ?7Y(0=h1dk5#Y{B%ZW4t&x39(Q_Ap>xN`-oc16 zU0tj&1P3tj|b-r{b2QLv@$yHCzoE&Jv!*`#h{+x9_L$1w+0X}MPJ z7w+1F0vVzHa!_!MRgb!E)yI0NeTH88orA6VM-L8elwNxMy5LQ+P+s!O=g)Kpb_J)l zj4Ca%l-#~d_Dc8NuHcE(@5uzeANJ0lg~5TzZ|~?hgaj4I+uZC!gI`yT5sOxJXCh7a|!BUZ_UlnO76k}2DmzHoy(YQ1&n{p*9b*WUgGDEQSbxgjWIZvKP< zB7zOUKB*s{>t44ZP!_&RHZbzLqU6d}!>?W4VK(xE4+{>?e(Q@h(Q2`mKX4y9EO58jF?ex^(bW7^>Z6F|IqK_|zvzw9R@pWF zNAgKchG%m4smNmotf0fEyE!io-e|DL?PWv#T9m5UihuJfZge9%=fC`7IL9qJe)QsC zRce;<(0P=NY!77N|MQO4mjy3N1|O`ogJ;80%j#5<{UE2$NwlJI92oZte@Xb1z2BX2 zc<`B--;a)jvM-{^d*KnmA*tSo&P1&3=xJp5{ z@223@_WEO+g5we0AKnx!n;YwLu!n&Zs$A{5NR@Lh+#I|}uIoSv75hXRyLY>Mne{j(;!Kv=-R|YTK zi}W!jrPb%t+W$(Ym+rvV{{4!-$ey_yUKRYZ;(T~5-&LFs8~KIv z;ajf`7A>0`DxkI0Ho1k1UK9La58?xixT*dtF7um+$X}uY^6*(SjKmTK{LpKHvyvwb z|IANO*-|oAWhoi=mXh6k<2C2Od#B*~@V(P8yYXLpW;g!p3bWh(hbd+I|6opy6rWf0 zsNH$thwiCnzxR0dJF9nmO09k4?o-DHFKiiJBStTCT`IiY{o;5GVSVn&;{&DeJ8(;I zB#YwwEm%=WhPNe9;`xR*1j}6K>w>x5Z+t`0l^VUzhEY3upN8S??+F&WYhD+uZv9C_ z)~xP3-Gi?S3e(lS*j@j6?9SG}Jon)1gE_txrMj~Q1|Rfr8ho$aW;S%jsa@>A&>}z&g3_`K|kxHwFt1 zh(Alx7N5=G)tSHZpNa6E=eM`vQZpU_n+!)K2|@?@+%<0umZth1HjuRSJzN3F(BI~` z3*HdCb?-@g8%F*n-1~m5H_1z1omO*p;}>sQ>R$V%pxzti7rL|F6lCi?>%bqn;Cm}N zV~GMCs3K7yyP8CC%bNma3eCJZD2NkdU^M6{d(5xhK5q_QS$0=hiC?%+y*W650wZq@ z_60B6PYiDMKBu$m=SZ{fepG&t1v4M@L#z&oa&P$8;JAf~i+XAb8uUM<;r`Th{TrsC zIQjr{IpGI4`kne$@I%Z0OS&?bkBE?;@#}WOgi-xC*Z)ZTmLK}^zNAq#vlP{6E{u;1 z`WPe8!pH!lvO*fQMz+bEJN49HZ`XWM(71=1j!q7hw_9zh=6hA-$~%0Fgth$@x9+5% zBm4O~;vk7ZeezXz!b$8&d8<47q~PCLpHYGQTUc*zb%(wsIKK5$QJ4cdRCwuQ?y9#0 zr<9*1{IfN04LbS!#cySzVmfVLyVQO8t-%@P&!Z|1`uAXM*=%p$-R!pgd+@I3$4&XN zk9p!N>$HaZ6+tEW&~ve4=#lC{`ebfx7<{ z55R<+))bN}I`SOQLdVGg`NDRbbuu(f`2n*B)^s#PGejEQ(NltdQHsEW-yW>h_3dvD zmbFG5vN4RF=|2DVVDSvv_D3vweTvgE+_r7OVQ%3&f`-X6vgbRPtUh)LmixNzq?F!%q&<=+|1btm4nqIph)6k#l07&0JU{L4Fod{J%Nh!i(eV`|&&LW>G> zwCdrGm%TGsOs2uAKsx+J70w&Y=sms9u%+mP$W39OJXK@Z_-R!ilfy8+IYv z8a)4ujFDg)dhZ!-?{@_!lyT7pc&Y1uS8!kq(s+9Qa8@wiwY)p1-#bRWK{a`4gnUD( zc=h^Ki3Y*hyJYLGvFE)>cmCPIl5#`V`lW8`yMvQwn~`B%A<5p(nsv~m&TV-_Hh1Am zGP66eTj>x(TmHyBIWvmk^ml9C6BODmxYc$tr>u`3zSX_%J;4rm>D>1QZ`m*AQ1jC;$e!A3W*HK^b3@x?}1?fn_XZq0@!%-EsX?}%pq>>FaG%4XnW zH@FA421{0dt>3$BZG7M8_X6B^Jwb*tM4_wDVjnQYfuF$(eBQ{D-6j7{FW*%P+T7#s z3)XJu<$`4U}5~7bs37u@_t@%H!GV$*F^+&L>;Hv zgU+VKJKR}kSDDAG$xGe0&JN!89Iok0&e59Q@v3uau(4;BkAv<1W0eHn|3@!@&+a*A zYJC1Voi6)t!I~M9f}IA>Alc55o9E@vsD#On^h_x}*3;>Ob@^U#B1mBbnHWX0EvFNL zb!SWt*6r?emz)RHw2*+l?#>&W_kOqf!@-TS zt(VGqmeeNxayOek61t)-Qo7TDA>_)8Ch|0duTN5oTP%9>}4+Pf`jE^y7CfO z_-h?DV#Fp4e)`n65smRDE_h$+?C-fFw+H*B&b!T>w>`KuxoyXB9}jLxw!l#MI2Hcp zQ%Uj(U;fEpFZb3@25ZaDRi{0FbNSJK4(rk4PX(utL;1o_1s5bQcll2TubS7B)QOZy zAAy?PrgP+ZNDI3e|=8+IK0Stbb#d&}o=0&d&!(a!~2QqAWsO4XiL zBZF*r%|-tixDruaqM`_Vy6j@P>pB))N2BYo?R%i3IQ~J7q+}HC#|%-l3mQdutTgLdO>kr?MN( zC8d)a5Dr!)Nb-VV$iBe|BA3y`FEp5^8)9jH^~%OP?CJLO%lid zX2w^NP=cT}ouVdltocj)Xt}K#tN`LIPERvN>U%dPE7Y9*6UTDV$zG{-ISzZfEGTxK zX|f$6dO94B?hzdG4epl9f{i6XGQ73LB!wQ`-_c@Ln_i6=(byyf0Q6zKi^`|^^y4p4 zWuMcR^#n!e%9oc#*Fk;s&AWzgxaj6Pzj_dEOU*3X`gkh%8I(eIQGc+wM1r)M9QL$x zK_NQMat{iP5F@%7S&Yu1vRo=i9oUsPZ2tt|Ar1ZjBvNHFy9KP_Q@&_qHIV`h$0y}- zU8%$JjWlBk$fF+qSv_RzB^hFb&hg;K^#OywSI^=>59>!f=%45d2K%$ty zC{KBLi2)M``dQ=k!g;d>C&OFL$Z(ixvJ?eotxQ~;@^}IF?@56ewkV9>%RvnYWVKAN z4u-4i{pj72A*R;*jH(?<=1P@%cUIRsrN6)bL5=$RjOrbz?rvXowNtuVdi*Sd!!xRP zdv(1%)%8y4?zKNpKBMlIYO+ckRR!LYV=~69P3i8LXFl`Zo>*1su}souAM|oG-rexS z4@U7Nr5cE4SNr~nS9+w{Z02UL_5_%o)`PZwBEkmuk&INJ#b+10(U?% z`U%wexikKWKbB&5Pb~(1^5PNy;ziXJcEdN;uv;%~$wCLfM@e}rSrLT>pZ=aar=-76 zhU}+)X!T5Y@_FexchmDW&+V{S1%{m_B^YHCvC!kLzjX7gV{)1D__N%X$Dbf9A#C5u z*;R^NkTY((3Z@TaJygSqHBkjZeG`5>}z+|0ej6u53Zm?uS(|*&HIKoH9i94jg0C2&?IgcQFa5=BzfMmcmWm`fS z(wNMC;fpaq3`w$q_ezOiq9F~Ux@#at%$FZ6Z^on1-k&aL2oca@0>gPwr~ElN??9tO z3QO=rTO_I=7#Eu6t9oWQ!iOf{M$V#|rJT&}iCEfw>7>m$_pZg8vu>Xk9?}LM$75*c z<*iA)vfLG(ZH(YPuZc~Oiik9k8UV-UewxRTvJczwG@N1GZn4`Q-5zVVeY)Lbw^%?0 zZ+*)qOJHud8_!K~zpve&qgw**_yXYUQ-eCGiuE*Sw`c1%Yq#sR5w%dppk&s$wO0hI z<<@|#V;Ej=bx?4N&d9XSZ(QHfkV~XU-y$*NoK#C<9@-hV=ce4(uLxE=f9RgbrfOvs zo33W9Ge{r`>hX$%bbxG+YyT38H8j|4RK9|4g z==tuh6F1k{Nle*?lkP?LajgBn+<(*z_l^@+t+?ntt7f`yeqhxScg&8>v)p|hnFa2G zbbhW|bM5BzzW1g)LeLV@nQ=9bD2eQjl(9HV_brs?6Q%psm1LB^*tTr#^ZQbHjZMB1 zNf18WSM*H}WXeBD7OZfuJL<|{xl%Hv;}hAs-dCLCK7D1-GNXr@s9InKZ?&}C!F@-~ zc5gmm#SE8u$I4}H$#Ll!?kt8dGlHRnGy3e+K%~+HU#IS z1m}Syg7dkq_3&c7dwd``@_>r$+l>+1WZ&)a4KA><_}iQG;;(u2)@j-@?(D0ASGy1Y zCqdYuLMg)1^@5yuc_>7{bc^7 zzG|U}YO-=gHRTuO%x!2*L^_!Vqnt?vDE8Ztk-rG~khR7uis*1hU0!69=#`@{@OaA}F8L?T(#A#p!feKj)FuOMM%%56C>Jtv(C=e*i|=Ifj1G-pI{ zRT&bt+k8#1xE`XAOC6Y4;nsA|%(?B?V6nW<-SVYiNjnM29!{3G60m;V@2?3?bbnZp z%w|*GSSz>PHkNG4op2>4Q7rpfffQj#cVeZ9NqwW&GoM<3g>)2(}KkIs5_Hwm@Yx%+;&=c2`%{I4w#AGmR0c9$sW z-a98oZ9O{^3S z@=F>p(AQ-Y0di#mR(u3{U^-+qo~*RPCvxDgO$U|A#?{{0Xg@~?^lA5Iw>nrVUyf4W z%ESY1_#466Mm1$8eJ*p!|2k}O3u){1jeqR+xi(n3aI}2VVJdqhwy1_&I|NgE9BOmz z?mgEAT?^`qiA4D4ADsQkM{d6Jn)?%H=jw?@4j)RKeO9jCwSRrZEcb_NgSj>B1i00H zGgyAnZ|c$|+8x7dqU=&fDQlol3dy7F;rS?Sds@0`DL1>Rz=5ms!evO5V#fOf;3|8y3@wFtWCnzMDa+tts2SnJvW;cO~|H2oIC51v0~;SkV$i|p~usl()i2s zuXtTe=asrLLFej92*yp(?>?^Kop%j?=cC{M$>)CwUD>V&ai)v`{doLxL!T63{OPXR z{S$ZVTB5FR>Me;{gj}g1{W$9i?{)r>KH-ZWOA$%SGhg6?Q{$>nAsnfq5RUd!c1Laga>lgo|S3$)zHFS?PZP05X3 zNXfOXg0Yr*g-s@iXJ_ejuFVIeXO?y|U(pD>YGy-zOe;ZBhAj!ij0} zeJJe-kAG!(T`r=Zrik?dzFaLxAxjU_SsS`{-r79tQ0qiD>RJp-7IC_;jAdL{4%r2O z>D)4}oiF#=n6Ogs(`W)LAeNOI|4rRo)&NHvkx8-oWv-UP?YxK*nI-ACt+PFgGn-W(w?J;p8;e=>qi9Du zssNa-O293_xZL_vVA-}Q5o@bL(rd%Mv2uUwO$nr5hYDkDIF;^N412d6*fB{HDemzU zfTti-MK#k2EpF}Dp)*TqR4L7y?0V`YxAbzCDPxmMiMFyt&xL_Wu^VGVCW+HhdPAg!-1A%akom@PP3kzuD}Q63|#!zuP>k_=4wePurw; z3c%`9Qsr8KmM#nBVl4}>Fa~$WV6dW9jgZniR{~mCM&sf%L5&chL30 zk`jjuCUS`!5%o3o;C5E`fJ;-*A*m+1@KnF_nrcvh*XWKyQh;-egO~gI%NlH-0Y~xi9DTcMYiN-`!3mq zr*W6+ZIME(kWMM3Mfx6h`nk(zEme)8R!WBN@B6ridfD@S?)#Fi^xZ=WOYFe_5Bj5* z+P?^0v*&}{?@YP}Gc!26@qr+-Y={Sg(aT}(hobut?je2#j}g~(V7fCo{o{_ zvm@2q;{NrPU|G$57ZR3mOE3>qa%<+TUvVfCrwEFsF8qF!1}jXI@D=s4VDifh!Fd7c z^a2R{v`d1G1R+&bpb-ID|8`B5dxA6CnhO$Q)FQkg)e8@w@ls04MDkXmnFA#7V zVssnMm`vR^n6Y(W#6Y`(UORH=0(VbG$J|m{u`<1oQRqyk=#1yKZP~-^I5oq_VeD*1 zOPG+s3^M{C)u4nzU5BFUaCGfssYq|zF6t~1RNaq&y_catD)w zU--i4lbl3g+O?_3wb&HItsqUWN_5vyHS+bU#27)^>pNr#T;{9lc3n3HdmP3DS!n<~ zp=-H}^|9O=ULtpE&+W9Gb%QTi-?10s_PX5UhAGgD!9VJ_`jsBY zC1GzHID0jV2D)x*p?PTn7@PAvr98>GC{OZoT5fi)9SS;Yy`$A_9ST;r|9d#s(vOn; ze4s9ST(0ILxic1?z_-aRqKOhd3FUH>^f*%`@;goBn#;%A={#Z2n8`$~SIdo6A1hW3 zd&V5MIqC+QMBciAl`lNgz3BVF+~$FceNIzV>mGb}dR|jpMS?t-=YBs}S>n*;L?N>+ zUtnC>T*J0PK1`pB>p1aBb1m>XTWHeJ%=Lx(ZMpobXkOdC8l_G1Vbd#No#@k|w{}^R zYZj}?@vBwzx|y>x_BAG{yEWWpt))z^VQXQ=<`VS*Y}p$H^BL0Qfe*)IaYB3q3wr2{PluWTPOgD?jUW9uSUMN5_&y5;9E-!})TPP4?uWswm&_1^ z&~F8iZOk5r4Rh{#cl0m&a^PdL7BEB2;ZxDSwj2k4X}W8`3ySjJE8L2sJ(*~ay=U=xFBGMC?~A*!d=89JJ;k7iY~*=haHe$r-@J%HGD>`2Z6t*Eaa@0u7h zE4DF{Yvg^MjhoY}o^UU}IhcK-j_}O$lMCneG+8mevlbf+IuWS@^##O4 zmAWHzoe`lc5cBA2=or<(M?yf4u9hGKImOV~qbuucBDyl>2wf=&x*iatE2GHfW*EBG zv3Q&E^^?)n7SFTAQ#>e(ZwY26o88{G5RyB`z2X)E(eHB?+!DMjDemUT584z2TA`t*TYS7RrSC5Lk0mMnj?kgG3C4w7QBGfk(5 zgXo<^2l)O)x3Q_G&dt6pcs-Z*-iGnM-tq8#MWeYA6vfVr#YKdU(ndP#!eAQ~tUdX%K|%+4slRFN~$wAI+pF%cvJ?Jd|g7 zD4S7l@<*=s=ELT_0;_ib4IL)NQ7R+Q9!Wt4N#3AyUwJZDd%ev*?THW)DNEY)9Fvs* zeSO$8*=6vy+k=CE!k2Fk7EQM7U;Za{|2{*@{+vx-!`?!Zvh24+mVI}9XR6bT!}2JN zWL)phf{ql|zsKz}5-favH)_79y3~G^lwm+&3t;28toRd(HMu=Ug4~{Q8QBdc zmDwdwhspd56@-_?9UAk7f3q~8Uv{fvGyE%O6O0MtcsQEz2K*tet^AhZpS-&=+3Oc- zBkf7FFJ!VeCc#Vn#Kex!gpyS@ADaP#)uxe1uBtL0zab*nIZSwzmfALirtm0P8$C+- z-?vKpl?uU4ia&-5JVLGFFCD?g4;>(~mYyk<0Om5wIs}4syWu;6kFTsFJeC*O@Z|8x zFEezLNeUVDF~n4<7%Ud)w%53i{XE!fzaf)AQBkB<^0GCztV;8n(oCv=+?GI*ZgxMv zBUt6u+!<`n*MmeouD#(nnA;8iVF5`k3c(BK+A801~?7XimyxqE+s zBc$0Ce;MTG%6U;&UWj#mvC%QklKN$^bc1%K7#^iPmUuZB9X{_#dM%J-{>+@J9ccuZESq0QDcK0GWCpd_;F)xO;zdA? ze4TsQUBQBq^qZEXY1CbROQ7r_x_~q&K6>0F;QTpyTr=_UZ==VcTJ_ftMUOKRA3q#D zuATU}6jzR*TwTlk(dUru>c?>p8(=5uACyvRYD3pS8|LTh1Y5=<^A}LmecfhYKza<2 zJ}l|pLn0M6hNROC>$0UC&47C)Hsbs;tsL`sC~O0ptuE$=@&-e05fQz?P_t&Q1YAKs z`@VU?+VV3GaA$8*@S$_$ z^MH12;S#w%*urV9k2sldw}@<E#X7kp-+iaH75uZ>so#Ky@%*9KZf<=TMzlf#&U?rH}i?xW20@U%Il4Ndyg2(1tJfQV2y!mhNl*m!y-6Xr2W9xn#!Di6-fv`$$k|Eu| zJMZRd41N2)RDbWD0z(!KA`$+ms06WwWJK?cTW z<|c6$e(%sZ?y=w0&8&}HCRj^fc*yJ}wyZWH5bo9o(&R3mQ4CW3sf+FjW~FfS|7k|C zlb>$wJ#5(P&#+*z2QKr7!0YGFEG|A|l<+Exb%T`?2Nv#n(5Ki14lE)chsLd3Bjzs% z&5z=}Bx5WR1)}xsBIM)NdxCi-k1ss0xJv4#b(QcmUWVLOmLY~k@Gqs?e=UKEU8l*S+&3;>tEKjmHndJOSI&Fs7Jx&}+indS@0n zfd@Cq9CMR^36lOaY;Nh{ko*0wU=|l^ov`w4m7jHgE#^jiA6hi$`X31`aedLRD~^#q zU0Hh<=%apFxiKLteXWqKI(_XRA1I*47W-aU-}x0jeqSyA`h60sxWE6t+W9{7NCGQk zc-MWk(J%TK{`fw3@vno~C9QuotEC?ft2qpaN<2d(M3v+>rp5r>h(6=&<58`m>-%jy zmPGv<{k~x$a>6h6$1TBgH5N?G8se^~t#MTXnV>DV=WlRt15&AL2tvFVtZKFw8A`60 zZpl&yBUNUYx=W&__Tl~$(fu0k&nq{ZLkeKS@SD2Q55^lQo`?+=!@s+)+Hu@5WxyI?6~sO+~w3ie*G zseNUz81RvmGF6-^$La|P6Ur?r?s>?wcU;MzB*&N>SF%s<<2HTwkhuiT)_V$PYjcbD zShYmo%45}{Z)>*XTJ%}HzwlJQvg#5mo|*4S>RwA;e#iGju!>;DOM_jneKf&~H4}dF zkGrwjuh_iUJ^4UT`|R9U;drp$YMXOJn-t=^M0o!{e+NuzC#!pIELelOH#8P3nlViP z*{(6N4Ar@Pe;+I=RL6O7a(FU4qsJn>Iwg|*{aCNkB#p2!j`dPu+azVzShMMY;@ESb ztZPNeGHNI+gq$)1qU>Hwd>VxZ?WW|VEG?;6>!}ZC9*z3Kj%Z<}NSv81%jABd)TLfX zc+#~S!77%&;$WEx@|SAdRVAd2r%EQJjZON>h8PX?|9I#Xp>oJZ>ERNMI~xz2r;19e z^8(23xSK)b?+!ASD~WP3x$^sCKI2fgi0sW{{xIdUBA}h4hZ5IBXg#&t?)Lj*@VwGc z3MQH~9U#^47gZ8nl|ZMi{XsJ) zq0FWZq3kIk5kn(#Ar{Jna8Z=(4}aCJC|U0vl&s-ECd@zX)HkeeuCoyJe98^4*}Te~ z_PLtc62VVWYD{lFmJ9Az7LnL4E=GW;ge4pNo`~tb@u4XSd>2hOA#WqvRYfTCF)*8e zyhXoIqqyuYjX^2hU*ruYk(6mnLNf?%$$nB`}isA zn;Li|T8T6Ls)v^?Ej9YcAppZefK?H|kmIL`RpDtItHLeRIEqz40HdouK1CuHqJ!Y> zMXde{qKyMy!qUD0YiysIxmgOCoyLaX4Ii4N9+M8!7W7kzL7|B_28CN%FUO#Oc)+&2 zsUWSLau$Pvv>}8DpY-wpz~aX_U#Rt|>-bR}gYuYOZl5j&<#`igP>@e1F!ng?&+woU zlM*o{)U`p^>Y z?t{~@-H-jHU1r!$TxyVyzZYUXneDRGD6|l36@E5sSMo$<&F_Zw#uy5X@N8#S$#2>) zBH|fuHM2G3_3^3PO3<1%KK1YNp~=j)!fUaCcw4)8zW?+o^7nQevF)*7>IG-i8* zDaL-d+*S>DdIREQSz&@LC+v2I|0S4zh*#~Q&Z5l=Y{7DXU->A6WYtj!$q7dxm?pA7 z#K&F!7ebb$1B$mmI?^GBKlVwbyZT8BP)#T&*yT@p>yI?JPd-Wabuv~WkxL1Ya57b$ zsbFg1AEHiNM}_+223==*t5G;q*7hR5QXND|+`x_39lo6KKW@#7=Jm3^D!oiGP>@N#QwHUbezXr2b_rNzqpv_(k6p&J$Zr2`t>uO?;ZRQbgpG{ z%wK{zr7@tQMlJTAo{mb7uFO}mYQE5~tL7`lP))(l1lr2H4eDn+Z;DYf5YSj7F#$K%z3`dn;nDCT!tq)9v=&a_h@D!PR(^jkz;SG~kMp2!{q zrkrM;+(&Af)Wgv4OhD#Bjs#MY6qgVBtI2xfNJ5JBDXGHI8in}D4sP#8>AB*)B0G5b zS%}HZYS~y=VNuJ#XSolMUNN8c#n+y#6z-+#=hCiPC56M#naPz*c_HfOaztvpDH&_w$ z3`wmnBynG%7R;#gh=7okR;-d0t*!D}o+Y1=+R1Dx6!B;1KgzJDTBsv8yLN2M&t-gq zdHf?=-)K8hQ=1Aa_*VZR(G@`mj|Dj!UM>|Uq)(N%Ya7Ls9y27}gJ67_p|z1+{v{-R z-V7tLny8;ox|80penGX$(P5jhr`J1dW8SoShY(SuSlUU|SL)@&{n$d9s-XX`Fnm*- z26Thsbd%tL5H10Jb7amQAgga|&K3-Ww1%K)Fpr>8L<8duSZV_+@67g05xn;s0<<%` zb06crQ_S1~XoT!cV+Gl@H(Q3aGnEKmHqok zeNbO3^ahX1_U}?FJe8*t^p_UOR;9Au;{AY0k*~mjmmLL9|nxbO&%HUc1azknZ>&UDxAx7 zvzT*9eXrKd&J@N?qnoXbBRB-tNfz3>F*-*f9YYvhL6TKqtLuI&n4KD}aksu?{d~9m z=ZDUiGd21{pI+xmj|FoU;muRgmAH8-)%ji34_* zjNlcz{Uz&X+b~Ph4HJ4@8P?Mbb*c?HmoPol?}|{kX}l|<$qc&nQs86&unWPb;gJ=K z?z7if8>0qfU2e1n*166?>B8FIH_d9%Nvcq@ogk8grKN)QF@7lF%cpUO$y-W%L|@$fL|nkM&SL8AF{HZdwp8K{ z?$G;KPq4UyIHA?3K1DIOAW|L_f1vJkOE{}iB24p}sOt5)d8y(aC5bQyL^2=d*e^;{^GffGl1@b&%no?P@k&cO^n5kB5{GM|nzLuBJk78kup;m;w ze@wG6x52YfY>s~x{slA}CPkcb8qH>iVXj0co=&lGn{H^%wETA|HiNF0(nv@#ZA!4OQI?dr4DlwhaN=+F#Q6e75R4X+g=>Jfq zW~i*xC=6%lin2IwN{!c9aI3^Rizz3lKaAcq8KsVjw4R*Znj(Xxgr_r1?U_brkymE2 zWbYGEJa;-vM4WT$r+AabUvOo4kP6tTawkpHS(si%QPx>}l#bub45G(I9&RCB-pDg~ zP!PcKCgyRXgp;0}D)2)l9)J|PqqwD(D8dm#k-ZYvun0%;Q$@N=ZI?8_Y1Eili&=?s zRMs-arDXu@*pzP?j(hdUp$pAoH8~jFlc;j(XC=&6wK73>QJw0MOb86ddc;kt=DBrq zwN27z+=V|sbngG^E6@41?EeFOh3rP!mR*b4GR#i$rnyfv6!-D^NEThCa~2Cl5gkvf z(fFK2Q#F?-&h)V?by_w5_nc~GbTQk^ZX9aU1n)yxmq#%jv70F&6JveYJbCQjXe#dS zA=E5wZn_AcWzEHd{3mUe3X1euVLw^aAFT^Z_+P>)Q9mDvbi6w6#b@^)CcEtRS)HWm zh0G8Ep2&W!nSC|PTgLaRaZSlQrSy)}popy{)xa zm>IcpYx9{JOu1c;qcgipTZ>zc;>D{hudbrk8x*ll_}ex?4wG>Vx|9WRgpXc{sVYI_ z6fugui4INZmRcU4xg&>*zKFLfoX2l@H zDH+zkI(?c@Equ7YLue+qBFIGskos*R-QOJh=|}GU;Kdg=Zl0gfH%-~w5JP1gXCu#_ z&ujM%DWAmK8d5M4q>{BjKBkg2d@%Yzvagp+tAD0|-9*>YW3+5q zm?U9oVP;lABA07PS{NOJg_f1D@Kf_2+x<=n_uz*%&pkwArpr?2#H@X{ciZd8aTIkr z+SaKwQVZjK5*fcwf^!-$Dhm!}2h!vv>-R|v***!f`2BH4ac*kJZPyf|lra zt7aB+hm2$X-Y;t6Zj&P1U$uZ$~jr-YeL9RhXOq4rqE%RNO>( zsi$!hnPc0#iM(Swb`x3XUU~0Cl=l~7AHkm5Ef?>d*gVbV3C;kC2UOWR!L-C$Su`}G z2UGJ-`5hp4|0$?+v=;kS)>)r`b5t@j0;rO8>PVv=EAqnKhSV6xh4wEL`5 zhRlXT6P!kVQ?7Y#>a}kiZ0k=K$SLJsF{`*rnWnUwpg@o}yq?OyprsIDW&GrSdQ{)q z4tzARgCx!r@*a2O=MSH~#Pq!9Dh<>>sBb8KujKWO4DpVl-{VPtO-zarH_-nx!q!l+ z$z3!#?u(unj&U6mu5s;&u14het-u~VpOi<^Oc9>o@t5^qwee8DY~!J*q1}w7+M?ii zeN2qF4_o`^_y!^aK8EgY@zL1Oy?ft4#o8?{Uk?817q5jY$9oaKpx+qjV^+UIAIBDa zliob(H$w4Q`{N?WlD z@mn0PY-YbZ^~}uden*)X<%i5@Un<+#A`ZEKqaMHvnw;UH}O&x;*m-=*KrAS?U8 z*UMs@naI68oz>=#Vu(VABH^yG1r`*U6ar*MU-$W4L3>HrkS7ax`0qS4`HN6h5%7@P zrxEZ>nt!@DpxxWlM_=&G@{pd^rp{dYF2!*`b@bcE0o5qKhL!^P8fb|~FmnxZTXqdj z9w329Vc(6kJVrTRuadcUtD}Cei0y4rPMNEH_Gr;r$V9ZSCAF2@TVal5^qX4Tr|wo{?cQ#OHs0skAg^N(-r z{09Y71@1(GspS+xoXP0)jH|wxtXXL`O)tl zu6p0C-^e4obcPAm?s2YqK4!m31t0w$iGB|^xnCW#Y|dNyqH+VO=bC0>Ps1yeuHUyd z+LArHmb5+A^jWQ3ySvluKIcxA?`lzF2-RG3X&P(sTU4b4AFIPri#1ycbCkW2vx1tF z?w(_obsLCxvSp1q;q2%^o;u3;sp0tNIX1vL|V`^RD+G|3IlFZ%}~T9P01=C zNURLk(WZQWI^#~c;w6QAHq_CIU=PMheIuZ|3C!+w0LHFQ0it|>L z`#RRTHN4^*W%z<-S<{@AueZs4 zVp(xj$GjeyR)8@dq2y1@A5|#=aqK0MiaD?zJKDe zM1&iReg$9gkakrh;BlZ;%zDjMzV6}c%hMza)`>a&t=fQKE!7N&Hb4pb zqvE49iULFZC0dPvI@^CduAMWP+~N?jV)>M#=^58hv}S}#aT#GBa2?KCUk01D<`zY{ zh(Q*fk!^dGQdN?leUaT5u1D#IgNB6LwxZZ@@C-|=P)Oj2!1S3vpbvppET{ieRQ z+-zT8V{VqeS)N<$KDnZ}a2<4pvo%|(1-avs*Z6>)Wl87$YnR<_Ry zcJ8Ii4qxsT1;wV)iuE{_4Enhid`yX zxh;FREj^z4svw+A0wXO?om}_rS2oTqQRjpS+})&21R`HO-Td(yIFa$UzU>@EmeIqfn-yMH&4izbDn#P-6aZGe&ZSFc$4M&# zAnPW#hv)5zZ4$2+8x{l21)jsw@gdes(DhXEl&WepGBJ)W5=F0*H8@)!{8>Iu{iwHN zLc;+HrW7T8a-ky(dM+a){hFT3O4;k-cPxY^5fI%CkPc^9ZLZj#d!hV@aVXvGBx9>& z4)trNKm#UI?TV_t@RD<~PWCd3Zr|g@8|9$h%II3u*>HO^iS+Pfca}JI-Q2QJR1x`= zi7QFREQ3kWU(g*R+R7btN*hLOpA^N5#QE?i7X=eWPtq!CQG|MzD^_ohQt#yPl60f{ zRi(s6h6xCCYqzpCH%S{5V9L2FVz@iyv zd)S}cmUXpA8G-{n`->>6lScYWQ zWL@V10G!IkNx6Y6%U2nZEyG5w4A_iDvJnd#CL6&W>l{XJh40r21Q>;Z8F*vz%RpLB zK%1ih4yu|E4@Jn(26Ta`$pN@i+@gLW##je$>Y z_wkj*b5`N8MDmRPktq`cCiyX0a(KLWHQa;^V8F6wrcQIEy^4!VBTWSWm?)45b0>O! z{I6tEZTzd7ss^)2<5Z(**{K81qU!o}uQ{ORtgPd_(MtB!G7*DMSMA=uUI`-9J1~8{ zJF_GREFZLmQ+&u>fAV2-kC1$<1}2oEmt_3OLy^2TP%FfeL}w>)!Z66H*^&gNY4TeZ zEPbU-W}Q3bBh4Ld+kVAG?(5GlE^((`+mLOqvvaMk!RLKvGW*q<^)2po-#nzVv`Zp~ z7jK^!sS@jUNd%3UP+U~$aAZn@SjKXrf!&g0 zYGZ76A6;F{9>bbXp46I3DD5fPvSs@GE$r1_?nsj)fAQ1sHwS)TGbc zlm^Fuh)~5ny1KZasXTqTw9Bn2&e|kIvYF?q)ir4OFRLfoa6l=wr(&QA4n_rc`jcwi z!bM9KmIgh##CS4X1zQ0 zT3bJP!^9_ZY;itOTvQZ~10UpN=2sRC-q=Oj-TGL=TsQi{;_T883YC;Luh7P)toQ|Q zYHW1U3QN;YSuv)jC6r*8D3!w^C4La3*2X4VT{I?Uu|Ul#PaF-;jN%{o*xk0|n7QuD zn~!NIO~Ztr4ll|)RlQed5W^TunVr(Nh?QCwnW(nO0@zAmS7!W;18KRU>o^L_-Tu3E zi_K89eA;z1g(bPIdld^?M*P;jXSZsqk;vl^tP|NYZ@aA_aH%sliOoVb+>^9Y8p45Y zCKp?vhHEV90>c$jMC8PHqR~08FLFkr_RUyeSWWQFa>*@)Ohk$#h{47;rPRtL>S317KK>j;Y4+yU_+eUoil@MnOd*YUKe*DGn|oACN>V3>=4@`M5l5}ht->~v zGITR+XT1r5JwS!9M%e+VXnCQ|y>Gu_-koqjF({F?A7*Nc%Mwu6NcrfKJ@|Kj`1&Vr z{PNFt+)qEZi{cYkaHS}>RD2A8*)!5*+Kpz}R;G&EBQ9(T=cLC*fql0Gr9z81PTa3~ z>er%DFh6X-5-u<%So6VrI!~P4J-_+%Rv()&2ILV!vX5@Cb#d?ex%B+&in4c+bc zHs+ES?dcwBa3=fj;ezO#st2ynIaQhLae1r)yY02qYH7bhKf^DL6;rI{0AsFBiKKPY zn6zr8`NzhFu~tbxFA?9MKs4jv1xANXiIM8$sP7#{rRXbfE5F>!4YUaz9&JNQ)N^;x z-kc|%rRd7UQ>|r`#Mrk1iqA2YX{oj>4Rm|#r>hb@tzHtq2-L&rJhTmM=M6bf?Zhfm zMS5kUZO#Q%rkHZOkrg)bi`L2BbtDF_G$ra(A25gwUTx)W9YOYFnoze`$pWC(Ro9ox z$AATB?C~*RE$+gjYv#MYgNwB#*%oRe+d_FlCJ$7TQD>U#(!`PmrvIaTvn1IhnP-!yTlguZ=EC-RKDpqi0!GsPT=l|JuM8oGNI$Lu*%f2~prV~`I zpWaZXRNMMO2*u>;#&cNY*3cYSy)L5A{Unq!%75~{oWYi0(`vHhfW zUG}~1=5+*)ds^&=?dr+G5B!?`t`-m2?DyTJl=VzHG$w?w*7&CgV=a;t~m@9AuC7m_{&f zSt$2w(1a?GS|(MKm}|p7Ue7UvQ>A(e{ypKFIwlL>u5Uwe8I}jeiom|BZQ@w2%OX}8 zZL#j|1pnf(^k*YWW;_-F8x<%!{aALzHjHR2-t-XO@Bt3-NUkn(xr!iJUV76gAf|aq zJ*h3#Mz#+#8{)EHK+_8;#r=Hu)*HM-{QLKqt}A$ku2^SpVB=AfWho z3*sv36|~LV%ves|WTcJsp)EASE7~(pG&WISEs8^M#RP#B%o}f!H#S9{MDM-b-h^Y2 z=kn$@$n*!D$fVXuKmkqaVbreulj}R&hc*`Lo;__!6kpR zp<{+A(mWwUr~a(V9&K|$t|DV3J;H2+RE+BKw~brRjCb0?h+9?iEbF;O6Tfc;5|+pj4;zh?%7thS;B?01MNwfh4L@vmqgO z!|aafhO!9@hdsg!1J-KADMAxE5`rf5V?{|0g~U7I(%xAB9ORQZ%+94G5OrL-j+9<( z(bSDCx|wmH_bS#g0SSb&VL$%eN0Qn9K$;=ANg7`|d#soxXT^u7r_Mxi#vWZZmZdhf zaL!No#S67Na_t+z&`8vxBcFwX!Zs`4BI4NYw#!D5^KEyVJ7pj^PkRV#9{G#Po&9!m zzP=O7r8x0{p1Ajj53pv9%yAuw#748S@LN1p@3(t7NXmaB62Do(_=~}Xzv8j}v?H&` z>NjD{HMqc{J0o6E^6zq|@Z3fn`#75eg@~&XeYIX90G2^&fEX4e0O&*>=ZHR7nYaa9 zkVGd<4?jk4cP!L!M81})JM}vj7dNjO-hI{s^ zYTQ+$?fI3=hZ56TYz4r|kin17hRBGJOXgDB!l0D>Rx_UkA&*BN?3(aF4ONcVDe27W#kC%KvS#;i@{xPpy2hC&G+VxE z>rM|`0I9e(dvtSSyn4EmT0Z_)CR_chHhZ=r6{B|v%(O{QL1g&x)G&VMZvElE;dzG6?*(zO``6Yc*r)NO;fZpz_`1 z8wh{)Q^h?g;PZ`Oo0g{8NLqV8$YvX}<^lLYclv@QoylQ;8MRBN5K6Ps!!)Q|FV}GA z2Rq$Cxg`tSC1=d&WZ#l5rJeQ#=0<%%3F3FH#HfCcs-a=sje$CyM3((3;UmjH^QVBj z*8hmOaJ5oCtQQE7_v(r!>Ofe1_$U3o|2tp3yp~kly64%R?-w@5YHGKB#A<4fer)GV zs|B?C&6KsP9`-f5dw#@-8{OJBacOYv^X;NYtdm$ysiZjH%+QVP(ts9nnFYP~}=nDmve_b`81L#sCRi1KkF#|_5w z%417qABxAMsaIMy#-!Otqk$4cY!ON!RvB(*Ryk3du`Hf$ECZa2$04o8Q!9lBloQvw zJfqxY?&5(>>N0&;C3idc#bGtVC+of6zlN3x7~*P5I;QpS*P~6Xtg5U0X%FS0dv2D> zK9DaY88v#e98T0P4Uew~8w8KK(;kluvn70oMEON{y%(IN3&j4JR$Vnh_w&FsB3(h~ z2Xu`PdC+Yx9MYK@=y3VlU)GuIaGP&l(pl=Dh8U?w__~bLqxv!4t|kqoWmJ<49PFLa zij(M}6^N0b0`M`LErmML*D?Vo{yZk&^ado9?^V~IWpgDeaL~kfu`0_NbQa)S|G;@v2(bc3NG_DkS}=nsXU2>RqLpfvB1Rs^Ock zr`=uq%HsU}diYS?znE*TW_7Z!ony725-i3_;o+$8Fom@k``bN3=vZTAZK9~-I&1W) zO1ZJ9+!*CVRtDR}K4-0sAQv^Qi3f0X6~NW`b<(XPs3|tm?tcG@;{0WrQuS4c0E{XH zwp)P(d^+ClK7MR*{+q|6PtPTE6*yEr<*0RAg9FsfFvFf1mAOR`ss<+N{Y#8;)wZ*J`<}QcJInl&87gdh8+U{4P7Hnp=85HsgssEp$;(c`B-6%&NGq zQbm7MML$){p{nkg?lZ3`&VODv@xvd;Jg2WYZsC@OHb6}Y%k zpr^q@p@#z}1&z^}6*Q@mNd0(5qgo!BdC?7F2l9E?M={BryC^1QbY`?HcST=b(BV$$ z3+KPWB&og*u^(;$aBqjWl&|(OW?kUwJD)*Wu?&QMi%?vAP&QdJQl7e|DS zq5*e!rc$Y)q}rZA6+m}o;h8C&4wp6s1E^0%15t z`V5#$uFYQ-`pXP|>GYRYf0^$uS=aYkJhXHDuX+B`>@O*QY4Vo_f64gEOfF&nontc2 zqSp>YcS*v_YVbA?y;n#PV1 zei@2yGJM=wTA=dd4EnIpawsiJlcc=t*)_5j$F3?cZAEKMBALQ;p9(*7PnyHrUOmrF zIt@Sb+jQ8VU%0SR;Rn8+4jc6gu_P7#=l2iP`KGVts8O%grnKp&H}W{7vcF1MKmj(X zKl~0ldNM`Eey=;?(ZasF-G@4k&UN(sMNh~ofK6C1A(PK<-6hRkg;Mr6Nl1oKHZ4_* zeZoKs8{s^?aT47#*zes80}02;y8TA4&cvU1oQfk$$|b8FPXdq{LSHqOCHc0rQK$CR z(8gbX$qEU{2$y~1G-bxp$fmR^aaKi!Rped~s&IIkA_3y&Gn$7JFZ^K|qkB9NkN++m zww5R2{Xb8Kv#TcJzi%D}{XAT1^Dy`v&BOMLB8a_AZu2l8pk8eApbYEN&BH(j@t86< zNit*}`c!1Q%|qXmBE0(C_UV_&=%nd!PrV+~eAT)@a^P&pUlP<qFgElw&@5{1(O?ykkrP8pN# zwHQ_ATE7@4m5GaNuT?O6B+64{P(?H z&as|xeEYOL8^QFhA||ZR%s4jEaL9T#PL_q~re?fBLIVj8C7n>DG^#Rxw62X#Qzk$j zGA(mD<^%f)TGI*GkFBgS|FK`6gB#h(GTtl+47r}5=ry{1@Qeq1wJ|wwcw&H0U>8{J6 zyGD8~B{oswZ=PaQl_*t@etTVRfr^-BOA$@|rPj#0ZPT_fP>0`!0;b6VOquwmx#%n znXdO;>(d-vYrbTQG{jzLpJPXi|CP?d9!qcs8ztzwz>UvKG9B&?0$6jk{$veJMYI#x za@rEME@+DAXyo<5E!XCkP0pys14cD+U_zN_*ayCKc7km%BOMlT|9(=>crM(UT%<}= zon?B#IloHD#l^?kX5G^$N7osp0xQ@bt`~zE%aODWMVcnFkG11$U|LvI#1xpTo?8a* zUG*MI6;7&Y)4b~{6w`I8Ys}ivtdmMlnsi8%0Ajs)yDo{NOD6licrU(TPB2LvBW!NP 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 (koNpec@2Rc{9&bVdwpz% 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 z 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�h8X*$6It6Y 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 JGHQk2MEpY1X#3onEWdB1pzM%%A3T8?dix67e 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 z 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�zYRF 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 T;n|XL#X1xlXEr3eC;9&Xz&9S& delta 1136526 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

    IC@znbl=^NM0C$Mwvk~fi3eX@WE4# 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%0Dq>^if0u{OzW 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 GP?rUsLzZcKu=ax)0o;XV{gQGUhC#nyg%JFn) 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⪙2F)7P@m8ErpDNWQXOCN@C$x7|Atk(kb>8)3c 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

    ZuxsLs<*pAIU;iL7mb<-e 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 z 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%0Ao7JR=sJ4je|s0jJw@ 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∨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/(K&D)ZM01^WERlt1&cx*nV+FV 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
  1. ^_jF6;n#rGTJgFFOjLRQy9U%B%jkFPsNoq^dg)oAzE6Cvl4n# zfL$>Y#QUg%n#}U*{W?l};doQ?`H-(0sBJ-VCAb<;Qcup3uG@MsQ>+jSo zjg-TL>p*08lt7_R*RY@!k8f=iq$m8Qo9@lpk2ky+q1ax*38*+|0kQ%xE%S5ytIDyIy?5=Dbk zCZ)1Y+mUzo2D#++)#Y(UL=U?3$vByfuPizO7D3>3vAW8|@#HD{E}+Y(B` zST%@()Co}G6e=wEYRW3sYrlm!n+_O*&X zA9Hh}nHEL!2!VxPKhf;gyNRYl9x~&OmodnZt!A7=8!g@vQqcW+zICE`3FPw5lgu-` z<#7}(7W@*gNkF1SjGw4l#FAa-jsq&V<1sQ?H?qQ&GtoN-$w`nGNIC*lq^Y7@f^M0< zJc^QwM_?64QRWJw+xR&N)Dpx|cDf(0on+<|1skICSBVWqffmc1ln}c*2&@F`Y0wE5 zo87X2t@5F0Iry7ivy08*!Hw(5ze%KfX_Q(kkttg4Jf%S03U}@F20T|}&sle|Ss1h7 z=@cwgxNTp>zrWZV3?a1pC1w%rGA3SP=H$J;kpd7PV1GLo{NQ!WoChM0c~=C-Fn^EPR!y}frQJ=4a$J$6h)cY*`{kq7Eb%$0?Tae2HR+|c~@u( zW$1^W^Ge);Ph*K7uMw6AkGs;$WkKOzWT1kq+Ea-sRYA2hxDiuhM{x$D=o&ckASH&n zsG*A#BcM0#0PAuJ04oD&`c$4#L|j@b=$Lw@Twae6`snO}s@E4{{hkP6|MZ;<+kNbdA|V zWKf-StvOVdL4XMkpgusFVG1z0DzN%m^A$&;_`X=w{+puj3QW7vj1#r{rkLlZinj>6 z*8lk}eJGRYemuqOhaFwYRMSP>D4iPY2K@LG{i!+R;O?XCP+-bb#BhfWwYBqMx0o|z zZyFR2qIPyuj~m3!>BC#h389iI?|-X#mep@6*&v#)5hd@v)$CWaUD3J{>Fg@_8&*uD z)^(Nc5T_@*lOQeV!Kt(JgSVPzC=+?gZDtp3BIYg!rx)t=y9D&ne#Kk#tC~zEzTJGn zZDyzB=1;9h*|gB?dQ}~NY=2y5dzSM{zUnr!AVa`~G$!cVsuyX%e$lt@ZZmsD9mA=Z zs&gXme7o5T8{qSAHKoluM5uXS(q#Q0d>DZh=?G(&3hd4z68=9H(1)9Oz+h>|uPUFWS z92bje3V1Wkb4xW zqlb;4k26C;$bvUEp5rrPF8FGjpeJ^HIgV|^$gvTjMuXZ#cjOFgNNg7op(WWg(sKg4 z5wRDv(dN-dffZDPW~UvNlL)gtaHr4wOjT+E6K9({>DptSIa$HAa=zIt7TrVln(i}R zC%n)A^fw=;iG#urv@hKnRNc_O$sIcX=w7q4Q)fQ3f%mFS*dn@p7s)yrVXi-03ApbtCK0}ClUlQQg6h5?FjF=&^)Rbp4lA<>5;!nG~^iX|~e3!e+Ik~{S z-=^DpBVOG858zOBqT~f)ete01K?*7MfY_}YT4ot%@<(A_efm8HT#ZS;&`f0~cyEfps=^9||Z8TNL z90Tw$4#>LbHh%(tXSX9c!gTl7`Y)R5PvPJHP?GF5QMn5t=UOCA=zuUM+78Mhw`hH* z(Mu`Ch+Mu{cF5vNiVFmM4~2aNw>S()Efb2vz8b=ev_mP^F-Hmr6heghcIl1PettT_ID~ zy}LjXYV269jlbdaNxcS;zKXIUpQ)+lwAST8IrMu6(gz4BhI{Fvpujtg(i#0R^KMml%yAW>t)Gyipd+qFa4o|1Fs`|{{)lTH#vC=r z)g8C!U<04}U~;AxVeFvpG1FZdu64M&NDY{vN6mA)!J%fjJ0lQzwyTHMS&u3Q&g!`7 zsU=_|;?CFA8SXB+LXX|O!b1ILyU)OT7m_JbaJQ=~uFYs4(?Yn5J)>P;kT~7d4cFn# zC{TbO@G5g<;))0mC|bd9aX=DDn$@^ZrF&e{NITb@fJ0kxZAw6dEe4Dz$=-Hek#|Nq zuQ+N(Oo9YmGL`@chbX%nyHT1_80YgGLI<0o+8q&*QPFT4w0jPH`r32W!tgi-+D_QDLh>iHQ_Kr) zaNOe?G9F&c=I3w7c=#s7=8%72OR=U$WaNV=*8GT!lM%(Ro3~RUD%9q+>t7#H3Xs(c z$M&M`Lq{kf+&~-3sMW8-TRjxsD%?=)9=P3!&fWd1+EUv+zsgX0IK$nfTcR{+rZ#|hDl5*);$$N+*LbRx0VY6&dBE!)g?e{#3)4=SoT-u>Sg{-( zVx2Q#K^pbGg`~0WYK!ACa&Bwc3P;>J6+DgvdBaC(n>%(wN_*av0P+e<0z#dgXLZVC z{Lj%Wo7*mCMC4>wG~M~K=ZZ*aliIvhFMIYYtzoRe7Kh=@OSNLV01y+Ghb63ze+bHjDDfUi5jDra@pS^ zUy76qm*FWwppn~js&HX)<>p6ffyK%Do-la0-#aex5)4r|j>Jre&FKL*Rzj2|!fvx# zRV6ysT@wp`oLB`69n%TUhV%<&a5Tp`IGx5Uj7+D7*e+Q#0Qn?#4?n~9W0BZZ>zPPf ztFpbUi=uDHqO{R=TZ?$?n=1wapDpWDa39pTkGtIhIZ(-PS3GB z6WFsF-x=DL{ZYphEL7vS#NN2D&l5)Bp(;xd@M3g8BD8p~=lpn6nq$2_BnBPY>uFXP z!Mun=mLl{9*)HOt@C7t3#a1G{#lGayzit}>Us!&DA0OufuVi*bT;uH$f$Xw+F~cdUqZIpT2g0Mm}$G1r#K zi{((EXe*}|)-JG=`{7+E{uL_BimyLl{>w}2Z}Gu_;Rjef{p`@jo?8Zt6=XB{l&X1OB|{HHJr6 zLhwXzn;1E}Kxd9bW@pPJB?l@M+kJ3!qL2?~fV0OX@d`H2$W;fjlXBo7=weM9<%iG* zaAFxQu=tz7=!wPO{F|SzKEc0$rx?EyLq#eeI`bBD7wo9uxFrap&X&g+3IKp#9{`0g zFme$oLH&dO0D!>&pu2d19b}^Y1{fmTJ~nC)?bowmB1Wi=gO~F~`*mzSn(ec5sR~Vj zj+GqPTS;I|OLOv_5ryJD&fdWN%tv#Yi~Buq2b?_$T0M}{<348(6bg!zp?pFW^wNB& zH5j8ISs0fHm|SiqK@KACZMinRVef56Sf5&J;Y()f2Nt%#|E=ru$yumx}Qfzw|<)4BG&$ zVhk$yHv(Yyl=mwYNE*ex>m8w`Fc_R(!IRAQF_2;f{)-bOV@5KF`Sh%E2-txd73s|4 zBpEw=$yWD|2f*A)6!-oY)Pil<(iXe( zR__v?*1S=GAY%X2EHK@6n0BM^!dqLwm)MzgXc@mRoLMkw0&2IbCp7T_ab~CaHgArx z<2Tm42RvE`-V-r^Gku^Vf3#l3zF8JFn|UO#bA(`pU?&hN>6jBr5MMH@!ysD3)3G_Ajz;I&cCSe7YKENP*UBBJez!lEG1AP$-odMY$hRy zh{v&gV^gWqT2DMQE0sq5&Kb37z3l z#H-ohLBkxkl~H)~Bm%K>J_xFg)h2i?Yj`COLj-ds9_Nlj0mioIFbaH$KZTBvBK)L0 z>|hJ36N|gB)tYDophb!!=>VoUl1>U6*c_-^Wsjf4dc5OMk~7Y+gLM`27S=8JWD?MP znk5^|Jm`&l)P%JgcDEtr^JZz(@%q$m4l6GTz-C?T`I*Dnp60xnkOsB5{uAgF^;QgK z45F|x(&3*B-J&)I_7Nhc{5Db`peD#oMRuFBgbQg-zex?DkBl031=MbTjj|f zjr!B&Th1J0Av*c`JToT-uHz$S7m0UVQEVq0gMGm_y4 zIX>=!@e+sF)9^Pu9Sh9{`NTD>r4EeT9l!SwSfR8bVj7T`f$Q$Ds4h~r3;RJ?b0$-n}KGYjb?JVdR^Y6g1 z>`hOv!gwBTj7x;02piUd{qsoiY!;)*2l9rK0P<+DJ3@r;UqY~8B)|+n!*Csa9Rpn! zLyFA;<1KQ}M4=A49IQeK0s(gxqybl%V(m2mZ}TpQAT558Sp{A=Pc2VG7eU~-4-Grf zQI}-OE`H1L6>WdZlRa*_lIar%K3)k(YGRx&PM`Z4Gmtk(b3#hm+zZ}ekpeCM7EzJh zr^sX!nEJ88WqvZ!J!3oUB9>ng2c?NL^li^|g~f?1R+v^HoyCD?;8MbChS`UX{~pwF z6>v)}*m>4&tH8Gk#(maK^E$-vPTOU#yR7zP7oNS>IOpEUz5d$SIjXq8S+bb&5m5G6h4|V=#i}j45DXNG z0k1pbzqK|nP<#b47JLma@;WqTq{w?Q`7f?QS*V~#EN(;v4X8l&KLVTXfqIywpl?!p z!c;)Mg&i6yBA^_BaYjV2Y%Zl$>juKsoSbaCl_?uS4|NsWg`EWZs07v{J}Fb+902iP zUlC9~Mp+!W%yR`gs}=_d2cICbXOU(MAF^x$pxf{vbU!d_EB7B2(9TLvX5sc&HX;Qn zLCiuCz>PR@12YPD*jK(iHZ#s9`xNK+Dk329;zLSkMDl0VH?n*OW6Mwph~!uTLXyfLUR0H1)b<%&z|hoCy`iCDJUL<%=QNpyJHaag5uaX?C=K% zp1X>t4n4lkGqp{_=VHRBtQJ(pu0W~Gx9G|)Jpj-8@Tv&ul^LOc9FF}b4iCwqhKB;Ape2wFJYa=QKyZbE2+btZt-`+5%eg(6~}I7-p>!YXE+i)&i%hp7^IHGli#{X&H#x_~`hJ|MavN6g02!ATX~02Ic}x062+bx+*(k;GBrbRX&Ju zRZKi0NhFhzTCx_cR1mk z?GPam93T={4{?a)P%Nye^Hp4 zcDGr@(+Z|$l$@F(BQ?t1r1lZ%F>z^voKX?aP-e3JJ|zA1PB9=2BUR;@5=5 zTE;i*__yKU!qq>wE&U4lP~b{s}B%{ z^CeH69G2lhCc3i^y!Jc=F2HX${PxDLlkr`J4TAX>Fk&pulxZFENY*%t7L7KI4f8im#pIiiphWjK1*96n*Jn z_4uzw$!?;?F>HIIcle=0@z%6L@h;NExl^J`fZi^;hSN4ps~N5cB-Kg!LLWqBj8=A0 zgxq&9xpL%(Q3EC{%qGF2VJ+Zyf(wEL36+U1upzdWVhdTSuw-VpB?b%}2P+CVGfEVJ z+XxQo6|qkkj|JO;D-8@PSbz$59C$mwg0yQO1<^zxG@bFmx+!n0s!C;7L_tMZ;5l3cvhZ2s5eR1-0q^h_NxXC7>sj%R2be%YGS}F0#56*m1g-FhqgFZc z2on4a;V1Ye&i8Q$PP#deBqb}frRo?c+)((pveqQDAfYOu%70%~>Ty<8sgF-p!U+vQ zs*+u*O2AdMsUlVJFM5VO_@$`qL1(sko*GuS&u5~zw?gZ&iD{21=Cnzz2Uk7vmAlTa zgoYT1P$44d*O-D#V*L{-6Sxu0Yfc!K2zk?iYn&~qaB+J(E2UU-fK@-V={-+IVVs{> zq**91$XLel8*;p(;Ui}UHbkhLD6E7>_^d)y9^}A=c;`9A0*gO}DjQIxeFh5T$O_QuP5yQqe z02d)^cZoPx1pKC0%}L~i54c1?8{o2bSp$O-%B#B)ze)H--Z++eMYxfNj?f#lPe7l= z&pCPxZ1IG}!6qDdMWX_fP7J3br>CKA!s-PxJdOg`u`fI>OTO^9EcwFY5zd~x zTE+1aQdx_kv#3Iu6;X14izsG@hjSP(x-v>G9M(Lo zz%gZ%{HAD;vBUWTwQNlOu!l!dMbxKZorwCtn7qN6$Qt}5m{@qN+W%Tr;I%68n%Fhy z5{^M)l~@lL2>dEkip5VQXY!^;2n%z>4+gyg6&hX)Nrg|#&^qdF1Sy?6w9dGPR)NU+ z`9AA1B(mOvQJBLkme3D03Cd*FkNF5Clp1P0X-N&@bSnq&C!60->AO8S&9j^d1%-~? z2)X($LSWAfyq|NNrM~#3=5XpP?@^LMRlU-Qoz*b_L1j;f$WT9+=zEo zq3N+P35noFz6wD0dBMPmYvVW%!t}cfo?MH-f@2WvD9UO@_C1~yJG>3f1ZuIzlhqmH z%E}Ck6muAAFuBAqAo7JcgtHA6XmdA#ptdw_kEio(?L^nwIlD@ry1|bb4pFdQ4iJI9 z0SYQ(_=0TrV82?FFm_n82v_}!TBSBs{Skco6V)H*1K?zY$p4<|4-pBIACVg9xrH*a zcRtHyiEQw?zZBVv3sNDlY=|);Rc&64@AGGi2UX^SOvf^-vw7%K-Zs;GoE7>6XIa4K z&vM?u--$qCi;zH~l>fks)xEI+Lr|xRz``Q`QWr1?1Q)=#d1^ABhH5Ci1}Z1fz;yYQ zVqWsx)xD-x$jK<5pA_@h?~7?F2F<|jiSI|`_}nl+Wxx%S(Kaeb;?+QB_*KOX==CCG zE2{Q6W(v>Ym@%yeQ>ei|V@foC99853=LBnVtbw5n6GqxDP!wVxMN+U6>=OAX0%%hRQI!UWe)tPBc2w`{jUs;$HwLEiUSUWgKnW& zM?5zMKeO_8i&Mli>sOx6!Ot*|?w5W^63+&G<$1vAuhZYG1FzIR%?m)pI;PLQ3T;^l zYB}L+EJG=yo?m;81vkR4eE4{>Xry<&=luTuMvyXtXVWK(XUrbpG!SWboXz5rcYD9@ASpo~;G9Hn3-JW-BM6u9P^qr%$R+1N6EWLz}my{)^V(2kQg1EsNFU!F~MKMl>K zE#G7BjY>*w@Jv=-^e$-d%vY5+sM{$|zVc7+t*1PjRrRx2df~LEC*AOa=i&_R`5DCp zwhJgQq84ryO;*ynA3R;#;YhOr^hv;2g+Q*tQP}~GZy7jn8266Nk&XolO*)#AN_``v zo6(pJik*rYJy9|KJc~F1EOkuQQs}crPYgZzqbEYSn&$oJX&ur4a`X5Am2Ws`0t%ku zYvjacI`E^Xzw#}$X!P73<*OK{%6lG4H_u9o5Zrj zevWb8IVQKWvXg!plbh)^e)2q_*jF4=WviWR;>zFXW&A`m+VO0S&M+IrxgzE?5RG>9 zH)?)vP47Tezj`{^b}Di0$eE>O(AHl(W9;*{neBEoFZ~S<oR{^9nRL)UbC&7(6%~+wuLPS(%XwpqQQQ@duG~e zFhR|!D=*Qx0{i?A{1aMUio3f5(_CI|PSaYQ$J4y}Mb2wd;#!5ap6hR&>pnwyik9BI z(w5$i)d*ySAr%{A&Mlmw8x*aBovRg>E$KByyCWPre~U*BN!+&l^A<6QSE|}g=csI} zSy_v}R9U%ITW0^l>n93%DKNDE1wT`jmlB%|ejLvim;Ww~TQZK9m^jW11+twbmR23Q zEQ5M$whU&BSxET;Rv9XgrZt@pQnU1$`~9{|N{iIunYz>HU?akd1(DiS_SO6RAj?Ze zaaV3|(lNUj)aIcLw)GDxzb~l2HIq~ux+qGE;_92p$#Zj*b}dBK<|wTzeojPbIYY$T zZO%r&4MI>TaVepVVO_Av8J-d{&Sg)}5&fY7-BL2?@6lS4Cz$&)XSKT5zY4n~&%$ok z=uxm-Y%nh2y*rCUu!c*74h(&V1oIRo(U`S-?ul*b-u5xtekFRF!W*zy9YpbQ=-E!{ z7pFaEo0jad(ttQE+j}NXD^Tnw-tmvQyu_GG7CDg10uec9<5u6B+zKg(!Q3jxj|lNO z?M~40)ScMBk=a!LWG#x?CTi^i9DPKhHtMWE6ok(ML5^Dv`sqMk`srZJ5;?h>K;#OA zh)J!LU@bndaBd5X5a@iSGeqzJMIy8U!k9D2bF2z7;0`U`#HGzGYAB;_^?5I z;H3A!5L?|(FN53euM9301BH)nJ0|`1R>*pCCTkQx*rsG{gozqZY)A7FRNI`cPeECZ zqIe`P1CNRq+rUG`BYEk6WP7HI`9xmvgL%Jc(am{&?Kkln?;mN}-%K0W^-uA{nPydt zDM<>RRIMY(aAKrHYjX_$7oAP)RQ| z*Zv+}y&#?U=lN+}Ui!JTuhAy*K0CBg`aDBR&xBmS;eYfBq4 zwYYr$?KB+c155^X#!GLG40!+6f&q=t>V9z@{hq0%1&Fd`7KZj}8j_{uwqnu}N;%jM z+!DeyA-oH2@r34NX*o$1udr2$=CHlQM9}{}+M1=cZU-{Nj6x{%EHg^ZLmTGRA1ltb z@QIWmCQ_Bm444oV5Z0G-U%I*B>(+aku$c zJ=lUc&czKFIWcaol_ib;E%^E!Q@!80 zv`LEY8=g2Ef5aR?j@=8%vVj1O*#R0pUcxdGxm9#U%AMw^mVQ=XNi ziu8K4$T{FbxT9@H32kVjvHeF8ZM9i}@wd{iV{)_I=yISP39rR*S^=z#jX)~;9~bCM zTdj8n+ZXR6lS)B{Q6Vz$ra^F_8d^El?xcn>J#BPXJ1sJ?q%`oN)iI5xwA1cWwoun= zv{sbx>EK9e*|77p-S<=A+aF#Ay|<}cwC*P(EeXWw57saEtWEF!=EwdYpw9{oIA7>{JeaJ_L6Oyl4GX{ z*Fwv9>kci8Dh6vqX>AX!S4t=t+bN-gWHu}7$mXs0# zkXRaLl39yzc?qS#Sr%3!n9pNJc^} zBYBjGWSe7)w?%I)Nl~VGyI!EBDoqF#d*%6O-PoK9+BV1jsI0ZK81uEk9V_kQ?-*zA z+NoP#Ej}e=xH+*AZvq;fryBr~({0QZi8iY48-|ERp73(M)lEybQT&Bs(mjM9{vON4 zDQU!&*>o(!h@{wlT6|g%P;lSy?%CC%j;{Tn`#(lE^wV6*=QOFGmc|vpw@Hg*BhC4~ z5fvms^!hqw&JcmS#(r8iCQ$5*$+(+f;?54-_3N*dGw!~+NE@U0rvyjRt(-+XjYbt< zN^GjfnZjmHD3cr&Xm{JTFf}b6GrT3`y0w%9-*aG7ajE3ev`p_!ZtZF%cAAoj+RA{v z1yp^pc6rJtP^x8KqYPcgpvrawwd)v0POR`xBJ7ZXNmM#eOrn05Xsi7YN}d{+w4crn zCDf+#CkrPki`m0=q=_To7@IJn?SBo@hJj88UaA!^2naz2K(GoB7GA0y3YtEzUMi>0 zT%LD#&Azk^-FBI_F;z|@UkuLbE`oD?8eKR<>yg3|)Q=(a!Q>&@4blGgsOx3+Oqy_i zjveG#qfQh8)%QuXi&re*E|AMv%j8;AkU^JR4vlRK-E+BiJ?Nt5a;>#?6?8Q?BJp~Q zf@rLwbhcRGvq!O^4tm@ISg`UWg-?A4tQ%}c$-1|#;B~mwrRLQF3Z2ho8An~R@-pfA zD-eac+Izj|8e#KZ-x zi+4qdHVxNWc&{0z{i4MBI?Tgzqer`ssZ62WYm-{ij~=aA3VRxS@0bXomYOyV!}qc# z*o;HhdZw^;6nITCv{Aa&0%&?r*G2+qJ9O>*R95B!ukoT@fF($mx*A#!IZfdw&Fz^@ z`wDT=W-8+DtTlT8~};GfLMZ-sGBfSkHw9!0Ihm6!73CvSD3xp^fdp9`eS2&TH8{zvl zU=RYn1u)~dM{Ab?L<&<2i$TzW>Q*qbHjdUh!~l9UC@MKIS{qDXj{=_#l?eV85*D`n zzc%n_lez5r(mWl3A0VD`iDt*dWNuGYCuiM>8v1tl;ws3L!y2UquNg)O1jSYxcA2kXB^1T3B zv{SnqwOnR`;c}KBXLD)RjoLRLDahLHd@Zzy)^y}1ZOI>w>)Mb12+tkZeWGF?s z!QfY!Wdd{m2VL;PJO6m*C$fF#gX%x#EiLapM+-g~$;17>Y2lx10+{`eTiAM!HbQxp zGVaxClrQPqd$qR8QgYmFTnsT4kUipHS->2QARv)IM`?b{Q{WBvR z*Sf565j5!`cvA=8uVqHBT^#ASHZ$ECOJ%phFr0P2maTl_Ex%verNkbM;3)!rz4H}% z{6THDx^lHQ>F@CRb{2m6T^2{Z>VgoKNaH2suuvO*5nEZ}s`yu&m!LRCQsG0|?Wwz7 zu}Q`vqjX#?s{8#R?E=NVeYFkxS-*$1SChZohdkUZ3YxXLZN;4}U+$yEhqYc8iu>E- z{Wx(S?_pJ;f<3@(53X=0PIlv!iSYdNv22yMqkOmN_D8f1vWE9%4cUKELv_;{Y97&2 zNBbLiS3Y+58Zg@x;6)cSYjWEJC%wt-EeMG#!s&RYxBoP zwZqftokz8~81#{kX+zU?2xLM-hhJF)JpqvW%hj~@G3^d@-Ar$8p;m5#!m)d@c8l^f z^`4@=-2CS>$6Ds@P+jmHGOm#`=lGloO0*lJK1~B*sBw0>Xo@zRmQU5bz{e%iv~gH> zPd`r6`l2}LY1H+pcj0vHUrGX`eXhllZ?RyUzpbT3Gqi1>%bR9u1)0@{S&1zL^b#`n z_Btjz_G+T`7T(YBk`K11r&C13HhwgWK7C5l&jx2y6F9}|0?w9{J_k*Q0DFNo4)05F z3E+~qaIUshQP(b}OXg|M0M18CwQdwMUyExdfrUduz{+RHY_Id~F4cM}bOUMI)X%q2 zyHY4^;+p|~`1*xP)=?}>vbgI$%8G5qNa0=ic^_k}+4zWZ7ixE_Rl8}yLan=6wUd-* zwRQ=yJ+Zf|yBqRvKn3Dnr_{=q!alEliQLa>538k1Xydb5H*3k_EE;=T&-U_SYHkba z{T$f95xV|4?b;UKDZKt1K0Hhe#j%sq?GS#)u8~}#z0YYEq*i$v;v5_i~hAjyV6?oeipf& zb!W841*ZsMnFrieJHpy(+>xba#WqILrj>9pt$9J~pq9NyHDz!IIbYXaq8G}vs1C=R z9V|j61(*1jlPOIt0mtB6#Aoo!TRTs{qnh{m!>#QX@WCLxS;^lEy5=3da7d8q{_;yT zP|bH=s&ss%mZ4U?L;qZ?ZFYRJ$r^b2`6jD;+OSo^^686OwY7M=>{A9V{C#Sy&WfFa z#5{|;`sXyNc}43EK5Jd7U99enq|L8t&D7%e>A({0w(QCy>;)8FJh=~q%F`Vy02Oe% zO{=sEfxEJo01^~0 zfwsJ=C9CCI>AG^w-Tf}$6-U5xkoC(q#M~Dvit68BXS-NA!GiR)q=cFAGJRXRQjmB zavgtDNh>O}sGNl%B+t$oP}OqYR)QB@D~{LV=#eE_J8S(06B)RW$Pk0v_>&yuEaa&% z+gck2X~Wt-CE|r4L_EX#*NM1zjY$o-@KZx&Wf&0El}yBK=!v(WmYj`}>sFiH!$r_o zo87}$uMVrTY&BDK8=CdD)-sr^4+N3*;lE1Om2b&m&wne>kGeO*+H81}nO-WmBC}($ zk_fwNz9C^x#)X9a@w2g&7JIRPkq4<_Ram`MtEj72Yj^3&*KC4GvT^;!YaCGynUV;Z z@SH4AcmpWrkmgL@C_c-Hma7Bbd5xa)g6hj?y;m^*&%D|tD7h*j|L>yfDxvvd3@SAz zeyS?9UU=46sTn*mhOW{2CvJLMoc(6S_Gha5y|-!M8d2NYHQG>qCweVh%6C!cby_BA zYqiVx-g9fUN&MStopwL}&ReJbjenK(TAsD`b%~%hxbRa+lSuq*g7-Rl=qW3|>Q;|t+JfC~5>^u7g(x#Q4a zxTOmE+jAln2xG4(*mmsendM-f3sHck2#qzH;HwApNxg3s%L1 z;Yn7qA~m)hhO7Xql+*BoiDbn9KHrl2Db(FEdTN)JZ{I0E55o0hG_gkOVt=ja7(7N} zcWXoK2gUnu?$+`dyzh34KArcGc1!eoZ?k@EgITuuW5m?n{z#i@zJ1XittY?z;2zPp zH}+_^axv>;r~{wVh>y`#48{77aXUevofX(60)V`|0;k?p`?P5)efOz0CGf_A@Hg6w z@gFq6)*Sof;0it&7z?XOJpJf}{qVSN+i&$F=%)~1Sb*@{#xYiY&-O^JE@ecrUpG10M%S|8MIR?8N7XB>n-QF+OLd#ERSq z%U)`BNz(3DJel<42`mppvcu*>QQ4GpQk!q9RUD7e`jc84WdR*JsTC#8t(QuVIBI5o zJtdt+C~Mj&t%Yp|b{iz^G*VU9p3<5tZ_(~kTHe{-@2%{hA*Z!YiErVI8P5OU6O8Oo zl%}56uFagmDJa_-Sc59^*-p$yr!S_TPiupe73BVx_8z!c%nw=-erElkO?E&lV@r#f zI~Jol_EXCrwQkL@Qi!FD=pvq?&)XX4#vipS)sIvfyW!Fl+Ww=qfR-LXZ2n8$k(Iu` zS4)qwVp}5cilr3)l{OZz-u;y}LD}K0`$~IXf#JEVUdvU!@b0PCF0kTu{88st=LT&Rjce4#GyZoqYKj;nToiaye$sLjn{u4Z66Dmi?@Kjv<`> ziqjHE90GBm9u%6>QyDr8 z(lmWMM)9(Ay`2)X=`hod7#x1Xi#GG{+>TOX9rfh}&Qu()|F^19|` zsj-7-`!8+tyvwrnPD(l?K=F5(O*vEPca+{zZ-F>yeoK9?wd!jGYGCRX;=->nlr@BX zR?(0Ntq)sxDDI+T{AO&D1^G~yA^auFQm?By9rk72Y5vjyb}4)aY|uMu)TRogwfuwx zqz^9qfHeFTR$URYt+Ha{nEPU5E5-3fa;zlCpE8*s+gclO!Pv-P5m+@fO!ujoN>@Ae z+msJ!t5erfzFCDRs=FElAoLfz`@=fQb?KL=mEY6dE0`mhqrfDT8}ZmZ z?*x{0qGcTUA)av|6K+|o0s}jNgIc_nDa0w?Fq;=Q(sO*T!HmMWz@syrkxO%8aQqTR z%lGK#G`GTs>0H=XPtW`m1-vHKLa}EM75d=3i=U5n|MZ49dneGKuTy1x^&44_6`hK{ zP;VCr)fW$d^qaZU(fb;WmtcRJ`9%c z!#^5in$ce$>&N+t{(9FN%+Uh5@WIHCYs zH|^P~IM#{w$79!e8G~WyO1QGhJ91>X{acAF*>$2^OCxcGo@QwT(Dca{Xl(q;Xzc7@oWRX z3HA-B;(hvCGY@JLEoEnEU04g{b=-oGx;3ALN?lo&U)Jvl`?7Hle>u;l+8$F1anz3U zQF>vZUYA(Bs~%Kq$>CFT-9@|T$xHN|YS})zevqyu7uSTgQCvftao-Lvse2WrU8?6m zZBp)s3NqnRJ*Cx=_XCzty?Jeo{hPu^!Mn?*Qqd6ox`ZQqEcp14d+HH|`rp|;hn^g) zzo~2`_htH6*aR0x?0YBsyFc^GJZ z96hxiwPp|3uYkwsZe8zOSn*`&$FdBFcUsj*iJTg2TxDrvQ3tr|Kd86-mTa*UDEELm zxa63CEsouFxN=wH4`z_~bxTCZSMCP-a3lCrE{RXEk*hfF!s1>^tvq^07ttA<8^z9u zzL+Zlo?-|YzVQHV?Am1!)_8AR@1|Qk`hd3FvZES{b$D*E;visfyq}C@TSeqhV>2Q8 z(4%L?G~iX-i*U@M29K^q2tbPIQcZ6?L|os^aa|;UwLx?j?+R)DQASfqU-wZ4=;tRz zRUT6&V)kG|v2gl1NkDoQjze#S%ziV{=?Dx#K3${hDdsrjRn%kvc>$$amL=tsd=dsg z*(b=X3Q*2TP)>_@*^W@;(9RzaP@SPS3nidoWqU%~mSx#?&EBxK>-KWzzxpek?<_kH z^%*;wu@1*N9ky#VlTEPy047%eH8msj2m9515(#+M+`amfJaageJ!+2cyC~*R=ckhxupnLfhN*k%?T_oVHGOJv{jWBI0 z?iXvU?sxzPa(b74K#hE-a4k3>DA(n1iijBQolBl`|BuHIQ_ux zxGj^aM(QoQxW!#iuIetaGUf7DLMFW*Hh2gl-hP#zaMS}fQVczl)?DRdI-^4Q&10kV zR6#EDN9lv}YTgSS8(Ef=QnWp+v6AhSI6Azs>qdjwjiZ9WBf9wc+OE-hlxSz)XnlEd z$p@kBlzc#ry?X16@6Sne)&sU!dVZ&#K}Fkjd$LJnii0`0Q(fb-(SU39F3kS&VU%Hc z0&~E;n(d)&$+9`~=7#a?vbnVH89meFtk#3RCc9iKFen&o(MMq0LP*q>n`O0 z&AC}Of_qjn+Gs)Uar)M#H@!FC0vkL_u6^Xgd$14BMEB7*RmZJDw=A1ORU3>Uk)^+; zyK@{P=Z}ZW=W1{J@%m0hnMyz0rkBSR6=mSC#!SZ}(9mf3?RqzB%_1;@*!WC(?sh%d z+VDKo)7$lq@jLCjL#Pc@VRam#fwu$sAje6!>z$b#D{j|2UB45%OqwqsI~5yd33kkP z7%sW&3RW2wa=8=dnF;7+^QPZ8vz8Y{%AamFR-H%Lq zVS?UT#eNV~Ta4y6ORc$jPUz&9WeHp5t}s%l-o=FXQCBqyM^pl~8oLlgY=k*n$aQd= zo_8F22lXeEcfCb_*R!oynzra+D9H=x_lNc2 zILvzZBl;TUBX9IX_7@V@k@9;IY+k^|0p+r>`!`gde{NF^7J zy(3iTZN_A#*O9rFwIj&Q+uD%3p*wcBKpiFj{6%`DV=Id&*;Gr<0cjeNNyhno!ZD8sneQL8=w>i-aXTFerD{Q{+5FsPzWfJKaT#4(q-WlWTHTd)Y^n}( z#4!nmBMfzPUS+>Ixc3ZeI;ZTZB7axL63Xm6@ac9?M2i2>#|?Hwob2hmA{kZTKoE#| zxltu&Ts%apPIXSFe--J;ZLlK3;LW&T@bc*x&9fZi@gd`1eprSN>CA4eb$bX}c=V<( zwu!1SKIR)@muKDsldCRQxbD_Mqs8aC>t3` z&^zAcVZqW*A4X75jRKV5E>sFxaXJqK8bU$@quntZCG3<5Jkw8;^p`SuxP6WNv?{2v zBC32`?}^~X@yGQ$l+<8MG7eGa#|_@Qry!h=J2Qg!;=x*muyF>$*QVLDN)r_qhYdMl1F zSt)OZoZyJG>Mh5Y;frbTsy>YpilbO^!qxcHjEMnaci;?4&0C)AH5S?Fob) zR?{&2M6jT1m__$Ip^t~aL`H|p4vJL3-raMsX%P!dm3e&9lll;cDKL3a5L;pqbk9vj z3O)9u9)q>kcg%*Lo~x^!LeI?BZ){rKvRM)TPIY%0Mmx3mZCdrD-b}50!u#Hnx~{a6 z;*T3w*y9~sgg_eS?OlS1Szghbp+q9fQs5M?2@^P_YeKZm;}NEUdwkCSLECJ68rtTN zvuc~X_7?EhuMUM$mL-%m>oQ|Ia&ReE1ee5MvJdOJ0lGu2TlYVJx7&QcJM>)e)~*SK zSC%Ebr5nSrTE3BvlhEOX-{m;9DutXLN5f0?htg}xSS0`woD<=OD;3*!B8)Jd4wmW@ z)tW`Lc)ihCZFrvMJYzKXzPLbNpddne;j{YQw!zxH8B*~bH-`GU@#6heRyx$x=s+do z^l19qbNZ7v1^UHmj@2;^8VtgFl77T3K0=3!SQaftr)+&_Z)I8bwyr9yw+&Ua{2vBe zEW#)_9zh5GVYrlr`41bfG4q07DTkbz5wF%iPK)D=Ry0gAQo8Lj<2S0~2(Mf+bwddd z=z9?xp}w#Ybj5KrM>DE>)o%=iO_n8Wl=FnzkSvK3SEv(t1cd2Hv-!MHN)5`G_mber|^s%%8`oU0hIS&`dqPS0cRdxg@ zSk%d~7^jb`12`GC=ZpH2>gIj4?M40kyv8k|&C9ZEzOp*3`RZ!wute{aaBQg*#Dme! zsikz&5`ARCp;a>Zg71B~ir!nI5Aw0Dl$Uf@!e{3CP>$?47LofUeUDm9l=d>hz(q5? z*S!oK4`KBMujmcqcbLln#k=FgehaE^(4rhaVqZ-$wm!XIjx95*prJ*+cyN)|Mg^B4 zZou14EQM<}x$50eEL6SgeehNN9hHf!&vJdRjXxyi2yF1K8{6g5=gak8{A^6V+J-Jz z0f{t@ZdjquRIZ|LSLmJ5Rq%VHgu2&!#i>(A?72PF&nxKKmHLZ;%><%o!@3b!G;%12 z_>$N4k*x(`%1mUZ9qOhPTfm`RcCGW`SWxm0wDEO4oxR$%uj}nne~8Vo@NT?tf=`5| z6`L6A#-o%9y|dWP!e_375bct;0{Q=y! zy$u)pRrJK$de_Y7kIQ8VX+RJi7ldR%^1FNbaeC^oo^FF4w24l_k_&~xCr75QZfpOZZt01AiMlAb|m|FKrt6iQ&FYvY%8X98N-YgpX3K$ zel&ZD_xQ7GPD6>S;u}@((zZ$r(&JQLsTZV3)F9x+7kC^4RqDbu`gIYEEJrcDum)40 z{zIx=qhB7u0aQdeJFL}PoAFaP0x`>IBP%QD~7n_LppIJ(%G!>0N>%{N5@1C5Lw*iHKcr}C}X{T!DU4= zh2RvkjG2oC%mo^Ah6OY0Y|q$3S@~?3{a^hoJ-c3arx#PO9IiIyaM4WqeO~+})MtY} zuq&%{r60f*f)KZbQ=p*7O4kaXpu$|weWX+osvW3ExK>i>oeg?VpMQmZ+n~2==i?8& z7cz4Q92SiPjyF}`F(8~Q2JtgwquwR2WFA8m@YBn((&>eTuJw=zK%)j!I1iF3d#nIF&;k*PI zQ>8z^OmuIRezECSV!K#${+-R%CY>L$S??L`)0J(MXEWMBKVGp}AD>tBTxic^S@x`G zNm$QHme8Pg^p>&0D;69!J3v$4(J!_Zzn@9Fo5LxEZ61;-V=I(HxEwof)t%H~i@y2n z&%Jm)Uh%15jCa2ZhRn9<^x8JPqp7^}2(zN?p7xe>o(Wsv#I_(?0NyWF$8p>a+XC0W zD{O(=-qo+OHZ0DNz|~ai8NxC6`@4E!m#dHm>SOoj$Ka4cZbq5=+VG)oqFu)-@ACKb zNagHx-AKdU*Hd$YD>U7`s8C9ypqi}o`g?i@@?6_K+PmR>y;3Rk$prS`1xyMw%$k+} z2t+7En(xiCyeFi%{MzrWlSRL`P8Nl?F6iyLYfLHc(>N=h52X!Rmb6j5EQ~g4m$3`) zW28lzu4!(@@0#X_WQePt!=3P(k5vxSiS2sM6;(?^Ta#tkTI2Gt){0kfYkU8l)?V0w z^heoRVaaQut;w=%t^D<{)+%4;*7m3z`jdh4kkB8C8V6EKu}SbO1^gMlB!>v5V@3+k z?eq-cxn=4VZ_&#;b*HIP$HB`^Rn$cGw+=?1N>(XR`EH?QIKP;c-mTkitWY1plA32m_KjnD>VSvFX?I;_F!)%5(w z!Wv-Gq?(WQv9xfH-YfR7Z&xV{$me_XIe9g2g;p%fvf}#6u!eS=cx_G9uC{1v?EL5s}&1XC;FPhlqP& zI|;TcEw3VI9pk)nKG)YPd3EbTM@p9ENHuN>8>!+ddhCEdDtX>^RT#9A!^~ncibbVN z1B2bc8i<&=L5!wDD&G0xWzLwu8;GAMj#D^Tnp_iYDREp;&HMEhbQ0Snew3U^MF(N_ zmTU|KQkEr<XLAs8)&>Ez?5`rHbue78UlQz+`F-l~I?lM;z+ zMqs|PJhS9r^*U0U?VvTuSG}I2dYr<7Ea@vq`umURErIK~$Ml>?exc^~bXt#lnSWG6 z`QwBdt|iZL#90p0%HxRYApOhNaXbzNJ*eaU>KA{56z)Gj47l{UKCk{Dlg{;d$@HMl zog>SZg!#lOmar#qU$PqUn3eUa5}Yv4Y?0MQs{^`#$R9_M6)Qeg<)J1RWQlW9zsJ$x@Yz#3BJA|eDLp^o$a3k9!+CG+W6LSxwC<5Et6eAcOsZ)y z!a-dxF`{YqX}y;pX&;`}&l84d?G!1y?hUp>17J+4Yifux9DYd_L5ohoD8HJX`rJis^!iLDL#@hAOMUd7^27osdnrdhf#jA@qdqq=k>i+PgM z$fQl#Mr&*B$@FhUB zol5&vkg4d>fl{g-x0RKF$O(&%Hov|_&) zq9y^*(pPx_iGSggd`XU5!=bQoD>|G(u4IGLhXwVIN;X!;ARPuBhnL`wJKlp4FW1pv zMNJ^M<3~J0AByHbNBni?815eDM6zg2Ao=_doch}gVG}_}t_mP^XR2{X?cR7Wl%vOQvW}~UtZPWQ2fcV#9z_ZVfZWgI-IRF{PaI# zYk9>-Lcx<|310O#Vc^w%6AoTwI<7}UM)XefBHEWs-~5e8nxi46L=tzdBfMbOsMm|Wumz_&2h=n)EE z`S+pl$+Cp6{!|!zji)kbVh4j0Ru*8YG&1f*xb^Mv%g89#}E zC;`j3MRcO4Q9>O$8fmW2l)%=vy_<4sw$r?0J3`3;=}hQkJnVC(pEaMMIZfzobn*`D zY7jf|B4p)XnIvAcf+O+vTKFeCA7``0XMi z+B>1U@uK4NHQ~<{2oe*Fk-2wo%rrAY$I+Nbtd5ykm7GGy-qRw-iY*8j6rZ!Z;Y27E z$g-q@iXXzLpy~&nM4Pa!Ao5j}N5V~)a}x)Sbu@|NsW9Rg-O~tI2sY9l715gYJA6Y73lhQM2PI138ACt;9>S_Ej-Q? zf01$Nze&3wBa?PF2Sr+oz+9r%D!v4C^nB3jH5Mi-ZZsPqD}=|N=PpPuGu-czjGbxeK+i>8;boy|J(JA)vI6)~90~`;Ndb!cpIt~{DE;n+W%vyX@ z6n$=0 ztQ`J0i_+AOKJXabncl)}{Qo?&EwA>sP%vd#f>}B_49xP$G*dVFpOrQ_msQ5Eu|L!i zlQ#ci{8}WRqHpsIV;bgC_6Xw&C4RqLU90k<$U1u9N@LugrlX#@(ip4cl}!rux5%>W zRNd6DPBl!WSyvh1OJO=w-Bm^`LUKp1G76fkd2!N{qm0c#H@#RLGepUjj3q{hKg3YN z7QtZu#%qFfqf4(bT7#q9evQ!|t3Q@qV{8%{%k9@0-Qj3@{yNC0ailyyqHPc8M8R|J ztQl)Tb5cfKx?FGcR0q^g4n>D7OLUYMhoPggm`SlyP;47IJJ{41BO$M1T4+_WEURjm z8CF%%Ec$tjk=1)<&^`HQPU$g8|{*y#`p;#4xb5MP?)bGn+p;4z5J^EZ*_CHFvj-|C8?&9hsl)Bci98T9%sMwYeY!>_QA>ar}Vzr`3I^$+Zhp*l81 z(uo{bMzf%bV%U8z@}FFH7;Uj5>T9|jOKlQ@*w*Y{A6tzY0Ig@kSG)9K^hgPPF;cNja8 z8;e8fwXv8++-Y1KNWz4v_ZfVlkN3%@&377`vYz7g9=?n*Y{hA2jA3cahji$p+sz~=6*gA*T*=Aw2>u4HvvyziC8v8^v~H5Wb1{)fhTP~c!DY!=d#yp?7DPC6{%U&UihGRA zc2yzEjJaf{HgZ~BU{Bn?d~_)SYd+GP~1rTaj#rqeUx81wU;K|Z?tj> z)2zrY>pI3yX6%*Q1H6Qr?y0m6pSpzFjiqIx#aH;jZ|0VWpK;;mTKa`66ACCcr4z3m zMMUYmPZJhFQ!os84o3kYpnV~a%c>%`YHc_4nJf}8#p^6HWwc; zAZfC7#!8(`%C&HHU&@?Zi;Z(X>s}6%f(l8EPjN7Tl4Y{fU!PAQ- z8+ZMYBVx;B~*b zalV@kyW6{wvmfWJpK3Hy^D15mC0JQDRrO_I1lzETIv0agtXAlr8JzxFY()FW_ReBs ze5PDd$B{kGDs>mhFu89qWonf>UiCR@NKsPR%*cb;Hj&!1O#IX6F zjj+?n8HTfclXXy>YUE!BCEP(Gk98GYFw?lt6Y#X~dosfni1T~n%0s)|Aj;-ET@lvp ziWT(BOrs_1(WYoVQ$Wpox1S6}H+ zNr~~0$)chFqu8a={dQ9p)q9T7Gk6W96+;otdDCfBK{+;Yw(_%cjQ0NJNfS^LmM7KB zF}nGeG4VYtV@i11=;~)be2>}B)5eW{L*cEbjW;m2Z=GwbPX0IURx1Y5 z?0H{@jSG!V-F*8x_`eWc;X2N~uY))9StDBMTv-v?Gg(H@zEgZVWx?NKfyn=V?7azi zR7KV|-uHGV>5#1x5)uL--ARD3gD5H>q_2P|3S!so!5PQpb=)^}X52i0WUx0fU^zVrRx_u>0LPs>cY_Is-8oKvSx zojQe;iX`w(%|{rwknEt`3w~jn?je1BhR>Sq5*B>_{uWXnn8eE)TD-d&Bb`1}8`eLH zrfL?l{-FS!iXlYAjN3ZIBg5{&OYrbX3_>3Ek*heNN;<5NGc4wecbMxsO{n2>!_sA* zOQ&@Sw>X6p6vUhG!}DBo1YfHjU&lO#Pb_fZqF7z096Wx5V20`QUAf>BVg7RxLoXc$ z4fbanT*s9RY;g@76iz9Gvemx;NbvTQx}0|epXm7Xw{^<}8J_yCxRCb{YF0b-gS-sw zGs(Eauh)dDi!JiVV1a8#D&25IdB}KV=85eW&d*1IIl`C3{DrQRj%46D7;6rFfV^t> zK7dO|8&A?ZH?jggt7wY6ce#2(1{t`^^(?=6k?Y)le^@tc zpo4E<3)& zmBBl%aBcbD90|Xi7q<(Fsy`QF9KJI11xs8luGXddK6gE!w(@t$uPd%EKv0+XvAsf* zgRZpwv%iXA%OP;A&M5fIQ2e+=1}$|;l+{nDK*H$aCHq{<6s~>bO3D0xmi8XvGdH-> z>WpfL0HgnB2=IW)*Ok>9-2b0bVU4*Css#1s|4{PB+~)vV0t zT7@f1Etth0uW&W*Vcdt6iXr2stf`VpZrUqVK0-_6(@x-WEffdBW8Hebu>#uAGX714 ztF>A*A5W^gvO0)uwNFEH78)9qFSFq5m87jPF6^4BC~|lrf8a}Ov8(y8FI~-Z#s0>p zjv+-2T_Zk98U?WhC`5=995X28yOmOdR6$ys(<@b|5xbiXB0{CZ@U=WDm48U~z)O+Y zhoqir8X|}mhNDy|WlUWm+KMohQEVDdKL~YH(Gu=Fh}~56GXB6pS5|K!8IisQMam;k zwJKP5W8C34!5bBH9`ZuJRQFUzkaNE^eDguqQ;ocIC)lJlhK}XNuUz@jG~I@CKP#_( z2`ORX9Ltu$Yr!N>Ahh#Ns z1OMk~S68^`z!QS^=Zd?6aigjXXooipN5GBZujWXhblN1jvUQN+v7 zoN={N!g$(Q*L|^j;LV=)yLs^5U!wBiXI+UM%l&B?aP40rWIbz!VvmY}4`kd1gZzQ3 zGj=Q4ca96=tIxVL#msBYx`xL6YULB=6iuQW&)P(n~ zKW(T&viem>W}b7rWh!s3)689)4C1z*MuqszGa zj=DCc8xpsQtpz?u(uCdG7iSRg!AgRJ1MzVDQWE`S9Ec*KoK+KYzki(s(CuH(M=L<@a%>_-++n z_l>Jl_`Yn2xkqu4-PJXc!h|_Td54oOhm67!;wb;qN!Ls|HNJ4tH9|A?it@|V)D^LX zl5r2Z5F7{D)QJ~Rym-wi*I!hdr_RxV=MO!U3YVJ3@jIo4|4O%g5(?51B$W-A=9S)*dn1n~<{C$1=n zHzl+p;SIx%ZX*@vM^Sic=XLQ^1)M}s9{<|~S10pq#l+)Ps1>B=(#so3Fn*3e}JN>zDLeJKO#|DFQoGoue83K{PHNT zw(ibb{^UxgYq5gEb^pFp&p8P>o;mFdUEJ;74mAUD^5^kDcY6Yg{dJM{H7M z4mm}{lWaIH-S)9bOQ*s(<`W_V&Wc8vH3ub;TZuflWix48H=Cq0vPdMAiXXu60F`?}y8^u4d7~B?uM^XfS0;bLphLvNol@lkMu-6yD`m z*XP&4sJxEP4H=gTx5CQ}>XlqhDZb%1oP=BlbMHD8Wn5OQ{<%R#PfZGc=6Bc3Zn&IN zr=E<cs#9OaQQu|a1HXm`j2MMQ+%Rc_lv4>4 z-q;`(e>$_KStLxjxL%b4mdOdOGcN^xSQgO7m(y zWjlkNc28!-&H~|7K01Omw(mDaoT?l$!r@UN93jN$gVD<=_(CV`({OJ}f18`4n!Fo0jlrqyBE!nveMX!#FslvXSqt@~8+1_Xp)FA{D&^n~7=+uO41xhtY4pM&(ahhnojD#(u2!);+H$HUn6|O z^;<{Q*HRgQSNsT7aHGJOsZsptPOOz$8NuVNlYe&&)FuUI8weXk zpt=vbvOenXQT%dOc2l_It^B6z+23N|v&=Aoz*Pml`{3a8KSkllkBU@&CD<=e6x`54 zUWtemV*+J%9qvrr(4jiv5m<1tyeg9Lut$~x9$>`rPx=k4X8<8^J8dlMX^k=vf_S)- z$K8b0?A#5kDZ%BloiO0a5-d09BOCtsBN5^wPx?MW+ZR#>ScvR`I~gWBNlv@}M>}b~ zN+;u52$mlqm^~?x%;Y@I$MCP#;iISia8$#^2iw)@Fh(C=u(mOGraw2qg{MbeJwRv{ z9H+K%B^Td%Gs{r<(>+*owcs=#*Mr^Ls@_fGym#oP@hifH-l1xp#ZDGwf9%1Yr8+~m zGrRGd!sqs6ErS-G`b&7NvG4@0iP7|@^VnP1bZTSaE$j)k;t;p>VkzqP3H;Z7uI9X7 zFV-$`mEQoEZmD3{Ko8>TN%4waEJ>-iGj7e>=djxYY+_grYo9VnrL71(N+wQ(=@038 zJbY6QR!)O9YI4|LEkql<%k{0B_lzdQf!P7&7JciJN-Q~2Ot`zQm>?`&f`o*XPL>_E zV-0bwBTm*m0FGS~;=v;tdnQSKR~T9aRXwGl>f8RR0qTk2T|R_(Gr50w1dr(#-i*&p zVPwcP>sI!#x=JOe9sI;CE*tOChoyBDt?%`bvmJ^|J6__mV2>_@Dn$rj1Vos%54iNx9{$ikjN_ru~)PFa+&BC^x%GK2|k~`89L?M!^o?6@pJdEd~zsmWo%3GO24F5 zMk-~XtdtH;Fm|It!i-AIrxo{fvpAI`g1d&W-fGn`T)AOsKJK@22peL2v^efwW>c@H zQIU*KE|p>tHLMN6O)UXgG^mTNzp$+E^Xo8|3g2)a>&Tbc zQg}!ZGzJ5ehBVfKr{9NB$-R$tSMvBr_pzJ+Gfbwz%H*y8%6hdhL~SU(ZqKmT8{KG5 z!TAp^y^|-~>TmhTzp}r8tsMO;YZJbFvk$T$u_RHp_0s)}?hehmpS34bpwb5t#EVQv z?`MDWxtTREK)RX50F2|iauWLTf(KZe=q;_X$s0JCvTfu09$*@6VpcxF+S`B)(3nTi zEqsf(g|9!zUPuZoYa|k)7ECuD;VU0wC8^ku82*mUTJfeZf4gfp@#PP(UcQEnoBguQ zV~?=L{HFh65B!^k`JiW56o2kvrW;KNeKo)MFdOx6YNgU;g?tjhN zx=s9{N7%qRZ2^oiS8r=wl01txYsQ(g7_JL^;A1QWKBeYA&ThDR<#T^nqNFK-Dm_J; z{T`eN)P;QA6Ks%g;P}l?GWpWeolpMTnc(A}!qC7;Etm-K)B>R@!-{(Ws_g{NdYbjg zsyB&Yv@4T0haMqgHL3}vg8HvZ)>*|+!b znM*~Oz$GCfWJZE>&i3*FFR=8kW0X|etIlLc0^Qk45RwHf>||<^NF~YJ*Hj@fCO+o{ z_6}fi{+-peb25|>1j|4F&Q6I-Pq>v?=Uk%=ulXk%kbKOLR&d3u4zK(3i)^$x+usMj zOMAfygCP+tl1ID>*%yn}+*eso{@APR23iUcnGf)C{>8GeYkcHitkm4(5ql&AX5Um| zZb^kby0}L!6a@CVw%k?75vL`x(=oPL{I(HdMR^84|8@~+!b?Z6`|$0wk<8xZPY|Gd z_v8b@nUHII4u<7*dFfmsC7e4)!Knft$(}$H$|#ls+v-3Q#^^%oqH!R`?RU(;b4Ib* zS2{&%!(SfFv;_ZX3kF5vckySVSqDY;542ydqD%o|LzlxOT}pQjLE~6Y!PS}YW8fGu zT>luuMuOIB#<1@GeL2(^Nqk@)>q0aP+_+gNe%9x)yYHu!RyZsZiVs@hab_o;lnf8P ziyZ!zxQy)Eamnk*aM4M-Sh|`KCKjS^VZ*4_-@#%sR zPforZ>>#nyM+l;y9mYXFF*%GcD{g7$`^T{ab&|^W3~JPZcYZG3!lTEt8`36*k=jUX zS2DuIRuwV18}aVv_m5{U#12cPmzHE&;XZz3JZpN@4Oo~q=ZF;djTr;6@yrQW8DHVK z6CidBAb^KNNzZq&7I1g38p7NL=(!L zr;^fn+M5t<(dH{}vbOCe`S!cEZxT|2D27lcC`wWT-}NSRw*?h5rZJdvRTMX!#$Hvx z1Ex)9cQz&YO(<+2o{4QM&NW36zcif{#{61j95!HoaEULU!TcU6D`&8ugjfiq`iirr zw+6Qat)Cy|H`YZdAidxKU@}tWVtkMGpnT;GSOf>=vx$j;4_oN$lcXCH?|g?PgO|)< zEqS+@>^gMeiJ7cbFTqX&8+Q}XOCl&C=1ue`CkQ*SNemhw=*xG`WFK@OR=6}69eiMd zmje3&c!0O#RPI;TpT5p@9d9&?ZT3I7nG#0aQ>g51MCf)9I#B?oSsQI_!?@;-TY z480;pHatFVj<rk@Y9jZ}ns@7TC-1o0S2l#18$>@fwHk4Yje z#*|74^N}$9JnyxDW!~stIOP7tXg)}P?psx8)?wBTmc;`hZ*EM#fw{|Y26jE@}2YY551a6>(R z3G3=BGk$c#GJmUAX3rJcdDJN5>(GHb-gz-gBtadmL)r1lVm7cPjk8dY(E^RVBsOP( zy(8vX%n?7mn7Qg*!Dzytd5=Al`$%+i3@H>;RS81F>`w!Z+}q+ zb;=d`tV(EQA`qk<1Pw#b*@=N}1e^hz$Rt>aaB&j#4oiyq&D4*8CoJarQl@v@9~L;6 zp~HZ>*F|Vi^&J*jv}5CV1uPA^`oBy%aD#{_7(|!`2?WlKx-4UjQ-Uh0v|RZQL+)F~ z`uSzE#mm4|PVqy_Sl77yet}TlTxqeK?dwRpTbiCZN_0~2bon49k_$R%ajam80XJzh zK7Tk_0^h8UL^l?5#OJPHO$;P-J`$Y(LKU1N_&Y*VDaPZE5W&}We1o>zJ`!yU2$0f2 zZfCN&*)T5xN2|s`2&9E&5xjJ1Oh+ERlD(u}T*-4+viAZ?kuLAEU7ZYZ5?z(EiU1}v zL&2b7l~Qb{{976^lDy+8cCp1H$iSe+`Z^el>EP|!2W-(5xpkc2)`pxx$5>CTW<8od zQok<*04$G|@{Oz6z<};0lAqs;tFnXMXN`FI^-9wSI^n~ribtZDT@HJ)J31`N9tl!M z>j8n`!Ymyz)1V%oaUdgY7TX~``sVHI8DXsN9@RM+&u z7ms>Wm{E|AX(Dy8vQ@szk9-K54E+A~A-mrU=F86yh`xbO`v?-=)?>W-Beqrjtg^Ud zEzA;7toYY;46cT&Ed0DVHi>6!U@IVzf4+gWR)!T{-oXB0QP%P2K4wSFHHWWYO5sa{ zD$u!wIimBTRqPs6DEV!Z`KDd*Dg2EsEU8%;%rCK!3h(^3(>_eX$(L0-Ol~$oG8Rr|ee3B=M>tY_d9+u|KyWr?B#Jr7=^Y!LWdsBbDt% zWvp%ZBy4B!X6v4(?-|VRyvJpY5O-CJ4oUT~{7vDnZexjQpMNg>5YX7~Gs0$Rrjx%} zo;k_i6#mUN9L+-rvu$U$rkxJ52s-b#2om3^{8-kLzbUz7CVH;Q9F=O)tS~Tvv3!}F zW36O&ie|C7P0~j}T~nR%ivd%ey%&9^I%q2I+n}Zjwi!*;>@u3dLL%&Ot?1ClM?QRq z^ENwJroA@ELTdOI(poCaZ~0U4S&$WujC{xM+{qjX<-5qmRKOIcd>7B%36+JHFWAYh zk0}oth6?`8PS%mO%t^c00I_BM@sWf9eEBYH&khF_JZ^-;qXf$1t?;^^m{WXq7tRgZ z|H)x-%B?b4M`z$PL|$s9(+_c}S;+vQ;rZnLcm&zGUdf0gJ9YT4!ae6DdvNsi9Ufv~ zPX~AjPHQt;HRIK{hK2JnpR=c-fc^1vwm!D(>u~M-8jIc9OuTls@e9`c*5zv~4hzu8 z+84{}XO-a&5+rO`W3dP3=b>bU3mB3a!?9c<47nc~EaO=;)p!=I%j$cY@tgOus0iO< zXan}btOI`Q_p&VY-c&xN#Xa_LdPo^O;Q15LNnF{-9*sDr(oW0-YlL=*DOd&nZ=OKw zAROALWNx2zMf_U+aln%5eV(?T-RM&q8LUk{Gb-M=N;}B9@HzY05IPkYe6Op6xC%UF zSnDL-^8jnp7WaX%64PB?JnJr9R*Suvh2(OOw_u23KgA~>V5wQbZ%|=fkQEJu5nY4E za<-E1Jiwj{@}fzFEXI~ggh?Ou2*0m_jZD8Bgj^%eO1iN|JueN91HL zRYs=&+pgYu3-&X(WkKsW7+HxDA8rad$@D49{5PPl0Qj>!@hjHskD(v*6-!B99R&UQ zGxee05e&VEJjNe5#Nu(t@cbdxB5dvZbd)viQ1H30vgRHc8J~WRS07eEt{k*B;g%Duf1@uB&|L;coOXb>KgI0)#S_fcsKSg|M8E6#7bn;Y z%E{t>->@(xCXjA%#PP|eKu8--vKG<7pXF62v9H883i@Rv#*-xJh}PC38&al zeBjqpYzUcy@;`mc4hIC(p5L+SJ5LF7M3P_u@X;Llz8F2Bo)3~ezZDq<2sa^kju(8# zni2?8s&W$f?(f*k!54De%!v~>qJ;v4wf#KN_84@c;wq4@LLQ!CBGwJz9cxtf>#xCA z3Xb?or~=NhsIqAIIk@J<+G5F8`AcVU8nuXf&$8rJMvoq+9?7|U4nbIHVM(W%BxND` zIJjtVB0qMPb&c6@N=Ps2-N@X`9p_j^aJTO|$NqtCZ$8J$T8;cZT;K_{J?{H(fhg2? zHnj~|RkqEGs##hqU#nDh^C{t)NqJh1`?J6iS@t6Tp_+MocpyOLx#!WBl|27E`#Tv5 z$6R3Dl8QDoIG``xz=vF5jxJ^E>RKAexU@9L-_)R5;U@kbs;NaA`OXV0bx6@hA^Si@ z2nSPZ8x+r9M4s$$HMCn$F0KRV?VNAlrAO1>-J2>WzP!6HfXqLERXq_{i93i z8+EJ6xKV9F!)g=w`#-a8iN3px(4f;jN4kaM<+VSvA@+Q^@;c~#P9vFvnSBb5>upHCQl**qMt8L<6Snn0W=kp`9qgj4;r1hmzY!enO9z7 zyD&B@E;G%1V7GZjwhkA6zp!~!WW_H~6prU-e_;zzWLhmMZr@$JrY% zISkcP8+_RFrr&nO>#bW;#tn>`-k@gT^y$m>4*v1Ol^+^Ea@psdeoh~vCp*U&}2Nz3*cd8e^;Co_`_+J)%DhmE&(KR!;ix@5zrhlQnQ^nhaqu_yJKHrLhW5V^fm3MgC z2(>nc=LT@&SLZt>hV*2YD^Fi)iL^Psx~Rs--TtUm>Z`b z%B(#un2jmTZlPtWB}C+N$HR@QBR0g29_O#y^p~jq&o-S9Vg7UaJv=X7AA~k4;xUTA zhNJ}jQgm+R^ty8@<8n@`W;K|Fnpu8q$eUTWri{y)-nk8G7R;rZwc);JG|NrHGAvnq zV!D1N5`;w3pe>&-%h7M)rFQ*qz>by zwDWCHc59JD%|UJTZ`AF{guBIex6```%*tzTU{-T}vc34|D;kWN7$ujwRe-`@GZiDUh{NE`#VHgK#tkNJ^x;sdVJ?**cPYxg2V`{p|R#^~IN zxpmP+#wEH`E=Y-Lf>lH-AKzSTR%!R~4z@a`23N!u`0>y4cHIVLTsD}usQ!e)^nFqB z+}?V)QWx9i1JMRK^^WGkg$80E;75$2_v*K!mA=P6a-zfA`6Z`5EQt1Tp_`A?^q$J1 z;!;h={TPs6uRa0PncYXA&Y-?QsI$DUM4iF?g63gGKQRy5Z9%9r|2By_FZK_b#l8LY zkAOOpZ})SmX8i2!`Z&U$SMSjOM4al2J5a%gKV1gsm2s~-?9#m%**{i=^Z8x+w&u6p zsV^Z;C{T0xGD0_jnw|N`yYz?Z;^&|F$btH;^pUcG`T+V!eI)I|7Yx!TE3X${f481< z1th(RN8h9W87NX8Q+x9;7n%k)tdFj}`6-wFR~pm$IC~R6#6)92++J{nt;Z{tmgdOb^3k9HxJR* z#+l0(NnH600)AYnSk?ens+Re&wdTFL*ec@^TRlY$YI=+KQ;+Klft>MA=;Jz$TqoUK z5U2ZLt#7AEobI?k7R2ecJ)!qD7c4gr8Ua6$g{vBTs$>=K`=sP_Bc2SPYvq#yUEh2v z2wg8cCDC>I(?RI^!_)dyGlV2Q?-J`3X3>7#W#$k5BO#U7UV>hu$+P-kb!s^;y3Beb zb0o@%Oh_s{x%oLcrGZt7#1$-1H^(*#9{ff;Jwd;%c;8U{J437h{g@=##1x^C2(ktsmNY9PTA5 z%}%&J8`~JtL?v87KR`P*760&|9aAl~A`6U2NMnM0+iMO}rjo6iY|G6K6}u_yA84*Y z+O(-PYd?QtM%-!9F6N^>+gx7xlHL@)=q|scw}6hL>C1Yv@FmNHA!Q4%-jP54vL0mO z`TEOxzbyZ020>nJf$vz_eF;d*v8@HHlSlHZm-ScE`B*a8afI0$XRFOKnmQw4qE07v zFawFwJe&`IMem_-zWxePQc=+D=Fa2SZ zUHC8kiyNeOvZkWP<+$h#Bj^w4ahDp4aYF?{wXi8~>Q|OT$MNM$K;YY6)5*`pf!FkZ z$gkW^AF$v9Q}!k`=F5la>su~_P9s~5zRj%Jyh@pid-rVr5h zyE7UWKbEV9DT%>w<_kC{ujU?)o*dYI&-3W*0M8DO{tDpfJ6!LeEZ~114rZCp%_H=C zjW$w6Up=CY-dAxlkB66* zQu)bAzE9%nzWAhB6WIkad!{eDz@I(70ytEl2!P+B>|$+{?oxUiqX*~(ZWSqF3^2!- z@A+SeUg7X)IVE3VzMF8*%X(%+Q(zq4gf9MVw0^x3e|Z|PzZ7@X=U{BY=u@|j(OW99 zUw$oJOXtBB5*EHM=IP_Jq~(}IGMYRbB;dYIbl~Lgjn7Sd_&B{+V8mLAZ*uQgos5k? z7^`1rdB$M@_uJaIS)2vNQV>>i@q-hbWjt}5etTxakBq4Mk#nWoGfwY)wQtzQ>kp@j z;qhQV?4T+Y+N(SwL$kKxD4#f9Z&80BtD$f~H-iVV8upe~8%WtH-$3%j382}n{O$>Q zvbyNA;wL8P@2OYl#+bU@SiY%VH(J#hs;!gt>;6ACvc#)PXK=r+lKQ<^sg5Mm(<5H} zMMZhLSf8ptW)35+Sc&nLucB3)zbS?(&F@_JBskc_%DfZ0N z52$gHy8+d}-KPE)&mWzwx5A;!#MydpWd+|kTW^}ZCoBVY=`}dF5X@MpaKp68yW)fI z)sSUg>>T~JXwhJ`g63wODt>5=-c`vRe-b*YN{O5q2HjQy!-;Oqn#e7Hb6%jXFPFT` z1m#xN&8_t3UN{Es@0Gcm6{Bf#Swoe53gvj4JGz5Qm1DWf4cyi zU}XRGT~TV{yLxKu;iF=$G>ewL;j7=(yR{0Y4&r?#ji@7t&zk{#36EbCOdv_bm@@gW zMS=+DFVb(sM18qPe=I;lF>)<tVUdF!A_U5r1hZAo22|rTV?@X_?(kPJ5(1tb=Jff|?A@K=4)>oP}T? z8Jv>|gO~26zA`o!8U0}5Vp65Ff!mbj4jc>Ow}L;gOm{?9Ibg7bXf+?ZOmCT6*zQJL zy~C&4n2QkXESo85M+)?C94Thul0VtBPCSdDv}udSs7_C`z{YUe-_aO^Yc;jVG>ObH zMyANY!5ki+%ByJ(Ym?eWP%*-?CR??1Q$3J+DVT!r1l*5XuIJ=>jWlaFb(9f|?xyA$ z!3kj*Dc#g*6icC+1(6vk_7rDszh*#WQKo}wLd))^8WH~0q_&4xS0o~B)t)!0rA9F4 zCiN2$%vSq!Q_Fm%Ka0sl`2rEec^2@c+z6KE#gZ!0Lz-JEmVe`hnM%Ixu zBVk%q8t%f_Q>=J}q!|u`JpAGcy?3NH!x2mM^LVc!y;W3U0<3ayorm1Y4Nh|0z!wzh zAG9i@%R;c%!WnOhsBW@VwT)JBKLJWraX$f4%w+!hO7I{&CB9Nm$t|Pnvv2Q1pGw2Q znPC&PmR$FghC@asNe$Jo(!MGJwgJE{+Se)@eqyF&%KX2+*1>6h+j z8UN*ug6qL}vO+_4Pt!RXfeP+ir6=0al3mOUdT3W+KhxcWa}fv48XEE>@F}Oml4Gky zjriA`J@BwP=WngjQ(MqS+M}(Elx5oQ%1F`6jFe^>Cbxw|m(N$}U6cy`{AxWjw-H^; zg2(~$Jp#{5zm4jGm!IGVZys6saZVfc%KW;<<~D&k+WrvPn&fVN1WF<{t8 z)Wid2@asunm=(Y`FCinPsnax&L_EsKPXJq?AUrrI_+8|lPAPLJY3umkK z=5nao_Ny~S^``JjV`K(?Sq78&oERmu93_5iwVsw47>o=v4ab!Rz_CVe5>XwWp~7P~ zPOCbl@HSs`j^Pil(eLasFQGxdj6Ty?*gT3v0DqwhUb#k3j+H|Uij+efR;;(r_0W`y z>rS)}7t*F!$BqGIF*7hY==#J#hO)Z98x^z6`+v2T5 zWxbxlcdgT}zg`gfnxBc_K#N+bsR6NLTnH;Dn_xnx`JnZXtnvHshkBM%q!ZsD!#B~~ z#P`YJsz+(iRG^91Y}3OWX$DYbS8is(f7ncikMyjZhS2=l>^}l#3R<~BpS(u|FZ^%! z>EcIv%PTaq8BQ|)lcBk9t$uUE`FeBv|J{6bT6aaDK0j;vkARxK?n*$dJ5AVu@&6Bz z=<)S>%PUOV7v26Nn0BI-D~$KIv%$sx161s~LGRqkCz7bdwv9EjfR=B(CNY7Qq5`pM zj@_W2Ztp8==^sP(5@G=CQCN)>TY)(RuJN!KSg|x?E#Q3qMm_OXu>_ZcKM_Bn@v>uq z=-&)t7oO*E!mi*4`UG@Fwnxd-TJRK9CV_>(q4tVvHtLZIiIV0`dPikc@pYT@(F$L? zSx+D0A?^kvk^Xjdm}VIR;*A%k)7h%m2E#QK3p*4?&~#n@R7Q$3<1VOLMq-_=G1*g= zkh=Lg@ zu@?FyF+4J`@Y?*sj*3y1gXS=i|KGqr9(y>(nrlyqjWj8$*%B5WVT}aGcAh=*;gWC| zX&`8UA7afCEt28S7Cwo!FFy{r4LoL;zge|t=>AaNC{sOCTsbzO39V+PxD9QhG7(e; z_mZidlRt?g^juNs>`&6unN^FVmD}IY$)Jy&4f+@?l}%*GLJf_$q|#ZuXlLvtY55hQ zMMc9WugMuB%WUlGFY<{DhG{Y4PFb!Go{BF6{i^)ZaEAzR$P~)=sSVo$WwvaWrhoJ) zTFdFso4~1A9WXil#R!`<>baD94D<#!A`ErplGH8m8{VrGhz39^iQD;-eBL4KB=?rU zZ7KcAnnAdY#aJwzal&ZEL@OC|!*G8F;DHd55{w1SV--uc<_VKa(_^&%l6x;&h_Fsh zh<2Djg(m1b{73{LHij^>Dh+fQ*ewXSt0i4xgCOCqA)2&kYqpTETun5Y5)~c87k{ib zzhg>xbaa$GMwkRY%y;{e zwQ?M>*DVI;GbqOAeWDLm3iboV2;PT!SI75_)Z&q0V)k)U2d`s z=TB_WM=4YJ*)5P5Yk1UFy=khC0b*3K#|<7;-fOF#-evSw3>}8eED#IEYZ+1XCZm3} zNvPIDjySg5vZe~9d zkzpg_cxt8owiDdb5_IPEkFKFM-X1HgPFcDWZ|(Ew<@*L#6iIHoad5 zFOmuG^69tU_MjlJ!&@Xi$iLpEw{DKjx3eQ{+f-ar$Q?}ln->(%H0#x7@CGw0Pqk z7Vh1lC-JAZ>j`2zMBfnGH0vL4(;$}xwrOT;)Wn9LwrO%>iB+j7#>5=pSk$uIngwkg zn>W)UN&VeO2+C*#@@>Qpy<@W2Q`wvLmFv5Ny**&RbBCUShu9z40Ua#ds;-7ay>N$~ z(2q8&1i#p3;2wzYKiUO*0^7_nBvWG_gS{?*4s4-Rv4!&TUw7y&a*^+BWW#&jO@sD( zV*>l4YV1$Meh=?jgJ5mK{{a>YS~|0Vp3dCcVxnoqQ?%g|ptLHm2+iG0t59hH^Dx7t z)537nZiVXL>XBvr@j{Gd-ori1%oE%L$+8mQ7Q5Qumd)OQ2LG<~SG& zs|X9%i&~XNEj5SGpaQZ1Im9tI3{nWeNMAz`E#hpa-Uf$EukX}b5z-PA5^25lkT&0f zFDzOjDhs4Nxl`}ptMZ@#s=6LfH3ZZ_QKj0~6=-%~Lj1a&e8j#E2?IdVC_+xkrDH*K zY7wdBJi@au*0!aCg#ybzJj-_JDGyamBrrS#1`SV&z3J0SGX&Oqp+dke%$i|>Kr|-9 zG6Wnmo@RfT?PoZ(G9%~^o>@+#47J_AOS}Pk)$8-?bV6ZPNOSBh9?HJ>`3v+@o0VISCCSD z=T53PuuTaZ*tYafS{?D+ph=mT0>r`T9#QG_L}~Jrq!P3@M|HL~=+JkDqG-$aqTAIn zx7tDq_LX~KDU#2l_vu60h=KGC8(s}jU(Y~{22*exjEXUseBwSFmgn=O`}Dky-gw9$ zej*dR6_*Kt6__ksNfWh5To-2L1;zihUyo4I%SmbJrKx>yr=TlB0jyDyatnCg0sR%U z>`=`)5cDF&{WIa#j$Ah2ph+x%U=!3#5jAsoXK|+r{Z6HGe!R^aE_7N10m2ybrXp@k zA^H<<4>x8RYwVIQ^%gxuNvYbx;lyq*vr<*t_PgTDGRCmfI4lDG>_Tq2%*~`Bv>eo5 zQ1dtNmk;U#o6=~3xq!+HVM|aMaj>HYC6}u`2rf5%EcLpSSc5UkM0>pLS9-JLJZO)+ z*dsKutq_C_K1S*z> zxd?q8QzZluNFb7XkkX1gA=7>fO-cQ^>5dqc29Z7_coi`!S;gj?d#XezLd}qbgX@w4 zU%W(oUK_D1JY5tiFPY?nP6W2jVfB^Q_{m4XDOQK zTe*V1jG9P1gsxErcC;vH;~Ng?t#Ra0eCiNTyjh+tgT~cH=n#d6Q-sv1kfzSd?>nNm z5A4h3QNhlsI5I4y15Y?uIxJ?3KEanC(bHo_|Df8&lkjh$!9I9I?-q4NlqnKrnjO_0 zxt|}QN(Gbv=L%xv=+-|3O-}|EHLwA(kIl;tpL4a_#<`K#e66=lBIpj%l`z6Wh_Lttjo)}& zzrD2>8#`7VIWD*ei$w>6BE|$q0|Nzq*6>Bg^%2;Av^}9`Buot_q=xr#&E$xo-WT!v zPv}``H8>NxEYDHE+~d&$O?=C$o%tcHc-{&91*LIGO`6=4kvj_$Y&HtZ`JS(HTAB+l zrtwXu^)~;$#IcJxc3yr`U!#1?$DGoiP%iNEr}Qdw$)z-Ys0#MLbz94bT4VS}zfu9w z*sb5`Up3DA?T?`Pw0(3=*={;W?|tm7MFmL6AB zzUe|vW4@tA|8wJlU;YTXe_KL8x8XugGCzAs&uLsx`-iRlyApL;iztrz1)FcRY7}38 zF~=dWfeJKgBQK~Cc2K-cIG!e3nAE`DcOkj0t!->lbLgMuy)c%4SgZHQ^;Rd=S``>G z)Fwh--U8}!?Tud%bgH#h)uiQ7SWBbig(CTf84PSKqm+Wq{YtGh!lccZ zMd_)OUPM7>QOjDZ75yuv^iuLIqZMqTjGF6et&srgN6P3y>0eOLd2_9`kx85I6D7B% z-)gmiqQBnvDdTNG)EF&&Kp6s}3JN;U1ENG!SQAvCm@-g42?I@G?WAa^ zMx^IEpOn{!vgyrOX(fl3QzShPPeTiaO~uQl51bcFshl=0L3tft(T%b}m65 z(@fg&jUwj;s*_(T>X>V-Elk=h5z$0Oxy%@At+l2@vsxBttVV>LxlL=aMrl*F1#*f+ z*oh1W1|TS-%AWz*W%%|$jRFy-8nAHvFesx!W?aBDW|_3@J46+M51!8`>{QYJme8<@ zn8cJ4Bd6Bd3S$z#qd@^{I`YOUEO?JW_JZI$~o+F-_lGV*qd8eb~- zep`%xxoAvcSm7R#Hx(1m4iJ1Hvcz;&im>w_AZU-Ay&^|oK!pf9+tyk;pf~#h83iIt z7|;>;Ei*)0WilfdIh`;xGRHxa`Mu03I)SXtn9h$*5~2y*_(+7EH2|Osuz#({IU%ri z#yW~PX9GE|L)Lnc)s))XA;L~at+gwjI1I`dz2T$@^iMh0o3wWk!*@iLjUr6lxxu7; z8*PCZO{V;v^5dh=J)Is}kJw=?CfYLBNIj=6)s%2B9ypa@kehs|t4e(}* zoULNCi{^-|?zPq&mf->?7#b=Ol8*oBI3~uSm$hGzd z!Y&T9RVc#L*6n~RD5J)oaR)H@y+DmJ5q4h2*bV@|O9DAnA}n(51Yk=8IeE({>>Nk* ze-}ElLS)GmP=uZ5F^L0B+R9ZT2NQ>}^?o2~fn^WEtD+*Jb)t-FnbEk`dbdd%xmr{a zYj%MMJDb;92b;8YGGni7YmI0tH>1{i55`8sk=UCi+ic`|HJbysHHdfOrBM z&)~R^^L&U}lx(Yx)bf$26@m`5n$5W~zjQ58xWxs zbXrRpMt`diqdgX769j=AioGVRTU%Tn?f1+M$Vdulp2u=Dwc0VDk&1EEk1@RtQLKuDJ=g4 z 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 mi$oGjM;6X 1; - const mPathConfig = { - 'wllama.wasm': absoluteUrl(this.pathConfig['default']), + + // prepare worker resources + const workerResources: WllamaWorkerResources = { + wasmPath: absoluteUrl(this.pathConfig['default']), }; + if (needCompat()) { + if (!this.compat) { + this.logger().warn( + 'Compatibility mode is required but no compat options provided, things may break. To use compatibility mode, please refer to @wllama/wllama-compat package.' + ); + } else { + const isUsingDefault = + this.compat.worker === WasmCompatFromCDN.worker && + this.compat.wasm === WasmCompatFromCDN.wasm; + if (isUsingDefault) { + this.logger().warn( + 'Compatibility mode is activated, using resources from CDN. To use local resources, please refer to @wllama/wllama-compat package.' + ); + } + + workerResources.wasmPath = absoluteUrl(this.compat.wasm); + workerResources.jsPath = this.compat.worker; + } + } // initialize the worker this.proxy = new ProxyToWorker( - mPathConfig, + workerResources, this.useMultiThread ? nbThreads : 0, // 0 means disable pthread this.config.suppressNativeLog ?? false, this.logger() diff --git a/src/worker.ts b/src/worker.ts index 9ac504ff..a5c4d31d 100644 --- a/src/worker.ts +++ b/src/worker.ts @@ -13,7 +13,12 @@ import { glueDeserialize, glueSerialize } from './glue/glue'; import type { GlueMsg } from './glue/messages'; -import { canUseAsyncFileRead, createWorker, isSafariMobile } from './utils'; +import { + canUseAsyncFileRead, + createWorker, + isSafariMobile, + isString, +} from './utils'; import { LLAMA_CPP_WORKER_CODE, WLLAMA_EMSCRIPTEN_CODE, @@ -70,7 +75,14 @@ if (!WebAssembly.Suspending) { } `; +export interface WllamaWorkerResources { + wasmPath: string; + // if jsPath is not provided, use WLLAMA_EMSCRIPTEN_CODE + jsPath?: string | { code: string } | undefined; +} + export class ProxyToWorker { + resources: WllamaWorkerResources; logger: Logger; suppressNativeLog: boolean; taskQueue: Task[] = []; @@ -78,19 +90,18 @@ export class ProxyToWorker { resultQueue: Task[] = []; busy = false; // is the work loop is running? worker?: Worker | undefined; - pathConfig: any; multiThread: boolean; nbThread: number; useAsyncFile: boolean; fileBlobs: Map = new Map(); // filename -> Blob for async reads constructor( - pathConfig: any, + resources: WllamaWorkerResources, nbThread: number, suppressNativeLog: boolean, logger: Logger ) { - this.pathConfig = pathConfig; + this.resources = resources; this.nbThread = nbThread; this.multiThread = nbThread > 0; this.logger = logger; @@ -98,14 +109,31 @@ export class ProxyToWorker { this.useAsyncFile = canUseAsyncFileRead(); } - async moduleInit(ggufFiles: { name: string; blob: Blob }[]): Promise { - if (!this.pathConfig['wllama.wasm']) { - throw new Error('"wllama.wasm" is missing from pathConfig'); + async getModuleCode(): Promise { + if (!this.resources.jsPath) { + return WLLAMA_EMSCRIPTEN_CODE; + } else if ((this.resources.jsPath as { code: string }).code) { + return (this.resources.jsPath as { code: string }).code; + } else if (isString(this.resources.jsPath)) { + const response = await fetch(this.resources.jsPath as string); + if (!response.ok) { + throw new Error( + `Failed to fetch worker code from ${this.resources.jsPath}` + ); + } + return await response.text(); + } else { + throw new Error('No JS code provided for worker'); } - let moduleCode = JSPI_STUB + WLLAMA_EMSCRIPTEN_CODE; + } + + async moduleInit(ggufFiles: { name: string; blob: Blob }[]): Promise { + let moduleCode = JSPI_STUB + (await this.getModuleCode()); let mainModuleCode = moduleCode.replace('var Module', 'var ___Module'); const runOptions = { - pathConfig: this.pathConfig, + pathConfig: { + 'wllama.wasm': this.resources.wasmPath, + }, nbThread: this.nbThread, }; const completeCode: string = [ diff --git a/src/workers-code/generated.ts b/src/workers-code/generated.ts index 7b92132b..1c7d4815 100644 --- a/src/workers-code/generated.ts +++ b/src/workers-code/generated.ts @@ -1,7 +1,7 @@ // This file is auto-generated // To re-generate it, run: npm run build:worker -export const LIBLLAMA_VERSION = 'b9189-64b38b5'; +export const LIBLLAMA_VERSION = 'b9289-56f16f2'; export const LLAMA_CPP_WORKER_CODE = "// Start the main llama.cpp\nlet wllamaMalloc;\nlet wllamaStart;\nlet wllamaAction;\nlet wllamaExit;\nlet wllamaDebug;\n\nlet Module = null;\n\n//////////////////////////////////////////////////////////////\n// UTILS\n//////////////////////////////////////////////////////////////\n\n// send message back to main thread\nconst msg = (data, transfer) => postMessage(data, transfer);\n\n// Convert CPP log into JS log\nconst cppLogToJSLog = (line) => {\n const matched = line.match(/@@(DEBUG|INFO|WARN|ERROR)@@(.*)/);\n return !!matched\n ? {\n level: (matched[1] === 'INFO' ? 'debug' : matched[1]).toLowerCase(),\n text: matched[2],\n }\n : { level: 'log', text: line };\n};\n\nconst getHeapU8 = () => {\n const buffer = Module.wasmMemory.buffer;\n return new Uint8Array(buffer);\n};\n\n// Get module config that forwards stdout/err to main thread\nconst getWModuleConfig = (_argMainScriptBlob) => {\n var pathConfig = RUN_OPTIONS.pathConfig;\n var pthreadPoolSize = RUN_OPTIONS.nbThread;\n var argMainScriptBlob = _argMainScriptBlob;\n\n if (!pathConfig['wllama.wasm']) {\n throw new Error('\"wllama.wasm\" is missing in pathConfig');\n }\n return {\n noInitialRun: true,\n print: function (text) {\n if (arguments.length > 1)\n text = Array.prototype.slice.call(arguments).join(' ');\n msg({ verb: 'console.log', args: [text] });\n },\n printErr: function (text) {\n if (arguments.length > 1)\n text = Array.prototype.slice.call(arguments).join(' ');\n const logLine = cppLogToJSLog(text);\n msg({ verb: 'console.' + logLine.level, args: [logLine.text] });\n },\n locateFile: function (filename, basePath) {\n const p = pathConfig[filename];\n const truncate = (str) =>\n str.length > 128 ? `${str.substr(0, 128)}...` : str;\n if (filename.match(/wllama\\.worker\\.js/)) {\n msg({\n verb: 'console.error',\n args: [\n '\"wllama.worker.js\" is removed from v2.2.1. Hint: make sure to clear browser\\'s cache.',\n ],\n });\n } else {\n msg({\n verb: 'console.debug',\n args: [`Loading \"${filename}\" from \"${truncate(p)}\"`],\n });\n return p;\n }\n },\n mainScriptUrlOrBlob: argMainScriptBlob,\n pthreadPoolSize,\n wasmMemory: pthreadPoolSize > 1 ? getWasmMemory() : null,\n onAbort: function (text) {\n msg({ verb: 'signal.abort', args: [text] });\n },\n };\n};\n\n// Get the memory to be used by wasm. (Only used in multi-thread mode)\n// Because we have a weird OOM issue on iOS, we need to try some values\n// See: https://github.com/emscripten-core/emscripten/issues/19144\n// https://github.com/godotengine/godot/issues/70621\nconst getWasmMemory = () => {\n let minBytes = 128 * 1024 * 1024;\n let maxBytes = 4096 * 1024 * 1024;\n let stepBytes = 128 * 1024 * 1024;\n while (maxBytes > minBytes) {\n try {\n const wasmMemory = new WebAssembly.Memory({\n initial: BigInt(minBytes / 65536),\n maximum: BigInt(maxBytes / 65536),\n shared: true,\n address: 'i64',\n });\n return wasmMemory;\n } catch (e) {\n maxBytes -= stepBytes;\n continue; // retry\n }\n }\n throw new Error('Cannot allocate WebAssembly.Memory');\n};\n\n//////////////////////////////////////////////////////////////\n// HEAPFS PATCH\n//////////////////////////////////////////////////////////////\n\n/**\n * By default, emscripten uses memfs. The way it works is by\n * allocating new Uint8Array in javascript heap. This is not good\n * because it requires files to be copied to wasm heap each time\n * a file is read.\n *\n * HeapFS is an alternative, which resolves this problem by\n * allocating space for file directly inside wasm heap. This\n * allows us to mmap without doing any copy.\n *\n * For llama.cpp, this is great because we use MAP_SHARED\n *\n * Ref: https://github.com/ngxson/wllama/pull/39\n * Ref: https://github.com/emscripten-core/emscripten/blob/main/src/library_memfs.js\n *\n * Note 29/05/2024 @ngxson\n * Due to ftell() being limited to MAX_LONG, we cannot load files bigger than 2^31 bytes (or 2GB)\n * Ref: https://github.com/emscripten-core/emscripten/blob/main/system/lib/libc/musl/src/stdio/ftell.c\n */\n\nconst fsNameToFile = {}; // map Name => File\nconst fsIdToFile = {}; // map ID => File\nlet currFileId = 0;\n\n// Patch and redirect memfs calls to wllama\nconst patchHeapFS = () => {\n const m = Module;\n // save functions\n m.MEMFS.stream_ops._read = m.MEMFS.stream_ops.read;\n m.MEMFS.stream_ops._write = m.MEMFS.stream_ops.write;\n m.MEMFS.stream_ops._llseek = m.MEMFS.stream_ops.llseek;\n m.MEMFS.stream_ops._allocate = m.MEMFS.stream_ops.allocate;\n m.MEMFS.stream_ops._mmap = m.MEMFS.stream_ops.mmap;\n m.MEMFS.stream_ops._msync = m.MEMFS.stream_ops.msync;\n\n const patchStream = (stream) => {\n const name = stream.node.name;\n if (fsNameToFile[name]) {\n const f = fsNameToFile[name];\n const ptr = Number(f.ptr);\n stream.node.contents = getHeapU8().subarray(ptr, ptr + f.size);\n stream.node.usedBytes = f.size;\n }\n };\n\n // replace \"read\" functions\n m.MEMFS.stream_ops.read = function (\n stream,\n buffer,\n offset,\n length,\n position\n ) {\n patchStream(stream);\n return m.MEMFS.stream_ops._read(stream, buffer, offset, length, position);\n };\n m.MEMFS.ops_table.file.stream.read = m.MEMFS.stream_ops.read;\n\n // replace \"llseek\" functions\n m.MEMFS.stream_ops.llseek = function (stream, offset, whence) {\n patchStream(stream);\n return m.MEMFS.stream_ops._llseek(stream, offset, whence);\n };\n m.MEMFS.ops_table.file.stream.llseek = m.MEMFS.stream_ops.llseek;\n\n // replace \"mmap\" functions\n m.MEMFS.stream_ops.mmap = function (stream, length, position, prot, flags) {\n patchStream(stream);\n const name = stream.node.name;\n if (fsNameToFile[name]) {\n const f = fsNameToFile[name];\n const mmapPtr = f.ptr + BigInt(position);\n return {\n ptr: mmapPtr,\n allocated: false,\n };\n } else {\n return m.MEMFS.stream_ops._mmap(stream, length, position, prot, flags);\n }\n };\n m.MEMFS.ops_table.file.stream.mmap = m.MEMFS.stream_ops.mmap;\n\n // mount FS\n m.FS.mkdir('/models');\n m.FS.mount(m.MEMFS, { root: '.' }, '/models');\n};\n\n// Allocate a new file in wllama heapfs, returns file ID\nconst heapfsAlloc = (name, size, allocBuffer) => {\n if (size < 1) {\n throw new Error('File size must be bigger than 0');\n }\n const m = Module;\n const ptr = BigInt(allocBuffer ? m.mmapAlloc(size) : 0);\n const file = {\n ptr: ptr,\n size: size,\n id: currFileId++,\n };\n fsIdToFile[file.id] = file;\n fsNameToFile[name] = file;\n return file.id;\n};\n\n// Add new file to wllama heapfs, return number of written bytes\nconst heapfsWrite = (id, buffer, offset) => {\n if (fsIdToFile[id]) {\n const { ptr, size } = fsIdToFile[id];\n const afterWriteByte = offset + buffer.byteLength;\n if (afterWriteByte > size) {\n throw new Error(\n `File ID ${id} write out of bound, afterWriteByte = ${afterWriteByte} while size = ${size}`\n );\n }\n getHeapU8().set(buffer, Number(ptr) + offset);\n return buffer.byteLength;\n } else {\n throw new Error(`File ID ${id} not found in heapfs`);\n }\n};\n\n//////////////////////////////////////////////////////////////\n// ASYNC FILE READ\n//////////////////////////////////////////////////////////////\n\nlet isAwaitReading = false;\nlet pendingReadPromise = null;\nlet pendingReadResolve = null;\nlet pendingReadReject = null;\n\nconst _stripModelsPrefix = (path) => path.replace(/^\\/?models\\//, '');\n\n// Called from EM_ASYNC_JS stub in wllama-fs.h (path is already a JS string)\nconst _wllama_js_file_read = async (path, offset, req_size, out_ptr) => {\n const name = _stripModelsPrefix(path);\n\n pendingReadPromise = new Promise((res, rej) => {\n pendingReadResolve = res;\n pendingReadReject = rej;\n });\n isAwaitReading = true;\n\n postMessage({ verb: 'fs.read_req', args: [name, offset, req_size] });\n\n let data;\n try {\n data = await pendingReadPromise;\n } finally {\n isAwaitReading = false;\n pendingReadResolve = null;\n pendingReadReject = null;\n }\n\n const bytes = new Uint8Array(data);\n getHeapU8().set(bytes, out_ptr);\n return BigInt(bytes.length);\n};\n\n//////////////////////////////////////////////////////////////\n// MAIN CODE\n//////////////////////////////////////////////////////////////\n\nconst callWrapper = (name, ret, args, isAsync) => {\n const fn = Module.cwrap(\n name,\n ret,\n args,\n isAsync ? { async: true } : undefined\n );\n return async (action, req) => {\n // console.log(`Calling ${name} with action:`, action, 'and req:', req);\n let result;\n try {\n if (args.length === 2) {\n result = isAsync ? await fn(action, req) : fn(action, req);\n } else {\n result = fn();\n }\n } catch (ex) {\n console.error(ex);\n throw ex;\n }\n return result;\n };\n};\n\nonmessage = async (e) => {\n if (!e.data) return;\n const { verb, args, callbackId } = e.data;\n\n // fs.read_res arrives while wasm is JSPI-suspended; resolve the pending promise.\n if (verb === 'fs.read_res') {\n if (pendingReadResolve) {\n pendingReadResolve(args[0]);\n }\n return;\n }\n\n // Guard: while awaiting a file read, reject any other incoming task.\n if (isAwaitReading) {\n if (callbackId) {\n msg({\n callbackId,\n err: 'Worker is suspended waiting for file data (JSPI)',\n });\n }\n return;\n }\n\n if (!callbackId) {\n msg({ verb: 'console.error', args: ['callbackId is required', e.data] });\n return;\n }\n\n if (verb === 'module.init') {\n const argMainScriptBlob = args[0];\n const argUseAsyncFile = args[1];\n try {\n Module = getWModuleConfig(argMainScriptBlob);\n Module.preRun = () => {\n if (argUseAsyncFile) {\n Module.ENV['USE_ASYNC_FILE'] = '1';\n }\n };\n Module.onRuntimeInitialized = () => {\n // async call once module is ready\n // init FS\n patchHeapFS();\n // init cwrap\n const pointer = 'bigint';\n // TODO: note sure why emscripten cannot bind if there is only 1 argument\n wllamaMalloc = callWrapper('wllama_malloc', pointer, [\n 'number',\n pointer,\n ]);\n wllamaStart = callWrapper('wllama_start', 'string', [], true);\n wllamaAction = callWrapper(\n 'wllama_action',\n pointer,\n ['string', pointer],\n true\n );\n wllamaExit = callWrapper('wllama_exit', 'string', []);\n wllamaDebug = callWrapper('wllama_debug', 'string', []);\n msg({ callbackId, result: null });\n };\n wModuleInit();\n } catch (err) {\n msg({ callbackId, err });\n }\n return;\n }\n\n if (verb === 'fs.alloc') {\n const argFilename = args[0];\n const argSize = args[1];\n const argAllocBuffer = args[2];\n try {\n // create blank file\n const emptyBuffer = new ArrayBuffer(0);\n Module['FS_createDataFile'](\n '/models',\n argFilename,\n emptyBuffer,\n true,\n true,\n true\n );\n // alloc data on heap\n const fileId = heapfsAlloc(argFilename, argSize, argAllocBuffer);\n msg({ callbackId, result: { fileId } });\n } catch (err) {\n msg({ callbackId, err });\n }\n return;\n }\n\n if (verb === 'fs.write') {\n const argFileId = args[0];\n const argBuffer = args[1];\n const argOffset = args[2];\n try {\n const writtenBytes = heapfsWrite(argFileId, argBuffer, argOffset);\n msg({ callbackId, result: { writtenBytes } });\n } catch (err) {\n msg({ callbackId, err });\n }\n return;\n }\n\n if (verb === 'wllama.start') {\n try {\n const result = await wllamaStart();\n msg({ callbackId, result });\n } catch (err) {\n msg({ callbackId, err });\n }\n return;\n }\n\n if (verb === 'wllama.action') {\n const argAction = args[0];\n const argEncodedMsg = args[1];\n try {\n const inputPtr = await wllamaMalloc(BigInt(argEncodedMsg.byteLength), 0);\n // copy data to wasm heap\n const inputBuffer = new Uint8Array(\n getHeapU8().buffer,\n Number(inputPtr),\n argEncodedMsg.byteLength\n );\n inputBuffer.set(argEncodedMsg, 0);\n const outputPtr = await wllamaAction(argAction, inputPtr);\n // length of output buffer is written at the first 4 bytes of input buffer\n const outputLen = new Uint32Array(\n getHeapU8().buffer,\n Number(inputPtr),\n 1\n )[0];\n // copy the output buffer to JS heap\n const outputBuffer = new Uint8Array(outputLen);\n const outputSrcView = new Uint8Array(\n getHeapU8().buffer,\n Number(outputPtr),\n outputLen\n );\n outputBuffer.set(outputSrcView, 0); // copy it\n msg({ callbackId, result: outputBuffer }, [outputBuffer.buffer]);\n } catch (err) {\n msg({ callbackId, err });\n }\n return;\n }\n\n if (verb === 'wllama.exit') {\n try {\n const result = await wllamaExit();\n msg({ callbackId, result });\n } catch (err) {\n msg({ callbackId, err });\n }\n return;\n }\n\n if (verb === 'wllama.debug') {\n try {\n const result = await wllamaDebug();\n msg({ callbackId, result });\n } catch (err) {\n msg({ callbackId, err });\n }\n return;\n }\n};\n"; From 79ed69e0c0f9847eeb274946f5ef6af004e4c421 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sat, 23 May 2026 15:23:21 +0200 Subject: [PATCH 02/11] update examples --- .prettierignore | 2 + CMakeLists.txt | 19 +- README.md | 9 +- compat/README.md | 82 + compat/wasm/wllama.js | 8170 +------------------- examples/basic/index.html | 2 +- examples/embeddings/index.html | 9 + examples/main/package-lock.json | 27 +- examples/main/package.json | 1 + examples/main/src/config.ts | 9 + examples/main/src/utils/wllama.context.tsx | 16 +- examples/multimodal/index.html | 24 + examples/tools/index.html | 24 + scripts/post_build.sh | 9 + src/utils.ts | 4 +- src/wasm/wllama.js | 2 +- src/wasm/wllama.wasm | Bin 7437543 -> 7435174 bytes src/wllama.ts | 40 +- src/worker.ts | 3 + src/workers-code/generated.ts | 4 +- src/workers-code/llama-cpp.js | 23 +- 21 files changed, 262 insertions(+), 8217 deletions(-) create mode 100644 compat/README.md diff --git a/.prettierignore b/.prettierignore index bed30cab..f9a422b3 100644 --- a/.prettierignore +++ b/.prettierignore @@ -25,6 +25,8 @@ /src/wasm-from-cdn.ts /src/glue/messages.ts +/compat/wasm + *.md *.mdx *.json diff --git a/CMakeLists.txt b/CMakeLists.txt index bc5b43dc..0a9e12f2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,15 +7,14 @@ set(CMAKE_USE_WIN32_THREADS_INIT 0) set(CMAKE_USE_PTHREADS_INIT 1) set(THREADS_PREFER_PTHREAD_FLAG ON) -add_compile_options( +set(WLLAMA_COMPILE_OPTIONS -O3 -msimd128 -DNDEBUG -flto=full -frtti -pthread ) -add_link_options( +set(WLLAMA_LINK_OPTIONS -flto=full --no-entry - -sEXPORT_ALL=1 -sEXPORT_ES6=0 -sMODULARIZE=0 -sINITIAL_MEMORY=128MB @@ -23,7 +22,7 @@ add_link_options( -sALLOW_MEMORY_GROWTH=1 -sFORCE_FILESYSTEM=1 -sEXPORTED_FUNCTIONS=_main,_wllama_malloc,_wllama_start,_wllama_action,_wllama_exit,_wllama_debug - -sEXPORTED_RUNTIME_METHODS=ccall,cwrap + -sEXPORTED_RUNTIME_METHODS=ccall,cwrap,HEAPU8,MEMFS,FS,mmapAlloc -sNO_EXIT_RUNTIME=1 -sIMPORTED_MEMORY=1 -sPTHREAD_POOL_SIZE=Module[\"pthreadPoolSize\"] @@ -39,20 +38,21 @@ add_link_options( if (WLLAMA_COMPAT) # no wasm exception (not compatible with asyncify - asyncify is needed for firefox and safari) # no mem64 (not compatible with safari) - add_compile_options( + list(APPEND WLLAMA_COMPILE_OPTIONS -fexceptions -pthread ) - add_link_options( + list(APPEND WLLAMA_LINK_OPTIONS -fexceptions -sASYNCIFY=1 + -sASYNCIFY_ADD=['wllama_start','wllama_action'] ) else() - add_compile_options( + list(APPEND WLLAMA_COMPILE_OPTIONS -sMEMORY64=1 -fwasm-exceptions ) - add_link_options( + list(APPEND WLLAMA_LINK_OPTIONS -sMEMORY64=1 -fwasm-exceptions -sJSPI @@ -60,6 +60,9 @@ else() ) endif() +add_compile_options(${WLLAMA_COMPILE_OPTIONS}) +add_link_options(${WLLAMA_LINK_OPTIONS}) + add_subdirectory(llama.cpp) set(LLAMA_INSTALL_VERSION 0.0.${LLAMA_BUILD_NUMBER}) diff --git a/README.md b/README.md index 17efa819..4b26a6f4 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,9 @@ WebAssembly binding for [llama.cpp](https://github.com/ggerganov/llama.cpp) For changelog, please visit [releases page](https://github.com/ngxson/wllama/releases) > [!IMPORTANT] -> **🔥🔥 V3 is out, with WebGPU, multimodal and tool calling support. Read the [V3 release guide](./guides/intro-v3.md)** -> Memory64 is now a requirement, which drops support for Safari. Please follow [this issue](https://github.com/ngxson/wllama/issues/210) for more info. +> **🔥🔥 V3 is out, with WebGPU, multimodal and tool calling support. Read the [V3 release guide](./guides/intro-v3.md)** +> +> For compatibility issues, please refer to [@wllama/wllama-compat](./compat/README.md) ![](./assets/screenshot_0.png) @@ -70,6 +71,10 @@ WebGPU support is introduced via [PR #215](https://github.com/ngxson/wllama/pull Upon updating to V3.1, WebGPU will be enabled automatically. By default, all layers will be offloaded to GPU. If the model is too big to fit into VRAM, you can manually adjust the number of layers via the `n_gpu_layers` parameter of `LoadModelParams`. Example: ```js +// (optionally) will allow running WebGPU on Safari via compatibility mode +// the second argument 'exclude_firefox' is optional, it disables WebGPU on Firefox (the performance is too bad) +wllama.setCompat('default', 'exclude_firefox'); + await wllama.loadModel(files, { n_gpu_layers: 4, // meaning 4 layers are offloaded to GPU; set to 0 to disable GPU inference }); diff --git a/compat/README.md b/compat/README.md new file mode 100644 index 00000000..3972da33 --- /dev/null +++ b/compat/README.md @@ -0,0 +1,82 @@ +# @wllama/wllama-compat + +Optional package that provides compatibility WASM assets for `@wllama/wllama` on browsers that lack [JSPI](https://github.com/WebAssembly/js-promise-integration) or [MEMORY64](https://github.com/WebAssembly/memory64) support - most notably Safari and older browsers. + +## Why this package exists + +The default `@wllama/wllama` build relies on two modern WebAssembly features: [JSPI](https://github.com/WebAssembly/js-promise-integration) and [MEMORY64](https://github.com/WebAssembly/memory64) + +When either feature is absent, wllama automatically falls back to **compat mode**: a separate WASM build that uses [Asyncify](https://emscripten.org/docs/porting/asyncify.html) instead of JSPI, and drops MEMORY64. + +> **Note:** Compat mode has significantly lower performance than the default build. Use it only as a fallback. + +## Browser compatibility + +| | Chromium | Firefox | Safari | +|---|---|---|---| +| Auto-compat (default, recommended) | ✅ | 🟡 (no WebGPU) | 🟡 (supports WebGPU) | +| Force-compat | ✅ | 🔴 (supports WebGPU) | 🟡 (supports WebGPU) | +| Non-compat mode | ✅ | 🟡 (no WebGPU) | ❌ | + +- ✅: Good speed +- 🟡: Acceptable speed +- 🔴: Runs but slow, not usable +- ❌: Does not run at all + +### Default behaviour + +Out of the box, wllama fetches the compat assets from jsDelivr CDN when compat mode is needed. If you want to self-host the assets (no external CDN dependency), install this package (see new section.) + +### Recommended preset + +We recommend to disable the compat mode on Firefox, as the WebGPU on Firefox via compat mode is extremely slow, not usable: + +```js +wllama.setCompat('default', 'exclude_firefox'); +``` + +## Disabling compat mode + +To opt out of compat mode completely (e.g. you don't target Safari): + +```ts +wllama.setCompat(null); +``` + +## Using this package + +**You only need to install package if you want to store compat assets locally**. By default, assets are pulled from CDN. + +```bash +npm install @wllama/wllama-compat +``` + +Then copy the assets from `node_modules/@wllama/wllama-compat/wasm/` to your public directory and call `setCompat()` with the URLs pointing to those files: + +```ts +import { Wllama } from '@wllama/wllama'; + +const wllama = new Wllama({ default: '/wasm/wllama.wasm' }); + +wllama.setCompat({ + wasm: '/wllama-compat/wasm/wllama.wasm', + worker: '/wllama-compat/wasm/wllama.js', +}); +``` + +**IMPORTANT**: for Vite, you will need to import it as `?raw` + +```ts +import compatWasm from '@wllama/wllama-compat/wasm/wllama.wasm?url'; +import compatWorker from '@wllama/wllama-compat/wasm/wllama.js?raw'; + +export const WLLAMA_COMPAT_CONFIG = { + wasm: compatWasm, + worker: { + code: compatWorker, + }, +}; + +const instance = new Wllama(WLLAMA_CONFIG_PATHS, { logger: DebugLogger }); +instance.setCompat(WLLAMA_COMPAT_CONFIG, 'exclude_firefox'); +``` diff --git a/compat/wasm/wllama.js b/compat/wasm/wllama.js index efc88a8a..42ed97d2 100644 --- a/compat/wasm/wllama.js +++ b/compat/wasm/wllama.js @@ -1,8169 +1 @@ -var Module = typeof Module != 'undefined' ? Module : {}; -var ENVIRONMENT_IS_WEB = !!globalThis.window; -var ENVIRONMENT_IS_WORKER = !!globalThis.WorkerGlobalScope; -var ENVIRONMENT_IS_NODE = - globalThis.process?.versions?.node && globalThis.process?.type != 'renderer'; -var ENVIRONMENT_IS_PTHREAD = - ENVIRONMENT_IS_WORKER && self.name?.startsWith('em-pthread'); -if (ENVIRONMENT_IS_NODE) { - var worker_threads = require('worker_threads'); - global.Worker = worker_threads.Worker; - ENVIRONMENT_IS_WORKER = !worker_threads.isMainThread; - ENVIRONMENT_IS_PTHREAD = - ENVIRONMENT_IS_WORKER && worker_threads['workerData'] == 'em-pthread'; -} -var arguments_ = []; -var thisProgram = './this.program'; -var quit_ = (status, toThrow) => { - throw toThrow; -}; -var _scriptName = globalThis.document?.currentScript?.src; -if (typeof __filename != 'undefined') { - _scriptName = __filename; -} else if (ENVIRONMENT_IS_WORKER) { - _scriptName = self.location.href; -} -var scriptDirectory = ''; -function locateFile(path) { - if (Module['locateFile']) { - return Module['locateFile'](path, scriptDirectory); - } - return scriptDirectory + path; -} -var readAsync, readBinary; -if (ENVIRONMENT_IS_NODE) { - var fs = require('fs'); - scriptDirectory = __dirname + '/'; - readBinary = (filename) => { - filename = isFileURI(filename) ? new URL(filename) : filename; - var ret = fs.readFileSync(filename); - return ret; - }; - readAsync = async (filename, binary = true) => { - filename = isFileURI(filename) ? new URL(filename) : filename; - var ret = fs.readFileSync(filename, binary ? undefined : 'utf8'); - return ret; - }; - if (process.argv.length > 1) { - thisProgram = process.argv[1].replace(/\\/g, '/'); - } - arguments_ = process.argv.slice(2); - if (typeof module != 'undefined') { - module['exports'] = Module; - } - quit_ = (status, toThrow) => { - process.exitCode = status; - throw toThrow; - }; -} else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { - try { - scriptDirectory = new URL('.', _scriptName).href; - } catch {} - if (!ENVIRONMENT_IS_NODE) { - if (ENVIRONMENT_IS_WORKER) { - readBinary = (url) => { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - xhr.responseType = 'arraybuffer'; - xhr.send(null); - return new Uint8Array(xhr.response); - }; - } - readAsync = async (url) => { - if (isFileURI(url)) { - return new Promise((resolve, reject) => { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, true); - xhr.responseType = 'arraybuffer'; - xhr.onload = () => { - if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { - resolve(xhr.response); - return; - } - reject(xhr.status); - }; - xhr.onerror = reject; - xhr.send(null); - }); - } - var response = await fetch(url, { credentials: 'same-origin' }); - if (response.ok) { - return response.arrayBuffer(); - } - throw new Error(response.status + ' : ' + response.url); - }; - } -} else { -} -var defaultPrint = console.log.bind(console); -var defaultPrintErr = console.error.bind(console); -if (ENVIRONMENT_IS_NODE) { - var utils = require('util'); - var stringify = (a) => (typeof a == 'object' ? utils.inspect(a) : a); - defaultPrint = (...args) => - fs.writeSync(1, args.map(stringify).join(' ') + '\n'); - defaultPrintErr = (...args) => - fs.writeSync(2, args.map(stringify).join(' ') + '\n'); -} -var out = defaultPrint; -var err = defaultPrintErr; -var wasmBinary; -var wasmModule; -var ABORT = false; -var EXITSTATUS; -function assert(condition, text) { - if (!condition) { - abort(text); - } -} -var isFileURI = (filename) => filename.startsWith('file://'); -function growMemViews() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } -} -if (ENVIRONMENT_IS_NODE && ENVIRONMENT_IS_PTHREAD) { - var parentPort = worker_threads['parentPort']; - parentPort.on('message', (msg) => global.onmessage?.({ data: msg })); - Object.assign(globalThis, { - self: global, - postMessage: (msg) => parentPort['postMessage'](msg), - }); - process.on('uncaughtException', (err) => { - postMessage({ cmd: 'uncaughtException', error: err }); - process.exit(1); - }); -} -var startWorker; -if (ENVIRONMENT_IS_PTHREAD) { - var initializedJS = false; - self.onunhandledrejection = (e) => { - throw e.reason || e; - }; - function handleMessage(e) { - try { - var msgData = e['data']; - var cmd = msgData.cmd; - if (cmd === 'load') { - let messageQueue = []; - self.onmessage = (e) => messageQueue.push(e); - startWorker = () => { - postMessage({ cmd: 'loaded' }); - for (let msg of messageQueue) { - handleMessage(msg); - } - self.onmessage = handleMessage; - }; - for (const handler of msgData.handlers) { - if (!Module[handler] || Module[handler].proxy) { - Module[handler] = (...args) => { - postMessage({ cmd: 'callHandler', handler, args }); - }; - if (handler == 'print') out = Module[handler]; - if (handler == 'printErr') err = Module[handler]; - } - } - wasmMemory = msgData.wasmMemory; - updateMemoryViews(); - wasmModule = msgData.wasmModule; - createWasm(); - run(); - } else if (cmd === 'run') { - establishStackSpace(msgData.pthread_ptr); - __emscripten_thread_init(msgData.pthread_ptr, 0, 0, 1, 0, 0); - PThread.threadInitTLS(); - __emscripten_thread_mailbox_await(msgData.pthread_ptr); - if (!initializedJS) { - initializedJS = true; - } - try { - invokeEntryPoint(msgData.start_routine, msgData.arg); - } catch (ex) { - if (ex != 'unwind') { - throw ex; - } - } - } else if (msgData.target === 'setimmediate') { - } else if (cmd === 'checkMailbox') { - if (initializedJS) { - checkMailbox(); - } - } else if (cmd) { - err(`worker: received unknown command ${cmd}`); - err(msgData); - } - } catch (ex) { - __emscripten_thread_crashed(); - throw ex; - } - } - self.onmessage = handleMessage; -} -var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; -var HEAP64, HEAPU64; -var runtimeInitialized = false; -function updateMemoryViews() { - var b = wasmMemory.buffer; - HEAP8 = new Int8Array(b); - HEAP16 = new Int16Array(b); - HEAPU8 = new Uint8Array(b); - HEAPU16 = new Uint16Array(b); - HEAP32 = new Int32Array(b); - HEAPU32 = new Uint32Array(b); - HEAPF32 = new Float32Array(b); - HEAPF64 = new Float64Array(b); - HEAP64 = new BigInt64Array(b); - HEAPU64 = new BigUint64Array(b); -} -function initMemory() { - if (ENVIRONMENT_IS_PTHREAD) { - return; - } - if (Module['wasmMemory']) { - wasmMemory = Module['wasmMemory']; - } else { - var INITIAL_MEMORY = Module['INITIAL_MEMORY'] || 134217728; - wasmMemory = new WebAssembly.Memory({ - initial: INITIAL_MEMORY / 65536, - maximum: 65536, - shared: true, - }); - } - updateMemoryViews(); -} -function preRun() { - if (Module['preRun']) { - if (typeof Module['preRun'] == 'function') - Module['preRun'] = [Module['preRun']]; - while (Module['preRun'].length) { - addOnPreRun(Module['preRun'].shift()); - } - } - callRuntimeCallbacks(onPreRuns); -} -function initRuntime() { - runtimeInitialized = true; - if (ENVIRONMENT_IS_PTHREAD) return startWorker(); - if (!Module['noFSInit'] && !FS.initialized) FS.init(); - TTY.init(); - wasmExports['dc'](); - FS.ignorePermissions = false; -} -function preMain() {} -function postRun() { - if (ENVIRONMENT_IS_PTHREAD) { - return; - } - if (Module['postRun']) { - if (typeof Module['postRun'] == 'function') - Module['postRun'] = [Module['postRun']]; - while (Module['postRun'].length) { - addOnPostRun(Module['postRun'].shift()); - } - } - callRuntimeCallbacks(onPostRuns); -} -function abort(what) { - Module['onAbort']?.(what); - what = 'Aborted(' + what + ')'; - err(what); - ABORT = true; - what += '. Build with -sASSERTIONS for more info.'; - var e = new WebAssembly.RuntimeError(what); - throw e; -} -var wasmBinaryFile; -function findWasmBinary() { - return locateFile('wllama.wasm'); -} -function getBinarySync(file) { - if (file == wasmBinaryFile && wasmBinary) { - return new Uint8Array(wasmBinary); - } - if (readBinary) { - return readBinary(file); - } - throw 'both async and sync fetching of the wasm failed'; -} -async function getWasmBinary(binaryFile) { - if (!wasmBinary) { - try { - var response = await readAsync(binaryFile); - return new Uint8Array(response); - } catch {} - } - return getBinarySync(binaryFile); -} -async function instantiateArrayBuffer(binaryFile, imports) { - try { - var binary = await getWasmBinary(binaryFile); - var instance = await WebAssembly.instantiate(binary, imports); - return instance; - } catch (reason) { - err(`failed to asynchronously prepare wasm: ${reason}`); - abort(reason); - } -} -async function instantiateAsync(binary, binaryFile, imports) { - if (!binary && !isFileURI(binaryFile) && !ENVIRONMENT_IS_NODE) { - try { - var response = fetch(binaryFile, { credentials: 'same-origin' }); - var instantiationResult = await WebAssembly.instantiateStreaming( - response, - imports - ); - return instantiationResult; - } catch (reason) { - err(`wasm streaming compile failed: ${reason}`); - err('falling back to ArrayBuffer instantiation'); - } - } - return instantiateArrayBuffer(binaryFile, imports); -} -function getWasmImports() { - assignWasmImports(); - var imports = { a: wasmImports }; - return imports; -} -async function createWasm() { - function receiveInstance(instance, module) { - wasmExports = instance.exports; - wasmExports = Asyncify.instrumentWasmExports(wasmExports); - wasmExports = applySignatureConversions(wasmExports); - registerTLSInit(wasmExports['Tc']); - assignWasmExports(wasmExports); - wasmModule = module; - removeRunDependency('wasm-instantiate'); - return wasmExports; - } - addRunDependency('wasm-instantiate'); - function receiveInstantiationResult(result) { - return receiveInstance(result['instance'], result['module']); - } - var info = getWasmImports(); - if (Module['instantiateWasm']) { - return new Promise((resolve, reject) => { - Module['instantiateWasm'](info, (inst, mod) => { - resolve(receiveInstance(inst, mod)); - }); - }); - } - if (ENVIRONMENT_IS_PTHREAD) { - var instance = new WebAssembly.Instance(wasmModule, getWasmImports()); - return receiveInstance(instance, wasmModule); - } - wasmBinaryFile ??= findWasmBinary(); - var result = await instantiateAsync(wasmBinary, wasmBinaryFile, info); - var exports = receiveInstantiationResult(result); - return exports; -} -class ExitStatus { - name = 'ExitStatus'; - constructor(status) { - this.message = `Program terminated with exit(${status})`; - this.status = status; - } -} -var terminateWorker = (worker) => { - worker.terminate(); - worker.onmessage = (e) => {}; -}; -var cleanupThread = (pthread_ptr) => { - var worker = PThread.pthreads[pthread_ptr]; - PThread.returnWorkerToPool(worker); -}; -var callRuntimeCallbacks = (callbacks) => { - while (callbacks.length > 0) { - callbacks.shift()(Module); - } -}; -var onPreRuns = []; -var addOnPreRun = (cb) => onPreRuns.push(cb); -var runDependencies = 0; -var dependenciesFulfilled = null; -var removeRunDependency = (id) => { - runDependencies--; - Module['monitorRunDependencies']?.(runDependencies); - if (runDependencies == 0) { - if (dependenciesFulfilled) { - var callback = dependenciesFulfilled; - dependenciesFulfilled = null; - callback(); - } - } -}; -var addRunDependency = (id) => { - runDependencies++; - Module['monitorRunDependencies']?.(runDependencies); -}; -var spawnThread = (threadParams) => { - var worker = PThread.getNewWorker(); - if (!worker) { - return 6; - } - PThread.runningWorkers.push(worker); - PThread.pthreads[threadParams.pthread_ptr] = worker; - worker.pthread_ptr = threadParams.pthread_ptr; - var msg = { - cmd: 'run', - start_routine: threadParams.startRoutine, - arg: threadParams.arg, - pthread_ptr: threadParams.pthread_ptr, - }; - if (ENVIRONMENT_IS_NODE) { - worker.unref(); - } - worker.postMessage(msg, threadParams.transferList); - return 0; -}; -var runtimeKeepaliveCounter = 0; -var keepRuntimeAlive = () => noExitRuntime || runtimeKeepaliveCounter > 0; -var stackSave = () => _emscripten_stack_get_current(); -var stackRestore = (val) => __emscripten_stack_restore(val); -var stackAlloc = (sz) => __emscripten_stack_alloc(sz); -var proxyToMainThread = (funcIndex, emAsmAddr, sync, ...callArgs) => { - var serializedNumCallArgs = callArgs.length * 2; - var sp = stackSave(); - var args = stackAlloc(serializedNumCallArgs * 8); - var b = args >>> 3; - for (var i = 0; i < callArgs.length; i++) { - var arg = callArgs[i]; - if (typeof arg == 'bigint') { - (growMemViews(), HEAP64)[(b + 2 * i) >>> 0] = 1n; - (growMemViews(), HEAP64)[(b + 2 * i + 1) >>> 0] = arg; - } else { - (growMemViews(), HEAP64)[(b + 2 * i) >>> 0] = 0n; - (growMemViews(), HEAPF64)[(b + 2 * i + 1) >>> 0] = arg; - } - } - var rtn = __emscripten_run_js_on_main_thread( - funcIndex, - emAsmAddr, - serializedNumCallArgs, - args, - sync - ); - stackRestore(sp); - return rtn; -}; -function _proc_exit(code) { - if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(0, 0, 1, code); - EXITSTATUS = code; - if (!keepRuntimeAlive()) { - PThread.terminateAllThreads(); - Module['onExit']?.(code); - ABORT = true; - } - quit_(code, new ExitStatus(code)); -} -function exitOnMainThread(returnCode) { - if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(1, 0, 0, returnCode); - _exit(returnCode); -} -var exitJS = (status, implicit) => { - EXITSTATUS = status; - if (ENVIRONMENT_IS_PTHREAD) { - exitOnMainThread(status); - throw 'unwind'; - } - _proc_exit(status); -}; -var _exit = exitJS; -var PThread = { - unusedWorkers: [], - runningWorkers: [], - tlsInitFunctions: [], - pthreads: {}, - init() { - if (!ENVIRONMENT_IS_PTHREAD) { - PThread.initMainThread(); - } - }, - initMainThread() { - var pthreadPoolSize = Module['pthreadPoolSize']; - while (pthreadPoolSize--) { - PThread.allocateUnusedWorker(); - } - addOnPreRun(async () => { - var pthreadPoolReady = PThread.loadWasmModuleToAllWorkers(); - addRunDependency('loading-workers'); - await pthreadPoolReady; - removeRunDependency('loading-workers'); - }); - }, - terminateAllThreads: () => { - for (var worker of PThread.runningWorkers) { - terminateWorker(worker); - } - for (var worker of PThread.unusedWorkers) { - terminateWorker(worker); - } - PThread.unusedWorkers = []; - PThread.runningWorkers = []; - PThread.pthreads = {}; - }, - returnWorkerToPool: (worker) => { - var pthread_ptr = worker.pthread_ptr; - delete PThread.pthreads[pthread_ptr]; - PThread.unusedWorkers.push(worker); - PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1); - worker.pthread_ptr = 0; - __emscripten_thread_free_data(pthread_ptr); - }, - threadInitTLS() { - PThread.tlsInitFunctions.forEach((f) => f()); - }, - loadWasmModuleToWorker: (worker) => - new Promise((onFinishedLoading) => { - worker.onmessage = (e) => { - var d = e['data']; - var cmd = d.cmd; - if (d.targetThread && d.targetThread != _pthread_self()) { - var targetWorker = PThread.pthreads[d.targetThread]; - if (targetWorker) { - targetWorker.postMessage(d, d.transferList); - } else { - err( - `Internal error! Worker sent a message "${cmd}" to target pthread ${d.targetThread}, but that thread no longer exists!` - ); - } - return; - } - if (cmd === 'checkMailbox') { - checkMailbox(); - } else if (cmd === 'spawnThread') { - spawnThread(d); - } else if (cmd === 'cleanupThread') { - callUserCallback(() => cleanupThread(d.thread)); - } else if (cmd === 'loaded') { - worker.loaded = true; - if (ENVIRONMENT_IS_NODE && !worker.pthread_ptr) { - worker.unref(); - } - onFinishedLoading(worker); - } else if (d.target === 'setimmediate') { - worker.postMessage(d); - } else if (cmd === 'uncaughtException') { - worker.onerror(d.error); - } else if (cmd === 'callHandler') { - Module[d.handler](...d.args); - } else if (cmd) { - err(`worker sent an unknown command ${cmd}`); - } - }; - worker.onerror = (e) => { - var message = 'worker sent an error!'; - err(`${message} ${e.filename}:${e.lineno}: ${e.message}`); - throw e; - }; - if (ENVIRONMENT_IS_NODE) { - worker.on('message', (data) => worker.onmessage({ data })); - worker.on('error', (e) => worker.onerror(e)); - } - var handlers = []; - var knownHandlers = ['onExit', 'onAbort', 'print', 'printErr']; - for (var handler of knownHandlers) { - if (Module.propertyIsEnumerable(handler)) { - handlers.push(handler); - } - } - worker.postMessage({ cmd: 'load', handlers, wasmMemory, wasmModule }); - }), - async loadWasmModuleToAllWorkers() { - if (ENVIRONMENT_IS_PTHREAD) { - return; - } - let pthreadPoolReady = Promise.all( - PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker) - ); - return pthreadPoolReady; - }, - allocateUnusedWorker() { - var worker; - var pthreadMainJs = _scriptName; - if (Module['mainScriptUrlOrBlob']) { - pthreadMainJs = Module['mainScriptUrlOrBlob']; - if (typeof pthreadMainJs != 'string') { - pthreadMainJs = URL.createObjectURL(pthreadMainJs); - } - } - worker = new Worker(pthreadMainJs, { - workerData: 'em-pthread', - name: 'em-pthread', - }); - PThread.unusedWorkers.push(worker); - }, - getNewWorker() { - if (PThread.unusedWorkers.length == 0) { - PThread.allocateUnusedWorker(); - PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0]); - } - return PThread.unusedWorkers.pop(); - }, -}; -var onPostRuns = []; -var addOnPostRun = (cb) => onPostRuns.push(cb); -var dynCalls = {}; -var dynCallLegacy = (sig, ptr, args) => { - sig = sig.replace(/p/g, 'i'); - var f = dynCalls[sig]; - return f(ptr, ...args); -}; -var dynCall = (sig, ptr, args = [], promising = false) => { - var rtn = dynCallLegacy(sig, ptr, args); - function convert(rtn) { - return sig[0] == 'p' ? rtn >>> 0 : rtn; - } - return convert(rtn); -}; -function establishStackSpace(pthread_ptr) { - var stackHigh = (growMemViews(), HEAPU32)[((pthread_ptr + 52) >>> 2) >>> 0]; - var stackSize = (growMemViews(), HEAPU32)[((pthread_ptr + 56) >>> 2) >>> 0]; - var stackLow = stackHigh - stackSize; - _emscripten_stack_set_limits(stackHigh, stackLow); - stackRestore(stackHigh); -} -function getValue(ptr, type = 'i8') { - if (type.endsWith('*')) type = '*'; - switch (type) { - case 'i1': - return (growMemViews(), HEAP8)[ptr >>> 0]; - case 'i8': - return (growMemViews(), HEAP8)[ptr >>> 0]; - case 'i16': - return (growMemViews(), HEAP16)[(ptr >>> 1) >>> 0]; - case 'i32': - return (growMemViews(), HEAP32)[(ptr >>> 2) >>> 0]; - case 'i64': - return (growMemViews(), HEAP64)[(ptr >>> 3) >>> 0]; - case 'float': - return (growMemViews(), HEAPF32)[(ptr >>> 2) >>> 0]; - case 'double': - return (growMemViews(), HEAPF64)[(ptr >>> 3) >>> 0]; - case '*': - return (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0]; - default: - abort(`invalid type for getValue: ${type}`); - } -} -var invokeEntryPoint = (ptr, arg) => { - runtimeKeepaliveCounter = 0; - noExitRuntime = 0; - var result = ((a1) => dynCall_ii(ptr, a1))(arg); - function finish(result) { - if (keepRuntimeAlive()) { - EXITSTATUS = result; - return; - } - __emscripten_thread_exit(result); - } - finish(result); -}; -invokeEntryPoint.isAsync = true; -var noExitRuntime = true; -var registerTLSInit = (tlsInitFunc) => - PThread.tlsInitFunctions.push(tlsInitFunc); -function setValue(ptr, value, type = 'i8') { - if (type.endsWith('*')) type = '*'; - switch (type) { - case 'i1': - (growMemViews(), HEAP8)[ptr >>> 0] = value; - break; - case 'i8': - (growMemViews(), HEAP8)[ptr >>> 0] = value; - break; - case 'i16': - (growMemViews(), HEAP16)[(ptr >>> 1) >>> 0] = value; - break; - case 'i32': - (growMemViews(), HEAP32)[(ptr >>> 2) >>> 0] = value; - break; - case 'i64': - (growMemViews(), HEAP64)[(ptr >>> 3) >>> 0] = BigInt(value); - break; - case 'float': - (growMemViews(), HEAPF32)[(ptr >>> 2) >>> 0] = value; - break; - case 'double': - (growMemViews(), HEAPF64)[(ptr >>> 3) >>> 0] = value; - break; - case '*': - (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0] = value; - break; - default: - abort(`invalid type for setValue: ${type}`); - } -} -var wasmMemory; -var INT53_MAX = 9007199254740992; -var INT53_MIN = -9007199254740992; -var bigintToI53Checked = (num) => - num < INT53_MIN || num > INT53_MAX ? NaN : Number(num); -var UTF8Decoder = globalThis.TextDecoder && new TextDecoder(); -var findStringEnd = (heapOrArray, idx, maxBytesToRead, ignoreNul) => { - var maxIdx = idx + maxBytesToRead; - if (ignoreNul) return maxIdx; - while (heapOrArray[idx] && !(idx >= maxIdx)) ++idx; - return idx; -}; -var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead, ignoreNul) => { - idx >>>= 0; - var endPtr = findStringEnd(heapOrArray, idx, maxBytesToRead, ignoreNul); - if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { - return UTF8Decoder.decode( - heapOrArray.buffer instanceof ArrayBuffer - ? heapOrArray.subarray(idx, endPtr) - : heapOrArray.slice(idx, endPtr) - ); - } - var str = ''; - while (idx < endPtr) { - var u0 = heapOrArray[idx++]; - if (!(u0 & 128)) { - str += String.fromCharCode(u0); - continue; - } - var u1 = heapOrArray[idx++] & 63; - if ((u0 & 224) == 192) { - str += String.fromCharCode(((u0 & 31) << 6) | u1); - continue; - } - var u2 = heapOrArray[idx++] & 63; - if ((u0 & 240) == 224) { - u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; - } else { - u0 = - ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heapOrArray[idx++] & 63); - } - if (u0 < 65536) { - str += String.fromCharCode(u0); - } else { - var ch = u0 - 65536; - str += String.fromCharCode(55296 | (ch >> 10), 56320 | (ch & 1023)); - } - } - return str; -}; -var UTF8ToString = (ptr, maxBytesToRead, ignoreNul) => { - ptr >>>= 0; - return ptr - ? UTF8ArrayToString( - (growMemViews(), HEAPU8), - ptr, - maxBytesToRead, - ignoreNul - ) - : ''; -}; -function ___assert_fail(condition, filename, line, func) { - condition >>>= 0; - filename >>>= 0; - func >>>= 0; - return abort( - `Assertion failed: ${UTF8ToString(condition)}, at: ` + - [ - filename ? UTF8ToString(filename) : 'unknown filename', - line, - func ? UTF8ToString(func) : 'unknown function', - ] - ); -} -var exceptionCaught = []; -var uncaughtExceptionCount = 0; -function ___cxa_begin_catch(ptr) { - ptr >>>= 0; - var info = new ExceptionInfo(ptr); - if (!info.get_caught()) { - info.set_caught(true); - uncaughtExceptionCount--; - } - info.set_rethrown(false); - exceptionCaught.push(info); - ___cxa_increment_exception_refcount(ptr); - return ___cxa_get_exception_ptr(ptr); -} -function ___cxa_current_primary_exception() { - if (!exceptionCaught.length) { - return 0; - } - var info = exceptionCaught[exceptionCaught.length - 1]; - ___cxa_increment_exception_refcount(info.excPtr); - return info.excPtr; -} -var exceptionLast = 0; -var ___cxa_end_catch = () => { - _setThrew(0, 0); - var info = exceptionCaught.pop(); - ___cxa_decrement_exception_refcount(info.excPtr); - exceptionLast = 0; -}; -class ExceptionInfo { - constructor(excPtr) { - this.excPtr = excPtr; - this.ptr = excPtr - 24; - } - set_type(type) { - (growMemViews(), HEAPU32)[((this.ptr + 4) >>> 2) >>> 0] = type; - } - get_type() { - return (growMemViews(), HEAPU32)[((this.ptr + 4) >>> 2) >>> 0]; - } - set_destructor(destructor) { - (growMemViews(), HEAPU32)[((this.ptr + 8) >>> 2) >>> 0] = destructor; - } - get_destructor() { - return (growMemViews(), HEAPU32)[((this.ptr + 8) >>> 2) >>> 0]; - } - set_caught(caught) { - caught = caught ? 1 : 0; - (growMemViews(), HEAP8)[(this.ptr + 12) >>> 0] = caught; - } - get_caught() { - return (growMemViews(), HEAP8)[(this.ptr + 12) >>> 0] != 0; - } - set_rethrown(rethrown) { - rethrown = rethrown ? 1 : 0; - (growMemViews(), HEAP8)[(this.ptr + 13) >>> 0] = rethrown; - } - get_rethrown() { - return (growMemViews(), HEAP8)[(this.ptr + 13) >>> 0] != 0; - } - init(type, destructor) { - this.set_adjusted_ptr(0); - this.set_type(type); - this.set_destructor(destructor); - } - set_adjusted_ptr(adjustedPtr) { - (growMemViews(), HEAPU32)[((this.ptr + 16) >>> 2) >>> 0] = adjustedPtr; - } - get_adjusted_ptr() { - return (growMemViews(), HEAPU32)[((this.ptr + 16) >>> 2) >>> 0]; - } -} -var setTempRet0 = (val) => __emscripten_tempret_set(val); -var findMatchingCatch = (args) => { - var thrown = exceptionLast; - if (!thrown) { - setTempRet0(0); - return 0; - } - var info = new ExceptionInfo(thrown); - info.set_adjusted_ptr(thrown); - var thrownType = info.get_type(); - if (!thrownType) { - setTempRet0(0); - return thrown; - } - for (var caughtType of args) { - if (caughtType === 0 || caughtType === thrownType) { - break; - } - var adjusted_ptr_addr = info.ptr + 16; - if (___cxa_can_catch(caughtType, thrownType, adjusted_ptr_addr)) { - setTempRet0(caughtType); - return thrown; - } - } - setTempRet0(thrownType); - return thrown; -}; -function ___cxa_find_matching_catch_2() { - return findMatchingCatch([]); -} -function ___cxa_find_matching_catch_3(arg0) { - arg0 >>>= 0; - return findMatchingCatch([arg0]); -} -function ___cxa_find_matching_catch_4(arg0, arg1) { - arg0 >>>= 0; - arg1 >>>= 0; - return findMatchingCatch([arg0, arg1]); -} -function ___cxa_find_matching_catch_7(arg0, arg1, arg2, arg3, arg4) { - arg0 >>>= 0; - arg1 >>>= 0; - arg2 >>>= 0; - arg3 >>>= 0; - arg4 >>>= 0; - return findMatchingCatch([arg0, arg1, arg2, arg3, arg4]); -} -var ___cxa_rethrow = () => { - var info = exceptionCaught.pop(); - if (!info) { - abort('no exception to throw'); - } - var ptr = info.excPtr; - if (!info.get_rethrown()) { - exceptionCaught.push(info); - info.set_rethrown(true); - info.set_caught(false); - uncaughtExceptionCount++; - } - exceptionLast = ptr; - throw exceptionLast; -}; -function ___cxa_rethrow_primary_exception(ptr) { - ptr >>>= 0; - if (!ptr) return; - var info = new ExceptionInfo(ptr); - exceptionCaught.push(info); - info.set_rethrown(true); - ___cxa_rethrow(); -} -function ___cxa_throw(ptr, type, destructor) { - ptr >>>= 0; - type >>>= 0; - destructor >>>= 0; - var info = new ExceptionInfo(ptr); - info.init(type, destructor); - exceptionLast = ptr; - uncaughtExceptionCount++; - throw exceptionLast; -} -var ___cxa_uncaught_exceptions = () => uncaughtExceptionCount; -function pthreadCreateProxied(pthread_ptr, attr, startRoutine, arg) { - if (ENVIRONMENT_IS_PTHREAD) - return proxyToMainThread(2, 0, 1, pthread_ptr, attr, startRoutine, arg); - return ___pthread_create_js(pthread_ptr, attr, startRoutine, arg); -} -var _emscripten_has_threading_support = () => !!globalThis.SharedArrayBuffer; -function ___pthread_create_js(pthread_ptr, attr, startRoutine, arg) { - pthread_ptr >>>= 0; - attr >>>= 0; - startRoutine >>>= 0; - arg >>>= 0; - if (!_emscripten_has_threading_support()) { - return 6; - } - var transferList = []; - var error = 0; - if (ENVIRONMENT_IS_PTHREAD && (transferList.length === 0 || error)) { - return pthreadCreateProxied(pthread_ptr, attr, startRoutine, arg); - } - if (error) return error; - var threadParams = { startRoutine, pthread_ptr, arg, transferList }; - if (ENVIRONMENT_IS_PTHREAD) { - threadParams.cmd = 'spawnThread'; - postMessage(threadParams, transferList); - return 0; - } - return spawnThread(threadParams); -} -function ___resumeException(ptr) { - ptr >>>= 0; - if (!exceptionLast) { - exceptionLast = ptr; - } - throw exceptionLast; -} -var syscallGetVarargI = () => { - var ret = (growMemViews(), HEAP32)[(+SYSCALLS.varargs >>> 2) >>> 0]; - SYSCALLS.varargs += 4; - return ret; -}; -var syscallGetVarargP = syscallGetVarargI; -var PATH = { - isAbs: (path) => path.charAt(0) === '/', - splitPath: (filename) => { - var splitPathRe = - /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; - return splitPathRe.exec(filename).slice(1); - }, - normalizeArray: (parts, allowAboveRoot) => { - var up = 0; - for (var i = parts.length - 1; i >= 0; i--) { - var last = parts[i]; - if (last === '.') { - parts.splice(i, 1); - } else if (last === '..') { - parts.splice(i, 1); - up++; - } else if (up) { - parts.splice(i, 1); - up--; - } - } - if (allowAboveRoot) { - for (; up; up--) { - parts.unshift('..'); - } - } - return parts; - }, - normalize: (path) => { - var isAbsolute = PATH.isAbs(path), - trailingSlash = path.slice(-1) === '/'; - path = PATH.normalizeArray( - path.split('/').filter((p) => !!p), - !isAbsolute - ).join('/'); - if (!path && !isAbsolute) { - path = '.'; - } - if (path && trailingSlash) { - path += '/'; - } - return (isAbsolute ? '/' : '') + path; - }, - dirname: (path) => { - var result = PATH.splitPath(path), - root = result[0], - dir = result[1]; - if (!root && !dir) { - return '.'; - } - if (dir) { - dir = dir.slice(0, -1); - } - return root + dir; - }, - basename: (path) => path && path.match(/([^\/]+|\/)\/*$/)[1], - join: (...paths) => PATH.normalize(paths.join('/')), - join2: (l, r) => PATH.normalize(l + '/' + r), -}; -var initRandomFill = () => { - if (ENVIRONMENT_IS_NODE) { - var nodeCrypto = require('crypto'); - return (view) => nodeCrypto.randomFillSync(view); - } - return (view) => - view.set(crypto.getRandomValues(new Uint8Array(view.byteLength))); -}; -var randomFill = (view) => { - (randomFill = initRandomFill())(view); -}; -var PATH_FS = { - resolve: (...args) => { - var resolvedPath = '', - resolvedAbsolute = false; - for (var i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = i >= 0 ? args[i] : FS.cwd(); - if (typeof path != 'string') { - throw new TypeError('Arguments to path.resolve must be strings'); - } else if (!path) { - return ''; - } - resolvedPath = path + '/' + resolvedPath; - resolvedAbsolute = PATH.isAbs(path); - } - resolvedPath = PATH.normalizeArray( - resolvedPath.split('/').filter((p) => !!p), - !resolvedAbsolute - ).join('/'); - return (resolvedAbsolute ? '/' : '') + resolvedPath || '.'; - }, - relative: (from, to) => { - from = PATH_FS.resolve(from).slice(1); - to = PATH_FS.resolve(to).slice(1); - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== '') break; - } - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== '') break; - } - if (start > end) return []; - return arr.slice(start, end - start + 1); - } - var fromParts = trim(from.split('/')); - var toParts = trim(to.split('/')); - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } - } - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push('..'); - } - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - return outputParts.join('/'); - }, -}; -var FS_stdin_getChar_buffer = []; -var lengthBytesUTF8 = (str) => { - var len = 0; - for (var i = 0; i < str.length; ++i) { - var c = str.charCodeAt(i); - if (c <= 127) { - len++; - } else if (c <= 2047) { - len += 2; - } else if (c >= 55296 && c <= 57343) { - len += 4; - ++i; - } else { - len += 3; - } - } - return len; -}; -var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => { - outIdx >>>= 0; - if (!(maxBytesToWrite > 0)) return 0; - var startIdx = outIdx; - var endIdx = outIdx + maxBytesToWrite - 1; - for (var i = 0; i < str.length; ++i) { - var u = str.codePointAt(i); - if (u <= 127) { - if (outIdx >= endIdx) break; - heap[outIdx++ >>> 0] = u; - } else if (u <= 2047) { - if (outIdx + 1 >= endIdx) break; - heap[outIdx++ >>> 0] = 192 | (u >> 6); - heap[outIdx++ >>> 0] = 128 | (u & 63); - } else if (u <= 65535) { - if (outIdx + 2 >= endIdx) break; - heap[outIdx++ >>> 0] = 224 | (u >> 12); - heap[outIdx++ >>> 0] = 128 | ((u >> 6) & 63); - heap[outIdx++ >>> 0] = 128 | (u & 63); - } else { - if (outIdx + 3 >= endIdx) break; - heap[outIdx++ >>> 0] = 240 | (u >> 18); - heap[outIdx++ >>> 0] = 128 | ((u >> 12) & 63); - heap[outIdx++ >>> 0] = 128 | ((u >> 6) & 63); - heap[outIdx++ >>> 0] = 128 | (u & 63); - i++; - } - } - heap[outIdx >>> 0] = 0; - return outIdx - startIdx; -}; -var intArrayFromString = (stringy, dontAddNull, length) => { - var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; - var u8array = new Array(len); - var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); - if (dontAddNull) u8array.length = numBytesWritten; - return u8array; -}; -var FS_stdin_getChar = () => { - if (!FS_stdin_getChar_buffer.length) { - var result = null; - if (ENVIRONMENT_IS_NODE) { - var BUFSIZE = 256; - var buf = Buffer.alloc(BUFSIZE); - var bytesRead = 0; - var fd = process.stdin.fd; - try { - bytesRead = fs.readSync(fd, buf, 0, BUFSIZE); - } catch (e) { - if (e.toString().includes('EOF')) bytesRead = 0; - else throw e; - } - if (bytesRead > 0) { - result = buf.slice(0, bytesRead).toString('utf-8'); - } - } else if (globalThis.window?.prompt) { - result = window.prompt('Input: '); - if (result !== null) { - result += '\n'; - } - } else { - } - if (!result) { - return null; - } - FS_stdin_getChar_buffer = intArrayFromString(result, true); - } - return FS_stdin_getChar_buffer.shift(); -}; -var TTY = { - ttys: [], - init() {}, - shutdown() {}, - register(dev, ops) { - TTY.ttys[dev] = { input: [], output: [], ops }; - FS.registerDevice(dev, TTY.stream_ops); - }, - stream_ops: { - open(stream) { - var tty = TTY.ttys[stream.node.rdev]; - if (!tty) { - throw new FS.ErrnoError(43); - } - stream.tty = tty; - stream.seekable = false; - }, - close(stream) { - stream.tty.ops.fsync(stream.tty); - }, - fsync(stream) { - stream.tty.ops.fsync(stream.tty); - }, - read(stream, buffer, offset, length, pos) { - if (!stream.tty || !stream.tty.ops.get_char) { - throw new FS.ErrnoError(60); - } - var bytesRead = 0; - for (var i = 0; i < length; i++) { - var result; - try { - result = stream.tty.ops.get_char(stream.tty); - } catch (e) { - throw new FS.ErrnoError(29); - } - if (result === undefined && bytesRead === 0) { - throw new FS.ErrnoError(6); - } - if (result === null || result === undefined) break; - bytesRead++; - buffer[offset + i] = result; - } - if (bytesRead) { - stream.node.atime = Date.now(); - } - return bytesRead; - }, - write(stream, buffer, offset, length, pos) { - if (!stream.tty || !stream.tty.ops.put_char) { - throw new FS.ErrnoError(60); - } - try { - for (var i = 0; i < length; i++) { - stream.tty.ops.put_char(stream.tty, buffer[offset + i]); - } - } catch (e) { - throw new FS.ErrnoError(29); - } - if (length) { - stream.node.mtime = stream.node.ctime = Date.now(); - } - return i; - }, - }, - default_tty_ops: { - get_char(tty) { - return FS_stdin_getChar(); - }, - put_char(tty, val) { - if (val === null || val === 10) { - out(UTF8ArrayToString(tty.output)); - tty.output = []; - } else { - if (val != 0) tty.output.push(val); - } - }, - fsync(tty) { - if (tty.output?.length > 0) { - out(UTF8ArrayToString(tty.output)); - tty.output = []; - } - }, - ioctl_tcgets(tty) { - return { - c_iflag: 25856, - c_oflag: 5, - c_cflag: 191, - c_lflag: 35387, - c_cc: [ - 3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, 23, 22, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - }, - ioctl_tcsets(tty, optional_actions, data) { - return 0; - }, - ioctl_tiocgwinsz(tty) { - return [24, 80]; - }, - }, - default_tty1_ops: { - put_char(tty, val) { - if (val === null || val === 10) { - err(UTF8ArrayToString(tty.output)); - tty.output = []; - } else { - if (val != 0) tty.output.push(val); - } - }, - fsync(tty) { - if (tty.output?.length > 0) { - err(UTF8ArrayToString(tty.output)); - tty.output = []; - } - }, - }, -}; -var zeroMemory = (ptr, size) => - (growMemViews(), HEAPU8).fill(0, ptr, ptr + size); -var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment; -var mmapAlloc = (size) => { - size = alignMemory(size, 65536); - var ptr = _emscripten_builtin_memalign(65536, size); - if (ptr) zeroMemory(ptr, size); - return ptr; -}; -var MEMFS = { - ops_table: null, - mount(mount) { - return MEMFS.createNode(null, '/', 16895, 0); - }, - createNode(parent, name, mode, dev) { - if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { - throw new FS.ErrnoError(63); - } - MEMFS.ops_table ||= { - dir: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr, - lookup: MEMFS.node_ops.lookup, - mknod: MEMFS.node_ops.mknod, - rename: MEMFS.node_ops.rename, - unlink: MEMFS.node_ops.unlink, - rmdir: MEMFS.node_ops.rmdir, - readdir: MEMFS.node_ops.readdir, - symlink: MEMFS.node_ops.symlink, - }, - stream: { llseek: MEMFS.stream_ops.llseek }, - }, - file: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr, - }, - stream: { - llseek: MEMFS.stream_ops.llseek, - read: MEMFS.stream_ops.read, - write: MEMFS.stream_ops.write, - mmap: MEMFS.stream_ops.mmap, - msync: MEMFS.stream_ops.msync, - }, - }, - link: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr, - readlink: MEMFS.node_ops.readlink, - }, - stream: {}, - }, - chrdev: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr, - }, - stream: FS.chrdev_stream_ops, - }, - }; - var node = FS.createNode(parent, name, mode, dev); - if (FS.isDir(node.mode)) { - node.node_ops = MEMFS.ops_table.dir.node; - node.stream_ops = MEMFS.ops_table.dir.stream; - node.contents = {}; - } else if (FS.isFile(node.mode)) { - node.node_ops = MEMFS.ops_table.file.node; - node.stream_ops = MEMFS.ops_table.file.stream; - node.usedBytes = 0; - node.contents = null; - } else if (FS.isLink(node.mode)) { - node.node_ops = MEMFS.ops_table.link.node; - node.stream_ops = MEMFS.ops_table.link.stream; - } else if (FS.isChrdev(node.mode)) { - node.node_ops = MEMFS.ops_table.chrdev.node; - node.stream_ops = MEMFS.ops_table.chrdev.stream; - } - node.atime = node.mtime = node.ctime = Date.now(); - if (parent) { - parent.contents[name] = node; - parent.atime = parent.mtime = parent.ctime = node.atime; - } - return node; - }, - getFileDataAsTypedArray(node) { - if (!node.contents) return new Uint8Array(0); - if (node.contents.subarray) - return node.contents.subarray(0, node.usedBytes); - return new Uint8Array(node.contents); - }, - expandFileStorage(node, newCapacity) { - var prevCapacity = node.contents ? node.contents.length : 0; - if (prevCapacity >= newCapacity) return; - var CAPACITY_DOUBLING_MAX = 1024 * 1024; - newCapacity = Math.max( - newCapacity, - (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125)) >>> 0 - ); - if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); - var oldContents = node.contents; - node.contents = new Uint8Array(newCapacity); - if (node.usedBytes > 0) - node.contents.set(oldContents.subarray(0, node.usedBytes), 0); - }, - resizeFileStorage(node, newSize) { - if (node.usedBytes == newSize) return; - if (newSize == 0) { - node.contents = null; - node.usedBytes = 0; - } else { - var oldContents = node.contents; - node.contents = new Uint8Array(newSize); - if (oldContents) { - node.contents.set( - oldContents.subarray(0, Math.min(newSize, node.usedBytes)) - ); - } - node.usedBytes = newSize; - } - }, - node_ops: { - getattr(node) { - var attr = {}; - attr.dev = FS.isChrdev(node.mode) ? node.id : 1; - attr.ino = node.id; - attr.mode = node.mode; - attr.nlink = 1; - attr.uid = 0; - attr.gid = 0; - attr.rdev = node.rdev; - if (FS.isDir(node.mode)) { - attr.size = 4096; - } else if (FS.isFile(node.mode)) { - attr.size = node.usedBytes; - } else if (FS.isLink(node.mode)) { - attr.size = node.link.length; - } else { - attr.size = 0; - } - attr.atime = new Date(node.atime); - attr.mtime = new Date(node.mtime); - attr.ctime = new Date(node.ctime); - attr.blksize = 4096; - attr.blocks = Math.ceil(attr.size / attr.blksize); - return attr; - }, - setattr(node, attr) { - for (const key of ['mode', 'atime', 'mtime', 'ctime']) { - if (attr[key] != null) { - node[key] = attr[key]; - } - } - if (attr.size !== undefined) { - MEMFS.resizeFileStorage(node, attr.size); - } - }, - lookup(parent, name) { - if (!MEMFS.doesNotExistError) { - MEMFS.doesNotExistError = new FS.ErrnoError(44); - MEMFS.doesNotExistError.stack = ''; - } - throw MEMFS.doesNotExistError; - }, - mknod(parent, name, mode, dev) { - return MEMFS.createNode(parent, name, mode, dev); - }, - rename(old_node, new_dir, new_name) { - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) {} - if (new_node) { - if (FS.isDir(old_node.mode)) { - for (var i in new_node.contents) { - throw new FS.ErrnoError(55); - } - } - FS.hashRemoveNode(new_node); - } - delete old_node.parent.contents[old_node.name]; - new_dir.contents[new_name] = old_node; - old_node.name = new_name; - new_dir.ctime = - new_dir.mtime = - old_node.parent.ctime = - old_node.parent.mtime = - Date.now(); - }, - unlink(parent, name) { - delete parent.contents[name]; - parent.ctime = parent.mtime = Date.now(); - }, - rmdir(parent, name) { - var node = FS.lookupNode(parent, name); - for (var i in node.contents) { - throw new FS.ErrnoError(55); - } - delete parent.contents[name]; - parent.ctime = parent.mtime = Date.now(); - }, - readdir(node) { - return ['.', '..', ...Object.keys(node.contents)]; - }, - symlink(parent, newname, oldpath) { - var node = MEMFS.createNode(parent, newname, 511 | 40960, 0); - node.link = oldpath; - return node; - }, - readlink(node) { - if (!FS.isLink(node.mode)) { - throw new FS.ErrnoError(28); - } - return node.link; - }, - }, - stream_ops: { - read(stream, buffer, offset, length, position) { - var contents = stream.node.contents; - if (position >= stream.node.usedBytes) return 0; - var size = Math.min(stream.node.usedBytes - position, length); - if (size > 8 && contents.subarray) { - buffer.set(contents.subarray(position, position + size), offset); - } else { - for (var i = 0; i < size; i++) - buffer[offset + i] = contents[position + i]; - } - return size; - }, - write(stream, buffer, offset, length, position, canOwn) { - if (buffer.buffer === (growMemViews(), HEAP8).buffer) { - canOwn = false; - } - if (!length) return 0; - var node = stream.node; - node.mtime = node.ctime = Date.now(); - if (buffer.subarray && (!node.contents || node.contents.subarray)) { - if (canOwn) { - node.contents = buffer.subarray(offset, offset + length); - node.usedBytes = length; - return length; - } else if (node.usedBytes === 0 && position === 0) { - node.contents = buffer.slice(offset, offset + length); - node.usedBytes = length; - return length; - } else if (position + length <= node.usedBytes) { - node.contents.set(buffer.subarray(offset, offset + length), position); - return length; - } - } - MEMFS.expandFileStorage(node, position + length); - if (node.contents.subarray && buffer.subarray) { - node.contents.set(buffer.subarray(offset, offset + length), position); - } else { - for (var i = 0; i < length; i++) { - node.contents[position + i] = buffer[offset + i]; - } - } - node.usedBytes = Math.max(node.usedBytes, position + length); - return length; - }, - llseek(stream, offset, whence) { - var position = offset; - if (whence === 1) { - position += stream.position; - } else if (whence === 2) { - if (FS.isFile(stream.node.mode)) { - position += stream.node.usedBytes; - } - } - if (position < 0) { - throw new FS.ErrnoError(28); - } - return position; - }, - mmap(stream, length, position, prot, flags) { - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - var ptr; - var allocated; - var contents = stream.node.contents; - if ( - !(flags & 2) && - contents && - contents.buffer === (growMemViews(), HEAP8).buffer - ) { - allocated = false; - ptr = contents.byteOffset; - } else { - allocated = true; - ptr = mmapAlloc(length); - if (!ptr) { - throw new FS.ErrnoError(48); - } - if (contents) { - if (position > 0 || position + length < contents.length) { - if (contents.subarray) { - contents = contents.subarray(position, position + length); - } else { - contents = Array.prototype.slice.call( - contents, - position, - position + length - ); - } - } - (growMemViews(), HEAP8).set(contents, ptr >>> 0); - } - } - return { ptr, allocated }; - }, - msync(stream, buffer, offset, length, mmapFlags) { - MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); - return 0; - }, - }, -}; -var FS_modeStringToFlags = (str) => { - var flagModes = { - r: 0, - 'r+': 2, - w: 512 | 64 | 1, - 'w+': 512 | 64 | 2, - a: 1024 | 64 | 1, - 'a+': 1024 | 64 | 2, - }; - var flags = flagModes[str]; - if (typeof flags == 'undefined') { - throw new Error(`Unknown file open mode: ${str}`); - } - return flags; -}; -var FS_getMode = (canRead, canWrite) => { - var mode = 0; - if (canRead) mode |= 292 | 73; - if (canWrite) mode |= 146; - return mode; -}; -var asyncLoad = async (url) => { - var arrayBuffer = await readAsync(url); - return new Uint8Array(arrayBuffer); -}; -var FS_createDataFile = (...args) => FS.createDataFile(...args); -var getUniqueRunDependency = (id) => id; -var preloadPlugins = []; -var FS_handledByPreloadPlugin = async (byteArray, fullname) => { - if (typeof Browser != 'undefined') Browser.init(); - for (var plugin of preloadPlugins) { - if (plugin['canHandle'](fullname)) { - return plugin['handle'](byteArray, fullname); - } - } - return byteArray; -}; -var FS_preloadFile = async ( - parent, - name, - url, - canRead, - canWrite, - dontCreateFile, - canOwn, - preFinish -) => { - var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; - var dep = getUniqueRunDependency(`cp ${fullname}`); - addRunDependency(dep); - try { - var byteArray = url; - if (typeof url == 'string') { - byteArray = await asyncLoad(url); - } - byteArray = await FS_handledByPreloadPlugin(byteArray, fullname); - preFinish?.(); - if (!dontCreateFile) { - FS_createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); - } - } finally { - removeRunDependency(dep); - } -}; -var FS_createPreloadedFile = ( - parent, - name, - url, - canRead, - canWrite, - onload, - onerror, - dontCreateFile, - canOwn, - preFinish -) => { - FS_preloadFile( - parent, - name, - url, - canRead, - canWrite, - dontCreateFile, - canOwn, - preFinish - ) - .then(onload) - .catch(onerror); -}; -var FS = { - root: null, - mounts: [], - devices: {}, - streams: [], - nextInode: 1, - nameTable: null, - currentPath: '/', - initialized: false, - ignorePermissions: true, - filesystems: null, - syncFSRequests: 0, - readFiles: {}, - ErrnoError: class { - name = 'ErrnoError'; - constructor(errno) { - this.errno = errno; - } - }, - FSStream: class { - shared = {}; - get object() { - return this.node; - } - set object(val) { - this.node = val; - } - get isRead() { - return (this.flags & 2097155) !== 1; - } - get isWrite() { - return (this.flags & 2097155) !== 0; - } - get isAppend() { - return this.flags & 1024; - } - get flags() { - return this.shared.flags; - } - set flags(val) { - this.shared.flags = val; - } - get position() { - return this.shared.position; - } - set position(val) { - this.shared.position = val; - } - }, - FSNode: class { - node_ops = {}; - stream_ops = {}; - readMode = 292 | 73; - writeMode = 146; - mounted = null; - constructor(parent, name, mode, rdev) { - if (!parent) { - parent = this; - } - this.parent = parent; - this.mount = parent.mount; - this.id = FS.nextInode++; - this.name = name; - this.mode = mode; - this.rdev = rdev; - this.atime = this.mtime = this.ctime = Date.now(); - } - get read() { - return (this.mode & this.readMode) === this.readMode; - } - set read(val) { - val ? (this.mode |= this.readMode) : (this.mode &= ~this.readMode); - } - get write() { - return (this.mode & this.writeMode) === this.writeMode; - } - set write(val) { - val ? (this.mode |= this.writeMode) : (this.mode &= ~this.writeMode); - } - get isFolder() { - return FS.isDir(this.mode); - } - get isDevice() { - return FS.isChrdev(this.mode); - } - }, - lookupPath(path, opts = {}) { - if (!path) { - throw new FS.ErrnoError(44); - } - opts.follow_mount ??= true; - if (!PATH.isAbs(path)) { - path = FS.cwd() + '/' + path; - } - linkloop: for (var nlinks = 0; nlinks < 40; nlinks++) { - var parts = path.split('/').filter((p) => !!p); - var current = FS.root; - var current_path = '/'; - for (var i = 0; i < parts.length; i++) { - var islast = i === parts.length - 1; - if (islast && opts.parent) { - break; - } - if (parts[i] === '.') { - continue; - } - if (parts[i] === '..') { - current_path = PATH.dirname(current_path); - if (FS.isRoot(current)) { - path = current_path + '/' + parts.slice(i + 1).join('/'); - nlinks--; - continue linkloop; - } else { - current = current.parent; - } - continue; - } - current_path = PATH.join2(current_path, parts[i]); - try { - current = FS.lookupNode(current, parts[i]); - } catch (e) { - if (e?.errno === 44 && islast && opts.noent_okay) { - return { path: current_path }; - } - throw e; - } - if (FS.isMountpoint(current) && (!islast || opts.follow_mount)) { - current = current.mounted.root; - } - if (FS.isLink(current.mode) && (!islast || opts.follow)) { - if (!current.node_ops.readlink) { - throw new FS.ErrnoError(52); - } - var link = current.node_ops.readlink(current); - if (!PATH.isAbs(link)) { - link = PATH.dirname(current_path) + '/' + link; - } - path = link + '/' + parts.slice(i + 1).join('/'); - continue linkloop; - } - } - return { path: current_path, node: current }; - } - throw new FS.ErrnoError(32); - }, - getPath(node) { - var path; - while (true) { - if (FS.isRoot(node)) { - var mount = node.mount.mountpoint; - if (!path) return mount; - return mount[mount.length - 1] !== '/' - ? `${mount}/${path}` - : mount + path; - } - path = path ? `${node.name}/${path}` : node.name; - node = node.parent; - } - }, - hashName(parentid, name) { - var hash = 0; - for (var i = 0; i < name.length; i++) { - hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; - } - return ((parentid + hash) >>> 0) % FS.nameTable.length; - }, - hashAddNode(node) { - var hash = FS.hashName(node.parent.id, node.name); - node.name_next = FS.nameTable[hash]; - FS.nameTable[hash] = node; - }, - hashRemoveNode(node) { - var hash = FS.hashName(node.parent.id, node.name); - if (FS.nameTable[hash] === node) { - FS.nameTable[hash] = node.name_next; - } else { - var current = FS.nameTable[hash]; - while (current) { - if (current.name_next === node) { - current.name_next = node.name_next; - break; - } - current = current.name_next; - } - } - }, - lookupNode(parent, name) { - var errCode = FS.mayLookup(parent); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - var hash = FS.hashName(parent.id, name); - for (var node = FS.nameTable[hash]; node; node = node.name_next) { - var nodeName = node.name; - if (node.parent.id === parent.id && nodeName === name) { - return node; - } - } - return FS.lookup(parent, name); - }, - createNode(parent, name, mode, rdev) { - var node = new FS.FSNode(parent, name, mode, rdev); - FS.hashAddNode(node); - return node; - }, - destroyNode(node) { - FS.hashRemoveNode(node); - }, - isRoot(node) { - return node === node.parent; - }, - isMountpoint(node) { - return !!node.mounted; - }, - isFile(mode) { - return (mode & 61440) === 32768; - }, - isDir(mode) { - return (mode & 61440) === 16384; - }, - isLink(mode) { - return (mode & 61440) === 40960; - }, - isChrdev(mode) { - return (mode & 61440) === 8192; - }, - isBlkdev(mode) { - return (mode & 61440) === 24576; - }, - isFIFO(mode) { - return (mode & 61440) === 4096; - }, - isSocket(mode) { - return (mode & 49152) === 49152; - }, - flagsToPermissionString(flag) { - var perms = ['r', 'w', 'rw'][flag & 3]; - if (flag & 512) { - perms += 'w'; - } - return perms; - }, - nodePermissions(node, perms) { - if (FS.ignorePermissions) { - return 0; - } - if (perms.includes('r') && !(node.mode & 292)) { - return 2; - } else if (perms.includes('w') && !(node.mode & 146)) { - return 2; - } else if (perms.includes('x') && !(node.mode & 73)) { - return 2; - } - return 0; - }, - mayLookup(dir) { - if (!FS.isDir(dir.mode)) return 54; - var errCode = FS.nodePermissions(dir, 'x'); - if (errCode) return errCode; - if (!dir.node_ops.lookup) return 2; - return 0; - }, - mayCreate(dir, name) { - if (!FS.isDir(dir.mode)) { - return 54; - } - try { - var node = FS.lookupNode(dir, name); - return 20; - } catch (e) {} - return FS.nodePermissions(dir, 'wx'); - }, - mayDelete(dir, name, isdir) { - var node; - try { - node = FS.lookupNode(dir, name); - } catch (e) { - return e.errno; - } - var errCode = FS.nodePermissions(dir, 'wx'); - if (errCode) { - return errCode; - } - if (isdir) { - if (!FS.isDir(node.mode)) { - return 54; - } - if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { - return 10; - } - } else { - if (FS.isDir(node.mode)) { - return 31; - } - } - return 0; - }, - mayOpen(node, flags) { - if (!node) { - return 44; - } - if (FS.isLink(node.mode)) { - return 32; - } else if (FS.isDir(node.mode)) { - if (FS.flagsToPermissionString(flags) !== 'r' || flags & (512 | 64)) { - return 31; - } - } - return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); - }, - checkOpExists(op, err) { - if (!op) { - throw new FS.ErrnoError(err); - } - return op; - }, - MAX_OPEN_FDS: 4096, - nextfd() { - for (var fd = 0; fd <= FS.MAX_OPEN_FDS; fd++) { - if (!FS.streams[fd]) { - return fd; - } - } - throw new FS.ErrnoError(33); - }, - getStreamChecked(fd) { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - return stream; - }, - getStream: (fd) => FS.streams[fd], - createStream(stream, fd = -1) { - stream = Object.assign(new FS.FSStream(), stream); - if (fd == -1) { - fd = FS.nextfd(); - } - stream.fd = fd; - FS.streams[fd] = stream; - return stream; - }, - closeStream(fd) { - FS.streams[fd] = null; - }, - dupStream(origStream, fd = -1) { - var stream = FS.createStream(origStream, fd); - stream.stream_ops?.dup?.(stream); - return stream; - }, - doSetAttr(stream, node, attr) { - var setattr = stream?.stream_ops.setattr; - var arg = setattr ? stream : node; - setattr ??= node.node_ops.setattr; - FS.checkOpExists(setattr, 63); - setattr(arg, attr); - }, - chrdev_stream_ops: { - open(stream) { - var device = FS.getDevice(stream.node.rdev); - stream.stream_ops = device.stream_ops; - stream.stream_ops.open?.(stream); - }, - llseek() { - throw new FS.ErrnoError(70); - }, - }, - major: (dev) => dev >> 8, - minor: (dev) => dev & 255, - makedev: (ma, mi) => (ma << 8) | mi, - registerDevice(dev, ops) { - FS.devices[dev] = { stream_ops: ops }; - }, - getDevice: (dev) => FS.devices[dev], - getMounts(mount) { - var mounts = []; - var check = [mount]; - while (check.length) { - var m = check.pop(); - mounts.push(m); - check.push(...m.mounts); - } - return mounts; - }, - syncfs(populate, callback) { - if (typeof populate == 'function') { - callback = populate; - populate = false; - } - FS.syncFSRequests++; - if (FS.syncFSRequests > 1) { - err( - `warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work` - ); - } - var mounts = FS.getMounts(FS.root.mount); - var completed = 0; - function doCallback(errCode) { - FS.syncFSRequests--; - return callback(errCode); - } - function done(errCode) { - if (errCode) { - if (!done.errored) { - done.errored = true; - return doCallback(errCode); - } - return; - } - if (++completed >= mounts.length) { - doCallback(null); - } - } - for (var mount of mounts) { - if (mount.type.syncfs) { - mount.type.syncfs(mount, populate, done); - } else { - done(null); - } - } - }, - mount(type, opts, mountpoint) { - var root = mountpoint === '/'; - var pseudo = !mountpoint; - var node; - if (root && FS.root) { - throw new FS.ErrnoError(10); - } else if (!root && !pseudo) { - var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); - mountpoint = lookup.path; - node = lookup.node; - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - if (!FS.isDir(node.mode)) { - throw new FS.ErrnoError(54); - } - } - var mount = { type, opts, mountpoint, mounts: [] }; - var mountRoot = type.mount(mount); - mountRoot.mount = mount; - mount.root = mountRoot; - if (root) { - FS.root = mountRoot; - } else if (node) { - node.mounted = mount; - if (node.mount) { - node.mount.mounts.push(mount); - } - } - return mountRoot; - }, - unmount(mountpoint) { - var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); - if (!FS.isMountpoint(lookup.node)) { - throw new FS.ErrnoError(28); - } - var node = lookup.node; - var mount = node.mounted; - var mounts = FS.getMounts(mount); - for (var [hash, current] of Object.entries(FS.nameTable)) { - while (current) { - var next = current.name_next; - if (mounts.includes(current.mount)) { - FS.destroyNode(current); - } - current = next; - } - } - node.mounted = null; - var idx = node.mount.mounts.indexOf(mount); - node.mount.mounts.splice(idx, 1); - }, - lookup(parent, name) { - return parent.node_ops.lookup(parent, name); - }, - mknod(path, mode, dev) { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - if (!name) { - throw new FS.ErrnoError(28); - } - if (name === '.' || name === '..') { - throw new FS.ErrnoError(20); - } - var errCode = FS.mayCreate(parent, name); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.mknod) { - throw new FS.ErrnoError(63); - } - return parent.node_ops.mknod(parent, name, mode, dev); - }, - statfs(path) { - return FS.statfsNode(FS.lookupPath(path, { follow: true }).node); - }, - statfsStream(stream) { - return FS.statfsNode(stream.node); - }, - statfsNode(node) { - var rtn = { - bsize: 4096, - frsize: 4096, - blocks: 1e6, - bfree: 5e5, - bavail: 5e5, - files: FS.nextInode, - ffree: FS.nextInode - 1, - fsid: 42, - flags: 2, - namelen: 255, - }; - if (node.node_ops.statfs) { - Object.assign(rtn, node.node_ops.statfs(node.mount.opts.root)); - } - return rtn; - }, - create(path, mode = 438) { - mode &= 4095; - mode |= 32768; - return FS.mknod(path, mode, 0); - }, - mkdir(path, mode = 511) { - mode &= 511 | 512; - mode |= 16384; - return FS.mknod(path, mode, 0); - }, - mkdirTree(path, mode) { - var dirs = path.split('/'); - var d = ''; - for (var dir of dirs) { - if (!dir) continue; - if (d || PATH.isAbs(path)) d += '/'; - d += dir; - try { - FS.mkdir(d, mode); - } catch (e) { - if (e.errno != 20) throw e; - } - } - }, - mkdev(path, mode, dev) { - if (typeof dev == 'undefined') { - dev = mode; - mode = 438; - } - mode |= 8192; - return FS.mknod(path, mode, dev); - }, - symlink(oldpath, newpath) { - if (!PATH_FS.resolve(oldpath)) { - throw new FS.ErrnoError(44); - } - var lookup = FS.lookupPath(newpath, { parent: true }); - var parent = lookup.node; - if (!parent) { - throw new FS.ErrnoError(44); - } - var newname = PATH.basename(newpath); - var errCode = FS.mayCreate(parent, newname); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.symlink) { - throw new FS.ErrnoError(63); - } - return parent.node_ops.symlink(parent, newname, oldpath); - }, - rename(old_path, new_path) { - var old_dirname = PATH.dirname(old_path); - var new_dirname = PATH.dirname(new_path); - var old_name = PATH.basename(old_path); - var new_name = PATH.basename(new_path); - var lookup, old_dir, new_dir; - lookup = FS.lookupPath(old_path, { parent: true }); - old_dir = lookup.node; - lookup = FS.lookupPath(new_path, { parent: true }); - new_dir = lookup.node; - if (!old_dir || !new_dir) throw new FS.ErrnoError(44); - if (old_dir.mount !== new_dir.mount) { - throw new FS.ErrnoError(75); - } - var old_node = FS.lookupNode(old_dir, old_name); - var relative = PATH_FS.relative(old_path, new_dirname); - if (relative.charAt(0) !== '.') { - throw new FS.ErrnoError(28); - } - relative = PATH_FS.relative(new_path, old_dirname); - if (relative.charAt(0) !== '.') { - throw new FS.ErrnoError(55); - } - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) {} - if (old_node === new_node) { - return; - } - var isdir = FS.isDir(old_node.mode); - var errCode = FS.mayDelete(old_dir, old_name, isdir); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - errCode = new_node - ? FS.mayDelete(new_dir, new_name, isdir) - : FS.mayCreate(new_dir, new_name); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!old_dir.node_ops.rename) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { - throw new FS.ErrnoError(10); - } - if (new_dir !== old_dir) { - errCode = FS.nodePermissions(old_dir, 'w'); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - } - FS.hashRemoveNode(old_node); - try { - old_dir.node_ops.rename(old_node, new_dir, new_name); - old_node.parent = new_dir; - } catch (e) { - throw e; - } finally { - FS.hashAddNode(old_node); - } - }, - rmdir(path) { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - var node = FS.lookupNode(parent, name); - var errCode = FS.mayDelete(parent, name, true); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.rmdir) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - parent.node_ops.rmdir(parent, name); - FS.destroyNode(node); - }, - readdir(path) { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - var readdir = FS.checkOpExists(node.node_ops.readdir, 54); - return readdir(node); - }, - unlink(path) { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - if (!parent) { - throw new FS.ErrnoError(44); - } - var name = PATH.basename(path); - var node = FS.lookupNode(parent, name); - var errCode = FS.mayDelete(parent, name, false); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.unlink) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - parent.node_ops.unlink(parent, name); - FS.destroyNode(node); - }, - readlink(path) { - var lookup = FS.lookupPath(path); - var link = lookup.node; - if (!link) { - throw new FS.ErrnoError(44); - } - if (!link.node_ops.readlink) { - throw new FS.ErrnoError(28); - } - return link.node_ops.readlink(link); - }, - stat(path, dontFollow) { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - var node = lookup.node; - var getattr = FS.checkOpExists(node.node_ops.getattr, 63); - return getattr(node); - }, - fstat(fd) { - var stream = FS.getStreamChecked(fd); - var node = stream.node; - var getattr = stream.stream_ops.getattr; - var arg = getattr ? stream : node; - getattr ??= node.node_ops.getattr; - FS.checkOpExists(getattr, 63); - return getattr(arg); - }, - lstat(path) { - return FS.stat(path, true); - }, - doChmod(stream, node, mode, dontFollow) { - FS.doSetAttr(stream, node, { - mode: (mode & 4095) | (node.mode & ~4095), - ctime: Date.now(), - dontFollow, - }); - }, - chmod(path, mode, dontFollow) { - var node; - if (typeof path == 'string') { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - node = lookup.node; - } else { - node = path; - } - FS.doChmod(null, node, mode, dontFollow); - }, - lchmod(path, mode) { - FS.chmod(path, mode, true); - }, - fchmod(fd, mode) { - var stream = FS.getStreamChecked(fd); - FS.doChmod(stream, stream.node, mode, false); - }, - doChown(stream, node, dontFollow) { - FS.doSetAttr(stream, node, { timestamp: Date.now(), dontFollow }); - }, - chown(path, uid, gid, dontFollow) { - var node; - if (typeof path == 'string') { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - node = lookup.node; - } else { - node = path; - } - FS.doChown(null, node, dontFollow); - }, - lchown(path, uid, gid) { - FS.chown(path, uid, gid, true); - }, - fchown(fd, uid, gid) { - var stream = FS.getStreamChecked(fd); - FS.doChown(stream, stream.node, false); - }, - doTruncate(stream, node, len) { - if (FS.isDir(node.mode)) { - throw new FS.ErrnoError(31); - } - if (!FS.isFile(node.mode)) { - throw new FS.ErrnoError(28); - } - var errCode = FS.nodePermissions(node, 'w'); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - FS.doSetAttr(stream, node, { size: len, timestamp: Date.now() }); - }, - truncate(path, len) { - if (len < 0) { - throw new FS.ErrnoError(28); - } - var node; - if (typeof path == 'string') { - var lookup = FS.lookupPath(path, { follow: true }); - node = lookup.node; - } else { - node = path; - } - FS.doTruncate(null, node, len); - }, - ftruncate(fd, len) { - var stream = FS.getStreamChecked(fd); - if (len < 0 || (stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(28); - } - FS.doTruncate(stream, stream.node, len); - }, - utime(path, atime, mtime) { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - var setattr = FS.checkOpExists(node.node_ops.setattr, 63); - setattr(node, { atime, mtime }); - }, - open(path, flags, mode = 438) { - if (path === '') { - throw new FS.ErrnoError(44); - } - flags = typeof flags == 'string' ? FS_modeStringToFlags(flags) : flags; - if (flags & 64) { - mode = (mode & 4095) | 32768; - } else { - mode = 0; - } - var node; - var isDirPath; - if (typeof path == 'object') { - node = path; - } else { - isDirPath = path.endsWith('/'); - var lookup = FS.lookupPath(path, { - follow: !(flags & 131072), - noent_okay: true, - }); - node = lookup.node; - path = lookup.path; - } - var created = false; - if (flags & 64) { - if (node) { - if (flags & 128) { - throw new FS.ErrnoError(20); - } - } else if (isDirPath) { - throw new FS.ErrnoError(31); - } else { - node = FS.mknod(path, mode | 511, 0); - created = true; - } - } - if (!node) { - throw new FS.ErrnoError(44); - } - if (FS.isChrdev(node.mode)) { - flags &= ~512; - } - if (flags & 65536 && !FS.isDir(node.mode)) { - throw new FS.ErrnoError(54); - } - if (!created) { - var errCode = FS.mayOpen(node, flags); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - } - if (flags & 512 && !created) { - FS.truncate(node, 0); - } - flags &= ~(128 | 512 | 131072); - var stream = FS.createStream({ - node, - path: FS.getPath(node), - flags, - seekable: true, - position: 0, - stream_ops: node.stream_ops, - ungotten: [], - error: false, - }); - if (stream.stream_ops.open) { - stream.stream_ops.open(stream); - } - if (created) { - FS.chmod(node, mode & 511); - } - if (Module['logReadFiles'] && !(flags & 1)) { - if (!(path in FS.readFiles)) { - FS.readFiles[path] = 1; - } - } - return stream; - }, - close(stream) { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (stream.getdents) stream.getdents = null; - try { - if (stream.stream_ops.close) { - stream.stream_ops.close(stream); - } - } catch (e) { - throw e; - } finally { - FS.closeStream(stream.fd); - } - stream.fd = null; - }, - isClosed(stream) { - return stream.fd === null; - }, - llseek(stream, offset, whence) { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (!stream.seekable || !stream.stream_ops.llseek) { - throw new FS.ErrnoError(70); - } - if (whence != 0 && whence != 1 && whence != 2) { - throw new FS.ErrnoError(28); - } - stream.position = stream.stream_ops.llseek(stream, offset, whence); - stream.ungotten = []; - return stream.position; - }, - read(stream, buffer, offset, length, position) { - if (length < 0 || position < 0) { - throw new FS.ErrnoError(28); - } - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 1) { - throw new FS.ErrnoError(8); - } - if (FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(31); - } - if (!stream.stream_ops.read) { - throw new FS.ErrnoError(28); - } - var seeking = typeof position != 'undefined'; - if (!seeking) { - position = stream.position; - } else if (!stream.seekable) { - throw new FS.ErrnoError(70); - } - var bytesRead = stream.stream_ops.read( - stream, - buffer, - offset, - length, - position - ); - if (!seeking) stream.position += bytesRead; - return bytesRead; - }, - write(stream, buffer, offset, length, position, canOwn) { - if (length < 0 || position < 0) { - throw new FS.ErrnoError(28); - } - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(8); - } - if (FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(31); - } - if (!stream.stream_ops.write) { - throw new FS.ErrnoError(28); - } - if (stream.seekable && stream.flags & 1024) { - FS.llseek(stream, 0, 2); - } - var seeking = typeof position != 'undefined'; - if (!seeking) { - position = stream.position; - } else if (!stream.seekable) { - throw new FS.ErrnoError(70); - } - var bytesWritten = stream.stream_ops.write( - stream, - buffer, - offset, - length, - position, - canOwn - ); - if (!seeking) stream.position += bytesWritten; - return bytesWritten; - }, - mmap(stream, length, position, prot, flags) { - if ( - (prot & 2) !== 0 && - (flags & 2) === 0 && - (stream.flags & 2097155) !== 2 - ) { - throw new FS.ErrnoError(2); - } - if ((stream.flags & 2097155) === 1) { - throw new FS.ErrnoError(2); - } - if (!stream.stream_ops.mmap) { - throw new FS.ErrnoError(43); - } - if (!length) { - throw new FS.ErrnoError(28); - } - return stream.stream_ops.mmap(stream, length, position, prot, flags); - }, - msync(stream, buffer, offset, length, mmapFlags) { - if (!stream.stream_ops.msync) { - return 0; - } - return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); - }, - ioctl(stream, cmd, arg) { - if (!stream.stream_ops.ioctl) { - throw new FS.ErrnoError(59); - } - return stream.stream_ops.ioctl(stream, cmd, arg); - }, - readFile(path, opts = {}) { - opts.flags = opts.flags || 0; - opts.encoding = opts.encoding || 'binary'; - if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { - abort(`Invalid encoding type "${opts.encoding}"`); - } - var stream = FS.open(path, opts.flags); - var stat = FS.stat(path); - var length = stat.size; - var buf = new Uint8Array(length); - FS.read(stream, buf, 0, length, 0); - if (opts.encoding === 'utf8') { - buf = UTF8ArrayToString(buf); - } - FS.close(stream); - return buf; - }, - writeFile(path, data, opts = {}) { - opts.flags = opts.flags || 577; - var stream = FS.open(path, opts.flags, opts.mode); - if (typeof data == 'string') { - data = new Uint8Array(intArrayFromString(data, true)); - } - if (ArrayBuffer.isView(data)) { - FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn); - } else { - abort('Unsupported data type'); - } - FS.close(stream); - }, - cwd: () => FS.currentPath, - chdir(path) { - var lookup = FS.lookupPath(path, { follow: true }); - if (lookup.node === null) { - throw new FS.ErrnoError(44); - } - if (!FS.isDir(lookup.node.mode)) { - throw new FS.ErrnoError(54); - } - var errCode = FS.nodePermissions(lookup.node, 'x'); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - FS.currentPath = lookup.path; - }, - createDefaultDirectories() { - FS.mkdir('/tmp'); - FS.mkdir('/home'); - FS.mkdir('/home/web_user'); - }, - createDefaultDevices() { - FS.mkdir('/dev'); - FS.registerDevice(FS.makedev(1, 3), { - read: () => 0, - write: (stream, buffer, offset, length, pos) => length, - llseek: () => 0, - }); - FS.mkdev('/dev/null', FS.makedev(1, 3)); - TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); - TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); - FS.mkdev('/dev/tty', FS.makedev(5, 0)); - FS.mkdev('/dev/tty1', FS.makedev(6, 0)); - var randomBuffer = new Uint8Array(1024), - randomLeft = 0; - var randomByte = () => { - if (randomLeft === 0) { - randomFill(randomBuffer); - randomLeft = randomBuffer.byteLength; - } - return randomBuffer[--randomLeft]; - }; - FS.createDevice('/dev', 'random', randomByte); - FS.createDevice('/dev', 'urandom', randomByte); - FS.mkdir('/dev/shm'); - FS.mkdir('/dev/shm/tmp'); - }, - createSpecialDirectories() { - FS.mkdir('/proc'); - var proc_self = FS.mkdir('/proc/self'); - FS.mkdir('/proc/self/fd'); - FS.mount( - { - mount() { - var node = FS.createNode(proc_self, 'fd', 16895, 73); - node.stream_ops = { llseek: MEMFS.stream_ops.llseek }; - node.node_ops = { - lookup(parent, name) { - var fd = +name; - var stream = FS.getStreamChecked(fd); - var ret = { - parent: null, - mount: { mountpoint: 'fake' }, - node_ops: { readlink: () => stream.path }, - id: fd + 1, - }; - ret.parent = ret; - return ret; - }, - readdir() { - return Array.from(FS.streams.entries()) - .filter(([k, v]) => v) - .map(([k, v]) => k.toString()); - }, - }; - return node; - }, - }, - {}, - '/proc/self/fd' - ); - }, - createStandardStreams(input, output, error) { - if (input) { - FS.createDevice('/dev', 'stdin', input); - } else { - FS.symlink('/dev/tty', '/dev/stdin'); - } - if (output) { - FS.createDevice('/dev', 'stdout', null, output); - } else { - FS.symlink('/dev/tty', '/dev/stdout'); - } - if (error) { - FS.createDevice('/dev', 'stderr', null, error); - } else { - FS.symlink('/dev/tty1', '/dev/stderr'); - } - var stdin = FS.open('/dev/stdin', 0); - var stdout = FS.open('/dev/stdout', 1); - var stderr = FS.open('/dev/stderr', 1); - }, - staticInit() { - FS.nameTable = new Array(4096); - FS.mount(MEMFS, {}, '/'); - FS.createDefaultDirectories(); - FS.createDefaultDevices(); - FS.createSpecialDirectories(); - FS.filesystems = { MEMFS }; - }, - init(input, output, error) { - FS.initialized = true; - input ??= Module['stdin']; - output ??= Module['stdout']; - error ??= Module['stderr']; - FS.createStandardStreams(input, output, error); - }, - quit() { - FS.initialized = false; - for (var stream of FS.streams) { - if (stream) { - FS.close(stream); - } - } - }, - findObject(path, dontResolveLastLink) { - var ret = FS.analyzePath(path, dontResolveLastLink); - if (!ret.exists) { - return null; - } - return ret.object; - }, - analyzePath(path, dontResolveLastLink) { - try { - var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); - path = lookup.path; - } catch (e) {} - var ret = { - isRoot: false, - exists: false, - error: 0, - name: null, - path: null, - object: null, - parentExists: false, - parentPath: null, - parentObject: null, - }; - try { - var lookup = FS.lookupPath(path, { parent: true }); - ret.parentExists = true; - ret.parentPath = lookup.path; - ret.parentObject = lookup.node; - ret.name = PATH.basename(path); - lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); - ret.exists = true; - ret.path = lookup.path; - ret.object = lookup.node; - ret.name = lookup.node.name; - ret.isRoot = lookup.path === '/'; - } catch (e) { - ret.error = e.errno; - } - return ret; - }, - createPath(parent, path, canRead, canWrite) { - parent = typeof parent == 'string' ? parent : FS.getPath(parent); - var parts = path.split('/').reverse(); - while (parts.length) { - var part = parts.pop(); - if (!part) continue; - var current = PATH.join2(parent, part); - try { - FS.mkdir(current); - } catch (e) { - if (e.errno != 20) throw e; - } - parent = current; - } - return current; - }, - createFile(parent, name, properties, canRead, canWrite) { - var path = PATH.join2( - typeof parent == 'string' ? parent : FS.getPath(parent), - name - ); - var mode = FS_getMode(canRead, canWrite); - return FS.create(path, mode); - }, - createDataFile(parent, name, data, canRead, canWrite, canOwn) { - var path = name; - if (parent) { - parent = typeof parent == 'string' ? parent : FS.getPath(parent); - path = name ? PATH.join2(parent, name) : parent; - } - var mode = FS_getMode(canRead, canWrite); - var node = FS.create(path, mode); - if (data) { - if (typeof data == 'string') { - var arr = new Array(data.length); - for (var i = 0, len = data.length; i < len; ++i) - arr[i] = data.charCodeAt(i); - data = arr; - } - FS.chmod(node, mode | 146); - var stream = FS.open(node, 577); - FS.write(stream, data, 0, data.length, 0, canOwn); - FS.close(stream); - FS.chmod(node, mode); - } - }, - createDevice(parent, name, input, output) { - var path = PATH.join2( - typeof parent == 'string' ? parent : FS.getPath(parent), - name - ); - var mode = FS_getMode(!!input, !!output); - FS.createDevice.major ??= 64; - var dev = FS.makedev(FS.createDevice.major++, 0); - FS.registerDevice(dev, { - open(stream) { - stream.seekable = false; - }, - close(stream) { - if (output?.buffer?.length) { - output(10); - } - }, - read(stream, buffer, offset, length, pos) { - var bytesRead = 0; - for (var i = 0; i < length; i++) { - var result; - try { - result = input(); - } catch (e) { - throw new FS.ErrnoError(29); - } - if (result === undefined && bytesRead === 0) { - throw new FS.ErrnoError(6); - } - if (result === null || result === undefined) break; - bytesRead++; - buffer[offset + i] = result; - } - if (bytesRead) { - stream.node.atime = Date.now(); - } - return bytesRead; - }, - write(stream, buffer, offset, length, pos) { - for (var i = 0; i < length; i++) { - try { - output(buffer[offset + i]); - } catch (e) { - throw new FS.ErrnoError(29); - } - } - if (length) { - stream.node.mtime = stream.node.ctime = Date.now(); - } - return i; - }, - }); - return FS.mkdev(path, mode, dev); - }, - forceLoadFile(obj) { - if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; - if (globalThis.XMLHttpRequest) { - abort( - 'Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.' - ); - } else { - try { - obj.contents = readBinary(obj.url); - } catch (e) { - throw new FS.ErrnoError(29); - } - } - }, - createLazyFile(parent, name, url, canRead, canWrite) { - class LazyUint8Array { - lengthKnown = false; - chunks = []; - get(idx) { - if (idx > this.length - 1 || idx < 0) { - return undefined; - } - var chunkOffset = idx % this.chunkSize; - var chunkNum = (idx / this.chunkSize) | 0; - return this.getter(chunkNum)[chunkOffset]; - } - setDataGetter(getter) { - this.getter = getter; - } - cacheLength() { - var xhr = new XMLHttpRequest(); - xhr.open('HEAD', url, false); - xhr.send(null); - if (!((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304)) - abort("Couldn't load " + url + '. Status: ' + xhr.status); - var datalength = Number(xhr.getResponseHeader('Content-length')); - var header; - var hasByteServing = - (header = xhr.getResponseHeader('Accept-Ranges')) && - header === 'bytes'; - var usesGzip = - (header = xhr.getResponseHeader('Content-Encoding')) && - header === 'gzip'; - var chunkSize = 1024 * 1024; - if (!hasByteServing) chunkSize = datalength; - var doXHR = (from, to) => { - if (from > to) - abort( - 'invalid range (' + from + ', ' + to + ') or no bytes requested!' - ); - if (to > datalength - 1) - abort('only ' + datalength + ' bytes available! programmer error!'); - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - if (datalength !== chunkSize) - xhr.setRequestHeader('Range', 'bytes=' + from + '-' + to); - xhr.responseType = 'arraybuffer'; - if (xhr.overrideMimeType) { - xhr.overrideMimeType('text/plain; charset=x-user-defined'); - } - xhr.send(null); - if (!((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304)) - abort("Couldn't load " + url + '. Status: ' + xhr.status); - if (xhr.response !== undefined) { - return new Uint8Array(xhr.response || []); - } - return intArrayFromString(xhr.responseText || '', true); - }; - var lazyArray = this; - lazyArray.setDataGetter((chunkNum) => { - var start = chunkNum * chunkSize; - var end = (chunkNum + 1) * chunkSize - 1; - end = Math.min(end, datalength - 1); - if (typeof lazyArray.chunks[chunkNum] == 'undefined') { - lazyArray.chunks[chunkNum] = doXHR(start, end); - } - if (typeof lazyArray.chunks[chunkNum] == 'undefined') - abort('doXHR failed!'); - return lazyArray.chunks[chunkNum]; - }); - if (usesGzip || !datalength) { - chunkSize = datalength = 1; - datalength = this.getter(0).length; - chunkSize = datalength; - out( - 'LazyFiles on gzip forces download of the whole file when length is accessed' - ); - } - this._length = datalength; - this._chunkSize = chunkSize; - this.lengthKnown = true; - } - get length() { - if (!this.lengthKnown) { - this.cacheLength(); - } - return this._length; - } - get chunkSize() { - if (!this.lengthKnown) { - this.cacheLength(); - } - return this._chunkSize; - } - } - if (globalThis.XMLHttpRequest) { - if (!ENVIRONMENT_IS_WORKER) - abort( - 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc' - ); - var lazyArray = new LazyUint8Array(); - var properties = { isDevice: false, contents: lazyArray }; - } else { - var properties = { isDevice: false, url }; - } - var node = FS.createFile(parent, name, properties, canRead, canWrite); - if (properties.contents) { - node.contents = properties.contents; - } else if (properties.url) { - node.contents = null; - node.url = properties.url; - } - Object.defineProperties(node, { - usedBytes: { - get: function () { - return this.contents.length; - }, - }, - }); - var stream_ops = {}; - for (const [key, fn] of Object.entries(node.stream_ops)) { - stream_ops[key] = (...args) => { - FS.forceLoadFile(node); - return fn(...args); - }; - } - function writeChunks(stream, buffer, offset, length, position) { - var contents = stream.node.contents; - if (position >= contents.length) return 0; - var size = Math.min(contents.length - position, length); - if (contents.slice) { - for (var i = 0; i < size; i++) { - buffer[offset + i] = contents[position + i]; - } - } else { - for (var i = 0; i < size; i++) { - buffer[offset + i] = contents.get(position + i); - } - } - return size; - } - stream_ops.read = (stream, buffer, offset, length, position) => { - FS.forceLoadFile(node); - return writeChunks(stream, buffer, offset, length, position); - }; - stream_ops.mmap = (stream, length, position, prot, flags) => { - FS.forceLoadFile(node); - var ptr = mmapAlloc(length); - if (!ptr) { - throw new FS.ErrnoError(48); - } - writeChunks(stream, (growMemViews(), HEAP8), ptr, length, position); - return { ptr, allocated: true }; - }; - node.stream_ops = stream_ops; - return node; - }, -}; -var SYSCALLS = { - DEFAULT_POLLMASK: 5, - calculateAt(dirfd, path, allowEmpty) { - if (PATH.isAbs(path)) { - return path; - } - var dir; - if (dirfd === -100) { - dir = FS.cwd(); - } else { - var dirstream = SYSCALLS.getStreamFromFD(dirfd); - dir = dirstream.path; - } - if (path.length == 0) { - if (!allowEmpty) { - throw new FS.ErrnoError(44); - } - return dir; - } - return dir + '/' + path; - }, - writeStat(buf, stat) { - (growMemViews(), HEAPU32)[(buf >>> 2) >>> 0] = stat.dev; - (growMemViews(), HEAPU32)[((buf + 4) >>> 2) >>> 0] = stat.mode; - (growMemViews(), HEAPU32)[((buf + 8) >>> 2) >>> 0] = stat.nlink; - (growMemViews(), HEAPU32)[((buf + 12) >>> 2) >>> 0] = stat.uid; - (growMemViews(), HEAPU32)[((buf + 16) >>> 2) >>> 0] = stat.gid; - (growMemViews(), HEAPU32)[((buf + 20) >>> 2) >>> 0] = stat.rdev; - (growMemViews(), HEAP64)[((buf + 24) >>> 3) >>> 0] = BigInt(stat.size); - (growMemViews(), HEAP32)[((buf + 32) >>> 2) >>> 0] = 4096; - (growMemViews(), HEAP32)[((buf + 36) >>> 2) >>> 0] = stat.blocks; - var atime = stat.atime.getTime(); - var mtime = stat.mtime.getTime(); - var ctime = stat.ctime.getTime(); - (growMemViews(), HEAP64)[((buf + 40) >>> 3) >>> 0] = BigInt( - Math.floor(atime / 1e3) - ); - (growMemViews(), HEAPU32)[((buf + 48) >>> 2) >>> 0] = - (atime % 1e3) * 1e3 * 1e3; - (growMemViews(), HEAP64)[((buf + 56) >>> 3) >>> 0] = BigInt( - Math.floor(mtime / 1e3) - ); - (growMemViews(), HEAPU32)[((buf + 64) >>> 2) >>> 0] = - (mtime % 1e3) * 1e3 * 1e3; - (growMemViews(), HEAP64)[((buf + 72) >>> 3) >>> 0] = BigInt( - Math.floor(ctime / 1e3) - ); - (growMemViews(), HEAPU32)[((buf + 80) >>> 2) >>> 0] = - (ctime % 1e3) * 1e3 * 1e3; - (growMemViews(), HEAP64)[((buf + 88) >>> 3) >>> 0] = BigInt(stat.ino); - return 0; - }, - writeStatFs(buf, stats) { - (growMemViews(), HEAPU32)[((buf + 4) >>> 2) >>> 0] = stats.bsize; - (growMemViews(), HEAPU32)[((buf + 60) >>> 2) >>> 0] = stats.bsize; - (growMemViews(), HEAP64)[((buf + 8) >>> 3) >>> 0] = BigInt(stats.blocks); - (growMemViews(), HEAP64)[((buf + 16) >>> 3) >>> 0] = BigInt(stats.bfree); - (growMemViews(), HEAP64)[((buf + 24) >>> 3) >>> 0] = BigInt(stats.bavail); - (growMemViews(), HEAP64)[((buf + 32) >>> 3) >>> 0] = BigInt(stats.files); - (growMemViews(), HEAP64)[((buf + 40) >>> 3) >>> 0] = BigInt(stats.ffree); - (growMemViews(), HEAPU32)[((buf + 48) >>> 2) >>> 0] = stats.fsid; - (growMemViews(), HEAPU32)[((buf + 64) >>> 2) >>> 0] = stats.flags; - (growMemViews(), HEAPU32)[((buf + 56) >>> 2) >>> 0] = stats.namelen; - }, - doMsync(addr, stream, len, flags, offset) { - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - if (flags & 2) { - return 0; - } - var buffer = (growMemViews(), HEAPU8).slice(addr, addr + len); - FS.msync(stream, buffer, offset, len, flags); - }, - getStreamFromFD(fd) { - var stream = FS.getStreamChecked(fd); - return stream; - }, - varargs: undefined, - getStr(ptr) { - var ret = UTF8ToString(ptr); - return ret; - }, -}; -function ___syscall_fcntl64(fd, cmd, varargs) { - if (ENVIRONMENT_IS_PTHREAD) - return proxyToMainThread(3, 0, 1, fd, cmd, varargs); - varargs >>>= 0; - SYSCALLS.varargs = varargs; - try { - var stream = SYSCALLS.getStreamFromFD(fd); - switch (cmd) { - case 0: { - var arg = syscallGetVarargI(); - if (arg < 0) { - return -28; - } - while (FS.streams[arg]) { - arg++; - } - var newStream; - newStream = FS.dupStream(stream, arg); - return newStream.fd; - } - case 1: - case 2: - return 0; - case 3: - return stream.flags; - case 4: { - var arg = syscallGetVarargI(); - stream.flags |= arg; - return 0; - } - case 12: { - var arg = syscallGetVarargP(); - var offset = 0; - (growMemViews(), HEAP16)[((arg + offset) >>> 1) >>> 0] = 2; - return 0; - } - case 13: - case 14: - return 0; - } - return -28; - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return -e.errno; - } -} -function ___syscall_fstat64(fd, buf) { - if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(4, 0, 1, fd, buf); - buf >>>= 0; - try { - return SYSCALLS.writeStat(buf, FS.fstat(fd)); - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return -e.errno; - } -} -var stringToUTF8 = (str, outPtr, maxBytesToWrite) => - stringToUTF8Array(str, (growMemViews(), HEAPU8), outPtr, maxBytesToWrite); -function ___syscall_getcwd(buf, size) { - if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(5, 0, 1, buf, size); - buf >>>= 0; - size >>>= 0; - try { - if (size === 0) return -28; - var cwd = FS.cwd(); - var cwdLengthInBytes = lengthBytesUTF8(cwd) + 1; - if (size < cwdLengthInBytes) return -68; - stringToUTF8(cwd, buf, size); - return cwdLengthInBytes; - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return -e.errno; - } -} -function ___syscall_getdents64(fd, dirp, count) { - if (ENVIRONMENT_IS_PTHREAD) - return proxyToMainThread(6, 0, 1, fd, dirp, count); - dirp >>>= 0; - count >>>= 0; - try { - var stream = SYSCALLS.getStreamFromFD(fd); - stream.getdents ||= FS.readdir(stream.path); - var struct_size = 280; - var pos = 0; - var off = FS.llseek(stream, 0, 1); - var startIdx = Math.floor(off / struct_size); - var endIdx = Math.min( - stream.getdents.length, - startIdx + Math.floor(count / struct_size) - ); - for (var idx = startIdx; idx < endIdx; idx++) { - var id; - var type; - var name = stream.getdents[idx]; - if (name === '.') { - id = stream.node.id; - type = 4; - } else if (name === '..') { - var lookup = FS.lookupPath(stream.path, { parent: true }); - id = lookup.node.id; - type = 4; - } else { - var child; - try { - child = FS.lookupNode(stream.node, name); - } catch (e) { - if (e?.errno === 28) { - continue; - } - throw e; - } - id = child.id; - type = FS.isChrdev(child.mode) - ? 2 - : FS.isDir(child.mode) - ? 4 - : FS.isLink(child.mode) - ? 10 - : 8; - } - (growMemViews(), HEAP64)[((dirp + pos) >>> 3) >>> 0] = BigInt(id); - (growMemViews(), HEAP64)[((dirp + pos + 8) >>> 3) >>> 0] = BigInt( - (idx + 1) * struct_size - ); - (growMemViews(), HEAP16)[((dirp + pos + 16) >>> 1) >>> 0] = 280; - (growMemViews(), HEAP8)[(dirp + pos + 18) >>> 0] = type; - stringToUTF8(name, dirp + pos + 19, 256); - pos += struct_size; - } - FS.llseek(stream, idx * struct_size, 0); - return pos; - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return -e.errno; - } -} -function ___syscall_ioctl(fd, op, varargs) { - if (ENVIRONMENT_IS_PTHREAD) - return proxyToMainThread(7, 0, 1, fd, op, varargs); - varargs >>>= 0; - SYSCALLS.varargs = varargs; - try { - var stream = SYSCALLS.getStreamFromFD(fd); - switch (op) { - case 21509: { - if (!stream.tty) return -59; - return 0; - } - case 21505: { - if (!stream.tty) return -59; - if (stream.tty.ops.ioctl_tcgets) { - var termios = stream.tty.ops.ioctl_tcgets(stream); - var argp = syscallGetVarargP(); - (growMemViews(), HEAP32)[(argp >>> 2) >>> 0] = termios.c_iflag || 0; - (growMemViews(), HEAP32)[((argp + 4) >>> 2) >>> 0] = - termios.c_oflag || 0; - (growMemViews(), HEAP32)[((argp + 8) >>> 2) >>> 0] = - termios.c_cflag || 0; - (growMemViews(), HEAP32)[((argp + 12) >>> 2) >>> 0] = - termios.c_lflag || 0; - for (var i = 0; i < 32; i++) { - (growMemViews(), HEAP8)[(argp + i + 17) >>> 0] = - termios.c_cc[i] || 0; - } - return 0; - } - return 0; - } - case 21510: - case 21511: - case 21512: { - if (!stream.tty) return -59; - return 0; - } - case 21506: - case 21507: - case 21508: { - if (!stream.tty) return -59; - if (stream.tty.ops.ioctl_tcsets) { - var argp = syscallGetVarargP(); - var c_iflag = (growMemViews(), HEAP32)[(argp >>> 2) >>> 0]; - var c_oflag = (growMemViews(), HEAP32)[((argp + 4) >>> 2) >>> 0]; - var c_cflag = (growMemViews(), HEAP32)[((argp + 8) >>> 2) >>> 0]; - var c_lflag = (growMemViews(), HEAP32)[((argp + 12) >>> 2) >>> 0]; - var c_cc = []; - for (var i = 0; i < 32; i++) { - c_cc.push((growMemViews(), HEAP8)[(argp + i + 17) >>> 0]); - } - return stream.tty.ops.ioctl_tcsets(stream.tty, op, { - c_iflag, - c_oflag, - c_cflag, - c_lflag, - c_cc, - }); - } - return 0; - } - case 21519: { - if (!stream.tty) return -59; - var argp = syscallGetVarargP(); - (growMemViews(), HEAP32)[(argp >>> 2) >>> 0] = 0; - return 0; - } - case 21520: { - if (!stream.tty) return -59; - return -28; - } - case 21537: - case 21531: { - var argp = syscallGetVarargP(); - return FS.ioctl(stream, op, argp); - } - case 21523: { - if (!stream.tty) return -59; - if (stream.tty.ops.ioctl_tiocgwinsz) { - var winsize = stream.tty.ops.ioctl_tiocgwinsz(stream.tty); - var argp = syscallGetVarargP(); - (growMemViews(), HEAP16)[(argp >>> 1) >>> 0] = winsize[0]; - (growMemViews(), HEAP16)[((argp + 2) >>> 1) >>> 0] = winsize[1]; - } - return 0; - } - case 21524: { - if (!stream.tty) return -59; - return 0; - } - case 21515: { - if (!stream.tty) return -59; - return 0; - } - default: - return -28; - } - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return -e.errno; - } -} -function ___syscall_lstat64(path, buf) { - if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(8, 0, 1, path, buf); - path >>>= 0; - buf >>>= 0; - try { - path = SYSCALLS.getStr(path); - return SYSCALLS.writeStat(buf, FS.lstat(path)); - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return -e.errno; - } -} -function ___syscall_newfstatat(dirfd, path, buf, flags) { - if (ENVIRONMENT_IS_PTHREAD) - return proxyToMainThread(9, 0, 1, dirfd, path, buf, flags); - path >>>= 0; - buf >>>= 0; - try { - path = SYSCALLS.getStr(path); - var nofollow = flags & 256; - var allowEmpty = flags & 4096; - flags = flags & ~6400; - path = SYSCALLS.calculateAt(dirfd, path, allowEmpty); - return SYSCALLS.writeStat(buf, nofollow ? FS.lstat(path) : FS.stat(path)); - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return -e.errno; - } -} -function ___syscall_openat(dirfd, path, flags, varargs) { - if (ENVIRONMENT_IS_PTHREAD) - return proxyToMainThread(10, 0, 1, dirfd, path, flags, varargs); - path >>>= 0; - varargs >>>= 0; - SYSCALLS.varargs = varargs; - try { - path = SYSCALLS.getStr(path); - path = SYSCALLS.calculateAt(dirfd, path); - var mode = varargs ? syscallGetVarargI() : 0; - return FS.open(path, flags, mode).fd; - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return -e.errno; - } -} -function ___syscall_stat64(path, buf) { - if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(11, 0, 1, path, buf); - path >>>= 0; - buf >>>= 0; - try { - path = SYSCALLS.getStr(path); - return SYSCALLS.writeStat(buf, FS.stat(path)); - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return -e.errno; - } -} -var __abort_js = () => abort(''); -function __emscripten_init_main_thread_js(tb) { - tb >>>= 0; - __emscripten_thread_init( - tb, - !ENVIRONMENT_IS_WORKER, - 1, - !ENVIRONMENT_IS_WEB, - 65536, - false - ); - PThread.threadInitTLS(); -} -var handleException = (e) => { - if (e instanceof ExitStatus || e == 'unwind') { - return EXITSTATUS; - } - quit_(1, e); -}; -var maybeExit = () => { - if (!keepRuntimeAlive()) { - try { - if (ENVIRONMENT_IS_PTHREAD) { - if (_pthread_self()) __emscripten_thread_exit(EXITSTATUS); - return; - } - _exit(EXITSTATUS); - } catch (e) { - handleException(e); - } - } -}; -var callUserCallback = (func) => { - if (ABORT) { - return; - } - try { - func(); - maybeExit(); - } catch (e) { - handleException(e); - } -}; -function __emscripten_thread_mailbox_await(pthread_ptr) { - pthread_ptr >>>= 0; - if (Atomics.waitAsync) { - var wait = Atomics.waitAsync( - (growMemViews(), HEAP32), - pthread_ptr >>> 2, - pthread_ptr - ); - wait.value.then(checkMailbox); - var waitingAsync = pthread_ptr + 128; - Atomics.store((growMemViews(), HEAP32), waitingAsync >>> 2, 1); - } -} -var checkMailbox = () => - callUserCallback(() => { - var pthread_ptr = _pthread_self(); - if (pthread_ptr) { - __emscripten_thread_mailbox_await(pthread_ptr); - __emscripten_check_mailbox(); - } - }); -function __emscripten_notify_mailbox_postmessage(targetThread, currThreadId) { - targetThread >>>= 0; - currThreadId >>>= 0; - if (targetThread == currThreadId) { - setTimeout(checkMailbox); - } else if (ENVIRONMENT_IS_PTHREAD) { - postMessage({ targetThread, cmd: 'checkMailbox' }); - } else { - var worker = PThread.pthreads[targetThread]; - if (!worker) { - return; - } - worker.postMessage({ cmd: 'checkMailbox' }); - } -} -var proxiedJSCallArgs = []; -function __emscripten_receive_on_main_thread_js( - funcIndex, - emAsmAddr, - callingThread, - numCallArgs, - args -) { - emAsmAddr >>>= 0; - callingThread >>>= 0; - args >>>= 0; - numCallArgs /= 2; - proxiedJSCallArgs.length = numCallArgs; - var b = args >>> 3; - for (var i = 0; i < numCallArgs; i++) { - if ((growMemViews(), HEAP64)[(b + 2 * i) >>> 0]) { - proxiedJSCallArgs[i] = (growMemViews(), HEAP64)[(b + 2 * i + 1) >>> 0]; - } else { - proxiedJSCallArgs[i] = (growMemViews(), HEAPF64)[(b + 2 * i + 1) >>> 0]; - } - } - var func = proxiedFunctionTable[funcIndex]; - PThread.currentProxiedOperationCallerThread = callingThread; - var rtn = func(...proxiedJSCallArgs); - PThread.currentProxiedOperationCallerThread = 0; - return rtn; -} -var __emscripten_runtime_keepalive_clear = () => { - noExitRuntime = false; - runtimeKeepaliveCounter = 0; -}; -function __emscripten_thread_cleanup(thread) { - thread >>>= 0; - if (!ENVIRONMENT_IS_PTHREAD) cleanupThread(thread); - else postMessage({ cmd: 'cleanupThread', thread }); -} -function __emscripten_thread_set_strongref(thread) { - thread >>>= 0; - if (ENVIRONMENT_IS_NODE) { - PThread.pthreads[thread].ref(); - } -} -var isLeapYear = (year) => - year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); -var MONTH_DAYS_LEAP_CUMULATIVE = [ - 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, -]; -var MONTH_DAYS_REGULAR_CUMULATIVE = [ - 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, -]; -var ydayFromDate = (date) => { - var leap = isLeapYear(date.getFullYear()); - var monthDaysCumulative = leap - ? MONTH_DAYS_LEAP_CUMULATIVE - : MONTH_DAYS_REGULAR_CUMULATIVE; - var yday = monthDaysCumulative[date.getMonth()] + date.getDate() - 1; - return yday; -}; -function __localtime_js(time, tmPtr) { - time = bigintToI53Checked(time); - tmPtr >>>= 0; - var date = new Date(time * 1e3); - (growMemViews(), HEAP32)[(tmPtr >>> 2) >>> 0] = date.getSeconds(); - (growMemViews(), HEAP32)[((tmPtr + 4) >>> 2) >>> 0] = date.getMinutes(); - (growMemViews(), HEAP32)[((tmPtr + 8) >>> 2) >>> 0] = date.getHours(); - (growMemViews(), HEAP32)[((tmPtr + 12) >>> 2) >>> 0] = date.getDate(); - (growMemViews(), HEAP32)[((tmPtr + 16) >>> 2) >>> 0] = date.getMonth(); - (growMemViews(), HEAP32)[((tmPtr + 20) >>> 2) >>> 0] = - date.getFullYear() - 1900; - (growMemViews(), HEAP32)[((tmPtr + 24) >>> 2) >>> 0] = date.getDay(); - var yday = ydayFromDate(date) | 0; - (growMemViews(), HEAP32)[((tmPtr + 28) >>> 2) >>> 0] = yday; - (growMemViews(), HEAP32)[((tmPtr + 36) >>> 2) >>> 0] = -( - date.getTimezoneOffset() * 60 - ); - var start = new Date(date.getFullYear(), 0, 1); - var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset(); - var winterOffset = start.getTimezoneOffset(); - var dst = - (summerOffset != winterOffset && - date.getTimezoneOffset() == Math.min(winterOffset, summerOffset)) | 0; - (growMemViews(), HEAP32)[((tmPtr + 32) >>> 2) >>> 0] = dst; -} -function __mmap_js(len, prot, flags, fd, offset, allocated, addr) { - if (ENVIRONMENT_IS_PTHREAD) - return proxyToMainThread( - 12, - 0, - 1, - len, - prot, - flags, - fd, - offset, - allocated, - addr - ); - len >>>= 0; - offset = bigintToI53Checked(offset); - allocated >>>= 0; - addr >>>= 0; - try { - var stream = SYSCALLS.getStreamFromFD(fd); - var res = FS.mmap(stream, len, offset, prot, flags); - var ptr = res.ptr; - (growMemViews(), HEAP32)[(allocated >>> 2) >>> 0] = res.allocated; - (growMemViews(), HEAPU32)[(addr >>> 2) >>> 0] = ptr; - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return -e.errno; - } -} -function __munmap_js(addr, len, prot, flags, fd, offset) { - if (ENVIRONMENT_IS_PTHREAD) - return proxyToMainThread(13, 0, 1, addr, len, prot, flags, fd, offset); - addr >>>= 0; - len >>>= 0; - offset = bigintToI53Checked(offset); - try { - var stream = SYSCALLS.getStreamFromFD(fd); - if (prot & 2) { - SYSCALLS.doMsync(addr, stream, len, flags, offset); - } - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return -e.errno; - } -} -var timers = {}; -var _emscripten_get_now = () => performance.timeOrigin + performance.now(); -function __setitimer_js(which, timeout_ms) { - if (ENVIRONMENT_IS_PTHREAD) - return proxyToMainThread(14, 0, 1, which, timeout_ms); - if (timers[which]) { - clearTimeout(timers[which].id); - delete timers[which]; - } - if (!timeout_ms) return 0; - var id = setTimeout(() => { - delete timers[which]; - callUserCallback(() => __emscripten_timeout(which, _emscripten_get_now())); - }, timeout_ms); - timers[which] = { id, timeout_ms }; - return 0; -} -var __tzset_js = function (timezone, daylight, std_name, dst_name) { - timezone >>>= 0; - daylight >>>= 0; - std_name >>>= 0; - dst_name >>>= 0; - var currentYear = new Date().getFullYear(); - var winter = new Date(currentYear, 0, 1); - var summer = new Date(currentYear, 6, 1); - var winterOffset = winter.getTimezoneOffset(); - var summerOffset = summer.getTimezoneOffset(); - var stdTimezoneOffset = Math.max(winterOffset, summerOffset); - (growMemViews(), HEAPU32)[(timezone >>> 2) >>> 0] = stdTimezoneOffset * 60; - (growMemViews(), HEAP32)[(daylight >>> 2) >>> 0] = Number( - winterOffset != summerOffset - ); - var extractZone = (timezoneOffset) => { - var sign = timezoneOffset >= 0 ? '-' : '+'; - var absOffset = Math.abs(timezoneOffset); - var hours = String(Math.floor(absOffset / 60)).padStart(2, '0'); - var minutes = String(absOffset % 60).padStart(2, '0'); - return `UTC${sign}${hours}${minutes}`; - }; - var winterName = extractZone(winterOffset); - var summerName = extractZone(summerOffset); - if (summerOffset < winterOffset) { - stringToUTF8(winterName, std_name, 17); - stringToUTF8(summerName, dst_name, 17); - } else { - stringToUTF8(winterName, dst_name, 17); - stringToUTF8(summerName, std_name, 17); - } -}; -var _emscripten_date_now = () => Date.now(); -var nowIsMonotonic = 1; -var checkWasiClock = (clock_id) => clock_id >= 0 && clock_id <= 3; -function _clock_time_get(clk_id, ignored_precision, ptime) { - ignored_precision = bigintToI53Checked(ignored_precision); - ptime >>>= 0; - if (!checkWasiClock(clk_id)) { - return 28; - } - var now; - if (clk_id === 0) { - now = _emscripten_date_now(); - } else if (nowIsMonotonic) { - now = _emscripten_get_now(); - } else { - return 52; - } - var nsec = Math.round(now * 1e3 * 1e3); - (growMemViews(), HEAP64)[(ptime >>> 3) >>> 0] = BigInt(nsec); - return 0; -} -var _emscripten_check_blocking_allowed = () => {}; -var runtimeKeepalivePush = () => { - runtimeKeepaliveCounter += 1; -}; -var _emscripten_exit_with_live_runtime = () => { - runtimeKeepalivePush(); - throw 'unwind'; -}; -var getHeapMax = () => 4294901760; -function _emscripten_get_heap_max() { - return getHeapMax(); -} -var _emscripten_has_asyncify = () => 1; -var _emscripten_num_logical_cores = () => - ENVIRONMENT_IS_NODE - ? require('os').cpus().length - : navigator['hardwareConcurrency']; -var growMemory = (size) => { - var oldHeapSize = wasmMemory.buffer.byteLength; - var pages = ((size - oldHeapSize + 65535) / 65536) | 0; - try { - wasmMemory.grow(pages); - updateMemoryViews(); - return 1; - } catch (e) {} -}; -function _emscripten_resize_heap(requestedSize) { - requestedSize >>>= 0; - var oldSize = (growMemViews(), HEAPU8).length; - if (requestedSize <= oldSize) { - return false; - } - var maxHeapSize = getHeapMax(); - if (requestedSize > maxHeapSize) { - return false; - } - for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { - var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); - overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); - var newSize = Math.min( - maxHeapSize, - alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536) - ); - var replacement = growMemory(newSize); - if (replacement) { - return true; - } - } - return false; -} -var stringToUTF8OnStack = (str) => { - var size = lengthBytesUTF8(str) + 1; - var ret = stackAlloc(size); - stringToUTF8(str, ret, size); - return ret; -}; -var writeI53ToI64 = (ptr, num) => { - (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0] = num; - var lower = (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0]; - (growMemViews(), HEAPU32)[((ptr + 4) >>> 2) >>> 0] = - (num - lower) / 4294967296; -}; -var stringToNewUTF8 = (str) => { - var size = lengthBytesUTF8(str) + 1; - var ret = _malloc(size); - if (ret) stringToUTF8(str, ret, size); - return ret; -}; -var readI53FromI64 = (ptr) => - (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0] + - (growMemViews(), HEAP32)[((ptr + 4) >>> 2) >>> 0] * 4294967296; -var WebGPU = { - Internals: { - jsObjects: [], - jsObjectInsert: (ptr, jsObject) => { - ptr >>>= 0; - WebGPU.Internals.jsObjects[ptr] = jsObject; - }, - bufferOnUnmaps: [], - futures: [], - futureInsert: (futureId, promise) => { - WebGPU.Internals.futures[futureId] = new Promise((resolve) => - promise.finally(() => resolve(futureId)) - ); - }, - }, - getJsObject: (ptr) => { - if (!ptr) return undefined; - ptr >>>= 0; - return WebGPU.Internals.jsObjects[ptr]; - }, - importJsAdapter: (obj, parentPtr = 0) => { - var ptr = _emwgpuCreateAdapter(parentPtr); - WebGPU.Internals.jsObjects[ptr] = obj; - return ptr; - }, - importJsBindGroup: (obj, parentPtr = 0) => { - var ptr = _emwgpuCreateBindGroup(parentPtr); - WebGPU.Internals.jsObjects[ptr] = obj; - return ptr; - }, - importJsBindGroupLayout: (obj, parentPtr = 0) => { - var ptr = _emwgpuCreateBindGroupLayout(parentPtr); - WebGPU.Internals.jsObjects[ptr] = obj; - return ptr; - }, - importJsBuffer: (buffer, parentPtr = 0) => { - assert(buffer.mapState === 'unmapped'); - var bufferPtr = _emwgpuCreateBuffer(parentPtr); - WebGPU.Internals.jsObjectInsert(bufferPtr, buffer); - return bufferPtr; - }, - importJsCommandBuffer: (obj, parentPtr = 0) => { - var ptr = _emwgpuCreateCommandBuffer(parentPtr); - WebGPU.Internals.jsObjects[ptr] = obj; - return ptr; - }, - importJsCommandEncoder: (obj, parentPtr = 0) => { - var ptr = _emwgpuCreateCommandEncoder(parentPtr); - WebGPU.Internals.jsObjects[ptr] = obj; - return ptr; - }, - importJsComputePassEncoder: (obj, parentPtr = 0) => { - var ptr = _emwgpuCreateComputePassEncoder(parentPtr); - WebGPU.Internals.jsObjects[ptr] = obj; - return ptr; - }, - importJsComputePipeline: (obj, parentPtr = 0) => { - var ptr = _emwgpuCreateComputePipeline(parentPtr); - WebGPU.Internals.jsObjects[ptr] = obj; - return ptr; - }, - importJsDevice: (device, parentPtr = 0) => { - var queuePtr = _emwgpuCreateQueue(parentPtr); - var devicePtr = _emwgpuCreateDevice(parentPtr, queuePtr); - WebGPU.Internals.jsObjectInsert(queuePtr, device.queue); - WebGPU.Internals.jsObjectInsert(devicePtr, device); - return devicePtr; - }, - importJsExternalTexture: (obj, parentPtr = 0) => { - var ptr = _emwgpuCreateExternalTexture(parentPtr); - WebGPU.Internals.jsObjects[ptr] = obj; - return ptr; - }, - importJsPipelineLayout: (obj, parentPtr = 0) => { - var ptr = _emwgpuCreatePipelineLayout(parentPtr); - WebGPU.Internals.jsObjects[ptr] = obj; - return ptr; - }, - importJsQuerySet: (obj, parentPtr = 0) => { - var ptr = _emwgpuCreateQuerySet(parentPtr); - WebGPU.Internals.jsObjects[ptr] = obj; - return ptr; - }, - importJsQueue: (obj, parentPtr = 0) => { - var ptr = _emwgpuCreateQueue(parentPtr); - WebGPU.Internals.jsObjects[ptr] = obj; - return ptr; - }, - importJsRenderBundle: (obj, parentPtr = 0) => { - var ptr = _emwgpuCreateRenderBundle(parentPtr); - WebGPU.Internals.jsObjects[ptr] = obj; - return ptr; - }, - importJsRenderBundleEncoder: (obj, parentPtr = 0) => { - var ptr = _emwgpuCreateRenderBundleEncoder(parentPtr); - WebGPU.Internals.jsObjects[ptr] = obj; - return ptr; - }, - importJsRenderPassEncoder: (obj, parentPtr = 0) => { - var ptr = _emwgpuCreateRenderPassEncoder(parentPtr); - WebGPU.Internals.jsObjects[ptr] = obj; - return ptr; - }, - importJsRenderPipeline: (obj, parentPtr = 0) => { - var ptr = _emwgpuCreateRenderPipeline(parentPtr); - WebGPU.Internals.jsObjects[ptr] = obj; - return ptr; - }, - importJsSampler: (obj, parentPtr = 0) => { - var ptr = _emwgpuCreateSampler(parentPtr); - WebGPU.Internals.jsObjects[ptr] = obj; - return ptr; - }, - importJsShaderModule: (obj, parentPtr = 0) => { - var ptr = _emwgpuCreateShaderModule(parentPtr); - WebGPU.Internals.jsObjects[ptr] = obj; - return ptr; - }, - importJsSurface: (obj, parentPtr = 0) => { - var ptr = _emwgpuCreateSurface(parentPtr); - WebGPU.Internals.jsObjects[ptr] = obj; - return ptr; - }, - importJsTexture: (obj, parentPtr = 0) => { - var ptr = _emwgpuCreateTexture(parentPtr); - WebGPU.Internals.jsObjects[ptr] = obj; - return ptr; - }, - importJsTextureView: (obj, parentPtr = 0) => { - var ptr = _emwgpuCreateTextureView(parentPtr); - WebGPU.Internals.jsObjects[ptr] = obj; - return ptr; - }, - errorCallback: (callback, type, message, userdata) => { - var sp = stackSave(); - var messagePtr = stringToUTF8OnStack(message); - ((a1, a2, a3) => dynCall_viii(callback, a1, a2, a3))( - type, - messagePtr, - userdata - ); - stackRestore(sp); - }, - iterateExtensions: (root, handlers) => { - for ( - var ptr = (growMemViews(), HEAPU32)[(root >>> 2) >>> 0]; - ptr; - ptr = (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0] - ) { - var sType = (growMemViews(), HEAP32)[((ptr + 4) >>> 2) >>> 0]; - var handler = handlers[sType](ptr); - } - }, - setStringView: (ptr, data, length) => { - (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0] = data; - (growMemViews(), HEAPU32)[((ptr + 4) >>> 2) >>> 0] = length; - }, - makeStringFromStringView: (stringViewPtr) => { - var ptr = (growMemViews(), HEAPU32)[(stringViewPtr >>> 2) >>> 0]; - var length = (growMemViews(), HEAPU32)[((stringViewPtr + 4) >>> 2) >>> 0]; - return UTF8ToString(ptr, length); - }, - makeStringFromOptionalStringView: (stringViewPtr) => { - var ptr = (growMemViews(), HEAPU32)[(stringViewPtr >>> 2) >>> 0]; - var length = (growMemViews(), HEAPU32)[((stringViewPtr + 4) >>> 2) >>> 0]; - if (!ptr) { - if (length === 0) { - return ''; - } - return undefined; - } - return UTF8ToString(ptr, length); - }, - makeColor: (ptr) => ({ - r: (growMemViews(), HEAPF64)[(ptr >>> 3) >>> 0], - g: (growMemViews(), HEAPF64)[((ptr + 8) >>> 3) >>> 0], - b: (growMemViews(), HEAPF64)[((ptr + 16) >>> 3) >>> 0], - a: (growMemViews(), HEAPF64)[((ptr + 24) >>> 3) >>> 0], - }), - makeExtent3D: (ptr) => ({ - width: (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0], - height: (growMemViews(), HEAPU32)[((ptr + 4) >>> 2) >>> 0], - depthOrArrayLayers: (growMemViews(), HEAPU32)[((ptr + 8) >>> 2) >>> 0], - }), - makeOrigin3D: (ptr) => ({ - x: (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0], - y: (growMemViews(), HEAPU32)[((ptr + 4) >>> 2) >>> 0], - z: (growMemViews(), HEAPU32)[((ptr + 8) >>> 2) >>> 0], - }), - makeTexelCopyTextureInfo: (ptr) => ({ - texture: WebGPU.getJsObject((growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0]), - mipLevel: (growMemViews(), HEAPU32)[((ptr + 4) >>> 2) >>> 0], - origin: WebGPU.makeOrigin3D(ptr + 8), - aspect: - WebGPU.TextureAspect[(growMemViews(), HEAP32)[((ptr + 20) >>> 2) >>> 0]], - }), - makeTexelCopyBufferLayout: (ptr) => { - var bytesPerRow = (growMemViews(), HEAPU32)[((ptr + 8) >>> 2) >>> 0]; - var rowsPerImage = (growMemViews(), HEAPU32)[((ptr + 12) >>> 2) >>> 0]; - return { - offset: readI53FromI64(ptr), - bytesPerRow: bytesPerRow === 4294967295 ? undefined : bytesPerRow, - rowsPerImage: rowsPerImage === 4294967295 ? undefined : rowsPerImage, - }; - }, - makeTexelCopyBufferInfo: (ptr) => { - var layoutPtr = ptr + 0; - var bufferCopyView = WebGPU.makeTexelCopyBufferLayout(layoutPtr); - bufferCopyView['buffer'] = WebGPU.getJsObject( - (growMemViews(), HEAPU32)[((ptr + 16) >>> 2) >>> 0] - ); - return bufferCopyView; - }, - makePassTimestampWrites: (ptr) => { - if (ptr === 0) return undefined; - return { - querySet: WebGPU.getJsObject( - (growMemViews(), HEAPU32)[((ptr + 4) >>> 2) >>> 0] - ), - beginningOfPassWriteIndex: (growMemViews(), HEAPU32)[ - ((ptr + 8) >>> 2) >>> 0 - ], - endOfPassWriteIndex: (growMemViews(), HEAPU32)[((ptr + 12) >>> 2) >>> 0], - }; - }, - makePipelineConstants: (constantCount, constantsPtr) => { - if (!constantCount) return; - var constants = {}; - for (var i = 0; i < constantCount; ++i) { - var entryPtr = constantsPtr + 24 * i; - var key = WebGPU.makeStringFromStringView(entryPtr + 4); - constants[key] = (growMemViews(), HEAPF64)[((entryPtr + 16) >>> 3) >>> 0]; - } - return constants; - }, - makePipelineLayout: (layoutPtr) => { - if (!layoutPtr) return 'auto'; - return WebGPU.getJsObject(layoutPtr); - }, - makeComputeState: (ptr) => { - if (!ptr) return undefined; - var desc = { - module: WebGPU.getJsObject( - (growMemViews(), HEAPU32)[((ptr + 4) >>> 2) >>> 0] - ), - constants: WebGPU.makePipelineConstants( - (growMemViews(), HEAPU32)[((ptr + 16) >>> 2) >>> 0], - (growMemViews(), HEAPU32)[((ptr + 20) >>> 2) >>> 0] - ), - entryPoint: WebGPU.makeStringFromOptionalStringView(ptr + 8), - }; - return desc; - }, - makeComputePipelineDesc: (descriptor) => { - var desc = { - label: WebGPU.makeStringFromOptionalStringView(descriptor + 4), - layout: WebGPU.makePipelineLayout( - (growMemViews(), HEAPU32)[((descriptor + 12) >>> 2) >>> 0] - ), - compute: WebGPU.makeComputeState(descriptor + 16), - }; - return desc; - }, - makeRenderPipelineDesc: (descriptor) => { - function makePrimitiveState(psPtr) { - if (!psPtr) return undefined; - return { - topology: - WebGPU.PrimitiveTopology[ - (growMemViews(), HEAP32)[((psPtr + 4) >>> 2) >>> 0] - ], - stripIndexFormat: - WebGPU.IndexFormat[ - (growMemViews(), HEAP32)[((psPtr + 8) >>> 2) >>> 0] - ], - frontFace: - WebGPU.FrontFace[ - (growMemViews(), HEAP32)[((psPtr + 12) >>> 2) >>> 0] - ], - cullMode: - WebGPU.CullMode[(growMemViews(), HEAP32)[((psPtr + 16) >>> 2) >>> 0]], - unclippedDepth: !!(growMemViews(), HEAPU32)[((psPtr + 20) >>> 2) >>> 0], - }; - } - function makeBlendComponent(bdPtr) { - if (!bdPtr) return undefined; - return { - operation: - WebGPU.BlendOperation[(growMemViews(), HEAP32)[(bdPtr >>> 2) >>> 0]], - srcFactor: - WebGPU.BlendFactor[ - (growMemViews(), HEAP32)[((bdPtr + 4) >>> 2) >>> 0] - ], - dstFactor: - WebGPU.BlendFactor[ - (growMemViews(), HEAP32)[((bdPtr + 8) >>> 2) >>> 0] - ], - }; - } - function makeBlendState(bsPtr) { - if (!bsPtr) return undefined; - return { - alpha: makeBlendComponent(bsPtr + 12), - color: makeBlendComponent(bsPtr + 0), - }; - } - function makeColorState(csPtr) { - var format = - WebGPU.TextureFormat[ - (growMemViews(), HEAP32)[((csPtr + 4) >>> 2) >>> 0] - ]; - return format - ? { - format, - blend: makeBlendState( - (growMemViews(), HEAPU32)[((csPtr + 8) >>> 2) >>> 0] - ), - writeMask: (growMemViews(), HEAPU32)[((csPtr + 16) >>> 2) >>> 0], - } - : undefined; - } - function makeColorStates(count, csArrayPtr) { - var states = []; - for (var i = 0; i < count; ++i) { - states.push(makeColorState(csArrayPtr + 24 * i)); - } - return states; - } - function makeStencilStateFace(ssfPtr) { - return { - compare: - WebGPU.CompareFunction[ - (growMemViews(), HEAP32)[(ssfPtr >>> 2) >>> 0] - ], - failOp: - WebGPU.StencilOperation[ - (growMemViews(), HEAP32)[((ssfPtr + 4) >>> 2) >>> 0] - ], - depthFailOp: - WebGPU.StencilOperation[ - (growMemViews(), HEAP32)[((ssfPtr + 8) >>> 2) >>> 0] - ], - passOp: - WebGPU.StencilOperation[ - (growMemViews(), HEAP32)[((ssfPtr + 12) >>> 2) >>> 0] - ], - }; - } - function makeDepthStencilState(dssPtr) { - if (!dssPtr) return undefined; - return { - format: - WebGPU.TextureFormat[ - (growMemViews(), HEAP32)[((dssPtr + 4) >>> 2) >>> 0] - ], - depthWriteEnabled: !!(growMemViews(), HEAPU32)[ - ((dssPtr + 8) >>> 2) >>> 0 - ], - depthCompare: - WebGPU.CompareFunction[ - (growMemViews(), HEAP32)[((dssPtr + 12) >>> 2) >>> 0] - ], - stencilFront: makeStencilStateFace(dssPtr + 16), - stencilBack: makeStencilStateFace(dssPtr + 32), - stencilReadMask: (growMemViews(), HEAPU32)[((dssPtr + 48) >>> 2) >>> 0], - stencilWriteMask: (growMemViews(), HEAPU32)[ - ((dssPtr + 52) >>> 2) >>> 0 - ], - depthBias: (growMemViews(), HEAP32)[((dssPtr + 56) >>> 2) >>> 0], - depthBiasSlopeScale: (growMemViews(), HEAPF32)[ - ((dssPtr + 60) >>> 2) >>> 0 - ], - depthBiasClamp: (growMemViews(), HEAPF32)[((dssPtr + 64) >>> 2) >>> 0], - }; - } - function makeVertexAttribute(vaPtr) { - return { - format: - WebGPU.VertexFormat[ - (growMemViews(), HEAP32)[((vaPtr + 4) >>> 2) >>> 0] - ], - offset: readI53FromI64(vaPtr + 8), - shaderLocation: (growMemViews(), HEAPU32)[((vaPtr + 16) >>> 2) >>> 0], - }; - } - function makeVertexAttributes(count, vaArrayPtr) { - var vas = []; - for (var i = 0; i < count; ++i) { - vas.push(makeVertexAttribute(vaArrayPtr + i * 24)); - } - return vas; - } - function makeVertexBuffer(vbPtr) { - if (!vbPtr) return undefined; - var stepMode = - WebGPU.VertexStepMode[ - (growMemViews(), HEAP32)[((vbPtr + 4) >>> 2) >>> 0] - ]; - var attributeCount = (growMemViews(), HEAPU32)[ - ((vbPtr + 16) >>> 2) >>> 0 - ]; - if (!stepMode && !attributeCount) { - return null; - } - return { - arrayStride: readI53FromI64(vbPtr + 8), - stepMode, - attributes: makeVertexAttributes( - attributeCount, - (growMemViews(), HEAPU32)[((vbPtr + 20) >>> 2) >>> 0] - ), - }; - } - function makeVertexBuffers(count, vbArrayPtr) { - if (!count) return undefined; - var vbs = []; - for (var i = 0; i < count; ++i) { - vbs.push(makeVertexBuffer(vbArrayPtr + i * 24)); - } - return vbs; - } - function makeVertexState(viPtr) { - if (!viPtr) return undefined; - var desc = { - module: WebGPU.getJsObject( - (growMemViews(), HEAPU32)[((viPtr + 4) >>> 2) >>> 0] - ), - constants: WebGPU.makePipelineConstants( - (growMemViews(), HEAPU32)[((viPtr + 16) >>> 2) >>> 0], - (growMemViews(), HEAPU32)[((viPtr + 20) >>> 2) >>> 0] - ), - buffers: makeVertexBuffers( - (growMemViews(), HEAPU32)[((viPtr + 24) >>> 2) >>> 0], - (growMemViews(), HEAPU32)[((viPtr + 28) >>> 2) >>> 0] - ), - entryPoint: WebGPU.makeStringFromOptionalStringView(viPtr + 8), - }; - return desc; - } - function makeMultisampleState(msPtr) { - if (!msPtr) return undefined; - return { - count: (growMemViews(), HEAPU32)[((msPtr + 4) >>> 2) >>> 0], - mask: (growMemViews(), HEAPU32)[((msPtr + 8) >>> 2) >>> 0], - alphaToCoverageEnabled: !!(growMemViews(), HEAPU32)[ - ((msPtr + 12) >>> 2) >>> 0 - ], - }; - } - function makeFragmentState(fsPtr) { - if (!fsPtr) return undefined; - var desc = { - module: WebGPU.getJsObject( - (growMemViews(), HEAPU32)[((fsPtr + 4) >>> 2) >>> 0] - ), - constants: WebGPU.makePipelineConstants( - (growMemViews(), HEAPU32)[((fsPtr + 16) >>> 2) >>> 0], - (growMemViews(), HEAPU32)[((fsPtr + 20) >>> 2) >>> 0] - ), - targets: makeColorStates( - (growMemViews(), HEAPU32)[((fsPtr + 24) >>> 2) >>> 0], - (growMemViews(), HEAPU32)[((fsPtr + 28) >>> 2) >>> 0] - ), - entryPoint: WebGPU.makeStringFromOptionalStringView(fsPtr + 8), - }; - return desc; - } - var desc = { - label: WebGPU.makeStringFromOptionalStringView(descriptor + 4), - layout: WebGPU.makePipelineLayout( - (growMemViews(), HEAPU32)[((descriptor + 12) >>> 2) >>> 0] - ), - vertex: makeVertexState(descriptor + 16), - primitive: makePrimitiveState(descriptor + 48), - depthStencil: makeDepthStencilState( - (growMemViews(), HEAPU32)[((descriptor + 72) >>> 2) >>> 0] - ), - multisample: makeMultisampleState(descriptor + 76), - fragment: makeFragmentState( - (growMemViews(), HEAPU32)[((descriptor + 92) >>> 2) >>> 0] - ), - }; - return desc; - }, - fillLimitStruct: (limits, limitsOutPtr) => { - var nextInChainPtr = (growMemViews(), HEAPU32)[(limitsOutPtr >>> 2) >>> 0]; - function setLimitValueU32(name, basePtr, limitOffset, fallbackValue = 0) { - var limitValue = limits[name] ?? fallbackValue; - (growMemViews(), HEAPU32)[((basePtr + limitOffset) >>> 2) >>> 0] = - limitValue; - } - function setLimitValueU64(name, basePtr, limitOffset, fallbackValue = 0) { - var limitValue = limits[name] ?? fallbackValue; - writeI53ToI64(basePtr + limitOffset, limitValue); - } - setLimitValueU32('maxTextureDimension1D', limitsOutPtr, 4); - setLimitValueU32('maxTextureDimension2D', limitsOutPtr, 8); - setLimitValueU32('maxTextureDimension3D', limitsOutPtr, 12); - setLimitValueU32('maxTextureArrayLayers', limitsOutPtr, 16); - setLimitValueU32('maxBindGroups', limitsOutPtr, 20); - setLimitValueU32('maxBindGroupsPlusVertexBuffers', limitsOutPtr, 24); - setLimitValueU32('maxBindingsPerBindGroup', limitsOutPtr, 28); - setLimitValueU32( - 'maxDynamicUniformBuffersPerPipelineLayout', - limitsOutPtr, - 32 - ); - setLimitValueU32( - 'maxDynamicStorageBuffersPerPipelineLayout', - limitsOutPtr, - 36 - ); - setLimitValueU32('maxSampledTexturesPerShaderStage', limitsOutPtr, 40); - setLimitValueU32('maxSamplersPerShaderStage', limitsOutPtr, 44); - setLimitValueU32('maxStorageBuffersPerShaderStage', limitsOutPtr, 48); - setLimitValueU32('maxStorageTexturesPerShaderStage', limitsOutPtr, 52); - setLimitValueU32('maxUniformBuffersPerShaderStage', limitsOutPtr, 56); - setLimitValueU32('minUniformBufferOffsetAlignment', limitsOutPtr, 80); - setLimitValueU32('minStorageBufferOffsetAlignment', limitsOutPtr, 84); - setLimitValueU64('maxUniformBufferBindingSize', limitsOutPtr, 64); - setLimitValueU64('maxStorageBufferBindingSize', limitsOutPtr, 72); - setLimitValueU32('maxVertexBuffers', limitsOutPtr, 88); - setLimitValueU64('maxBufferSize', limitsOutPtr, 96); - setLimitValueU32('maxVertexAttributes', limitsOutPtr, 104); - setLimitValueU32('maxVertexBufferArrayStride', limitsOutPtr, 108); - setLimitValueU32('maxInterStageShaderVariables', limitsOutPtr, 112); - setLimitValueU32('maxColorAttachments', limitsOutPtr, 116); - setLimitValueU32('maxColorAttachmentBytesPerSample', limitsOutPtr, 120); - setLimitValueU32('maxComputeWorkgroupStorageSize', limitsOutPtr, 124); - setLimitValueU32('maxComputeInvocationsPerWorkgroup', limitsOutPtr, 128); - setLimitValueU32('maxComputeWorkgroupSizeX', limitsOutPtr, 132); - setLimitValueU32('maxComputeWorkgroupSizeY', limitsOutPtr, 136); - setLimitValueU32('maxComputeWorkgroupSizeZ', limitsOutPtr, 140); - setLimitValueU32('maxComputeWorkgroupsPerDimension', limitsOutPtr, 144); - setLimitValueU32('maxImmediateSize', limitsOutPtr, 148); - if (nextInChainPtr !== 0) { - var sType = (growMemViews(), HEAP32)[((nextInChainPtr + 4) >>> 2) >>> 0]; - var compatibilityModeLimitsPtr = nextInChainPtr; - setLimitValueU32( - 'maxStorageBuffersInVertexStage', - compatibilityModeLimitsPtr, - 8, - limits.maxStorageBuffersPerShaderStage - ); - setLimitValueU32( - 'maxStorageBuffersInFragmentStage', - compatibilityModeLimitsPtr, - 16, - limits.maxStorageBuffersPerShaderStage - ); - setLimitValueU32( - 'maxStorageTexturesInVertexStage', - compatibilityModeLimitsPtr, - 12, - limits.maxStorageTexturesPerShaderStage - ); - setLimitValueU32( - 'maxStorageTexturesInFragmentStage', - compatibilityModeLimitsPtr, - 20, - limits.maxStorageTexturesPerShaderStage - ); - } - }, - fillAdapterInfoStruct: (info, infoStruct) => { - (growMemViews(), HEAPU32)[((infoStruct + 52) >>> 2) >>> 0] = - info.subgroupMinSize; - (growMemViews(), HEAPU32)[((infoStruct + 56) >>> 2) >>> 0] = - info.subgroupMaxSize; - var strs = info.vendor + info.architecture + info.device + info.description; - var strPtr = stringToNewUTF8(strs); - var vendorLen = lengthBytesUTF8(info.vendor); - WebGPU.setStringView(infoStruct + 4, strPtr, vendorLen); - strPtr += vendorLen; - var architectureLen = lengthBytesUTF8(info.architecture); - WebGPU.setStringView(infoStruct + 12, strPtr, architectureLen); - strPtr += architectureLen; - var deviceLen = lengthBytesUTF8(info.device); - WebGPU.setStringView(infoStruct + 20, strPtr, deviceLen); - strPtr += deviceLen; - var descriptionLen = lengthBytesUTF8(info.description); - WebGPU.setStringView(infoStruct + 28, strPtr, descriptionLen); - strPtr += descriptionLen; - (growMemViews(), HEAP32)[((infoStruct + 36) >>> 2) >>> 0] = 2; - var adapterType = info.isFallbackAdapter ? 3 : 4; - (growMemViews(), HEAP32)[((infoStruct + 40) >>> 2) >>> 0] = adapterType; - (growMemViews(), HEAPU32)[((infoStruct + 44) >>> 2) >>> 0] = 0; - (growMemViews(), HEAPU32)[((infoStruct + 48) >>> 2) >>> 0] = 0; - }, - AddressMode: [, 'clamp-to-edge', 'repeat', 'mirror-repeat'], - BlendFactor: [ - , - 'zero', - 'one', - 'src', - 'one-minus-src', - 'src-alpha', - 'one-minus-src-alpha', - 'dst', - 'one-minus-dst', - 'dst-alpha', - 'one-minus-dst-alpha', - 'src-alpha-saturated', - 'constant', - 'one-minus-constant', - 'src1', - 'one-minus-src1', - 'src1-alpha', - 'one-minus-src1-alpha', - ], - BlendOperation: [, 'add', 'subtract', 'reverse-subtract', 'min', 'max'], - BufferBindingType: [, , 'uniform', 'storage', 'read-only-storage'], - BufferMapState: [, 'unmapped', 'pending', 'mapped'], - CompareFunction: [ - , - 'never', - 'less', - 'equal', - 'less-equal', - 'greater', - 'not-equal', - 'greater-equal', - 'always', - ], - CompilationInfoRequestStatus: [, 'success', 'callback-cancelled'], - ComponentSwizzle: [, '0', '1', 'r', 'g', 'b', 'a'], - CompositeAlphaMode: [ - , - 'opaque', - 'premultiplied', - 'unpremultiplied', - 'inherit', - ], - CullMode: [, 'none', 'front', 'back'], - ErrorFilter: [, 'validation', 'out-of-memory', 'internal'], - FeatureLevel: [, 'compatibility', 'core'], - FeatureName: { - 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', - 22: 'texture-component-swizzle', - 327692: 'chromium-experimental-unorm16-texture-formats', - 327729: 'chromium-experimental-multi-draw-indirect', - }, - FilterMode: [, 'nearest', 'linear'], - FrontFace: [, 'ccw', 'cw'], - IndexFormat: [, 'uint16', 'uint32'], - InstanceFeatureName: [ - , - 'timed-wait-any', - 'shader-source-spirv', - 'multiple-devices-per-adapter', - ], - LoadOp: [, 'load', 'clear'], - MipmapFilterMode: [, 'nearest', 'linear'], - OptionalBool: ['false', 'true'], - PowerPreference: [, 'low-power', 'high-performance'], - PredefinedColorSpace: [, 'srgb', 'display-p3'], - PrimitiveTopology: [ - , - 'point-list', - 'line-list', - 'line-strip', - 'triangle-list', - 'triangle-strip', - ], - QueryType: [, 'occlusion', 'timestamp'], - SamplerBindingType: [, , 'filtering', 'non-filtering', 'comparison'], - Status: [, 'success', 'error'], - StencilOperation: [ - , - 'keep', - 'zero', - 'replace', - 'invert', - 'increment-clamp', - 'decrement-clamp', - 'increment-wrap', - 'decrement-wrap', - ], - StorageTextureAccess: [, , 'write-only', 'read-only', 'read-write'], - StoreOp: [, 'store', 'discard'], - SurfaceGetCurrentTextureStatus: [ - , - 'success-optimal', - 'success-suboptimal', - 'timeout', - 'outdated', - 'lost', - 'error', - ], - TextureAspect: [, 'all', 'stencil-only', 'depth-only'], - TextureDimension: [, '1d', '2d', '3d'], - TextureFormat: [ - , - 'r8unorm', - 'r8snorm', - 'r8uint', - 'r8sint', - 'r16unorm', - 'r16snorm', - 'r16uint', - 'r16sint', - 'r16float', - 'rg8unorm', - 'rg8snorm', - 'rg8uint', - 'rg8sint', - 'r32float', - 'r32uint', - 'r32sint', - 'rg16unorm', - 'rg16snorm', - 'rg16uint', - 'rg16sint', - 'rg16float', - 'rgba8unorm', - 'rgba8unorm-srgb', - 'rgba8snorm', - 'rgba8uint', - 'rgba8sint', - 'bgra8unorm', - 'bgra8unorm-srgb', - 'rgb10a2uint', - 'rgb10a2unorm', - 'rg11b10ufloat', - 'rgb9e5ufloat', - 'rg32float', - 'rg32uint', - 'rg32sint', - 'rgba16unorm', - 'rgba16snorm', - 'rgba16uint', - 'rgba16sint', - 'rgba16float', - 'rgba32float', - 'rgba32uint', - 'rgba32sint', - 'stencil8', - 'depth16unorm', - 'depth24plus', - 'depth24plus-stencil8', - 'depth32float', - 'depth32float-stencil8', - 'bc1-rgba-unorm', - 'bc1-rgba-unorm-srgb', - 'bc2-rgba-unorm', - 'bc2-rgba-unorm-srgb', - 'bc3-rgba-unorm', - 'bc3-rgba-unorm-srgb', - 'bc4-r-unorm', - 'bc4-r-snorm', - 'bc5-rg-unorm', - 'bc5-rg-snorm', - 'bc6h-rgb-ufloat', - 'bc6h-rgb-float', - 'bc7-rgba-unorm', - 'bc7-rgba-unorm-srgb', - 'etc2-rgb8unorm', - 'etc2-rgb8unorm-srgb', - 'etc2-rgb8a1unorm', - 'etc2-rgb8a1unorm-srgb', - 'etc2-rgba8unorm', - 'etc2-rgba8unorm-srgb', - 'eac-r11unorm', - 'eac-r11snorm', - 'eac-rg11unorm', - 'eac-rg11snorm', - 'astc-4x4-unorm', - 'astc-4x4-unorm-srgb', - 'astc-5x4-unorm', - 'astc-5x4-unorm-srgb', - 'astc-5x5-unorm', - 'astc-5x5-unorm-srgb', - 'astc-6x5-unorm', - 'astc-6x5-unorm-srgb', - 'astc-6x6-unorm', - 'astc-6x6-unorm-srgb', - 'astc-8x5-unorm', - 'astc-8x5-unorm-srgb', - 'astc-8x6-unorm', - 'astc-8x6-unorm-srgb', - 'astc-8x8-unorm', - 'astc-8x8-unorm-srgb', - 'astc-10x5-unorm', - 'astc-10x5-unorm-srgb', - 'astc-10x6-unorm', - 'astc-10x6-unorm-srgb', - 'astc-10x8-unorm', - 'astc-10x8-unorm-srgb', - 'astc-10x10-unorm', - 'astc-10x10-unorm-srgb', - 'astc-12x10-unorm', - 'astc-12x10-unorm-srgb', - 'astc-12x12-unorm', - 'astc-12x12-unorm-srgb', - ], - TextureSampleType: [ - , - , - 'float', - 'unfilterable-float', - 'depth', - 'sint', - 'uint', - ], - TextureViewDimension: [, '1d', '2d', '2d-array', 'cube', 'cube-array', '3d'], - ToneMappingMode: [, 'standard', 'extended'], - VertexFormat: [ - , - 'uint8', - 'uint8x2', - 'uint8x4', - 'sint8', - 'sint8x2', - 'sint8x4', - 'unorm8', - 'unorm8x2', - 'unorm8x4', - 'snorm8', - 'snorm8x2', - 'snorm8x4', - 'uint16', - 'uint16x2', - 'uint16x4', - 'sint16', - 'sint16x2', - 'sint16x4', - 'unorm16', - 'unorm16x2', - 'unorm16x4', - 'snorm16', - 'snorm16x2', - 'snorm16x4', - 'float16', - 'float16x2', - 'float16x4', - 'float32', - 'float32x2', - 'float32x3', - 'float32x4', - 'uint32', - 'uint32x2', - 'uint32x3', - 'uint32x4', - 'sint32', - 'sint32x2', - 'sint32x3', - 'sint32x4', - 'unorm10-10-10-2', - 'unorm8x4-bgra', - ], - VertexStepMode: [, 'vertex', 'instance'], - WGSLLanguageFeatureName: [ - , - 'readonly_and_readwrite_storage_textures', - 'packed_4x8_integer_dot_product', - 'unrestricted_pointer_parameters', - 'pointer_composite_access', - 'uniform_buffer_standard_layout', - 'subgroup_id', - 'texture_and_sampler_let', - 'subgroup_uniformity', - 'texture_formats_tier1', - ], -}; -var emwgpuStringToInt_DeviceLostReason = { - undefined: 1, - unknown: 1, - destroyed: 2, -}; -var runtimeKeepalivePop = () => { - runtimeKeepaliveCounter -= 1; -}; -function _emwgpuAdapterRequestDevice( - adapterPtr, - futureId, - deviceLostFutureId, - devicePtr, - queuePtr, - descriptor -) { - adapterPtr >>>= 0; - futureId = bigintToI53Checked(futureId); - deviceLostFutureId = bigintToI53Checked(deviceLostFutureId); - devicePtr >>>= 0; - queuePtr >>>= 0; - descriptor >>>= 0; - var adapter = WebGPU.getJsObject(adapterPtr); - var desc = {}; - if (descriptor) { - var requiredFeatureCount = (growMemViews(), HEAPU32)[ - ((descriptor + 12) >>> 2) >>> 0 - ]; - if (requiredFeatureCount) { - var requiredFeaturesPtr = (growMemViews(), HEAPU32)[ - ((descriptor + 16) >>> 2) >>> 0 - ]; - desc['requiredFeatures'] = Array.from( - (growMemViews(), HEAPU32).subarray( - (requiredFeaturesPtr >>> 2) >>> 0, - ((requiredFeaturesPtr + requiredFeatureCount * 4) >>> 2) >>> 0 - ), - (feature) => WebGPU.FeatureName[feature] - ); - } - var limitsPtr = (growMemViews(), HEAPU32)[((descriptor + 20) >>> 2) >>> 0]; - if (limitsPtr) { - var nextInChainPtr = (growMemViews(), HEAPU32)[(limitsPtr >>> 2) >>> 0]; - var requiredLimits = {}; - function setLimitU32IfDefined( - name, - basePtr, - limitOffset, - ignoreIfZero = false - ) { - var ptr = basePtr + limitOffset; - var value = (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0]; - if (value != 4294967295 && (!ignoreIfZero || value != 0)) { - requiredLimits[name] = value; - } - } - function setLimitU64IfDefined(name, basePtr, limitOffset) { - var ptr = basePtr + limitOffset; - var limitPart1 = (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0]; - var limitPart2 = (growMemViews(), HEAPU32)[((ptr + 4) >>> 2) >>> 0]; - if (limitPart1 != 4294967295 || limitPart2 != 4294967295) { - requiredLimits[name] = readI53FromI64(ptr); - } - } - setLimitU32IfDefined('maxTextureDimension1D', limitsPtr, 4); - setLimitU32IfDefined('maxTextureDimension2D', limitsPtr, 8); - setLimitU32IfDefined('maxTextureDimension3D', limitsPtr, 12); - setLimitU32IfDefined('maxTextureArrayLayers', limitsPtr, 16); - setLimitU32IfDefined('maxBindGroups', limitsPtr, 20); - setLimitU32IfDefined('maxBindGroupsPlusVertexBuffers', limitsPtr, 24); - setLimitU32IfDefined('maxBindingsPerBindGroup', limitsPtr, 28); - setLimitU32IfDefined( - 'maxDynamicUniformBuffersPerPipelineLayout', - limitsPtr, - 32 - ); - setLimitU32IfDefined( - 'maxDynamicStorageBuffersPerPipelineLayout', - limitsPtr, - 36 - ); - setLimitU32IfDefined('maxSampledTexturesPerShaderStage', limitsPtr, 40); - setLimitU32IfDefined('maxSamplersPerShaderStage', limitsPtr, 44); - setLimitU32IfDefined('maxStorageBuffersPerShaderStage', limitsPtr, 48); - setLimitU32IfDefined('maxStorageTexturesPerShaderStage', limitsPtr, 52); - setLimitU32IfDefined('maxUniformBuffersPerShaderStage', limitsPtr, 56); - setLimitU32IfDefined('minUniformBufferOffsetAlignment', limitsPtr, 80); - setLimitU32IfDefined('minStorageBufferOffsetAlignment', limitsPtr, 84); - setLimitU64IfDefined('maxUniformBufferBindingSize', limitsPtr, 64); - setLimitU64IfDefined('maxStorageBufferBindingSize', limitsPtr, 72); - setLimitU32IfDefined('maxVertexBuffers', limitsPtr, 88); - setLimitU64IfDefined('maxBufferSize', limitsPtr, 96); - setLimitU32IfDefined('maxVertexAttributes', limitsPtr, 104); - setLimitU32IfDefined('maxVertexBufferArrayStride', limitsPtr, 108); - setLimitU32IfDefined('maxInterStageShaderVariables', limitsPtr, 112); - setLimitU32IfDefined('maxColorAttachments', limitsPtr, 116); - setLimitU32IfDefined('maxColorAttachmentBytesPerSample', limitsPtr, 120); - setLimitU32IfDefined('maxComputeWorkgroupStorageSize', limitsPtr, 124); - setLimitU32IfDefined('maxComputeInvocationsPerWorkgroup', limitsPtr, 128); - setLimitU32IfDefined('maxComputeWorkgroupSizeX', limitsPtr, 132); - setLimitU32IfDefined('maxComputeWorkgroupSizeY', limitsPtr, 136); - setLimitU32IfDefined('maxComputeWorkgroupSizeZ', limitsPtr, 140); - setLimitU32IfDefined('maxComputeWorkgroupsPerDimension', limitsPtr, 144); - setLimitU32IfDefined('maxImmediateSize', limitsPtr, 148, true); - if (nextInChainPtr !== 0) { - var sType = (growMemViews(), HEAP32)[ - ((nextInChainPtr + 4) >>> 2) >>> 0 - ]; - var compatibilityModeLimitsPtr = nextInChainPtr; - if ('maxStorageBuffersInVertexStage' in GPUSupportedLimits.prototype) { - setLimitU32IfDefined( - 'maxStorageBuffersInVertexStage', - compatibilityModeLimitsPtr, - 8 - ); - setLimitU32IfDefined( - 'maxStorageTexturesInVertexStage', - compatibilityModeLimitsPtr, - 12 - ); - setLimitU32IfDefined( - 'maxStorageBuffersInFragmentStage', - compatibilityModeLimitsPtr, - 16 - ); - setLimitU32IfDefined( - 'maxStorageTexturesInFragmentStage', - compatibilityModeLimitsPtr, - 20 - ); - } - } - desc['requiredLimits'] = requiredLimits; - } - var defaultQueuePtr = (growMemViews(), HEAPU32)[ - ((descriptor + 24) >>> 2) >>> 0 - ]; - if (defaultQueuePtr) { - var defaultQueueDesc = { - label: WebGPU.makeStringFromOptionalStringView(defaultQueuePtr + 4), - }; - desc['defaultQueue'] = defaultQueueDesc; - } - desc['label'] = WebGPU.makeStringFromOptionalStringView(descriptor + 4); - } - runtimeKeepalivePush(); - WebGPU.Internals.futureInsert( - futureId, - adapter.requestDevice(desc).then( - (device) => { - runtimeKeepalivePop(); - callUserCallback(() => { - WebGPU.Internals.jsObjectInsert(queuePtr, device.queue); - WebGPU.Internals.jsObjectInsert(devicePtr, device); - WebGPU.Internals.futureInsert( - deviceLostFutureId, - device.lost.then((info) => { - callUserCallback(() => { - device.onuncapturederror = (ev) => {}; - var sp = stackSave(); - var messagePtr = stringToUTF8OnStack(info.message); - _emwgpuOnDeviceLostCompleted( - deviceLostFutureId, - emwgpuStringToInt_DeviceLostReason[info.reason], - messagePtr - ); - stackRestore(sp); - }); - }) - ); - device.onuncapturederror = (ev) => { - var type = 5; - if (ev.error instanceof GPUValidationError) type = 2; - else if (ev.error instanceof GPUOutOfMemoryError) type = 3; - else if (ev.error instanceof GPUInternalError) type = 4; - var sp = stackSave(); - var messagePtr = stringToUTF8OnStack(ev.error.message); - _emwgpuOnUncapturedError(devicePtr, type, messagePtr); - stackRestore(sp); - }; - _emwgpuOnRequestDeviceCompleted(futureId, 1, devicePtr, 0); - }); - }, - (ex) => { - runtimeKeepalivePop(); - callUserCallback(() => { - var sp = stackSave(); - var messagePtr = stringToUTF8OnStack(ex.message); - _emwgpuOnRequestDeviceCompleted(futureId, 3, devicePtr, messagePtr); - if (deviceLostFutureId) { - _emwgpuOnDeviceLostCompleted(deviceLostFutureId, 4, messagePtr); - } - stackRestore(sp); - }); - } - ) - ); -} -function _emwgpuBufferDestroy(bufferPtr) { - bufferPtr >>>= 0; - var buffer = WebGPU.getJsObject(bufferPtr); - var onUnmap = WebGPU.Internals.bufferOnUnmaps[bufferPtr]; - if (onUnmap) { - for (var i = 0; i < onUnmap.length; ++i) { - onUnmap[i](); - } - delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]; - } - buffer.destroy(); -} -var warnOnce = (text) => { - warnOnce.shown ||= {}; - if (!warnOnce.shown[text]) { - warnOnce.shown[text] = 1; - if (ENVIRONMENT_IS_NODE) text = 'warning: ' + text; - err(text); - } -}; -function _emwgpuBufferGetConstMappedRange(bufferPtr, offset, size) { - bufferPtr >>>= 0; - offset >>>= 0; - size >>>= 0; - var buffer = WebGPU.getJsObject(bufferPtr); - if (size == 4294967295) size = undefined; - var mapped; - try { - mapped = buffer.getMappedRange(offset, size); - } catch (ex) { - return 0; - } - var data = _memalign(16, mapped.byteLength); - (growMemViews(), HEAPU8).set(new Uint8Array(mapped), data >>> 0); - WebGPU.Internals.bufferOnUnmaps[bufferPtr].push(() => _free(data)); - return data; -} -var _emwgpuBufferMapAsync = function (bufferPtr, futureId, mode, offset, size) { - bufferPtr >>>= 0; - futureId = bigintToI53Checked(futureId); - mode = bigintToI53Checked(mode); - offset >>>= 0; - size >>>= 0; - var buffer = WebGPU.getJsObject(bufferPtr); - WebGPU.Internals.bufferOnUnmaps[bufferPtr] = []; - if (size == 4294967295) size = undefined; - runtimeKeepalivePush(); - WebGPU.Internals.futureInsert( - futureId, - buffer.mapAsync(mode, offset, size).then( - () => { - runtimeKeepalivePop(); - callUserCallback(() => { - _emwgpuOnMapAsyncCompleted(futureId, 1, 0); - }); - }, - (ex) => { - runtimeKeepalivePop(); - callUserCallback(() => { - var sp = stackSave(); - var messagePtr = stringToUTF8OnStack(ex.message); - var status = - ex.name === 'AbortError' ? 4 : ex.name === 'OperationError' ? 3 : 0; - _emwgpuOnMapAsyncCompleted(futureId, status, messagePtr); - delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]; - }); - } - ) - ); -}; -function _emwgpuBufferUnmap(bufferPtr) { - bufferPtr >>>= 0; - var buffer = WebGPU.getJsObject(bufferPtr); - var onUnmap = WebGPU.Internals.bufferOnUnmaps[bufferPtr]; - if (!onUnmap) { - return; - } - for (var i = 0; i < onUnmap.length; ++i) { - onUnmap[i](); - } - delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]; - buffer.unmap(); -} -function _emwgpuDelete(ptr) { - ptr >>>= 0; - delete WebGPU.Internals.jsObjects[ptr]; -} -function _emwgpuDeviceCreateBuffer(devicePtr, descriptor, bufferPtr) { - devicePtr >>>= 0; - descriptor >>>= 0; - bufferPtr >>>= 0; - var mappedAtCreation = !!(growMemViews(), HEAPU32)[ - ((descriptor + 32) >>> 2) >>> 0 - ]; - var desc = { - label: WebGPU.makeStringFromOptionalStringView(descriptor + 4), - usage: (growMemViews(), HEAPU32)[((descriptor + 16) >>> 2) >>> 0], - size: readI53FromI64(descriptor + 24), - mappedAtCreation, - }; - var device = WebGPU.getJsObject(devicePtr); - var buffer; - try { - buffer = device.createBuffer(desc); - } catch (ex) { - return false; - } - WebGPU.Internals.jsObjectInsert(bufferPtr, buffer); - if (mappedAtCreation) { - WebGPU.Internals.bufferOnUnmaps[bufferPtr] = []; - } - return true; -} -function _emwgpuDeviceCreateShaderModule( - devicePtr, - descriptor, - shaderModulePtr -) { - devicePtr >>>= 0; - descriptor >>>= 0; - shaderModulePtr >>>= 0; - var nextInChainPtr = (growMemViews(), HEAPU32)[(descriptor >>> 2) >>> 0]; - var sType = (growMemViews(), HEAP32)[((nextInChainPtr + 4) >>> 2) >>> 0]; - var desc = { - label: WebGPU.makeStringFromOptionalStringView(descriptor + 4), - code: '', - }; - switch (sType) { - case 2: { - desc['code'] = WebGPU.makeStringFromStringView(nextInChainPtr + 8); - break; - } - } - var device = WebGPU.getJsObject(devicePtr); - WebGPU.Internals.jsObjectInsert( - shaderModulePtr, - device.createShaderModule(desc) - ); -} -var _emwgpuDeviceDestroy = (devicePtr) => { - const device = WebGPU.getJsObject(devicePtr); - device.onuncapturederror = null; - device.destroy(); -}; -function _emwgpuInstanceRequestAdapter( - instancePtr, - futureId, - options, - adapterPtr -) { - instancePtr >>>= 0; - futureId = bigintToI53Checked(futureId); - options >>>= 0; - adapterPtr >>>= 0; - var opts; - if (options) { - opts = { - featureLevel: - WebGPU.FeatureLevel[ - (growMemViews(), HEAP32)[((options + 4) >>> 2) >>> 0] - ], - powerPreference: - WebGPU.PowerPreference[ - (growMemViews(), HEAP32)[((options + 8) >>> 2) >>> 0] - ], - forceFallbackAdapter: !!(growMemViews(), HEAPU32)[ - ((options + 12) >>> 2) >>> 0 - ], - }; - var nextInChainPtr = (growMemViews(), HEAPU32)[(options >>> 2) >>> 0]; - if (nextInChainPtr !== 0) { - var sType = (growMemViews(), HEAP32)[((nextInChainPtr + 4) >>> 2) >>> 0]; - var webxrOptions = nextInChainPtr; - opts.xrCompatible = !!(growMemViews(), HEAPU32)[ - ((webxrOptions + 8) >>> 2) >>> 0 - ]; - } - } - if (!('gpu' in navigator)) { - var sp = stackSave(); - var messagePtr = stringToUTF8OnStack( - 'WebGPU not available on this browser (navigator.gpu is not available)' - ); - _emwgpuOnRequestAdapterCompleted(futureId, 3, adapterPtr, messagePtr); - stackRestore(sp); - return; - } - runtimeKeepalivePush(); - WebGPU.Internals.futureInsert( - futureId, - navigator.gpu.requestAdapter(opts).then( - (adapter) => { - runtimeKeepalivePop(); - callUserCallback(() => { - if (adapter) { - WebGPU.Internals.jsObjectInsert(adapterPtr, adapter); - _emwgpuOnRequestAdapterCompleted(futureId, 1, adapterPtr, 0); - } else { - var sp = stackSave(); - var messagePtr = stringToUTF8OnStack( - 'WebGPU not available on this browser (requestAdapter returned null)' - ); - _emwgpuOnRequestAdapterCompleted( - futureId, - 3, - adapterPtr, - messagePtr - ); - stackRestore(sp); - } - }); - }, - (ex) => { - runtimeKeepalivePop(); - callUserCallback(() => { - var sp = stackSave(); - var messagePtr = stringToUTF8OnStack(ex.message); - _emwgpuOnRequestAdapterCompleted(futureId, 4, adapterPtr, messagePtr); - stackRestore(sp); - }); - } - ) - ); -} -var _emwgpuQueueOnSubmittedWorkDone = function (queuePtr, futureId) { - queuePtr >>>= 0; - futureId = bigintToI53Checked(futureId); - var queue = WebGPU.getJsObject(queuePtr); - runtimeKeepalivePush(); - WebGPU.Internals.futureInsert( - futureId, - queue.onSubmittedWorkDone().then(() => { - runtimeKeepalivePop(); - callUserCallback(() => { - _emwgpuOnWorkDoneCompleted(futureId, 1); - }); - }) - ); -}; -var _emwgpuWaitAny = function (futurePtr, futureCount, timeoutMSPtr) { - futurePtr >>>= 0; - futureCount >>>= 0; - timeoutMSPtr >>>= 0; - return Asyncify.handleAsync(async () => { - var promises = []; - if (timeoutMSPtr) { - var timeoutMS = (growMemViews(), HEAP32)[(timeoutMSPtr >>> 2) >>> 0]; - promises.length = futureCount + 1; - promises[futureCount] = new Promise((resolve) => - setTimeout(resolve, timeoutMS, 0) - ); - } else { - promises.length = futureCount; - } - for (var i = 0; i < futureCount; ++i) { - var futureId = readI53FromI64(futurePtr + i * 8); - if (!(futureId in WebGPU.Internals.futures)) { - return futureId; - } - promises[i] = WebGPU.Internals.futures[futureId]; - } - const firstResolvedFuture = await Promise.race(promises); - delete WebGPU.Internals.futures[firstResolvedFuture]; - return firstResolvedFuture; - }); -}; -_emwgpuWaitAny.isAsync = true; -var ENV = {}; -var getExecutableName = () => thisProgram || './this.program'; -var getEnvStrings = () => { - if (!getEnvStrings.strings) { - var lang = - ((typeof navigator == 'object' && navigator.language) || 'C').replace( - '-', - '_' - ) + '.UTF-8'; - var env = { - USER: 'web_user', - LOGNAME: 'web_user', - PATH: '/', - PWD: '/', - HOME: '/home/web_user', - LANG: lang, - _: getExecutableName(), - }; - for (var x in ENV) { - if (ENV[x] === undefined) delete env[x]; - else env[x] = ENV[x]; - } - var strings = []; - for (var x in env) { - strings.push(`${x}=${env[x]}`); - } - getEnvStrings.strings = strings; - } - return getEnvStrings.strings; -}; -function _environ_get(__environ, environ_buf) { - if (ENVIRONMENT_IS_PTHREAD) - return proxyToMainThread(15, 0, 1, __environ, environ_buf); - __environ >>>= 0; - environ_buf >>>= 0; - var bufSize = 0; - var envp = 0; - for (var string of getEnvStrings()) { - var ptr = environ_buf + bufSize; - (growMemViews(), HEAPU32)[((__environ + envp) >>> 2) >>> 0] = ptr; - bufSize += stringToUTF8(string, ptr, Infinity) + 1; - envp += 4; - } - return 0; -} -function _environ_sizes_get(penviron_count, penviron_buf_size) { - if (ENVIRONMENT_IS_PTHREAD) - return proxyToMainThread(16, 0, 1, penviron_count, penviron_buf_size); - penviron_count >>>= 0; - penviron_buf_size >>>= 0; - var strings = getEnvStrings(); - (growMemViews(), HEAPU32)[(penviron_count >>> 2) >>> 0] = strings.length; - var bufSize = 0; - for (var string of strings) { - bufSize += lengthBytesUTF8(string) + 1; - } - (growMemViews(), HEAPU32)[(penviron_buf_size >>> 2) >>> 0] = bufSize; - return 0; -} -function _fd_close(fd) { - if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(17, 0, 1, fd); - try { - var stream = SYSCALLS.getStreamFromFD(fd); - FS.close(stream); - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return e.errno; - } -} -var doReadv = (stream, iov, iovcnt, offset) => { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { - var ptr = (growMemViews(), HEAPU32)[(iov >>> 2) >>> 0]; - var len = (growMemViews(), HEAPU32)[((iov + 4) >>> 2) >>> 0]; - iov += 8; - var curr = FS.read(stream, (growMemViews(), HEAP8), ptr, len, offset); - if (curr < 0) return -1; - ret += curr; - if (curr < len) break; - if (typeof offset != 'undefined') { - offset += curr; - } - } - return ret; -}; -function _fd_read(fd, iov, iovcnt, pnum) { - if (ENVIRONMENT_IS_PTHREAD) - return proxyToMainThread(18, 0, 1, fd, iov, iovcnt, pnum); - iov >>>= 0; - iovcnt >>>= 0; - pnum >>>= 0; - try { - var stream = SYSCALLS.getStreamFromFD(fd); - var num = doReadv(stream, iov, iovcnt); - (growMemViews(), HEAPU32)[(pnum >>> 2) >>> 0] = num; - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return e.errno; - } -} -function _fd_seek(fd, offset, whence, newOffset) { - if (ENVIRONMENT_IS_PTHREAD) - return proxyToMainThread(19, 0, 1, fd, offset, whence, newOffset); - offset = bigintToI53Checked(offset); - newOffset >>>= 0; - try { - if (isNaN(offset)) return 61; - var stream = SYSCALLS.getStreamFromFD(fd); - FS.llseek(stream, offset, whence); - (growMemViews(), HEAP64)[(newOffset >>> 3) >>> 0] = BigInt(stream.position); - if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return e.errno; - } -} -var doWritev = (stream, iov, iovcnt, offset) => { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { - var ptr = (growMemViews(), HEAPU32)[(iov >>> 2) >>> 0]; - var len = (growMemViews(), HEAPU32)[((iov + 4) >>> 2) >>> 0]; - iov += 8; - var curr = FS.write(stream, (growMemViews(), HEAP8), ptr, len, offset); - if (curr < 0) return -1; - ret += curr; - if (curr < len) { - break; - } - if (typeof offset != 'undefined') { - offset += curr; - } - } - return ret; -}; -function _fd_write(fd, iov, iovcnt, pnum) { - if (ENVIRONMENT_IS_PTHREAD) - return proxyToMainThread(20, 0, 1, fd, iov, iovcnt, pnum); - iov >>>= 0; - iovcnt >>>= 0; - pnum >>>= 0; - try { - var stream = SYSCALLS.getStreamFromFD(fd); - var num = doWritev(stream, iov, iovcnt); - (growMemViews(), HEAPU32)[(pnum >>> 2) >>> 0] = num; - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return e.errno; - } -} -function _llvm_eh_typeid_for(type) { - type >>>= 0; - return type; -} -function _random_get(buffer, size) { - buffer >>>= 0; - size >>>= 0; - try { - randomFill( - (growMemViews(), HEAPU8).subarray(buffer >>> 0, (buffer + size) >>> 0) - ); - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return e.errno; - } -} -var emwgpuStringToInt_FeatureName = { - 'core-features-and-limits': 1, - 'depth-clip-control': 2, - 'depth32float-stencil8': 3, - 'texture-compression-bc': 4, - 'texture-compression-bc-sliced-3d': 5, - 'texture-compression-etc2': 6, - 'texture-compression-astc': 7, - 'texture-compression-astc-sliced-3d': 8, - 'timestamp-query': 9, - 'indirect-first-instance': 10, - 'shader-f16': 11, - 'rg11b10ufloat-renderable': 12, - 'bgra8unorm-storage': 13, - 'float32-filterable': 14, - 'float32-blendable': 15, - 'clip-distances': 16, - 'dual-source-blending': 17, - subgroups: 18, - 'texture-formats-tier1': 19, - 'texture-formats-tier2': 20, - 'primitive-index': 21, - 'texture-component-swizzle': 22, - 'chromium-experimental-unorm16-texture-formats': 327692, - 'chromium-experimental-multi-draw-indirect': 327729, -}; -function _wgpuAdapterGetFeatures(adapterPtr, supportedFeatures) { - adapterPtr >>>= 0; - supportedFeatures >>>= 0; - var adapter = WebGPU.getJsObject(adapterPtr); - var featuresPtr = _malloc(adapter.features.size * 4); - var offset = 0; - var numFeatures = 0; - for (const feature of adapter.features) { - var featureEnumValue = emwgpuStringToInt_FeatureName[feature]; - if (featureEnumValue >= 0) { - (growMemViews(), HEAP32)[((featuresPtr + offset) >>> 2) >>> 0] = - featureEnumValue; - offset += 4; - numFeatures++; - } - } - (growMemViews(), HEAPU32)[((supportedFeatures + 4) >>> 2) >>> 0] = - featuresPtr; - (growMemViews(), HEAPU32)[(supportedFeatures >>> 2) >>> 0] = numFeatures; -} -function _wgpuAdapterGetInfo(adapterPtr, info) { - adapterPtr >>>= 0; - info >>>= 0; - var adapter = WebGPU.getJsObject(adapterPtr); - WebGPU.fillAdapterInfoStruct(adapter.info, info); - return 1; -} -function _wgpuAdapterGetLimits(adapterPtr, limitsOutPtr) { - adapterPtr >>>= 0; - limitsOutPtr >>>= 0; - var adapter = WebGPU.getJsObject(adapterPtr); - WebGPU.fillLimitStruct(adapter.limits, limitsOutPtr); - return 1; -} -function _wgpuAdapterHasFeature(adapterPtr, featureEnumValue) { - adapterPtr >>>= 0; - var adapter = WebGPU.getJsObject(adapterPtr); - return adapter.features.has(WebGPU.FeatureName[featureEnumValue]); -} -var _wgpuBufferGetSize = function (bufferPtr) { - bufferPtr >>>= 0; - var ret = (() => { - var buffer = WebGPU.getJsObject(bufferPtr); - return buffer.size; - })(); - return BigInt(ret); -}; -function _wgpuCommandEncoderBeginComputePass(encoderPtr, descriptor) { - encoderPtr >>>= 0; - descriptor >>>= 0; - var desc; - if (descriptor) { - desc = { - label: WebGPU.makeStringFromOptionalStringView(descriptor + 4), - timestampWrites: WebGPU.makePassTimestampWrites( - (growMemViews(), HEAPU32)[((descriptor + 12) >>> 2) >>> 0] - ), - }; - } - var commandEncoder = WebGPU.getJsObject(encoderPtr); - var ptr = _emwgpuCreateComputePassEncoder(0); - WebGPU.Internals.jsObjectInsert(ptr, commandEncoder.beginComputePass(desc)); - return ptr; -} -function _wgpuCommandEncoderCopyBufferToBuffer( - encoderPtr, - srcPtr, - srcOffset, - dstPtr, - dstOffset, - size -) { - encoderPtr >>>= 0; - srcPtr >>>= 0; - srcOffset = bigintToI53Checked(srcOffset); - dstPtr >>>= 0; - dstOffset = bigintToI53Checked(dstOffset); - size = bigintToI53Checked(size); - var commandEncoder = WebGPU.getJsObject(encoderPtr); - var src = WebGPU.getJsObject(srcPtr); - var dst = WebGPU.getJsObject(dstPtr); - commandEncoder.copyBufferToBuffer(src, srcOffset, dst, dstOffset, size); -} -function _wgpuCommandEncoderFinish(encoderPtr, descriptor) { - encoderPtr >>>= 0; - descriptor >>>= 0; - var commandEncoder = WebGPU.getJsObject(encoderPtr); - var ptr = _emwgpuCreateCommandBuffer(0); - WebGPU.Internals.jsObjectInsert(ptr, commandEncoder.finish()); - return ptr; -} -function _wgpuComputePassEncoderDispatchWorkgroups(passPtr, x, y, z) { - passPtr >>>= 0; - var pass = WebGPU.getJsObject(passPtr); - pass.dispatchWorkgroups(x, y, z); -} -function _wgpuComputePassEncoderEnd(passPtr) { - passPtr >>>= 0; - var pass = WebGPU.getJsObject(passPtr); - pass.end(); -} -function _wgpuComputePassEncoderSetBindGroup( - passPtr, - groupIndex, - groupPtr, - dynamicOffsetCount, - dynamicOffsetsPtr -) { - passPtr >>>= 0; - groupPtr >>>= 0; - dynamicOffsetCount >>>= 0; - dynamicOffsetsPtr >>>= 0; - var pass = WebGPU.getJsObject(passPtr); - var group = WebGPU.getJsObject(groupPtr); - if (dynamicOffsetCount == 0) { - pass.setBindGroup(groupIndex, group); - } else { - pass.setBindGroup( - groupIndex, - group, - (growMemViews(), HEAPU32), - dynamicOffsetsPtr >>> 2, - dynamicOffsetCount - ); - } -} -function _wgpuComputePassEncoderSetPipeline(passPtr, pipelinePtr) { - passPtr >>>= 0; - pipelinePtr >>>= 0; - var pass = WebGPU.getJsObject(passPtr); - var pipeline = WebGPU.getJsObject(pipelinePtr); - pass.setPipeline(pipeline); -} -function _wgpuComputePipelineGetBindGroupLayout(pipelinePtr, groupIndex) { - pipelinePtr >>>= 0; - var pipeline = WebGPU.getJsObject(pipelinePtr); - var ptr = _emwgpuCreateBindGroupLayout(0); - WebGPU.Internals.jsObjectInsert(ptr, pipeline.getBindGroupLayout(groupIndex)); - return ptr; -} -var _wgpuDeviceCreateBindGroup = function (devicePtr, descriptor) { - devicePtr >>>= 0; - descriptor >>>= 0; - function makeEntry(entryPtr) { - var bufferPtr = (growMemViews(), HEAPU32)[((entryPtr + 8) >>> 2) >>> 0]; - var samplerPtr = (growMemViews(), HEAPU32)[((entryPtr + 32) >>> 2) >>> 0]; - var textureViewPtr = (growMemViews(), HEAPU32)[ - ((entryPtr + 36) >>> 2) >>> 0 - ]; - var externalTexturePtr = 0; - WebGPU.iterateExtensions(entryPtr, { - 327681: (ptr) => { - externalTexturePtr = (growMemViews(), HEAPU32)[((ptr + 8) >>> 2) >>> 0]; - }, - }); - var resource; - if (bufferPtr) { - var size = readI53FromI64(entryPtr + 24); - if (size == -1) size = undefined; - resource = { - buffer: WebGPU.getJsObject(bufferPtr), - offset: readI53FromI64(entryPtr + 16), - size, - }; - } else { - resource = WebGPU.getJsObject( - samplerPtr || textureViewPtr || externalTexturePtr - ); - } - return { - binding: (growMemViews(), HEAPU32)[((entryPtr + 4) >>> 2) >>> 0], - resource, - }; - } - function makeEntries(count, entriesPtrs) { - var entries = []; - for (var i = 0; i < count; ++i) { - entries.push(makeEntry(entriesPtrs + 40 * i)); - } - return entries; - } - var desc = { - label: WebGPU.makeStringFromOptionalStringView(descriptor + 4), - layout: WebGPU.getJsObject( - (growMemViews(), HEAPU32)[((descriptor + 12) >>> 2) >>> 0] - ), - entries: makeEntries( - (growMemViews(), HEAPU32)[((descriptor + 16) >>> 2) >>> 0], - (growMemViews(), HEAPU32)[((descriptor + 20) >>> 2) >>> 0] - ), - }; - var device = WebGPU.getJsObject(devicePtr); - var ptr = _emwgpuCreateBindGroup(0); - WebGPU.Internals.jsObjectInsert(ptr, device.createBindGroup(desc)); - return ptr; -}; -function _wgpuDeviceCreateCommandEncoder(devicePtr, descriptor) { - devicePtr >>>= 0; - descriptor >>>= 0; - var desc; - if (descriptor) { - desc = { label: WebGPU.makeStringFromOptionalStringView(descriptor + 4) }; - } - var device = WebGPU.getJsObject(devicePtr); - var ptr = _emwgpuCreateCommandEncoder(0); - WebGPU.Internals.jsObjectInsert(ptr, device.createCommandEncoder(desc)); - return ptr; -} -function _wgpuDeviceCreateComputePipeline(devicePtr, descriptor) { - devicePtr >>>= 0; - descriptor >>>= 0; - var desc = WebGPU.makeComputePipelineDesc(descriptor); - var device = WebGPU.getJsObject(devicePtr); - var ptr = _emwgpuCreateComputePipeline(0); - WebGPU.Internals.jsObjectInsert(ptr, device.createComputePipeline(desc)); - return ptr; -} -var _wgpuQueueSubmit = function (queuePtr, commandCount, commands) { - queuePtr >>>= 0; - commandCount >>>= 0; - commands >>>= 0; - var queue = WebGPU.getJsObject(queuePtr); - var cmds = Array.from( - (growMemViews(), HEAP32).subarray( - (commands >>> 2) >>> 0, - ((commands + commandCount * 4) >>> 2) >>> 0 - ), - (id) => WebGPU.getJsObject(id) - ); - queue.submit(cmds); -}; -function _wgpuQueueWriteBuffer(queuePtr, bufferPtr, bufferOffset, data, size) { - queuePtr >>>= 0; - bufferPtr >>>= 0; - bufferOffset = bigintToI53Checked(bufferOffset); - data >>>= 0; - size >>>= 0; - var queue = WebGPU.getJsObject(queuePtr); - var buffer = WebGPU.getJsObject(bufferPtr); - var subarray = (growMemViews(), HEAPU8).subarray( - data >>> 0, - (data + size) >>> 0 - ); - queue.writeBuffer(buffer, bufferOffset, subarray, 0, size); -} -var wasmTableMirror = []; -var getWasmTableEntry = (funcPtr) => { - var func = wasmTableMirror[funcPtr]; - if (!func) { - wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr); - } - return func; -}; -var runAndAbortIfError = (func) => { - try { - return func(); - } catch (e) { - abort(e); - } -}; -var Asyncify = { - instrumentWasmImports(imports) { - var importPattern = /^(invoke_.*|__asyncjs__.*)$/; - for (let [x, original] of Object.entries(imports)) { - if (typeof original == 'function') { - let isAsyncifyImport = original.isAsync || importPattern.test(x); - } - } - }, - instrumentFunction(original) { - var wrapper = (...args) => { - Asyncify.exportCallStack.push(original); - try { - return original(...args); - } finally { - if (!ABORT) { - var top = Asyncify.exportCallStack.pop(); - Asyncify.maybeStopUnwind(); - } - } - }; - Asyncify.funcWrappers.set(original, wrapper); - return wrapper; - }, - instrumentWasmExports(exports) { - var ret = {}; - for (let [x, original] of Object.entries(exports)) { - if (typeof original == 'function') { - var wrapper = Asyncify.instrumentFunction(original); - ret[x] = wrapper; - } else { - ret[x] = original; - } - } - return ret; - }, - State: { Normal: 0, Unwinding: 1, Rewinding: 2, Disabled: 3 }, - state: 0, - StackSize: 4096, - currData: null, - handleSleepReturnValue: 0, - exportCallStack: [], - callstackFuncToId: new Map(), - callStackIdToFunc: new Map(), - funcWrappers: new Map(), - callStackId: 0, - asyncPromiseHandlers: null, - sleepCallbacks: [], - getCallStackId(func) { - if (!Asyncify.callstackFuncToId.has(func)) { - var id = Asyncify.callStackId++; - Asyncify.callstackFuncToId.set(func, id); - Asyncify.callStackIdToFunc.set(id, func); - } - return Asyncify.callstackFuncToId.get(func); - }, - maybeStopUnwind() { - if ( - Asyncify.currData && - Asyncify.state === Asyncify.State.Unwinding && - Asyncify.exportCallStack.length === 0 - ) { - Asyncify.state = Asyncify.State.Normal; - runtimeKeepalivePush(); - runAndAbortIfError(_asyncify_stop_unwind); - if (typeof Fibers != 'undefined') { - Fibers.trampoline(); - } - } - }, - whenDone() { - return new Promise((resolve, reject) => { - Asyncify.asyncPromiseHandlers = { resolve, reject }; - }); - }, - allocateData() { - var ptr = _malloc(12 + Asyncify.StackSize); - Asyncify.setDataHeader(ptr, ptr + 12, Asyncify.StackSize); - Asyncify.setDataRewindFunc(ptr); - return ptr; - }, - setDataHeader(ptr, stack, stackSize) { - (growMemViews(), HEAPU32)[(ptr >>> 2) >>> 0] = stack; - (growMemViews(), HEAPU32)[((ptr + 4) >>> 2) >>> 0] = stack + stackSize; - }, - setDataRewindFunc(ptr) { - var bottomOfCallStack = Asyncify.exportCallStack[0]; - var rewindId = Asyncify.getCallStackId(bottomOfCallStack); - (growMemViews(), HEAP32)[((ptr + 8) >>> 2) >>> 0] = rewindId; - }, - getDataRewindFunc(ptr) { - var id = (growMemViews(), HEAP32)[((ptr + 8) >>> 2) >>> 0]; - var func = Asyncify.callStackIdToFunc.get(id); - return func; - }, - doRewind(ptr) { - var original = Asyncify.getDataRewindFunc(ptr); - var func = Asyncify.funcWrappers.get(original); - runtimeKeepalivePop(); - return func(); - }, - handleSleep(startAsync) { - if (ABORT) return; - if (Asyncify.state === Asyncify.State.Normal) { - var reachedCallback = false; - var reachedAfterCallback = false; - startAsync((handleSleepReturnValue = 0) => { - if (ABORT) return; - Asyncify.handleSleepReturnValue = handleSleepReturnValue; - reachedCallback = true; - if (!reachedAfterCallback) { - return; - } - Asyncify.state = Asyncify.State.Rewinding; - runAndAbortIfError(() => _asyncify_start_rewind(Asyncify.currData)); - if (typeof MainLoop != 'undefined' && MainLoop.func) { - MainLoop.resume(); - } - var asyncWasmReturnValue, - isError = false; - try { - asyncWasmReturnValue = Asyncify.doRewind(Asyncify.currData); - } catch (err) { - asyncWasmReturnValue = err; - isError = true; - } - var handled = false; - if (!Asyncify.currData) { - var asyncPromiseHandlers = Asyncify.asyncPromiseHandlers; - if (asyncPromiseHandlers) { - Asyncify.asyncPromiseHandlers = null; - (isError - ? asyncPromiseHandlers.reject - : asyncPromiseHandlers.resolve)(asyncWasmReturnValue); - handled = true; - } - } - if (isError && !handled) { - throw asyncWasmReturnValue; - } - }); - reachedAfterCallback = true; - if (!reachedCallback) { - Asyncify.state = Asyncify.State.Unwinding; - Asyncify.currData = Asyncify.allocateData(); - if (typeof MainLoop != 'undefined' && MainLoop.func) { - MainLoop.pause(); - } - runAndAbortIfError(() => _asyncify_start_unwind(Asyncify.currData)); - } - } else if (Asyncify.state === Asyncify.State.Rewinding) { - Asyncify.state = Asyncify.State.Normal; - runAndAbortIfError(_asyncify_stop_rewind); - _free(Asyncify.currData); - Asyncify.currData = null; - Asyncify.sleepCallbacks.forEach(callUserCallback); - } else { - abort(`invalid state: ${Asyncify.state}`); - } - return Asyncify.handleSleepReturnValue; - }, - handleAsync: (startAsync) => - Asyncify.handleSleep((wakeUp) => { - startAsync().then(wakeUp); - }), -}; -var getCFunc = (ident) => { - var func = Module['_' + ident]; - return func; -}; -var writeArrayToMemory = (array, buffer) => { - (growMemViews(), HEAP8).set(array, buffer >>> 0); -}; -var ccall = (ident, returnType, argTypes, args, opts) => { - var toC = { - string: (str) => { - var ret = 0; - if (str !== null && str !== undefined && str !== 0) { - ret = stringToUTF8OnStack(str); - } - return ret; - }, - array: (arr) => { - var ret = stackAlloc(arr.length); - writeArrayToMemory(arr, ret); - return ret; - }, - }; - function convertReturnValue(ret) { - if (returnType === 'string') { - return UTF8ToString(ret); - } - if (returnType === 'pointer') return ret >>> 0; - if (returnType === 'boolean') return Boolean(ret); - return ret; - } - var func = getCFunc(ident); - var cArgs = []; - var stack = 0; - if (args) { - for (var i = 0; i < args.length; i++) { - var converter = toC[argTypes[i]]; - if (converter) { - if (stack === 0) stack = stackSave(); - cArgs[i] = converter(args[i]); - } else { - cArgs[i] = args[i]; - } - } - } - var previousAsync = Asyncify.currData; - var ret = func(...cArgs); - function onDone(ret) { - runtimeKeepalivePop(); - if (stack !== 0) stackRestore(stack); - return convertReturnValue(ret); - } - var asyncMode = opts?.async; - runtimeKeepalivePush(); - if (Asyncify.currData != previousAsync) { - return Asyncify.whenDone().then(onDone); - } - ret = onDone(ret); - if (asyncMode) return Promise.resolve(ret); - return ret; -}; -var cwrap = (ident, returnType, argTypes, opts) => { - var numericArgs = - !argTypes || - argTypes.every((type) => type === 'number' || type === 'boolean'); - var numericRet = returnType !== 'string'; - if (numericRet && numericArgs && !opts) { - return getCFunc(ident); - } - return (...args) => ccall(ident, returnType, argTypes, args, opts); -}; -var FS_createPath = (...args) => FS.createPath(...args); -var FS_unlink = (...args) => FS.unlink(...args); -var FS_createLazyFile = (...args) => FS.createLazyFile(...args); -var FS_createDevice = (...args) => FS.createDevice(...args); -PThread.init(); -FS.createPreloadedFile = FS_createPreloadedFile; -FS.preloadFile = FS_preloadFile; -FS.staticInit(); -{ - initMemory(); - if (Module['noExitRuntime']) noExitRuntime = Module['noExitRuntime']; - if (Module['preloadPlugins']) preloadPlugins = Module['preloadPlugins']; - if (Module['print']) out = Module['print']; - if (Module['printErr']) err = Module['printErr']; - if (Module['wasmBinary']) wasmBinary = Module['wasmBinary']; - if (Module['arguments']) arguments_ = Module['arguments']; - if (Module['thisProgram']) thisProgram = Module['thisProgram']; - if (Module['preInit']) { - if (typeof Module['preInit'] == 'function') - Module['preInit'] = [Module['preInit']]; - while (Module['preInit'].length > 0) { - Module['preInit'].shift()(); - } - } -} -Module['addRunDependency'] = addRunDependency; -Module['removeRunDependency'] = removeRunDependency; -Module['ccall'] = ccall; -Module['cwrap'] = cwrap; -Module['FS_preloadFile'] = FS_preloadFile; -Module['FS_unlink'] = FS_unlink; -Module['FS_createPath'] = FS_createPath; -Module['FS_createDevice'] = FS_createDevice; -Module['FS_createDataFile'] = FS_createDataFile; -Module['FS_createLazyFile'] = FS_createLazyFile; -Module['ExitStatus'] = ExitStatus; -Module['PThread'] = PThread; -Module['terminateWorker'] = terminateWorker; -Module['cleanupThread'] = cleanupThread; -Module['addOnPreRun'] = addOnPreRun; -Module['onPreRuns'] = onPreRuns; -Module['callRuntimeCallbacks'] = callRuntimeCallbacks; -Module['addRunDependency'] = addRunDependency; -Module['runDependencies'] = runDependencies; -Module['removeRunDependency'] = removeRunDependency; -Module['dependenciesFulfilled'] = dependenciesFulfilled; -Module['spawnThread'] = spawnThread; -Module['_exit'] = _exit; -Module['exitJS'] = exitJS; -Module['_proc_exit'] = _proc_exit; -Module['keepRuntimeAlive'] = keepRuntimeAlive; -Module['runtimeKeepaliveCounter'] = runtimeKeepaliveCounter; -Module['proxyToMainThread'] = proxyToMainThread; -Module['stackSave'] = stackSave; -Module['stackRestore'] = stackRestore; -Module['stackAlloc'] = stackAlloc; -Module['exitOnMainThread'] = exitOnMainThread; -Module['addOnPostRun'] = addOnPostRun; -Module['onPostRuns'] = onPostRuns; -Module['dynCall'] = dynCall; -Module['dynCallLegacy'] = dynCallLegacy; -Module['dynCalls'] = dynCalls; -Module['establishStackSpace'] = establishStackSpace; -Module['getValue'] = getValue; -Module['invokeEntryPoint'] = invokeEntryPoint; -Module['noExitRuntime'] = noExitRuntime; -Module['registerTLSInit'] = registerTLSInit; -Module['setValue'] = setValue; -Module['wasmMemory'] = wasmMemory; -Module['___assert_fail'] = ___assert_fail; -Module['bigintToI53Checked'] = bigintToI53Checked; -Module['INT53_MAX'] = INT53_MAX; -Module['INT53_MIN'] = INT53_MIN; -Module['UTF8ToString'] = UTF8ToString; -Module['UTF8ArrayToString'] = UTF8ArrayToString; -Module['UTF8Decoder'] = UTF8Decoder; -Module['findStringEnd'] = findStringEnd; -Module['___cxa_begin_catch'] = ___cxa_begin_catch; -Module['exceptionCaught'] = exceptionCaught; -Module['uncaughtExceptionCount'] = uncaughtExceptionCount; -Module['___cxa_current_primary_exception'] = ___cxa_current_primary_exception; -Module['___cxa_end_catch'] = ___cxa_end_catch; -Module['exceptionLast'] = exceptionLast; -Module['___cxa_find_matching_catch_2'] = ___cxa_find_matching_catch_2; -Module['findMatchingCatch'] = findMatchingCatch; -Module['ExceptionInfo'] = ExceptionInfo; -Module['setTempRet0'] = setTempRet0; -Module['___cxa_find_matching_catch_3'] = ___cxa_find_matching_catch_3; -Module['___cxa_find_matching_catch_4'] = ___cxa_find_matching_catch_4; -Module['___cxa_find_matching_catch_7'] = ___cxa_find_matching_catch_7; -Module['___cxa_rethrow'] = ___cxa_rethrow; -Module['___cxa_rethrow_primary_exception'] = ___cxa_rethrow_primary_exception; -Module['___cxa_throw'] = ___cxa_throw; -Module['___cxa_uncaught_exceptions'] = ___cxa_uncaught_exceptions; -Module['___pthread_create_js'] = ___pthread_create_js; -Module['pthreadCreateProxied'] = pthreadCreateProxied; -Module['_emscripten_has_threading_support'] = _emscripten_has_threading_support; -Module['___resumeException'] = ___resumeException; -Module['___syscall_fcntl64'] = ___syscall_fcntl64; -Module['syscallGetVarargP'] = syscallGetVarargP; -Module['syscallGetVarargI'] = syscallGetVarargI; -Module['SYSCALLS'] = SYSCALLS; -Module['PATH'] = PATH; -Module['FS'] = FS; -Module['randomFill'] = randomFill; -Module['initRandomFill'] = initRandomFill; -Module['PATH_FS'] = PATH_FS; -Module['TTY'] = TTY; -Module['FS_stdin_getChar'] = FS_stdin_getChar; -Module['FS_stdin_getChar_buffer'] = FS_stdin_getChar_buffer; -Module['intArrayFromString'] = intArrayFromString; -Module['lengthBytesUTF8'] = lengthBytesUTF8; -Module['stringToUTF8Array'] = stringToUTF8Array; -Module['MEMFS'] = MEMFS; -Module['mmapAlloc'] = mmapAlloc; -Module['zeroMemory'] = zeroMemory; -Module['alignMemory'] = alignMemory; -Module['FS_modeStringToFlags'] = FS_modeStringToFlags; -Module['FS_getMode'] = FS_getMode; -Module['FS_createPreloadedFile'] = FS_createPreloadedFile; -Module['FS_preloadFile'] = FS_preloadFile; -Module['asyncLoad'] = asyncLoad; -Module['FS_createDataFile'] = FS_createDataFile; -Module['getUniqueRunDependency'] = getUniqueRunDependency; -Module['FS_handledByPreloadPlugin'] = FS_handledByPreloadPlugin; -Module['preloadPlugins'] = preloadPlugins; -Module['___syscall_fstat64'] = ___syscall_fstat64; -Module['___syscall_getcwd'] = ___syscall_getcwd; -Module['stringToUTF8'] = stringToUTF8; -Module['___syscall_getdents64'] = ___syscall_getdents64; -Module['___syscall_ioctl'] = ___syscall_ioctl; -Module['___syscall_lstat64'] = ___syscall_lstat64; -Module['___syscall_newfstatat'] = ___syscall_newfstatat; -Module['___syscall_openat'] = ___syscall_openat; -Module['___syscall_stat64'] = ___syscall_stat64; -Module['__abort_js'] = __abort_js; -Module['__emscripten_init_main_thread_js'] = __emscripten_init_main_thread_js; -Module['__emscripten_notify_mailbox_postmessage'] = - __emscripten_notify_mailbox_postmessage; -Module['checkMailbox'] = checkMailbox; -Module['callUserCallback'] = callUserCallback; -Module['handleException'] = handleException; -Module['maybeExit'] = maybeExit; -Module['__emscripten_thread_mailbox_await'] = __emscripten_thread_mailbox_await; -Module['__emscripten_receive_on_main_thread_js'] = - __emscripten_receive_on_main_thread_js; -Module['proxiedJSCallArgs'] = proxiedJSCallArgs; -Module['__emscripten_runtime_keepalive_clear'] = - __emscripten_runtime_keepalive_clear; -Module['__emscripten_thread_cleanup'] = __emscripten_thread_cleanup; -Module['__emscripten_thread_set_strongref'] = __emscripten_thread_set_strongref; -Module['__localtime_js'] = __localtime_js; -Module['ydayFromDate'] = ydayFromDate; -Module['isLeapYear'] = isLeapYear; -Module['MONTH_DAYS_LEAP_CUMULATIVE'] = MONTH_DAYS_LEAP_CUMULATIVE; -Module['MONTH_DAYS_REGULAR_CUMULATIVE'] = MONTH_DAYS_REGULAR_CUMULATIVE; -Module['__mmap_js'] = __mmap_js; -Module['__munmap_js'] = __munmap_js; -Module['__setitimer_js'] = __setitimer_js; -Module['timers'] = timers; -Module['_emscripten_get_now'] = _emscripten_get_now; -Module['__tzset_js'] = __tzset_js; -Module['_clock_time_get'] = _clock_time_get; -Module['_emscripten_date_now'] = _emscripten_date_now; -Module['nowIsMonotonic'] = nowIsMonotonic; -Module['checkWasiClock'] = checkWasiClock; -Module['_emscripten_check_blocking_allowed'] = - _emscripten_check_blocking_allowed; -Module['_emscripten_exit_with_live_runtime'] = - _emscripten_exit_with_live_runtime; -Module['runtimeKeepalivePush'] = runtimeKeepalivePush; -Module['_emscripten_get_heap_max'] = _emscripten_get_heap_max; -Module['getHeapMax'] = getHeapMax; -Module['_emscripten_has_asyncify'] = _emscripten_has_asyncify; -Module['_emscripten_num_logical_cores'] = _emscripten_num_logical_cores; -Module['_emscripten_resize_heap'] = _emscripten_resize_heap; -Module['growMemory'] = growMemory; -Module['_emwgpuAdapterRequestDevice'] = _emwgpuAdapterRequestDevice; -Module['emwgpuStringToInt_DeviceLostReason'] = - emwgpuStringToInt_DeviceLostReason; -Module['WebGPU'] = WebGPU; -Module['stringToUTF8OnStack'] = stringToUTF8OnStack; -Module['writeI53ToI64'] = writeI53ToI64; -Module['stringToNewUTF8'] = stringToNewUTF8; -Module['readI53FromI64'] = readI53FromI64; -Module['runtimeKeepalivePop'] = runtimeKeepalivePop; -Module['_emwgpuBufferDestroy'] = _emwgpuBufferDestroy; -Module['_emwgpuBufferGetConstMappedRange'] = _emwgpuBufferGetConstMappedRange; -Module['warnOnce'] = warnOnce; -Module['_emwgpuBufferMapAsync'] = _emwgpuBufferMapAsync; -Module['_emwgpuBufferUnmap'] = _emwgpuBufferUnmap; -Module['_emwgpuDelete'] = _emwgpuDelete; -Module['_emwgpuDeviceCreateBuffer'] = _emwgpuDeviceCreateBuffer; -Module['_emwgpuDeviceCreateShaderModule'] = _emwgpuDeviceCreateShaderModule; -Module['_emwgpuDeviceDestroy'] = _emwgpuDeviceDestroy; -Module['_emwgpuInstanceRequestAdapter'] = _emwgpuInstanceRequestAdapter; -Module['_emwgpuQueueOnSubmittedWorkDone'] = _emwgpuQueueOnSubmittedWorkDone; -Module['_emwgpuWaitAny'] = _emwgpuWaitAny; -Module['_environ_get'] = _environ_get; -Module['getEnvStrings'] = getEnvStrings; -Module['ENV'] = ENV; -Module['getExecutableName'] = getExecutableName; -Module['_environ_sizes_get'] = _environ_sizes_get; -Module['_fd_close'] = _fd_close; -Module['_fd_read'] = _fd_read; -Module['doReadv'] = doReadv; -Module['_fd_seek'] = _fd_seek; -Module['_fd_write'] = _fd_write; -Module['doWritev'] = doWritev; -Module['_llvm_eh_typeid_for'] = _llvm_eh_typeid_for; -Module['_random_get'] = _random_get; -Module['_wgpuAdapterGetFeatures'] = _wgpuAdapterGetFeatures; -Module['emwgpuStringToInt_FeatureName'] = emwgpuStringToInt_FeatureName; -Module['_wgpuAdapterGetInfo'] = _wgpuAdapterGetInfo; -Module['_wgpuAdapterGetLimits'] = _wgpuAdapterGetLimits; -Module['_wgpuAdapterHasFeature'] = _wgpuAdapterHasFeature; -Module['_wgpuBufferGetSize'] = _wgpuBufferGetSize; -Module['_wgpuCommandEncoderBeginComputePass'] = - _wgpuCommandEncoderBeginComputePass; -Module['_wgpuCommandEncoderCopyBufferToBuffer'] = - _wgpuCommandEncoderCopyBufferToBuffer; -Module['_wgpuCommandEncoderFinish'] = _wgpuCommandEncoderFinish; -Module['_wgpuComputePassEncoderDispatchWorkgroups'] = - _wgpuComputePassEncoderDispatchWorkgroups; -Module['_wgpuComputePassEncoderEnd'] = _wgpuComputePassEncoderEnd; -Module['_wgpuComputePassEncoderSetBindGroup'] = - _wgpuComputePassEncoderSetBindGroup; -Module['_wgpuComputePassEncoderSetPipeline'] = - _wgpuComputePassEncoderSetPipeline; -Module['_wgpuComputePipelineGetBindGroupLayout'] = - _wgpuComputePipelineGetBindGroupLayout; -Module['_wgpuDeviceCreateBindGroup'] = _wgpuDeviceCreateBindGroup; -Module['_wgpuDeviceCreateCommandEncoder'] = _wgpuDeviceCreateCommandEncoder; -Module['_wgpuDeviceCreateComputePipeline'] = _wgpuDeviceCreateComputePipeline; -Module['_wgpuQueueSubmit'] = _wgpuQueueSubmit; -Module['_wgpuQueueWriteBuffer'] = _wgpuQueueWriteBuffer; -Module['getWasmTableEntry'] = getWasmTableEntry; -Module['wasmTableMirror'] = wasmTableMirror; -Module['Asyncify'] = Asyncify; -Module['runAndAbortIfError'] = runAndAbortIfError; -Module['ccall'] = ccall; -Module['getCFunc'] = getCFunc; -Module['writeArrayToMemory'] = writeArrayToMemory; -Module['cwrap'] = cwrap; -Module['FS_createPath'] = FS_createPath; -Module['FS_unlink'] = FS_unlink; -Module['FS_createLazyFile'] = FS_createLazyFile; -Module['FS_createDevice'] = FS_createDevice; -var proxiedFunctionTable = [ - _proc_exit, - exitOnMainThread, - pthreadCreateProxied, - ___syscall_fcntl64, - ___syscall_fstat64, - ___syscall_getcwd, - ___syscall_getdents64, - ___syscall_ioctl, - ___syscall_lstat64, - ___syscall_newfstatat, - ___syscall_openat, - ___syscall_stat64, - __mmap_js, - __munmap_js, - __setitimer_js, - _environ_get, - _environ_sizes_get, - _fd_close, - _fd_read, - _fd_seek, - _fd_write, -]; -function __asyncjs__js_file_read(path_ptr, offset, req_size, out_ptr) { - return Asyncify.handleAsync( - async () => - await _wllama_js_file_read( - UTF8ToString(Number(path_ptr)), - Number(offset), - Number(req_size), - Number(out_ptr) - ) - ); -} -var ___cxa_free_exception, - _malloc, - _free, - _wllama_malloc, - _wllama_start, - _wllama_action, - _wllama_exit, - _wllama_debug, - _main, - _emwgpuCreateBindGroup, - _emwgpuCreateBindGroupLayout, - _emwgpuCreateCommandBuffer, - _emwgpuCreateCommandEncoder, - _emwgpuCreateComputePassEncoder, - _emwgpuCreateComputePipeline, - _emwgpuCreateExternalTexture, - _emwgpuCreatePipelineLayout, - _emwgpuCreateQuerySet, - _emwgpuCreateRenderBundle, - _emwgpuCreateRenderBundleEncoder, - _emwgpuCreateRenderPassEncoder, - _emwgpuCreateRenderPipeline, - _emwgpuCreateSampler, - _emwgpuCreateSurface, - _emwgpuCreateTexture, - _emwgpuCreateTextureView, - _emwgpuCreateAdapter, - _emwgpuCreateBuffer, - _emwgpuCreateDevice, - _emwgpuCreateQueue, - _emwgpuCreateShaderModule, - _emwgpuOnCompilationInfoCompleted, - _emwgpuOnCreateComputePipelineCompleted, - _emwgpuOnCreateRenderPipelineCompleted, - _emwgpuOnDeviceLostCompleted, - _emwgpuOnMapAsyncCompleted, - _emwgpuOnPopErrorScopeCompleted, - _emwgpuOnRequestAdapterCompleted, - _emwgpuOnRequestDeviceCompleted, - _emwgpuOnWorkDoneCompleted, - _emwgpuOnUncapturedError, - __emscripten_tls_init, - _pthread_self, - _emscripten_builtin_memalign, - __emscripten_run_callback_on_thread, - __emscripten_thread_init, - __emscripten_thread_crashed, - __emscripten_run_js_on_main_thread, - __emscripten_thread_free_data, - __emscripten_thread_exit, - __emscripten_timeout, - __emscripten_check_mailbox, - _memalign, - _setThrew, - __emscripten_tempret_set, - _emscripten_stack_set_limits, - __emscripten_stack_restore, - __emscripten_stack_alloc, - _emscripten_stack_get_current, - ___cxa_decrement_exception_refcount, - ___cxa_increment_exception_refcount, - ___cxa_can_catch, - ___cxa_get_exception_ptr, - dynCall_iii, - dynCall_viii, - dynCall_ii, - dynCall_vi, - dynCall_vii, - dynCall_v, - dynCall_viiii, - dynCall_viiiii, - dynCall_iiii, - dynCall_viiiiiiiiiiiiii, - dynCall_viiiiiii, - dynCall_viiiiiiii, - dynCall_iiiiii, - dynCall_viiiiiiiii, - dynCall_j, - dynCall_viiiiii, - dynCall_iiiiiii, - dynCall_iiji, - dynCall_iiiii, - dynCall_iiiiiiii, - dynCall_vij, - dynCall_iij, - dynCall_iifff, - dynCall_iiiffiiii, - dynCall_iiiiiiiiii, - dynCall_iiiiiiiiiiiiiiiiiii, - dynCall_iiiiiiiiiiiiiii, - dynCall_di, - dynCall_ji, - dynCall_dii, - dynCall_jii, - dynCall_viiijj, - dynCall_iid, - dynCall_vid, - dynCall_viiiijj, - dynCall_viid, - dynCall_vjjiii, - dynCall_iiiiiijii, - dynCall_iiiji, - dynCall_fiii, - dynCall_viiij, - dynCall_iiif, - dynCall_ifi, - dynCall_iiiiiiiiiiiiii, - dynCall_iiiiff, - dynCall_viijj, - dynCall_iiiiiiiiiii, - dynCall_viif, - dynCall_iiijj, - dynCall_iiijjjj, - dynCall_iiiiiiiiiffffffi, - dynCall_iiiiiiiii, - dynCall_i, - dynCall_iiij, - dynCall_viiiijjji, - dynCall_iiiiiiiiiifi, - dynCall_iiiiiiiiiiiijjiifiiiiiii, - dynCall_iiiiiiiiiiiiiiii, - dynCall_iiijjj, - dynCall_iiiiiiiiifi, - dynCall_iiiff, - dynCall_iiiiiiji, - dynCall_iiiiijiiijjjjjjj, - dynCall_iiiiijji, - dynCall_iiiiiiiiiiii, - dynCall_viiiiiiiiii, - dynCall_viij, - dynCall_iiijiiii, - dynCall_iiiiiifi, - dynCall_iiiiiiiifii, - dynCall_vj, - dynCall_viijii, - dynCall_viijijj, - dynCall_viiiij, - dynCall_iiid, - dynCall_jiji, - dynCall_iidiiii, - dynCall_iiiij, - dynCall_iiiiij, - dynCall_iiiiid, - dynCall_jiiii, - dynCall_diii, - dynCall_viiiiiiiiiiiiiii, - dynCall_viji, - dynCall_iiiiijj, - dynCall_iiiiiijj, - _asyncify_start_unwind, - _asyncify_stop_unwind, - _asyncify_start_rewind, - _asyncify_stop_rewind, - __indirect_function_table, - wasmTable; -function assignWasmExports(wasmExports) { - ___cxa_free_exception = Module['___cxa_free_exception'] = wasmExports['ec']; - _malloc = Module['_malloc'] = wasmExports['fc']; - _free = Module['_free'] = wasmExports['gc']; - _wllama_malloc = Module['_wllama_malloc'] = wasmExports['hc']; - _wllama_start = Module['_wllama_start'] = wasmExports['ic']; - _wllama_action = Module['_wllama_action'] = wasmExports['jc']; - _wllama_exit = Module['_wllama_exit'] = wasmExports['kc']; - _wllama_debug = Module['_wllama_debug'] = wasmExports['lc']; - _main = Module['_main'] = wasmExports['mc']; - _emwgpuCreateBindGroup = Module['_emwgpuCreateBindGroup'] = wasmExports['nc']; - _emwgpuCreateBindGroupLayout = Module['_emwgpuCreateBindGroupLayout'] = - wasmExports['oc']; - _emwgpuCreateCommandBuffer = Module['_emwgpuCreateCommandBuffer'] = - wasmExports['pc']; - _emwgpuCreateCommandEncoder = Module['_emwgpuCreateCommandEncoder'] = - wasmExports['qc']; - _emwgpuCreateComputePassEncoder = Module['_emwgpuCreateComputePassEncoder'] = - wasmExports['rc']; - _emwgpuCreateComputePipeline = Module['_emwgpuCreateComputePipeline'] = - wasmExports['sc']; - _emwgpuCreateExternalTexture = Module['_emwgpuCreateExternalTexture'] = - wasmExports['tc']; - _emwgpuCreatePipelineLayout = Module['_emwgpuCreatePipelineLayout'] = - wasmExports['uc']; - _emwgpuCreateQuerySet = Module['_emwgpuCreateQuerySet'] = wasmExports['vc']; - _emwgpuCreateRenderBundle = Module['_emwgpuCreateRenderBundle'] = - wasmExports['wc']; - _emwgpuCreateRenderBundleEncoder = Module[ - '_emwgpuCreateRenderBundleEncoder' - ] = wasmExports['xc']; - _emwgpuCreateRenderPassEncoder = Module['_emwgpuCreateRenderPassEncoder'] = - wasmExports['yc']; - _emwgpuCreateRenderPipeline = Module['_emwgpuCreateRenderPipeline'] = - wasmExports['zc']; - _emwgpuCreateSampler = Module['_emwgpuCreateSampler'] = wasmExports['Ac']; - _emwgpuCreateSurface = Module['_emwgpuCreateSurface'] = wasmExports['Bc']; - _emwgpuCreateTexture = Module['_emwgpuCreateTexture'] = wasmExports['Cc']; - _emwgpuCreateTextureView = Module['_emwgpuCreateTextureView'] = - wasmExports['Dc']; - _emwgpuCreateAdapter = Module['_emwgpuCreateAdapter'] = wasmExports['Ec']; - _emwgpuCreateBuffer = Module['_emwgpuCreateBuffer'] = wasmExports['Fc']; - _emwgpuCreateDevice = Module['_emwgpuCreateDevice'] = wasmExports['Gc']; - _emwgpuCreateQueue = Module['_emwgpuCreateQueue'] = wasmExports['Hc']; - _emwgpuCreateShaderModule = Module['_emwgpuCreateShaderModule'] = - wasmExports['Ic']; - _emwgpuOnCompilationInfoCompleted = Module[ - '_emwgpuOnCompilationInfoCompleted' - ] = wasmExports['Jc']; - _emwgpuOnCreateComputePipelineCompleted = Module[ - '_emwgpuOnCreateComputePipelineCompleted' - ] = wasmExports['Kc']; - _emwgpuOnCreateRenderPipelineCompleted = Module[ - '_emwgpuOnCreateRenderPipelineCompleted' - ] = wasmExports['Lc']; - _emwgpuOnDeviceLostCompleted = Module['_emwgpuOnDeviceLostCompleted'] = - wasmExports['Mc']; - _emwgpuOnMapAsyncCompleted = Module['_emwgpuOnMapAsyncCompleted'] = - wasmExports['Nc']; - _emwgpuOnPopErrorScopeCompleted = Module['_emwgpuOnPopErrorScopeCompleted'] = - wasmExports['Oc']; - _emwgpuOnRequestAdapterCompleted = Module[ - '_emwgpuOnRequestAdapterCompleted' - ] = wasmExports['Pc']; - _emwgpuOnRequestDeviceCompleted = Module['_emwgpuOnRequestDeviceCompleted'] = - wasmExports['Qc']; - _emwgpuOnWorkDoneCompleted = Module['_emwgpuOnWorkDoneCompleted'] = - wasmExports['Rc']; - _emwgpuOnUncapturedError = Module['_emwgpuOnUncapturedError'] = - wasmExports['Sc']; - __emscripten_tls_init = Module['__emscripten_tls_init'] = wasmExports['Tc']; - _pthread_self = Module['_pthread_self'] = wasmExports['Uc']; - _emscripten_builtin_memalign = Module['_emscripten_builtin_memalign'] = - wasmExports['Vc']; - __emscripten_run_callback_on_thread = Module[ - '__emscripten_run_callback_on_thread' - ] = wasmExports['Wc']; - __emscripten_thread_init = Module['__emscripten_thread_init'] = - wasmExports['Yc']; - __emscripten_thread_crashed = Module['__emscripten_thread_crashed'] = - wasmExports['Zc']; - __emscripten_run_js_on_main_thread = Module[ - '__emscripten_run_js_on_main_thread' - ] = wasmExports['_c']; - __emscripten_thread_free_data = Module['__emscripten_thread_free_data'] = - wasmExports['$c']; - __emscripten_thread_exit = Module['__emscripten_thread_exit'] = - wasmExports['ad']; - __emscripten_timeout = Module['__emscripten_timeout'] = wasmExports['bd']; - __emscripten_check_mailbox = Module['__emscripten_check_mailbox'] = - wasmExports['cd']; - _memalign = Module['_memalign'] = wasmExports['dd']; - _setThrew = Module['_setThrew'] = wasmExports['ed']; - __emscripten_tempret_set = Module['__emscripten_tempret_set'] = - wasmExports['fd']; - _emscripten_stack_set_limits = Module['_emscripten_stack_set_limits'] = - wasmExports['gd']; - __emscripten_stack_restore = Module['__emscripten_stack_restore'] = - wasmExports['hd']; - __emscripten_stack_alloc = Module['__emscripten_stack_alloc'] = - wasmExports['id']; - _emscripten_stack_get_current = Module['_emscripten_stack_get_current'] = - wasmExports['jd']; - ___cxa_decrement_exception_refcount = Module[ - '___cxa_decrement_exception_refcount' - ] = wasmExports['kd']; - ___cxa_increment_exception_refcount = Module[ - '___cxa_increment_exception_refcount' - ] = wasmExports['ld']; - ___cxa_can_catch = Module['___cxa_can_catch'] = wasmExports['md']; - ___cxa_get_exception_ptr = Module['___cxa_get_exception_ptr'] = - wasmExports['nd']; - dynCall_iii = dynCalls['iii'] = Module['dynCall_iii'] = wasmExports['od']; - dynCall_viii = dynCalls['viii'] = Module['dynCall_viii'] = wasmExports['pd']; - dynCall_ii = dynCalls['ii'] = Module['dynCall_ii'] = wasmExports['qd']; - dynCall_vi = dynCalls['vi'] = Module['dynCall_vi'] = wasmExports['rd']; - dynCall_vii = dynCalls['vii'] = Module['dynCall_vii'] = wasmExports['sd']; - dynCall_v = dynCalls['v'] = Module['dynCall_v'] = wasmExports['td']; - dynCall_viiii = - dynCalls['viiii'] = - Module['dynCall_viiii'] = - wasmExports['ud']; - dynCall_viiiii = - dynCalls['viiiii'] = - Module['dynCall_viiiii'] = - wasmExports['vd']; - dynCall_iiii = dynCalls['iiii'] = Module['dynCall_iiii'] = wasmExports['wd']; - dynCall_viiiiiiiiiiiiii = - dynCalls['viiiiiiiiiiiiii'] = - Module['dynCall_viiiiiiiiiiiiii'] = - wasmExports['xd']; - dynCall_viiiiiii = - dynCalls['viiiiiii'] = - Module['dynCall_viiiiiii'] = - wasmExports['yd']; - dynCall_viiiiiiii = - dynCalls['viiiiiiii'] = - Module['dynCall_viiiiiiii'] = - wasmExports['zd']; - dynCall_iiiiii = - dynCalls['iiiiii'] = - Module['dynCall_iiiiii'] = - wasmExports['Ad']; - dynCall_viiiiiiiii = - dynCalls['viiiiiiiii'] = - Module['dynCall_viiiiiiiii'] = - wasmExports['Bd']; - dynCall_j = dynCalls['j'] = Module['dynCall_j'] = wasmExports['Cd']; - dynCall_viiiiii = - dynCalls['viiiiii'] = - Module['dynCall_viiiiii'] = - wasmExports['Dd']; - dynCall_iiiiiii = - dynCalls['iiiiiii'] = - Module['dynCall_iiiiiii'] = - wasmExports['Ed']; - dynCall_iiji = dynCalls['iiji'] = Module['dynCall_iiji'] = wasmExports['Fd']; - dynCall_iiiii = - dynCalls['iiiii'] = - Module['dynCall_iiiii'] = - wasmExports['Gd']; - dynCall_iiiiiiii = - dynCalls['iiiiiiii'] = - Module['dynCall_iiiiiiii'] = - wasmExports['Hd']; - dynCall_vij = dynCalls['vij'] = Module['dynCall_vij'] = wasmExports['Id']; - dynCall_iij = dynCalls['iij'] = Module['dynCall_iij'] = wasmExports['Jd']; - dynCall_iifff = - dynCalls['iifff'] = - Module['dynCall_iifff'] = - wasmExports['Kd']; - dynCall_iiiffiiii = - dynCalls['iiiffiiii'] = - Module['dynCall_iiiffiiii'] = - wasmExports['Ld']; - dynCall_iiiiiiiiii = - dynCalls['iiiiiiiiii'] = - Module['dynCall_iiiiiiiiii'] = - wasmExports['Md']; - dynCall_iiiiiiiiiiiiiiiiiii = - dynCalls['iiiiiiiiiiiiiiiiiii'] = - Module['dynCall_iiiiiiiiiiiiiiiiiii'] = - wasmExports['Nd']; - dynCall_iiiiiiiiiiiiiii = - dynCalls['iiiiiiiiiiiiiii'] = - Module['dynCall_iiiiiiiiiiiiiii'] = - wasmExports['Od']; - dynCall_di = dynCalls['di'] = Module['dynCall_di'] = wasmExports['Pd']; - dynCall_ji = dynCalls['ji'] = Module['dynCall_ji'] = wasmExports['Qd']; - dynCall_dii = dynCalls['dii'] = Module['dynCall_dii'] = wasmExports['Rd']; - dynCall_jii = dynCalls['jii'] = Module['dynCall_jii'] = wasmExports['Sd']; - dynCall_viiijj = - dynCalls['viiijj'] = - Module['dynCall_viiijj'] = - wasmExports['Td']; - dynCall_iid = dynCalls['iid'] = Module['dynCall_iid'] = wasmExports['Ud']; - dynCall_vid = dynCalls['vid'] = Module['dynCall_vid'] = wasmExports['Vd']; - dynCall_viiiijj = - dynCalls['viiiijj'] = - Module['dynCall_viiiijj'] = - wasmExports['Wd']; - dynCall_viid = dynCalls['viid'] = Module['dynCall_viid'] = wasmExports['Xd']; - dynCall_vjjiii = - dynCalls['vjjiii'] = - Module['dynCall_vjjiii'] = - wasmExports['Yd']; - dynCall_iiiiiijii = - dynCalls['iiiiiijii'] = - Module['dynCall_iiiiiijii'] = - wasmExports['Zd']; - dynCall_iiiji = - dynCalls['iiiji'] = - Module['dynCall_iiiji'] = - wasmExports['_d']; - dynCall_fiii = dynCalls['fiii'] = Module['dynCall_fiii'] = wasmExports['$d']; - dynCall_viiij = - dynCalls['viiij'] = - Module['dynCall_viiij'] = - wasmExports['ae']; - dynCall_iiif = dynCalls['iiif'] = Module['dynCall_iiif'] = wasmExports['be']; - dynCall_ifi = dynCalls['ifi'] = Module['dynCall_ifi'] = wasmExports['ce']; - dynCall_iiiiiiiiiiiiii = - dynCalls['iiiiiiiiiiiiii'] = - Module['dynCall_iiiiiiiiiiiiii'] = - wasmExports['de']; - dynCall_iiiiff = - dynCalls['iiiiff'] = - Module['dynCall_iiiiff'] = - wasmExports['ee']; - dynCall_viijj = - dynCalls['viijj'] = - Module['dynCall_viijj'] = - wasmExports['fe']; - dynCall_iiiiiiiiiii = - dynCalls['iiiiiiiiiii'] = - Module['dynCall_iiiiiiiiiii'] = - wasmExports['ge']; - dynCall_viif = dynCalls['viif'] = Module['dynCall_viif'] = wasmExports['he']; - dynCall_iiijj = - dynCalls['iiijj'] = - Module['dynCall_iiijj'] = - wasmExports['ie']; - dynCall_iiijjjj = - dynCalls['iiijjjj'] = - Module['dynCall_iiijjjj'] = - wasmExports['je']; - dynCall_iiiiiiiiiffffffi = - dynCalls['iiiiiiiiiffffffi'] = - Module['dynCall_iiiiiiiiiffffffi'] = - wasmExports['ke']; - dynCall_iiiiiiiii = - dynCalls['iiiiiiiii'] = - Module['dynCall_iiiiiiiii'] = - wasmExports['le']; - dynCall_i = dynCalls['i'] = Module['dynCall_i'] = wasmExports['me']; - dynCall_iiij = dynCalls['iiij'] = Module['dynCall_iiij'] = wasmExports['ne']; - dynCall_viiiijjji = - dynCalls['viiiijjji'] = - Module['dynCall_viiiijjji'] = - wasmExports['oe']; - dynCall_iiiiiiiiiifi = - dynCalls['iiiiiiiiiifi'] = - Module['dynCall_iiiiiiiiiifi'] = - wasmExports['pe']; - dynCall_iiiiiiiiiiiijjiifiiiiiii = - dynCalls['iiiiiiiiiiiijjiifiiiiiii'] = - Module['dynCall_iiiiiiiiiiiijjiifiiiiiii'] = - wasmExports['qe']; - dynCall_iiiiiiiiiiiiiiii = - dynCalls['iiiiiiiiiiiiiiii'] = - Module['dynCall_iiiiiiiiiiiiiiii'] = - wasmExports['re']; - dynCall_iiijjj = - dynCalls['iiijjj'] = - Module['dynCall_iiijjj'] = - wasmExports['se']; - dynCall_iiiiiiiiifi = - dynCalls['iiiiiiiiifi'] = - Module['dynCall_iiiiiiiiifi'] = - wasmExports['te']; - dynCall_iiiff = - dynCalls['iiiff'] = - Module['dynCall_iiiff'] = - wasmExports['ue']; - dynCall_iiiiiiji = - dynCalls['iiiiiiji'] = - Module['dynCall_iiiiiiji'] = - wasmExports['ve']; - dynCall_iiiiijiiijjjjjjj = - dynCalls['iiiiijiiijjjjjjj'] = - Module['dynCall_iiiiijiiijjjjjjj'] = - wasmExports['we']; - dynCall_iiiiijji = - dynCalls['iiiiijji'] = - Module['dynCall_iiiiijji'] = - wasmExports['xe']; - dynCall_iiiiiiiiiiii = - dynCalls['iiiiiiiiiiii'] = - Module['dynCall_iiiiiiiiiiii'] = - wasmExports['ye']; - dynCall_viiiiiiiiii = - dynCalls['viiiiiiiiii'] = - Module['dynCall_viiiiiiiiii'] = - wasmExports['ze']; - dynCall_viij = dynCalls['viij'] = Module['dynCall_viij'] = wasmExports['Ae']; - dynCall_iiijiiii = - dynCalls['iiijiiii'] = - Module['dynCall_iiijiiii'] = - wasmExports['Be']; - dynCall_iiiiiifi = - dynCalls['iiiiiifi'] = - Module['dynCall_iiiiiifi'] = - wasmExports['Ce']; - dynCall_iiiiiiiifii = - dynCalls['iiiiiiiifii'] = - Module['dynCall_iiiiiiiifii'] = - wasmExports['De']; - dynCall_vj = dynCalls['vj'] = Module['dynCall_vj'] = wasmExports['Ee']; - dynCall_viijii = - dynCalls['viijii'] = - Module['dynCall_viijii'] = - wasmExports['Fe']; - dynCall_viijijj = - dynCalls['viijijj'] = - Module['dynCall_viijijj'] = - wasmExports['Ge']; - dynCall_viiiij = - dynCalls['viiiij'] = - Module['dynCall_viiiij'] = - wasmExports['He']; - dynCall_iiid = dynCalls['iiid'] = Module['dynCall_iiid'] = wasmExports['Ie']; - dynCall_jiji = dynCalls['jiji'] = Module['dynCall_jiji'] = wasmExports['Je']; - dynCall_iidiiii = - dynCalls['iidiiii'] = - Module['dynCall_iidiiii'] = - wasmExports['Ke']; - dynCall_iiiij = - dynCalls['iiiij'] = - Module['dynCall_iiiij'] = - wasmExports['Le']; - dynCall_iiiiij = - dynCalls['iiiiij'] = - Module['dynCall_iiiiij'] = - wasmExports['Me']; - dynCall_iiiiid = - dynCalls['iiiiid'] = - Module['dynCall_iiiiid'] = - wasmExports['Ne']; - dynCall_jiiii = - dynCalls['jiiii'] = - Module['dynCall_jiiii'] = - wasmExports['Oe']; - dynCall_diii = dynCalls['diii'] = Module['dynCall_diii'] = wasmExports['Pe']; - dynCall_viiiiiiiiiiiiiii = - dynCalls['viiiiiiiiiiiiiii'] = - Module['dynCall_viiiiiiiiiiiiiii'] = - wasmExports['Qe']; - dynCall_viji = dynCalls['viji'] = Module['dynCall_viji'] = wasmExports['Re']; - dynCall_iiiiijj = - dynCalls['iiiiijj'] = - Module['dynCall_iiiiijj'] = - wasmExports['Se']; - dynCall_iiiiiijj = - dynCalls['iiiiiijj'] = - Module['dynCall_iiiiiijj'] = - wasmExports['Te']; - _asyncify_start_unwind = Module['_asyncify_start_unwind'] = - wasmExports['asyncify_start_unwind']; - _asyncify_stop_unwind = Module['_asyncify_stop_unwind'] = - wasmExports['asyncify_stop_unwind']; - _asyncify_start_rewind = Module['_asyncify_start_rewind'] = - wasmExports['asyncify_start_rewind']; - _asyncify_stop_rewind = Module['_asyncify_stop_rewind'] = - wasmExports['asyncify_stop_rewind']; - __indirect_function_table = - Module['__indirect_function_table'] = - wasmTable = - wasmExports['Xc']; -} -var wasmImports; -function assignWasmImports() { - wasmImports = { - Ra: ___assert_fail, - ya: __asyncjs__js_file_read, - s: ___cxa_begin_catch, - Wa: ___cxa_current_primary_exception, - B: ___cxa_end_catch, - b: ___cxa_find_matching_catch_2, - n: ___cxa_find_matching_catch_3, - P: ___cxa_find_matching_catch_4, - bc: ___cxa_find_matching_catch_7, - ja: ___cxa_rethrow, - Ua: ___cxa_rethrow_primary_exception, - v: ___cxa_throw, - Xa: ___cxa_uncaught_exceptions, - eb: ___pthread_create_js, - i: ___resumeException, - wa: ___syscall_fcntl64, - Ta: ___syscall_getcwd, - Ya: ___syscall_getdents64, - rb: ___syscall_ioctl, - xa: ___syscall_openat, - bb: ___syscall_stat64, - wb: __abort_js, - mb: __emscripten_init_main_thread_js, - _a: __emscripten_notify_mailbox_postmessage, - fb: __emscripten_receive_on_main_thread_js, - Pa: __emscripten_runtime_keepalive_clear, - ta: __emscripten_thread_cleanup, - lb: __emscripten_thread_mailbox_await, - tb: __emscripten_thread_set_strongref, - ib: __localtime_js, - gb: __mmap_js, - hb: __munmap_js, - Qa: __setitimer_js, - jb: __tzset_js, - vb: _clock_time_get, - ua: _emscripten_check_blocking_allowed, - ub: _emscripten_date_now, - sb: _emscripten_exit_with_live_runtime, - $a: _emscripten_get_heap_max, - ba: _emscripten_get_now, - xb: _emscripten_has_asyncify, - ab: _emscripten_num_logical_cores, - Za: _emscripten_resize_heap, - Bb: _emwgpuAdapterRequestDevice, - W: _emwgpuBufferDestroy, - Fb: _emwgpuBufferGetConstMappedRange, - Eb: _emwgpuBufferMapAsync, - Db: _emwgpuBufferUnmap, - p: _emwgpuDelete, - _: _emwgpuDeviceCreateBuffer, - za: _emwgpuDeviceCreateShaderModule, - Cb: _emwgpuDeviceDestroy, - Ab: _emwgpuInstanceRequestAdapter, - zb: _emwgpuQueueOnSubmittedWorkDone, - yb: _emwgpuWaitAny, - ob: _environ_get, - pb: _environ_sizes_get, - cb: _exit, - ca: _fd_close, - va: _fd_read, - kb: _fd_seek, - qb: _fd_write, - M: invoke_di, - ga: invoke_dii, - Aa: invoke_diii, - L: invoke_fiii, - K: invoke_i, - Fa: invoke_ifi, - d: invoke_ii, - S: invoke_iid, - ac: invoke_iifff, - f: invoke_iii, - Ca: invoke_iiid, - A: invoke_iiif, - Xb: invoke_iiiff, - Ia: invoke_iiiffiiii, - g: invoke_iiii, - oa: invoke_iiiiff, - o: invoke_iiiii, - Pb: invoke_iiiiid, - l: invoke_iiiiii, - ka: invoke_iiiiiifi, - m: invoke_iiiiiii, - H: invoke_iiiiiiii, - Vb: invoke_iiiiiiiifii, - aa: invoke_iiiiiiiii, - r: invoke_iiiiiiiiiffffffi, - na: invoke_iiiiiiiiifi, - F: invoke_iiiiiiiiii, - u: invoke_iiiiiiiiiifi, - I: invoke_iiiiiiiiiii, - X: invoke_iiiiiiiiiiii, - _b: invoke_iiiiiiiiiiiiii, - $: invoke_iiiiiiiiiiiiiii, - t: invoke_iiiiiiiiiiiiiiii, - Ha: invoke_iiiiiiiiiiiiiiiiiii, - D: invoke_iiiiiiiiiiiijjiifiiiiiii, - Ea: invoke_iiiiiiji, - Ja: invoke_iiiiiijii, - Ba: invoke_iiiiij, - ma: invoke_iiiiijiiijjjjjjj, - la: invoke_iiiiijji, - Rb: invoke_iiiij, - Y: invoke_iiij, - $b: invoke_iiiji, - U: invoke_iiijiiii, - E: invoke_iiijj, - w: invoke_iiijjj, - G: invoke_iiijjjj, - N: invoke_iij, - ra: invoke_iiji, - Sb: invoke_j, - C: invoke_ji, - T: invoke_jii, - ea: invoke_jiiii, - h: invoke_v, - q: invoke_vi, - ha: invoke_vid, - c: invoke_vii, - Mb: invoke_viid, - Nb: invoke_viif, - e: invoke_viii, - j: invoke_viiii, - k: invoke_viiiii, - z: invoke_viiiiii, - O: invoke_viiiiiii, - qa: invoke_viiiiiiii, - ia: invoke_viiiiiiiii, - V: invoke_viiiiiiiiii, - sa: invoke_viiiiiiiiiiiiii, - da: invoke_viiiiiiiiiiiiiii, - R: invoke_viiiij, - Ka: invoke_viiiijj, - y: invoke_viiiijjji, - Q: invoke_viiij, - La: invoke_viiijj, - Qb: invoke_viij, - Da: invoke_viijii, - Tb: invoke_viijijj, - Ga: invoke_viijj, - J: invoke_vij, - fa: invoke_vj, - Z: invoke_vjjiii, - x: _llvm_eh_typeid_for, - a: wasmMemory, - Oa: _proc_exit, - Sa: _random_get, - Va: _wgpuAdapterGetFeatures, - db: _wgpuAdapterGetInfo, - nb: _wgpuAdapterGetLimits, - Na: _wgpuAdapterHasFeature, - cc: _wgpuBufferGetSize, - Ub: _wgpuCommandEncoderBeginComputePass, - Gb: _wgpuCommandEncoderCopyBufferToBuffer, - Ib: _wgpuCommandEncoderFinish, - Kb: _wgpuComputePassEncoderDispatchWorkgroups, - Jb: _wgpuComputePassEncoderEnd, - Lb: _wgpuComputePassEncoderSetBindGroup, - Ob: _wgpuComputePassEncoderSetPipeline, - Zb: _wgpuComputePipelineGetBindGroupLayout, - Yb: _wgpuDeviceCreateBindGroup, - Wb: _wgpuDeviceCreateCommandEncoder, - Ma: _wgpuDeviceCreateComputePipeline, - Hb: _wgpuQueueSubmit, - pa: _wgpuQueueWriteBuffer, - }; -} -function invoke_iii(index, a1, a2) { - var sp = stackSave(); - try { - return dynCall_iii(index, a1, a2); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_vii(index, a1, a2) { - var sp = stackSave(); - try { - dynCall_vii(index, a1, a2); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_viii(index, a1, a2, a3) { - var sp = stackSave(); - try { - dynCall_viii(index, a1, a2, a3); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_v(index) { - var sp = stackSave(); - try { - dynCall_v(index); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_ii(index, a1) { - var sp = stackSave(); - try { - return dynCall_ii(index, a1); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_viiii(index, a1, a2, a3, a4) { - var sp = stackSave(); - try { - dynCall_viiii(index, a1, a2, a3, a4); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_viiiii(index, a1, a2, a3, a4, a5) { - var sp = stackSave(); - try { - dynCall_viiiii(index, a1, a2, a3, a4, a5); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiii(index, a1, a2, a3) { - var sp = stackSave(); - try { - return dynCall_iiii(index, a1, a2, a3); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_viiiiiiiiiiiiii( - index, - a1, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10, - a11, - a12, - a13, - a14 -) { - var sp = stackSave(); - try { - dynCall_viiiiiiiiiiiiii( - index, - a1, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10, - a11, - a12, - a13, - a14 - ); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiii(index, a1, a2, a3, a4, a5) { - var sp = stackSave(); - try { - return dynCall_iiiiii(index, a1, a2, a3, a4, a5); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_viiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9) { - var sp = stackSave(); - try { - dynCall_viiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_vi(index, a1) { - var sp = stackSave(); - try { - dynCall_vi(index, a1); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiiii(index, a1, a2, a3, a4, a5, a6) { - var sp = stackSave(); - try { - return dynCall_iiiiiii(index, a1, a2, a3, a4, a5, a6); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiji(index, a1, a2, a3) { - var sp = stackSave(); - try { - return dynCall_iiji(index, a1, a2, a3); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiii(index, a1, a2, a3, a4) { - var sp = stackSave(); - try { - return dynCall_iiiii(index, a1, a2, a3, a4); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_viiiiiii(index, a1, a2, a3, a4, a5, a6, a7) { - var sp = stackSave(); - try { - dynCall_viiiiiii(index, a1, a2, a3, a4, a5, a6, a7); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_viiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8) { - var sp = stackSave(); - try { - dynCall_viiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_viiiiii(index, a1, a2, a3, a4, a5, a6) { - var sp = stackSave(); - try { - dynCall_viiiiii(index, a1, a2, a3, a4, a5, a6); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiiiii(index, a1, a2, a3, a4, a5, a6, a7) { - var sp = stackSave(); - try { - return dynCall_iiiiiiii(index, a1, a2, a3, a4, a5, a6, a7); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_vij(index, a1, a2) { - var sp = stackSave(); - try { - dynCall_vij(index, a1, a2); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iij(index, a1, a2) { - var sp = stackSave(); - try { - return dynCall_iij(index, a1, a2); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_di(index, a1) { - var sp = stackSave(); - try { - return dynCall_di(index, a1); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_ji(index, a1) { - var sp = stackSave(); - try { - return dynCall_ji(index, a1); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - return 0n; - } -} -function invoke_iid(index, a1, a2) { - var sp = stackSave(); - try { - return dynCall_iid(index, a1, a2); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_vid(index, a1, a2) { - var sp = stackSave(); - try { - dynCall_vid(index, a1, a2); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_viiijj(index, a1, a2, a3, a4, a5) { - var sp = stackSave(); - try { - dynCall_viiijj(index, a1, a2, a3, a4, a5); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_viiiijj(index, a1, a2, a3, a4, a5, a6) { - var sp = stackSave(); - try { - dynCall_viiiijj(index, a1, a2, a3, a4, a5, a6); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_vjjiii(index, a1, a2, a3, a4, a5) { - var sp = stackSave(); - try { - dynCall_vjjiii(index, a1, a2, a3, a4, a5); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiiijii(index, a1, a2, a3, a4, a5, a6, a7, a8) { - var sp = stackSave(); - try { - return dynCall_iiiiiijii(index, a1, a2, a3, a4, a5, a6, a7, a8); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iifff(index, a1, a2, a3, a4) { - var sp = stackSave(); - try { - return dynCall_iifff(index, a1, a2, a3, a4); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiffiiii(index, a1, a2, a3, a4, a5, a6, a7, a8) { - var sp = stackSave(); - try { - return dynCall_iiiffiiii(index, a1, a2, a3, a4, a5, a6, a7, a8); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_jii(index, a1, a2) { - var sp = stackSave(); - try { - return dynCall_jii(index, a1, a2); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - return 0n; - } -} -function invoke_fiii(index, a1, a2, a3) { - var sp = stackSave(); - try { - return dynCall_fiii(index, a1, a2, a3); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_viiij(index, a1, a2, a3, a4) { - var sp = stackSave(); - try { - dynCall_viiij(index, a1, a2, a3, a4); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8) { - var sp = stackSave(); - try { - return dynCall_iiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiji(index, a1, a2, a3, a4) { - var sp = stackSave(); - try { - return dynCall_iiiji(index, a1, a2, a3, a4); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiiiiiiiiiii( - index, - a1, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10, - a11, - a12, - a13 -) { - var sp = stackSave(); - try { - return dynCall_iiiiiiiiiiiiii( - index, - a1, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10, - a11, - a12, - a13 - ); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9) { - var sp = stackSave(); - try { - return dynCall_iiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiiiiiiiiiiiiiiii( - index, - a1, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10, - a11, - a12, - a13, - a14, - a15, - a16, - a17, - a18 -) { - var sp = stackSave(); - try { - return dynCall_iiiiiiiiiiiiiiiiiii( - index, - a1, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10, - a11, - a12, - a13, - a14, - a15, - a16, - a17, - a18 - ); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiiiiiiiiiiii( - index, - a1, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10, - a11, - a12, - a13, - a14 -) { - var sp = stackSave(); - try { - return dynCall_iiiiiiiiiiiiiii( - index, - a1, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10, - a11, - a12, - a13, - a14 - ); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiif(index, a1, a2, a3) { - var sp = stackSave(); - try { - return dynCall_iiif(index, a1, a2, a3); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) { - var sp = stackSave(); - try { - return dynCall_iiiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_viijj(index, a1, a2, a3, a4) { - var sp = stackSave(); - try { - dynCall_viijj(index, a1, a2, a3, a4); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiijj(index, a1, a2, a3, a4) { - var sp = stackSave(); - try { - return dynCall_iiijj(index, a1, a2, a3, a4); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiijjjj(index, a1, a2, a3, a4, a5, a6) { - var sp = stackSave(); - try { - return dynCall_iiijjjj(index, a1, a2, a3, a4, a5, a6); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiiiiiiffffffi( - index, - a1, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10, - a11, - a12, - a13, - a14, - a15 -) { - var sp = stackSave(); - try { - return dynCall_iiiiiiiiiffffffi( - index, - a1, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10, - a11, - a12, - a13, - a14, - a15 - ); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_i(index) { - var sp = stackSave(); - try { - return dynCall_i(index); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiij(index, a1, a2, a3) { - var sp = stackSave(); - try { - return dynCall_iiij(index, a1, a2, a3); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_ifi(index, a1, a2) { - var sp = stackSave(); - try { - return dynCall_ifi(index, a1, a2); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiff(index, a1, a2, a3, a4, a5) { - var sp = stackSave(); - try { - return dynCall_iiiiff(index, a1, a2, a3, a4, a5); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_viiiijjji(index, a1, a2, a3, a4, a5, a6, a7, a8) { - var sp = stackSave(); - try { - dynCall_viiiijjji(index, a1, a2, a3, a4, a5, a6, a7, a8); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiiiiiiifi( - index, - a1, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10, - a11 -) { - var sp = stackSave(); - try { - return dynCall_iiiiiiiiiifi( - index, - a1, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10, - a11 - ); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiiiiiiiiijjiifiiiiiii( - index, - a1, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10, - a11, - a12, - a13, - a14, - a15, - a16, - a17, - a18, - a19, - a20, - a21, - a22, - a23 -) { - var sp = stackSave(); - try { - return dynCall_iiiiiiiiiiiijjiifiiiiiii( - index, - a1, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10, - a11, - a12, - a13, - a14, - a15, - a16, - a17, - a18, - a19, - a20, - a21, - a22, - a23 - ); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiiiiiiiiiiiii( - index, - a1, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10, - a11, - a12, - a13, - a14, - a15 -) { - var sp = stackSave(); - try { - return dynCall_iiiiiiiiiiiiiiii( - index, - a1, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10, - a11, - a12, - a13, - a14, - a15 - ); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiijjj(index, a1, a2, a3, a4, a5) { - var sp = stackSave(); - try { - return dynCall_iiijjj(index, a1, a2, a3, a4, a5); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiiiiiifi(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) { - var sp = stackSave(); - try { - return dynCall_iiiiiiiiifi(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiff(index, a1, a2, a3, a4) { - var sp = stackSave(); - try { - return dynCall_iiiff(index, a1, a2, a3, a4); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiiiji(index, a1, a2, a3, a4, a5, a6, a7) { - var sp = stackSave(); - try { - return dynCall_iiiiiiji(index, a1, a2, a3, a4, a5, a6, a7); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiijiiijjjjjjj( - index, - a1, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10, - a11, - a12, - a13, - a14, - a15 -) { - var sp = stackSave(); - try { - return dynCall_iiiiijiiijjjjjjj( - index, - a1, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10, - a11, - a12, - a13, - a14, - a15 - ); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiijji(index, a1, a2, a3, a4, a5, a6, a7) { - var sp = stackSave(); - try { - return dynCall_iiiiijji(index, a1, a2, a3, a4, a5, a6, a7); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiiiiiiiii( - index, - a1, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10, - a11 -) { - var sp = stackSave(); - try { - return dynCall_iiiiiiiiiiii( - index, - a1, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10, - a11 - ); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_dii(index, a1, a2) { - var sp = stackSave(); - try { - return dynCall_dii(index, a1, a2); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_viiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) { - var sp = stackSave(); - try { - dynCall_viiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiijiiii(index, a1, a2, a3, a4, a5, a6, a7) { - var sp = stackSave(); - try { - return dynCall_iiijiiii(index, a1, a2, a3, a4, a5, a6, a7); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiiifi(index, a1, a2, a3, a4, a5, a6, a7) { - var sp = stackSave(); - try { - return dynCall_iiiiiifi(index, a1, a2, a3, a4, a5, a6, a7); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiiiiifii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) { - var sp = stackSave(); - try { - return dynCall_iiiiiiiifii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_vj(index, a1) { - var sp = stackSave(); - try { - dynCall_vj(index, a1); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_viijijj(index, a1, a2, a3, a4, a5, a6) { - var sp = stackSave(); - try { - dynCall_viijijj(index, a1, a2, a3, a4, a5, a6); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_viijii(index, a1, a2, a3, a4, a5) { - var sp = stackSave(); - try { - dynCall_viijii(index, a1, a2, a3, a4, a5); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_viiiij(index, a1, a2, a3, a4, a5) { - var sp = stackSave(); - try { - dynCall_viiiij(index, a1, a2, a3, a4, a5); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiid(index, a1, a2, a3) { - var sp = stackSave(); - try { - return dynCall_iiid(index, a1, a2, a3); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_j(index) { - var sp = stackSave(); - try { - return dynCall_j(index); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - return 0n; - } -} -function invoke_iiiij(index, a1, a2, a3, a4) { - var sp = stackSave(); - try { - return dynCall_iiiij(index, a1, a2, a3, a4); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiij(index, a1, a2, a3, a4, a5) { - var sp = stackSave(); - try { - return dynCall_iiiiij(index, a1, a2, a3, a4, a5); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_viij(index, a1, a2, a3) { - var sp = stackSave(); - try { - dynCall_viij(index, a1, a2, a3); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_iiiiid(index, a1, a2, a3, a4, a5) { - var sp = stackSave(); - try { - return dynCall_iiiiid(index, a1, a2, a3, a4, a5); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_jiiii(index, a1, a2, a3, a4) { - var sp = stackSave(); - try { - return dynCall_jiiii(index, a1, a2, a3, a4); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - return 0n; - } -} -function invoke_diii(index, a1, a2, a3) { - var sp = stackSave(); - try { - return dynCall_diii(index, a1, a2, a3); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_viiiiiiiiiiiiiii( - index, - a1, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10, - a11, - a12, - a13, - a14, - a15 -) { - var sp = stackSave(); - try { - dynCall_viiiiiiiiiiiiiii( - index, - a1, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10, - a11, - a12, - a13, - a14, - a15 - ); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_viif(index, a1, a2, a3) { - var sp = stackSave(); - try { - dynCall_viif(index, a1, a2, a3); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function invoke_viid(index, a1, a2, a3) { - var sp = stackSave(); - try { - dynCall_viid(index, a1, a2, a3); - } catch (e) { - stackRestore(sp); - if (e !== e + 0) throw e; - _setThrew(1, 0); - } -} -function applySignatureConversions(wasmExports) { - wasmExports = Object.assign({}, wasmExports); - var makeWrapper_pp = (f) => (a0) => f(a0) >>> 0; - var makeWrapper_p = (f) => () => f() >>> 0; - var makeWrapper_ppp = (f) => (a0, a1) => f(a0, a1) >>> 0; - wasmExports['fc'] = makeWrapper_pp(wasmExports['fc']); - wasmExports['Uc'] = makeWrapper_p(wasmExports['Uc']); - wasmExports['Vc'] = makeWrapper_ppp(wasmExports['Vc']); - wasmExports['dd'] = makeWrapper_ppp(wasmExports['dd']); - wasmExports['id'] = makeWrapper_pp(wasmExports['id']); - wasmExports['jd'] = makeWrapper_p(wasmExports['jd']); - wasmExports['nd'] = makeWrapper_pp(wasmExports['nd']); - return wasmExports; -} -function callMain() { - var entryFunction = _main; - var argc = 0; - var argv = 0; - try { - var ret = entryFunction(argc, argv); - exitJS(ret, true); - return ret; - } catch (e) { - return handleException(e); - } -} -function run() { - if (runDependencies > 0) { - dependenciesFulfilled = run; - return; - } - if (ENVIRONMENT_IS_PTHREAD) { - initRuntime(); - return; - } - preRun(); - if (runDependencies > 0) { - dependenciesFulfilled = run; - return; - } - function doRun() { - Module['calledRun'] = true; - if (ABORT) return; - initRuntime(); - preMain(); - Module['onRuntimeInitialized']?.(); - var noInitialRun = Module['noInitialRun'] || false; - if (!noInitialRun) callMain(); - postRun(); - } - if (Module['setStatus']) { - Module['setStatus']('Running...'); - setTimeout(() => { - setTimeout(() => Module['setStatus'](''), 1); - doRun(); - }, 1); - } else { - doRun(); - } -} -var wasmExports; -if (!ENVIRONMENT_IS_PTHREAD) { - createWasm(); - run(); -} +var Module=typeof Module!="undefined"?Module:{};var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";var ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&self.name?.startsWith("em-pthread");if(ENVIRONMENT_IS_NODE){var worker_threads=require("worker_threads");global.Worker=worker_threads.Worker;ENVIRONMENT_IS_WORKER=!worker_threads.isMainThread;ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&worker_threads["workerData"]=="em-pthread"}var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=globalThis.document?.currentScript?.src;if(typeof __filename!="undefined"){_scriptName=__filename}else if(ENVIRONMENT_IS_WORKER){_scriptName=self.location.href}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");scriptDirectory=__dirname+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module}quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}if(!ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var defaultPrint=console.log.bind(console);var defaultPrintErr=console.error.bind(console);if(ENVIRONMENT_IS_NODE){var utils=require("util");var stringify=a=>typeof a=="object"?utils.inspect(a):a;defaultPrint=(...args)=>fs.writeSync(1,args.map(stringify).join(" ")+"\n");defaultPrintErr=(...args)=>fs.writeSync(2,args.map(stringify).join(" ")+"\n")}var out=defaultPrint;var err=defaultPrintErr;var wasmBinary;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var isFileURI=filename=>filename.startsWith("file://");function growMemViews(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}}if(ENVIRONMENT_IS_NODE&&ENVIRONMENT_IS_PTHREAD){var parentPort=worker_threads["parentPort"];parentPort.on("message",msg=>global.onmessage?.({data:msg}));Object.assign(globalThis,{self:global,postMessage:msg=>parentPort["postMessage"](msg)});process.on("uncaughtException",err=>{postMessage({cmd:"uncaughtException",error:err});process.exit(1)})}var startWorker;if(ENVIRONMENT_IS_PTHREAD){var initializedJS=false;self.onunhandledrejection=e=>{throw e.reason||e};function handleMessage(e){try{var msgData=e["data"];var cmd=msgData.cmd;if(cmd==="load"){let messageQueue=[];self.onmessage=e=>messageQueue.push(e);startWorker=()=>{postMessage({cmd:"loaded"});for(let msg of messageQueue){handleMessage(msg)}self.onmessage=handleMessage};for(const handler of msgData.handlers){if(!Module[handler]||Module[handler].proxy){Module[handler]=(...args)=>{postMessage({cmd:"callHandler",handler,args})};if(handler=="print")out=Module[handler];if(handler=="printErr")err=Module[handler]}}wasmMemory=msgData.wasmMemory;updateMemoryViews();wasmModule=msgData.wasmModule;createWasm();run()}else if(cmd==="run"){establishStackSpace(msgData.pthread_ptr);__emscripten_thread_init(msgData.pthread_ptr,0,0,1,0,0);PThread.threadInitTLS();__emscripten_thread_mailbox_await(msgData.pthread_ptr);if(!initializedJS){initializedJS=true}try{invokeEntryPoint(msgData.start_routine,msgData.arg)}catch(ex){if(ex!="unwind"){throw ex}}}else if(msgData.target==="setimmediate"){}else if(cmd==="checkMailbox"){if(initializedJS){checkMailbox()}}else if(cmd){err(`worker: received unknown command ${cmd}`);err(msgData)}}catch(ex){__emscripten_thread_crashed();throw ex}}self.onmessage=handleMessage}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function initMemory(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||134217728;wasmMemory=new WebAssembly.Memory({initial:INITIAL_MEMORY/65536,maximum:65536,shared:true})}updateMemoryViews()}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return startWorker();if(!Module["noFSInit"]&&!FS.initialized)FS.init();TTY.init();wasmExports["cc"]();FS.ignorePermissions=false}function preMain(){}function postRun(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var wasmBinaryFile;function findWasmBinary(){return locateFile("wllama.wasm")}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){assignWasmImports();var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmExports=applySignatureConversions(wasmExports);registerTLSInit(wasmExports["Nc"]);assignWasmExports(wasmExports);wasmModule=module;removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){return receiveInstance(result["instance"],result["module"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}if(ENVIRONMENT_IS_PTHREAD){var instance=new WebAssembly.Instance(wasmModule,getWasmImports());return receiveInstance(instance,wasmModule)}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var terminateWorker=worker=>{worker.terminate();worker.onmessage=e=>{}};var cleanupThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];PThread.returnWorkerToPool(worker)};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}};var addRunDependency=id=>{runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)};var spawnThread=threadParams=>{var worker=PThread.getNewWorker();if(!worker){return 6}PThread.runningWorkers.push(worker);PThread.pthreads[threadParams.pthread_ptr]=worker;worker.pthread_ptr=threadParams.pthread_ptr;var msg={cmd:"run",start_routine:threadParams.startRoutine,arg:threadParams.arg,pthread_ptr:threadParams.pthread_ptr};if(ENVIRONMENT_IS_NODE){worker.unref()}worker.postMessage(msg,threadParams.transferList);return 0};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var stackSave=()=>_emscripten_stack_get_current();var stackRestore=val=>__emscripten_stack_restore(val);var stackAlloc=sz=>__emscripten_stack_alloc(sz);var proxyToMainThread=(funcIndex,emAsmAddr,sync,...callArgs)=>{var serializedNumCallArgs=callArgs.length*2;var sp=stackSave();var args=stackAlloc(serializedNumCallArgs*8);var b=args>>>3;for(var i=0;i>>0]=1n;(growMemViews(),HEAP64)[b+2*i+1>>>0]=arg}else{(growMemViews(),HEAP64)[b+2*i>>>0]=0n;(growMemViews(),HEAPF64)[b+2*i+1>>>0]=arg}}var rtn=__emscripten_run_js_on_main_thread(funcIndex,emAsmAddr,serializedNumCallArgs,args,sync);stackRestore(sp);return rtn};function _proc_exit(code){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(0,0,1,code);EXITSTATUS=code;if(!keepRuntimeAlive()){PThread.terminateAllThreads();Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))}function exitOnMainThread(returnCode){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(1,0,0,returnCode);_exit(returnCode)}var exitJS=(status,implicit)=>{EXITSTATUS=status;if(ENVIRONMENT_IS_PTHREAD){exitOnMainThread(status);throw"unwind"}_proc_exit(status)};var _exit=exitJS;var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init(){if(!ENVIRONMENT_IS_PTHREAD){PThread.initMainThread()}},initMainThread(){var pthreadPoolSize=Module["pthreadPoolSize"];while(pthreadPoolSize--){PThread.allocateUnusedWorker()}addOnPreRun(async()=>{var pthreadPoolReady=PThread.loadWasmModuleToAllWorkers();addRunDependency("loading-workers");await pthreadPoolReady;removeRunDependency("loading-workers")})},terminateAllThreads:()=>{for(var worker of PThread.runningWorkers){terminateWorker(worker)}for(var worker of PThread.unusedWorkers){terminateWorker(worker)}PThread.unusedWorkers=[];PThread.runningWorkers=[];PThread.pthreads={}},returnWorkerToPool:worker=>{var pthread_ptr=worker.pthread_ptr;delete PThread.pthreads[pthread_ptr];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);worker.pthread_ptr=0;__emscripten_thread_free_data(pthread_ptr)},threadInitTLS(){PThread.tlsInitFunctions.forEach(f=>f())},loadWasmModuleToWorker:worker=>new Promise(onFinishedLoading=>{worker.onmessage=e=>{var d=e["data"];var cmd=d.cmd;if(d.targetThread&&d.targetThread!=_pthread_self()){var targetWorker=PThread.pthreads[d.targetThread];if(targetWorker){targetWorker.postMessage(d,d.transferList)}else{err(`Internal error! Worker sent a message "${cmd}" to target pthread ${d.targetThread}, but that thread no longer exists!`)}return}if(cmd==="checkMailbox"){checkMailbox()}else if(cmd==="spawnThread"){spawnThread(d)}else if(cmd==="cleanupThread"){callUserCallback(()=>cleanupThread(d.thread))}else if(cmd==="loaded"){worker.loaded=true;if(ENVIRONMENT_IS_NODE&&!worker.pthread_ptr){worker.unref()}onFinishedLoading(worker)}else if(d.target==="setimmediate"){worker.postMessage(d)}else if(cmd==="uncaughtException"){worker.onerror(d.error)}else if(cmd==="callHandler"){Module[d.handler](...d.args)}else if(cmd){err(`worker sent an unknown command ${cmd}`)}};worker.onerror=e=>{var message="worker sent an error!";err(`${message} ${e.filename}:${e.lineno}: ${e.message}`);throw e};if(ENVIRONMENT_IS_NODE){worker.on("message",data=>worker.onmessage({data}));worker.on("error",e=>worker.onerror(e))}var handlers=[];var knownHandlers=["onExit","onAbort","print","printErr"];for(var handler of knownHandlers){if(Module.propertyIsEnumerable(handler)){handlers.push(handler)}}worker.postMessage({cmd:"load",handlers,wasmMemory,wasmModule})}),async loadWasmModuleToAllWorkers(){if(ENVIRONMENT_IS_PTHREAD){return}let pthreadPoolReady=Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker));return pthreadPoolReady},allocateUnusedWorker(){var worker;var pthreadMainJs=_scriptName;if(Module["mainScriptUrlOrBlob"]){pthreadMainJs=Module["mainScriptUrlOrBlob"];if(typeof pthreadMainJs!="string"){pthreadMainJs=URL.createObjectURL(pthreadMainJs)}}worker=new Worker(pthreadMainJs,{workerData:"em-pthread",name:"em-pthread"});PThread.unusedWorkers.push(worker)},getNewWorker(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var dynCalls={};function establishStackSpace(pthread_ptr){var stackHigh=(growMemViews(),HEAPU32)[pthread_ptr+52>>>2>>>0];var stackSize=(growMemViews(),HEAPU32)[pthread_ptr+56>>>2>>>0];var stackLow=stackHigh-stackSize;_emscripten_stack_set_limits(stackHigh,stackLow);stackRestore(stackHigh)}var invokeEntryPoint=(ptr,arg)=>{runtimeKeepaliveCounter=0;noExitRuntime=0;var result=(a1=>dynCall_ii(ptr,a1))(arg);function finish(result){if(keepRuntimeAlive()){EXITSTATUS=result;return}__emscripten_thread_exit(result)}finish(result)};invokeEntryPoint.isAsync=true;var noExitRuntime=true;var registerTLSInit=tlsInitFunc=>PThread.tlsInitFunctions.push(tlsInitFunc);var wasmMemory;var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>numINT53_MAX?NaN:Number(num);var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{idx>>>=0;var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.buffer instanceof ArrayBuffer?heapOrArray.subarray(idx,endPtr):heapOrArray.slice(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>{ptr>>>=0;return ptr?UTF8ArrayToString((growMemViews(),HEAPU8),ptr,maxBytesToRead,ignoreNul):""};var exceptionCaught=[];var uncaughtExceptionCount=0;function ___cxa_begin_catch(ptr){ptr>>>=0;var info=new ExceptionInfo(ptr);if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(info);___cxa_increment_exception_refcount(ptr);return ___cxa_get_exception_ptr(ptr)}function ___cxa_current_primary_exception(){if(!exceptionCaught.length){return 0}var info=exceptionCaught[exceptionCaught.length-1];___cxa_increment_exception_refcount(info.excPtr);return info.excPtr}var exceptionLast=0;var ___cxa_end_catch=()=>{_setThrew(0,0);var info=exceptionCaught.pop();___cxa_decrement_exception_refcount(info.excPtr);exceptionLast=0};class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){(growMemViews(),HEAPU32)[this.ptr+4>>>2>>>0]=type}get_type(){return(growMemViews(),HEAPU32)[this.ptr+4>>>2>>>0]}set_destructor(destructor){(growMemViews(),HEAPU32)[this.ptr+8>>>2>>>0]=destructor}get_destructor(){return(growMemViews(),HEAPU32)[this.ptr+8>>>2>>>0]}set_caught(caught){caught=caught?1:0;(growMemViews(),HEAP8)[this.ptr+12>>>0]=caught}get_caught(){return(growMemViews(),HEAP8)[this.ptr+12>>>0]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;(growMemViews(),HEAP8)[this.ptr+13>>>0]=rethrown}get_rethrown(){return(growMemViews(),HEAP8)[this.ptr+13>>>0]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){(growMemViews(),HEAPU32)[this.ptr+16>>>2>>>0]=adjustedPtr}get_adjusted_ptr(){return(growMemViews(),HEAPU32)[this.ptr+16>>>2>>>0]}}var setTempRet0=val=>__emscripten_tempret_set(val);var findMatchingCatch=args=>{var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0}var info=new ExceptionInfo(thrown);info.set_adjusted_ptr(thrown);var thrownType=info.get_type();if(!thrownType){setTempRet0(0);return thrown}for(var caughtType of args){if(caughtType===0||caughtType===thrownType){break}var adjusted_ptr_addr=info.ptr+16;if(___cxa_can_catch(caughtType,thrownType,adjusted_ptr_addr)){setTempRet0(caughtType);return thrown}}setTempRet0(thrownType);return thrown};function ___cxa_find_matching_catch_2(){return findMatchingCatch([])}function ___cxa_find_matching_catch_3(arg0){arg0>>>=0;return findMatchingCatch([arg0])}function ___cxa_find_matching_catch_4(arg0,arg1){arg0>>>=0;arg1>>>=0;return findMatchingCatch([arg0,arg1])}function ___cxa_find_matching_catch_7(arg0,arg1,arg2,arg3,arg4){arg0>>>=0;arg1>>>=0;arg2>>>=0;arg3>>>=0;arg4>>>=0;return findMatchingCatch([arg0,arg1,arg2,arg3,arg4])}var ___cxa_rethrow=()=>{var info=exceptionCaught.pop();if(!info){abort("no exception to throw")}var ptr=info.excPtr;if(!info.get_rethrown()){exceptionCaught.push(info);info.set_rethrown(true);info.set_caught(false);uncaughtExceptionCount++}exceptionLast=ptr;throw exceptionLast};function ___cxa_rethrow_primary_exception(ptr){ptr>>>=0;if(!ptr)return;var info=new ExceptionInfo(ptr);exceptionCaught.push(info);info.set_rethrown(true);___cxa_rethrow()}function ___cxa_throw(ptr,type,destructor){ptr>>>=0;type>>>=0;destructor>>>=0;var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast}var ___cxa_uncaught_exceptions=()=>uncaughtExceptionCount;function pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(2,0,1,pthread_ptr,attr,startRoutine,arg);return ___pthread_create_js(pthread_ptr,attr,startRoutine,arg)}var _emscripten_has_threading_support=()=>!!globalThis.SharedArrayBuffer;function ___pthread_create_js(pthread_ptr,attr,startRoutine,arg){pthread_ptr>>>=0;attr>>>=0;startRoutine>>>=0;arg>>>=0;if(!_emscripten_has_threading_support()){return 6}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg)}if(error)return error;var threadParams={startRoutine,pthread_ptr,arg,transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function ___resumeException(ptr){ptr>>>=0;if(!exceptionLast){exceptionLast=ptr}throw exceptionLast}var syscallGetVarargI=()=>{var ret=(growMemViews(),HEAP32)[+SYSCALLS.varargs>>>2>>>0];SYSCALLS.varargs+=4;return ret};var syscallGetVarargP=syscallGetVarargI;var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\/]+|\/)\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(ENVIRONMENT_IS_NODE){var nodeCrypto=require("crypto");return view=>nodeCrypto.randomFillSync(view)}return view=>view.set(crypto.getRandomValues(new Uint8Array(view.byteLength)))};var randomFill=view=>{(randomFill=initRandomFill())(view)};var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{outIdx>>>=0;if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=endIdx)break;heap[outIdx++>>>0]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++>>>0]=192|u>>6;heap[outIdx++>>>0]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++>>>0]=224|u>>12;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++>>>0]=240|u>>18;heap[outIdx++>>>0]=128|u>>12&63;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63;i++}}heap[outIdx>>>0]=0;return outIdx-startIdx};var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}}else if(globalThis.window?.prompt){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var zeroMemory=(ptr,size)=>(growMemViews(),HEAPU8).fill(0,ptr,ptr+size);var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(ptr)zeroMemory(ptr,size);return ptr};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of["mode","atime","mtime","ctime"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){if(!MEMFS.doesNotExistError){MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack=""}throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[".","..",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length>>0)}}return{ptr,allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var FS_modeStringToFlags=str=>{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var getUniqueRunDependency=id=>id;var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!="undefined")Browser.init();for(var plugin of preloadPlugins){if(plugin["canHandle"](fullname)){return plugin["handle"](byteArray,fullname)}}return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);addRunDependency(dep);try{var byteArray=url;if(typeof url=="string"){byteArray=await asyncLoad(url)}byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}}finally{removeRunDependency(dep)}};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+"/"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&(512|64)){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}for(var mount of mounts){if(mount.type.syncfs){mount.type.syncfs(mount,populate,done)}else{done(null)}}},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);for(var[hash,current]of Object.entries(FS.nameTable)){while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}}node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name==="."||name===".."){throw new FS.ErrnoError(20)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+="/";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path=="object"){node=path}else{isDirPath=path.endsWith("/");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}if(Module["logReadFiles"]&&!(flags&1)){if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){abort(`Invalid encoding type "${opts.encoding}"`)}var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){buf=UTF8ArrayToString(buf)}FS.close(stream);return buf},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){data=new Uint8Array(intArrayFromString(data,true))}if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{abort("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},"/proc/self/fd")},createStandardStreams(input,output,error){if(input){FS.createDevice("/dev","stdin",input)}else{FS.symlink("/dev/tty","/dev/stdin")}if(output){FS.createDevice("/dev","stdout",null,output)}else{FS.symlink("/dev/tty","/dev/stdout")}if(error){FS.createDevice("/dev","stderr",null,error)}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){FS.initialized=true;input??=Module["stdin"];output??=Module["stdout"];error??=Module["stderr"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)abort("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)abort("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")abort("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(globalThis.XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)abort("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};for(const[key,fn]of Object.entries(node.stream_ops)){stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}}function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,(growMemViews(),HEAP8),ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+"/"+path},writeStat(buf,stat){(growMemViews(),HEAPU32)[buf>>>2>>>0]=stat.dev;(growMemViews(),HEAPU32)[buf+4>>>2>>>0]=stat.mode;(growMemViews(),HEAPU32)[buf+8>>>2>>>0]=stat.nlink;(growMemViews(),HEAPU32)[buf+12>>>2>>>0]=stat.uid;(growMemViews(),HEAPU32)[buf+16>>>2>>>0]=stat.gid;(growMemViews(),HEAPU32)[buf+20>>>2>>>0]=stat.rdev;(growMemViews(),HEAP64)[buf+24>>>3>>>0]=BigInt(stat.size);(growMemViews(),HEAP32)[buf+32>>>2>>>0]=4096;(growMemViews(),HEAP32)[buf+36>>>2>>>0]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();(growMemViews(),HEAP64)[buf+40>>>3>>>0]=BigInt(Math.floor(atime/1e3));(growMemViews(),HEAPU32)[buf+48>>>2>>>0]=atime%1e3*1e3*1e3;(growMemViews(),HEAP64)[buf+56>>>3>>>0]=BigInt(Math.floor(mtime/1e3));(growMemViews(),HEAPU32)[buf+64>>>2>>>0]=mtime%1e3*1e3*1e3;(growMemViews(),HEAP64)[buf+72>>>3>>>0]=BigInt(Math.floor(ctime/1e3));(growMemViews(),HEAPU32)[buf+80>>>2>>>0]=ctime%1e3*1e3*1e3;(growMemViews(),HEAP64)[buf+88>>>3>>>0]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){(growMemViews(),HEAPU32)[buf+4>>>2>>>0]=stats.bsize;(growMemViews(),HEAPU32)[buf+60>>>2>>>0]=stats.bsize;(growMemViews(),HEAP64)[buf+8>>>3>>>0]=BigInt(stats.blocks);(growMemViews(),HEAP64)[buf+16>>>3>>>0]=BigInt(stats.bfree);(growMemViews(),HEAP64)[buf+24>>>3>>>0]=BigInt(stats.bavail);(growMemViews(),HEAP64)[buf+32>>>3>>>0]=BigInt(stats.files);(growMemViews(),HEAP64)[buf+40>>>3>>>0]=BigInt(stats.ffree);(growMemViews(),HEAPU32)[buf+48>>>2>>>0]=stats.fsid;(growMemViews(),HEAPU32)[buf+64>>>2>>>0]=stats.flags;(growMemViews(),HEAPU32)[buf+56>>>2>>>0]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=(growMemViews(),HEAPU8).slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(3,0,1,fd,cmd,varargs);varargs>>>=0;SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;(growMemViews(),HEAP16)[arg+offset>>>1>>>0]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(4,0,1,fd,buf);buf>>>=0;try{return SYSCALLS.writeStat(buf,FS.fstat(fd))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,(growMemViews(),HEAPU8),outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(5,0,1,buf,size);buf>>>=0;size>>>=0;try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(size>>=0;count>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);stream.getdents||=FS.readdir(stream.path);var struct_size=280;var pos=0;var off=FS.llseek(stream,0,1);var startIdx=Math.floor(off/struct_size);var endIdx=Math.min(stream.getdents.length,startIdx+Math.floor(count/struct_size));for(var idx=startIdx;idx>>3>>>0]=BigInt(id);(growMemViews(),HEAP64)[dirp+pos+8>>>3>>>0]=BigInt((idx+1)*struct_size);(growMemViews(),HEAP16)[dirp+pos+16>>>1>>>0]=280;(growMemViews(),HEAP8)[dirp+pos+18>>>0]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(7,0,1,fd,op,varargs);varargs>>>=0;SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();(growMemViews(),HEAP32)[argp>>>2>>>0]=termios.c_iflag||0;(growMemViews(),HEAP32)[argp+4>>>2>>>0]=termios.c_oflag||0;(growMemViews(),HEAP32)[argp+8>>>2>>>0]=termios.c_cflag||0;(growMemViews(),HEAP32)[argp+12>>>2>>>0]=termios.c_lflag||0;for(var i=0;i<32;i++){(growMemViews(),HEAP8)[argp+i+17>>>0]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=syscallGetVarargP();var c_iflag=(growMemViews(),HEAP32)[argp>>>2>>>0];var c_oflag=(growMemViews(),HEAP32)[argp+4>>>2>>>0];var c_cflag=(growMemViews(),HEAP32)[argp+8>>>2>>>0];var c_lflag=(growMemViews(),HEAP32)[argp+12>>>2>>>0];var c_cc=[];for(var i=0;i<32;i++){c_cc.push((growMemViews(),HEAP8)[argp+i+17>>>0])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag,c_oflag,c_cflag,c_lflag,c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=syscallGetVarargP();(growMemViews(),HEAP32)[argp>>>2>>>0]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21537:case 21531:{var argp=syscallGetVarargP();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=syscallGetVarargP();(growMemViews(),HEAP16)[argp>>>1>>>0]=winsize[0];(growMemViews(),HEAP16)[argp+2>>>1>>>0]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_lstat64(path,buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(8,0,1,path,buf);path>>>=0;buf>>>=0;try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.lstat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(9,0,1,dirfd,path,buf,flags);path>>>=0;buf>>>=0;try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.writeStat(buf,nofollow?FS.lstat(path):FS.stat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(10,0,1,dirfd,path,flags,varargs);path>>>=0;varargs>>>=0;SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(11,0,1,path,buf);path>>>=0;buf>>>=0;try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.stat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __abort_js=()=>abort("");function __emscripten_init_main_thread_js(tb){tb>>>=0;__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1,!ENVIRONMENT_IS_WEB,65536,false);PThread.threadInitTLS()}var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var maybeExit=()=>{if(!keepRuntimeAlive()){try{if(ENVIRONMENT_IS_PTHREAD){if(_pthread_self())__emscripten_thread_exit(EXITSTATUS);return}_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};function __emscripten_thread_mailbox_await(pthread_ptr){pthread_ptr>>>=0;if(Atomics.waitAsync){var wait=Atomics.waitAsync((growMemViews(),HEAP32),pthread_ptr>>>2,pthread_ptr);wait.value.then(checkMailbox);var waitingAsync=pthread_ptr+128;Atomics.store((growMemViews(),HEAP32),waitingAsync>>>2,1)}}var checkMailbox=()=>callUserCallback(()=>{var pthread_ptr=_pthread_self();if(pthread_ptr){__emscripten_thread_mailbox_await(pthread_ptr);__emscripten_check_mailbox()}});function __emscripten_notify_mailbox_postmessage(targetThread,currThreadId){targetThread>>>=0;currThreadId>>>=0;if(targetThread==currThreadId){setTimeout(checkMailbox)}else if(ENVIRONMENT_IS_PTHREAD){postMessage({targetThread,cmd:"checkMailbox"})}else{var worker=PThread.pthreads[targetThread];if(!worker){return}worker.postMessage({cmd:"checkMailbox"})}}var proxiedJSCallArgs=[];function __emscripten_receive_on_main_thread_js(funcIndex,emAsmAddr,callingThread,numCallArgs,args){emAsmAddr>>>=0;callingThread>>>=0;args>>>=0;numCallArgs/=2;proxiedJSCallArgs.length=numCallArgs;var b=args>>>3;for(var i=0;i>>0]){proxiedJSCallArgs[i]=(growMemViews(),HEAP64)[b+2*i+1>>>0]}else{proxiedJSCallArgs[i]=(growMemViews(),HEAPF64)[b+2*i+1>>>0]}}var func=proxiedFunctionTable[funcIndex];PThread.currentProxiedOperationCallerThread=callingThread;var rtn=func(...proxiedJSCallArgs);PThread.currentProxiedOperationCallerThread=0;return rtn}var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};function __emscripten_thread_cleanup(thread){thread>>>=0;if(!ENVIRONMENT_IS_PTHREAD)cleanupThread(thread);else postMessage({cmd:"cleanupThread",thread})}function __emscripten_thread_set_strongref(thread){thread>>>=0;if(ENVIRONMENT_IS_NODE){PThread.pthreads[thread].ref()}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time,tmPtr){time=bigintToI53Checked(time);tmPtr>>>=0;var date=new Date(time*1e3);(growMemViews(),HEAP32)[tmPtr>>>2>>>0]=date.getSeconds();(growMemViews(),HEAP32)[tmPtr+4>>>2>>>0]=date.getMinutes();(growMemViews(),HEAP32)[tmPtr+8>>>2>>>0]=date.getHours();(growMemViews(),HEAP32)[tmPtr+12>>>2>>>0]=date.getDate();(growMemViews(),HEAP32)[tmPtr+16>>>2>>>0]=date.getMonth();(growMemViews(),HEAP32)[tmPtr+20>>>2>>>0]=date.getFullYear()-1900;(growMemViews(),HEAP32)[tmPtr+24>>>2>>>0]=date.getDay();var yday=ydayFromDate(date)|0;(growMemViews(),HEAP32)[tmPtr+28>>>2>>>0]=yday;(growMemViews(),HEAP32)[tmPtr+36>>>2>>>0]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;(growMemViews(),HEAP32)[tmPtr+32>>>2>>>0]=dst}function __mmap_js(len,prot,flags,fd,offset,allocated,addr){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(12,0,1,len,prot,flags,fd,offset,allocated,addr);len>>>=0;offset=bigintToI53Checked(offset);allocated>>>=0;addr>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;(growMemViews(),HEAP32)[allocated>>>2>>>0]=res.allocated;(growMemViews(),HEAPU32)[addr>>>2>>>0]=ptr;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(13,0,1,addr,len,prot,flags,fd,offset);addr>>>=0;len>>>=0;offset=bigintToI53Checked(offset);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var timers={};var _emscripten_get_now=()=>performance.timeOrigin+performance.now();function __setitimer_js(which,timeout_ms){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(14,0,1,which,timeout_ms);if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0}var __tzset_js=function(timezone,daylight,std_name,dst_name){timezone>>>=0;daylight>>>=0;std_name>>>=0;dst_name>>>=0;var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);(growMemViews(),HEAPU32)[timezone>>>2>>>0]=stdTimezoneOffset*60;(growMemViews(),HEAP32)[daylight>>>2>>>0]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffsetDate.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);ptime>>>=0;if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);(growMemViews(),HEAP64)[ptime>>>3>>>0]=BigInt(nsec);return 0}var _emscripten_check_blocking_allowed=()=>{};var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};var _emscripten_exit_with_live_runtime=()=>{runtimeKeepalivePush();throw"unwind"};var getHeapMax=()=>4294901760;function _emscripten_get_heap_max(){return getHeapMax()}var _emscripten_has_asyncify=()=>1;var _emscripten_num_logical_cores=()=>ENVIRONMENT_IS_NODE?require("os").cpus().length:navigator["hardwareConcurrency"];var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};function _emscripten_resize_heap(requestedSize){requestedSize>>>=0;var oldSize=(growMemViews(),HEAPU8).length;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false}var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var writeI53ToI64=(ptr,num)=>{(growMemViews(),HEAPU32)[ptr>>>2>>>0]=num;var lower=(growMemViews(),HEAPU32)[ptr>>>2>>>0];(growMemViews(),HEAPU32)[ptr+4>>>2>>>0]=(num-lower)/4294967296};var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var readI53FromI64=ptr=>(growMemViews(),HEAPU32)[ptr>>>2>>>0]+(growMemViews(),HEAP32)[ptr+4>>>2>>>0]*4294967296;var WebGPU={Internals:{jsObjects:[],jsObjectInsert:(ptr,jsObject)=>{ptr>>>=0;WebGPU.Internals.jsObjects[ptr]=jsObject},bufferOnUnmaps:[],futures:[],futureInsert:(futureId,promise)=>{WebGPU.Internals.futures[futureId]=new Promise(resolve=>promise.finally(()=>resolve(futureId)))}},getJsObject:ptr=>{if(!ptr)return undefined;ptr>>>=0;return WebGPU.Internals.jsObjects[ptr]},importJsAdapter:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateAdapter(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroup:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroup(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroupLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroupLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBuffer:(buffer,parentPtr=0)=>{assert(buffer.mapState==="unmapped");var bufferPtr=_emwgpuCreateBuffer(parentPtr);WebGPU.Internals.jsObjectInsert(bufferPtr,buffer);return bufferPtr},importJsCommandBuffer:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandBuffer(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsCommandEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsDevice:(device,parentPtr=0)=>{var queuePtr=_emwgpuCreateQueue(parentPtr);var devicePtr=_emwgpuCreateDevice(parentPtr,queuePtr);WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);return devicePtr},importJsExternalTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateExternalTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsPipelineLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreatePipelineLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQuerySet:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQuerySet(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQueue:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQueue(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundle:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundle(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundleEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundleEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSampler:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSampler(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsShaderModule:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateShaderModule(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSurface:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSurface(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTextureView:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTextureView(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},errorCallback:(callback,type,message,userdata)=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(message);((a1,a2,a3)=>dynCall_viii(callback,a1,a2,a3))(type,messagePtr,userdata);stackRestore(sp)},iterateExtensions:(root,handlers)=>{for(var ptr=(growMemViews(),HEAPU32)[root>>>2>>>0];ptr;ptr=(growMemViews(),HEAPU32)[ptr>>>2>>>0]){var sType=(growMemViews(),HEAP32)[ptr+4>>>2>>>0];var handler=handlers[sType](ptr)}},setStringView:(ptr,data,length)=>{(growMemViews(),HEAPU32)[ptr>>>2>>>0]=data;(growMemViews(),HEAPU32)[ptr+4>>>2>>>0]=length},makeStringFromStringView:stringViewPtr=>{var ptr=(growMemViews(),HEAPU32)[stringViewPtr>>>2>>>0];var length=(growMemViews(),HEAPU32)[stringViewPtr+4>>>2>>>0];return UTF8ToString(ptr,length)},makeStringFromOptionalStringView:stringViewPtr=>{var ptr=(growMemViews(),HEAPU32)[stringViewPtr>>>2>>>0];var length=(growMemViews(),HEAPU32)[stringViewPtr+4>>>2>>>0];if(!ptr){if(length===0){return""}return undefined}return UTF8ToString(ptr,length)},makeColor:ptr=>({r:(growMemViews(),HEAPF64)[ptr>>>3>>>0],g:(growMemViews(),HEAPF64)[ptr+8>>>3>>>0],b:(growMemViews(),HEAPF64)[ptr+16>>>3>>>0],a:(growMemViews(),HEAPF64)[ptr+24>>>3>>>0]}),makeExtent3D:ptr=>({width:(growMemViews(),HEAPU32)[ptr>>>2>>>0],height:(growMemViews(),HEAPU32)[ptr+4>>>2>>>0],depthOrArrayLayers:(growMemViews(),HEAPU32)[ptr+8>>>2>>>0]}),makeOrigin3D:ptr=>({x:(growMemViews(),HEAPU32)[ptr>>>2>>>0],y:(growMemViews(),HEAPU32)[ptr+4>>>2>>>0],z:(growMemViews(),HEAPU32)[ptr+8>>>2>>>0]}),makeTexelCopyTextureInfo:ptr=>({texture:WebGPU.getJsObject((growMemViews(),HEAPU32)[ptr>>>2>>>0]),mipLevel:(growMemViews(),HEAPU32)[ptr+4>>>2>>>0],origin:WebGPU.makeOrigin3D(ptr+8),aspect:WebGPU.TextureAspect[(growMemViews(),HEAP32)[ptr+20>>>2>>>0]]}),makeTexelCopyBufferLayout:ptr=>{var bytesPerRow=(growMemViews(),HEAPU32)[ptr+8>>>2>>>0];var rowsPerImage=(growMemViews(),HEAPU32)[ptr+12>>>2>>>0];return{offset:readI53FromI64(ptr),bytesPerRow:bytesPerRow===4294967295?undefined:bytesPerRow,rowsPerImage:rowsPerImage===4294967295?undefined:rowsPerImage}},makeTexelCopyBufferInfo:ptr=>{var layoutPtr=ptr+0;var bufferCopyView=WebGPU.makeTexelCopyBufferLayout(layoutPtr);bufferCopyView["buffer"]=WebGPU.getJsObject((growMemViews(),HEAPU32)[ptr+16>>>2>>>0]);return bufferCopyView},makePassTimestampWrites:ptr=>{if(ptr===0)return undefined;return{querySet:WebGPU.getJsObject((growMemViews(),HEAPU32)[ptr+4>>>2>>>0]),beginningOfPassWriteIndex:(growMemViews(),HEAPU32)[ptr+8>>>2>>>0],endOfPassWriteIndex:(growMemViews(),HEAPU32)[ptr+12>>>2>>>0]}},makePipelineConstants:(constantCount,constantsPtr)=>{if(!constantCount)return;var constants={};for(var i=0;i>>3>>>0]}return constants},makePipelineLayout:layoutPtr=>{if(!layoutPtr)return"auto";return WebGPU.getJsObject(layoutPtr)},makeComputeState:ptr=>{if(!ptr)return undefined;var desc={module:WebGPU.getJsObject((growMemViews(),HEAPU32)[ptr+4>>>2>>>0]),constants:WebGPU.makePipelineConstants((growMemViews(),HEAPU32)[ptr+16>>>2>>>0],(growMemViews(),HEAPU32)[ptr+20>>>2>>>0]),entryPoint:WebGPU.makeStringFromOptionalStringView(ptr+8)};return desc},makeComputePipelineDesc:descriptor=>{var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),layout:WebGPU.makePipelineLayout((growMemViews(),HEAPU32)[descriptor+12>>>2>>>0]),compute:WebGPU.makeComputeState(descriptor+16)};return desc},makeRenderPipelineDesc:descriptor=>{function makePrimitiveState(psPtr){if(!psPtr)return undefined;return{topology:WebGPU.PrimitiveTopology[(growMemViews(),HEAP32)[psPtr+4>>>2>>>0]],stripIndexFormat:WebGPU.IndexFormat[(growMemViews(),HEAP32)[psPtr+8>>>2>>>0]],frontFace:WebGPU.FrontFace[(growMemViews(),HEAP32)[psPtr+12>>>2>>>0]],cullMode:WebGPU.CullMode[(growMemViews(),HEAP32)[psPtr+16>>>2>>>0]],unclippedDepth:!!(growMemViews(),HEAPU32)[psPtr+20>>>2>>>0]}}function makeBlendComponent(bdPtr){if(!bdPtr)return undefined;return{operation:WebGPU.BlendOperation[(growMemViews(),HEAP32)[bdPtr>>>2>>>0]],srcFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[bdPtr+4>>>2>>>0]],dstFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[bdPtr+8>>>2>>>0]]}}function makeBlendState(bsPtr){if(!bsPtr)return undefined;return{alpha:makeBlendComponent(bsPtr+12),color:makeBlendComponent(bsPtr+0)}}function makeColorState(csPtr){var format=WebGPU.TextureFormat[(growMemViews(),HEAP32)[csPtr+4>>>2>>>0]];return format?{format,blend:makeBlendState((growMemViews(),HEAPU32)[csPtr+8>>>2>>>0]),writeMask:(growMemViews(),HEAPU32)[csPtr+16>>>2>>>0]}:undefined}function makeColorStates(count,csArrayPtr){var states=[];for(var i=0;i>>2>>>0]],failOp:WebGPU.StencilOperation[(growMemViews(),HEAP32)[ssfPtr+4>>>2>>>0]],depthFailOp:WebGPU.StencilOperation[(growMemViews(),HEAP32)[ssfPtr+8>>>2>>>0]],passOp:WebGPU.StencilOperation[(growMemViews(),HEAP32)[ssfPtr+12>>>2>>>0]]}}function makeDepthStencilState(dssPtr){if(!dssPtr)return undefined;return{format:WebGPU.TextureFormat[(growMemViews(),HEAP32)[dssPtr+4>>>2>>>0]],depthWriteEnabled:!!(growMemViews(),HEAPU32)[dssPtr+8>>>2>>>0],depthCompare:WebGPU.CompareFunction[(growMemViews(),HEAP32)[dssPtr+12>>>2>>>0]],stencilFront:makeStencilStateFace(dssPtr+16),stencilBack:makeStencilStateFace(dssPtr+32),stencilReadMask:(growMemViews(),HEAPU32)[dssPtr+48>>>2>>>0],stencilWriteMask:(growMemViews(),HEAPU32)[dssPtr+52>>>2>>>0],depthBias:(growMemViews(),HEAP32)[dssPtr+56>>>2>>>0],depthBiasSlopeScale:(growMemViews(),HEAPF32)[dssPtr+60>>>2>>>0],depthBiasClamp:(growMemViews(),HEAPF32)[dssPtr+64>>>2>>>0]}}function makeVertexAttribute(vaPtr){return{format:WebGPU.VertexFormat[(growMemViews(),HEAP32)[vaPtr+4>>>2>>>0]],offset:readI53FromI64(vaPtr+8),shaderLocation:(growMemViews(),HEAPU32)[vaPtr+16>>>2>>>0]}}function makeVertexAttributes(count,vaArrayPtr){var vas=[];for(var i=0;i>>2>>>0]];var attributeCount=(growMemViews(),HEAPU32)[vbPtr+16>>>2>>>0];if(!stepMode&&!attributeCount){return null}return{arrayStride:readI53FromI64(vbPtr+8),stepMode,attributes:makeVertexAttributes(attributeCount,(growMemViews(),HEAPU32)[vbPtr+20>>>2>>>0])}}function makeVertexBuffers(count,vbArrayPtr){if(!count)return undefined;var vbs=[];for(var i=0;i>>2>>>0]),constants:WebGPU.makePipelineConstants((growMemViews(),HEAPU32)[viPtr+16>>>2>>>0],(growMemViews(),HEAPU32)[viPtr+20>>>2>>>0]),buffers:makeVertexBuffers((growMemViews(),HEAPU32)[viPtr+24>>>2>>>0],(growMemViews(),HEAPU32)[viPtr+28>>>2>>>0]),entryPoint:WebGPU.makeStringFromOptionalStringView(viPtr+8)};return desc}function makeMultisampleState(msPtr){if(!msPtr)return undefined;return{count:(growMemViews(),HEAPU32)[msPtr+4>>>2>>>0],mask:(growMemViews(),HEAPU32)[msPtr+8>>>2>>>0],alphaToCoverageEnabled:!!(growMemViews(),HEAPU32)[msPtr+12>>>2>>>0]}}function makeFragmentState(fsPtr){if(!fsPtr)return undefined;var desc={module:WebGPU.getJsObject((growMemViews(),HEAPU32)[fsPtr+4>>>2>>>0]),constants:WebGPU.makePipelineConstants((growMemViews(),HEAPU32)[fsPtr+16>>>2>>>0],(growMemViews(),HEAPU32)[fsPtr+20>>>2>>>0]),targets:makeColorStates((growMemViews(),HEAPU32)[fsPtr+24>>>2>>>0],(growMemViews(),HEAPU32)[fsPtr+28>>>2>>>0]),entryPoint:WebGPU.makeStringFromOptionalStringView(fsPtr+8)};return desc}var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),layout:WebGPU.makePipelineLayout((growMemViews(),HEAPU32)[descriptor+12>>>2>>>0]),vertex:makeVertexState(descriptor+16),primitive:makePrimitiveState(descriptor+48),depthStencil:makeDepthStencilState((growMemViews(),HEAPU32)[descriptor+72>>>2>>>0]),multisample:makeMultisampleState(descriptor+76),fragment:makeFragmentState((growMemViews(),HEAPU32)[descriptor+92>>>2>>>0])};return desc},fillLimitStruct:(limits,limitsOutPtr)=>{var nextInChainPtr=(growMemViews(),HEAPU32)[limitsOutPtr>>>2>>>0];function setLimitValueU32(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;(growMemViews(),HEAPU32)[basePtr+limitOffset>>>2>>>0]=limitValue}function setLimitValueU64(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;writeI53ToI64(basePtr+limitOffset,limitValue)}setLimitValueU32("maxTextureDimension1D",limitsOutPtr,4);setLimitValueU32("maxTextureDimension2D",limitsOutPtr,8);setLimitValueU32("maxTextureDimension3D",limitsOutPtr,12);setLimitValueU32("maxTextureArrayLayers",limitsOutPtr,16);setLimitValueU32("maxBindGroups",limitsOutPtr,20);setLimitValueU32("maxBindGroupsPlusVertexBuffers",limitsOutPtr,24);setLimitValueU32("maxBindingsPerBindGroup",limitsOutPtr,28);setLimitValueU32("maxDynamicUniformBuffersPerPipelineLayout",limitsOutPtr,32);setLimitValueU32("maxDynamicStorageBuffersPerPipelineLayout",limitsOutPtr,36);setLimitValueU32("maxSampledTexturesPerShaderStage",limitsOutPtr,40);setLimitValueU32("maxSamplersPerShaderStage",limitsOutPtr,44);setLimitValueU32("maxStorageBuffersPerShaderStage",limitsOutPtr,48);setLimitValueU32("maxStorageTexturesPerShaderStage",limitsOutPtr,52);setLimitValueU32("maxUniformBuffersPerShaderStage",limitsOutPtr,56);setLimitValueU32("minUniformBufferOffsetAlignment",limitsOutPtr,80);setLimitValueU32("minStorageBufferOffsetAlignment",limitsOutPtr,84);setLimitValueU64("maxUniformBufferBindingSize",limitsOutPtr,64);setLimitValueU64("maxStorageBufferBindingSize",limitsOutPtr,72);setLimitValueU32("maxVertexBuffers",limitsOutPtr,88);setLimitValueU64("maxBufferSize",limitsOutPtr,96);setLimitValueU32("maxVertexAttributes",limitsOutPtr,104);setLimitValueU32("maxVertexBufferArrayStride",limitsOutPtr,108);setLimitValueU32("maxInterStageShaderVariables",limitsOutPtr,112);setLimitValueU32("maxColorAttachments",limitsOutPtr,116);setLimitValueU32("maxColorAttachmentBytesPerSample",limitsOutPtr,120);setLimitValueU32("maxComputeWorkgroupStorageSize",limitsOutPtr,124);setLimitValueU32("maxComputeInvocationsPerWorkgroup",limitsOutPtr,128);setLimitValueU32("maxComputeWorkgroupSizeX",limitsOutPtr,132);setLimitValueU32("maxComputeWorkgroupSizeY",limitsOutPtr,136);setLimitValueU32("maxComputeWorkgroupSizeZ",limitsOutPtr,140);setLimitValueU32("maxComputeWorkgroupsPerDimension",limitsOutPtr,144);setLimitValueU32("maxImmediateSize",limitsOutPtr,148);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[nextInChainPtr+4>>>2>>>0];var compatibilityModeLimitsPtr=nextInChainPtr;setLimitValueU32("maxStorageBuffersInVertexStage",compatibilityModeLimitsPtr,8,limits.maxStorageBuffersPerShaderStage);setLimitValueU32("maxStorageBuffersInFragmentStage",compatibilityModeLimitsPtr,16,limits.maxStorageBuffersPerShaderStage);setLimitValueU32("maxStorageTexturesInVertexStage",compatibilityModeLimitsPtr,12,limits.maxStorageTexturesPerShaderStage);setLimitValueU32("maxStorageTexturesInFragmentStage",compatibilityModeLimitsPtr,20,limits.maxStorageTexturesPerShaderStage)}},fillAdapterInfoStruct:(info,infoStruct)=>{(growMemViews(),HEAPU32)[infoStruct+52>>>2>>>0]=info.subgroupMinSize;(growMemViews(),HEAPU32)[infoStruct+56>>>2>>>0]=info.subgroupMaxSize;var strs=info.vendor+info.architecture+info.device+info.description;var strPtr=stringToNewUTF8(strs);var vendorLen=lengthBytesUTF8(info.vendor);WebGPU.setStringView(infoStruct+4,strPtr,vendorLen);strPtr+=vendorLen;var architectureLen=lengthBytesUTF8(info.architecture);WebGPU.setStringView(infoStruct+12,strPtr,architectureLen);strPtr+=architectureLen;var deviceLen=lengthBytesUTF8(info.device);WebGPU.setStringView(infoStruct+20,strPtr,deviceLen);strPtr+=deviceLen;var descriptionLen=lengthBytesUTF8(info.description);WebGPU.setStringView(infoStruct+28,strPtr,descriptionLen);strPtr+=descriptionLen;(growMemViews(),HEAP32)[infoStruct+36>>>2>>>0]=2;var adapterType=info.isFallbackAdapter?3:4;(growMemViews(),HEAP32)[infoStruct+40>>>2>>>0]=adapterType;(growMemViews(),HEAPU32)[infoStruct+44>>>2>>>0]=0;(growMemViews(),HEAPU32)[infoStruct+48>>>2>>>0]=0},AddressMode:[,"clamp-to-edge","repeat","mirror-repeat"],BlendFactor:[,"zero","one","src","one-minus-src","src-alpha","one-minus-src-alpha","dst","one-minus-dst","dst-alpha","one-minus-dst-alpha","src-alpha-saturated","constant","one-minus-constant","src1","one-minus-src1","src1-alpha","one-minus-src1-alpha"],BlendOperation:[,"add","subtract","reverse-subtract","min","max"],BufferBindingType:[,,"uniform","storage","read-only-storage"],BufferMapState:[,"unmapped","pending","mapped"],CompareFunction:[,"never","less","equal","less-equal","greater","not-equal","greater-equal","always"],CompilationInfoRequestStatus:[,"success","callback-cancelled"],ComponentSwizzle:[,"0","1","r","g","b","a"],CompositeAlphaMode:[,"opaque","premultiplied","unpremultiplied","inherit"],CullMode:[,"none","front","back"],ErrorFilter:[,"validation","out-of-memory","internal"],FeatureLevel:[,"compatibility","core"],FeatureName:{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",22:"texture-component-swizzle",327692:"chromium-experimental-unorm16-texture-formats",327729:"chromium-experimental-multi-draw-indirect"},FilterMode:[,"nearest","linear"],FrontFace:[,"ccw","cw"],IndexFormat:[,"uint16","uint32"],InstanceFeatureName:[,"timed-wait-any","shader-source-spirv","multiple-devices-per-adapter"],LoadOp:[,"load","clear"],MipmapFilterMode:[,"nearest","linear"],OptionalBool:["false","true"],PowerPreference:[,"low-power","high-performance"],PredefinedColorSpace:[,"srgb","display-p3"],PrimitiveTopology:[,"point-list","line-list","line-strip","triangle-list","triangle-strip"],QueryType:[,"occlusion","timestamp"],SamplerBindingType:[,,"filtering","non-filtering","comparison"],Status:[,"success","error"],StencilOperation:[,"keep","zero","replace","invert","increment-clamp","decrement-clamp","increment-wrap","decrement-wrap"],StorageTextureAccess:[,,"write-only","read-only","read-write"],StoreOp:[,"store","discard"],SurfaceGetCurrentTextureStatus:[,"success-optimal","success-suboptimal","timeout","outdated","lost","error"],TextureAspect:[,"all","stencil-only","depth-only"],TextureDimension:[,"1d","2d","3d"],TextureFormat:[,"r8unorm","r8snorm","r8uint","r8sint","r16unorm","r16snorm","r16uint","r16sint","r16float","rg8unorm","rg8snorm","rg8uint","rg8sint","r32float","r32uint","r32sint","rg16unorm","rg16snorm","rg16uint","rg16sint","rg16float","rgba8unorm","rgba8unorm-srgb","rgba8snorm","rgba8uint","rgba8sint","bgra8unorm","bgra8unorm-srgb","rgb10a2uint","rgb10a2unorm","rg11b10ufloat","rgb9e5ufloat","rg32float","rg32uint","rg32sint","rgba16unorm","rgba16snorm","rgba16uint","rgba16sint","rgba16float","rgba32float","rgba32uint","rgba32sint","stencil8","depth16unorm","depth24plus","depth24plus-stencil8","depth32float","depth32float-stencil8","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb","bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm","bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb","etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm","astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"],TextureSampleType:[,,"float","unfilterable-float","depth","sint","uint"],TextureViewDimension:[,"1d","2d","2d-array","cube","cube-array","3d"],ToneMappingMode:[,"standard","extended"],VertexFormat:[,"uint8","uint8x2","uint8x4","sint8","sint8x2","sint8x4","unorm8","unorm8x2","unorm8x4","snorm8","snorm8x2","snorm8x4","uint16","uint16x2","uint16x4","sint16","sint16x2","sint16x4","unorm16","unorm16x2","unorm16x4","snorm16","snorm16x2","snorm16x4","float16","float16x2","float16x4","float32","float32x2","float32x3","float32x4","uint32","uint32x2","uint32x3","uint32x4","sint32","sint32x2","sint32x3","sint32x4","unorm10-10-10-2","unorm8x4-bgra"],VertexStepMode:[,"vertex","instance"],WGSLLanguageFeatureName:[,"readonly_and_readwrite_storage_textures","packed_4x8_integer_dot_product","unrestricted_pointer_parameters","pointer_composite_access","uniform_buffer_standard_layout","subgroup_id","texture_and_sampler_let","subgroup_uniformity","texture_formats_tier1"]};var emwgpuStringToInt_DeviceLostReason={undefined:1,unknown:1,destroyed:2};var runtimeKeepalivePop=()=>{runtimeKeepaliveCounter-=1};function _emwgpuAdapterRequestDevice(adapterPtr,futureId,deviceLostFutureId,devicePtr,queuePtr,descriptor){adapterPtr>>>=0;futureId=bigintToI53Checked(futureId);deviceLostFutureId=bigintToI53Checked(deviceLostFutureId);devicePtr>>>=0;queuePtr>>>=0;descriptor>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);var desc={};if(descriptor){var requiredFeatureCount=(growMemViews(),HEAPU32)[descriptor+12>>>2>>>0];if(requiredFeatureCount){var requiredFeaturesPtr=(growMemViews(),HEAPU32)[descriptor+16>>>2>>>0];desc["requiredFeatures"]=Array.from((growMemViews(),HEAPU32).subarray(requiredFeaturesPtr>>>2>>>0,requiredFeaturesPtr+requiredFeatureCount*4>>>2>>>0),feature=>WebGPU.FeatureName[feature])}var limitsPtr=(growMemViews(),HEAPU32)[descriptor+20>>>2>>>0];if(limitsPtr){var nextInChainPtr=(growMemViews(),HEAPU32)[limitsPtr>>>2>>>0];var requiredLimits={};function setLimitU32IfDefined(name,basePtr,limitOffset,ignoreIfZero=false){var ptr=basePtr+limitOffset;var value=(growMemViews(),HEAPU32)[ptr>>>2>>>0];if(value!=4294967295&&(!ignoreIfZero||value!=0)){requiredLimits[name]=value}}function setLimitU64IfDefined(name,basePtr,limitOffset){var ptr=basePtr+limitOffset;var limitPart1=(growMemViews(),HEAPU32)[ptr>>>2>>>0];var limitPart2=(growMemViews(),HEAPU32)[ptr+4>>>2>>>0];if(limitPart1!=4294967295||limitPart2!=4294967295){requiredLimits[name]=readI53FromI64(ptr)}}setLimitU32IfDefined("maxTextureDimension1D",limitsPtr,4);setLimitU32IfDefined("maxTextureDimension2D",limitsPtr,8);setLimitU32IfDefined("maxTextureDimension3D",limitsPtr,12);setLimitU32IfDefined("maxTextureArrayLayers",limitsPtr,16);setLimitU32IfDefined("maxBindGroups",limitsPtr,20);setLimitU32IfDefined("maxBindGroupsPlusVertexBuffers",limitsPtr,24);setLimitU32IfDefined("maxBindingsPerBindGroup",limitsPtr,28);setLimitU32IfDefined("maxDynamicUniformBuffersPerPipelineLayout",limitsPtr,32);setLimitU32IfDefined("maxDynamicStorageBuffersPerPipelineLayout",limitsPtr,36);setLimitU32IfDefined("maxSampledTexturesPerShaderStage",limitsPtr,40);setLimitU32IfDefined("maxSamplersPerShaderStage",limitsPtr,44);setLimitU32IfDefined("maxStorageBuffersPerShaderStage",limitsPtr,48);setLimitU32IfDefined("maxStorageTexturesPerShaderStage",limitsPtr,52);setLimitU32IfDefined("maxUniformBuffersPerShaderStage",limitsPtr,56);setLimitU32IfDefined("minUniformBufferOffsetAlignment",limitsPtr,80);setLimitU32IfDefined("minStorageBufferOffsetAlignment",limitsPtr,84);setLimitU64IfDefined("maxUniformBufferBindingSize",limitsPtr,64);setLimitU64IfDefined("maxStorageBufferBindingSize",limitsPtr,72);setLimitU32IfDefined("maxVertexBuffers",limitsPtr,88);setLimitU64IfDefined("maxBufferSize",limitsPtr,96);setLimitU32IfDefined("maxVertexAttributes",limitsPtr,104);setLimitU32IfDefined("maxVertexBufferArrayStride",limitsPtr,108);setLimitU32IfDefined("maxInterStageShaderVariables",limitsPtr,112);setLimitU32IfDefined("maxColorAttachments",limitsPtr,116);setLimitU32IfDefined("maxColorAttachmentBytesPerSample",limitsPtr,120);setLimitU32IfDefined("maxComputeWorkgroupStorageSize",limitsPtr,124);setLimitU32IfDefined("maxComputeInvocationsPerWorkgroup",limitsPtr,128);setLimitU32IfDefined("maxComputeWorkgroupSizeX",limitsPtr,132);setLimitU32IfDefined("maxComputeWorkgroupSizeY",limitsPtr,136);setLimitU32IfDefined("maxComputeWorkgroupSizeZ",limitsPtr,140);setLimitU32IfDefined("maxComputeWorkgroupsPerDimension",limitsPtr,144);setLimitU32IfDefined("maxImmediateSize",limitsPtr,148,true);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[nextInChainPtr+4>>>2>>>0];var compatibilityModeLimitsPtr=nextInChainPtr;if("maxStorageBuffersInVertexStage"in GPUSupportedLimits.prototype){setLimitU32IfDefined("maxStorageBuffersInVertexStage",compatibilityModeLimitsPtr,8);setLimitU32IfDefined("maxStorageTexturesInVertexStage",compatibilityModeLimitsPtr,12);setLimitU32IfDefined("maxStorageBuffersInFragmentStage",compatibilityModeLimitsPtr,16);setLimitU32IfDefined("maxStorageTexturesInFragmentStage",compatibilityModeLimitsPtr,20)}}desc["requiredLimits"]=requiredLimits}var defaultQueuePtr=(growMemViews(),HEAPU32)[descriptor+24>>>2>>>0];if(defaultQueuePtr){var defaultQueueDesc={label:WebGPU.makeStringFromOptionalStringView(defaultQueuePtr+4)};desc["defaultQueue"]=defaultQueueDesc}desc["label"]=WebGPU.makeStringFromOptionalStringView(descriptor+4)}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,adapter.requestDevice(desc).then(device=>{runtimeKeepalivePop();callUserCallback(()=>{WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);WebGPU.Internals.futureInsert(deviceLostFutureId,device.lost.then(info=>{callUserCallback(()=>{device.onuncapturederror=ev=>{};var sp=stackSave();var messagePtr=stringToUTF8OnStack(info.message);_emwgpuOnDeviceLostCompleted(deviceLostFutureId,emwgpuStringToInt_DeviceLostReason[info.reason],messagePtr);stackRestore(sp)})}));device.onuncapturederror=ev=>{var type=5;if(ev.error instanceof GPUValidationError)type=2;else if(ev.error instanceof GPUOutOfMemoryError)type=3;else if(ev.error instanceof GPUInternalError)type=4;var sp=stackSave();var messagePtr=stringToUTF8OnStack(ev.error.message);_emwgpuOnUncapturedError(devicePtr,type,messagePtr);stackRestore(sp)};_emwgpuOnRequestDeviceCompleted(futureId,1,devicePtr,0)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestDeviceCompleted(futureId,3,devicePtr,messagePtr);if(deviceLostFutureId){_emwgpuOnDeviceLostCompleted(deviceLostFutureId,4,messagePtr)}stackRestore(sp)})}))}function _emwgpuBufferDestroy(bufferPtr){bufferPtr>>>=0;var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(onUnmap){for(var i=0;i{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};function _emwgpuBufferGetConstMappedRange(bufferPtr,offset,size){bufferPtr>>>=0;offset>>>=0;size>>>=0;var buffer=WebGPU.getJsObject(bufferPtr);if(size==4294967295)size=undefined;var mapped;try{mapped=buffer.getMappedRange(offset,size)}catch(ex){return 0}var data=_memalign(16,mapped.byteLength);(growMemViews(),HEAPU8).set(new Uint8Array(mapped),data>>>0);WebGPU.Internals.bufferOnUnmaps[bufferPtr].push(()=>_free(data));return data}var _emwgpuBufferMapAsync=function(bufferPtr,futureId,mode,offset,size){bufferPtr>>>=0;futureId=bigintToI53Checked(futureId);mode=bigintToI53Checked(mode);offset>>>=0;size>>>=0;var buffer=WebGPU.getJsObject(bufferPtr);WebGPU.Internals.bufferOnUnmaps[bufferPtr]=[];if(size==4294967295)size=undefined;runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,buffer.mapAsync(mode,offset,size).then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnMapAsyncCompleted(futureId,1,0)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);var status=ex.name==="AbortError"?4:ex.name==="OperationError"?3:0;_emwgpuOnMapAsyncCompleted(futureId,status,messagePtr);delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]})}))};function _emwgpuBufferUnmap(bufferPtr){bufferPtr>>>=0;var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(!onUnmap){return}for(var i=0;i>>=0;delete WebGPU.Internals.jsObjects[ptr]}function _emwgpuDeviceCreateBuffer(devicePtr,descriptor,bufferPtr){devicePtr>>>=0;descriptor>>>=0;bufferPtr>>>=0;var mappedAtCreation=!!(growMemViews(),HEAPU32)[descriptor+32>>>2>>>0];var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),usage:(growMemViews(),HEAPU32)[descriptor+16>>>2>>>0],size:readI53FromI64(descriptor+24),mappedAtCreation};var device=WebGPU.getJsObject(devicePtr);var buffer;try{buffer=device.createBuffer(desc)}catch(ex){return false}WebGPU.Internals.jsObjectInsert(bufferPtr,buffer);if(mappedAtCreation){WebGPU.Internals.bufferOnUnmaps[bufferPtr]=[]}return true}function _emwgpuDeviceCreateShaderModule(devicePtr,descriptor,shaderModulePtr){devicePtr>>>=0;descriptor>>>=0;shaderModulePtr>>>=0;var nextInChainPtr=(growMemViews(),HEAPU32)[descriptor>>>2>>>0];var sType=(growMemViews(),HEAP32)[nextInChainPtr+4>>>2>>>0];var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),code:""};switch(sType){case 2:{desc["code"]=WebGPU.makeStringFromStringView(nextInChainPtr+8);break}}var device=WebGPU.getJsObject(devicePtr);WebGPU.Internals.jsObjectInsert(shaderModulePtr,device.createShaderModule(desc))}var _emwgpuDeviceDestroy=devicePtr=>{const device=WebGPU.getJsObject(devicePtr);device.onuncapturederror=null;device.destroy()};function _emwgpuInstanceRequestAdapter(instancePtr,futureId,options,adapterPtr){instancePtr>>>=0;futureId=bigintToI53Checked(futureId);options>>>=0;adapterPtr>>>=0;var opts;if(options){opts={featureLevel:WebGPU.FeatureLevel[(growMemViews(),HEAP32)[options+4>>>2>>>0]],powerPreference:WebGPU.PowerPreference[(growMemViews(),HEAP32)[options+8>>>2>>>0]],forceFallbackAdapter:!!(growMemViews(),HEAPU32)[options+12>>>2>>>0]};var nextInChainPtr=(growMemViews(),HEAPU32)[options>>>2>>>0];if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[nextInChainPtr+4>>>2>>>0];var webxrOptions=nextInChainPtr;opts.xrCompatible=!!(growMemViews(),HEAPU32)[webxrOptions+8>>>2>>>0]}}if(!("gpu"in navigator)){var sp=stackSave();var messagePtr=stringToUTF8OnStack("WebGPU not available on this browser (navigator.gpu is not available)");_emwgpuOnRequestAdapterCompleted(futureId,3,adapterPtr,messagePtr);stackRestore(sp);return}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,navigator.gpu.requestAdapter(opts).then(adapter=>{runtimeKeepalivePop();callUserCallback(()=>{if(adapter){WebGPU.Internals.jsObjectInsert(adapterPtr,adapter);_emwgpuOnRequestAdapterCompleted(futureId,1,adapterPtr,0)}else{var sp=stackSave();var messagePtr=stringToUTF8OnStack("WebGPU not available on this browser (requestAdapter returned null)");_emwgpuOnRequestAdapterCompleted(futureId,3,adapterPtr,messagePtr);stackRestore(sp)}})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestAdapterCompleted(futureId,4,adapterPtr,messagePtr);stackRestore(sp)})}))}var _emwgpuQueueOnSubmittedWorkDone=function(queuePtr,futureId){queuePtr>>>=0;futureId=bigintToI53Checked(futureId);var queue=WebGPU.getJsObject(queuePtr);runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,queue.onSubmittedWorkDone().then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnWorkDoneCompleted(futureId,1)})}))};var _emwgpuWaitAny=function(futurePtr,futureCount,timeoutMSPtr){futurePtr>>>=0;futureCount>>>=0;timeoutMSPtr>>>=0;return Asyncify.handleAsync(async()=>{var promises=[];if(timeoutMSPtr){var timeoutMS=(growMemViews(),HEAP32)[timeoutMSPtr>>>2>>>0];promises.length=futureCount+1;promises[futureCount]=new Promise(resolve=>setTimeout(resolve,timeoutMS,0))}else{promises.length=futureCount}for(var i=0;ithisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.language||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(15,0,1,__environ,environ_buf);__environ>>>=0;environ_buf>>>=0;var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;(growMemViews(),HEAPU32)[__environ+envp>>>2>>>0]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(16,0,1,penviron_count,penviron_buf_size);penviron_count>>>=0;penviron_buf_size>>>=0;var strings=getEnvStrings();(growMemViews(),HEAPU32)[penviron_count>>>2>>>0]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}(growMemViews(),HEAPU32)[penviron_buf_size>>>2>>>0]=bufSize;return 0}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(17,0,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>>2>>>0];var len=(growMemViews(),HEAPU32)[iov+4>>>2>>>0];iov+=8;var curr=FS.read(stream,(growMemViews(),HEAP8),ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>>=0;iovcnt>>>=0;pnum>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);(growMemViews(),HEAPU32)[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(19,0,1,fd,offset,whence,newOffset);offset=bigintToI53Checked(offset);newOffset>>>=0;try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);(growMemViews(),HEAP64)[newOffset>>>3>>>0]=BigInt(stream.position);if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>>2>>>0];var len=(growMemViews(),HEAPU32)[iov+4>>>2>>>0];iov+=8;var curr=FS.write(stream,(growMemViews(),HEAP8),ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>>=0;iovcnt>>>=0;pnum>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);(growMemViews(),HEAPU32)[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _llvm_eh_typeid_for(type){type>>>=0;return type}function _random_get(buffer,size){buffer>>>=0;size>>>=0;try{randomFill((growMemViews(),HEAPU8).subarray(buffer>>>0,buffer+size>>>0));return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var emwgpuStringToInt_FeatureName={"core-features-and-limits":1,"depth-clip-control":2,"depth32float-stencil8":3,"texture-compression-bc":4,"texture-compression-bc-sliced-3d":5,"texture-compression-etc2":6,"texture-compression-astc":7,"texture-compression-astc-sliced-3d":8,"timestamp-query":9,"indirect-first-instance":10,"shader-f16":11,"rg11b10ufloat-renderable":12,"bgra8unorm-storage":13,"float32-filterable":14,"float32-blendable":15,"clip-distances":16,"dual-source-blending":17,subgroups:18,"texture-formats-tier1":19,"texture-formats-tier2":20,"primitive-index":21,"texture-component-swizzle":22,"chromium-experimental-unorm16-texture-formats":327692,"chromium-experimental-multi-draw-indirect":327729};function _wgpuAdapterGetFeatures(adapterPtr,supportedFeatures){adapterPtr>>>=0;supportedFeatures>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);var featuresPtr=_malloc(adapter.features.size*4);var offset=0;var numFeatures=0;for(const feature of adapter.features){var featureEnumValue=emwgpuStringToInt_FeatureName[feature];if(featureEnumValue>=0){(growMemViews(),HEAP32)[featuresPtr+offset>>>2>>>0]=featureEnumValue;offset+=4;numFeatures++}}(growMemViews(),HEAPU32)[supportedFeatures+4>>>2>>>0]=featuresPtr;(growMemViews(),HEAPU32)[supportedFeatures>>>2>>>0]=numFeatures}function _wgpuAdapterGetInfo(adapterPtr,info){adapterPtr>>>=0;info>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillAdapterInfoStruct(adapter.info,info);return 1}function _wgpuAdapterGetLimits(adapterPtr,limitsOutPtr){adapterPtr>>>=0;limitsOutPtr>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillLimitStruct(adapter.limits,limitsOutPtr);return 1}function _wgpuAdapterHasFeature(adapterPtr,featureEnumValue){adapterPtr>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);return adapter.features.has(WebGPU.FeatureName[featureEnumValue])}var _wgpuBufferGetSize=function(bufferPtr){bufferPtr>>>=0;var ret=(()=>{var buffer=WebGPU.getJsObject(bufferPtr);return buffer.size})();return BigInt(ret)};function _wgpuCommandEncoderBeginComputePass(encoderPtr,descriptor){encoderPtr>>>=0;descriptor>>>=0;var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),timestampWrites:WebGPU.makePassTimestampWrites((growMemViews(),HEAPU32)[descriptor+12>>>2>>>0])}}var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateComputePassEncoder(0);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.beginComputePass(desc));return ptr}function _wgpuCommandEncoderCopyBufferToBuffer(encoderPtr,srcPtr,srcOffset,dstPtr,dstOffset,size){encoderPtr>>>=0;srcPtr>>>=0;srcOffset=bigintToI53Checked(srcOffset);dstPtr>>>=0;dstOffset=bigintToI53Checked(dstOffset);size=bigintToI53Checked(size);var commandEncoder=WebGPU.getJsObject(encoderPtr);var src=WebGPU.getJsObject(srcPtr);var dst=WebGPU.getJsObject(dstPtr);commandEncoder.copyBufferToBuffer(src,srcOffset,dst,dstOffset,size)}function _wgpuCommandEncoderFinish(encoderPtr,descriptor){encoderPtr>>>=0;descriptor>>>=0;var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateCommandBuffer(0);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.finish());return ptr}function _wgpuComputePassEncoderDispatchWorkgroups(passPtr,x,y,z){passPtr>>>=0;var pass=WebGPU.getJsObject(passPtr);pass.dispatchWorkgroups(x,y,z)}function _wgpuComputePassEncoderEnd(passPtr){passPtr>>>=0;var pass=WebGPU.getJsObject(passPtr);pass.end()}function _wgpuComputePassEncoderSetBindGroup(passPtr,groupIndex,groupPtr,dynamicOffsetCount,dynamicOffsetsPtr){passPtr>>>=0;groupPtr>>>=0;dynamicOffsetCount>>>=0;dynamicOffsetsPtr>>>=0;var pass=WebGPU.getJsObject(passPtr);var group=WebGPU.getJsObject(groupPtr);if(dynamicOffsetCount==0){pass.setBindGroup(groupIndex,group)}else{pass.setBindGroup(groupIndex,group,(growMemViews(),HEAPU32),dynamicOffsetsPtr>>>2,dynamicOffsetCount)}}function _wgpuComputePassEncoderSetPipeline(passPtr,pipelinePtr){passPtr>>>=0;pipelinePtr>>>=0;var pass=WebGPU.getJsObject(passPtr);var pipeline=WebGPU.getJsObject(pipelinePtr);pass.setPipeline(pipeline)}function _wgpuComputePipelineGetBindGroupLayout(pipelinePtr,groupIndex){pipelinePtr>>>=0;var pipeline=WebGPU.getJsObject(pipelinePtr);var ptr=_emwgpuCreateBindGroupLayout(0);WebGPU.Internals.jsObjectInsert(ptr,pipeline.getBindGroupLayout(groupIndex));return ptr}var _wgpuDeviceCreateBindGroup=function(devicePtr,descriptor){devicePtr>>>=0;descriptor>>>=0;function makeEntry(entryPtr){var bufferPtr=(growMemViews(),HEAPU32)[entryPtr+8>>>2>>>0];var samplerPtr=(growMemViews(),HEAPU32)[entryPtr+32>>>2>>>0];var textureViewPtr=(growMemViews(),HEAPU32)[entryPtr+36>>>2>>>0];var externalTexturePtr=0;WebGPU.iterateExtensions(entryPtr,{327681:ptr=>{externalTexturePtr=(growMemViews(),HEAPU32)[ptr+8>>>2>>>0]}});var resource;if(bufferPtr){var size=readI53FromI64(entryPtr+24);if(size==-1)size=undefined;resource={buffer:WebGPU.getJsObject(bufferPtr),offset:readI53FromI64(entryPtr+16),size}}else{resource=WebGPU.getJsObject(samplerPtr||textureViewPtr||externalTexturePtr)}return{binding:(growMemViews(),HEAPU32)[entryPtr+4>>>2>>>0],resource}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i>>2>>>0]),entries:makeEntries((growMemViews(),HEAPU32)[descriptor+16>>>2>>>0],(growMemViews(),HEAPU32)[descriptor+20>>>2>>>0])};var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateBindGroup(0);WebGPU.Internals.jsObjectInsert(ptr,device.createBindGroup(desc));return ptr};function _wgpuDeviceCreateCommandEncoder(devicePtr,descriptor){devicePtr>>>=0;descriptor>>>=0;var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4)}}var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateCommandEncoder(0);WebGPU.Internals.jsObjectInsert(ptr,device.createCommandEncoder(desc));return ptr}function _wgpuDeviceCreateComputePipeline(devicePtr,descriptor){devicePtr>>>=0;descriptor>>>=0;var desc=WebGPU.makeComputePipelineDesc(descriptor);var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateComputePipeline(0);WebGPU.Internals.jsObjectInsert(ptr,device.createComputePipeline(desc));return ptr}var _wgpuQueueSubmit=function(queuePtr,commandCount,commands){queuePtr>>>=0;commandCount>>>=0;commands>>>=0;var queue=WebGPU.getJsObject(queuePtr);var cmds=Array.from((growMemViews(),HEAP32).subarray(commands>>>2>>>0,commands+commandCount*4>>>2>>>0),id=>WebGPU.getJsObject(id));queue.submit(cmds)};function _wgpuQueueWriteBuffer(queuePtr,bufferPtr,bufferOffset,data,size){queuePtr>>>=0;bufferPtr>>>=0;bufferOffset=bigintToI53Checked(bufferOffset);data>>>=0;size>>>=0;var queue=WebGPU.getJsObject(queuePtr);var buffer=WebGPU.getJsObject(bufferPtr);var subarray=(growMemViews(),HEAPU8).subarray(data>>>0,data+size>>>0);queue.writeBuffer(buffer,bufferOffset,subarray,0,size)}var runAndAbortIfError=func=>{try{return func()}catch(e){abort(e)}};var Asyncify={instrumentWasmImports(imports){var importPattern=/^(invoke_.*|__asyncjs__.*)$/;for(let[x,original]of Object.entries(imports)){if(typeof original=="function"){let isAsyncifyImport=original.isAsync||importPattern.test(x)}}},instrumentFunction(original){var wrapper=(...args)=>{Asyncify.exportCallStack.push(original);try{return original(...args)}finally{if(!ABORT){var top=Asyncify.exportCallStack.pop();Asyncify.maybeStopUnwind()}}};Asyncify.funcWrappers.set(original,wrapper);return wrapper},instrumentWasmExports(exports){var ret={};for(let[x,original]of Object.entries(exports)){if(typeof original=="function"){var wrapper=Asyncify.instrumentFunction(original);ret[x]=wrapper}else{ret[x]=original}}return ret},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callstackFuncToId:new Map,callStackIdToFunc:new Map,funcWrappers:new Map,callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId(func){if(!Asyncify.callstackFuncToId.has(func)){var id=Asyncify.callStackId++;Asyncify.callstackFuncToId.set(func,id);Asyncify.callStackIdToFunc.set(id,func)}return Asyncify.callstackFuncToId.get(func)},maybeStopUnwind(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runtimeKeepalivePush();runAndAbortIfError(_asyncify_stop_unwind);if(typeof Fibers!="undefined"){Fibers.trampoline()}}},whenDone(){return new Promise((resolve,reject)=>{Asyncify.asyncPromiseHandlers={resolve,reject}})},allocateData(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader(ptr,stack,stackSize){(growMemViews(),HEAPU32)[ptr>>>2>>>0]=stack;(growMemViews(),HEAPU32)[ptr+4>>>2>>>0]=stack+stackSize},setDataRewindFunc(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);(growMemViews(),HEAP32)[ptr+8>>>2>>>0]=rewindId},getDataRewindFunc(ptr){var id=(growMemViews(),HEAP32)[ptr+8>>>2>>>0];var func=Asyncify.callStackIdToFunc.get(id);return func},doRewind(ptr){var original=Asyncify.getDataRewindFunc(ptr);var func=Asyncify.funcWrappers.get(original);runtimeKeepalivePop();return func()},handleSleep(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync((handleSleepReturnValue=0)=>{if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(()=>_asyncify_start_rewind(Asyncify.currData));if(typeof MainLoop!="undefined"&&MainLoop.func){MainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();if(typeof MainLoop!="undefined"&&MainLoop.func){MainLoop.pause()}runAndAbortIfError(()=>_asyncify_start_unwind(Asyncify.currData))}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_rewind);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(callUserCallback)}else{abort(`invalid state: ${Asyncify.state}`)}return Asyncify.handleSleepReturnValue},handleAsync:startAsync=>Asyncify.handleSleep(wakeUp=>{startAsync().then(wakeUp)})};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{(growMemViews(),HEAP8).set(array,buffer>>>0)};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="pointer")return ret>>>0;if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var FS_createPath=(...args)=>FS.createPath(...args);var FS_unlink=(...args)=>FS.unlink(...args);var FS_createLazyFile=(...args)=>FS.createLazyFile(...args);var FS_createDevice=(...args)=>FS.createDevice(...args);PThread.init();FS.createPreloadedFile=FS_createPreloadedFile;FS.preloadFile=FS_preloadFile;FS.staticInit();{initMemory();if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(Module["preloadPlugins"])preloadPlugins=Module["preloadPlugins"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()()}}}Module["mmapAlloc"]=mmapAlloc;Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["FS_preloadFile"]=FS_preloadFile;Module["FS_unlink"]=FS_unlink;Module["FS_createPath"]=FS_createPath;Module["FS_createDevice"]=FS_createDevice;Module["FS"]=FS;Module["FS_createDataFile"]=FS_createDataFile;Module["FS_createLazyFile"]=FS_createLazyFile;Module["MEMFS"]=MEMFS;var proxiedFunctionTable=[_proc_exit,exitOnMainThread,pthreadCreateProxied,___syscall_fcntl64,___syscall_fstat64,___syscall_getcwd,___syscall_getdents64,___syscall_ioctl,___syscall_lstat64,___syscall_newfstatat,___syscall_openat,___syscall_stat64,__mmap_js,__munmap_js,__setitimer_js,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function __asyncjs__js_file_read(path_ptr,offset,req_size,out_ptr){return Asyncify.handleAsync(async()=>await _wllama_js_file_read(UTF8ToString(Number(path_ptr)),Number(offset),Number(req_size),Number(out_ptr)))}var _malloc,_free,_wllama_malloc,_wllama_start,_wllama_action,_wllama_exit,_wllama_debug,_main,_emwgpuCreateBindGroup,_emwgpuCreateBindGroupLayout,_emwgpuCreateCommandBuffer,_emwgpuCreateCommandEncoder,_emwgpuCreateComputePassEncoder,_emwgpuCreateComputePipeline,_emwgpuCreateExternalTexture,_emwgpuCreatePipelineLayout,_emwgpuCreateQuerySet,_emwgpuCreateRenderBundle,_emwgpuCreateRenderBundleEncoder,_emwgpuCreateRenderPassEncoder,_emwgpuCreateRenderPipeline,_emwgpuCreateSampler,_emwgpuCreateSurface,_emwgpuCreateTexture,_emwgpuCreateTextureView,_emwgpuCreateAdapter,_emwgpuCreateBuffer,_emwgpuCreateDevice,_emwgpuCreateQueue,_emwgpuCreateShaderModule,_emwgpuOnDeviceLostCompleted,_emwgpuOnMapAsyncCompleted,_emwgpuOnRequestAdapterCompleted,_emwgpuOnRequestDeviceCompleted,_emwgpuOnWorkDoneCompleted,_emwgpuOnUncapturedError,__emscripten_tls_init,_pthread_self,_emscripten_builtin_memalign,__emscripten_thread_init,__emscripten_thread_crashed,__emscripten_run_js_on_main_thread,__emscripten_thread_free_data,__emscripten_thread_exit,__emscripten_timeout,__emscripten_check_mailbox,_memalign,_setThrew,__emscripten_tempret_set,_emscripten_stack_set_limits,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,___cxa_decrement_exception_refcount,___cxa_increment_exception_refcount,___cxa_can_catch,___cxa_get_exception_ptr,dynCall_iii,dynCall_viii,dynCall_ii,dynCall_vi,dynCall_vii,dynCall_v,dynCall_viiii,dynCall_viiiii,dynCall_iiii,dynCall_viiiiiiiiiiiiii,dynCall_viiiiiii,dynCall_viiiiiiii,dynCall_iiiiii,dynCall_viiiiiiiii,dynCall_j,dynCall_viiiiii,dynCall_iiiiiii,dynCall_iiji,dynCall_iiiii,dynCall_iiiiiiii,dynCall_vij,dynCall_iij,dynCall_iifff,dynCall_iiiffiiii,dynCall_iiiiiiiiii,dynCall_iiiiiiiiiiiiiiiiiii,dynCall_iiiiiiiiiiiiiii,dynCall_di,dynCall_ji,dynCall_dii,dynCall_jii,dynCall_viiijj,dynCall_iid,dynCall_vid,dynCall_viiiijj,dynCall_viid,dynCall_vjjiii,dynCall_iiiiiijii,dynCall_iiiji,dynCall_fiii,dynCall_viiij,dynCall_iiif,dynCall_ifi,dynCall_iiiiiiiiiiiiii,dynCall_iiiiff,dynCall_viijj,dynCall_iiiiiiiiiii,dynCall_viif,dynCall_iiijj,dynCall_iiijjjj,dynCall_iiiiiiiiiffffffi,dynCall_iiiiiiiii,dynCall_i,dynCall_iiij,dynCall_viiiijjji,dynCall_iiiiiiiiiifi,dynCall_iiiiiiiiiiiijjiifiiiiiii,dynCall_iiiiiiiiiiiiiiii,dynCall_iiijjj,dynCall_iiiiiiiiifi,dynCall_iiiff,dynCall_iiiiiiji,dynCall_iiiiijiiijjjjjjj,dynCall_iiiiijji,dynCall_iiiiiiiiiiii,dynCall_viiiiiiiiii,dynCall_viij,dynCall_iiijiiii,dynCall_iiiiiifi,dynCall_iiiiiiiifii,dynCall_vj,dynCall_viijii,dynCall_viijijj,dynCall_viiiij,dynCall_iiid,dynCall_jiji,dynCall_iidiiii,dynCall_iiiij,dynCall_iiiiij,dynCall_iiiiid,dynCall_jiiii,dynCall_diii,dynCall_viiiiiiiiiiiiiii,dynCall_viji,dynCall_iiiiijj,dynCall_iiiiiijj,_asyncify_start_unwind,_asyncify_stop_unwind,_asyncify_start_rewind,_asyncify_stop_rewind,__indirect_function_table,wasmTable;function assignWasmExports(wasmExports){_malloc=wasmExports["dc"];_free=wasmExports["ec"];_wllama_malloc=Module["_wllama_malloc"]=wasmExports["fc"];_wllama_start=Module["_wllama_start"]=wasmExports["gc"];_wllama_action=Module["_wllama_action"]=wasmExports["hc"];_wllama_exit=Module["_wllama_exit"]=wasmExports["ic"];_wllama_debug=Module["_wllama_debug"]=wasmExports["jc"];_main=Module["_main"]=wasmExports["kc"];_emwgpuCreateBindGroup=wasmExports["lc"];_emwgpuCreateBindGroupLayout=wasmExports["mc"];_emwgpuCreateCommandBuffer=wasmExports["nc"];_emwgpuCreateCommandEncoder=wasmExports["oc"];_emwgpuCreateComputePassEncoder=wasmExports["pc"];_emwgpuCreateComputePipeline=wasmExports["qc"];_emwgpuCreateExternalTexture=wasmExports["rc"];_emwgpuCreatePipelineLayout=wasmExports["sc"];_emwgpuCreateQuerySet=wasmExports["tc"];_emwgpuCreateRenderBundle=wasmExports["uc"];_emwgpuCreateRenderBundleEncoder=wasmExports["vc"];_emwgpuCreateRenderPassEncoder=wasmExports["wc"];_emwgpuCreateRenderPipeline=wasmExports["xc"];_emwgpuCreateSampler=wasmExports["yc"];_emwgpuCreateSurface=wasmExports["zc"];_emwgpuCreateTexture=wasmExports["Ac"];_emwgpuCreateTextureView=wasmExports["Bc"];_emwgpuCreateAdapter=wasmExports["Cc"];_emwgpuCreateBuffer=wasmExports["Dc"];_emwgpuCreateDevice=wasmExports["Ec"];_emwgpuCreateQueue=wasmExports["Fc"];_emwgpuCreateShaderModule=wasmExports["Gc"];_emwgpuOnDeviceLostCompleted=wasmExports["Hc"];_emwgpuOnMapAsyncCompleted=wasmExports["Ic"];_emwgpuOnRequestAdapterCompleted=wasmExports["Jc"];_emwgpuOnRequestDeviceCompleted=wasmExports["Kc"];_emwgpuOnWorkDoneCompleted=wasmExports["Lc"];_emwgpuOnUncapturedError=wasmExports["Mc"];__emscripten_tls_init=wasmExports["Nc"];_pthread_self=wasmExports["Oc"];_emscripten_builtin_memalign=wasmExports["Pc"];__emscripten_thread_init=wasmExports["Rc"];__emscripten_thread_crashed=wasmExports["Sc"];__emscripten_run_js_on_main_thread=wasmExports["Tc"];__emscripten_thread_free_data=wasmExports["Uc"];__emscripten_thread_exit=wasmExports["Vc"];__emscripten_timeout=wasmExports["Wc"];__emscripten_check_mailbox=wasmExports["Xc"];_memalign=wasmExports["Yc"];_setThrew=wasmExports["Zc"];__emscripten_tempret_set=wasmExports["_c"];_emscripten_stack_set_limits=wasmExports["$c"];__emscripten_stack_restore=wasmExports["ad"];__emscripten_stack_alloc=wasmExports["bd"];_emscripten_stack_get_current=wasmExports["cd"];___cxa_decrement_exception_refcount=wasmExports["dd"];___cxa_increment_exception_refcount=wasmExports["ed"];___cxa_can_catch=wasmExports["fd"];___cxa_get_exception_ptr=wasmExports["gd"];dynCall_iii=dynCalls["iii"]=wasmExports["hd"];dynCall_viii=dynCalls["viii"]=wasmExports["id"];dynCall_ii=dynCalls["ii"]=wasmExports["jd"];dynCall_vi=dynCalls["vi"]=wasmExports["kd"];dynCall_vii=dynCalls["vii"]=wasmExports["ld"];dynCall_v=dynCalls["v"]=wasmExports["md"];dynCall_viiii=dynCalls["viiii"]=wasmExports["nd"];dynCall_viiiii=dynCalls["viiiii"]=wasmExports["od"];dynCall_iiii=dynCalls["iiii"]=wasmExports["pd"];dynCall_viiiiiiiiiiiiii=dynCalls["viiiiiiiiiiiiii"]=wasmExports["qd"];dynCall_viiiiiii=dynCalls["viiiiiii"]=wasmExports["rd"];dynCall_viiiiiiii=dynCalls["viiiiiiii"]=wasmExports["sd"];dynCall_iiiiii=dynCalls["iiiiii"]=wasmExports["td"];dynCall_viiiiiiiii=dynCalls["viiiiiiiii"]=wasmExports["ud"];dynCall_j=dynCalls["j"]=wasmExports["vd"];dynCall_viiiiii=dynCalls["viiiiii"]=wasmExports["wd"];dynCall_iiiiiii=dynCalls["iiiiiii"]=wasmExports["xd"];dynCall_iiji=dynCalls["iiji"]=wasmExports["yd"];dynCall_iiiii=dynCalls["iiiii"]=wasmExports["zd"];dynCall_iiiiiiii=dynCalls["iiiiiiii"]=wasmExports["Ad"];dynCall_vij=dynCalls["vij"]=wasmExports["Bd"];dynCall_iij=dynCalls["iij"]=wasmExports["Cd"];dynCall_iifff=dynCalls["iifff"]=wasmExports["Dd"];dynCall_iiiffiiii=dynCalls["iiiffiiii"]=wasmExports["Ed"];dynCall_iiiiiiiiii=dynCalls["iiiiiiiiii"]=wasmExports["Fd"];dynCall_iiiiiiiiiiiiiiiiiii=dynCalls["iiiiiiiiiiiiiiiiiii"]=wasmExports["Gd"];dynCall_iiiiiiiiiiiiiii=dynCalls["iiiiiiiiiiiiiii"]=wasmExports["Hd"];dynCall_di=dynCalls["di"]=wasmExports["Id"];dynCall_ji=dynCalls["ji"]=wasmExports["Jd"];dynCall_dii=dynCalls["dii"]=wasmExports["Kd"];dynCall_jii=dynCalls["jii"]=wasmExports["Ld"];dynCall_viiijj=dynCalls["viiijj"]=wasmExports["Md"];dynCall_iid=dynCalls["iid"]=wasmExports["Nd"];dynCall_vid=dynCalls["vid"]=wasmExports["Od"];dynCall_viiiijj=dynCalls["viiiijj"]=wasmExports["Pd"];dynCall_viid=dynCalls["viid"]=wasmExports["Qd"];dynCall_vjjiii=dynCalls["vjjiii"]=wasmExports["Rd"];dynCall_iiiiiijii=dynCalls["iiiiiijii"]=wasmExports["Sd"];dynCall_iiiji=dynCalls["iiiji"]=wasmExports["Td"];dynCall_fiii=dynCalls["fiii"]=wasmExports["Ud"];dynCall_viiij=dynCalls["viiij"]=wasmExports["Vd"];dynCall_iiif=dynCalls["iiif"]=wasmExports["Wd"];dynCall_ifi=dynCalls["ifi"]=wasmExports["Xd"];dynCall_iiiiiiiiiiiiii=dynCalls["iiiiiiiiiiiiii"]=wasmExports["Yd"];dynCall_iiiiff=dynCalls["iiiiff"]=wasmExports["Zd"];dynCall_viijj=dynCalls["viijj"]=wasmExports["_d"];dynCall_iiiiiiiiiii=dynCalls["iiiiiiiiiii"]=wasmExports["$d"];dynCall_viif=dynCalls["viif"]=wasmExports["ae"];dynCall_iiijj=dynCalls["iiijj"]=wasmExports["be"];dynCall_iiijjjj=dynCalls["iiijjjj"]=wasmExports["ce"];dynCall_iiiiiiiiiffffffi=dynCalls["iiiiiiiiiffffffi"]=wasmExports["de"];dynCall_iiiiiiiii=dynCalls["iiiiiiiii"]=wasmExports["ee"];dynCall_i=dynCalls["i"]=wasmExports["fe"];dynCall_iiij=dynCalls["iiij"]=wasmExports["ge"];dynCall_viiiijjji=dynCalls["viiiijjji"]=wasmExports["he"];dynCall_iiiiiiiiiifi=dynCalls["iiiiiiiiiifi"]=wasmExports["ie"];dynCall_iiiiiiiiiiiijjiifiiiiiii=dynCalls["iiiiiiiiiiiijjiifiiiiiii"]=wasmExports["je"];dynCall_iiiiiiiiiiiiiiii=dynCalls["iiiiiiiiiiiiiiii"]=wasmExports["ke"];dynCall_iiijjj=dynCalls["iiijjj"]=wasmExports["le"];dynCall_iiiiiiiiifi=dynCalls["iiiiiiiiifi"]=wasmExports["me"];dynCall_iiiff=dynCalls["iiiff"]=wasmExports["ne"];dynCall_iiiiiiji=dynCalls["iiiiiiji"]=wasmExports["oe"];dynCall_iiiiijiiijjjjjjj=dynCalls["iiiiijiiijjjjjjj"]=wasmExports["pe"];dynCall_iiiiijji=dynCalls["iiiiijji"]=wasmExports["qe"];dynCall_iiiiiiiiiiii=dynCalls["iiiiiiiiiiii"]=wasmExports["re"];dynCall_viiiiiiiiii=dynCalls["viiiiiiiiii"]=wasmExports["se"];dynCall_viij=dynCalls["viij"]=wasmExports["te"];dynCall_iiijiiii=dynCalls["iiijiiii"]=wasmExports["ue"];dynCall_iiiiiifi=dynCalls["iiiiiifi"]=wasmExports["ve"];dynCall_iiiiiiiifii=dynCalls["iiiiiiiifii"]=wasmExports["we"];dynCall_vj=dynCalls["vj"]=wasmExports["xe"];dynCall_viijii=dynCalls["viijii"]=wasmExports["ye"];dynCall_viijijj=dynCalls["viijijj"]=wasmExports["ze"];dynCall_viiiij=dynCalls["viiiij"]=wasmExports["Ae"];dynCall_iiid=dynCalls["iiid"]=wasmExports["Be"];dynCall_jiji=dynCalls["jiji"]=wasmExports["Ce"];dynCall_iidiiii=dynCalls["iidiiii"]=wasmExports["De"];dynCall_iiiij=dynCalls["iiiij"]=wasmExports["Ee"];dynCall_iiiiij=dynCalls["iiiiij"]=wasmExports["Fe"];dynCall_iiiiid=dynCalls["iiiiid"]=wasmExports["Ge"];dynCall_jiiii=dynCalls["jiiii"]=wasmExports["He"];dynCall_diii=dynCalls["diii"]=wasmExports["Ie"];dynCall_viiiiiiiiiiiiiii=dynCalls["viiiiiiiiiiiiiii"]=wasmExports["Je"];dynCall_viji=dynCalls["viji"]=wasmExports["Ke"];dynCall_iiiiijj=dynCalls["iiiiijj"]=wasmExports["Le"];dynCall_iiiiiijj=dynCalls["iiiiiijj"]=wasmExports["Me"];_asyncify_start_unwind=wasmExports["Ne"];_asyncify_stop_unwind=wasmExports["Oe"];_asyncify_start_rewind=wasmExports["Pe"];_asyncify_stop_rewind=wasmExports["Qe"];__indirect_function_table=wasmTable=wasmExports["Qc"]}var wasmImports;function assignWasmImports(){wasmImports={ya:__asyncjs__js_file_read,s:___cxa_begin_catch,Va:___cxa_current_primary_exception,B:___cxa_end_catch,b:___cxa_find_matching_catch_2,n:___cxa_find_matching_catch_3,P:___cxa_find_matching_catch_4,ac:___cxa_find_matching_catch_7,ja:___cxa_rethrow,Ta:___cxa_rethrow_primary_exception,v:___cxa_throw,Wa:___cxa_uncaught_exceptions,db:___pthread_create_js,i:___resumeException,wa:___syscall_fcntl64,Sa:___syscall_getcwd,Xa:___syscall_getdents64,qb:___syscall_ioctl,xa:___syscall_openat,ab:___syscall_stat64,vb:__abort_js,lb:__emscripten_init_main_thread_js,Za:__emscripten_notify_mailbox_postmessage,eb:__emscripten_receive_on_main_thread_js,Pa:__emscripten_runtime_keepalive_clear,ta:__emscripten_thread_cleanup,kb:__emscripten_thread_mailbox_await,sb:__emscripten_thread_set_strongref,hb:__localtime_js,fb:__mmap_js,gb:__munmap_js,Qa:__setitimer_js,ib:__tzset_js,ub:_clock_time_get,ua:_emscripten_check_blocking_allowed,tb:_emscripten_date_now,rb:_emscripten_exit_with_live_runtime,_a:_emscripten_get_heap_max,ba:_emscripten_get_now,wb:_emscripten_has_asyncify,$a:_emscripten_num_logical_cores,Ya:_emscripten_resize_heap,Ab:_emwgpuAdapterRequestDevice,W:_emwgpuBufferDestroy,Eb:_emwgpuBufferGetConstMappedRange,Db:_emwgpuBufferMapAsync,Cb:_emwgpuBufferUnmap,p:_emwgpuDelete,_:_emwgpuDeviceCreateBuffer,za:_emwgpuDeviceCreateShaderModule,Bb:_emwgpuDeviceDestroy,zb:_emwgpuInstanceRequestAdapter,yb:_emwgpuQueueOnSubmittedWorkDone,xb:_emwgpuWaitAny,nb:_environ_get,ob:_environ_sizes_get,bb:_exit,ca:_fd_close,va:_fd_read,jb:_fd_seek,pb:_fd_write,M:invoke_di,ga:invoke_dii,Aa:invoke_diii,L:invoke_fiii,K:invoke_i,Fa:invoke_ifi,d:invoke_ii,S:invoke_iid,$b:invoke_iifff,f:invoke_iii,Ca:invoke_iiid,A:invoke_iiif,Wb:invoke_iiiff,Ia:invoke_iiiffiiii,g:invoke_iiii,oa:invoke_iiiiff,o:invoke_iiiii,Ob:invoke_iiiiid,l:invoke_iiiiii,ka:invoke_iiiiiifi,m:invoke_iiiiiii,H:invoke_iiiiiiii,Ub:invoke_iiiiiiiifii,aa:invoke_iiiiiiiii,r:invoke_iiiiiiiiiffffffi,na:invoke_iiiiiiiiifi,F:invoke_iiiiiiiiii,u:invoke_iiiiiiiiiifi,I:invoke_iiiiiiiiiii,X:invoke_iiiiiiiiiiii,Zb:invoke_iiiiiiiiiiiiii,$:invoke_iiiiiiiiiiiiiii,t:invoke_iiiiiiiiiiiiiiii,Ha:invoke_iiiiiiiiiiiiiiiiiii,D:invoke_iiiiiiiiiiiijjiifiiiiiii,Ea:invoke_iiiiiiji,Ja:invoke_iiiiiijii,Ba:invoke_iiiiij,ma:invoke_iiiiijiiijjjjjjj,la:invoke_iiiiijji,Qb:invoke_iiiij,Y:invoke_iiij,_b:invoke_iiiji,U:invoke_iiijiiii,E:invoke_iiijj,w:invoke_iiijjj,G:invoke_iiijjjj,N:invoke_iij,ra:invoke_iiji,Rb:invoke_j,C:invoke_ji,T:invoke_jii,ea:invoke_jiiii,h:invoke_v,q:invoke_vi,ha:invoke_vid,c:invoke_vii,Lb:invoke_viid,Mb:invoke_viif,e:invoke_viii,j:invoke_viiii,k:invoke_viiiii,z:invoke_viiiiii,O:invoke_viiiiiii,qa:invoke_viiiiiiii,ia:invoke_viiiiiiiii,V:invoke_viiiiiiiiii,sa:invoke_viiiiiiiiiiiiii,da:invoke_viiiiiiiiiiiiiii,R:invoke_viiiij,Ka:invoke_viiiijj,y:invoke_viiiijjji,Q:invoke_viiij,La:invoke_viiijj,Pb:invoke_viij,Da:invoke_viijii,Sb:invoke_viijijj,Ga:invoke_viijj,J:invoke_vij,fa:invoke_vj,Z:invoke_vjjiii,x:_llvm_eh_typeid_for,a:wasmMemory,Oa:_proc_exit,Ra:_random_get,Ua:_wgpuAdapterGetFeatures,cb:_wgpuAdapterGetInfo,mb:_wgpuAdapterGetLimits,Na:_wgpuAdapterHasFeature,bc:_wgpuBufferGetSize,Tb:_wgpuCommandEncoderBeginComputePass,Fb:_wgpuCommandEncoderCopyBufferToBuffer,Hb:_wgpuCommandEncoderFinish,Jb:_wgpuComputePassEncoderDispatchWorkgroups,Ib:_wgpuComputePassEncoderEnd,Kb:_wgpuComputePassEncoderSetBindGroup,Nb:_wgpuComputePassEncoderSetPipeline,Yb:_wgpuComputePipelineGetBindGroupLayout,Xb:_wgpuDeviceCreateBindGroup,Vb:_wgpuDeviceCreateCommandEncoder,Ma:_wgpuDeviceCreateComputePipeline,Gb:_wgpuQueueSubmit,pa:_wgpuQueueWriteBuffer}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14){var sp=stackSave();try{dynCall_viiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiji(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiji(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vij(index,a1,a2){var sp=stackSave();try{dynCall_vij(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iij(index,a1,a2){var sp=stackSave();try{return dynCall_iij(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_di(index,a1){var sp=stackSave();try{return dynCall_di(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return dynCall_ji(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);return 0n}}function invoke_iid(index,a1,a2){var sp=stackSave();try{return dynCall_iid(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vid(index,a1,a2){var sp=stackSave();try{dynCall_vid(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijj(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiijj(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiijj(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiijj(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vjjiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_vjjiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iifff(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iifff(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiffiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiffiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jii(index,a1,a2){var sp=stackSave();try{return dynCall_jii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);return 0n}}function invoke_fiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_fiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiij(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiij(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiji(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiji(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13){var sp=stackSave();try{return dynCall_iiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18){var sp=stackSave();try{return dynCall_iiiiiiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14){var sp=stackSave();try{return dynCall_iiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiif(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiif(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijj(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viijj(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijj(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiijj(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijjjj(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiijjjj(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiffffffi(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{return dynCall_iiiiiiiiiffffffi(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return dynCall_i(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiij(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ifi(index,a1,a2){var sp=stackSave();try{return dynCall_ifi(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiff(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiff(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiijjji(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiijjji(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiifi(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiiiiiiiifi(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiijjiifiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23){var sp=stackSave();try{return dynCall_iiiiiiiiiiiijjiifiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{return dynCall_iiiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijjj(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiijjj(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiifi(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiiiiiifi(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiff(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiff(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiji(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiiji(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiijiiijjjjjjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{return dynCall_iiiiijiiijjjjjjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiijji(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiijji(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_dii(index,a1,a2){var sp=stackSave();try{return dynCall_dii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiijiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiifi(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiifi(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiifii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiiiiifii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vj(index,a1){var sp=stackSave();try{dynCall_vj(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijijj(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viijijj(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viijii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiij(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiij(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiid(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_j(index){var sp=stackSave();try{return dynCall_j(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);return 0n}}function invoke_iiiij(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiij(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiij(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiij(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viij(index,a1,a2,a3){var sp=stackSave();try{dynCall_viij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiid(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiid(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);return 0n}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{dynCall_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viif(index,a1,a2,a3){var sp=stackSave();try{dynCall_viif(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viid(index,a1,a2,a3){var sp=stackSave();try{dynCall_viid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_pp=f=>a0=>f(a0)>>>0;var makeWrapper_p=f=>()=>f()>>>0;var makeWrapper_ppp=f=>(a0,a1)=>f(a0,a1)>>>0;wasmExports["dc"]=makeWrapper_pp(wasmExports["dc"]);wasmExports["Oc"]=makeWrapper_p(wasmExports["Oc"]);wasmExports["Pc"]=makeWrapper_ppp(wasmExports["Pc"]);wasmExports["Yc"]=makeWrapper_ppp(wasmExports["Yc"]);wasmExports["bd"]=makeWrapper_pp(wasmExports["bd"]);wasmExports["cd"]=makeWrapper_p(wasmExports["cd"]);wasmExports["gd"]=makeWrapper_pp(wasmExports["gd"]);return wasmExports}function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){dependenciesFulfilled=run;return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();Module["onRuntimeInitialized"]?.();var noInitialRun=Module["noInitialRun"]||false;if(!noInitialRun)callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}var wasmExports;if(!ENVIRONMENT_IS_PTHREAD){createWasm();run()} diff --git a/examples/basic/index.html b/examples/basic/index.html index 55d7aaec..2691d784 100644 --- a/examples/basic/index.html +++ b/examples/basic/index.html @@ -93,7 +93,7 @@

    Embeddings

    wllama.setCompat({ wasm: '../../compat/wasm/wllama.wasm', worker: '../../compat/wasm/wllama.js', - }); + }, 'exclude_firefox'); } if (files) { diff --git a/examples/embeddings/index.html b/examples/embeddings/index.html index 9ceb5c72..656b7aa6 100644 --- a/examples/embeddings/index.html +++ b/examples/embeddings/index.html @@ -35,6 +35,15 @@ async function main() { let res, tokens, elapsed, buffer; const wllama = new Wllama(CONFIG_PATHS); + // when running demo locally, we want to point the compat to local for debugging; when deployed, we point it to CDN + if (window.location.href.match(/localhost|127\.0\.0\.1/)) { + wllama.setCompat({ + wasm: '../../compat/wasm/wllama.wasm', + worker: '../../compat/wasm/wllama.js', + }, 'exclude_firefox'); + } else { + wllama.setCompat('default', 'exclude_firefox'); + } print(`DEMO EMBEDDINGS`); print(`Loading model ${MODEL}`); diff --git a/examples/main/package-lock.json b/examples/main/package-lock.json index ca39c470..4a1eb636 100644 --- a/examples/main/package-lock.json +++ b/examples/main/package-lock.json @@ -11,7 +11,6 @@ "@fortawesome/fontawesome-svg-core": "^6.6.0", "@fortawesome/free-solid-svg-icons": "^6.6.0", "@fortawesome/react-fontawesome": "^0.2.2", - "@huggingface/jinja": "^0.2.2", "daisyui": "^4.12.10", "react": "^18.3.1", "react-dom": "^18.3.1", @@ -26,6 +25,7 @@ "@typescript-eslint/parser": "^7.15.0", "@vitejs/plugin-react": "^4.3.1", "@wllama/wllama": "file:../../", + "@wllama/wllama-compat": "file:../../compat", "autoprefixer": "^10.4.19", "eslint": "^8.57.0", "eslint-plugin-react-hooks": "^4.6.2", @@ -38,14 +38,17 @@ }, "../..": { "name": "@wllama/wllama", - "version": "2.3.7", + "version": "3.1.1", "dev": true, "license": "MIT", + "dependencies": { + "@huggingface/jinja": "^0.5.8" + }, "devDependencies": { "@vitest/browser": "^2.1.6", "express": "^4.18.3", "mime-types": "^2.1.35", - "playwright": "^1.49.0", + "playwright": "^1.59.1", "prettier": "^3.3.3", "terser": "^5.39.0", "tsup": "^8.4.0", @@ -54,6 +57,12 @@ "webdriverio": "^9.4.1" } }, + "../../compat": { + "name": "@wllama/wllama-compat", + "version": "3.1.1", + "dev": true, + "license": "MIT" + }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", @@ -882,14 +891,6 @@ "react": ">=16.3" } }, - "node_modules/@huggingface/jinja": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@huggingface/jinja/-/jinja-0.2.2.tgz", - "integrity": "sha512-/KPde26khDUIPkTGU82jdtTW9UAuvUTumCAbFs/7giR0SxsvZC4hru51PBvpijH6BVkHcROcvZM/lpy5h1jRRA==", - "engines": { - "node": ">=18" - } - }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -1622,6 +1623,10 @@ "resolved": "../..", "link": true }, + "node_modules/@wllama/wllama-compat": { + "resolved": "../../compat", + "link": true + }, "node_modules/acorn": { "version": "8.12.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", diff --git a/examples/main/package.json b/examples/main/package.json index 4c5576d5..207b27be 100644 --- a/examples/main/package.json +++ b/examples/main/package.json @@ -27,6 +27,7 @@ "@typescript-eslint/parser": "^7.15.0", "@vitejs/plugin-react": "^4.3.1", "@wllama/wllama": "file:../../", + "@wllama/wllama-compat": "file:../../compat", "autoprefixer": "^10.4.19", "eslint": "^8.57.0", "eslint-plugin-react-hooks": "^4.6.2", diff --git a/examples/main/src/config.ts b/examples/main/src/config.ts index c7a58aff..02fbfd98 100644 --- a/examples/main/src/config.ts +++ b/examples/main/src/config.ts @@ -1,5 +1,7 @@ // See: https://vitejs.dev/guide/assets#explicit-url-imports import wllamaWasm from '@wllama/wllama/src/wasm/wllama.wasm?url'; +import compatWasm from '@wllama/wllama-compat/wasm/wllama.wasm?url'; +import compatWorker from '@wllama/wllama-compat/wasm/wllama.js?raw'; import wllamaPackageJson from '@wllama/wllama/package.json'; import { InferenceParams } from './utils/types'; @@ -9,6 +11,13 @@ export const WLLAMA_CONFIG_PATHS = { default: wllamaWasm, }; +export const WLLAMA_COMPAT_CONFIG = { + wasm: compatWasm, + worker: { + code: compatWorker, + }, +}; + export const MAX_GGUF_SIZE = 2 * 1024 * 1024 * 1024; // 2GB export const LIST_MODELS: { diff --git a/examples/main/src/utils/wllama.context.tsx b/examples/main/src/utils/wllama.context.tsx index 225f42f6..bc95a5b9 100644 --- a/examples/main/src/utils/wllama.context.tsx +++ b/examples/main/src/utils/wllama.context.tsx @@ -6,7 +6,11 @@ import { WllamaStorage, } from './utils'; import { Model, ModelManager, Wllama } from '@wllama/wllama'; -import { DEFAULT_INFERENCE_PARAMS, WLLAMA_CONFIG_PATHS } from '../config'; +import { + DEFAULT_INFERENCE_PARAMS, + WLLAMA_COMPAT_CONFIG, + WLLAMA_CONFIG_PATHS, +} from '../config'; import { InferenceParams, Message, @@ -59,11 +63,17 @@ interface WllamaContextValue { const WllamaContext = createContext({} as any); +const createWllamaInstance = () => { + const instance = new Wllama(WLLAMA_CONFIG_PATHS, { logger: DebugLogger }); + instance.setCompat(WLLAMA_COMPAT_CONFIG, 'exclude_firefox'); + return instance; +}; + const modelManager = new ModelManager(); -let wllamaInstance = new Wllama(WLLAMA_CONFIG_PATHS, { logger: DebugLogger }); +let wllamaInstance = createWllamaInstance(); let stopSignal = false; const resetWllamaInstance = () => { - wllamaInstance = new Wllama(WLLAMA_CONFIG_PATHS, { logger: DebugLogger }); + wllamaInstance = createWllamaInstance(); }; export const WllamaProvider = ({ children }: any) => { diff --git a/examples/multimodal/index.html b/examples/multimodal/index.html index 2a7cb300..666ca541 100644 --- a/examples/multimodal/index.html +++ b/examples/multimodal/index.html @@ -217,6 +217,18 @@

    Multimodal (Vision) Completion

    async function loadRemoteModel() { showProgressBar(true); wllama = new Wllama(CONFIG_PATHS); + // when running demo locally, we want to point the compat to local for debugging; when deployed, we point it to CDN + if (window.location.href.match(/localhost|127\.0\.0\.1/)) { + wllama.setCompat( + { + wasm: '../../compat/wasm/wllama.wasm', + worker: '../../compat/wasm/wllama.js', + }, + 'exclude_firefox' + ); + } else { + wllama.setCompat('default', 'exclude_firefox'); + } const makeProgressCallback = (label) => @@ -247,6 +259,18 @@

    Multimodal (Vision) Completion

    async function loadLocalFiles(files) { setStatus('Loading local files...'); wllama = new Wllama(CONFIG_PATHS); + // when running demo locally, we want to point the compat to local for debugging; when deployed, we point it to CDN + if (window.location.href.match(/localhost|127\.0\.0\.1/)) { + wllama.setCompat( + { + wasm: '../../compat/wasm/wllama.wasm', + worker: '../../compat/wasm/wllama.js', + }, + 'exclude_firefox' + ); + } else { + wllama.setCompat('default', 'exclude_firefox'); + } try { await wllama.loadModel(Array.from(files)); setStatus('Model loaded!'); diff --git a/examples/tools/index.html b/examples/tools/index.html index 625bbd6e..46a75cb4 100644 --- a/examples/tools/index.html +++ b/examples/tools/index.html @@ -611,6 +611,18 @@

    Tool Calling Demo (OAI-compat API)

    async function loadRemoteModel() { showProgressBar(true); wllama = new Wllama(CONFIG_PATHS); + // when running demo locally, we want to point the compat to local for debugging; when deployed, we point it to CDN + if (window.location.href.match(/localhost|127\.0\.0\.1/)) { + wllama.setCompat( + { + wasm: '../../compat/wasm/wllama.wasm', + worker: '../../compat/wasm/wllama.js', + }, + 'exclude_firefox' + ); + } else { + wllama.setCompat('default', 'exclude_firefox'); + } try { await wllama.loadModelFromHF(MODEL_HF, { progressCallback: ({ loaded, total }) => { @@ -634,6 +646,18 @@

    Tool Calling Demo (OAI-compat API)

    async function loadLocalFile(file) { setStatus('Loading local file…'); wllama = new Wllama(CONFIG_PATHS); + // when running demo locally, we want to point the compat to local for debugging; when deployed, we point it to CDN + if (window.location.href.match(/localhost|127\.0\.0\.1/)) { + wllama.setCompat( + { + wasm: '../../compat/wasm/wllama.wasm', + worker: '../../compat/wasm/wllama.js', + }, + 'exclude_firefox' + ); + } else { + wllama.setCompat('default', 'exclude_firefox'); + } try { await wllama.loadModel([file]); setStatus('Model loaded!'); diff --git a/scripts/post_build.sh b/scripts/post_build.sh index b50be12b..5322e9a7 100755 --- a/scripts/post_build.sh +++ b/scripts/post_build.sh @@ -21,3 +21,12 @@ function patch_esm_import_js { } patch_esm_import_js "./esm" + +# sync compat/package.json version with root package.json +node -e " + const fs = require('fs'); + const version = JSON.parse(fs.readFileSync('package.json', 'utf8')).version; + const compat = JSON.parse(fs.readFileSync('compat/package.json', 'utf8')); + compat.version = version; + fs.writeFileSync('compat/package.json', JSON.stringify(compat, null, 2) + '\n'); +" diff --git a/src/utils.ts b/src/utils.ts index 3533d1d7..9b6448ed 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -262,10 +262,10 @@ export const isSupportJSPI = () => { }; /** - * @returns true if brower support WebGPU and JSPI (required by emscripten build) + * @returns true if brower support WebGPU. Note: for browser without JSPI support, compat mode will be used. */ export const isSupportWebGPU = () => { - return !!(navigator as any).gpu && isSupportJSPI(); + return !!(navigator as any).gpu; }; /** diff --git a/src/wasm/wllama.js b/src/wasm/wllama.js index 4a5d75b2..fabd93d5 100644 --- a/src/wasm/wllama.js +++ b/src/wasm/wllama.js @@ -1 +1 @@ -var Module=typeof Module!="undefined"?Module:{};var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";var ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&self.name?.startsWith("em-pthread");if(ENVIRONMENT_IS_NODE){var worker_threads=require("worker_threads");global.Worker=worker_threads.Worker;ENVIRONMENT_IS_WORKER=!worker_threads.isMainThread;ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&worker_threads["workerData"]=="em-pthread"}var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=globalThis.document?.currentScript?.src;if(typeof __filename!="undefined"){_scriptName=__filename}else if(ENVIRONMENT_IS_WORKER){_scriptName=self.location.href}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");scriptDirectory=__dirname+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module}quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}if(!ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var defaultPrint=console.log.bind(console);var defaultPrintErr=console.error.bind(console);if(ENVIRONMENT_IS_NODE){var utils=require("util");var stringify=a=>typeof a=="object"?utils.inspect(a):a;defaultPrint=(...args)=>fs.writeSync(1,args.map(stringify).join(" ")+"\n");defaultPrintErr=(...args)=>fs.writeSync(2,args.map(stringify).join(" ")+"\n")}var out=defaultPrint;var err=defaultPrintErr;var wasmBinary;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var isFileURI=filename=>filename.startsWith("file://");function growMemViews(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}}if(ENVIRONMENT_IS_NODE&&ENVIRONMENT_IS_PTHREAD){var parentPort=worker_threads["parentPort"];parentPort.on("message",msg=>global.onmessage?.({data:msg}));Object.assign(globalThis,{self:global,postMessage:msg=>parentPort["postMessage"](msg)});process.on("uncaughtException",err=>{postMessage({cmd:"uncaughtException",error:err});process.exit(1)})}var startWorker;if(ENVIRONMENT_IS_PTHREAD){var initializedJS=false;self.onunhandledrejection=e=>{throw e.reason||e};async function handleMessage(e){try{var msgData=e["data"];var cmd=msgData.cmd;if(cmd==="load"){let messageQueue=[];self.onmessage=e=>messageQueue.push(e);startWorker=()=>{postMessage({cmd:"loaded"});for(let msg of messageQueue){handleMessage(msg)}self.onmessage=handleMessage};for(const handler of msgData.handlers){if(!Module[handler]||Module[handler].proxy){Module[handler]=(...args)=>{postMessage({cmd:"callHandler",handler,args})};if(handler=="print")out=Module[handler];if(handler=="printErr")err=Module[handler]}}wasmMemory=msgData.wasmMemory;updateMemoryViews();wasmModule=msgData.wasmModule;createWasm();run()}else if(cmd==="run"){establishStackSpace(msgData.pthread_ptr);__emscripten_thread_init(msgData.pthread_ptr,0,0,1,0,0);PThread.threadInitTLS();__emscripten_thread_mailbox_await(msgData.pthread_ptr);if(!initializedJS){initializedJS=true}try{await invokeEntryPoint(msgData.start_routine,msgData.arg)}catch(ex){if(ex!="unwind"){throw ex}}}else if(msgData.target==="setimmediate"){}else if(cmd==="checkMailbox"){if(initializedJS){checkMailbox()}}else if(cmd){err(`worker: received unknown command ${cmd}`);err(msgData)}}catch(ex){__emscripten_thread_crashed();throw ex}}self.onmessage=handleMessage}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function initMemory(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||134217728;wasmMemory=new WebAssembly.Memory({initial:BigInt(INITIAL_MEMORY/65536),maximum:65536n,shared:true,address:"i64"})}updateMemoryViews()}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return startWorker();if(!Module["noFSInit"]&&!FS.initialized)FS.init();TTY.init();wasmExports["__wasm_call_ctors"]();FS.ignorePermissions=false}function preMain(){}function postRun(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";if(runtimeInitialized){___trap()}var e=new WebAssembly.RuntimeError(what);throw e}var wasmBinaryFile;function findWasmBinary(){return locateFile("wllama.wasm")}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){assignWasmImports();if(!wasmImports.__instrumented){wasmImports.__instrumented=true;Asyncify.instrumentWasmImports(wasmImports)}var imports={env:wasmImports,wasi_snapshot_preview1:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmExports=applySignatureConversions(wasmExports);registerTLSInit(wasmExports["_emscripten_tls_init"]);assignWasmExports(wasmExports);wasmModule=module;removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){return receiveInstance(result["instance"],result["module"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}if(ENVIRONMENT_IS_PTHREAD){var instance=new WebAssembly.Instance(wasmModule,getWasmImports());return receiveInstance(instance,wasmModule)}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var terminateWorker=worker=>{worker.terminate();worker.onmessage=e=>{}};var cleanupThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];PThread.returnWorkerToPool(worker)};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}};var addRunDependency=id=>{runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)};var spawnThread=threadParams=>{var worker=PThread.getNewWorker();if(!worker){return 6}PThread.runningWorkers.push(worker);PThread.pthreads[threadParams.pthread_ptr]=worker;worker.pthread_ptr=threadParams.pthread_ptr;var msg={cmd:"run",start_routine:threadParams.startRoutine,arg:threadParams.arg,pthread_ptr:threadParams.pthread_ptr};if(ENVIRONMENT_IS_NODE){worker.unref()}worker.postMessage(msg,threadParams.transferList);return 0};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var stackSave=()=>_emscripten_stack_get_current();var stackRestore=val=>__emscripten_stack_restore(val);var stackAlloc=sz=>__emscripten_stack_alloc(sz);var proxyToMainThread=(funcIndex,emAsmAddr,sync,...callArgs)=>{var serializedNumCallArgs=callArgs.length*2;var sp=stackSave();var args=stackAlloc(serializedNumCallArgs*8);var b=args/8;for(var i=0;i{EXITSTATUS=status;if(ENVIRONMENT_IS_PTHREAD){exitOnMainThread(status);throw"unwind"}_proc_exit(status)};var _exit=exitJS;var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init(){if(!ENVIRONMENT_IS_PTHREAD){PThread.initMainThread()}},initMainThread(){var pthreadPoolSize=Module["pthreadPoolSize"];while(pthreadPoolSize--){PThread.allocateUnusedWorker()}addOnPreRun(async()=>{var pthreadPoolReady=PThread.loadWasmModuleToAllWorkers();addRunDependency("loading-workers");await pthreadPoolReady;removeRunDependency("loading-workers")})},terminateAllThreads:()=>{for(var worker of PThread.runningWorkers){terminateWorker(worker)}for(var worker of PThread.unusedWorkers){terminateWorker(worker)}PThread.unusedWorkers=[];PThread.runningWorkers=[];PThread.pthreads={}},returnWorkerToPool:worker=>{var pthread_ptr=worker.pthread_ptr;delete PThread.pthreads[pthread_ptr];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);worker.pthread_ptr=0;__emscripten_thread_free_data(pthread_ptr)},threadInitTLS(){PThread.tlsInitFunctions.forEach(f=>f())},loadWasmModuleToWorker:worker=>new Promise(onFinishedLoading=>{worker.onmessage=e=>{var d=e["data"];var cmd=d.cmd;if(d.targetThread&&d.targetThread!=_pthread_self()){var targetWorker=PThread.pthreads[d.targetThread];if(targetWorker){targetWorker.postMessage(d,d.transferList)}else{err(`Internal error! Worker sent a message "${cmd}" to target pthread ${d.targetThread}, but that thread no longer exists!`)}return}if(cmd==="checkMailbox"){checkMailbox()}else if(cmd==="spawnThread"){spawnThread(d)}else if(cmd==="cleanupThread"){callUserCallback(()=>cleanupThread(d.thread))}else if(cmd==="loaded"){worker.loaded=true;if(ENVIRONMENT_IS_NODE&&!worker.pthread_ptr){worker.unref()}onFinishedLoading(worker)}else if(d.target==="setimmediate"){worker.postMessage(d)}else if(cmd==="uncaughtException"){worker.onerror(d.error)}else if(cmd==="callHandler"){Module[d.handler](...d.args)}else if(cmd){err(`worker sent an unknown command ${cmd}`)}};worker.onerror=e=>{var message="worker sent an error!";err(`${message} ${e.filename}:${e.lineno}: ${e.message}`);throw e};if(ENVIRONMENT_IS_NODE){worker.on("message",data=>worker.onmessage({data}));worker.on("error",e=>worker.onerror(e))}var handlers=[];var knownHandlers=["onExit","onAbort","print","printErr"];for(var handler of knownHandlers){if(Module.propertyIsEnumerable(handler)){handlers.push(handler)}}worker.postMessage({cmd:"load",handlers,wasmMemory,wasmModule})}),async loadWasmModuleToAllWorkers(){if(ENVIRONMENT_IS_PTHREAD){return}let pthreadPoolReady=Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker));return pthreadPoolReady},allocateUnusedWorker(){var worker;var pthreadMainJs=_scriptName;if(Module["mainScriptUrlOrBlob"]){pthreadMainJs=Module["mainScriptUrlOrBlob"];if(typeof pthreadMainJs!="string"){pthreadMainJs=URL.createObjectURL(pthreadMainJs)}}worker=new Worker(pthreadMainJs,{workerData:"em-pthread",name:"em-pthread"});PThread.unusedWorkers.push(worker)},getNewWorker(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);function establishStackSpace(pthread_ptr){var stackHigh=Number((growMemViews(),HEAPU64)[(pthread_ptr+88)/8]);var stackSize=Number((growMemViews(),HEAPU64)[(pthread_ptr+96)/8]);var stackLow=stackHigh-stackSize;_emscripten_stack_set_limits(stackHigh,stackLow);stackRestore(stackHigh)}function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return(growMemViews(),HEAP8)[ptr];case"i8":return(growMemViews(),HEAP8)[ptr];case"i16":return(growMemViews(),HEAP16)[ptr/2];case"i32":return(growMemViews(),HEAP32)[ptr/4];case"i64":return(growMemViews(),HEAP64)[ptr/8];case"float":return(growMemViews(),HEAPF32)[ptr/4];case"double":return(growMemViews(),HEAPF64)[ptr/8];case"*":return Number((growMemViews(),HEAPU64)[ptr/8]);default:abort(`invalid type for getValue: ${type}`)}}var wasmTableMirror=[];var getWasmTableEntry=funcPtr=>{funcPtr=Number(funcPtr);var func=wasmTableMirror[funcPtr];if(!func){wasmTableMirror[funcPtr]=func=wasmTable.get(BigInt(funcPtr));if(Asyncify.isAsyncExport(func)){wasmTableMirror[funcPtr]=func=Asyncify.makeAsyncFunction(func)}}return func};var invokeEntryPoint=async(ptr,arg)=>{runtimeKeepaliveCounter=0;noExitRuntime=0;var result=(a1=>WebAssembly.promising(getWasmTableEntry(ptr)).call(null,BigInt(a1)))(arg);function finish(result){if(keepRuntimeAlive()){EXITSTATUS=result;return}__emscripten_thread_exit(result)}result=await result;finish(result)};invokeEntryPoint.isAsync=true;var noExitRuntime=true;var registerTLSInit=tlsInitFunc=>PThread.tlsInitFunctions.push(tlsInitFunc);function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":(growMemViews(),HEAP8)[ptr]=value;break;case"i8":(growMemViews(),HEAP8)[ptr]=value;break;case"i16":(growMemViews(),HEAP16)[ptr/2]=value;break;case"i32":(growMemViews(),HEAP32)[ptr/4]=value;break;case"i64":(growMemViews(),HEAP64)[ptr/8]=BigInt(value);break;case"float":(growMemViews(),HEAPF32)[ptr/4]=value;break;case"double":(growMemViews(),HEAPF64)[ptr/8]=value;break;case"*":(growMemViews(),HEAPU64)[ptr/8]=BigInt(value);break;default:abort(`invalid type for setValue: ${type}`)}}var wasmMemory;var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>numINT53_MAX?NaN:Number(num);var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.buffer instanceof ArrayBuffer?heapOrArray.subarray(idx,endPtr):heapOrArray.slice(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString((growMemViews(),HEAPU8),ptr,maxBytesToRead,ignoreNul):"";function ___assert_fail(condition,filename,line,func){condition=bigintToI53Checked(condition);filename=bigintToI53Checked(filename);func=bigintToI53Checked(func);return abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(2,0,1,pthread_ptr,attr,startRoutine,arg);return ___pthread_create_js(pthread_ptr,attr,startRoutine,arg)}var _emscripten_has_threading_support=()=>!!globalThis.SharedArrayBuffer;function ___pthread_create_js(pthread_ptr,attr,startRoutine,arg){pthread_ptr=bigintToI53Checked(pthread_ptr);attr=bigintToI53Checked(attr);startRoutine=bigintToI53Checked(startRoutine);arg=bigintToI53Checked(arg);if(!_emscripten_has_threading_support()){return 6}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg)}if(error)return error;var threadParams={startRoutine,pthread_ptr,arg,transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}var syscallGetVarargP=()=>{var ret=Number((growMemViews(),HEAPU64)[SYSCALLS.varargs/8]);SYSCALLS.varargs+=8;return ret};var syscallGetVarargI=()=>{var ret=(growMemViews(),HEAP32)[+SYSCALLS.varargs/4];SYSCALLS.varargs+=4;return ret};var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\/]+|\/)\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>view=>view.set(crypto.getRandomValues(new Uint8Array(view.byteLength)));var randomFill=view=>{(randomFill=initRandomFill())(view)};var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++}}heap[outIdx]=0;return outIdx-startIdx};var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}}else if(globalThis.window?.prompt){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var zeroMemory=(ptr,size)=>(growMemViews(),HEAPU8).fill(0,ptr,ptr+size);var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(ptr)zeroMemory(ptr,size);return ptr};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of["mode","atime","mtime","ctime"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){if(!MEMFS.doesNotExistError){MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack=""}throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[".","..",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var getUniqueRunDependency=id=>id;var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!="undefined")Browser.init();for(var plugin of preloadPlugins){if(plugin["canHandle"](fullname)){return plugin["handle"](byteArray,fullname)}}return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);addRunDependency(dep);try{var byteArray=url;if(typeof url=="string"){byteArray=await asyncLoad(url)}byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}}finally{removeRunDependency(dep)}};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+"/"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&(512|64)){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}for(var mount of mounts){if(mount.type.syncfs){mount.type.syncfs(mount,populate,done)}else{done(null)}}},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);for(var[hash,current]of Object.entries(FS.nameTable)){while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}}node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name==="."||name===".."){throw new FS.ErrnoError(20)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+="/";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path=="object"){node=path}else{isDirPath=path.endsWith("/");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}if(Module["logReadFiles"]&&!(flags&1)){if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){abort(`Invalid encoding type "${opts.encoding}"`)}var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){buf=UTF8ArrayToString(buf)}FS.close(stream);return buf},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){data=new Uint8Array(intArrayFromString(data,true))}if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{abort("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},"/proc/self/fd")},createStandardStreams(input,output,error){if(input){FS.createDevice("/dev","stdin",input)}else{FS.symlink("/dev/tty","/dev/stdin")}if(output){FS.createDevice("/dev","stdout",null,output)}else{FS.symlink("/dev/tty","/dev/stdout")}if(error){FS.createDevice("/dev","stderr",null,error)}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){FS.initialized=true;input??=Module["stdin"];output??=Module["stdout"];error??=Module["stderr"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)abort("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)abort("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")abort("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(globalThis.XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)abort("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};for(const[key,fn]of Object.entries(node.stream_ops)){stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}}function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,(growMemViews(),HEAP8),ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+"/"+path},writeStat(buf,stat){(growMemViews(),HEAPU32)[buf/4]=stat.dev;(growMemViews(),HEAPU32)[(buf+4)/4]=stat.mode;(growMemViews(),HEAPU64)[(buf+8)/8]=BigInt(stat.nlink);(growMemViews(),HEAPU32)[(buf+16)/4]=stat.uid;(growMemViews(),HEAPU32)[(buf+20)/4]=stat.gid;(growMemViews(),HEAPU32)[(buf+24)/4]=stat.rdev;(growMemViews(),HEAP64)[(buf+32)/8]=BigInt(stat.size);(growMemViews(),HEAP32)[(buf+40)/4]=4096;(growMemViews(),HEAP32)[(buf+44)/4]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();(growMemViews(),HEAP64)[(buf+48)/8]=BigInt(Math.floor(atime/1e3));(growMemViews(),HEAPU64)[(buf+56)/8]=BigInt(atime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+64)/8]=BigInt(Math.floor(mtime/1e3));(growMemViews(),HEAPU64)[(buf+72)/8]=BigInt(mtime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+80)/8]=BigInt(Math.floor(ctime/1e3));(growMemViews(),HEAPU64)[(buf+88)/8]=BigInt(ctime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+96)/8]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){(growMemViews(),HEAPU32)[(buf+8)/4]=stats.bsize;(growMemViews(),HEAPU32)[(buf+72)/4]=stats.bsize;(growMemViews(),HEAP64)[(buf+16)/8]=BigInt(stats.blocks);(growMemViews(),HEAP64)[(buf+24)/8]=BigInt(stats.bfree);(growMemViews(),HEAP64)[(buf+32)/8]=BigInt(stats.bavail);(growMemViews(),HEAP64)[(buf+40)/8]=BigInt(stats.files);(growMemViews(),HEAP64)[(buf+48)/8]=BigInt(stats.ffree);(growMemViews(),HEAPU32)[(buf+56)/4]=stats.fsid;(growMemViews(),HEAPU32)[(buf+80)/4]=stats.flags;(growMemViews(),HEAPU32)[(buf+64)/4]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=(growMemViews(),HEAPU8).slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(3,0,1,fd,cmd,varargs);varargs=bigintToI53Checked(varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 5:{var arg=syscallGetVarargP();var offset=0;(growMemViews(),HEAP16)[(arg+offset)/2]=2;return 0}case 6:case 7:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(4,0,1,fd,buf);buf=bigintToI53Checked(buf);try{return SYSCALLS.writeStat(buf,FS.fstat(fd))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,(growMemViews(),HEAPU8),outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(5,0,1,buf,size);buf=bigintToI53Checked(buf);size=bigintToI53Checked(size);try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(sizeabort("");function __emscripten_init_main_thread_js(tb){tb=bigintToI53Checked(tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1,!ENVIRONMENT_IS_WEB,65536,false);PThread.threadInitTLS()}var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var maybeExit=()=>{if(!keepRuntimeAlive()){try{if(ENVIRONMENT_IS_PTHREAD){if(_pthread_self())__emscripten_thread_exit(EXITSTATUS);return}_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};function __emscripten_thread_mailbox_await(pthread_ptr){pthread_ptr=bigintToI53Checked(pthread_ptr);if(Atomics.waitAsync){var wait=Atomics.waitAsync((growMemViews(),HEAP32),pthread_ptr/4,pthread_ptr);wait.value.then(checkMailbox);var waitingAsync=pthread_ptr+228;Atomics.store((growMemViews(),HEAP32),waitingAsync/4,1)}}var checkMailbox=()=>callUserCallback(()=>{var pthread_ptr=_pthread_self();if(pthread_ptr){__emscripten_thread_mailbox_await(pthread_ptr);__emscripten_check_mailbox()}});function __emscripten_notify_mailbox_postmessage(targetThread,currThreadId){targetThread=bigintToI53Checked(targetThread);currThreadId=bigintToI53Checked(currThreadId);if(targetThread==currThreadId){setTimeout(checkMailbox)}else if(ENVIRONMENT_IS_PTHREAD){postMessage({targetThread,cmd:"checkMailbox"})}else{var worker=PThread.pthreads[targetThread];if(!worker){return}worker.postMessage({cmd:"checkMailbox"})}}var proxiedJSCallArgs=[];function __emscripten_receive_on_main_thread_js(funcIndex,emAsmAddr,callingThread,numCallArgs,args){emAsmAddr=bigintToI53Checked(emAsmAddr);callingThread=bigintToI53Checked(callingThread);args=bigintToI53Checked(args);numCallArgs/=2;proxiedJSCallArgs.length=numCallArgs;var b=args/8;for(var i=0;i{noExitRuntime=false;runtimeKeepaliveCounter=0};function __emscripten_thread_cleanup(thread){thread=bigintToI53Checked(thread);if(!ENVIRONMENT_IS_PTHREAD)cleanupThread(thread);else postMessage({cmd:"cleanupThread",thread})}function __emscripten_thread_set_strongref(thread){thread=bigintToI53Checked(thread);if(ENVIRONMENT_IS_NODE){PThread.pthreads[thread].ref()}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time,tmPtr){time=bigintToI53Checked(time);tmPtr=bigintToI53Checked(tmPtr);var date=new Date(time*1e3);(growMemViews(),HEAP32)[tmPtr/4]=date.getSeconds();(growMemViews(),HEAP32)[(tmPtr+4)/4]=date.getMinutes();(growMemViews(),HEAP32)[(tmPtr+8)/4]=date.getHours();(growMemViews(),HEAP32)[(tmPtr+12)/4]=date.getDate();(growMemViews(),HEAP32)[(tmPtr+16)/4]=date.getMonth();(growMemViews(),HEAP32)[(tmPtr+20)/4]=date.getFullYear()-1900;(growMemViews(),HEAP32)[(tmPtr+24)/4]=date.getDay();var yday=ydayFromDate(date)|0;(growMemViews(),HEAP32)[(tmPtr+28)/4]=yday;(growMemViews(),HEAP64)[(tmPtr+40)/8]=BigInt(-(date.getTimezoneOffset()*60));var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;(growMemViews(),HEAP32)[(tmPtr+32)/4]=dst}function __mmap_js(len,prot,flags,fd,offset,allocated,addr){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(12,0,1,len,prot,flags,fd,offset,allocated,addr);len=bigintToI53Checked(len);offset=bigintToI53Checked(offset);allocated=bigintToI53Checked(allocated);addr=bigintToI53Checked(addr);try{var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;(growMemViews(),HEAP32)[allocated/4]=res.allocated;(growMemViews(),HEAPU64)[addr/8]=BigInt(ptr);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(13,0,1,addr,len,prot,flags,fd,offset);addr=bigintToI53Checked(addr);len=bigintToI53Checked(len);offset=bigintToI53Checked(offset);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var timers={};var _emscripten_get_now=()=>performance.timeOrigin+performance.now();function __setitimer_js(which,timeout_ms){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(14,0,1,which,timeout_ms);if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0}var __tzset_js=function(timezone,daylight,std_name,dst_name){timezone=bigintToI53Checked(timezone);daylight=bigintToI53Checked(daylight);std_name=bigintToI53Checked(std_name);dst_name=bigintToI53Checked(dst_name);var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);(growMemViews(),HEAPU64)[timezone/8]=BigInt(stdTimezoneOffset*60);(growMemViews(),HEAP32)[daylight/4]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffsetDate.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);ptime=bigintToI53Checked(ptime);if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);(growMemViews(),HEAP64)[ptime/8]=BigInt(nsec);return 0}var _emscripten_check_blocking_allowed=()=>{};var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};var _emscripten_exit_with_live_runtime=()=>{runtimeKeepalivePush();throw"unwind"};var getHeapMax=()=>4294967296;var _emscripten_get_heap_max=()=>BigInt(getHeapMax());var _emscripten_has_asyncify=()=>2;var _emscripten_num_logical_cores=()=>ENVIRONMENT_IS_NODE?require("os").cpus().length:navigator["hardwareConcurrency"];var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(BigInt(pages));updateMemoryViews();return 1}catch(e){}};function _emscripten_resize_heap(requestedSize){requestedSize=bigintToI53Checked(requestedSize);var oldSize=(growMemViews(),HEAPU8).length;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false}var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var writeI53ToI64=(ptr,num)=>{(growMemViews(),HEAPU32)[ptr/4]=num;var lower=(growMemViews(),HEAPU32)[ptr/4];(growMemViews(),HEAPU32)[(ptr+4)/4]=(num-lower)/4294967296};var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var readI53FromI64=ptr=>(growMemViews(),HEAPU32)[ptr/4]+(growMemViews(),HEAP32)[(ptr+4)/4]*4294967296;var WebGPU={Internals:{jsObjects:[],jsObjectInsert:(ptr,jsObject)=>{WebGPU.Internals.jsObjects[ptr]=jsObject},bufferOnUnmaps:[],futures:[],futureInsert:(futureId,promise)=>{WebGPU.Internals.futures[futureId]=new Promise(resolve=>promise.finally(()=>resolve(futureId)))}},getJsObject:ptr=>{if(!ptr)return undefined;return WebGPU.Internals.jsObjects[ptr]},importJsAdapter:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateAdapter(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroup:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroup(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroupLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroupLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBuffer:(buffer,parentPtr=0)=>{assert(buffer.mapState==="unmapped");var bufferPtr=_emwgpuCreateBuffer(parentPtr);WebGPU.Internals.jsObjectInsert(bufferPtr,buffer);return bufferPtr},importJsCommandBuffer:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandBuffer(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsCommandEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsDevice:(device,parentPtr=0)=>{var queuePtr=_emwgpuCreateQueue(parentPtr);var devicePtr=_emwgpuCreateDevice(parentPtr,queuePtr);WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);return devicePtr},importJsExternalTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateExternalTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsPipelineLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreatePipelineLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQuerySet:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQuerySet(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQueue:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQueue(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundle:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundle(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundleEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundleEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSampler:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSampler(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsShaderModule:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateShaderModule(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSurface:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSurface(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTextureView:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTextureView(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},errorCallback:(callback,type,message,userdata)=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(message);((a1,a2,a3)=>getWasmTableEntry(callback).call(null,a1,BigInt(a2),BigInt(a3)))(type,BigInt(messagePtr),userdata);stackRestore(sp)},iterateExtensions:(root,handlers)=>{for(var ptr=Number((growMemViews(),HEAPU64)[root/8]);ptr;ptr=Number((growMemViews(),HEAPU64)[ptr/8])){var sType=(growMemViews(),HEAP32)[(ptr+8)/4];var handler=handlers[sType](ptr)}},setStringView:(ptr,data,length)=>{(growMemViews(),HEAPU64)[ptr/8]=BigInt(data);(growMemViews(),HEAPU64)[(ptr+8)/8]=BigInt(length)},makeStringFromStringView:stringViewPtr=>{var ptr=Number((growMemViews(),HEAPU64)[stringViewPtr/8]);var length=Number((growMemViews(),HEAPU64)[(stringViewPtr+8)/8]);return UTF8ToString(ptr,length)},makeStringFromOptionalStringView:stringViewPtr=>{var ptr=Number((growMemViews(),HEAPU64)[stringViewPtr/8]);var length=Number((growMemViews(),HEAPU64)[(stringViewPtr+8)/8]);if(!ptr){if(length===0){return""}return undefined}return UTF8ToString(ptr,length)},makeColor:ptr=>({r:(growMemViews(),HEAPF64)[ptr/8],g:(growMemViews(),HEAPF64)[(ptr+8)/8],b:(growMemViews(),HEAPF64)[(ptr+16)/8],a:(growMemViews(),HEAPF64)[(ptr+24)/8]}),makeExtent3D:ptr=>({width:(growMemViews(),HEAPU32)[ptr/4],height:(growMemViews(),HEAPU32)[(ptr+4)/4],depthOrArrayLayers:(growMemViews(),HEAPU32)[(ptr+8)/4]}),makeOrigin3D:ptr=>({x:(growMemViews(),HEAPU32)[ptr/4],y:(growMemViews(),HEAPU32)[(ptr+4)/4],z:(growMemViews(),HEAPU32)[(ptr+8)/4]}),makeTexelCopyTextureInfo:ptr=>({texture:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[ptr/8])),mipLevel:(growMemViews(),HEAPU32)[(ptr+8)/4],origin:WebGPU.makeOrigin3D(ptr+12),aspect:WebGPU.TextureAspect[(growMemViews(),HEAP32)[(ptr+24)/4]]}),makeTexelCopyBufferLayout:ptr=>{var bytesPerRow=(growMemViews(),HEAPU32)[(ptr+8)/4];var rowsPerImage=(growMemViews(),HEAPU32)[(ptr+12)/4];return{offset:readI53FromI64(ptr),bytesPerRow:bytesPerRow===4294967295?undefined:bytesPerRow,rowsPerImage:rowsPerImage===4294967295?undefined:rowsPerImage}},makeTexelCopyBufferInfo:ptr=>{var layoutPtr=ptr+0;var bufferCopyView=WebGPU.makeTexelCopyBufferLayout(layoutPtr);bufferCopyView["buffer"]=WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+16)/8]));return bufferCopyView},makePassTimestampWrites:ptr=>{if(ptr===0)return undefined;return{querySet:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+8)/8])),beginningOfPassWriteIndex:(growMemViews(),HEAPU32)[(ptr+16)/4],endOfPassWriteIndex:(growMemViews(),HEAPU32)[(ptr+20)/4]}},makePipelineConstants:(constantCount,constantsPtr)=>{if(!constantCount)return;var constants={};for(var i=0;i{if(!layoutPtr)return"auto";return WebGPU.getJsObject(layoutPtr)},makeComputeState:ptr=>{if(!ptr)return undefined;var desc={module:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+8)/8])),constants:WebGPU.makePipelineConstants(Number((growMemViews(),HEAPU64)[(ptr+32)/8]),Number((growMemViews(),HEAPU64)[(ptr+40)/8])),entryPoint:WebGPU.makeStringFromOptionalStringView(ptr+16)};return desc},makeComputePipelineDesc:descriptor=>{var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8),layout:WebGPU.makePipelineLayout(Number((growMemViews(),HEAPU64)[(descriptor+24)/8])),compute:WebGPU.makeComputeState(descriptor+32)};return desc},makeRenderPipelineDesc:descriptor=>{function makePrimitiveState(psPtr){if(!psPtr)return undefined;return{topology:WebGPU.PrimitiveTopology[(growMemViews(),HEAP32)[(psPtr+8)/4]],stripIndexFormat:WebGPU.IndexFormat[(growMemViews(),HEAP32)[(psPtr+12)/4]],frontFace:WebGPU.FrontFace[(growMemViews(),HEAP32)[(psPtr+16)/4]],cullMode:WebGPU.CullMode[(growMemViews(),HEAP32)[(psPtr+20)/4]],unclippedDepth:!!(growMemViews(),HEAPU32)[(psPtr+24)/4]}}function makeBlendComponent(bdPtr){if(!bdPtr)return undefined;return{operation:WebGPU.BlendOperation[(growMemViews(),HEAP32)[bdPtr/4]],srcFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[(bdPtr+4)/4]],dstFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[(bdPtr+8)/4]]}}function makeBlendState(bsPtr){if(!bsPtr)return undefined;return{alpha:makeBlendComponent(bsPtr+12),color:makeBlendComponent(bsPtr+0)}}function makeColorState(csPtr){var format=WebGPU.TextureFormat[(growMemViews(),HEAP32)[(csPtr+8)/4]];return format?{format,blend:makeBlendState(Number((growMemViews(),HEAPU64)[(csPtr+16)/8])),writeMask:(growMemViews(),HEAPU32)[(csPtr+24)/4]}:undefined}function makeColorStates(count,csArrayPtr){var states=[];for(var i=0;i{var nextInChainPtr=Number((growMemViews(),HEAPU64)[limitsOutPtr/8]);function setLimitValueU32(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;(growMemViews(),HEAPU32)[(basePtr+limitOffset)/4]=limitValue}function setLimitValueU64(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;writeI53ToI64(basePtr+limitOffset,limitValue)}setLimitValueU32("maxTextureDimension1D",limitsOutPtr,8);setLimitValueU32("maxTextureDimension2D",limitsOutPtr,12);setLimitValueU32("maxTextureDimension3D",limitsOutPtr,16);setLimitValueU32("maxTextureArrayLayers",limitsOutPtr,20);setLimitValueU32("maxBindGroups",limitsOutPtr,24);setLimitValueU32("maxBindGroupsPlusVertexBuffers",limitsOutPtr,28);setLimitValueU32("maxBindingsPerBindGroup",limitsOutPtr,32);setLimitValueU32("maxDynamicUniformBuffersPerPipelineLayout",limitsOutPtr,36);setLimitValueU32("maxDynamicStorageBuffersPerPipelineLayout",limitsOutPtr,40);setLimitValueU32("maxSampledTexturesPerShaderStage",limitsOutPtr,44);setLimitValueU32("maxSamplersPerShaderStage",limitsOutPtr,48);setLimitValueU32("maxStorageBuffersPerShaderStage",limitsOutPtr,52);setLimitValueU32("maxStorageTexturesPerShaderStage",limitsOutPtr,56);setLimitValueU32("maxUniformBuffersPerShaderStage",limitsOutPtr,60);setLimitValueU32("minUniformBufferOffsetAlignment",limitsOutPtr,80);setLimitValueU32("minStorageBufferOffsetAlignment",limitsOutPtr,84);setLimitValueU64("maxUniformBufferBindingSize",limitsOutPtr,64);setLimitValueU64("maxStorageBufferBindingSize",limitsOutPtr,72);setLimitValueU32("maxVertexBuffers",limitsOutPtr,88);setLimitValueU64("maxBufferSize",limitsOutPtr,96);setLimitValueU32("maxVertexAttributes",limitsOutPtr,104);setLimitValueU32("maxVertexBufferArrayStride",limitsOutPtr,108);setLimitValueU32("maxInterStageShaderVariables",limitsOutPtr,112);setLimitValueU32("maxColorAttachments",limitsOutPtr,116);setLimitValueU32("maxColorAttachmentBytesPerSample",limitsOutPtr,120);setLimitValueU32("maxComputeWorkgroupStorageSize",limitsOutPtr,124);setLimitValueU32("maxComputeInvocationsPerWorkgroup",limitsOutPtr,128);setLimitValueU32("maxComputeWorkgroupSizeX",limitsOutPtr,132);setLimitValueU32("maxComputeWorkgroupSizeY",limitsOutPtr,136);setLimitValueU32("maxComputeWorkgroupSizeZ",limitsOutPtr,140);setLimitValueU32("maxComputeWorkgroupsPerDimension",limitsOutPtr,144);setLimitValueU32("maxImmediateSize",limitsOutPtr,148);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var compatibilityModeLimitsPtr=nextInChainPtr;setLimitValueU32("maxStorageBuffersInVertexStage",compatibilityModeLimitsPtr,16,limits.maxStorageBuffersPerShaderStage);setLimitValueU32("maxStorageBuffersInFragmentStage",compatibilityModeLimitsPtr,24,limits.maxStorageBuffersPerShaderStage);setLimitValueU32("maxStorageTexturesInVertexStage",compatibilityModeLimitsPtr,20,limits.maxStorageTexturesPerShaderStage);setLimitValueU32("maxStorageTexturesInFragmentStage",compatibilityModeLimitsPtr,28,limits.maxStorageTexturesPerShaderStage)}},fillAdapterInfoStruct:(info,infoStruct)=>{(growMemViews(),HEAPU32)[(infoStruct+88)/4]=info.subgroupMinSize;(growMemViews(),HEAPU32)[(infoStruct+92)/4]=info.subgroupMaxSize;var strs=info.vendor+info.architecture+info.device+info.description;var strPtr=stringToNewUTF8(strs);var vendorLen=lengthBytesUTF8(info.vendor);WebGPU.setStringView(infoStruct+8,strPtr,vendorLen);strPtr+=vendorLen;var architectureLen=lengthBytesUTF8(info.architecture);WebGPU.setStringView(infoStruct+24,strPtr,architectureLen);strPtr+=architectureLen;var deviceLen=lengthBytesUTF8(info.device);WebGPU.setStringView(infoStruct+40,strPtr,deviceLen);strPtr+=deviceLen;var descriptionLen=lengthBytesUTF8(info.description);WebGPU.setStringView(infoStruct+56,strPtr,descriptionLen);strPtr+=descriptionLen;(growMemViews(),HEAP32)[(infoStruct+72)/4]=2;var adapterType=info.isFallbackAdapter?3:4;(growMemViews(),HEAP32)[(infoStruct+76)/4]=adapterType;(growMemViews(),HEAPU32)[(infoStruct+80)/4]=0;(growMemViews(),HEAPU32)[(infoStruct+84)/4]=0},AddressMode:[,"clamp-to-edge","repeat","mirror-repeat"],BlendFactor:[,"zero","one","src","one-minus-src","src-alpha","one-minus-src-alpha","dst","one-minus-dst","dst-alpha","one-minus-dst-alpha","src-alpha-saturated","constant","one-minus-constant","src1","one-minus-src1","src1-alpha","one-minus-src1-alpha"],BlendOperation:[,"add","subtract","reverse-subtract","min","max"],BufferBindingType:[,,"uniform","storage","read-only-storage"],BufferMapState:[,"unmapped","pending","mapped"],CompareFunction:[,"never","less","equal","less-equal","greater","not-equal","greater-equal","always"],CompilationInfoRequestStatus:[,"success","callback-cancelled"],ComponentSwizzle:[,"0","1","r","g","b","a"],CompositeAlphaMode:[,"opaque","premultiplied","unpremultiplied","inherit"],CullMode:[,"none","front","back"],ErrorFilter:[,"validation","out-of-memory","internal"],FeatureLevel:[,"compatibility","core"],FeatureName:{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",22:"texture-component-swizzle",327692:"chromium-experimental-unorm16-texture-formats",327729:"chromium-experimental-multi-draw-indirect"},FilterMode:[,"nearest","linear"],FrontFace:[,"ccw","cw"],IndexFormat:[,"uint16","uint32"],InstanceFeatureName:[,"timed-wait-any","shader-source-spirv","multiple-devices-per-adapter"],LoadOp:[,"load","clear"],MipmapFilterMode:[,"nearest","linear"],OptionalBool:["false","true"],PowerPreference:[,"low-power","high-performance"],PredefinedColorSpace:[,"srgb","display-p3"],PrimitiveTopology:[,"point-list","line-list","line-strip","triangle-list","triangle-strip"],QueryType:[,"occlusion","timestamp"],SamplerBindingType:[,,"filtering","non-filtering","comparison"],Status:[,"success","error"],StencilOperation:[,"keep","zero","replace","invert","increment-clamp","decrement-clamp","increment-wrap","decrement-wrap"],StorageTextureAccess:[,,"write-only","read-only","read-write"],StoreOp:[,"store","discard"],SurfaceGetCurrentTextureStatus:[,"success-optimal","success-suboptimal","timeout","outdated","lost","error"],TextureAspect:[,"all","stencil-only","depth-only"],TextureDimension:[,"1d","2d","3d"],TextureFormat:[,"r8unorm","r8snorm","r8uint","r8sint","r16unorm","r16snorm","r16uint","r16sint","r16float","rg8unorm","rg8snorm","rg8uint","rg8sint","r32float","r32uint","r32sint","rg16unorm","rg16snorm","rg16uint","rg16sint","rg16float","rgba8unorm","rgba8unorm-srgb","rgba8snorm","rgba8uint","rgba8sint","bgra8unorm","bgra8unorm-srgb","rgb10a2uint","rgb10a2unorm","rg11b10ufloat","rgb9e5ufloat","rg32float","rg32uint","rg32sint","rgba16unorm","rgba16snorm","rgba16uint","rgba16sint","rgba16float","rgba32float","rgba32uint","rgba32sint","stencil8","depth16unorm","depth24plus","depth24plus-stencil8","depth32float","depth32float-stencil8","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb","bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm","bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb","etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm","astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"],TextureSampleType:[,,"float","unfilterable-float","depth","sint","uint"],TextureViewDimension:[,"1d","2d","2d-array","cube","cube-array","3d"],ToneMappingMode:[,"standard","extended"],VertexFormat:[,"uint8","uint8x2","uint8x4","sint8","sint8x2","sint8x4","unorm8","unorm8x2","unorm8x4","snorm8","snorm8x2","snorm8x4","uint16","uint16x2","uint16x4","sint16","sint16x2","sint16x4","unorm16","unorm16x2","unorm16x4","snorm16","snorm16x2","snorm16x4","float16","float16x2","float16x4","float32","float32x2","float32x3","float32x4","uint32","uint32x2","uint32x3","uint32x4","sint32","sint32x2","sint32x3","sint32x4","unorm10-10-10-2","unorm8x4-bgra"],VertexStepMode:[,"vertex","instance"],WGSLLanguageFeatureName:[,"readonly_and_readwrite_storage_textures","packed_4x8_integer_dot_product","unrestricted_pointer_parameters","pointer_composite_access","uniform_buffer_standard_layout","subgroup_id","texture_and_sampler_let","subgroup_uniformity","texture_formats_tier1"]};var emwgpuStringToInt_DeviceLostReason={undefined:1,unknown:1,destroyed:2};var runtimeKeepalivePop=()=>{runtimeKeepaliveCounter-=1};function _emwgpuAdapterRequestDevice(adapterPtr,futureId,deviceLostFutureId,devicePtr,queuePtr,descriptor){adapterPtr=bigintToI53Checked(adapterPtr);futureId=bigintToI53Checked(futureId);deviceLostFutureId=bigintToI53Checked(deviceLostFutureId);devicePtr=bigintToI53Checked(devicePtr);queuePtr=bigintToI53Checked(queuePtr);descriptor=bigintToI53Checked(descriptor);var adapter=WebGPU.getJsObject(adapterPtr);var desc={};if(descriptor){var requiredFeatureCount=Number((growMemViews(),HEAPU64)[(descriptor+24)/8]);if(requiredFeatureCount){var requiredFeaturesPtr=Number((growMemViews(),HEAPU64)[(descriptor+32)/8]);desc["requiredFeatures"]=Array.from((growMemViews(),HEAPU32).subarray(requiredFeaturesPtr/4,(requiredFeaturesPtr+requiredFeatureCount*4)/4),feature=>WebGPU.FeatureName[feature])}var limitsPtr=Number((growMemViews(),HEAPU64)[(descriptor+40)/8]);if(limitsPtr){var nextInChainPtr=Number((growMemViews(),HEAPU64)[limitsPtr/8]);var requiredLimits={};function setLimitU32IfDefined(name,basePtr,limitOffset,ignoreIfZero=false){var ptr=basePtr+limitOffset;var value=(growMemViews(),HEAPU32)[ptr/4];if(value!=4294967295&&(!ignoreIfZero||value!=0)){requiredLimits[name]=value}}function setLimitU64IfDefined(name,basePtr,limitOffset){var ptr=basePtr+limitOffset;var limitPart1=(growMemViews(),HEAPU32)[ptr/4];var limitPart2=(growMemViews(),HEAPU32)[(ptr+4)/4];if(limitPart1!=4294967295||limitPart2!=4294967295){requiredLimits[name]=readI53FromI64(ptr)}}setLimitU32IfDefined("maxTextureDimension1D",limitsPtr,8);setLimitU32IfDefined("maxTextureDimension2D",limitsPtr,12);setLimitU32IfDefined("maxTextureDimension3D",limitsPtr,16);setLimitU32IfDefined("maxTextureArrayLayers",limitsPtr,20);setLimitU32IfDefined("maxBindGroups",limitsPtr,24);setLimitU32IfDefined("maxBindGroupsPlusVertexBuffers",limitsPtr,28);setLimitU32IfDefined("maxBindingsPerBindGroup",limitsPtr,32);setLimitU32IfDefined("maxDynamicUniformBuffersPerPipelineLayout",limitsPtr,36);setLimitU32IfDefined("maxDynamicStorageBuffersPerPipelineLayout",limitsPtr,40);setLimitU32IfDefined("maxSampledTexturesPerShaderStage",limitsPtr,44);setLimitU32IfDefined("maxSamplersPerShaderStage",limitsPtr,48);setLimitU32IfDefined("maxStorageBuffersPerShaderStage",limitsPtr,52);setLimitU32IfDefined("maxStorageTexturesPerShaderStage",limitsPtr,56);setLimitU32IfDefined("maxUniformBuffersPerShaderStage",limitsPtr,60);setLimitU32IfDefined("minUniformBufferOffsetAlignment",limitsPtr,80);setLimitU32IfDefined("minStorageBufferOffsetAlignment",limitsPtr,84);setLimitU64IfDefined("maxUniformBufferBindingSize",limitsPtr,64);setLimitU64IfDefined("maxStorageBufferBindingSize",limitsPtr,72);setLimitU32IfDefined("maxVertexBuffers",limitsPtr,88);setLimitU64IfDefined("maxBufferSize",limitsPtr,96);setLimitU32IfDefined("maxVertexAttributes",limitsPtr,104);setLimitU32IfDefined("maxVertexBufferArrayStride",limitsPtr,108);setLimitU32IfDefined("maxInterStageShaderVariables",limitsPtr,112);setLimitU32IfDefined("maxColorAttachments",limitsPtr,116);setLimitU32IfDefined("maxColorAttachmentBytesPerSample",limitsPtr,120);setLimitU32IfDefined("maxComputeWorkgroupStorageSize",limitsPtr,124);setLimitU32IfDefined("maxComputeInvocationsPerWorkgroup",limitsPtr,128);setLimitU32IfDefined("maxComputeWorkgroupSizeX",limitsPtr,132);setLimitU32IfDefined("maxComputeWorkgroupSizeY",limitsPtr,136);setLimitU32IfDefined("maxComputeWorkgroupSizeZ",limitsPtr,140);setLimitU32IfDefined("maxComputeWorkgroupsPerDimension",limitsPtr,144);setLimitU32IfDefined("maxImmediateSize",limitsPtr,148,true);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var compatibilityModeLimitsPtr=nextInChainPtr;if("maxStorageBuffersInVertexStage"in GPUSupportedLimits.prototype){setLimitU32IfDefined("maxStorageBuffersInVertexStage",compatibilityModeLimitsPtr,16);setLimitU32IfDefined("maxStorageTexturesInVertexStage",compatibilityModeLimitsPtr,20);setLimitU32IfDefined("maxStorageBuffersInFragmentStage",compatibilityModeLimitsPtr,24);setLimitU32IfDefined("maxStorageTexturesInFragmentStage",compatibilityModeLimitsPtr,28)}}desc["requiredLimits"]=requiredLimits}var defaultQueuePtr=Number((growMemViews(),HEAPU64)[(descriptor+48)/8]);if(defaultQueuePtr){var defaultQueueDesc={label:WebGPU.makeStringFromOptionalStringView(defaultQueuePtr+8)};desc["defaultQueue"]=defaultQueueDesc}desc["label"]=WebGPU.makeStringFromOptionalStringView(descriptor+8)}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,adapter.requestDevice(desc).then(device=>{runtimeKeepalivePop();callUserCallback(()=>{WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);devicePtr=BigInt(devicePtr);WebGPU.Internals.futureInsert(deviceLostFutureId,device.lost.then(info=>{callUserCallback(()=>{device.onuncapturederror=ev=>{};var sp=stackSave();var messagePtr=stringToUTF8OnStack(info.message);_emwgpuOnDeviceLostCompleted(deviceLostFutureId,emwgpuStringToInt_DeviceLostReason[info.reason],BigInt(messagePtr));stackRestore(sp)})}));device.onuncapturederror=ev=>{var type=5;if(ev.error instanceof GPUValidationError)type=2;else if(ev.error instanceof GPUOutOfMemoryError)type=3;else if(ev.error instanceof GPUInternalError)type=4;var sp=stackSave();var messagePtr=stringToUTF8OnStack(ev.error.message);_emwgpuOnUncapturedError(BigInt(devicePtr),type,BigInt(messagePtr));stackRestore(sp)};_emwgpuOnRequestDeviceCompleted(futureId,1,BigInt(devicePtr),0n)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestDeviceCompleted(futureId,3,BigInt(devicePtr),BigInt(messagePtr));if(deviceLostFutureId){_emwgpuOnDeviceLostCompleted(deviceLostFutureId,4,BigInt(messagePtr))}stackRestore(sp)})}))}function _emwgpuBufferDestroy(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(onUnmap){for(var i=0;i{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};var _emwgpuBufferGetConstMappedRange=function(bufferPtr,offset,size){bufferPtr=bigintToI53Checked(bufferPtr);offset=bigintToI53Checked(offset);size=bigintToI53Checked(size);var ret=(()=>{var buffer=WebGPU.getJsObject(bufferPtr);if(size==-1)size=undefined;var mapped;try{mapped=buffer.getMappedRange(offset,size)}catch(ex){return 0n}var data=_memalign(16,mapped.byteLength);(growMemViews(),HEAPU8).set(new Uint8Array(mapped),data);WebGPU.Internals.bufferOnUnmaps[bufferPtr].push(()=>_free(data));return data})();return BigInt(ret)};var _emwgpuBufferMapAsync=function(bufferPtr,futureId,mode,offset,size){bufferPtr=bigintToI53Checked(bufferPtr);futureId=bigintToI53Checked(futureId);mode=bigintToI53Checked(mode);offset=bigintToI53Checked(offset);size=bigintToI53Checked(size);var buffer=WebGPU.getJsObject(bufferPtr);WebGPU.Internals.bufferOnUnmaps[bufferPtr]=[];if(size==-1)size=undefined;runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,buffer.mapAsync(mode,offset,size).then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnMapAsyncCompleted(futureId,1,0n)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);var status=ex.name==="AbortError"?4:ex.name==="OperationError"?3:0;_emwgpuOnMapAsyncCompleted(futureId,status,BigInt(messagePtr));delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]})}))};function _emwgpuBufferUnmap(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(!onUnmap){return}for(var i=0;i{const device=WebGPU.getJsObject(devicePtr);device.onuncapturederror=null;device.destroy()};function _emwgpuInstanceRequestAdapter(instancePtr,futureId,options,adapterPtr){instancePtr=bigintToI53Checked(instancePtr);futureId=bigintToI53Checked(futureId);options=bigintToI53Checked(options);adapterPtr=bigintToI53Checked(adapterPtr);var opts;if(options){opts={featureLevel:WebGPU.FeatureLevel[(growMemViews(),HEAP32)[(options+8)/4]],powerPreference:WebGPU.PowerPreference[(growMemViews(),HEAP32)[(options+12)/4]],forceFallbackAdapter:!!(growMemViews(),HEAPU32)[(options+16)/4]};var nextInChainPtr=Number((growMemViews(),HEAPU64)[options/8]);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var webxrOptions=nextInChainPtr;opts.xrCompatible=!!(growMemViews(),HEAPU32)[(webxrOptions+16)/4]}}if(!("gpu"in navigator)){var sp=stackSave();var messagePtr=stringToUTF8OnStack("WebGPU not available on this browser (navigator.gpu is not available)");_emwgpuOnRequestAdapterCompleted(futureId,3,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp);return}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,navigator.gpu.requestAdapter(opts).then(adapter=>{runtimeKeepalivePop();callUserCallback(()=>{if(adapter){WebGPU.Internals.jsObjectInsert(adapterPtr,adapter);_emwgpuOnRequestAdapterCompleted(futureId,1,BigInt(adapterPtr),0n)}else{var sp=stackSave();var messagePtr=stringToUTF8OnStack("WebGPU not available on this browser (requestAdapter returned null)");_emwgpuOnRequestAdapterCompleted(futureId,3,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp)}})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestAdapterCompleted(futureId,4,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp)})}))}var _emwgpuQueueOnSubmittedWorkDone=function(queuePtr,futureId){queuePtr=bigintToI53Checked(queuePtr);futureId=bigintToI53Checked(futureId);var queue=WebGPU.getJsObject(queuePtr);runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,queue.onSubmittedWorkDone().then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnWorkDoneCompleted(futureId,1)})}))};var _emwgpuWaitAny=function(futurePtr,futureCount,timeoutMSPtr){futurePtr=bigintToI53Checked(futurePtr);futureCount=bigintToI53Checked(futureCount);timeoutMSPtr=bigintToI53Checked(timeoutMSPtr);return Asyncify.handleAsync(async()=>{var promises=[];if(timeoutMSPtr){var timeoutMS=(growMemViews(),HEAP32)[timeoutMSPtr/4];promises.length=futureCount+1;promises[futureCount]=new Promise(resolve=>setTimeout(resolve,timeoutMS,0))}else{promises.length=futureCount}for(var i=0;ithisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.language||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(15,0,1,__environ,environ_buf);__environ=bigintToI53Checked(__environ);environ_buf=bigintToI53Checked(environ_buf);var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;(growMemViews(),HEAPU64)[(__environ+envp)/8]=BigInt(ptr);bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=8}return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(16,0,1,penviron_count,penviron_buf_size);penviron_count=bigintToI53Checked(penviron_count);penviron_buf_size=bigintToI53Checked(penviron_buf_size);var strings=getEnvStrings();(growMemViews(),HEAPU64)[penviron_count/8]=BigInt(strings.length);var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}(growMemViews(),HEAPU64)[penviron_buf_size/8]=BigInt(bufSize);return 0}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(17,0,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i{var ret=0;for(var i=0;i=0){(growMemViews(),HEAP32)[(featuresPtr+offset)/4]=featureEnumValue;offset+=4;numFeatures++}}(growMemViews(),HEAPU64)[(supportedFeatures+8)/8]=BigInt(featuresPtr);(growMemViews(),HEAPU64)[supportedFeatures/8]=BigInt(numFeatures)}function _wgpuAdapterGetInfo(adapterPtr,info){adapterPtr=bigintToI53Checked(adapterPtr);info=bigintToI53Checked(info);var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillAdapterInfoStruct(adapter.info,info);return 1}function _wgpuAdapterGetLimits(adapterPtr,limitsOutPtr){adapterPtr=bigintToI53Checked(adapterPtr);limitsOutPtr=bigintToI53Checked(limitsOutPtr);var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillLimitStruct(adapter.limits,limitsOutPtr);return 1}function _wgpuAdapterHasFeature(adapterPtr,featureEnumValue){adapterPtr=bigintToI53Checked(adapterPtr);var adapter=WebGPU.getJsObject(adapterPtr);return adapter.features.has(WebGPU.FeatureName[featureEnumValue])}var _wgpuBufferGetSize=function(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var ret=(()=>{var buffer=WebGPU.getJsObject(bufferPtr);return buffer.size})();return BigInt(ret)};var _wgpuCommandEncoderBeginComputePass=function(encoderPtr,descriptor){encoderPtr=bigintToI53Checked(encoderPtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8),timestampWrites:WebGPU.makePassTimestampWrites(Number((growMemViews(),HEAPU64)[(descriptor+24)/8]))}}var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateComputePassEncoder(0n);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.beginComputePass(desc));return ptr})();return BigInt(ret)};function _wgpuCommandEncoderCopyBufferToBuffer(encoderPtr,srcPtr,srcOffset,dstPtr,dstOffset,size){encoderPtr=bigintToI53Checked(encoderPtr);srcPtr=bigintToI53Checked(srcPtr);srcOffset=bigintToI53Checked(srcOffset);dstPtr=bigintToI53Checked(dstPtr);dstOffset=bigintToI53Checked(dstOffset);size=bigintToI53Checked(size);var commandEncoder=WebGPU.getJsObject(encoderPtr);var src=WebGPU.getJsObject(srcPtr);var dst=WebGPU.getJsObject(dstPtr);commandEncoder.copyBufferToBuffer(src,srcOffset,dst,dstOffset,size)}var _wgpuCommandEncoderFinish=function(encoderPtr,descriptor){encoderPtr=bigintToI53Checked(encoderPtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateCommandBuffer(0n);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.finish());return ptr})();return BigInt(ret)};function _wgpuComputePassEncoderDispatchWorkgroups(passPtr,x,y,z){passPtr=bigintToI53Checked(passPtr);var pass=WebGPU.getJsObject(passPtr);pass.dispatchWorkgroups(x,y,z)}function _wgpuComputePassEncoderEnd(passPtr){passPtr=bigintToI53Checked(passPtr);var pass=WebGPU.getJsObject(passPtr);pass.end()}function _wgpuComputePassEncoderSetBindGroup(passPtr,groupIndex,groupPtr,dynamicOffsetCount,dynamicOffsetsPtr){passPtr=bigintToI53Checked(passPtr);groupPtr=bigintToI53Checked(groupPtr);dynamicOffsetCount=bigintToI53Checked(dynamicOffsetCount);dynamicOffsetsPtr=bigintToI53Checked(dynamicOffsetsPtr);var pass=WebGPU.getJsObject(passPtr);var group=WebGPU.getJsObject(groupPtr);if(dynamicOffsetCount==0){pass.setBindGroup(groupIndex,group)}else{pass.setBindGroup(groupIndex,group,(growMemViews(),HEAPU32),dynamicOffsetsPtr/4,dynamicOffsetCount)}}function _wgpuComputePassEncoderSetPipeline(passPtr,pipelinePtr){passPtr=bigintToI53Checked(passPtr);pipelinePtr=bigintToI53Checked(pipelinePtr);var pass=WebGPU.getJsObject(passPtr);var pipeline=WebGPU.getJsObject(pipelinePtr);pass.setPipeline(pipeline)}var _wgpuComputePipelineGetBindGroupLayout=function(pipelinePtr,groupIndex){pipelinePtr=bigintToI53Checked(pipelinePtr);var ret=(()=>{var pipeline=WebGPU.getJsObject(pipelinePtr);var ptr=_emwgpuCreateBindGroupLayout(0n);WebGPU.Internals.jsObjectInsert(ptr,pipeline.getBindGroupLayout(groupIndex));return ptr})();return BigInt(ret)};var _wgpuDeviceCreateBindGroup=function(devicePtr,descriptor){devicePtr=bigintToI53Checked(devicePtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{function makeEntry(entryPtr){var bufferPtr=Number((growMemViews(),HEAPU64)[(entryPtr+16)/8]);var samplerPtr=Number((growMemViews(),HEAPU64)[(entryPtr+40)/8]);var textureViewPtr=Number((growMemViews(),HEAPU64)[(entryPtr+48)/8]);var externalTexturePtr=0;WebGPU.iterateExtensions(entryPtr,{327681:ptr=>{externalTexturePtr=Number((growMemViews(),HEAPU64)[(ptr+16)/8])}});var resource;if(bufferPtr){var size=readI53FromI64(entryPtr+32);if(size==-1)size=undefined;resource={buffer:WebGPU.getJsObject(bufferPtr),offset:readI53FromI64(entryPtr+24),size}}else{resource=WebGPU.getJsObject(samplerPtr||textureViewPtr||externalTexturePtr)}return{binding:(growMemViews(),HEAPU32)[(entryPtr+8)/4],resource}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i{var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8)}}var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateCommandEncoder(0n);WebGPU.Internals.jsObjectInsert(ptr,device.createCommandEncoder(desc));return ptr})();return BigInt(ret)};var _wgpuDeviceCreateComputePipeline=function(devicePtr,descriptor){devicePtr=bigintToI53Checked(devicePtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var desc=WebGPU.makeComputePipelineDesc(descriptor);var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateComputePipeline(0n);WebGPU.Internals.jsObjectInsert(ptr,device.createComputePipeline(desc));return ptr})();return BigInt(ret)};var _wgpuQueueSubmit=function(queuePtr,commandCount,commands){queuePtr=bigintToI53Checked(queuePtr);commandCount=bigintToI53Checked(commandCount);commands=bigintToI53Checked(commands);var queue=WebGPU.getJsObject(queuePtr);var cmds=Array.from((growMemViews(),HEAP64).subarray(commands/8,(commands+commandCount*8)/8),id=>WebGPU.getJsObject(id));queue.submit(cmds)};function _wgpuQueueWriteBuffer(queuePtr,bufferPtr,bufferOffset,data,size){queuePtr=bigintToI53Checked(queuePtr);bufferPtr=bigintToI53Checked(bufferPtr);bufferOffset=bigintToI53Checked(bufferOffset);data=bigintToI53Checked(data);size=bigintToI53Checked(size);var queue=WebGPU.getJsObject(queuePtr);var buffer=WebGPU.getJsObject(bufferPtr);var subarray=(growMemViews(),HEAPU8).subarray(data,data+size);queue.writeBuffer(buffer,bufferOffset,subarray,0,size)}var runAndAbortIfError=func=>{try{return func()}catch(e){abort(e)}};var Asyncify={instrumentWasmImports(imports){var importPattern=/^(invoke_.*|__asyncjs__.*)$/;for(let[x,original]of Object.entries(imports)){if(typeof original=="function"){let isAsyncifyImport=original.isAsync||importPattern.test(x);if(isAsyncifyImport){imports[x]=original=new WebAssembly.Suspending(original)}}}},instrumentFunction(original){var wrapper=(...args)=>original(...args);return wrapper},instrumentWasmExports(exports){var exportPattern=/^(wllama_start|wllama_action|main|__main_argc_argv)$/;Asyncify.asyncExports=new Set;var ret={};for(let[x,original]of Object.entries(exports)){if(typeof original=="function"){let isAsyncifyExport=exportPattern.test(x);if(isAsyncifyExport){Asyncify.asyncExports.add(original);original=Asyncify.makeAsyncFunction(original)}var wrapper=Asyncify.instrumentFunction(original);ret[x]=wrapper}else{ret[x]=original}}return ret},asyncExports:null,isAsyncExport(func){return Asyncify.asyncExports?.has(func)},handleAsync:async startAsync=>{runtimeKeepalivePush();try{return await startAsync()}finally{runtimeKeepalivePop()}},handleSleep:startAsync=>Asyncify.handleAsync(()=>new Promise(startAsync)),makeAsyncFunction(original){return WebAssembly.promising(original)}};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{(growMemViews(),HEAP8).set(array,buffer)};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={pointer:p=>BigInt(p),string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return BigInt(ret)},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return BigInt(ret)}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(Number(ret))}if(returnType==="pointer")return Number(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var FS_createPath=(...args)=>FS.createPath(...args);var FS_unlink=(...args)=>FS.unlink(...args);var FS_createLazyFile=(...args)=>FS.createLazyFile(...args);var FS_createDevice=(...args)=>FS.createDevice(...args);PThread.init();FS.createPreloadedFile=FS_createPreloadedFile;FS.preloadFile=FS_preloadFile;FS.staticInit();{initMemory();if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(Module["preloadPlugins"])preloadPlugins=Module["preloadPlugins"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()()}}}Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["FS_preloadFile"]=FS_preloadFile;Module["FS_unlink"]=FS_unlink;Module["FS_createPath"]=FS_createPath;Module["FS_createDevice"]=FS_createDevice;Module["FS_createDataFile"]=FS_createDataFile;Module["FS_createLazyFile"]=FS_createLazyFile;Module["ExitStatus"]=ExitStatus;Module["PThread"]=PThread;Module["terminateWorker"]=terminateWorker;Module["cleanupThread"]=cleanupThread;Module["addOnPreRun"]=addOnPreRun;Module["onPreRuns"]=onPreRuns;Module["callRuntimeCallbacks"]=callRuntimeCallbacks;Module["addRunDependency"]=addRunDependency;Module["runDependencies"]=runDependencies;Module["removeRunDependency"]=removeRunDependency;Module["dependenciesFulfilled"]=dependenciesFulfilled;Module["spawnThread"]=spawnThread;Module["_exit"]=_exit;Module["exitJS"]=exitJS;Module["_proc_exit"]=_proc_exit;Module["keepRuntimeAlive"]=keepRuntimeAlive;Module["runtimeKeepaliveCounter"]=runtimeKeepaliveCounter;Module["proxyToMainThread"]=proxyToMainThread;Module["stackSave"]=stackSave;Module["stackRestore"]=stackRestore;Module["stackAlloc"]=stackAlloc;Module["exitOnMainThread"]=exitOnMainThread;Module["addOnPostRun"]=addOnPostRun;Module["onPostRuns"]=onPostRuns;Module["establishStackSpace"]=establishStackSpace;Module["getValue"]=getValue;Module["invokeEntryPoint"]=invokeEntryPoint;Module["getWasmTableEntry"]=getWasmTableEntry;Module["wasmTableMirror"]=wasmTableMirror;Module["noExitRuntime"]=noExitRuntime;Module["registerTLSInit"]=registerTLSInit;Module["setValue"]=setValue;Module["wasmMemory"]=wasmMemory;Module["___assert_fail"]=___assert_fail;Module["bigintToI53Checked"]=bigintToI53Checked;Module["INT53_MAX"]=INT53_MAX;Module["INT53_MIN"]=INT53_MIN;Module["UTF8ToString"]=UTF8ToString;Module["UTF8ArrayToString"]=UTF8ArrayToString;Module["UTF8Decoder"]=UTF8Decoder;Module["findStringEnd"]=findStringEnd;Module["___pthread_create_js"]=___pthread_create_js;Module["pthreadCreateProxied"]=pthreadCreateProxied;Module["_emscripten_has_threading_support"]=_emscripten_has_threading_support;Module["___syscall_fcntl64"]=___syscall_fcntl64;Module["syscallGetVarargP"]=syscallGetVarargP;Module["syscallGetVarargI"]=syscallGetVarargI;Module["SYSCALLS"]=SYSCALLS;Module["PATH"]=PATH;Module["FS"]=FS;Module["randomFill"]=randomFill;Module["initRandomFill"]=initRandomFill;Module["PATH_FS"]=PATH_FS;Module["TTY"]=TTY;Module["FS_stdin_getChar"]=FS_stdin_getChar;Module["FS_stdin_getChar_buffer"]=FS_stdin_getChar_buffer;Module["intArrayFromString"]=intArrayFromString;Module["lengthBytesUTF8"]=lengthBytesUTF8;Module["stringToUTF8Array"]=stringToUTF8Array;Module["MEMFS"]=MEMFS;Module["mmapAlloc"]=mmapAlloc;Module["zeroMemory"]=zeroMemory;Module["alignMemory"]=alignMemory;Module["FS_modeStringToFlags"]=FS_modeStringToFlags;Module["FS_getMode"]=FS_getMode;Module["FS_createPreloadedFile"]=FS_createPreloadedFile;Module["FS_preloadFile"]=FS_preloadFile;Module["asyncLoad"]=asyncLoad;Module["FS_createDataFile"]=FS_createDataFile;Module["getUniqueRunDependency"]=getUniqueRunDependency;Module["FS_handledByPreloadPlugin"]=FS_handledByPreloadPlugin;Module["preloadPlugins"]=preloadPlugins;Module["___syscall_fstat64"]=___syscall_fstat64;Module["___syscall_getcwd"]=___syscall_getcwd;Module["stringToUTF8"]=stringToUTF8;Module["___syscall_getdents64"]=___syscall_getdents64;Module["___syscall_ioctl"]=___syscall_ioctl;Module["___syscall_lstat64"]=___syscall_lstat64;Module["___syscall_newfstatat"]=___syscall_newfstatat;Module["___syscall_openat"]=___syscall_openat;Module["___syscall_stat64"]=___syscall_stat64;Module["__abort_js"]=__abort_js;Module["__emscripten_init_main_thread_js"]=__emscripten_init_main_thread_js;Module["__emscripten_notify_mailbox_postmessage"]=__emscripten_notify_mailbox_postmessage;Module["checkMailbox"]=checkMailbox;Module["callUserCallback"]=callUserCallback;Module["handleException"]=handleException;Module["maybeExit"]=maybeExit;Module["__emscripten_thread_mailbox_await"]=__emscripten_thread_mailbox_await;Module["__emscripten_receive_on_main_thread_js"]=__emscripten_receive_on_main_thread_js;Module["proxiedJSCallArgs"]=proxiedJSCallArgs;Module["__emscripten_runtime_keepalive_clear"]=__emscripten_runtime_keepalive_clear;Module["__emscripten_thread_cleanup"]=__emscripten_thread_cleanup;Module["__emscripten_thread_set_strongref"]=__emscripten_thread_set_strongref;Module["__localtime_js"]=__localtime_js;Module["ydayFromDate"]=ydayFromDate;Module["isLeapYear"]=isLeapYear;Module["MONTH_DAYS_LEAP_CUMULATIVE"]=MONTH_DAYS_LEAP_CUMULATIVE;Module["MONTH_DAYS_REGULAR_CUMULATIVE"]=MONTH_DAYS_REGULAR_CUMULATIVE;Module["__mmap_js"]=__mmap_js;Module["__munmap_js"]=__munmap_js;Module["__setitimer_js"]=__setitimer_js;Module["timers"]=timers;Module["_emscripten_get_now"]=_emscripten_get_now;Module["__tzset_js"]=__tzset_js;Module["_clock_time_get"]=_clock_time_get;Module["_emscripten_date_now"]=_emscripten_date_now;Module["nowIsMonotonic"]=nowIsMonotonic;Module["checkWasiClock"]=checkWasiClock;Module["_emscripten_check_blocking_allowed"]=_emscripten_check_blocking_allowed;Module["_emscripten_exit_with_live_runtime"]=_emscripten_exit_with_live_runtime;Module["runtimeKeepalivePush"]=runtimeKeepalivePush;Module["_emscripten_get_heap_max"]=_emscripten_get_heap_max;Module["getHeapMax"]=getHeapMax;Module["_emscripten_has_asyncify"]=_emscripten_has_asyncify;Module["_emscripten_num_logical_cores"]=_emscripten_num_logical_cores;Module["_emscripten_resize_heap"]=_emscripten_resize_heap;Module["growMemory"]=growMemory;Module["_emwgpuAdapterRequestDevice"]=_emwgpuAdapterRequestDevice;Module["emwgpuStringToInt_DeviceLostReason"]=emwgpuStringToInt_DeviceLostReason;Module["WebGPU"]=WebGPU;Module["stringToUTF8OnStack"]=stringToUTF8OnStack;Module["writeI53ToI64"]=writeI53ToI64;Module["stringToNewUTF8"]=stringToNewUTF8;Module["readI53FromI64"]=readI53FromI64;Module["runtimeKeepalivePop"]=runtimeKeepalivePop;Module["_emwgpuBufferDestroy"]=_emwgpuBufferDestroy;Module["_emwgpuBufferGetConstMappedRange"]=_emwgpuBufferGetConstMappedRange;Module["warnOnce"]=warnOnce;Module["_emwgpuBufferMapAsync"]=_emwgpuBufferMapAsync;Module["_emwgpuBufferUnmap"]=_emwgpuBufferUnmap;Module["_emwgpuDelete"]=_emwgpuDelete;Module["_emwgpuDeviceCreateBuffer"]=_emwgpuDeviceCreateBuffer;Module["_emwgpuDeviceCreateShaderModule"]=_emwgpuDeviceCreateShaderModule;Module["_emwgpuDeviceDestroy"]=_emwgpuDeviceDestroy;Module["_emwgpuInstanceRequestAdapter"]=_emwgpuInstanceRequestAdapter;Module["_emwgpuQueueOnSubmittedWorkDone"]=_emwgpuQueueOnSubmittedWorkDone;Module["_emwgpuWaitAny"]=_emwgpuWaitAny;Module["_environ_get"]=_environ_get;Module["getEnvStrings"]=getEnvStrings;Module["ENV"]=ENV;Module["getExecutableName"]=getExecutableName;Module["_environ_sizes_get"]=_environ_sizes_get;Module["_fd_close"]=_fd_close;Module["_fd_read"]=_fd_read;Module["doReadv"]=doReadv;Module["_fd_seek"]=_fd_seek;Module["_fd_write"]=_fd_write;Module["doWritev"]=doWritev;Module["_random_get"]=_random_get;Module["_wgpuAdapterGetFeatures"]=_wgpuAdapterGetFeatures;Module["emwgpuStringToInt_FeatureName"]=emwgpuStringToInt_FeatureName;Module["_wgpuAdapterGetInfo"]=_wgpuAdapterGetInfo;Module["_wgpuAdapterGetLimits"]=_wgpuAdapterGetLimits;Module["_wgpuAdapterHasFeature"]=_wgpuAdapterHasFeature;Module["_wgpuBufferGetSize"]=_wgpuBufferGetSize;Module["_wgpuCommandEncoderBeginComputePass"]=_wgpuCommandEncoderBeginComputePass;Module["_wgpuCommandEncoderCopyBufferToBuffer"]=_wgpuCommandEncoderCopyBufferToBuffer;Module["_wgpuCommandEncoderFinish"]=_wgpuCommandEncoderFinish;Module["_wgpuComputePassEncoderDispatchWorkgroups"]=_wgpuComputePassEncoderDispatchWorkgroups;Module["_wgpuComputePassEncoderEnd"]=_wgpuComputePassEncoderEnd;Module["_wgpuComputePassEncoderSetBindGroup"]=_wgpuComputePassEncoderSetBindGroup;Module["_wgpuComputePassEncoderSetPipeline"]=_wgpuComputePassEncoderSetPipeline;Module["_wgpuComputePipelineGetBindGroupLayout"]=_wgpuComputePipelineGetBindGroupLayout;Module["_wgpuDeviceCreateBindGroup"]=_wgpuDeviceCreateBindGroup;Module["_wgpuDeviceCreateCommandEncoder"]=_wgpuDeviceCreateCommandEncoder;Module["_wgpuDeviceCreateComputePipeline"]=_wgpuDeviceCreateComputePipeline;Module["_wgpuQueueSubmit"]=_wgpuQueueSubmit;Module["_wgpuQueueWriteBuffer"]=_wgpuQueueWriteBuffer;Module["Asyncify"]=Asyncify;Module["runAndAbortIfError"]=runAndAbortIfError;Module["ccall"]=ccall;Module["getCFunc"]=getCFunc;Module["writeArrayToMemory"]=writeArrayToMemory;Module["cwrap"]=cwrap;Module["FS_createPath"]=FS_createPath;Module["FS_unlink"]=FS_unlink;Module["FS_createLazyFile"]=FS_createLazyFile;Module["FS_createDevice"]=FS_createDevice;var proxiedFunctionTable=[_proc_exit,exitOnMainThread,pthreadCreateProxied,___syscall_fcntl64,___syscall_fstat64,___syscall_getcwd,___syscall_getdents64,___syscall_ioctl,___syscall_lstat64,___syscall_newfstatat,___syscall_openat,___syscall_stat64,__mmap_js,__munmap_js,__setitimer_js,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function __asyncjs__js_file_read(path_ptr,offset,req_size,out_ptr){return Asyncify.handleAsync(async()=>await _wllama_js_file_read(UTF8ToString(Number(path_ptr)),Number(offset),Number(req_size),Number(out_ptr)))}__asyncjs__js_file_read.sig="jjjjj";var _malloc,_free,_wllama_malloc,_wllama_start,_wllama_action,_wllama_exit,_wllama_debug,_main,_emwgpuCreateBindGroup,_emwgpuCreateBindGroupLayout,_emwgpuCreateCommandBuffer,_emwgpuCreateCommandEncoder,_emwgpuCreateComputePassEncoder,_emwgpuCreateComputePipeline,_emwgpuCreateExternalTexture,_emwgpuCreatePipelineLayout,_emwgpuCreateQuerySet,_emwgpuCreateRenderBundle,_emwgpuCreateRenderBundleEncoder,_emwgpuCreateRenderPassEncoder,_emwgpuCreateRenderPipeline,_emwgpuCreateSampler,_emwgpuCreateSurface,_emwgpuCreateTexture,_emwgpuCreateTextureView,_emwgpuCreateAdapter,_emwgpuCreateBuffer,_emwgpuCreateDevice,_emwgpuCreateQueue,_emwgpuCreateShaderModule,_emwgpuOnCompilationInfoCompleted,_emwgpuOnCreateComputePipelineCompleted,_emwgpuOnCreateRenderPipelineCompleted,_emwgpuOnDeviceLostCompleted,_emwgpuOnMapAsyncCompleted,_emwgpuOnPopErrorScopeCompleted,_emwgpuOnRequestAdapterCompleted,_emwgpuOnRequestDeviceCompleted,_emwgpuOnWorkDoneCompleted,_emwgpuOnUncapturedError,__emscripten_tls_init,_pthread_self,_emscripten_builtin_memalign,__emscripten_run_callback_on_thread,__emscripten_thread_init,__emscripten_thread_crashed,__emscripten_run_js_on_main_thread,__emscripten_thread_free_data,__emscripten_thread_exit,__emscripten_timeout,__emscripten_check_mailbox,_memalign,___trap,_emscripten_stack_set_limits,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,__indirect_function_table,wasmTable;function assignWasmExports(wasmExports){_malloc=Module["_malloc"]=wasmExports["malloc"];_free=Module["_free"]=wasmExports["free"];_wllama_malloc=Module["_wllama_malloc"]=wasmExports["wllama_malloc"];_wllama_start=Module["_wllama_start"]=wasmExports["wllama_start"];_wllama_action=Module["_wllama_action"]=wasmExports["wllama_action"];_wllama_exit=Module["_wllama_exit"]=wasmExports["wllama_exit"];_wllama_debug=Module["_wllama_debug"]=wasmExports["wllama_debug"];_main=Module["_main"]=wasmExports["main"];_emwgpuCreateBindGroup=Module["_emwgpuCreateBindGroup"]=wasmExports["emwgpuCreateBindGroup"];_emwgpuCreateBindGroupLayout=Module["_emwgpuCreateBindGroupLayout"]=wasmExports["emwgpuCreateBindGroupLayout"];_emwgpuCreateCommandBuffer=Module["_emwgpuCreateCommandBuffer"]=wasmExports["emwgpuCreateCommandBuffer"];_emwgpuCreateCommandEncoder=Module["_emwgpuCreateCommandEncoder"]=wasmExports["emwgpuCreateCommandEncoder"];_emwgpuCreateComputePassEncoder=Module["_emwgpuCreateComputePassEncoder"]=wasmExports["emwgpuCreateComputePassEncoder"];_emwgpuCreateComputePipeline=Module["_emwgpuCreateComputePipeline"]=wasmExports["emwgpuCreateComputePipeline"];_emwgpuCreateExternalTexture=Module["_emwgpuCreateExternalTexture"]=wasmExports["emwgpuCreateExternalTexture"];_emwgpuCreatePipelineLayout=Module["_emwgpuCreatePipelineLayout"]=wasmExports["emwgpuCreatePipelineLayout"];_emwgpuCreateQuerySet=Module["_emwgpuCreateQuerySet"]=wasmExports["emwgpuCreateQuerySet"];_emwgpuCreateRenderBundle=Module["_emwgpuCreateRenderBundle"]=wasmExports["emwgpuCreateRenderBundle"];_emwgpuCreateRenderBundleEncoder=Module["_emwgpuCreateRenderBundleEncoder"]=wasmExports["emwgpuCreateRenderBundleEncoder"];_emwgpuCreateRenderPassEncoder=Module["_emwgpuCreateRenderPassEncoder"]=wasmExports["emwgpuCreateRenderPassEncoder"];_emwgpuCreateRenderPipeline=Module["_emwgpuCreateRenderPipeline"]=wasmExports["emwgpuCreateRenderPipeline"];_emwgpuCreateSampler=Module["_emwgpuCreateSampler"]=wasmExports["emwgpuCreateSampler"];_emwgpuCreateSurface=Module["_emwgpuCreateSurface"]=wasmExports["emwgpuCreateSurface"];_emwgpuCreateTexture=Module["_emwgpuCreateTexture"]=wasmExports["emwgpuCreateTexture"];_emwgpuCreateTextureView=Module["_emwgpuCreateTextureView"]=wasmExports["emwgpuCreateTextureView"];_emwgpuCreateAdapter=Module["_emwgpuCreateAdapter"]=wasmExports["emwgpuCreateAdapter"];_emwgpuCreateBuffer=Module["_emwgpuCreateBuffer"]=wasmExports["emwgpuCreateBuffer"];_emwgpuCreateDevice=Module["_emwgpuCreateDevice"]=wasmExports["emwgpuCreateDevice"];_emwgpuCreateQueue=Module["_emwgpuCreateQueue"]=wasmExports["emwgpuCreateQueue"];_emwgpuCreateShaderModule=Module["_emwgpuCreateShaderModule"]=wasmExports["emwgpuCreateShaderModule"];_emwgpuOnCompilationInfoCompleted=Module["_emwgpuOnCompilationInfoCompleted"]=wasmExports["emwgpuOnCompilationInfoCompleted"];_emwgpuOnCreateComputePipelineCompleted=Module["_emwgpuOnCreateComputePipelineCompleted"]=wasmExports["emwgpuOnCreateComputePipelineCompleted"];_emwgpuOnCreateRenderPipelineCompleted=Module["_emwgpuOnCreateRenderPipelineCompleted"]=wasmExports["emwgpuOnCreateRenderPipelineCompleted"];_emwgpuOnDeviceLostCompleted=Module["_emwgpuOnDeviceLostCompleted"]=wasmExports["emwgpuOnDeviceLostCompleted"];_emwgpuOnMapAsyncCompleted=Module["_emwgpuOnMapAsyncCompleted"]=wasmExports["emwgpuOnMapAsyncCompleted"];_emwgpuOnPopErrorScopeCompleted=Module["_emwgpuOnPopErrorScopeCompleted"]=wasmExports["emwgpuOnPopErrorScopeCompleted"];_emwgpuOnRequestAdapterCompleted=Module["_emwgpuOnRequestAdapterCompleted"]=wasmExports["emwgpuOnRequestAdapterCompleted"];_emwgpuOnRequestDeviceCompleted=Module["_emwgpuOnRequestDeviceCompleted"]=wasmExports["emwgpuOnRequestDeviceCompleted"];_emwgpuOnWorkDoneCompleted=Module["_emwgpuOnWorkDoneCompleted"]=wasmExports["emwgpuOnWorkDoneCompleted"];_emwgpuOnUncapturedError=Module["_emwgpuOnUncapturedError"]=wasmExports["emwgpuOnUncapturedError"];__emscripten_tls_init=Module["__emscripten_tls_init"]=wasmExports["_emscripten_tls_init"];_pthread_self=Module["_pthread_self"]=wasmExports["pthread_self"];_emscripten_builtin_memalign=Module["_emscripten_builtin_memalign"]=wasmExports["emscripten_builtin_memalign"];__emscripten_run_callback_on_thread=Module["__emscripten_run_callback_on_thread"]=wasmExports["_emscripten_run_callback_on_thread"];__emscripten_thread_init=Module["__emscripten_thread_init"]=wasmExports["_emscripten_thread_init"];__emscripten_thread_crashed=Module["__emscripten_thread_crashed"]=wasmExports["_emscripten_thread_crashed"];__emscripten_run_js_on_main_thread=Module["__emscripten_run_js_on_main_thread"]=wasmExports["_emscripten_run_js_on_main_thread"];__emscripten_thread_free_data=Module["__emscripten_thread_free_data"]=wasmExports["_emscripten_thread_free_data"];__emscripten_thread_exit=Module["__emscripten_thread_exit"]=wasmExports["_emscripten_thread_exit"];__emscripten_timeout=Module["__emscripten_timeout"]=wasmExports["_emscripten_timeout"];__emscripten_check_mailbox=Module["__emscripten_check_mailbox"]=wasmExports["_emscripten_check_mailbox"];_memalign=Module["_memalign"]=wasmExports["memalign"];___trap=Module["___trap"]=wasmExports["__trap"];_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=wasmExports["emscripten_stack_set_limits"];__emscripten_stack_restore=Module["__emscripten_stack_restore"]=wasmExports["_emscripten_stack_restore"];__emscripten_stack_alloc=Module["__emscripten_stack_alloc"]=wasmExports["_emscripten_stack_alloc"];_emscripten_stack_get_current=Module["_emscripten_stack_get_current"]=wasmExports["emscripten_stack_get_current"];__indirect_function_table=Module["__indirect_function_table"]=wasmTable=wasmExports["__indirect_function_table"]}var wasmImports;function assignWasmImports(){wasmImports={__assert_fail:___assert_fail,__asyncjs__js_file_read,__pthread_create_js:___pthread_create_js,__syscall_fcntl64:___syscall_fcntl64,__syscall_getcwd:___syscall_getcwd,__syscall_getdents64:___syscall_getdents64,__syscall_ioctl:___syscall_ioctl,__syscall_openat:___syscall_openat,__syscall_stat64:___syscall_stat64,_abort_js:__abort_js,_emscripten_init_main_thread_js:__emscripten_init_main_thread_js,_emscripten_notify_mailbox_postmessage:__emscripten_notify_mailbox_postmessage,_emscripten_receive_on_main_thread_js:__emscripten_receive_on_main_thread_js,_emscripten_runtime_keepalive_clear:__emscripten_runtime_keepalive_clear,_emscripten_thread_cleanup:__emscripten_thread_cleanup,_emscripten_thread_mailbox_await:__emscripten_thread_mailbox_await,_emscripten_thread_set_strongref:__emscripten_thread_set_strongref,_localtime_js:__localtime_js,_mmap_js:__mmap_js,_munmap_js:__munmap_js,_setitimer_js:__setitimer_js,_tzset_js:__tzset_js,clock_time_get:_clock_time_get,emscripten_check_blocking_allowed:_emscripten_check_blocking_allowed,emscripten_date_now:_emscripten_date_now,emscripten_exit_with_live_runtime:_emscripten_exit_with_live_runtime,emscripten_get_heap_max:_emscripten_get_heap_max,emscripten_get_now:_emscripten_get_now,emscripten_has_asyncify:_emscripten_has_asyncify,emscripten_num_logical_cores:_emscripten_num_logical_cores,emscripten_resize_heap:_emscripten_resize_heap,emwgpuAdapterRequestDevice:_emwgpuAdapterRequestDevice,emwgpuBufferDestroy:_emwgpuBufferDestroy,emwgpuBufferGetConstMappedRange:_emwgpuBufferGetConstMappedRange,emwgpuBufferMapAsync:_emwgpuBufferMapAsync,emwgpuBufferUnmap:_emwgpuBufferUnmap,emwgpuDelete:_emwgpuDelete,emwgpuDeviceCreateBuffer:_emwgpuDeviceCreateBuffer,emwgpuDeviceCreateShaderModule:_emwgpuDeviceCreateShaderModule,emwgpuDeviceDestroy:_emwgpuDeviceDestroy,emwgpuInstanceRequestAdapter:_emwgpuInstanceRequestAdapter,emwgpuQueueOnSubmittedWorkDone:_emwgpuQueueOnSubmittedWorkDone,emwgpuWaitAny:_emwgpuWaitAny,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,exit:_exit,fd_close:_fd_close,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,memory:wasmMemory,proc_exit:_proc_exit,random_get:_random_get,wgpuAdapterGetFeatures:_wgpuAdapterGetFeatures,wgpuAdapterGetInfo:_wgpuAdapterGetInfo,wgpuAdapterGetLimits:_wgpuAdapterGetLimits,wgpuAdapterHasFeature:_wgpuAdapterHasFeature,wgpuBufferGetSize:_wgpuBufferGetSize,wgpuCommandEncoderBeginComputePass:_wgpuCommandEncoderBeginComputePass,wgpuCommandEncoderCopyBufferToBuffer:_wgpuCommandEncoderCopyBufferToBuffer,wgpuCommandEncoderFinish:_wgpuCommandEncoderFinish,wgpuComputePassEncoderDispatchWorkgroups:_wgpuComputePassEncoderDispatchWorkgroups,wgpuComputePassEncoderEnd:_wgpuComputePassEncoderEnd,wgpuComputePassEncoderSetBindGroup:_wgpuComputePassEncoderSetBindGroup,wgpuComputePassEncoderSetPipeline:_wgpuComputePassEncoderSetPipeline,wgpuComputePipelineGetBindGroupLayout:_wgpuComputePipelineGetBindGroupLayout,wgpuDeviceCreateBindGroup:_wgpuDeviceCreateBindGroup,wgpuDeviceCreateCommandEncoder:_wgpuDeviceCreateCommandEncoder,wgpuDeviceCreateComputePipeline:_wgpuDeviceCreateComputePipeline,wgpuQueueSubmit:_wgpuQueueSubmit,wgpuQueueWriteBuffer:_wgpuQueueWriteBuffer}}function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_pp=f=>a0=>Number(f(BigInt(a0)));var makeWrapper__p=f=>a0=>f(BigInt(a0));var makeWrapper___PP=f=>(a0,a1,a2)=>f(a0,BigInt(a1?a1:0),BigInt(a2?a2:0));var makeWrapper_p=f=>()=>Number(f());var makeWrapper_ppp=f=>(a0,a1)=>Number(f(BigInt(a0),BigInt(a1)));var makeWrapper__pp_ppp=f=>(a0,a1,a2,a3,a4,a5)=>f(BigInt(a0),BigInt(a1),a2,BigInt(a3),BigInt(a4),BigInt(a5));var makeWrapper__p_____=f=>(a0,a1,a2,a3,a4,a5)=>f(BigInt(a0),a1,a2,a3,a4,a5);var makeWrapper___p_p_=f=>(a0,a1,a2,a3,a4)=>f(a0,BigInt(a1),a2,BigInt(a3),a4);var makeWrapper__pp=f=>(a0,a1)=>f(BigInt(a0),BigInt(a1));wasmExports["malloc"]=makeWrapper_pp(wasmExports["malloc"]);wasmExports["free"]=makeWrapper__p(wasmExports["free"]);wasmExports["main"]=makeWrapper___PP(wasmExports["main"]);wasmExports["pthread_self"]=makeWrapper_p(wasmExports["pthread_self"]);wasmExports["emscripten_builtin_memalign"]=makeWrapper_ppp(wasmExports["emscripten_builtin_memalign"]);wasmExports["_emscripten_run_callback_on_thread"]=makeWrapper__pp_ppp(wasmExports["_emscripten_run_callback_on_thread"]);wasmExports["_emscripten_thread_init"]=makeWrapper__p_____(wasmExports["_emscripten_thread_init"]);wasmExports["_emscripten_run_js_on_main_thread"]=makeWrapper___p_p_(wasmExports["_emscripten_run_js_on_main_thread"]);wasmExports["_emscripten_thread_free_data"]=makeWrapper__p(wasmExports["_emscripten_thread_free_data"]);wasmExports["_emscripten_thread_exit"]=makeWrapper__p(wasmExports["_emscripten_thread_exit"]);wasmExports["memalign"]=makeWrapper_ppp(wasmExports["memalign"]);wasmExports["emscripten_stack_set_limits"]=makeWrapper__pp(wasmExports["emscripten_stack_set_limits"]);wasmExports["_emscripten_stack_restore"]=makeWrapper__p(wasmExports["_emscripten_stack_restore"]);wasmExports["_emscripten_stack_alloc"]=makeWrapper_pp(wasmExports["_emscripten_stack_alloc"]);wasmExports["emscripten_stack_get_current"]=makeWrapper_p(wasmExports["emscripten_stack_get_current"]);return wasmExports}async function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,BigInt(argv));ret=await ret;exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){dependenciesFulfilled=run;return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}async function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();Module["onRuntimeInitialized"]?.();var noInitialRun=Module["noInitialRun"]||false;if(!noInitialRun)await callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}var wasmExports;if(!ENVIRONMENT_IS_PTHREAD){createWasm();run()} +var Module=typeof Module!="undefined"?Module:{};var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";var ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&self.name?.startsWith("em-pthread");if(ENVIRONMENT_IS_NODE){var worker_threads=require("worker_threads");global.Worker=worker_threads.Worker;ENVIRONMENT_IS_WORKER=!worker_threads.isMainThread;ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&worker_threads["workerData"]=="em-pthread"}var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=globalThis.document?.currentScript?.src;if(typeof __filename!="undefined"){_scriptName=__filename}else if(ENVIRONMENT_IS_WORKER){_scriptName=self.location.href}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");scriptDirectory=__dirname+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module}quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}if(!ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var defaultPrint=console.log.bind(console);var defaultPrintErr=console.error.bind(console);if(ENVIRONMENT_IS_NODE){var utils=require("util");var stringify=a=>typeof a=="object"?utils.inspect(a):a;defaultPrint=(...args)=>fs.writeSync(1,args.map(stringify).join(" ")+"\n");defaultPrintErr=(...args)=>fs.writeSync(2,args.map(stringify).join(" ")+"\n")}var out=defaultPrint;var err=defaultPrintErr;var wasmBinary;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var isFileURI=filename=>filename.startsWith("file://");function growMemViews(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}}if(ENVIRONMENT_IS_NODE&&ENVIRONMENT_IS_PTHREAD){var parentPort=worker_threads["parentPort"];parentPort.on("message",msg=>global.onmessage?.({data:msg}));Object.assign(globalThis,{self:global,postMessage:msg=>parentPort["postMessage"](msg)});process.on("uncaughtException",err=>{postMessage({cmd:"uncaughtException",error:err});process.exit(1)})}var startWorker;if(ENVIRONMENT_IS_PTHREAD){var initializedJS=false;self.onunhandledrejection=e=>{throw e.reason||e};async function handleMessage(e){try{var msgData=e["data"];var cmd=msgData.cmd;if(cmd==="load"){let messageQueue=[];self.onmessage=e=>messageQueue.push(e);startWorker=()=>{postMessage({cmd:"loaded"});for(let msg of messageQueue){handleMessage(msg)}self.onmessage=handleMessage};for(const handler of msgData.handlers){if(!Module[handler]||Module[handler].proxy){Module[handler]=(...args)=>{postMessage({cmd:"callHandler",handler,args})};if(handler=="print")out=Module[handler];if(handler=="printErr")err=Module[handler]}}wasmMemory=msgData.wasmMemory;updateMemoryViews();wasmModule=msgData.wasmModule;createWasm();run()}else if(cmd==="run"){establishStackSpace(msgData.pthread_ptr);__emscripten_thread_init(msgData.pthread_ptr,0,0,1,0,0);PThread.threadInitTLS();__emscripten_thread_mailbox_await(msgData.pthread_ptr);if(!initializedJS){initializedJS=true}try{await invokeEntryPoint(msgData.start_routine,msgData.arg)}catch(ex){if(ex!="unwind"){throw ex}}}else if(msgData.target==="setimmediate"){}else if(cmd==="checkMailbox"){if(initializedJS){checkMailbox()}}else if(cmd){err(`worker: received unknown command ${cmd}`);err(msgData)}}catch(ex){__emscripten_thread_crashed();throw ex}}self.onmessage=handleMessage}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function initMemory(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||134217728;wasmMemory=new WebAssembly.Memory({initial:BigInt(INITIAL_MEMORY/65536),maximum:65536n,shared:true,address:"i64"})}updateMemoryViews()}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return startWorker();if(!Module["noFSInit"]&&!FS.initialized)FS.init();TTY.init();wasmExports["__wasm_call_ctors"]();FS.ignorePermissions=false}function preMain(){}function postRun(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";if(runtimeInitialized){___trap()}var e=new WebAssembly.RuntimeError(what);throw e}var wasmBinaryFile;function findWasmBinary(){return locateFile("wllama.wasm")}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){assignWasmImports();if(!wasmImports.__instrumented){wasmImports.__instrumented=true;Asyncify.instrumentWasmImports(wasmImports)}var imports={env:wasmImports,wasi_snapshot_preview1:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmExports=applySignatureConversions(wasmExports);registerTLSInit(wasmExports["_emscripten_tls_init"]);assignWasmExports(wasmExports);wasmModule=module;removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){return receiveInstance(result["instance"],result["module"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}if(ENVIRONMENT_IS_PTHREAD){var instance=new WebAssembly.Instance(wasmModule,getWasmImports());return receiveInstance(instance,wasmModule)}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var terminateWorker=worker=>{worker.terminate();worker.onmessage=e=>{}};var cleanupThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];PThread.returnWorkerToPool(worker)};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}};var addRunDependency=id=>{runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)};var spawnThread=threadParams=>{var worker=PThread.getNewWorker();if(!worker){return 6}PThread.runningWorkers.push(worker);PThread.pthreads[threadParams.pthread_ptr]=worker;worker.pthread_ptr=threadParams.pthread_ptr;var msg={cmd:"run",start_routine:threadParams.startRoutine,arg:threadParams.arg,pthread_ptr:threadParams.pthread_ptr};if(ENVIRONMENT_IS_NODE){worker.unref()}worker.postMessage(msg,threadParams.transferList);return 0};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var stackSave=()=>_emscripten_stack_get_current();var stackRestore=val=>__emscripten_stack_restore(val);var stackAlloc=sz=>__emscripten_stack_alloc(sz);var proxyToMainThread=(funcIndex,emAsmAddr,sync,...callArgs)=>{var serializedNumCallArgs=callArgs.length*2;var sp=stackSave();var args=stackAlloc(serializedNumCallArgs*8);var b=args/8;for(var i=0;i{EXITSTATUS=status;if(ENVIRONMENT_IS_PTHREAD){exitOnMainThread(status);throw"unwind"}_proc_exit(status)};var _exit=exitJS;var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init(){if(!ENVIRONMENT_IS_PTHREAD){PThread.initMainThread()}},initMainThread(){var pthreadPoolSize=Module["pthreadPoolSize"];while(pthreadPoolSize--){PThread.allocateUnusedWorker()}addOnPreRun(async()=>{var pthreadPoolReady=PThread.loadWasmModuleToAllWorkers();addRunDependency("loading-workers");await pthreadPoolReady;removeRunDependency("loading-workers")})},terminateAllThreads:()=>{for(var worker of PThread.runningWorkers){terminateWorker(worker)}for(var worker of PThread.unusedWorkers){terminateWorker(worker)}PThread.unusedWorkers=[];PThread.runningWorkers=[];PThread.pthreads={}},returnWorkerToPool:worker=>{var pthread_ptr=worker.pthread_ptr;delete PThread.pthreads[pthread_ptr];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);worker.pthread_ptr=0;__emscripten_thread_free_data(pthread_ptr)},threadInitTLS(){PThread.tlsInitFunctions.forEach(f=>f())},loadWasmModuleToWorker:worker=>new Promise(onFinishedLoading=>{worker.onmessage=e=>{var d=e["data"];var cmd=d.cmd;if(d.targetThread&&d.targetThread!=_pthread_self()){var targetWorker=PThread.pthreads[d.targetThread];if(targetWorker){targetWorker.postMessage(d,d.transferList)}else{err(`Internal error! Worker sent a message "${cmd}" to target pthread ${d.targetThread}, but that thread no longer exists!`)}return}if(cmd==="checkMailbox"){checkMailbox()}else if(cmd==="spawnThread"){spawnThread(d)}else if(cmd==="cleanupThread"){callUserCallback(()=>cleanupThread(d.thread))}else if(cmd==="loaded"){worker.loaded=true;if(ENVIRONMENT_IS_NODE&&!worker.pthread_ptr){worker.unref()}onFinishedLoading(worker)}else if(d.target==="setimmediate"){worker.postMessage(d)}else if(cmd==="uncaughtException"){worker.onerror(d.error)}else if(cmd==="callHandler"){Module[d.handler](...d.args)}else if(cmd){err(`worker sent an unknown command ${cmd}`)}};worker.onerror=e=>{var message="worker sent an error!";err(`${message} ${e.filename}:${e.lineno}: ${e.message}`);throw e};if(ENVIRONMENT_IS_NODE){worker.on("message",data=>worker.onmessage({data}));worker.on("error",e=>worker.onerror(e))}var handlers=[];var knownHandlers=["onExit","onAbort","print","printErr"];for(var handler of knownHandlers){if(Module.propertyIsEnumerable(handler)){handlers.push(handler)}}worker.postMessage({cmd:"load",handlers,wasmMemory,wasmModule})}),async loadWasmModuleToAllWorkers(){if(ENVIRONMENT_IS_PTHREAD){return}let pthreadPoolReady=Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker));return pthreadPoolReady},allocateUnusedWorker(){var worker;var pthreadMainJs=_scriptName;if(Module["mainScriptUrlOrBlob"]){pthreadMainJs=Module["mainScriptUrlOrBlob"];if(typeof pthreadMainJs!="string"){pthreadMainJs=URL.createObjectURL(pthreadMainJs)}}worker=new Worker(pthreadMainJs,{workerData:"em-pthread",name:"em-pthread"});PThread.unusedWorkers.push(worker)},getNewWorker(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);function establishStackSpace(pthread_ptr){var stackHigh=Number((growMemViews(),HEAPU64)[(pthread_ptr+88)/8]);var stackSize=Number((growMemViews(),HEAPU64)[(pthread_ptr+96)/8]);var stackLow=stackHigh-stackSize;_emscripten_stack_set_limits(stackHigh,stackLow);stackRestore(stackHigh)}var wasmTableMirror=[];var getWasmTableEntry=funcPtr=>{funcPtr=Number(funcPtr);var func=wasmTableMirror[funcPtr];if(!func){wasmTableMirror[funcPtr]=func=wasmTable.get(BigInt(funcPtr));if(Asyncify.isAsyncExport(func)){wasmTableMirror[funcPtr]=func=Asyncify.makeAsyncFunction(func)}}return func};var invokeEntryPoint=async(ptr,arg)=>{runtimeKeepaliveCounter=0;noExitRuntime=0;var result=(a1=>WebAssembly.promising(getWasmTableEntry(ptr)).call(null,BigInt(a1)))(arg);function finish(result){if(keepRuntimeAlive()){EXITSTATUS=result;return}__emscripten_thread_exit(result)}result=await result;finish(result)};invokeEntryPoint.isAsync=true;var noExitRuntime=true;var registerTLSInit=tlsInitFunc=>PThread.tlsInitFunctions.push(tlsInitFunc);var wasmMemory;var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>numINT53_MAX?NaN:Number(num);var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.buffer instanceof ArrayBuffer?heapOrArray.subarray(idx,endPtr):heapOrArray.slice(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString((growMemViews(),HEAPU8),ptr,maxBytesToRead,ignoreNul):"";function pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(2,0,1,pthread_ptr,attr,startRoutine,arg);return ___pthread_create_js(pthread_ptr,attr,startRoutine,arg)}var _emscripten_has_threading_support=()=>!!globalThis.SharedArrayBuffer;function ___pthread_create_js(pthread_ptr,attr,startRoutine,arg){pthread_ptr=bigintToI53Checked(pthread_ptr);attr=bigintToI53Checked(attr);startRoutine=bigintToI53Checked(startRoutine);arg=bigintToI53Checked(arg);if(!_emscripten_has_threading_support()){return 6}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg)}if(error)return error;var threadParams={startRoutine,pthread_ptr,arg,transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}var syscallGetVarargP=()=>{var ret=Number((growMemViews(),HEAPU64)[SYSCALLS.varargs/8]);SYSCALLS.varargs+=8;return ret};var syscallGetVarargI=()=>{var ret=(growMemViews(),HEAP32)[+SYSCALLS.varargs/4];SYSCALLS.varargs+=4;return ret};var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\/]+|\/)\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>view=>view.set(crypto.getRandomValues(new Uint8Array(view.byteLength)));var randomFill=view=>{(randomFill=initRandomFill())(view)};var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++}}heap[outIdx]=0;return outIdx-startIdx};var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}}else if(globalThis.window?.prompt){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var zeroMemory=(ptr,size)=>(growMemViews(),HEAPU8).fill(0,ptr,ptr+size);var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(ptr)zeroMemory(ptr,size);return ptr};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of["mode","atime","mtime","ctime"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){if(!MEMFS.doesNotExistError){MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack=""}throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[".","..",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var getUniqueRunDependency=id=>id;var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!="undefined")Browser.init();for(var plugin of preloadPlugins){if(plugin["canHandle"](fullname)){return plugin["handle"](byteArray,fullname)}}return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);addRunDependency(dep);try{var byteArray=url;if(typeof url=="string"){byteArray=await asyncLoad(url)}byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}}finally{removeRunDependency(dep)}};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+"/"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&(512|64)){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}for(var mount of mounts){if(mount.type.syncfs){mount.type.syncfs(mount,populate,done)}else{done(null)}}},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);for(var[hash,current]of Object.entries(FS.nameTable)){while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}}node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name==="."||name===".."){throw new FS.ErrnoError(20)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+="/";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path=="object"){node=path}else{isDirPath=path.endsWith("/");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}if(Module["logReadFiles"]&&!(flags&1)){if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){abort(`Invalid encoding type "${opts.encoding}"`)}var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){buf=UTF8ArrayToString(buf)}FS.close(stream);return buf},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){data=new Uint8Array(intArrayFromString(data,true))}if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{abort("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},"/proc/self/fd")},createStandardStreams(input,output,error){if(input){FS.createDevice("/dev","stdin",input)}else{FS.symlink("/dev/tty","/dev/stdin")}if(output){FS.createDevice("/dev","stdout",null,output)}else{FS.symlink("/dev/tty","/dev/stdout")}if(error){FS.createDevice("/dev","stderr",null,error)}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){FS.initialized=true;input??=Module["stdin"];output??=Module["stdout"];error??=Module["stderr"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)abort("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)abort("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")abort("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(globalThis.XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)abort("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};for(const[key,fn]of Object.entries(node.stream_ops)){stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}}function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,(growMemViews(),HEAP8),ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+"/"+path},writeStat(buf,stat){(growMemViews(),HEAPU32)[buf/4]=stat.dev;(growMemViews(),HEAPU32)[(buf+4)/4]=stat.mode;(growMemViews(),HEAPU64)[(buf+8)/8]=BigInt(stat.nlink);(growMemViews(),HEAPU32)[(buf+16)/4]=stat.uid;(growMemViews(),HEAPU32)[(buf+20)/4]=stat.gid;(growMemViews(),HEAPU32)[(buf+24)/4]=stat.rdev;(growMemViews(),HEAP64)[(buf+32)/8]=BigInt(stat.size);(growMemViews(),HEAP32)[(buf+40)/4]=4096;(growMemViews(),HEAP32)[(buf+44)/4]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();(growMemViews(),HEAP64)[(buf+48)/8]=BigInt(Math.floor(atime/1e3));(growMemViews(),HEAPU64)[(buf+56)/8]=BigInt(atime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+64)/8]=BigInt(Math.floor(mtime/1e3));(growMemViews(),HEAPU64)[(buf+72)/8]=BigInt(mtime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+80)/8]=BigInt(Math.floor(ctime/1e3));(growMemViews(),HEAPU64)[(buf+88)/8]=BigInt(ctime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+96)/8]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){(growMemViews(),HEAPU32)[(buf+8)/4]=stats.bsize;(growMemViews(),HEAPU32)[(buf+72)/4]=stats.bsize;(growMemViews(),HEAP64)[(buf+16)/8]=BigInt(stats.blocks);(growMemViews(),HEAP64)[(buf+24)/8]=BigInt(stats.bfree);(growMemViews(),HEAP64)[(buf+32)/8]=BigInt(stats.bavail);(growMemViews(),HEAP64)[(buf+40)/8]=BigInt(stats.files);(growMemViews(),HEAP64)[(buf+48)/8]=BigInt(stats.ffree);(growMemViews(),HEAPU32)[(buf+56)/4]=stats.fsid;(growMemViews(),HEAPU32)[(buf+80)/4]=stats.flags;(growMemViews(),HEAPU32)[(buf+64)/4]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=(growMemViews(),HEAPU8).slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(3,0,1,fd,cmd,varargs);varargs=bigintToI53Checked(varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 5:{var arg=syscallGetVarargP();var offset=0;(growMemViews(),HEAP16)[(arg+offset)/2]=2;return 0}case 6:case 7:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(4,0,1,fd,buf);buf=bigintToI53Checked(buf);try{return SYSCALLS.writeStat(buf,FS.fstat(fd))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,(growMemViews(),HEAPU8),outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(5,0,1,buf,size);buf=bigintToI53Checked(buf);size=bigintToI53Checked(size);try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(sizeabort("");function __emscripten_init_main_thread_js(tb){tb=bigintToI53Checked(tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1,!ENVIRONMENT_IS_WEB,65536,false);PThread.threadInitTLS()}var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var maybeExit=()=>{if(!keepRuntimeAlive()){try{if(ENVIRONMENT_IS_PTHREAD){if(_pthread_self())__emscripten_thread_exit(EXITSTATUS);return}_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};function __emscripten_thread_mailbox_await(pthread_ptr){pthread_ptr=bigintToI53Checked(pthread_ptr);if(Atomics.waitAsync){var wait=Atomics.waitAsync((growMemViews(),HEAP32),pthread_ptr/4,pthread_ptr);wait.value.then(checkMailbox);var waitingAsync=pthread_ptr+228;Atomics.store((growMemViews(),HEAP32),waitingAsync/4,1)}}var checkMailbox=()=>callUserCallback(()=>{var pthread_ptr=_pthread_self();if(pthread_ptr){__emscripten_thread_mailbox_await(pthread_ptr);__emscripten_check_mailbox()}});function __emscripten_notify_mailbox_postmessage(targetThread,currThreadId){targetThread=bigintToI53Checked(targetThread);currThreadId=bigintToI53Checked(currThreadId);if(targetThread==currThreadId){setTimeout(checkMailbox)}else if(ENVIRONMENT_IS_PTHREAD){postMessage({targetThread,cmd:"checkMailbox"})}else{var worker=PThread.pthreads[targetThread];if(!worker){return}worker.postMessage({cmd:"checkMailbox"})}}var proxiedJSCallArgs=[];function __emscripten_receive_on_main_thread_js(funcIndex,emAsmAddr,callingThread,numCallArgs,args){emAsmAddr=bigintToI53Checked(emAsmAddr);callingThread=bigintToI53Checked(callingThread);args=bigintToI53Checked(args);numCallArgs/=2;proxiedJSCallArgs.length=numCallArgs;var b=args/8;for(var i=0;i{noExitRuntime=false;runtimeKeepaliveCounter=0};function __emscripten_thread_cleanup(thread){thread=bigintToI53Checked(thread);if(!ENVIRONMENT_IS_PTHREAD)cleanupThread(thread);else postMessage({cmd:"cleanupThread",thread})}function __emscripten_thread_set_strongref(thread){thread=bigintToI53Checked(thread);if(ENVIRONMENT_IS_NODE){PThread.pthreads[thread].ref()}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time,tmPtr){time=bigintToI53Checked(time);tmPtr=bigintToI53Checked(tmPtr);var date=new Date(time*1e3);(growMemViews(),HEAP32)[tmPtr/4]=date.getSeconds();(growMemViews(),HEAP32)[(tmPtr+4)/4]=date.getMinutes();(growMemViews(),HEAP32)[(tmPtr+8)/4]=date.getHours();(growMemViews(),HEAP32)[(tmPtr+12)/4]=date.getDate();(growMemViews(),HEAP32)[(tmPtr+16)/4]=date.getMonth();(growMemViews(),HEAP32)[(tmPtr+20)/4]=date.getFullYear()-1900;(growMemViews(),HEAP32)[(tmPtr+24)/4]=date.getDay();var yday=ydayFromDate(date)|0;(growMemViews(),HEAP32)[(tmPtr+28)/4]=yday;(growMemViews(),HEAP64)[(tmPtr+40)/8]=BigInt(-(date.getTimezoneOffset()*60));var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;(growMemViews(),HEAP32)[(tmPtr+32)/4]=dst}function __mmap_js(len,prot,flags,fd,offset,allocated,addr){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(12,0,1,len,prot,flags,fd,offset,allocated,addr);len=bigintToI53Checked(len);offset=bigintToI53Checked(offset);allocated=bigintToI53Checked(allocated);addr=bigintToI53Checked(addr);try{var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;(growMemViews(),HEAP32)[allocated/4]=res.allocated;(growMemViews(),HEAPU64)[addr/8]=BigInt(ptr);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(13,0,1,addr,len,prot,flags,fd,offset);addr=bigintToI53Checked(addr);len=bigintToI53Checked(len);offset=bigintToI53Checked(offset);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var timers={};var _emscripten_get_now=()=>performance.timeOrigin+performance.now();function __setitimer_js(which,timeout_ms){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(14,0,1,which,timeout_ms);if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0}var __tzset_js=function(timezone,daylight,std_name,dst_name){timezone=bigintToI53Checked(timezone);daylight=bigintToI53Checked(daylight);std_name=bigintToI53Checked(std_name);dst_name=bigintToI53Checked(dst_name);var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);(growMemViews(),HEAPU64)[timezone/8]=BigInt(stdTimezoneOffset*60);(growMemViews(),HEAP32)[daylight/4]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffsetDate.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);ptime=bigintToI53Checked(ptime);if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);(growMemViews(),HEAP64)[ptime/8]=BigInt(nsec);return 0}var _emscripten_check_blocking_allowed=()=>{};var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};var _emscripten_exit_with_live_runtime=()=>{runtimeKeepalivePush();throw"unwind"};var getHeapMax=()=>4294967296;var _emscripten_get_heap_max=()=>BigInt(getHeapMax());var _emscripten_has_asyncify=()=>2;var _emscripten_num_logical_cores=()=>ENVIRONMENT_IS_NODE?require("os").cpus().length:navigator["hardwareConcurrency"];var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(BigInt(pages));updateMemoryViews();return 1}catch(e){}};function _emscripten_resize_heap(requestedSize){requestedSize=bigintToI53Checked(requestedSize);var oldSize=(growMemViews(),HEAPU8).length;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false}var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var writeI53ToI64=(ptr,num)=>{(growMemViews(),HEAPU32)[ptr/4]=num;var lower=(growMemViews(),HEAPU32)[ptr/4];(growMemViews(),HEAPU32)[(ptr+4)/4]=(num-lower)/4294967296};var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var readI53FromI64=ptr=>(growMemViews(),HEAPU32)[ptr/4]+(growMemViews(),HEAP32)[(ptr+4)/4]*4294967296;var WebGPU={Internals:{jsObjects:[],jsObjectInsert:(ptr,jsObject)=>{WebGPU.Internals.jsObjects[ptr]=jsObject},bufferOnUnmaps:[],futures:[],futureInsert:(futureId,promise)=>{WebGPU.Internals.futures[futureId]=new Promise(resolve=>promise.finally(()=>resolve(futureId)))}},getJsObject:ptr=>{if(!ptr)return undefined;return WebGPU.Internals.jsObjects[ptr]},importJsAdapter:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateAdapter(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroup:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroup(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroupLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroupLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBuffer:(buffer,parentPtr=0)=>{assert(buffer.mapState==="unmapped");var bufferPtr=_emwgpuCreateBuffer(parentPtr);WebGPU.Internals.jsObjectInsert(bufferPtr,buffer);return bufferPtr},importJsCommandBuffer:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandBuffer(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsCommandEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsDevice:(device,parentPtr=0)=>{var queuePtr=_emwgpuCreateQueue(parentPtr);var devicePtr=_emwgpuCreateDevice(parentPtr,queuePtr);WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);return devicePtr},importJsExternalTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateExternalTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsPipelineLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreatePipelineLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQuerySet:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQuerySet(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQueue:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQueue(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundle:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundle(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundleEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundleEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSampler:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSampler(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsShaderModule:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateShaderModule(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSurface:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSurface(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTextureView:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTextureView(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},errorCallback:(callback,type,message,userdata)=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(message);((a1,a2,a3)=>getWasmTableEntry(callback).call(null,a1,BigInt(a2),BigInt(a3)))(type,BigInt(messagePtr),userdata);stackRestore(sp)},iterateExtensions:(root,handlers)=>{for(var ptr=Number((growMemViews(),HEAPU64)[root/8]);ptr;ptr=Number((growMemViews(),HEAPU64)[ptr/8])){var sType=(growMemViews(),HEAP32)[(ptr+8)/4];var handler=handlers[sType](ptr)}},setStringView:(ptr,data,length)=>{(growMemViews(),HEAPU64)[ptr/8]=BigInt(data);(growMemViews(),HEAPU64)[(ptr+8)/8]=BigInt(length)},makeStringFromStringView:stringViewPtr=>{var ptr=Number((growMemViews(),HEAPU64)[stringViewPtr/8]);var length=Number((growMemViews(),HEAPU64)[(stringViewPtr+8)/8]);return UTF8ToString(ptr,length)},makeStringFromOptionalStringView:stringViewPtr=>{var ptr=Number((growMemViews(),HEAPU64)[stringViewPtr/8]);var length=Number((growMemViews(),HEAPU64)[(stringViewPtr+8)/8]);if(!ptr){if(length===0){return""}return undefined}return UTF8ToString(ptr,length)},makeColor:ptr=>({r:(growMemViews(),HEAPF64)[ptr/8],g:(growMemViews(),HEAPF64)[(ptr+8)/8],b:(growMemViews(),HEAPF64)[(ptr+16)/8],a:(growMemViews(),HEAPF64)[(ptr+24)/8]}),makeExtent3D:ptr=>({width:(growMemViews(),HEAPU32)[ptr/4],height:(growMemViews(),HEAPU32)[(ptr+4)/4],depthOrArrayLayers:(growMemViews(),HEAPU32)[(ptr+8)/4]}),makeOrigin3D:ptr=>({x:(growMemViews(),HEAPU32)[ptr/4],y:(growMemViews(),HEAPU32)[(ptr+4)/4],z:(growMemViews(),HEAPU32)[(ptr+8)/4]}),makeTexelCopyTextureInfo:ptr=>({texture:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[ptr/8])),mipLevel:(growMemViews(),HEAPU32)[(ptr+8)/4],origin:WebGPU.makeOrigin3D(ptr+12),aspect:WebGPU.TextureAspect[(growMemViews(),HEAP32)[(ptr+24)/4]]}),makeTexelCopyBufferLayout:ptr=>{var bytesPerRow=(growMemViews(),HEAPU32)[(ptr+8)/4];var rowsPerImage=(growMemViews(),HEAPU32)[(ptr+12)/4];return{offset:readI53FromI64(ptr),bytesPerRow:bytesPerRow===4294967295?undefined:bytesPerRow,rowsPerImage:rowsPerImage===4294967295?undefined:rowsPerImage}},makeTexelCopyBufferInfo:ptr=>{var layoutPtr=ptr+0;var bufferCopyView=WebGPU.makeTexelCopyBufferLayout(layoutPtr);bufferCopyView["buffer"]=WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+16)/8]));return bufferCopyView},makePassTimestampWrites:ptr=>{if(ptr===0)return undefined;return{querySet:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+8)/8])),beginningOfPassWriteIndex:(growMemViews(),HEAPU32)[(ptr+16)/4],endOfPassWriteIndex:(growMemViews(),HEAPU32)[(ptr+20)/4]}},makePipelineConstants:(constantCount,constantsPtr)=>{if(!constantCount)return;var constants={};for(var i=0;i{if(!layoutPtr)return"auto";return WebGPU.getJsObject(layoutPtr)},makeComputeState:ptr=>{if(!ptr)return undefined;var desc={module:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+8)/8])),constants:WebGPU.makePipelineConstants(Number((growMemViews(),HEAPU64)[(ptr+32)/8]),Number((growMemViews(),HEAPU64)[(ptr+40)/8])),entryPoint:WebGPU.makeStringFromOptionalStringView(ptr+16)};return desc},makeComputePipelineDesc:descriptor=>{var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8),layout:WebGPU.makePipelineLayout(Number((growMemViews(),HEAPU64)[(descriptor+24)/8])),compute:WebGPU.makeComputeState(descriptor+32)};return desc},makeRenderPipelineDesc:descriptor=>{function makePrimitiveState(psPtr){if(!psPtr)return undefined;return{topology:WebGPU.PrimitiveTopology[(growMemViews(),HEAP32)[(psPtr+8)/4]],stripIndexFormat:WebGPU.IndexFormat[(growMemViews(),HEAP32)[(psPtr+12)/4]],frontFace:WebGPU.FrontFace[(growMemViews(),HEAP32)[(psPtr+16)/4]],cullMode:WebGPU.CullMode[(growMemViews(),HEAP32)[(psPtr+20)/4]],unclippedDepth:!!(growMemViews(),HEAPU32)[(psPtr+24)/4]}}function makeBlendComponent(bdPtr){if(!bdPtr)return undefined;return{operation:WebGPU.BlendOperation[(growMemViews(),HEAP32)[bdPtr/4]],srcFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[(bdPtr+4)/4]],dstFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[(bdPtr+8)/4]]}}function makeBlendState(bsPtr){if(!bsPtr)return undefined;return{alpha:makeBlendComponent(bsPtr+12),color:makeBlendComponent(bsPtr+0)}}function makeColorState(csPtr){var format=WebGPU.TextureFormat[(growMemViews(),HEAP32)[(csPtr+8)/4]];return format?{format,blend:makeBlendState(Number((growMemViews(),HEAPU64)[(csPtr+16)/8])),writeMask:(growMemViews(),HEAPU32)[(csPtr+24)/4]}:undefined}function makeColorStates(count,csArrayPtr){var states=[];for(var i=0;i{var nextInChainPtr=Number((growMemViews(),HEAPU64)[limitsOutPtr/8]);function setLimitValueU32(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;(growMemViews(),HEAPU32)[(basePtr+limitOffset)/4]=limitValue}function setLimitValueU64(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;writeI53ToI64(basePtr+limitOffset,limitValue)}setLimitValueU32("maxTextureDimension1D",limitsOutPtr,8);setLimitValueU32("maxTextureDimension2D",limitsOutPtr,12);setLimitValueU32("maxTextureDimension3D",limitsOutPtr,16);setLimitValueU32("maxTextureArrayLayers",limitsOutPtr,20);setLimitValueU32("maxBindGroups",limitsOutPtr,24);setLimitValueU32("maxBindGroupsPlusVertexBuffers",limitsOutPtr,28);setLimitValueU32("maxBindingsPerBindGroup",limitsOutPtr,32);setLimitValueU32("maxDynamicUniformBuffersPerPipelineLayout",limitsOutPtr,36);setLimitValueU32("maxDynamicStorageBuffersPerPipelineLayout",limitsOutPtr,40);setLimitValueU32("maxSampledTexturesPerShaderStage",limitsOutPtr,44);setLimitValueU32("maxSamplersPerShaderStage",limitsOutPtr,48);setLimitValueU32("maxStorageBuffersPerShaderStage",limitsOutPtr,52);setLimitValueU32("maxStorageTexturesPerShaderStage",limitsOutPtr,56);setLimitValueU32("maxUniformBuffersPerShaderStage",limitsOutPtr,60);setLimitValueU32("minUniformBufferOffsetAlignment",limitsOutPtr,80);setLimitValueU32("minStorageBufferOffsetAlignment",limitsOutPtr,84);setLimitValueU64("maxUniformBufferBindingSize",limitsOutPtr,64);setLimitValueU64("maxStorageBufferBindingSize",limitsOutPtr,72);setLimitValueU32("maxVertexBuffers",limitsOutPtr,88);setLimitValueU64("maxBufferSize",limitsOutPtr,96);setLimitValueU32("maxVertexAttributes",limitsOutPtr,104);setLimitValueU32("maxVertexBufferArrayStride",limitsOutPtr,108);setLimitValueU32("maxInterStageShaderVariables",limitsOutPtr,112);setLimitValueU32("maxColorAttachments",limitsOutPtr,116);setLimitValueU32("maxColorAttachmentBytesPerSample",limitsOutPtr,120);setLimitValueU32("maxComputeWorkgroupStorageSize",limitsOutPtr,124);setLimitValueU32("maxComputeInvocationsPerWorkgroup",limitsOutPtr,128);setLimitValueU32("maxComputeWorkgroupSizeX",limitsOutPtr,132);setLimitValueU32("maxComputeWorkgroupSizeY",limitsOutPtr,136);setLimitValueU32("maxComputeWorkgroupSizeZ",limitsOutPtr,140);setLimitValueU32("maxComputeWorkgroupsPerDimension",limitsOutPtr,144);setLimitValueU32("maxImmediateSize",limitsOutPtr,148);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var compatibilityModeLimitsPtr=nextInChainPtr;setLimitValueU32("maxStorageBuffersInVertexStage",compatibilityModeLimitsPtr,16,limits.maxStorageBuffersPerShaderStage);setLimitValueU32("maxStorageBuffersInFragmentStage",compatibilityModeLimitsPtr,24,limits.maxStorageBuffersPerShaderStage);setLimitValueU32("maxStorageTexturesInVertexStage",compatibilityModeLimitsPtr,20,limits.maxStorageTexturesPerShaderStage);setLimitValueU32("maxStorageTexturesInFragmentStage",compatibilityModeLimitsPtr,28,limits.maxStorageTexturesPerShaderStage)}},fillAdapterInfoStruct:(info,infoStruct)=>{(growMemViews(),HEAPU32)[(infoStruct+88)/4]=info.subgroupMinSize;(growMemViews(),HEAPU32)[(infoStruct+92)/4]=info.subgroupMaxSize;var strs=info.vendor+info.architecture+info.device+info.description;var strPtr=stringToNewUTF8(strs);var vendorLen=lengthBytesUTF8(info.vendor);WebGPU.setStringView(infoStruct+8,strPtr,vendorLen);strPtr+=vendorLen;var architectureLen=lengthBytesUTF8(info.architecture);WebGPU.setStringView(infoStruct+24,strPtr,architectureLen);strPtr+=architectureLen;var deviceLen=lengthBytesUTF8(info.device);WebGPU.setStringView(infoStruct+40,strPtr,deviceLen);strPtr+=deviceLen;var descriptionLen=lengthBytesUTF8(info.description);WebGPU.setStringView(infoStruct+56,strPtr,descriptionLen);strPtr+=descriptionLen;(growMemViews(),HEAP32)[(infoStruct+72)/4]=2;var adapterType=info.isFallbackAdapter?3:4;(growMemViews(),HEAP32)[(infoStruct+76)/4]=adapterType;(growMemViews(),HEAPU32)[(infoStruct+80)/4]=0;(growMemViews(),HEAPU32)[(infoStruct+84)/4]=0},AddressMode:[,"clamp-to-edge","repeat","mirror-repeat"],BlendFactor:[,"zero","one","src","one-minus-src","src-alpha","one-minus-src-alpha","dst","one-minus-dst","dst-alpha","one-minus-dst-alpha","src-alpha-saturated","constant","one-minus-constant","src1","one-minus-src1","src1-alpha","one-minus-src1-alpha"],BlendOperation:[,"add","subtract","reverse-subtract","min","max"],BufferBindingType:[,,"uniform","storage","read-only-storage"],BufferMapState:[,"unmapped","pending","mapped"],CompareFunction:[,"never","less","equal","less-equal","greater","not-equal","greater-equal","always"],CompilationInfoRequestStatus:[,"success","callback-cancelled"],ComponentSwizzle:[,"0","1","r","g","b","a"],CompositeAlphaMode:[,"opaque","premultiplied","unpremultiplied","inherit"],CullMode:[,"none","front","back"],ErrorFilter:[,"validation","out-of-memory","internal"],FeatureLevel:[,"compatibility","core"],FeatureName:{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",22:"texture-component-swizzle",327692:"chromium-experimental-unorm16-texture-formats",327729:"chromium-experimental-multi-draw-indirect"},FilterMode:[,"nearest","linear"],FrontFace:[,"ccw","cw"],IndexFormat:[,"uint16","uint32"],InstanceFeatureName:[,"timed-wait-any","shader-source-spirv","multiple-devices-per-adapter"],LoadOp:[,"load","clear"],MipmapFilterMode:[,"nearest","linear"],OptionalBool:["false","true"],PowerPreference:[,"low-power","high-performance"],PredefinedColorSpace:[,"srgb","display-p3"],PrimitiveTopology:[,"point-list","line-list","line-strip","triangle-list","triangle-strip"],QueryType:[,"occlusion","timestamp"],SamplerBindingType:[,,"filtering","non-filtering","comparison"],Status:[,"success","error"],StencilOperation:[,"keep","zero","replace","invert","increment-clamp","decrement-clamp","increment-wrap","decrement-wrap"],StorageTextureAccess:[,,"write-only","read-only","read-write"],StoreOp:[,"store","discard"],SurfaceGetCurrentTextureStatus:[,"success-optimal","success-suboptimal","timeout","outdated","lost","error"],TextureAspect:[,"all","stencil-only","depth-only"],TextureDimension:[,"1d","2d","3d"],TextureFormat:[,"r8unorm","r8snorm","r8uint","r8sint","r16unorm","r16snorm","r16uint","r16sint","r16float","rg8unorm","rg8snorm","rg8uint","rg8sint","r32float","r32uint","r32sint","rg16unorm","rg16snorm","rg16uint","rg16sint","rg16float","rgba8unorm","rgba8unorm-srgb","rgba8snorm","rgba8uint","rgba8sint","bgra8unorm","bgra8unorm-srgb","rgb10a2uint","rgb10a2unorm","rg11b10ufloat","rgb9e5ufloat","rg32float","rg32uint","rg32sint","rgba16unorm","rgba16snorm","rgba16uint","rgba16sint","rgba16float","rgba32float","rgba32uint","rgba32sint","stencil8","depth16unorm","depth24plus","depth24plus-stencil8","depth32float","depth32float-stencil8","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb","bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm","bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb","etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm","astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"],TextureSampleType:[,,"float","unfilterable-float","depth","sint","uint"],TextureViewDimension:[,"1d","2d","2d-array","cube","cube-array","3d"],ToneMappingMode:[,"standard","extended"],VertexFormat:[,"uint8","uint8x2","uint8x4","sint8","sint8x2","sint8x4","unorm8","unorm8x2","unorm8x4","snorm8","snorm8x2","snorm8x4","uint16","uint16x2","uint16x4","sint16","sint16x2","sint16x4","unorm16","unorm16x2","unorm16x4","snorm16","snorm16x2","snorm16x4","float16","float16x2","float16x4","float32","float32x2","float32x3","float32x4","uint32","uint32x2","uint32x3","uint32x4","sint32","sint32x2","sint32x3","sint32x4","unorm10-10-10-2","unorm8x4-bgra"],VertexStepMode:[,"vertex","instance"],WGSLLanguageFeatureName:[,"readonly_and_readwrite_storage_textures","packed_4x8_integer_dot_product","unrestricted_pointer_parameters","pointer_composite_access","uniform_buffer_standard_layout","subgroup_id","texture_and_sampler_let","subgroup_uniformity","texture_formats_tier1"]};var emwgpuStringToInt_DeviceLostReason={undefined:1,unknown:1,destroyed:2};var runtimeKeepalivePop=()=>{runtimeKeepaliveCounter-=1};function _emwgpuAdapterRequestDevice(adapterPtr,futureId,deviceLostFutureId,devicePtr,queuePtr,descriptor){adapterPtr=bigintToI53Checked(adapterPtr);futureId=bigintToI53Checked(futureId);deviceLostFutureId=bigintToI53Checked(deviceLostFutureId);devicePtr=bigintToI53Checked(devicePtr);queuePtr=bigintToI53Checked(queuePtr);descriptor=bigintToI53Checked(descriptor);var adapter=WebGPU.getJsObject(adapterPtr);var desc={};if(descriptor){var requiredFeatureCount=Number((growMemViews(),HEAPU64)[(descriptor+24)/8]);if(requiredFeatureCount){var requiredFeaturesPtr=Number((growMemViews(),HEAPU64)[(descriptor+32)/8]);desc["requiredFeatures"]=Array.from((growMemViews(),HEAPU32).subarray(requiredFeaturesPtr/4,(requiredFeaturesPtr+requiredFeatureCount*4)/4),feature=>WebGPU.FeatureName[feature])}var limitsPtr=Number((growMemViews(),HEAPU64)[(descriptor+40)/8]);if(limitsPtr){var nextInChainPtr=Number((growMemViews(),HEAPU64)[limitsPtr/8]);var requiredLimits={};function setLimitU32IfDefined(name,basePtr,limitOffset,ignoreIfZero=false){var ptr=basePtr+limitOffset;var value=(growMemViews(),HEAPU32)[ptr/4];if(value!=4294967295&&(!ignoreIfZero||value!=0)){requiredLimits[name]=value}}function setLimitU64IfDefined(name,basePtr,limitOffset){var ptr=basePtr+limitOffset;var limitPart1=(growMemViews(),HEAPU32)[ptr/4];var limitPart2=(growMemViews(),HEAPU32)[(ptr+4)/4];if(limitPart1!=4294967295||limitPart2!=4294967295){requiredLimits[name]=readI53FromI64(ptr)}}setLimitU32IfDefined("maxTextureDimension1D",limitsPtr,8);setLimitU32IfDefined("maxTextureDimension2D",limitsPtr,12);setLimitU32IfDefined("maxTextureDimension3D",limitsPtr,16);setLimitU32IfDefined("maxTextureArrayLayers",limitsPtr,20);setLimitU32IfDefined("maxBindGroups",limitsPtr,24);setLimitU32IfDefined("maxBindGroupsPlusVertexBuffers",limitsPtr,28);setLimitU32IfDefined("maxBindingsPerBindGroup",limitsPtr,32);setLimitU32IfDefined("maxDynamicUniformBuffersPerPipelineLayout",limitsPtr,36);setLimitU32IfDefined("maxDynamicStorageBuffersPerPipelineLayout",limitsPtr,40);setLimitU32IfDefined("maxSampledTexturesPerShaderStage",limitsPtr,44);setLimitU32IfDefined("maxSamplersPerShaderStage",limitsPtr,48);setLimitU32IfDefined("maxStorageBuffersPerShaderStage",limitsPtr,52);setLimitU32IfDefined("maxStorageTexturesPerShaderStage",limitsPtr,56);setLimitU32IfDefined("maxUniformBuffersPerShaderStage",limitsPtr,60);setLimitU32IfDefined("minUniformBufferOffsetAlignment",limitsPtr,80);setLimitU32IfDefined("minStorageBufferOffsetAlignment",limitsPtr,84);setLimitU64IfDefined("maxUniformBufferBindingSize",limitsPtr,64);setLimitU64IfDefined("maxStorageBufferBindingSize",limitsPtr,72);setLimitU32IfDefined("maxVertexBuffers",limitsPtr,88);setLimitU64IfDefined("maxBufferSize",limitsPtr,96);setLimitU32IfDefined("maxVertexAttributes",limitsPtr,104);setLimitU32IfDefined("maxVertexBufferArrayStride",limitsPtr,108);setLimitU32IfDefined("maxInterStageShaderVariables",limitsPtr,112);setLimitU32IfDefined("maxColorAttachments",limitsPtr,116);setLimitU32IfDefined("maxColorAttachmentBytesPerSample",limitsPtr,120);setLimitU32IfDefined("maxComputeWorkgroupStorageSize",limitsPtr,124);setLimitU32IfDefined("maxComputeInvocationsPerWorkgroup",limitsPtr,128);setLimitU32IfDefined("maxComputeWorkgroupSizeX",limitsPtr,132);setLimitU32IfDefined("maxComputeWorkgroupSizeY",limitsPtr,136);setLimitU32IfDefined("maxComputeWorkgroupSizeZ",limitsPtr,140);setLimitU32IfDefined("maxComputeWorkgroupsPerDimension",limitsPtr,144);setLimitU32IfDefined("maxImmediateSize",limitsPtr,148,true);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var compatibilityModeLimitsPtr=nextInChainPtr;if("maxStorageBuffersInVertexStage"in GPUSupportedLimits.prototype){setLimitU32IfDefined("maxStorageBuffersInVertexStage",compatibilityModeLimitsPtr,16);setLimitU32IfDefined("maxStorageTexturesInVertexStage",compatibilityModeLimitsPtr,20);setLimitU32IfDefined("maxStorageBuffersInFragmentStage",compatibilityModeLimitsPtr,24);setLimitU32IfDefined("maxStorageTexturesInFragmentStage",compatibilityModeLimitsPtr,28)}}desc["requiredLimits"]=requiredLimits}var defaultQueuePtr=Number((growMemViews(),HEAPU64)[(descriptor+48)/8]);if(defaultQueuePtr){var defaultQueueDesc={label:WebGPU.makeStringFromOptionalStringView(defaultQueuePtr+8)};desc["defaultQueue"]=defaultQueueDesc}desc["label"]=WebGPU.makeStringFromOptionalStringView(descriptor+8)}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,adapter.requestDevice(desc).then(device=>{runtimeKeepalivePop();callUserCallback(()=>{WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);devicePtr=BigInt(devicePtr);WebGPU.Internals.futureInsert(deviceLostFutureId,device.lost.then(info=>{callUserCallback(()=>{device.onuncapturederror=ev=>{};var sp=stackSave();var messagePtr=stringToUTF8OnStack(info.message);_emwgpuOnDeviceLostCompleted(deviceLostFutureId,emwgpuStringToInt_DeviceLostReason[info.reason],BigInt(messagePtr));stackRestore(sp)})}));device.onuncapturederror=ev=>{var type=5;if(ev.error instanceof GPUValidationError)type=2;else if(ev.error instanceof GPUOutOfMemoryError)type=3;else if(ev.error instanceof GPUInternalError)type=4;var sp=stackSave();var messagePtr=stringToUTF8OnStack(ev.error.message);_emwgpuOnUncapturedError(BigInt(devicePtr),type,BigInt(messagePtr));stackRestore(sp)};_emwgpuOnRequestDeviceCompleted(futureId,1,BigInt(devicePtr),0n)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestDeviceCompleted(futureId,3,BigInt(devicePtr),BigInt(messagePtr));if(deviceLostFutureId){_emwgpuOnDeviceLostCompleted(deviceLostFutureId,4,BigInt(messagePtr))}stackRestore(sp)})}))}function _emwgpuBufferDestroy(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(onUnmap){for(var i=0;i{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};var _emwgpuBufferGetConstMappedRange=function(bufferPtr,offset,size){bufferPtr=bigintToI53Checked(bufferPtr);offset=bigintToI53Checked(offset);size=bigintToI53Checked(size);var ret=(()=>{var buffer=WebGPU.getJsObject(bufferPtr);if(size==-1)size=undefined;var mapped;try{mapped=buffer.getMappedRange(offset,size)}catch(ex){return 0n}var data=_memalign(16,mapped.byteLength);(growMemViews(),HEAPU8).set(new Uint8Array(mapped),data);WebGPU.Internals.bufferOnUnmaps[bufferPtr].push(()=>_free(data));return data})();return BigInt(ret)};var _emwgpuBufferMapAsync=function(bufferPtr,futureId,mode,offset,size){bufferPtr=bigintToI53Checked(bufferPtr);futureId=bigintToI53Checked(futureId);mode=bigintToI53Checked(mode);offset=bigintToI53Checked(offset);size=bigintToI53Checked(size);var buffer=WebGPU.getJsObject(bufferPtr);WebGPU.Internals.bufferOnUnmaps[bufferPtr]=[];if(size==-1)size=undefined;runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,buffer.mapAsync(mode,offset,size).then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnMapAsyncCompleted(futureId,1,0n)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);var status=ex.name==="AbortError"?4:ex.name==="OperationError"?3:0;_emwgpuOnMapAsyncCompleted(futureId,status,BigInt(messagePtr));delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]})}))};function _emwgpuBufferUnmap(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(!onUnmap){return}for(var i=0;i{const device=WebGPU.getJsObject(devicePtr);device.onuncapturederror=null;device.destroy()};function _emwgpuInstanceRequestAdapter(instancePtr,futureId,options,adapterPtr){instancePtr=bigintToI53Checked(instancePtr);futureId=bigintToI53Checked(futureId);options=bigintToI53Checked(options);adapterPtr=bigintToI53Checked(adapterPtr);var opts;if(options){opts={featureLevel:WebGPU.FeatureLevel[(growMemViews(),HEAP32)[(options+8)/4]],powerPreference:WebGPU.PowerPreference[(growMemViews(),HEAP32)[(options+12)/4]],forceFallbackAdapter:!!(growMemViews(),HEAPU32)[(options+16)/4]};var nextInChainPtr=Number((growMemViews(),HEAPU64)[options/8]);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var webxrOptions=nextInChainPtr;opts.xrCompatible=!!(growMemViews(),HEAPU32)[(webxrOptions+16)/4]}}if(!("gpu"in navigator)){var sp=stackSave();var messagePtr=stringToUTF8OnStack("WebGPU not available on this browser (navigator.gpu is not available)");_emwgpuOnRequestAdapterCompleted(futureId,3,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp);return}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,navigator.gpu.requestAdapter(opts).then(adapter=>{runtimeKeepalivePop();callUserCallback(()=>{if(adapter){WebGPU.Internals.jsObjectInsert(adapterPtr,adapter);_emwgpuOnRequestAdapterCompleted(futureId,1,BigInt(adapterPtr),0n)}else{var sp=stackSave();var messagePtr=stringToUTF8OnStack("WebGPU not available on this browser (requestAdapter returned null)");_emwgpuOnRequestAdapterCompleted(futureId,3,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp)}})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestAdapterCompleted(futureId,4,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp)})}))}var _emwgpuQueueOnSubmittedWorkDone=function(queuePtr,futureId){queuePtr=bigintToI53Checked(queuePtr);futureId=bigintToI53Checked(futureId);var queue=WebGPU.getJsObject(queuePtr);runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,queue.onSubmittedWorkDone().then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnWorkDoneCompleted(futureId,1)})}))};var _emwgpuWaitAny=function(futurePtr,futureCount,timeoutMSPtr){futurePtr=bigintToI53Checked(futurePtr);futureCount=bigintToI53Checked(futureCount);timeoutMSPtr=bigintToI53Checked(timeoutMSPtr);return Asyncify.handleAsync(async()=>{var promises=[];if(timeoutMSPtr){var timeoutMS=(growMemViews(),HEAP32)[timeoutMSPtr/4];promises.length=futureCount+1;promises[futureCount]=new Promise(resolve=>setTimeout(resolve,timeoutMS,0))}else{promises.length=futureCount}for(var i=0;ithisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.language||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(15,0,1,__environ,environ_buf);__environ=bigintToI53Checked(__environ);environ_buf=bigintToI53Checked(environ_buf);var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;(growMemViews(),HEAPU64)[(__environ+envp)/8]=BigInt(ptr);bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=8}return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(16,0,1,penviron_count,penviron_buf_size);penviron_count=bigintToI53Checked(penviron_count);penviron_buf_size=bigintToI53Checked(penviron_buf_size);var strings=getEnvStrings();(growMemViews(),HEAPU64)[penviron_count/8]=BigInt(strings.length);var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}(growMemViews(),HEAPU64)[penviron_buf_size/8]=BigInt(bufSize);return 0}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(17,0,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i{var ret=0;for(var i=0;i=0){(growMemViews(),HEAP32)[(featuresPtr+offset)/4]=featureEnumValue;offset+=4;numFeatures++}}(growMemViews(),HEAPU64)[(supportedFeatures+8)/8]=BigInt(featuresPtr);(growMemViews(),HEAPU64)[supportedFeatures/8]=BigInt(numFeatures)}function _wgpuAdapterGetInfo(adapterPtr,info){adapterPtr=bigintToI53Checked(adapterPtr);info=bigintToI53Checked(info);var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillAdapterInfoStruct(adapter.info,info);return 1}function _wgpuAdapterGetLimits(adapterPtr,limitsOutPtr){adapterPtr=bigintToI53Checked(adapterPtr);limitsOutPtr=bigintToI53Checked(limitsOutPtr);var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillLimitStruct(adapter.limits,limitsOutPtr);return 1}function _wgpuAdapterHasFeature(adapterPtr,featureEnumValue){adapterPtr=bigintToI53Checked(adapterPtr);var adapter=WebGPU.getJsObject(adapterPtr);return adapter.features.has(WebGPU.FeatureName[featureEnumValue])}var _wgpuBufferGetSize=function(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var ret=(()=>{var buffer=WebGPU.getJsObject(bufferPtr);return buffer.size})();return BigInt(ret)};var _wgpuCommandEncoderBeginComputePass=function(encoderPtr,descriptor){encoderPtr=bigintToI53Checked(encoderPtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8),timestampWrites:WebGPU.makePassTimestampWrites(Number((growMemViews(),HEAPU64)[(descriptor+24)/8]))}}var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateComputePassEncoder(0n);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.beginComputePass(desc));return ptr})();return BigInt(ret)};function _wgpuCommandEncoderCopyBufferToBuffer(encoderPtr,srcPtr,srcOffset,dstPtr,dstOffset,size){encoderPtr=bigintToI53Checked(encoderPtr);srcPtr=bigintToI53Checked(srcPtr);srcOffset=bigintToI53Checked(srcOffset);dstPtr=bigintToI53Checked(dstPtr);dstOffset=bigintToI53Checked(dstOffset);size=bigintToI53Checked(size);var commandEncoder=WebGPU.getJsObject(encoderPtr);var src=WebGPU.getJsObject(srcPtr);var dst=WebGPU.getJsObject(dstPtr);commandEncoder.copyBufferToBuffer(src,srcOffset,dst,dstOffset,size)}var _wgpuCommandEncoderFinish=function(encoderPtr,descriptor){encoderPtr=bigintToI53Checked(encoderPtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateCommandBuffer(0n);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.finish());return ptr})();return BigInt(ret)};function _wgpuComputePassEncoderDispatchWorkgroups(passPtr,x,y,z){passPtr=bigintToI53Checked(passPtr);var pass=WebGPU.getJsObject(passPtr);pass.dispatchWorkgroups(x,y,z)}function _wgpuComputePassEncoderEnd(passPtr){passPtr=bigintToI53Checked(passPtr);var pass=WebGPU.getJsObject(passPtr);pass.end()}function _wgpuComputePassEncoderSetBindGroup(passPtr,groupIndex,groupPtr,dynamicOffsetCount,dynamicOffsetsPtr){passPtr=bigintToI53Checked(passPtr);groupPtr=bigintToI53Checked(groupPtr);dynamicOffsetCount=bigintToI53Checked(dynamicOffsetCount);dynamicOffsetsPtr=bigintToI53Checked(dynamicOffsetsPtr);var pass=WebGPU.getJsObject(passPtr);var group=WebGPU.getJsObject(groupPtr);if(dynamicOffsetCount==0){pass.setBindGroup(groupIndex,group)}else{pass.setBindGroup(groupIndex,group,(growMemViews(),HEAPU32),dynamicOffsetsPtr/4,dynamicOffsetCount)}}function _wgpuComputePassEncoderSetPipeline(passPtr,pipelinePtr){passPtr=bigintToI53Checked(passPtr);pipelinePtr=bigintToI53Checked(pipelinePtr);var pass=WebGPU.getJsObject(passPtr);var pipeline=WebGPU.getJsObject(pipelinePtr);pass.setPipeline(pipeline)}var _wgpuComputePipelineGetBindGroupLayout=function(pipelinePtr,groupIndex){pipelinePtr=bigintToI53Checked(pipelinePtr);var ret=(()=>{var pipeline=WebGPU.getJsObject(pipelinePtr);var ptr=_emwgpuCreateBindGroupLayout(0n);WebGPU.Internals.jsObjectInsert(ptr,pipeline.getBindGroupLayout(groupIndex));return ptr})();return BigInt(ret)};var _wgpuDeviceCreateBindGroup=function(devicePtr,descriptor){devicePtr=bigintToI53Checked(devicePtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{function makeEntry(entryPtr){var bufferPtr=Number((growMemViews(),HEAPU64)[(entryPtr+16)/8]);var samplerPtr=Number((growMemViews(),HEAPU64)[(entryPtr+40)/8]);var textureViewPtr=Number((growMemViews(),HEAPU64)[(entryPtr+48)/8]);var externalTexturePtr=0;WebGPU.iterateExtensions(entryPtr,{327681:ptr=>{externalTexturePtr=Number((growMemViews(),HEAPU64)[(ptr+16)/8])}});var resource;if(bufferPtr){var size=readI53FromI64(entryPtr+32);if(size==-1)size=undefined;resource={buffer:WebGPU.getJsObject(bufferPtr),offset:readI53FromI64(entryPtr+24),size}}else{resource=WebGPU.getJsObject(samplerPtr||textureViewPtr||externalTexturePtr)}return{binding:(growMemViews(),HEAPU32)[(entryPtr+8)/4],resource}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i{var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8)}}var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateCommandEncoder(0n);WebGPU.Internals.jsObjectInsert(ptr,device.createCommandEncoder(desc));return ptr})();return BigInt(ret)};var _wgpuDeviceCreateComputePipeline=function(devicePtr,descriptor){devicePtr=bigintToI53Checked(devicePtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var desc=WebGPU.makeComputePipelineDesc(descriptor);var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateComputePipeline(0n);WebGPU.Internals.jsObjectInsert(ptr,device.createComputePipeline(desc));return ptr})();return BigInt(ret)};var _wgpuQueueSubmit=function(queuePtr,commandCount,commands){queuePtr=bigintToI53Checked(queuePtr);commandCount=bigintToI53Checked(commandCount);commands=bigintToI53Checked(commands);var queue=WebGPU.getJsObject(queuePtr);var cmds=Array.from((growMemViews(),HEAP64).subarray(commands/8,(commands+commandCount*8)/8),id=>WebGPU.getJsObject(id));queue.submit(cmds)};function _wgpuQueueWriteBuffer(queuePtr,bufferPtr,bufferOffset,data,size){queuePtr=bigintToI53Checked(queuePtr);bufferPtr=bigintToI53Checked(bufferPtr);bufferOffset=bigintToI53Checked(bufferOffset);data=bigintToI53Checked(data);size=bigintToI53Checked(size);var queue=WebGPU.getJsObject(queuePtr);var buffer=WebGPU.getJsObject(bufferPtr);var subarray=(growMemViews(),HEAPU8).subarray(data,data+size);queue.writeBuffer(buffer,bufferOffset,subarray,0,size)}var Asyncify={instrumentWasmImports(imports){var importPattern=/^(invoke_.*|__asyncjs__.*)$/;for(let[x,original]of Object.entries(imports)){if(typeof original=="function"){let isAsyncifyImport=original.isAsync||importPattern.test(x);if(isAsyncifyImport){imports[x]=original=new WebAssembly.Suspending(original)}}}},instrumentFunction(original){var wrapper=(...args)=>original(...args);return wrapper},instrumentWasmExports(exports){var exportPattern=/^(wllama_start|wllama_action|main|__main_argc_argv)$/;Asyncify.asyncExports=new Set;var ret={};for(let[x,original]of Object.entries(exports)){if(typeof original=="function"){let isAsyncifyExport=exportPattern.test(x);if(isAsyncifyExport){Asyncify.asyncExports.add(original);original=Asyncify.makeAsyncFunction(original)}var wrapper=Asyncify.instrumentFunction(original);ret[x]=wrapper}else{ret[x]=original}}return ret},asyncExports:null,isAsyncExport(func){return Asyncify.asyncExports?.has(func)},handleAsync:async startAsync=>{runtimeKeepalivePush();try{return await startAsync()}finally{runtimeKeepalivePop()}},handleSleep:startAsync=>Asyncify.handleAsync(()=>new Promise(startAsync)),makeAsyncFunction(original){return WebAssembly.promising(original)}};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{(growMemViews(),HEAP8).set(array,buffer)};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={pointer:p=>BigInt(p),string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return BigInt(ret)},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return BigInt(ret)}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(Number(ret))}if(returnType==="pointer")return Number(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var FS_createPath=(...args)=>FS.createPath(...args);var FS_unlink=(...args)=>FS.unlink(...args);var FS_createLazyFile=(...args)=>FS.createLazyFile(...args);var FS_createDevice=(...args)=>FS.createDevice(...args);PThread.init();FS.createPreloadedFile=FS_createPreloadedFile;FS.preloadFile=FS_preloadFile;FS.staticInit();{initMemory();if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(Module["preloadPlugins"])preloadPlugins=Module["preloadPlugins"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()()}}}Module["mmapAlloc"]=mmapAlloc;Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["FS_preloadFile"]=FS_preloadFile;Module["FS_unlink"]=FS_unlink;Module["FS_createPath"]=FS_createPath;Module["FS_createDevice"]=FS_createDevice;Module["FS"]=FS;Module["FS_createDataFile"]=FS_createDataFile;Module["FS_createLazyFile"]=FS_createLazyFile;Module["MEMFS"]=MEMFS;var proxiedFunctionTable=[_proc_exit,exitOnMainThread,pthreadCreateProxied,___syscall_fcntl64,___syscall_fstat64,___syscall_getcwd,___syscall_getdents64,___syscall_ioctl,___syscall_lstat64,___syscall_newfstatat,___syscall_openat,___syscall_stat64,__mmap_js,__munmap_js,__setitimer_js,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function __asyncjs__js_file_read(path_ptr,offset,req_size,out_ptr){return Asyncify.handleAsync(async()=>await _wllama_js_file_read(UTF8ToString(Number(path_ptr)),Number(offset),Number(req_size),Number(out_ptr)))}__asyncjs__js_file_read.sig="jjjjj";var _malloc,_free,_wllama_malloc,_wllama_start,_wllama_action,_wllama_exit,_wllama_debug,_main,_emwgpuCreateBindGroup,_emwgpuCreateBindGroupLayout,_emwgpuCreateCommandBuffer,_emwgpuCreateCommandEncoder,_emwgpuCreateComputePassEncoder,_emwgpuCreateComputePipeline,_emwgpuCreateExternalTexture,_emwgpuCreatePipelineLayout,_emwgpuCreateQuerySet,_emwgpuCreateRenderBundle,_emwgpuCreateRenderBundleEncoder,_emwgpuCreateRenderPassEncoder,_emwgpuCreateRenderPipeline,_emwgpuCreateSampler,_emwgpuCreateSurface,_emwgpuCreateTexture,_emwgpuCreateTextureView,_emwgpuCreateAdapter,_emwgpuCreateBuffer,_emwgpuCreateDevice,_emwgpuCreateQueue,_emwgpuCreateShaderModule,_emwgpuOnDeviceLostCompleted,_emwgpuOnMapAsyncCompleted,_emwgpuOnRequestAdapterCompleted,_emwgpuOnRequestDeviceCompleted,_emwgpuOnWorkDoneCompleted,_emwgpuOnUncapturedError,__emscripten_tls_init,_pthread_self,_emscripten_builtin_memalign,__emscripten_thread_init,__emscripten_thread_crashed,__emscripten_run_js_on_main_thread,__emscripten_thread_free_data,__emscripten_thread_exit,__emscripten_timeout,__emscripten_check_mailbox,_memalign,___trap,_emscripten_stack_set_limits,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,__indirect_function_table,wasmTable;function assignWasmExports(wasmExports){_malloc=wasmExports["malloc"];_free=wasmExports["free"];_wllama_malloc=Module["_wllama_malloc"]=wasmExports["wllama_malloc"];_wllama_start=Module["_wllama_start"]=wasmExports["wllama_start"];_wllama_action=Module["_wllama_action"]=wasmExports["wllama_action"];_wllama_exit=Module["_wllama_exit"]=wasmExports["wllama_exit"];_wllama_debug=Module["_wllama_debug"]=wasmExports["wllama_debug"];_main=Module["_main"]=wasmExports["main"];_emwgpuCreateBindGroup=wasmExports["emwgpuCreateBindGroup"];_emwgpuCreateBindGroupLayout=wasmExports["emwgpuCreateBindGroupLayout"];_emwgpuCreateCommandBuffer=wasmExports["emwgpuCreateCommandBuffer"];_emwgpuCreateCommandEncoder=wasmExports["emwgpuCreateCommandEncoder"];_emwgpuCreateComputePassEncoder=wasmExports["emwgpuCreateComputePassEncoder"];_emwgpuCreateComputePipeline=wasmExports["emwgpuCreateComputePipeline"];_emwgpuCreateExternalTexture=wasmExports["emwgpuCreateExternalTexture"];_emwgpuCreatePipelineLayout=wasmExports["emwgpuCreatePipelineLayout"];_emwgpuCreateQuerySet=wasmExports["emwgpuCreateQuerySet"];_emwgpuCreateRenderBundle=wasmExports["emwgpuCreateRenderBundle"];_emwgpuCreateRenderBundleEncoder=wasmExports["emwgpuCreateRenderBundleEncoder"];_emwgpuCreateRenderPassEncoder=wasmExports["emwgpuCreateRenderPassEncoder"];_emwgpuCreateRenderPipeline=wasmExports["emwgpuCreateRenderPipeline"];_emwgpuCreateSampler=wasmExports["emwgpuCreateSampler"];_emwgpuCreateSurface=wasmExports["emwgpuCreateSurface"];_emwgpuCreateTexture=wasmExports["emwgpuCreateTexture"];_emwgpuCreateTextureView=wasmExports["emwgpuCreateTextureView"];_emwgpuCreateAdapter=wasmExports["emwgpuCreateAdapter"];_emwgpuCreateBuffer=wasmExports["emwgpuCreateBuffer"];_emwgpuCreateDevice=wasmExports["emwgpuCreateDevice"];_emwgpuCreateQueue=wasmExports["emwgpuCreateQueue"];_emwgpuCreateShaderModule=wasmExports["emwgpuCreateShaderModule"];_emwgpuOnDeviceLostCompleted=wasmExports["emwgpuOnDeviceLostCompleted"];_emwgpuOnMapAsyncCompleted=wasmExports["emwgpuOnMapAsyncCompleted"];_emwgpuOnRequestAdapterCompleted=wasmExports["emwgpuOnRequestAdapterCompleted"];_emwgpuOnRequestDeviceCompleted=wasmExports["emwgpuOnRequestDeviceCompleted"];_emwgpuOnWorkDoneCompleted=wasmExports["emwgpuOnWorkDoneCompleted"];_emwgpuOnUncapturedError=wasmExports["emwgpuOnUncapturedError"];__emscripten_tls_init=wasmExports["_emscripten_tls_init"];_pthread_self=wasmExports["pthread_self"];_emscripten_builtin_memalign=wasmExports["emscripten_builtin_memalign"];__emscripten_thread_init=wasmExports["_emscripten_thread_init"];__emscripten_thread_crashed=wasmExports["_emscripten_thread_crashed"];__emscripten_run_js_on_main_thread=wasmExports["_emscripten_run_js_on_main_thread"];__emscripten_thread_free_data=wasmExports["_emscripten_thread_free_data"];__emscripten_thread_exit=wasmExports["_emscripten_thread_exit"];__emscripten_timeout=wasmExports["_emscripten_timeout"];__emscripten_check_mailbox=wasmExports["_emscripten_check_mailbox"];_memalign=wasmExports["memalign"];___trap=wasmExports["__trap"];_emscripten_stack_set_limits=wasmExports["emscripten_stack_set_limits"];__emscripten_stack_restore=wasmExports["_emscripten_stack_restore"];__emscripten_stack_alloc=wasmExports["_emscripten_stack_alloc"];_emscripten_stack_get_current=wasmExports["emscripten_stack_get_current"];__indirect_function_table=wasmTable=wasmExports["__indirect_function_table"]}var wasmImports;function assignWasmImports(){wasmImports={__asyncjs__js_file_read,__pthread_create_js:___pthread_create_js,__syscall_fcntl64:___syscall_fcntl64,__syscall_getcwd:___syscall_getcwd,__syscall_getdents64:___syscall_getdents64,__syscall_ioctl:___syscall_ioctl,__syscall_openat:___syscall_openat,__syscall_stat64:___syscall_stat64,_abort_js:__abort_js,_emscripten_init_main_thread_js:__emscripten_init_main_thread_js,_emscripten_notify_mailbox_postmessage:__emscripten_notify_mailbox_postmessage,_emscripten_receive_on_main_thread_js:__emscripten_receive_on_main_thread_js,_emscripten_runtime_keepalive_clear:__emscripten_runtime_keepalive_clear,_emscripten_thread_cleanup:__emscripten_thread_cleanup,_emscripten_thread_mailbox_await:__emscripten_thread_mailbox_await,_emscripten_thread_set_strongref:__emscripten_thread_set_strongref,_localtime_js:__localtime_js,_mmap_js:__mmap_js,_munmap_js:__munmap_js,_setitimer_js:__setitimer_js,_tzset_js:__tzset_js,clock_time_get:_clock_time_get,emscripten_check_blocking_allowed:_emscripten_check_blocking_allowed,emscripten_date_now:_emscripten_date_now,emscripten_exit_with_live_runtime:_emscripten_exit_with_live_runtime,emscripten_get_heap_max:_emscripten_get_heap_max,emscripten_get_now:_emscripten_get_now,emscripten_has_asyncify:_emscripten_has_asyncify,emscripten_num_logical_cores:_emscripten_num_logical_cores,emscripten_resize_heap:_emscripten_resize_heap,emwgpuAdapterRequestDevice:_emwgpuAdapterRequestDevice,emwgpuBufferDestroy:_emwgpuBufferDestroy,emwgpuBufferGetConstMappedRange:_emwgpuBufferGetConstMappedRange,emwgpuBufferMapAsync:_emwgpuBufferMapAsync,emwgpuBufferUnmap:_emwgpuBufferUnmap,emwgpuDelete:_emwgpuDelete,emwgpuDeviceCreateBuffer:_emwgpuDeviceCreateBuffer,emwgpuDeviceCreateShaderModule:_emwgpuDeviceCreateShaderModule,emwgpuDeviceDestroy:_emwgpuDeviceDestroy,emwgpuInstanceRequestAdapter:_emwgpuInstanceRequestAdapter,emwgpuQueueOnSubmittedWorkDone:_emwgpuQueueOnSubmittedWorkDone,emwgpuWaitAny:_emwgpuWaitAny,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,exit:_exit,fd_close:_fd_close,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,memory:wasmMemory,proc_exit:_proc_exit,random_get:_random_get,wgpuAdapterGetFeatures:_wgpuAdapterGetFeatures,wgpuAdapterGetInfo:_wgpuAdapterGetInfo,wgpuAdapterGetLimits:_wgpuAdapterGetLimits,wgpuAdapterHasFeature:_wgpuAdapterHasFeature,wgpuBufferGetSize:_wgpuBufferGetSize,wgpuCommandEncoderBeginComputePass:_wgpuCommandEncoderBeginComputePass,wgpuCommandEncoderCopyBufferToBuffer:_wgpuCommandEncoderCopyBufferToBuffer,wgpuCommandEncoderFinish:_wgpuCommandEncoderFinish,wgpuComputePassEncoderDispatchWorkgroups:_wgpuComputePassEncoderDispatchWorkgroups,wgpuComputePassEncoderEnd:_wgpuComputePassEncoderEnd,wgpuComputePassEncoderSetBindGroup:_wgpuComputePassEncoderSetBindGroup,wgpuComputePassEncoderSetPipeline:_wgpuComputePassEncoderSetPipeline,wgpuComputePipelineGetBindGroupLayout:_wgpuComputePipelineGetBindGroupLayout,wgpuDeviceCreateBindGroup:_wgpuDeviceCreateBindGroup,wgpuDeviceCreateCommandEncoder:_wgpuDeviceCreateCommandEncoder,wgpuDeviceCreateComputePipeline:_wgpuDeviceCreateComputePipeline,wgpuQueueSubmit:_wgpuQueueSubmit,wgpuQueueWriteBuffer:_wgpuQueueWriteBuffer}}function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_pp=f=>a0=>Number(f(BigInt(a0)));var makeWrapper__p=f=>a0=>f(BigInt(a0));var makeWrapper___PP=f=>(a0,a1,a2)=>f(a0,BigInt(a1?a1:0),BigInt(a2?a2:0));var makeWrapper_p=f=>()=>Number(f());var makeWrapper_ppp=f=>(a0,a1)=>Number(f(BigInt(a0),BigInt(a1)));var makeWrapper__pp_ppp=f=>(a0,a1,a2,a3,a4,a5)=>f(BigInt(a0),BigInt(a1),a2,BigInt(a3),BigInt(a4),BigInt(a5));var makeWrapper__p_____=f=>(a0,a1,a2,a3,a4,a5)=>f(BigInt(a0),a1,a2,a3,a4,a5);var makeWrapper___p_p_=f=>(a0,a1,a2,a3,a4)=>f(a0,BigInt(a1),a2,BigInt(a3),a4);var makeWrapper__pp=f=>(a0,a1)=>f(BigInt(a0),BigInt(a1));wasmExports["malloc"]=makeWrapper_pp(wasmExports["malloc"]);wasmExports["free"]=makeWrapper__p(wasmExports["free"]);wasmExports["main"]=makeWrapper___PP(wasmExports["main"]);wasmExports["pthread_self"]=makeWrapper_p(wasmExports["pthread_self"]);wasmExports["emscripten_builtin_memalign"]=makeWrapper_ppp(wasmExports["emscripten_builtin_memalign"]);wasmExports["_emscripten_run_callback_on_thread"]=makeWrapper__pp_ppp(wasmExports["_emscripten_run_callback_on_thread"]);wasmExports["_emscripten_thread_init"]=makeWrapper__p_____(wasmExports["_emscripten_thread_init"]);wasmExports["_emscripten_run_js_on_main_thread"]=makeWrapper___p_p_(wasmExports["_emscripten_run_js_on_main_thread"]);wasmExports["_emscripten_thread_free_data"]=makeWrapper__p(wasmExports["_emscripten_thread_free_data"]);wasmExports["_emscripten_thread_exit"]=makeWrapper__p(wasmExports["_emscripten_thread_exit"]);wasmExports["memalign"]=makeWrapper_ppp(wasmExports["memalign"]);wasmExports["emscripten_stack_set_limits"]=makeWrapper__pp(wasmExports["emscripten_stack_set_limits"]);wasmExports["_emscripten_stack_restore"]=makeWrapper__p(wasmExports["_emscripten_stack_restore"]);wasmExports["_emscripten_stack_alloc"]=makeWrapper_pp(wasmExports["_emscripten_stack_alloc"]);wasmExports["emscripten_stack_get_current"]=makeWrapper_p(wasmExports["emscripten_stack_get_current"]);return wasmExports}async function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,BigInt(argv));ret=await ret;exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){dependenciesFulfilled=run;return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}async function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();Module["onRuntimeInitialized"]?.();var noInitialRun=Module["noInitialRun"]||false;if(!noInitialRun)await callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}var wasmExports;if(!ENVIRONMENT_IS_PTHREAD){createWasm();run()} diff --git a/src/wasm/wllama.wasm b/src/wasm/wllama.wasm index 35bab7443245aa5b51e4fce510b4159bed731e88..19da7e1f871002f7f35dc88dc5af4bc670f26c5a 100755 GIT binary patch delta 1055241 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�@*7;H8Fw6` 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 delta 1058024 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%0D3(} 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 h2L3L<--Y 1)\n text = Array.prototype.slice.call(arguments).join(' ');\n msg({ verb: 'console.log', args: [text] });\n },\n printErr: function (text) {\n if (arguments.length > 1)\n text = Array.prototype.slice.call(arguments).join(' ');\n const logLine = cppLogToJSLog(text);\n msg({ verb: 'console.' + logLine.level, args: [logLine.text] });\n },\n locateFile: function (filename, basePath) {\n const p = pathConfig[filename];\n const truncate = (str) =>\n str.length > 128 ? `${str.substr(0, 128)}...` : str;\n if (filename.match(/wllama\\.worker\\.js/)) {\n msg({\n verb: 'console.error',\n args: [\n '\"wllama.worker.js\" is removed from v2.2.1. Hint: make sure to clear browser\\'s cache.',\n ],\n });\n } else {\n msg({\n verb: 'console.debug',\n args: [`Loading \"${filename}\" from \"${truncate(p)}\"`],\n });\n return p;\n }\n },\n mainScriptUrlOrBlob: argMainScriptBlob,\n pthreadPoolSize,\n wasmMemory: pthreadPoolSize > 1 ? getWasmMemory() : null,\n onAbort: function (text) {\n msg({ verb: 'signal.abort', args: [text] });\n },\n };\n};\n\n// Get the memory to be used by wasm. (Only used in multi-thread mode)\n// Because we have a weird OOM issue on iOS, we need to try some values\n// See: https://github.com/emscripten-core/emscripten/issues/19144\n// https://github.com/godotengine/godot/issues/70621\nconst getWasmMemory = () => {\n let minBytes = 128 * 1024 * 1024;\n let maxBytes = 4096 * 1024 * 1024;\n let stepBytes = 128 * 1024 * 1024;\n while (maxBytes > minBytes) {\n try {\n const wasmMemory = new WebAssembly.Memory({\n initial: BigInt(minBytes / 65536),\n maximum: BigInt(maxBytes / 65536),\n shared: true,\n address: 'i64',\n });\n return wasmMemory;\n } catch (e) {\n maxBytes -= stepBytes;\n continue; // retry\n }\n }\n throw new Error('Cannot allocate WebAssembly.Memory');\n};\n\n//////////////////////////////////////////////////////////////\n// HEAPFS PATCH\n//////////////////////////////////////////////////////////////\n\n/**\n * By default, emscripten uses memfs. The way it works is by\n * allocating new Uint8Array in javascript heap. This is not good\n * because it requires files to be copied to wasm heap each time\n * a file is read.\n *\n * HeapFS is an alternative, which resolves this problem by\n * allocating space for file directly inside wasm heap. This\n * allows us to mmap without doing any copy.\n *\n * For llama.cpp, this is great because we use MAP_SHARED\n *\n * Ref: https://github.com/ngxson/wllama/pull/39\n * Ref: https://github.com/emscripten-core/emscripten/blob/main/src/library_memfs.js\n *\n * Note 29/05/2024 @ngxson\n * Due to ftell() being limited to MAX_LONG, we cannot load files bigger than 2^31 bytes (or 2GB)\n * Ref: https://github.com/emscripten-core/emscripten/blob/main/system/lib/libc/musl/src/stdio/ftell.c\n */\n\nconst fsNameToFile = {}; // map Name => File\nconst fsIdToFile = {}; // map ID => File\nlet currFileId = 0;\n\n// Patch and redirect memfs calls to wllama\nconst patchHeapFS = () => {\n const m = Module;\n // save functions\n m.MEMFS.stream_ops._read = m.MEMFS.stream_ops.read;\n m.MEMFS.stream_ops._write = m.MEMFS.stream_ops.write;\n m.MEMFS.stream_ops._llseek = m.MEMFS.stream_ops.llseek;\n m.MEMFS.stream_ops._allocate = m.MEMFS.stream_ops.allocate;\n m.MEMFS.stream_ops._mmap = m.MEMFS.stream_ops.mmap;\n m.MEMFS.stream_ops._msync = m.MEMFS.stream_ops.msync;\n\n const patchStream = (stream) => {\n const name = stream.node.name;\n if (fsNameToFile[name]) {\n const f = fsNameToFile[name];\n const ptr = Number(f.ptr);\n stream.node.contents = getHeapU8().subarray(ptr, ptr + f.size);\n stream.node.usedBytes = f.size;\n }\n };\n\n // replace \"read\" functions\n m.MEMFS.stream_ops.read = function (\n stream,\n buffer,\n offset,\n length,\n position\n ) {\n patchStream(stream);\n return m.MEMFS.stream_ops._read(stream, buffer, offset, length, position);\n };\n m.MEMFS.ops_table.file.stream.read = m.MEMFS.stream_ops.read;\n\n // replace \"llseek\" functions\n m.MEMFS.stream_ops.llseek = function (stream, offset, whence) {\n patchStream(stream);\n return m.MEMFS.stream_ops._llseek(stream, offset, whence);\n };\n m.MEMFS.ops_table.file.stream.llseek = m.MEMFS.stream_ops.llseek;\n\n // replace \"mmap\" functions\n m.MEMFS.stream_ops.mmap = function (stream, length, position, prot, flags) {\n patchStream(stream);\n const name = stream.node.name;\n if (fsNameToFile[name]) {\n const f = fsNameToFile[name];\n const mmapPtr = f.ptr + BigInt(position);\n return {\n ptr: mmapPtr,\n allocated: false,\n };\n } else {\n return m.MEMFS.stream_ops._mmap(stream, length, position, prot, flags);\n }\n };\n m.MEMFS.ops_table.file.stream.mmap = m.MEMFS.stream_ops.mmap;\n\n // mount FS\n m.FS.mkdir('/models');\n m.FS.mount(m.MEMFS, { root: '.' }, '/models');\n};\n\n// Allocate a new file in wllama heapfs, returns file ID\nconst heapfsAlloc = (name, size, allocBuffer) => {\n if (size < 1) {\n throw new Error('File size must be bigger than 0');\n }\n const m = Module;\n const ptr = BigInt(allocBuffer ? m.mmapAlloc(size) : 0);\n const file = {\n ptr: ptr,\n size: size,\n id: currFileId++,\n };\n fsIdToFile[file.id] = file;\n fsNameToFile[name] = file;\n return file.id;\n};\n\n// Add new file to wllama heapfs, return number of written bytes\nconst heapfsWrite = (id, buffer, offset) => {\n if (fsIdToFile[id]) {\n const { ptr, size } = fsIdToFile[id];\n const afterWriteByte = offset + buffer.byteLength;\n if (afterWriteByte > size) {\n throw new Error(\n `File ID ${id} write out of bound, afterWriteByte = ${afterWriteByte} while size = ${size}`\n );\n }\n getHeapU8().set(buffer, Number(ptr) + offset);\n return buffer.byteLength;\n } else {\n throw new Error(`File ID ${id} not found in heapfs`);\n }\n};\n\n//////////////////////////////////////////////////////////////\n// ASYNC FILE READ\n//////////////////////////////////////////////////////////////\n\nlet isAwaitReading = false;\nlet pendingReadPromise = null;\nlet pendingReadResolve = null;\nlet pendingReadReject = null;\n\nconst _stripModelsPrefix = (path) => path.replace(/^\\/?models\\//, '');\n\n// Called from EM_ASYNC_JS stub in wllama-fs.h (path is already a JS string)\nconst _wllama_js_file_read = async (path, offset, req_size, out_ptr) => {\n const name = _stripModelsPrefix(path);\n\n pendingReadPromise = new Promise((res, rej) => {\n pendingReadResolve = res;\n pendingReadReject = rej;\n });\n isAwaitReading = true;\n\n postMessage({ verb: 'fs.read_req', args: [name, offset, req_size] });\n\n let data;\n try {\n data = await pendingReadPromise;\n } finally {\n isAwaitReading = false;\n pendingReadResolve = null;\n pendingReadReject = null;\n }\n\n const bytes = new Uint8Array(data);\n getHeapU8().set(bytes, out_ptr);\n return BigInt(bytes.length);\n};\n\n//////////////////////////////////////////////////////////////\n// MAIN CODE\n//////////////////////////////////////////////////////////////\n\nconst callWrapper = (name, ret, args, isAsync) => {\n const fn = Module.cwrap(\n name,\n ret,\n args,\n isAsync ? { async: true } : undefined\n );\n return async (action, req) => {\n // console.log(`Calling ${name} with action:`, action, 'and req:', req);\n let result;\n try {\n if (args.length === 2) {\n result = isAsync ? await fn(action, req) : fn(action, req);\n } else {\n result = fn();\n }\n } catch (ex) {\n console.error(ex);\n throw ex;\n }\n return result;\n };\n};\n\nonmessage = async (e) => {\n if (!e.data) return;\n const { verb, args, callbackId } = e.data;\n\n // fs.read_res arrives while wasm is JSPI-suspended; resolve the pending promise.\n if (verb === 'fs.read_res') {\n if (pendingReadResolve) {\n pendingReadResolve(args[0]);\n }\n return;\n }\n\n // Guard: while awaiting a file read, reject any other incoming task.\n if (isAwaitReading) {\n if (callbackId) {\n msg({\n callbackId,\n err: 'Worker is suspended waiting for file data (JSPI)',\n });\n }\n return;\n }\n\n if (!callbackId) {\n msg({ verb: 'console.error', args: ['callbackId is required', e.data] });\n return;\n }\n\n if (verb === 'module.init') {\n const argMainScriptBlob = args[0];\n const argUseAsyncFile = args[1];\n try {\n Module = getWModuleConfig(argMainScriptBlob);\n Module.preRun = () => {\n if (argUseAsyncFile) {\n Module.ENV['USE_ASYNC_FILE'] = '1';\n }\n };\n Module.onRuntimeInitialized = () => {\n // async call once module is ready\n // init FS\n patchHeapFS();\n // init cwrap\n const pointer = 'bigint';\n // TODO: note sure why emscripten cannot bind if there is only 1 argument\n wllamaMalloc = callWrapper('wllama_malloc', pointer, [\n 'number',\n pointer,\n ]);\n wllamaStart = callWrapper('wllama_start', 'string', [], true);\n wllamaAction = callWrapper(\n 'wllama_action',\n pointer,\n ['string', pointer],\n true\n );\n wllamaExit = callWrapper('wllama_exit', 'string', []);\n wllamaDebug = callWrapper('wllama_debug', 'string', []);\n msg({ callbackId, result: null });\n };\n wModuleInit();\n } catch (err) {\n msg({ callbackId, err });\n }\n return;\n }\n\n if (verb === 'fs.alloc') {\n const argFilename = args[0];\n const argSize = args[1];\n const argAllocBuffer = args[2];\n try {\n // create blank file\n const emptyBuffer = new ArrayBuffer(0);\n Module['FS_createDataFile'](\n '/models',\n argFilename,\n emptyBuffer,\n true,\n true,\n true\n );\n // alloc data on heap\n const fileId = heapfsAlloc(argFilename, argSize, argAllocBuffer);\n msg({ callbackId, result: { fileId } });\n } catch (err) {\n msg({ callbackId, err });\n }\n return;\n }\n\n if (verb === 'fs.write') {\n const argFileId = args[0];\n const argBuffer = args[1];\n const argOffset = args[2];\n try {\n const writtenBytes = heapfsWrite(argFileId, argBuffer, argOffset);\n msg({ callbackId, result: { writtenBytes } });\n } catch (err) {\n msg({ callbackId, err });\n }\n return;\n }\n\n if (verb === 'wllama.start') {\n try {\n const result = await wllamaStart();\n msg({ callbackId, result });\n } catch (err) {\n msg({ callbackId, err });\n }\n return;\n }\n\n if (verb === 'wllama.action') {\n const argAction = args[0];\n const argEncodedMsg = args[1];\n try {\n const inputPtr = await wllamaMalloc(BigInt(argEncodedMsg.byteLength), 0);\n // copy data to wasm heap\n const inputBuffer = new Uint8Array(\n getHeapU8().buffer,\n Number(inputPtr),\n argEncodedMsg.byteLength\n );\n inputBuffer.set(argEncodedMsg, 0);\n const outputPtr = await wllamaAction(argAction, inputPtr);\n // length of output buffer is written at the first 4 bytes of input buffer\n const outputLen = new Uint32Array(\n getHeapU8().buffer,\n Number(inputPtr),\n 1\n )[0];\n // copy the output buffer to JS heap\n const outputBuffer = new Uint8Array(outputLen);\n const outputSrcView = new Uint8Array(\n getHeapU8().buffer,\n Number(outputPtr),\n outputLen\n );\n outputBuffer.set(outputSrcView, 0); // copy it\n msg({ callbackId, result: outputBuffer }, [outputBuffer.buffer]);\n } catch (err) {\n msg({ callbackId, err });\n }\n return;\n }\n\n if (verb === 'wllama.exit') {\n try {\n const result = await wllamaExit();\n msg({ callbackId, result });\n } catch (err) {\n msg({ callbackId, err });\n }\n return;\n }\n\n if (verb === 'wllama.debug') {\n try {\n const result = await wllamaDebug();\n msg({ callbackId, result });\n } catch (err) {\n msg({ callbackId, err });\n }\n return;\n }\n};\n"; +export const LLAMA_CPP_WORKER_CODE = "// Start the main llama.cpp\nlet wllamaMalloc;\nlet wllamaStart;\nlet wllamaAction;\nlet wllamaExit;\nlet wllamaDebug;\n\nlet Module = null;\nlet isCompat = false;\n\n//////////////////////////////////////////////////////////////\n// UTILS\n//////////////////////////////////////////////////////////////\n\n// send message back to main thread\nconst msg = (data, transfer) => postMessage(data, transfer);\n\n// Convert CPP log into JS log\nconst cppLogToJSLog = (line) => {\n const matched = line.match(/@@(DEBUG|INFO|WARN|ERROR)@@(.*)/);\n return !!matched\n ? {\n level: (matched[1] === 'INFO' ? 'debug' : matched[1]).toLowerCase(),\n text: matched[2],\n }\n : { level: 'log', text: line };\n};\n\nconst getHeapU8 = () => {\n const buffer = Module.wasmMemory.buffer;\n return new Uint8Array(buffer);\n};\n\nconst toSizeT = (num) => {\n return isCompat ? Number(num) : BigInt(num);\n};\n\n// Get module config that forwards stdout/err to main thread\nconst getWModuleConfig = (_argMainScriptBlob) => {\n var pathConfig = RUN_OPTIONS.pathConfig;\n var pthreadPoolSize = RUN_OPTIONS.nbThread;\n var argMainScriptBlob = _argMainScriptBlob;\n\n isCompat = RUN_OPTIONS.compat;\n\n if (!pathConfig['wllama.wasm']) {\n throw new Error('\"wllama.wasm\" is missing in pathConfig');\n }\n return {\n noInitialRun: true,\n print: function (text) {\n if (arguments.length > 1)\n text = Array.prototype.slice.call(arguments).join(' ');\n msg({ verb: 'console.log', args: [text] });\n },\n printErr: function (text) {\n if (arguments.length > 1)\n text = Array.prototype.slice.call(arguments).join(' ');\n const logLine = cppLogToJSLog(text);\n msg({ verb: 'console.' + logLine.level, args: [logLine.text] });\n },\n locateFile: function (filename, basePath) {\n const p = pathConfig[filename];\n const truncate = (str) =>\n str.length > 128 ? `${str.substr(0, 128)}...` : str;\n if (filename.match(/wllama\\.worker\\.js/)) {\n msg({\n verb: 'console.error',\n args: [\n '\"wllama.worker.js\" is removed from v2.2.1. Hint: make sure to clear browser\\'s cache.',\n ],\n });\n } else {\n msg({\n verb: 'console.debug',\n args: [`Loading \"${filename}\" from \"${truncate(p)}\"`],\n });\n return p;\n }\n },\n mainScriptUrlOrBlob: argMainScriptBlob,\n pthreadPoolSize,\n wasmMemory: pthreadPoolSize > 1 ? getWasmMemory() : null,\n onAbort: function (text) {\n msg({ verb: 'signal.abort', args: [text] });\n },\n };\n};\n\n// Get the memory to be used by wasm. (Only used in multi-thread mode)\n// Because we have a weird OOM issue on iOS, we need to try some values\n// See: https://github.com/emscripten-core/emscripten/issues/19144\n// https://github.com/godotengine/godot/issues/70621\nconst getWasmMemory = () => {\n let minBytes = 128 * 1024 * 1024;\n let maxBytes = 4096 * 1024 * 1024;\n let stepBytes = 128 * 1024 * 1024;\n while (maxBytes > minBytes) {\n try {\n const wasmMemory = new WebAssembly.Memory({\n initial: toSizeT(minBytes / 65536),\n maximum: toSizeT(maxBytes / 65536),\n shared: true,\n address: isCompat ? undefined : 'i64',\n });\n return wasmMemory;\n } catch (e) {\n maxBytes -= stepBytes;\n continue; // retry\n }\n }\n throw new Error('Cannot allocate WebAssembly.Memory');\n};\n\n//////////////////////////////////////////////////////////////\n// HEAPFS PATCH\n//////////////////////////////////////////////////////////////\n\n/**\n * By default, emscripten uses memfs. The way it works is by\n * allocating new Uint8Array in javascript heap. This is not good\n * because it requires files to be copied to wasm heap each time\n * a file is read.\n *\n * HeapFS is an alternative, which resolves this problem by\n * allocating space for file directly inside wasm heap. This\n * allows us to mmap without doing any copy.\n *\n * For llama.cpp, this is great because we use MAP_SHARED\n *\n * Ref: https://github.com/ngxson/wllama/pull/39\n * Ref: https://github.com/emscripten-core/emscripten/blob/main/src/library_memfs.js\n *\n * Note 29/05/2024 @ngxson\n * Due to ftell() being limited to MAX_LONG, we cannot load files bigger than 2^31 bytes (or 2GB)\n * Ref: https://github.com/emscripten-core/emscripten/blob/main/system/lib/libc/musl/src/stdio/ftell.c\n */\n\nconst fsNameToFile = {}; // map Name => File\nconst fsIdToFile = {}; // map ID => File\nlet currFileId = 0;\n\n// Patch and redirect memfs calls to wllama\nconst patchHeapFS = () => {\n const m = Module;\n // save functions\n m.MEMFS.stream_ops._read = m.MEMFS.stream_ops.read;\n m.MEMFS.stream_ops._write = m.MEMFS.stream_ops.write;\n m.MEMFS.stream_ops._llseek = m.MEMFS.stream_ops.llseek;\n m.MEMFS.stream_ops._allocate = m.MEMFS.stream_ops.allocate;\n m.MEMFS.stream_ops._mmap = m.MEMFS.stream_ops.mmap;\n m.MEMFS.stream_ops._msync = m.MEMFS.stream_ops.msync;\n\n const patchStream = (stream) => {\n const name = stream.node.name;\n if (fsNameToFile[name]) {\n const f = fsNameToFile[name];\n const ptr = Number(f.ptr);\n stream.node.contents = getHeapU8().subarray(ptr, ptr + f.size);\n stream.node.usedBytes = f.size;\n }\n };\n\n // replace \"read\" functions\n m.MEMFS.stream_ops.read = function (\n stream,\n buffer,\n offset,\n length,\n position\n ) {\n patchStream(stream);\n return m.MEMFS.stream_ops._read(stream, buffer, offset, length, position);\n };\n m.MEMFS.ops_table.file.stream.read = m.MEMFS.stream_ops.read;\n\n // replace \"llseek\" functions\n m.MEMFS.stream_ops.llseek = function (stream, offset, whence) {\n patchStream(stream);\n return m.MEMFS.stream_ops._llseek(stream, offset, whence);\n };\n m.MEMFS.ops_table.file.stream.llseek = m.MEMFS.stream_ops.llseek;\n\n // replace \"mmap\" functions\n m.MEMFS.stream_ops.mmap = function (stream, length, position, prot, flags) {\n patchStream(stream);\n const name = stream.node.name;\n if (fsNameToFile[name]) {\n const f = fsNameToFile[name];\n const mmapPtr = f.ptr + toSizeT(position);\n return {\n ptr: mmapPtr,\n allocated: false,\n };\n } else {\n return m.MEMFS.stream_ops._mmap(stream, length, position, prot, flags);\n }\n };\n m.MEMFS.ops_table.file.stream.mmap = m.MEMFS.stream_ops.mmap;\n\n // mount FS\n m.FS.mkdir('/models');\n m.FS.mount(m.MEMFS, { root: '.' }, '/models');\n};\n\n// Allocate a new file in wllama heapfs, returns file ID\nconst heapfsAlloc = (name, size, allocBuffer) => {\n if (size < 1) {\n throw new Error('File size must be bigger than 0');\n }\n const m = Module;\n const ptr = toSizeT(allocBuffer ? m.mmapAlloc(size) : 0);\n const file = {\n ptr: ptr,\n size: size,\n id: currFileId++,\n };\n fsIdToFile[file.id] = file;\n fsNameToFile[name] = file;\n return file.id;\n};\n\n// Add new file to wllama heapfs, return number of written bytes\nconst heapfsWrite = (id, buffer, offset) => {\n if (fsIdToFile[id]) {\n const { ptr, size } = fsIdToFile[id];\n const afterWriteByte = offset + buffer.byteLength;\n if (afterWriteByte > size) {\n throw new Error(\n `File ID ${id} write out of bound, afterWriteByte = ${afterWriteByte} while size = ${size}`\n );\n }\n getHeapU8().set(buffer, Number(ptr) + offset);\n return buffer.byteLength;\n } else {\n throw new Error(`File ID ${id} not found in heapfs`);\n }\n};\n\n//////////////////////////////////////////////////////////////\n// ASYNC FILE READ\n//////////////////////////////////////////////////////////////\n\nlet isAwaitReading = false;\nlet pendingReadPromise = null;\nlet pendingReadResolve = null;\nlet pendingReadReject = null;\n\nconst _stripModelsPrefix = (path) => path.replace(/^\\/?models\\//, '');\n\n// Called from EM_ASYNC_JS stub in wllama-fs.h (path is already a JS string)\nconst _wllama_js_file_read = async (path, offset, req_size, out_ptr) => {\n const name = _stripModelsPrefix(path);\n\n pendingReadPromise = new Promise((res, rej) => {\n pendingReadResolve = res;\n pendingReadReject = rej;\n });\n isAwaitReading = true;\n\n postMessage({ verb: 'fs.read_req', args: [name, offset, req_size] });\n\n let data;\n try {\n data = await pendingReadPromise;\n } finally {\n isAwaitReading = false;\n pendingReadResolve = null;\n pendingReadReject = null;\n }\n\n const bytes = new Uint8Array(data);\n getHeapU8().set(bytes, out_ptr);\n return toSizeT(bytes.length);\n};\n\n//////////////////////////////////////////////////////////////\n// MAIN CODE\n//////////////////////////////////////////////////////////////\n\nconst callWrapper = (name, ret, args, isAsync) => {\n const fn = Module.cwrap(\n name,\n ret,\n args,\n isAsync ? { async: true } : undefined\n );\n return async (action, req) => {\n // console.log(`Calling ${name} with action:`, action, 'and req:', req);\n let result;\n try {\n if (args.length === 2) {\n result = isAsync ? await fn(action, req) : fn(action, req);\n } else {\n result = fn();\n }\n } catch (ex) {\n console.error(ex);\n throw ex;\n }\n return result;\n };\n};\n\nonmessage = async (e) => {\n if (!e.data) return;\n const { verb, args, callbackId } = e.data;\n\n // fs.read_res arrives while wasm is JSPI-suspended; resolve the pending promise.\n if (verb === 'fs.read_res') {\n if (pendingReadResolve) {\n pendingReadResolve(args[0]);\n }\n return;\n }\n\n // Guard: while awaiting a file read, reject any other incoming task.\n if (isAwaitReading) {\n if (callbackId) {\n msg({\n callbackId,\n err: 'Worker is suspended waiting for file data (JSPI)',\n });\n }\n return;\n }\n\n if (!callbackId) {\n msg({ verb: 'console.error', args: ['callbackId is required', e.data] });\n return;\n }\n\n if (verb === 'module.init') {\n const argMainScriptBlob = args[0];\n const argUseAsyncFile = args[1];\n try {\n Module = getWModuleConfig(argMainScriptBlob);\n Module.preRun = () => {\n if (argUseAsyncFile) {\n Module.ENV['USE_ASYNC_FILE'] = '1';\n }\n };\n Module.onRuntimeInitialized = () => {\n // async call once module is ready\n // init FS\n patchHeapFS();\n // init cwrap\n const pointer = isCompat ? 'number' : 'bigint';\n // TODO: note sure why emscripten cannot bind if there is only 1 argument\n wllamaMalloc = callWrapper('wllama_malloc', pointer, [\n 'number',\n pointer,\n ]);\n wllamaStart = callWrapper('wllama_start', 'string', [], true);\n wllamaAction = callWrapper(\n 'wllama_action',\n pointer,\n ['string', pointer],\n true\n );\n wllamaExit = callWrapper('wllama_exit', 'string', []);\n wllamaDebug = callWrapper('wllama_debug', 'string', []);\n msg({ callbackId, result: null });\n };\n wModuleInit();\n } catch (err) {\n msg({ callbackId, err });\n }\n return;\n }\n\n if (verb === 'fs.alloc') {\n const argFilename = args[0];\n const argSize = args[1];\n const argAllocBuffer = args[2];\n try {\n // create blank file\n const emptyBuffer = new ArrayBuffer(0);\n Module['FS_createDataFile'](\n '/models',\n argFilename,\n emptyBuffer,\n true,\n true,\n true\n );\n // alloc data on heap\n const fileId = heapfsAlloc(argFilename, argSize, argAllocBuffer);\n msg({ callbackId, result: { fileId } });\n } catch (err) {\n msg({ callbackId, err });\n }\n return;\n }\n\n if (verb === 'fs.write') {\n const argFileId = args[0];\n const argBuffer = args[1];\n const argOffset = args[2];\n try {\n const writtenBytes = heapfsWrite(argFileId, argBuffer, argOffset);\n msg({ callbackId, result: { writtenBytes } });\n } catch (err) {\n msg({ callbackId, err });\n }\n return;\n }\n\n if (verb === 'wllama.start') {\n try {\n const result = await wllamaStart();\n msg({ callbackId, result });\n } catch (err) {\n msg({ callbackId, err });\n }\n return;\n }\n\n if (verb === 'wllama.action') {\n const argAction = args[0];\n const argEncodedMsg = args[1];\n try {\n const inputPtr = await wllamaMalloc(toSizeT(argEncodedMsg.byteLength), 0);\n // copy data to wasm heap\n const inputBuffer = new Uint8Array(\n getHeapU8().buffer,\n Number(inputPtr),\n argEncodedMsg.byteLength\n );\n inputBuffer.set(argEncodedMsg, 0);\n const outputPtr = await wllamaAction(argAction, inputPtr);\n // length of output buffer is written at the first 4 bytes of input buffer\n const outputLen = new Uint32Array(\n getHeapU8().buffer,\n Number(inputPtr),\n 1\n )[0];\n // copy the output buffer to JS heap\n const outputBuffer = new Uint8Array(outputLen);\n const outputSrcView = new Uint8Array(\n getHeapU8().buffer,\n Number(outputPtr),\n outputLen\n );\n outputBuffer.set(outputSrcView, 0); // copy it\n msg({ callbackId, result: outputBuffer }, [outputBuffer.buffer]);\n } catch (err) {\n msg({ callbackId, err });\n }\n return;\n }\n\n if (verb === 'wllama.exit') {\n try {\n const result = await wllamaExit();\n msg({ callbackId, result });\n } catch (err) {\n msg({ callbackId, err });\n }\n return;\n }\n\n if (verb === 'wllama.debug') {\n try {\n const result = await wllamaDebug();\n msg({ callbackId, result });\n } catch (err) {\n msg({ callbackId, err });\n }\n return;\n }\n};\n"; export const OPFS_UTILS_WORKER_CODE = "let accessHandle;\nlet abortController = new AbortController();\n\nasync function openFile(filename) {\n const opfsRoot = await navigator.storage.getDirectory();\n const cacheDir = await opfsRoot.getDirectoryHandle('cache', { create: true });\n const fileHandler = await cacheDir.getFileHandle(filename, { create: true });\n accessHandle = await fileHandler.createSyncAccessHandle();\n accessHandle.truncate(0); // clear file content\n}\n\nasync function writeFile(buf) {\n accessHandle.write(buf);\n}\n\nasync function closeFile() {\n accessHandle.flush();\n accessHandle.close();\n}\n\nasync function writeTextFile(filename, str) {\n await openFile(filename);\n await writeFile(new TextEncoder().encode(str));\n await closeFile();\n}\n\nconst throttled = (func, delay) => {\n let lastRun = 0;\n return (...args) => {\n const now = Date.now();\n if (now - lastRun > delay) {\n lastRun = now;\n func.apply(null, args);\n }\n };\n};\n\nconst assertNonNull = (val) => {\n if (val === null || val === undefined) {\n throw new Error('OPFS Worker: Assertion failed');\n }\n};\n\n// respond to main thread\nconst resOK = () => postMessage({ ok: true });\nconst resProgress = (loaded, total) =>\n postMessage({ progress: { loaded, total } });\nconst resErr = (err) => postMessage({ err });\n\nonmessage = async (e) => {\n try {\n if (!e.data) return;\n\n /**\n * @param {Object} e.data\n *\n * Fine-control FS actions:\n * - { action: 'open', filename: 'string' }\n * - { action: 'write', buf: ArrayBuffer }\n * - { action: 'close' }\n *\n * Simple write API:\n * - { action: 'write-simple', filename: 'string', buf: ArrayBuffer }\n *\n * Download API:\n * - { action: 'download', url: 'string', filename: 'string', options: Object, metadataFileName: 'string' }\n * - { action: 'download-abort' }\n */\n const {\n action,\n filename,\n buf,\n url,\n options,\n metadataFileName,\n metadataAdditional,\n } = e.data;\n\n if (action === 'open') {\n assertNonNull(filename);\n await openFile(filename);\n return resOK();\n } else if (action === 'write') {\n assertNonNull(buf);\n await writeFile(buf);\n return resOK();\n } else if (action === 'close') {\n await closeFile();\n return resOK();\n } else if (action === 'write-simple') {\n assertNonNull(filename);\n assertNonNull(buf);\n await openFile(filename);\n await writeFile(buf);\n await closeFile();\n return resOK();\n } else if (action === 'download') {\n assertNonNull(url);\n assertNonNull(filename);\n assertNonNull(metadataFileName);\n assertNonNull(options);\n assertNonNull(options.aborted);\n abortController = new AbortController();\n if (options.aborted) abortController.abort();\n const response = await fetch(url, {\n ...options,\n signal: abortController.signal,\n });\n const contentLength = response.headers.get('content-length');\n const etag = (response.headers.get('etag') || '').replace(\n /[^A-Za-z0-9]/g,\n ''\n );\n const total = parseInt(contentLength, 10);\n const reader = response.body.getReader();\n await openFile(filename);\n let loaded = 0;\n const throttledProgress = throttled(resProgress, 100);\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n loaded += value.byteLength;\n await writeFile(value);\n throttledProgress(loaded, total);\n }\n resProgress(total, total); // 100% done\n await closeFile();\n // make sure this is in-sync with CacheEntryMetadata\n await writeTextFile(\n metadataFileName,\n JSON.stringify({\n originalURL: url,\n originalSize: total,\n etag,\n ...metadataAdditional,\n })\n );\n return resOK();\n } else if (action === 'download-abort') {\n if (abortController) {\n abortController.abort();\n }\n return;\n }\n\n throw new Error('OPFS Worker: Invalid action', e.data);\n } catch (err) {\n return resErr(err);\n }\n};\n"; -export const WLLAMA_EMSCRIPTEN_CODE = "var Module=typeof Module!=\"undefined\"?Module:{};var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!=\"renderer\";var ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&self.name?.startsWith(\"em-pthread\");if(ENVIRONMENT_IS_NODE){var worker_threads=require(\"worker_threads\");global.Worker=worker_threads.Worker;ENVIRONMENT_IS_WORKER=!worker_threads.isMainThread;ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&worker_threads[\"workerData\"]==\"em-pthread\"}var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=globalThis.document?.currentScript?.src;if(typeof __filename!=\"undefined\"){_scriptName=__filename}else if(ENVIRONMENT_IS_WORKER){_scriptName=self.location.href}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require(\"fs\");scriptDirectory=__dirname+\"/\";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:\"utf8\");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\\\/g,\"/\")}arguments_=process.argv.slice(2);if(typeof module!=\"undefined\"){module[\"exports\"]=Module}quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(\".\",_scriptName).href}catch{}if(!ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:\"same-origin\"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+\" : \"+response.url)}}}else{}var defaultPrint=console.log.bind(console);var defaultPrintErr=console.error.bind(console);if(ENVIRONMENT_IS_NODE){var utils=require(\"util\");var stringify=a=>typeof a==\"object\"?utils.inspect(a):a;defaultPrint=(...args)=>fs.writeSync(1,args.map(stringify).join(\" \")+\"\\n\");defaultPrintErr=(...args)=>fs.writeSync(2,args.map(stringify).join(\" \")+\"\\n\")}var out=defaultPrint;var err=defaultPrintErr;var wasmBinary;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var isFileURI=filename=>filename.startsWith(\"file://\");function growMemViews(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}}if(ENVIRONMENT_IS_NODE&&ENVIRONMENT_IS_PTHREAD){var parentPort=worker_threads[\"parentPort\"];parentPort.on(\"message\",msg=>global.onmessage?.({data:msg}));Object.assign(globalThis,{self:global,postMessage:msg=>parentPort[\"postMessage\"](msg)});process.on(\"uncaughtException\",err=>{postMessage({cmd:\"uncaughtException\",error:err});process.exit(1)})}var startWorker;if(ENVIRONMENT_IS_PTHREAD){var initializedJS=false;self.onunhandledrejection=e=>{throw e.reason||e};async function handleMessage(e){try{var msgData=e[\"data\"];var cmd=msgData.cmd;if(cmd===\"load\"){let messageQueue=[];self.onmessage=e=>messageQueue.push(e);startWorker=()=>{postMessage({cmd:\"loaded\"});for(let msg of messageQueue){handleMessage(msg)}self.onmessage=handleMessage};for(const handler of msgData.handlers){if(!Module[handler]||Module[handler].proxy){Module[handler]=(...args)=>{postMessage({cmd:\"callHandler\",handler,args})};if(handler==\"print\")out=Module[handler];if(handler==\"printErr\")err=Module[handler]}}wasmMemory=msgData.wasmMemory;updateMemoryViews();wasmModule=msgData.wasmModule;createWasm();run()}else if(cmd===\"run\"){establishStackSpace(msgData.pthread_ptr);__emscripten_thread_init(msgData.pthread_ptr,0,0,1,0,0);PThread.threadInitTLS();__emscripten_thread_mailbox_await(msgData.pthread_ptr);if(!initializedJS){initializedJS=true}try{await invokeEntryPoint(msgData.start_routine,msgData.arg)}catch(ex){if(ex!=\"unwind\"){throw ex}}}else if(msgData.target===\"setimmediate\"){}else if(cmd===\"checkMailbox\"){if(initializedJS){checkMailbox()}}else if(cmd){err(`worker: received unknown command ${cmd}`);err(msgData)}}catch(ex){__emscripten_thread_crashed();throw ex}}self.onmessage=handleMessage}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function initMemory(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||134217728;wasmMemory=new WebAssembly.Memory({initial:BigInt(INITIAL_MEMORY/65536),maximum:65536n,shared:true,address:\"i64\"})}updateMemoryViews()}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return startWorker();if(!Module[\"noFSInit\"]&&!FS.initialized)FS.init();TTY.init();wasmExports[\"__wasm_call_ctors\"]();FS.ignorePermissions=false}function preMain(){}function postRun(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module[\"onAbort\"]?.(what);what=\"Aborted(\"+what+\")\";err(what);ABORT=true;what+=\". Build with -sASSERTIONS for more info.\";if(runtimeInitialized){___trap()}var e=new WebAssembly.RuntimeError(what);throw e}var wasmBinaryFile;function findWasmBinary(){return locateFile(\"wllama.wasm\")}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:\"same-origin\"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err(\"falling back to ArrayBuffer instantiation\")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){assignWasmImports();if(!wasmImports.__instrumented){wasmImports.__instrumented=true;Asyncify.instrumentWasmImports(wasmImports)}var imports={env:wasmImports,wasi_snapshot_preview1:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmExports=applySignatureConversions(wasmExports);registerTLSInit(wasmExports[\"_emscripten_tls_init\"]);assignWasmExports(wasmExports);wasmModule=module;removeRunDependency(\"wasm-instantiate\");return wasmExports}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){return receiveInstance(result[\"instance\"],result[\"module\"])}var info=getWasmImports();if(Module[\"instantiateWasm\"]){return new Promise((resolve,reject)=>{Module[\"instantiateWasm\"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}if(ENVIRONMENT_IS_PTHREAD){var instance=new WebAssembly.Instance(wasmModule,getWasmImports());return receiveInstance(instance,wasmModule)}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name=\"ExitStatus\";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var terminateWorker=worker=>{worker.terminate();worker.onmessage=e=>{}};var cleanupThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];PThread.returnWorkerToPool(worker)};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module[\"monitorRunDependencies\"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}};var addRunDependency=id=>{runDependencies++;Module[\"monitorRunDependencies\"]?.(runDependencies)};var spawnThread=threadParams=>{var worker=PThread.getNewWorker();if(!worker){return 6}PThread.runningWorkers.push(worker);PThread.pthreads[threadParams.pthread_ptr]=worker;worker.pthread_ptr=threadParams.pthread_ptr;var msg={cmd:\"run\",start_routine:threadParams.startRoutine,arg:threadParams.arg,pthread_ptr:threadParams.pthread_ptr};if(ENVIRONMENT_IS_NODE){worker.unref()}worker.postMessage(msg,threadParams.transferList);return 0};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var stackSave=()=>_emscripten_stack_get_current();var stackRestore=val=>__emscripten_stack_restore(val);var stackAlloc=sz=>__emscripten_stack_alloc(sz);var proxyToMainThread=(funcIndex,emAsmAddr,sync,...callArgs)=>{var serializedNumCallArgs=callArgs.length*2;var sp=stackSave();var args=stackAlloc(serializedNumCallArgs*8);var b=args/8;for(var i=0;i{EXITSTATUS=status;if(ENVIRONMENT_IS_PTHREAD){exitOnMainThread(status);throw\"unwind\"}_proc_exit(status)};var _exit=exitJS;var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init(){if(!ENVIRONMENT_IS_PTHREAD){PThread.initMainThread()}},initMainThread(){var pthreadPoolSize=Module[\"pthreadPoolSize\"];while(pthreadPoolSize--){PThread.allocateUnusedWorker()}addOnPreRun(async()=>{var pthreadPoolReady=PThread.loadWasmModuleToAllWorkers();addRunDependency(\"loading-workers\");await pthreadPoolReady;removeRunDependency(\"loading-workers\")})},terminateAllThreads:()=>{for(var worker of PThread.runningWorkers){terminateWorker(worker)}for(var worker of PThread.unusedWorkers){terminateWorker(worker)}PThread.unusedWorkers=[];PThread.runningWorkers=[];PThread.pthreads={}},returnWorkerToPool:worker=>{var pthread_ptr=worker.pthread_ptr;delete PThread.pthreads[pthread_ptr];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);worker.pthread_ptr=0;__emscripten_thread_free_data(pthread_ptr)},threadInitTLS(){PThread.tlsInitFunctions.forEach(f=>f())},loadWasmModuleToWorker:worker=>new Promise(onFinishedLoading=>{worker.onmessage=e=>{var d=e[\"data\"];var cmd=d.cmd;if(d.targetThread&&d.targetThread!=_pthread_self()){var targetWorker=PThread.pthreads[d.targetThread];if(targetWorker){targetWorker.postMessage(d,d.transferList)}else{err(`Internal error! Worker sent a message \"${cmd}\" to target pthread ${d.targetThread}, but that thread no longer exists!`)}return}if(cmd===\"checkMailbox\"){checkMailbox()}else if(cmd===\"spawnThread\"){spawnThread(d)}else if(cmd===\"cleanupThread\"){callUserCallback(()=>cleanupThread(d.thread))}else if(cmd===\"loaded\"){worker.loaded=true;if(ENVIRONMENT_IS_NODE&&!worker.pthread_ptr){worker.unref()}onFinishedLoading(worker)}else if(d.target===\"setimmediate\"){worker.postMessage(d)}else if(cmd===\"uncaughtException\"){worker.onerror(d.error)}else if(cmd===\"callHandler\"){Module[d.handler](...d.args)}else if(cmd){err(`worker sent an unknown command ${cmd}`)}};worker.onerror=e=>{var message=\"worker sent an error!\";err(`${message} ${e.filename}:${e.lineno}: ${e.message}`);throw e};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",data=>worker.onmessage({data}));worker.on(\"error\",e=>worker.onerror(e))}var handlers=[];var knownHandlers=[\"onExit\",\"onAbort\",\"print\",\"printErr\"];for(var handler of knownHandlers){if(Module.propertyIsEnumerable(handler)){handlers.push(handler)}}worker.postMessage({cmd:\"load\",handlers,wasmMemory,wasmModule})}),async loadWasmModuleToAllWorkers(){if(ENVIRONMENT_IS_PTHREAD){return}let pthreadPoolReady=Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker));return pthreadPoolReady},allocateUnusedWorker(){var worker;var pthreadMainJs=_scriptName;if(Module[\"mainScriptUrlOrBlob\"]){pthreadMainJs=Module[\"mainScriptUrlOrBlob\"];if(typeof pthreadMainJs!=\"string\"){pthreadMainJs=URL.createObjectURL(pthreadMainJs)}}worker=new Worker(pthreadMainJs,{workerData:\"em-pthread\",name:\"em-pthread\"});PThread.unusedWorkers.push(worker)},getNewWorker(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);function establishStackSpace(pthread_ptr){var stackHigh=Number((growMemViews(),HEAPU64)[(pthread_ptr+88)/8]);var stackSize=Number((growMemViews(),HEAPU64)[(pthread_ptr+96)/8]);var stackLow=stackHigh-stackSize;_emscripten_stack_set_limits(stackHigh,stackLow);stackRestore(stackHigh)}function getValue(ptr,type=\"i8\"){if(type.endsWith(\"*\"))type=\"*\";switch(type){case\"i1\":return(growMemViews(),HEAP8)[ptr];case\"i8\":return(growMemViews(),HEAP8)[ptr];case\"i16\":return(growMemViews(),HEAP16)[ptr/2];case\"i32\":return(growMemViews(),HEAP32)[ptr/4];case\"i64\":return(growMemViews(),HEAP64)[ptr/8];case\"float\":return(growMemViews(),HEAPF32)[ptr/4];case\"double\":return(growMemViews(),HEAPF64)[ptr/8];case\"*\":return Number((growMemViews(),HEAPU64)[ptr/8]);default:abort(`invalid type for getValue: ${type}`)}}var wasmTableMirror=[];var getWasmTableEntry=funcPtr=>{funcPtr=Number(funcPtr);var func=wasmTableMirror[funcPtr];if(!func){wasmTableMirror[funcPtr]=func=wasmTable.get(BigInt(funcPtr));if(Asyncify.isAsyncExport(func)){wasmTableMirror[funcPtr]=func=Asyncify.makeAsyncFunction(func)}}return func};var invokeEntryPoint=async(ptr,arg)=>{runtimeKeepaliveCounter=0;noExitRuntime=0;var result=(a1=>WebAssembly.promising(getWasmTableEntry(ptr)).call(null,BigInt(a1)))(arg);function finish(result){if(keepRuntimeAlive()){EXITSTATUS=result;return}__emscripten_thread_exit(result)}result=await result;finish(result)};invokeEntryPoint.isAsync=true;var noExitRuntime=true;var registerTLSInit=tlsInitFunc=>PThread.tlsInitFunctions.push(tlsInitFunc);function setValue(ptr,value,type=\"i8\"){if(type.endsWith(\"*\"))type=\"*\";switch(type){case\"i1\":(growMemViews(),HEAP8)[ptr]=value;break;case\"i8\":(growMemViews(),HEAP8)[ptr]=value;break;case\"i16\":(growMemViews(),HEAP16)[ptr/2]=value;break;case\"i32\":(growMemViews(),HEAP32)[ptr/4]=value;break;case\"i64\":(growMemViews(),HEAP64)[ptr/8]=BigInt(value);break;case\"float\":(growMemViews(),HEAPF32)[ptr/4]=value;break;case\"double\":(growMemViews(),HEAPF64)[ptr/8]=value;break;case\"*\":(growMemViews(),HEAPU64)[ptr/8]=BigInt(value);break;default:abort(`invalid type for setValue: ${type}`)}}var wasmMemory;var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>numINT53_MAX?NaN:Number(num);var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.buffer instanceof ArrayBuffer?heapOrArray.subarray(idx,endPtr):heapOrArray.slice(idx,endPtr))}var str=\"\";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString((growMemViews(),HEAPU8),ptr,maxBytesToRead,ignoreNul):\"\";function ___assert_fail(condition,filename,line,func){condition=bigintToI53Checked(condition);filename=bigintToI53Checked(filename);func=bigintToI53Checked(func);return abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):\"unknown filename\",line,func?UTF8ToString(func):\"unknown function\"])}function pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(2,0,1,pthread_ptr,attr,startRoutine,arg);return ___pthread_create_js(pthread_ptr,attr,startRoutine,arg)}var _emscripten_has_threading_support=()=>!!globalThis.SharedArrayBuffer;function ___pthread_create_js(pthread_ptr,attr,startRoutine,arg){pthread_ptr=bigintToI53Checked(pthread_ptr);attr=bigintToI53Checked(attr);startRoutine=bigintToI53Checked(startRoutine);arg=bigintToI53Checked(arg);if(!_emscripten_has_threading_support()){return 6}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg)}if(error)return error;var threadParams={startRoutine,pthread_ptr,arg,transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}var syscallGetVarargP=()=>{var ret=Number((growMemViews(),HEAPU64)[SYSCALLS.varargs/8]);SYSCALLS.varargs+=8;return ret};var syscallGetVarargI=()=>{var ret=(growMemViews(),HEAP32)[+SYSCALLS.varargs/4];SYSCALLS.varargs+=4;return ret};var PATH={isAbs:path=>path.charAt(0)===\"/\",splitPath:filename=>{var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(p=>!!p),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\\/]+|\\/)\\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join(\"/\")),join2:(l,r)=>PATH.normalize(l+\"/\"+r)};var initRandomFill=()=>view=>view.set(crypto.getRandomValues(new Uint8Array(view.byteLength)));var randomFill=view=>{(randomFill=initRandomFill())(view)};var PATH_FS={resolve:(...args)=>{var resolvedPath=\"\",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!=\"string\"){throw new TypeError(\"Arguments to path.resolve must be strings\")}else if(!path){return\"\"}resolvedPath=path+\"/\"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(p=>!!p),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!==\"\")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split(\"/\"));var toParts=trim(to.split(\"/\"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++}}heap[outIdx]=0;return outIdx-startIdx};var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes(\"EOF\"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString(\"utf-8\")}}else if(globalThis.window?.prompt){result=window.prompt(\"Input: \");if(result!==null){result+=\"\\n\"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var zeroMemory=(ptr,size)=>(growMemViews(),HEAPU8).fill(0,ptr,ptr+size);var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(ptr)zeroMemory(ptr,size);return ptr};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,\"/\",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of[\"mode\",\"atime\",\"mtime\",\"ctime\"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){if(!MEMFS.doesNotExistError){MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack=\"\"}throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[\".\",\"..\",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var flagModes={r:0,\"r+\":2,w:512|64|1,\"w+\":512|64|2,a:1024|64|1,\"a+\":1024|64|2};var flags=flagModes[str];if(typeof flags==\"undefined\"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var getUniqueRunDependency=id=>id;var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!=\"undefined\")Browser.init();for(var plugin of preloadPlugins){if(plugin[\"canHandle\"](fullname)){return plugin[\"handle\"](byteArray,fullname)}}return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);addRunDependency(dep);try{var byteArray=url;if(typeof url==\"string\"){byteArray=await asyncLoad(url)}byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}}finally{removeRunDependency(dep)}};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name=\"ErrnoError\";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+\"/\"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split(\"/\").filter(p=>!!p);var current=FS.root;var current_path=\"/\";for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes(\"r\")&&!(node.mode&292)){return 2}else if(perms.includes(\"w\")&&!(node.mode&146)){return 2}else if(perms.includes(\"x\")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,\"wx\");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!==\"r\"||flags&(512|64)){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate==\"function\"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}for(var mount of mounts){if(mount.type.syncfs){mount.type.syncfs(mount,populate,done)}else{done(null)}}},mount(type,opts,mountpoint){var root=mountpoint===\"/\";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);for(var[hash,current]of Object.entries(FS.nameTable)){while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}}node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name===\".\"||name===\"..\"){throw new FS.ErrnoError(20)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split(\"/\");var d=\"\";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+=\"/\";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev==\"undefined\"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===\"\"){throw new FS.ErrnoError(44)}flags=typeof flags==\"string\"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path==\"object\"){node=path}else{isDirPath=path.endsWith(\"/\");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}if(Module[\"logReadFiles\"]&&!(flags&1)){if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||\"binary\";if(opts.encoding!==\"utf8\"&&opts.encoding!==\"binary\"){abort(`Invalid encoding type \"${opts.encoding}\"`)}var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding===\"utf8\"){buf=UTF8ArrayToString(buf)}FS.close(stream);return buf},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==\"string\"){data=new Uint8Array(intArrayFromString(data,true))}if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{abort(\"Unsupported data type\")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,\"x\");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir(\"/tmp\");FS.mkdir(\"/home\");FS.mkdir(\"/home/web_user\")},createDefaultDevices(){FS.mkdir(\"/dev\");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev(\"/dev/null\",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev(\"/dev/tty\",FS.makedev(5,0));FS.mkdev(\"/dev/tty1\",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice(\"/dev\",\"random\",randomByte);FS.createDevice(\"/dev\",\"urandom\",randomByte);FS.mkdir(\"/dev/shm\");FS.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories(){FS.mkdir(\"/proc\");var proc_self=FS.mkdir(\"/proc/self\");FS.mkdir(\"/proc/self/fd\");FS.mount({mount(){var node=FS.createNode(proc_self,\"fd\",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},\"/proc/self/fd\")},createStandardStreams(input,output,error){if(input){FS.createDevice(\"/dev\",\"stdin\",input)}else{FS.symlink(\"/dev/tty\",\"/dev/stdin\")}if(output){FS.createDevice(\"/dev\",\"stdout\",null,output)}else{FS.symlink(\"/dev/tty\",\"/dev/stdout\")}if(error){FS.createDevice(\"/dev\",\"stderr\",null,error)}else{FS.symlink(\"/dev/tty1\",\"/dev/stderr\")}var stdin=FS.open(\"/dev/stdin\",0);var stdout=FS.open(\"/dev/stdout\",1);var stderr=FS.open(\"/dev/stderr\",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){FS.initialized=true;input??=Module[\"stdin\"];output??=Module[\"stdout\"];error??=Module[\"stderr\"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path===\"/\"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent==\"string\"?parent:FS.getPath(parent);var parts=path.split(\"/\").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent==\"string\"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==\"string\"){var arr=new Array(data.length);for(var i=0,len=data.length;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open(\"HEAD\",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort(\"Couldn't load \"+url+\". Status: \"+xhr.status);var datalength=Number(xhr.getResponseHeader(\"Content-length\"));var header;var hasByteServing=(header=xhr.getResponseHeader(\"Accept-Ranges\"))&&header===\"bytes\";var usesGzip=(header=xhr.getResponseHeader(\"Content-Encoding\"))&&header===\"gzip\";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)abort(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)abort(\"only \"+datalength+\" bytes available! programmer error!\");var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);if(datalength!==chunkSize)xhr.setRequestHeader(\"Range\",\"bytes=\"+from+\"-\"+to);xhr.responseType=\"arraybuffer\";if(xhr.overrideMimeType){xhr.overrideMimeType(\"text/plain; charset=x-user-defined\")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort(\"Couldn't load \"+url+\". Status: \"+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||\"\",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==\"undefined\"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==\"undefined\")abort(\"doXHR failed!\");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out(\"LazyFiles on gzip forces download of the whole file when length is accessed\")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(globalThis.XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)abort(\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\");var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};for(const[key,fn]of Object.entries(node.stream_ops)){stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}}function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,(growMemViews(),HEAP8),ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+\"/\"+path},writeStat(buf,stat){(growMemViews(),HEAPU32)[buf/4]=stat.dev;(growMemViews(),HEAPU32)[(buf+4)/4]=stat.mode;(growMemViews(),HEAPU64)[(buf+8)/8]=BigInt(stat.nlink);(growMemViews(),HEAPU32)[(buf+16)/4]=stat.uid;(growMemViews(),HEAPU32)[(buf+20)/4]=stat.gid;(growMemViews(),HEAPU32)[(buf+24)/4]=stat.rdev;(growMemViews(),HEAP64)[(buf+32)/8]=BigInt(stat.size);(growMemViews(),HEAP32)[(buf+40)/4]=4096;(growMemViews(),HEAP32)[(buf+44)/4]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();(growMemViews(),HEAP64)[(buf+48)/8]=BigInt(Math.floor(atime/1e3));(growMemViews(),HEAPU64)[(buf+56)/8]=BigInt(atime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+64)/8]=BigInt(Math.floor(mtime/1e3));(growMemViews(),HEAPU64)[(buf+72)/8]=BigInt(mtime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+80)/8]=BigInt(Math.floor(ctime/1e3));(growMemViews(),HEAPU64)[(buf+88)/8]=BigInt(ctime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+96)/8]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){(growMemViews(),HEAPU32)[(buf+8)/4]=stats.bsize;(growMemViews(),HEAPU32)[(buf+72)/4]=stats.bsize;(growMemViews(),HEAP64)[(buf+16)/8]=BigInt(stats.blocks);(growMemViews(),HEAP64)[(buf+24)/8]=BigInt(stats.bfree);(growMemViews(),HEAP64)[(buf+32)/8]=BigInt(stats.bavail);(growMemViews(),HEAP64)[(buf+40)/8]=BigInt(stats.files);(growMemViews(),HEAP64)[(buf+48)/8]=BigInt(stats.ffree);(growMemViews(),HEAPU32)[(buf+56)/4]=stats.fsid;(growMemViews(),HEAPU32)[(buf+80)/4]=stats.flags;(growMemViews(),HEAPU32)[(buf+64)/4]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=(growMemViews(),HEAPU8).slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(3,0,1,fd,cmd,varargs);varargs=bigintToI53Checked(varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 5:{var arg=syscallGetVarargP();var offset=0;(growMemViews(),HEAP16)[(arg+offset)/2]=2;return 0}case 6:case 7:return 0}return-28}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(4,0,1,fd,buf);buf=bigintToI53Checked(buf);try{return SYSCALLS.writeStat(buf,FS.fstat(fd))}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,(growMemViews(),HEAPU8),outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(5,0,1,buf,size);buf=bigintToI53Checked(buf);size=bigintToI53Checked(size);try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(sizeabort(\"\");function __emscripten_init_main_thread_js(tb){tb=bigintToI53Checked(tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1,!ENVIRONMENT_IS_WEB,65536,false);PThread.threadInitTLS()}var handleException=e=>{if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)};var maybeExit=()=>{if(!keepRuntimeAlive()){try{if(ENVIRONMENT_IS_PTHREAD){if(_pthread_self())__emscripten_thread_exit(EXITSTATUS);return}_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};function __emscripten_thread_mailbox_await(pthread_ptr){pthread_ptr=bigintToI53Checked(pthread_ptr);if(Atomics.waitAsync){var wait=Atomics.waitAsync((growMemViews(),HEAP32),pthread_ptr/4,pthread_ptr);wait.value.then(checkMailbox);var waitingAsync=pthread_ptr+228;Atomics.store((growMemViews(),HEAP32),waitingAsync/4,1)}}var checkMailbox=()=>callUserCallback(()=>{var pthread_ptr=_pthread_self();if(pthread_ptr){__emscripten_thread_mailbox_await(pthread_ptr);__emscripten_check_mailbox()}});function __emscripten_notify_mailbox_postmessage(targetThread,currThreadId){targetThread=bigintToI53Checked(targetThread);currThreadId=bigintToI53Checked(currThreadId);if(targetThread==currThreadId){setTimeout(checkMailbox)}else if(ENVIRONMENT_IS_PTHREAD){postMessage({targetThread,cmd:\"checkMailbox\"})}else{var worker=PThread.pthreads[targetThread];if(!worker){return}worker.postMessage({cmd:\"checkMailbox\"})}}var proxiedJSCallArgs=[];function __emscripten_receive_on_main_thread_js(funcIndex,emAsmAddr,callingThread,numCallArgs,args){emAsmAddr=bigintToI53Checked(emAsmAddr);callingThread=bigintToI53Checked(callingThread);args=bigintToI53Checked(args);numCallArgs/=2;proxiedJSCallArgs.length=numCallArgs;var b=args/8;for(var i=0;i{noExitRuntime=false;runtimeKeepaliveCounter=0};function __emscripten_thread_cleanup(thread){thread=bigintToI53Checked(thread);if(!ENVIRONMENT_IS_PTHREAD)cleanupThread(thread);else postMessage({cmd:\"cleanupThread\",thread})}function __emscripten_thread_set_strongref(thread){thread=bigintToI53Checked(thread);if(ENVIRONMENT_IS_NODE){PThread.pthreads[thread].ref()}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time,tmPtr){time=bigintToI53Checked(time);tmPtr=bigintToI53Checked(tmPtr);var date=new Date(time*1e3);(growMemViews(),HEAP32)[tmPtr/4]=date.getSeconds();(growMemViews(),HEAP32)[(tmPtr+4)/4]=date.getMinutes();(growMemViews(),HEAP32)[(tmPtr+8)/4]=date.getHours();(growMemViews(),HEAP32)[(tmPtr+12)/4]=date.getDate();(growMemViews(),HEAP32)[(tmPtr+16)/4]=date.getMonth();(growMemViews(),HEAP32)[(tmPtr+20)/4]=date.getFullYear()-1900;(growMemViews(),HEAP32)[(tmPtr+24)/4]=date.getDay();var yday=ydayFromDate(date)|0;(growMemViews(),HEAP32)[(tmPtr+28)/4]=yday;(growMemViews(),HEAP64)[(tmPtr+40)/8]=BigInt(-(date.getTimezoneOffset()*60));var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;(growMemViews(),HEAP32)[(tmPtr+32)/4]=dst}function __mmap_js(len,prot,flags,fd,offset,allocated,addr){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(12,0,1,len,prot,flags,fd,offset,allocated,addr);len=bigintToI53Checked(len);offset=bigintToI53Checked(offset);allocated=bigintToI53Checked(allocated);addr=bigintToI53Checked(addr);try{var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;(growMemViews(),HEAP32)[allocated/4]=res.allocated;(growMemViews(),HEAPU64)[addr/8]=BigInt(ptr);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(13,0,1,addr,len,prot,flags,fd,offset);addr=bigintToI53Checked(addr);len=bigintToI53Checked(len);offset=bigintToI53Checked(offset);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var timers={};var _emscripten_get_now=()=>performance.timeOrigin+performance.now();function __setitimer_js(which,timeout_ms){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(14,0,1,which,timeout_ms);if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0}var __tzset_js=function(timezone,daylight,std_name,dst_name){timezone=bigintToI53Checked(timezone);daylight=bigintToI53Checked(daylight);std_name=bigintToI53Checked(std_name);dst_name=bigintToI53Checked(dst_name);var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);(growMemViews(),HEAPU64)[timezone/8]=BigInt(stdTimezoneOffset*60);(growMemViews(),HEAP32)[daylight/4]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?\"-\":\"+\";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,\"0\");var minutes=String(absOffset%60).padStart(2,\"0\");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffsetDate.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);ptime=bigintToI53Checked(ptime);if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);(growMemViews(),HEAP64)[ptime/8]=BigInt(nsec);return 0}var _emscripten_check_blocking_allowed=()=>{};var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};var _emscripten_exit_with_live_runtime=()=>{runtimeKeepalivePush();throw\"unwind\"};var getHeapMax=()=>4294967296;var _emscripten_get_heap_max=()=>BigInt(getHeapMax());var _emscripten_has_asyncify=()=>2;var _emscripten_num_logical_cores=()=>ENVIRONMENT_IS_NODE?require(\"os\").cpus().length:navigator[\"hardwareConcurrency\"];var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(BigInt(pages));updateMemoryViews();return 1}catch(e){}};function _emscripten_resize_heap(requestedSize){requestedSize=bigintToI53Checked(requestedSize);var oldSize=(growMemViews(),HEAPU8).length;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false}var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var writeI53ToI64=(ptr,num)=>{(growMemViews(),HEAPU32)[ptr/4]=num;var lower=(growMemViews(),HEAPU32)[ptr/4];(growMemViews(),HEAPU32)[(ptr+4)/4]=(num-lower)/4294967296};var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var readI53FromI64=ptr=>(growMemViews(),HEAPU32)[ptr/4]+(growMemViews(),HEAP32)[(ptr+4)/4]*4294967296;var WebGPU={Internals:{jsObjects:[],jsObjectInsert:(ptr,jsObject)=>{WebGPU.Internals.jsObjects[ptr]=jsObject},bufferOnUnmaps:[],futures:[],futureInsert:(futureId,promise)=>{WebGPU.Internals.futures[futureId]=new Promise(resolve=>promise.finally(()=>resolve(futureId)))}},getJsObject:ptr=>{if(!ptr)return undefined;return WebGPU.Internals.jsObjects[ptr]},importJsAdapter:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateAdapter(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroup:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroup(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroupLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroupLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBuffer:(buffer,parentPtr=0)=>{assert(buffer.mapState===\"unmapped\");var bufferPtr=_emwgpuCreateBuffer(parentPtr);WebGPU.Internals.jsObjectInsert(bufferPtr,buffer);return bufferPtr},importJsCommandBuffer:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandBuffer(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsCommandEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsDevice:(device,parentPtr=0)=>{var queuePtr=_emwgpuCreateQueue(parentPtr);var devicePtr=_emwgpuCreateDevice(parentPtr,queuePtr);WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);return devicePtr},importJsExternalTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateExternalTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsPipelineLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreatePipelineLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQuerySet:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQuerySet(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQueue:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQueue(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundle:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundle(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundleEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundleEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSampler:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSampler(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsShaderModule:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateShaderModule(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSurface:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSurface(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTextureView:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTextureView(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},errorCallback:(callback,type,message,userdata)=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(message);((a1,a2,a3)=>getWasmTableEntry(callback).call(null,a1,BigInt(a2),BigInt(a3)))(type,BigInt(messagePtr),userdata);stackRestore(sp)},iterateExtensions:(root,handlers)=>{for(var ptr=Number((growMemViews(),HEAPU64)[root/8]);ptr;ptr=Number((growMemViews(),HEAPU64)[ptr/8])){var sType=(growMemViews(),HEAP32)[(ptr+8)/4];var handler=handlers[sType](ptr)}},setStringView:(ptr,data,length)=>{(growMemViews(),HEAPU64)[ptr/8]=BigInt(data);(growMemViews(),HEAPU64)[(ptr+8)/8]=BigInt(length)},makeStringFromStringView:stringViewPtr=>{var ptr=Number((growMemViews(),HEAPU64)[stringViewPtr/8]);var length=Number((growMemViews(),HEAPU64)[(stringViewPtr+8)/8]);return UTF8ToString(ptr,length)},makeStringFromOptionalStringView:stringViewPtr=>{var ptr=Number((growMemViews(),HEAPU64)[stringViewPtr/8]);var length=Number((growMemViews(),HEAPU64)[(stringViewPtr+8)/8]);if(!ptr){if(length===0){return\"\"}return undefined}return UTF8ToString(ptr,length)},makeColor:ptr=>({r:(growMemViews(),HEAPF64)[ptr/8],g:(growMemViews(),HEAPF64)[(ptr+8)/8],b:(growMemViews(),HEAPF64)[(ptr+16)/8],a:(growMemViews(),HEAPF64)[(ptr+24)/8]}),makeExtent3D:ptr=>({width:(growMemViews(),HEAPU32)[ptr/4],height:(growMemViews(),HEAPU32)[(ptr+4)/4],depthOrArrayLayers:(growMemViews(),HEAPU32)[(ptr+8)/4]}),makeOrigin3D:ptr=>({x:(growMemViews(),HEAPU32)[ptr/4],y:(growMemViews(),HEAPU32)[(ptr+4)/4],z:(growMemViews(),HEAPU32)[(ptr+8)/4]}),makeTexelCopyTextureInfo:ptr=>({texture:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[ptr/8])),mipLevel:(growMemViews(),HEAPU32)[(ptr+8)/4],origin:WebGPU.makeOrigin3D(ptr+12),aspect:WebGPU.TextureAspect[(growMemViews(),HEAP32)[(ptr+24)/4]]}),makeTexelCopyBufferLayout:ptr=>{var bytesPerRow=(growMemViews(),HEAPU32)[(ptr+8)/4];var rowsPerImage=(growMemViews(),HEAPU32)[(ptr+12)/4];return{offset:readI53FromI64(ptr),bytesPerRow:bytesPerRow===4294967295?undefined:bytesPerRow,rowsPerImage:rowsPerImage===4294967295?undefined:rowsPerImage}},makeTexelCopyBufferInfo:ptr=>{var layoutPtr=ptr+0;var bufferCopyView=WebGPU.makeTexelCopyBufferLayout(layoutPtr);bufferCopyView[\"buffer\"]=WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+16)/8]));return bufferCopyView},makePassTimestampWrites:ptr=>{if(ptr===0)return undefined;return{querySet:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+8)/8])),beginningOfPassWriteIndex:(growMemViews(),HEAPU32)[(ptr+16)/4],endOfPassWriteIndex:(growMemViews(),HEAPU32)[(ptr+20)/4]}},makePipelineConstants:(constantCount,constantsPtr)=>{if(!constantCount)return;var constants={};for(var i=0;i{if(!layoutPtr)return\"auto\";return WebGPU.getJsObject(layoutPtr)},makeComputeState:ptr=>{if(!ptr)return undefined;var desc={module:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+8)/8])),constants:WebGPU.makePipelineConstants(Number((growMemViews(),HEAPU64)[(ptr+32)/8]),Number((growMemViews(),HEAPU64)[(ptr+40)/8])),entryPoint:WebGPU.makeStringFromOptionalStringView(ptr+16)};return desc},makeComputePipelineDesc:descriptor=>{var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8),layout:WebGPU.makePipelineLayout(Number((growMemViews(),HEAPU64)[(descriptor+24)/8])),compute:WebGPU.makeComputeState(descriptor+32)};return desc},makeRenderPipelineDesc:descriptor=>{function makePrimitiveState(psPtr){if(!psPtr)return undefined;return{topology:WebGPU.PrimitiveTopology[(growMemViews(),HEAP32)[(psPtr+8)/4]],stripIndexFormat:WebGPU.IndexFormat[(growMemViews(),HEAP32)[(psPtr+12)/4]],frontFace:WebGPU.FrontFace[(growMemViews(),HEAP32)[(psPtr+16)/4]],cullMode:WebGPU.CullMode[(growMemViews(),HEAP32)[(psPtr+20)/4]],unclippedDepth:!!(growMemViews(),HEAPU32)[(psPtr+24)/4]}}function makeBlendComponent(bdPtr){if(!bdPtr)return undefined;return{operation:WebGPU.BlendOperation[(growMemViews(),HEAP32)[bdPtr/4]],srcFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[(bdPtr+4)/4]],dstFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[(bdPtr+8)/4]]}}function makeBlendState(bsPtr){if(!bsPtr)return undefined;return{alpha:makeBlendComponent(bsPtr+12),color:makeBlendComponent(bsPtr+0)}}function makeColorState(csPtr){var format=WebGPU.TextureFormat[(growMemViews(),HEAP32)[(csPtr+8)/4]];return format?{format,blend:makeBlendState(Number((growMemViews(),HEAPU64)[(csPtr+16)/8])),writeMask:(growMemViews(),HEAPU32)[(csPtr+24)/4]}:undefined}function makeColorStates(count,csArrayPtr){var states=[];for(var i=0;i{var nextInChainPtr=Number((growMemViews(),HEAPU64)[limitsOutPtr/8]);function setLimitValueU32(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;(growMemViews(),HEAPU32)[(basePtr+limitOffset)/4]=limitValue}function setLimitValueU64(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;writeI53ToI64(basePtr+limitOffset,limitValue)}setLimitValueU32(\"maxTextureDimension1D\",limitsOutPtr,8);setLimitValueU32(\"maxTextureDimension2D\",limitsOutPtr,12);setLimitValueU32(\"maxTextureDimension3D\",limitsOutPtr,16);setLimitValueU32(\"maxTextureArrayLayers\",limitsOutPtr,20);setLimitValueU32(\"maxBindGroups\",limitsOutPtr,24);setLimitValueU32(\"maxBindGroupsPlusVertexBuffers\",limitsOutPtr,28);setLimitValueU32(\"maxBindingsPerBindGroup\",limitsOutPtr,32);setLimitValueU32(\"maxDynamicUniformBuffersPerPipelineLayout\",limitsOutPtr,36);setLimitValueU32(\"maxDynamicStorageBuffersPerPipelineLayout\",limitsOutPtr,40);setLimitValueU32(\"maxSampledTexturesPerShaderStage\",limitsOutPtr,44);setLimitValueU32(\"maxSamplersPerShaderStage\",limitsOutPtr,48);setLimitValueU32(\"maxStorageBuffersPerShaderStage\",limitsOutPtr,52);setLimitValueU32(\"maxStorageTexturesPerShaderStage\",limitsOutPtr,56);setLimitValueU32(\"maxUniformBuffersPerShaderStage\",limitsOutPtr,60);setLimitValueU32(\"minUniformBufferOffsetAlignment\",limitsOutPtr,80);setLimitValueU32(\"minStorageBufferOffsetAlignment\",limitsOutPtr,84);setLimitValueU64(\"maxUniformBufferBindingSize\",limitsOutPtr,64);setLimitValueU64(\"maxStorageBufferBindingSize\",limitsOutPtr,72);setLimitValueU32(\"maxVertexBuffers\",limitsOutPtr,88);setLimitValueU64(\"maxBufferSize\",limitsOutPtr,96);setLimitValueU32(\"maxVertexAttributes\",limitsOutPtr,104);setLimitValueU32(\"maxVertexBufferArrayStride\",limitsOutPtr,108);setLimitValueU32(\"maxInterStageShaderVariables\",limitsOutPtr,112);setLimitValueU32(\"maxColorAttachments\",limitsOutPtr,116);setLimitValueU32(\"maxColorAttachmentBytesPerSample\",limitsOutPtr,120);setLimitValueU32(\"maxComputeWorkgroupStorageSize\",limitsOutPtr,124);setLimitValueU32(\"maxComputeInvocationsPerWorkgroup\",limitsOutPtr,128);setLimitValueU32(\"maxComputeWorkgroupSizeX\",limitsOutPtr,132);setLimitValueU32(\"maxComputeWorkgroupSizeY\",limitsOutPtr,136);setLimitValueU32(\"maxComputeWorkgroupSizeZ\",limitsOutPtr,140);setLimitValueU32(\"maxComputeWorkgroupsPerDimension\",limitsOutPtr,144);setLimitValueU32(\"maxImmediateSize\",limitsOutPtr,148);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var compatibilityModeLimitsPtr=nextInChainPtr;setLimitValueU32(\"maxStorageBuffersInVertexStage\",compatibilityModeLimitsPtr,16,limits.maxStorageBuffersPerShaderStage);setLimitValueU32(\"maxStorageBuffersInFragmentStage\",compatibilityModeLimitsPtr,24,limits.maxStorageBuffersPerShaderStage);setLimitValueU32(\"maxStorageTexturesInVertexStage\",compatibilityModeLimitsPtr,20,limits.maxStorageTexturesPerShaderStage);setLimitValueU32(\"maxStorageTexturesInFragmentStage\",compatibilityModeLimitsPtr,28,limits.maxStorageTexturesPerShaderStage)}},fillAdapterInfoStruct:(info,infoStruct)=>{(growMemViews(),HEAPU32)[(infoStruct+88)/4]=info.subgroupMinSize;(growMemViews(),HEAPU32)[(infoStruct+92)/4]=info.subgroupMaxSize;var strs=info.vendor+info.architecture+info.device+info.description;var strPtr=stringToNewUTF8(strs);var vendorLen=lengthBytesUTF8(info.vendor);WebGPU.setStringView(infoStruct+8,strPtr,vendorLen);strPtr+=vendorLen;var architectureLen=lengthBytesUTF8(info.architecture);WebGPU.setStringView(infoStruct+24,strPtr,architectureLen);strPtr+=architectureLen;var deviceLen=lengthBytesUTF8(info.device);WebGPU.setStringView(infoStruct+40,strPtr,deviceLen);strPtr+=deviceLen;var descriptionLen=lengthBytesUTF8(info.description);WebGPU.setStringView(infoStruct+56,strPtr,descriptionLen);strPtr+=descriptionLen;(growMemViews(),HEAP32)[(infoStruct+72)/4]=2;var adapterType=info.isFallbackAdapter?3:4;(growMemViews(),HEAP32)[(infoStruct+76)/4]=adapterType;(growMemViews(),HEAPU32)[(infoStruct+80)/4]=0;(growMemViews(),HEAPU32)[(infoStruct+84)/4]=0},AddressMode:[,\"clamp-to-edge\",\"repeat\",\"mirror-repeat\"],BlendFactor:[,\"zero\",\"one\",\"src\",\"one-minus-src\",\"src-alpha\",\"one-minus-src-alpha\",\"dst\",\"one-minus-dst\",\"dst-alpha\",\"one-minus-dst-alpha\",\"src-alpha-saturated\",\"constant\",\"one-minus-constant\",\"src1\",\"one-minus-src1\",\"src1-alpha\",\"one-minus-src1-alpha\"],BlendOperation:[,\"add\",\"subtract\",\"reverse-subtract\",\"min\",\"max\"],BufferBindingType:[,,\"uniform\",\"storage\",\"read-only-storage\"],BufferMapState:[,\"unmapped\",\"pending\",\"mapped\"],CompareFunction:[,\"never\",\"less\",\"equal\",\"less-equal\",\"greater\",\"not-equal\",\"greater-equal\",\"always\"],CompilationInfoRequestStatus:[,\"success\",\"callback-cancelled\"],ComponentSwizzle:[,\"0\",\"1\",\"r\",\"g\",\"b\",\"a\"],CompositeAlphaMode:[,\"opaque\",\"premultiplied\",\"unpremultiplied\",\"inherit\"],CullMode:[,\"none\",\"front\",\"back\"],ErrorFilter:[,\"validation\",\"out-of-memory\",\"internal\"],FeatureLevel:[,\"compatibility\",\"core\"],FeatureName:{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\",22:\"texture-component-swizzle\",327692:\"chromium-experimental-unorm16-texture-formats\",327729:\"chromium-experimental-multi-draw-indirect\"},FilterMode:[,\"nearest\",\"linear\"],FrontFace:[,\"ccw\",\"cw\"],IndexFormat:[,\"uint16\",\"uint32\"],InstanceFeatureName:[,\"timed-wait-any\",\"shader-source-spirv\",\"multiple-devices-per-adapter\"],LoadOp:[,\"load\",\"clear\"],MipmapFilterMode:[,\"nearest\",\"linear\"],OptionalBool:[\"false\",\"true\"],PowerPreference:[,\"low-power\",\"high-performance\"],PredefinedColorSpace:[,\"srgb\",\"display-p3\"],PrimitiveTopology:[,\"point-list\",\"line-list\",\"line-strip\",\"triangle-list\",\"triangle-strip\"],QueryType:[,\"occlusion\",\"timestamp\"],SamplerBindingType:[,,\"filtering\",\"non-filtering\",\"comparison\"],Status:[,\"success\",\"error\"],StencilOperation:[,\"keep\",\"zero\",\"replace\",\"invert\",\"increment-clamp\",\"decrement-clamp\",\"increment-wrap\",\"decrement-wrap\"],StorageTextureAccess:[,,\"write-only\",\"read-only\",\"read-write\"],StoreOp:[,\"store\",\"discard\"],SurfaceGetCurrentTextureStatus:[,\"success-optimal\",\"success-suboptimal\",\"timeout\",\"outdated\",\"lost\",\"error\"],TextureAspect:[,\"all\",\"stencil-only\",\"depth-only\"],TextureDimension:[,\"1d\",\"2d\",\"3d\"],TextureFormat:[,\"r8unorm\",\"r8snorm\",\"r8uint\",\"r8sint\",\"r16unorm\",\"r16snorm\",\"r16uint\",\"r16sint\",\"r16float\",\"rg8unorm\",\"rg8snorm\",\"rg8uint\",\"rg8sint\",\"r32float\",\"r32uint\",\"r32sint\",\"rg16unorm\",\"rg16snorm\",\"rg16uint\",\"rg16sint\",\"rg16float\",\"rgba8unorm\",\"rgba8unorm-srgb\",\"rgba8snorm\",\"rgba8uint\",\"rgba8sint\",\"bgra8unorm\",\"bgra8unorm-srgb\",\"rgb10a2uint\",\"rgb10a2unorm\",\"rg11b10ufloat\",\"rgb9e5ufloat\",\"rg32float\",\"rg32uint\",\"rg32sint\",\"rgba16unorm\",\"rgba16snorm\",\"rgba16uint\",\"rgba16sint\",\"rgba16float\",\"rgba32float\",\"rgba32uint\",\"rgba32sint\",\"stencil8\",\"depth16unorm\",\"depth24plus\",\"depth24plus-stencil8\",\"depth32float\",\"depth32float-stencil8\",\"bc1-rgba-unorm\",\"bc1-rgba-unorm-srgb\",\"bc2-rgba-unorm\",\"bc2-rgba-unorm-srgb\",\"bc3-rgba-unorm\",\"bc3-rgba-unorm-srgb\",\"bc4-r-unorm\",\"bc4-r-snorm\",\"bc5-rg-unorm\",\"bc5-rg-snorm\",\"bc6h-rgb-ufloat\",\"bc6h-rgb-float\",\"bc7-rgba-unorm\",\"bc7-rgba-unorm-srgb\",\"etc2-rgb8unorm\",\"etc2-rgb8unorm-srgb\",\"etc2-rgb8a1unorm\",\"etc2-rgb8a1unorm-srgb\",\"etc2-rgba8unorm\",\"etc2-rgba8unorm-srgb\",\"eac-r11unorm\",\"eac-r11snorm\",\"eac-rg11unorm\",\"eac-rg11snorm\",\"astc-4x4-unorm\",\"astc-4x4-unorm-srgb\",\"astc-5x4-unorm\",\"astc-5x4-unorm-srgb\",\"astc-5x5-unorm\",\"astc-5x5-unorm-srgb\",\"astc-6x5-unorm\",\"astc-6x5-unorm-srgb\",\"astc-6x6-unorm\",\"astc-6x6-unorm-srgb\",\"astc-8x5-unorm\",\"astc-8x5-unorm-srgb\",\"astc-8x6-unorm\",\"astc-8x6-unorm-srgb\",\"astc-8x8-unorm\",\"astc-8x8-unorm-srgb\",\"astc-10x5-unorm\",\"astc-10x5-unorm-srgb\",\"astc-10x6-unorm\",\"astc-10x6-unorm-srgb\",\"astc-10x8-unorm\",\"astc-10x8-unorm-srgb\",\"astc-10x10-unorm\",\"astc-10x10-unorm-srgb\",\"astc-12x10-unorm\",\"astc-12x10-unorm-srgb\",\"astc-12x12-unorm\",\"astc-12x12-unorm-srgb\"],TextureSampleType:[,,\"float\",\"unfilterable-float\",\"depth\",\"sint\",\"uint\"],TextureViewDimension:[,\"1d\",\"2d\",\"2d-array\",\"cube\",\"cube-array\",\"3d\"],ToneMappingMode:[,\"standard\",\"extended\"],VertexFormat:[,\"uint8\",\"uint8x2\",\"uint8x4\",\"sint8\",\"sint8x2\",\"sint8x4\",\"unorm8\",\"unorm8x2\",\"unorm8x4\",\"snorm8\",\"snorm8x2\",\"snorm8x4\",\"uint16\",\"uint16x2\",\"uint16x4\",\"sint16\",\"sint16x2\",\"sint16x4\",\"unorm16\",\"unorm16x2\",\"unorm16x4\",\"snorm16\",\"snorm16x2\",\"snorm16x4\",\"float16\",\"float16x2\",\"float16x4\",\"float32\",\"float32x2\",\"float32x3\",\"float32x4\",\"uint32\",\"uint32x2\",\"uint32x3\",\"uint32x4\",\"sint32\",\"sint32x2\",\"sint32x3\",\"sint32x4\",\"unorm10-10-10-2\",\"unorm8x4-bgra\"],VertexStepMode:[,\"vertex\",\"instance\"],WGSLLanguageFeatureName:[,\"readonly_and_readwrite_storage_textures\",\"packed_4x8_integer_dot_product\",\"unrestricted_pointer_parameters\",\"pointer_composite_access\",\"uniform_buffer_standard_layout\",\"subgroup_id\",\"texture_and_sampler_let\",\"subgroup_uniformity\",\"texture_formats_tier1\"]};var emwgpuStringToInt_DeviceLostReason={undefined:1,unknown:1,destroyed:2};var runtimeKeepalivePop=()=>{runtimeKeepaliveCounter-=1};function _emwgpuAdapterRequestDevice(adapterPtr,futureId,deviceLostFutureId,devicePtr,queuePtr,descriptor){adapterPtr=bigintToI53Checked(adapterPtr);futureId=bigintToI53Checked(futureId);deviceLostFutureId=bigintToI53Checked(deviceLostFutureId);devicePtr=bigintToI53Checked(devicePtr);queuePtr=bigintToI53Checked(queuePtr);descriptor=bigintToI53Checked(descriptor);var adapter=WebGPU.getJsObject(adapterPtr);var desc={};if(descriptor){var requiredFeatureCount=Number((growMemViews(),HEAPU64)[(descriptor+24)/8]);if(requiredFeatureCount){var requiredFeaturesPtr=Number((growMemViews(),HEAPU64)[(descriptor+32)/8]);desc[\"requiredFeatures\"]=Array.from((growMemViews(),HEAPU32).subarray(requiredFeaturesPtr/4,(requiredFeaturesPtr+requiredFeatureCount*4)/4),feature=>WebGPU.FeatureName[feature])}var limitsPtr=Number((growMemViews(),HEAPU64)[(descriptor+40)/8]);if(limitsPtr){var nextInChainPtr=Number((growMemViews(),HEAPU64)[limitsPtr/8]);var requiredLimits={};function setLimitU32IfDefined(name,basePtr,limitOffset,ignoreIfZero=false){var ptr=basePtr+limitOffset;var value=(growMemViews(),HEAPU32)[ptr/4];if(value!=4294967295&&(!ignoreIfZero||value!=0)){requiredLimits[name]=value}}function setLimitU64IfDefined(name,basePtr,limitOffset){var ptr=basePtr+limitOffset;var limitPart1=(growMemViews(),HEAPU32)[ptr/4];var limitPart2=(growMemViews(),HEAPU32)[(ptr+4)/4];if(limitPart1!=4294967295||limitPart2!=4294967295){requiredLimits[name]=readI53FromI64(ptr)}}setLimitU32IfDefined(\"maxTextureDimension1D\",limitsPtr,8);setLimitU32IfDefined(\"maxTextureDimension2D\",limitsPtr,12);setLimitU32IfDefined(\"maxTextureDimension3D\",limitsPtr,16);setLimitU32IfDefined(\"maxTextureArrayLayers\",limitsPtr,20);setLimitU32IfDefined(\"maxBindGroups\",limitsPtr,24);setLimitU32IfDefined(\"maxBindGroupsPlusVertexBuffers\",limitsPtr,28);setLimitU32IfDefined(\"maxBindingsPerBindGroup\",limitsPtr,32);setLimitU32IfDefined(\"maxDynamicUniformBuffersPerPipelineLayout\",limitsPtr,36);setLimitU32IfDefined(\"maxDynamicStorageBuffersPerPipelineLayout\",limitsPtr,40);setLimitU32IfDefined(\"maxSampledTexturesPerShaderStage\",limitsPtr,44);setLimitU32IfDefined(\"maxSamplersPerShaderStage\",limitsPtr,48);setLimitU32IfDefined(\"maxStorageBuffersPerShaderStage\",limitsPtr,52);setLimitU32IfDefined(\"maxStorageTexturesPerShaderStage\",limitsPtr,56);setLimitU32IfDefined(\"maxUniformBuffersPerShaderStage\",limitsPtr,60);setLimitU32IfDefined(\"minUniformBufferOffsetAlignment\",limitsPtr,80);setLimitU32IfDefined(\"minStorageBufferOffsetAlignment\",limitsPtr,84);setLimitU64IfDefined(\"maxUniformBufferBindingSize\",limitsPtr,64);setLimitU64IfDefined(\"maxStorageBufferBindingSize\",limitsPtr,72);setLimitU32IfDefined(\"maxVertexBuffers\",limitsPtr,88);setLimitU64IfDefined(\"maxBufferSize\",limitsPtr,96);setLimitU32IfDefined(\"maxVertexAttributes\",limitsPtr,104);setLimitU32IfDefined(\"maxVertexBufferArrayStride\",limitsPtr,108);setLimitU32IfDefined(\"maxInterStageShaderVariables\",limitsPtr,112);setLimitU32IfDefined(\"maxColorAttachments\",limitsPtr,116);setLimitU32IfDefined(\"maxColorAttachmentBytesPerSample\",limitsPtr,120);setLimitU32IfDefined(\"maxComputeWorkgroupStorageSize\",limitsPtr,124);setLimitU32IfDefined(\"maxComputeInvocationsPerWorkgroup\",limitsPtr,128);setLimitU32IfDefined(\"maxComputeWorkgroupSizeX\",limitsPtr,132);setLimitU32IfDefined(\"maxComputeWorkgroupSizeY\",limitsPtr,136);setLimitU32IfDefined(\"maxComputeWorkgroupSizeZ\",limitsPtr,140);setLimitU32IfDefined(\"maxComputeWorkgroupsPerDimension\",limitsPtr,144);setLimitU32IfDefined(\"maxImmediateSize\",limitsPtr,148,true);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var compatibilityModeLimitsPtr=nextInChainPtr;if(\"maxStorageBuffersInVertexStage\"in GPUSupportedLimits.prototype){setLimitU32IfDefined(\"maxStorageBuffersInVertexStage\",compatibilityModeLimitsPtr,16);setLimitU32IfDefined(\"maxStorageTexturesInVertexStage\",compatibilityModeLimitsPtr,20);setLimitU32IfDefined(\"maxStorageBuffersInFragmentStage\",compatibilityModeLimitsPtr,24);setLimitU32IfDefined(\"maxStorageTexturesInFragmentStage\",compatibilityModeLimitsPtr,28)}}desc[\"requiredLimits\"]=requiredLimits}var defaultQueuePtr=Number((growMemViews(),HEAPU64)[(descriptor+48)/8]);if(defaultQueuePtr){var defaultQueueDesc={label:WebGPU.makeStringFromOptionalStringView(defaultQueuePtr+8)};desc[\"defaultQueue\"]=defaultQueueDesc}desc[\"label\"]=WebGPU.makeStringFromOptionalStringView(descriptor+8)}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,adapter.requestDevice(desc).then(device=>{runtimeKeepalivePop();callUserCallback(()=>{WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);devicePtr=BigInt(devicePtr);WebGPU.Internals.futureInsert(deviceLostFutureId,device.lost.then(info=>{callUserCallback(()=>{device.onuncapturederror=ev=>{};var sp=stackSave();var messagePtr=stringToUTF8OnStack(info.message);_emwgpuOnDeviceLostCompleted(deviceLostFutureId,emwgpuStringToInt_DeviceLostReason[info.reason],BigInt(messagePtr));stackRestore(sp)})}));device.onuncapturederror=ev=>{var type=5;if(ev.error instanceof GPUValidationError)type=2;else if(ev.error instanceof GPUOutOfMemoryError)type=3;else if(ev.error instanceof GPUInternalError)type=4;var sp=stackSave();var messagePtr=stringToUTF8OnStack(ev.error.message);_emwgpuOnUncapturedError(BigInt(devicePtr),type,BigInt(messagePtr));stackRestore(sp)};_emwgpuOnRequestDeviceCompleted(futureId,1,BigInt(devicePtr),0n)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestDeviceCompleted(futureId,3,BigInt(devicePtr),BigInt(messagePtr));if(deviceLostFutureId){_emwgpuOnDeviceLostCompleted(deviceLostFutureId,4,BigInt(messagePtr))}stackRestore(sp)})}))}function _emwgpuBufferDestroy(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(onUnmap){for(var i=0;i{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text=\"warning: \"+text;err(text)}};var _emwgpuBufferGetConstMappedRange=function(bufferPtr,offset,size){bufferPtr=bigintToI53Checked(bufferPtr);offset=bigintToI53Checked(offset);size=bigintToI53Checked(size);var ret=(()=>{var buffer=WebGPU.getJsObject(bufferPtr);if(size==-1)size=undefined;var mapped;try{mapped=buffer.getMappedRange(offset,size)}catch(ex){return 0n}var data=_memalign(16,mapped.byteLength);(growMemViews(),HEAPU8).set(new Uint8Array(mapped),data);WebGPU.Internals.bufferOnUnmaps[bufferPtr].push(()=>_free(data));return data})();return BigInt(ret)};var _emwgpuBufferMapAsync=function(bufferPtr,futureId,mode,offset,size){bufferPtr=bigintToI53Checked(bufferPtr);futureId=bigintToI53Checked(futureId);mode=bigintToI53Checked(mode);offset=bigintToI53Checked(offset);size=bigintToI53Checked(size);var buffer=WebGPU.getJsObject(bufferPtr);WebGPU.Internals.bufferOnUnmaps[bufferPtr]=[];if(size==-1)size=undefined;runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,buffer.mapAsync(mode,offset,size).then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnMapAsyncCompleted(futureId,1,0n)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);var status=ex.name===\"AbortError\"?4:ex.name===\"OperationError\"?3:0;_emwgpuOnMapAsyncCompleted(futureId,status,BigInt(messagePtr));delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]})}))};function _emwgpuBufferUnmap(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(!onUnmap){return}for(var i=0;i{const device=WebGPU.getJsObject(devicePtr);device.onuncapturederror=null;device.destroy()};function _emwgpuInstanceRequestAdapter(instancePtr,futureId,options,adapterPtr){instancePtr=bigintToI53Checked(instancePtr);futureId=bigintToI53Checked(futureId);options=bigintToI53Checked(options);adapterPtr=bigintToI53Checked(adapterPtr);var opts;if(options){opts={featureLevel:WebGPU.FeatureLevel[(growMemViews(),HEAP32)[(options+8)/4]],powerPreference:WebGPU.PowerPreference[(growMemViews(),HEAP32)[(options+12)/4]],forceFallbackAdapter:!!(growMemViews(),HEAPU32)[(options+16)/4]};var nextInChainPtr=Number((growMemViews(),HEAPU64)[options/8]);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var webxrOptions=nextInChainPtr;opts.xrCompatible=!!(growMemViews(),HEAPU32)[(webxrOptions+16)/4]}}if(!(\"gpu\"in navigator)){var sp=stackSave();var messagePtr=stringToUTF8OnStack(\"WebGPU not available on this browser (navigator.gpu is not available)\");_emwgpuOnRequestAdapterCompleted(futureId,3,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp);return}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,navigator.gpu.requestAdapter(opts).then(adapter=>{runtimeKeepalivePop();callUserCallback(()=>{if(adapter){WebGPU.Internals.jsObjectInsert(adapterPtr,adapter);_emwgpuOnRequestAdapterCompleted(futureId,1,BigInt(adapterPtr),0n)}else{var sp=stackSave();var messagePtr=stringToUTF8OnStack(\"WebGPU not available on this browser (requestAdapter returned null)\");_emwgpuOnRequestAdapterCompleted(futureId,3,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp)}})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestAdapterCompleted(futureId,4,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp)})}))}var _emwgpuQueueOnSubmittedWorkDone=function(queuePtr,futureId){queuePtr=bigintToI53Checked(queuePtr);futureId=bigintToI53Checked(futureId);var queue=WebGPU.getJsObject(queuePtr);runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,queue.onSubmittedWorkDone().then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnWorkDoneCompleted(futureId,1)})}))};var _emwgpuWaitAny=function(futurePtr,futureCount,timeoutMSPtr){futurePtr=bigintToI53Checked(futurePtr);futureCount=bigintToI53Checked(futureCount);timeoutMSPtr=bigintToI53Checked(timeoutMSPtr);return Asyncify.handleAsync(async()=>{var promises=[];if(timeoutMSPtr){var timeoutMS=(growMemViews(),HEAP32)[timeoutMSPtr/4];promises.length=futureCount+1;promises[futureCount]=new Promise(resolve=>setTimeout(resolve,timeoutMS,0))}else{promises.length=futureCount}for(var i=0;ithisProgram||\"./this.program\";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator==\"object\"&&navigator.language||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(15,0,1,__environ,environ_buf);__environ=bigintToI53Checked(__environ);environ_buf=bigintToI53Checked(environ_buf);var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;(growMemViews(),HEAPU64)[(__environ+envp)/8]=BigInt(ptr);bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=8}return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(16,0,1,penviron_count,penviron_buf_size);penviron_count=bigintToI53Checked(penviron_count);penviron_buf_size=bigintToI53Checked(penviron_buf_size);var strings=getEnvStrings();(growMemViews(),HEAPU64)[penviron_count/8]=BigInt(strings.length);var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}(growMemViews(),HEAPU64)[penviron_buf_size/8]=BigInt(bufSize);return 0}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(17,0,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i{var ret=0;for(var i=0;i=0){(growMemViews(),HEAP32)[(featuresPtr+offset)/4]=featureEnumValue;offset+=4;numFeatures++}}(growMemViews(),HEAPU64)[(supportedFeatures+8)/8]=BigInt(featuresPtr);(growMemViews(),HEAPU64)[supportedFeatures/8]=BigInt(numFeatures)}function _wgpuAdapterGetInfo(adapterPtr,info){adapterPtr=bigintToI53Checked(adapterPtr);info=bigintToI53Checked(info);var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillAdapterInfoStruct(adapter.info,info);return 1}function _wgpuAdapterGetLimits(adapterPtr,limitsOutPtr){adapterPtr=bigintToI53Checked(adapterPtr);limitsOutPtr=bigintToI53Checked(limitsOutPtr);var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillLimitStruct(adapter.limits,limitsOutPtr);return 1}function _wgpuAdapterHasFeature(adapterPtr,featureEnumValue){adapterPtr=bigintToI53Checked(adapterPtr);var adapter=WebGPU.getJsObject(adapterPtr);return adapter.features.has(WebGPU.FeatureName[featureEnumValue])}var _wgpuBufferGetSize=function(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var ret=(()=>{var buffer=WebGPU.getJsObject(bufferPtr);return buffer.size})();return BigInt(ret)};var _wgpuCommandEncoderBeginComputePass=function(encoderPtr,descriptor){encoderPtr=bigintToI53Checked(encoderPtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8),timestampWrites:WebGPU.makePassTimestampWrites(Number((growMemViews(),HEAPU64)[(descriptor+24)/8]))}}var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateComputePassEncoder(0n);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.beginComputePass(desc));return ptr})();return BigInt(ret)};function _wgpuCommandEncoderCopyBufferToBuffer(encoderPtr,srcPtr,srcOffset,dstPtr,dstOffset,size){encoderPtr=bigintToI53Checked(encoderPtr);srcPtr=bigintToI53Checked(srcPtr);srcOffset=bigintToI53Checked(srcOffset);dstPtr=bigintToI53Checked(dstPtr);dstOffset=bigintToI53Checked(dstOffset);size=bigintToI53Checked(size);var commandEncoder=WebGPU.getJsObject(encoderPtr);var src=WebGPU.getJsObject(srcPtr);var dst=WebGPU.getJsObject(dstPtr);commandEncoder.copyBufferToBuffer(src,srcOffset,dst,dstOffset,size)}var _wgpuCommandEncoderFinish=function(encoderPtr,descriptor){encoderPtr=bigintToI53Checked(encoderPtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateCommandBuffer(0n);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.finish());return ptr})();return BigInt(ret)};function _wgpuComputePassEncoderDispatchWorkgroups(passPtr,x,y,z){passPtr=bigintToI53Checked(passPtr);var pass=WebGPU.getJsObject(passPtr);pass.dispatchWorkgroups(x,y,z)}function _wgpuComputePassEncoderEnd(passPtr){passPtr=bigintToI53Checked(passPtr);var pass=WebGPU.getJsObject(passPtr);pass.end()}function _wgpuComputePassEncoderSetBindGroup(passPtr,groupIndex,groupPtr,dynamicOffsetCount,dynamicOffsetsPtr){passPtr=bigintToI53Checked(passPtr);groupPtr=bigintToI53Checked(groupPtr);dynamicOffsetCount=bigintToI53Checked(dynamicOffsetCount);dynamicOffsetsPtr=bigintToI53Checked(dynamicOffsetsPtr);var pass=WebGPU.getJsObject(passPtr);var group=WebGPU.getJsObject(groupPtr);if(dynamicOffsetCount==0){pass.setBindGroup(groupIndex,group)}else{pass.setBindGroup(groupIndex,group,(growMemViews(),HEAPU32),dynamicOffsetsPtr/4,dynamicOffsetCount)}}function _wgpuComputePassEncoderSetPipeline(passPtr,pipelinePtr){passPtr=bigintToI53Checked(passPtr);pipelinePtr=bigintToI53Checked(pipelinePtr);var pass=WebGPU.getJsObject(passPtr);var pipeline=WebGPU.getJsObject(pipelinePtr);pass.setPipeline(pipeline)}var _wgpuComputePipelineGetBindGroupLayout=function(pipelinePtr,groupIndex){pipelinePtr=bigintToI53Checked(pipelinePtr);var ret=(()=>{var pipeline=WebGPU.getJsObject(pipelinePtr);var ptr=_emwgpuCreateBindGroupLayout(0n);WebGPU.Internals.jsObjectInsert(ptr,pipeline.getBindGroupLayout(groupIndex));return ptr})();return BigInt(ret)};var _wgpuDeviceCreateBindGroup=function(devicePtr,descriptor){devicePtr=bigintToI53Checked(devicePtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{function makeEntry(entryPtr){var bufferPtr=Number((growMemViews(),HEAPU64)[(entryPtr+16)/8]);var samplerPtr=Number((growMemViews(),HEAPU64)[(entryPtr+40)/8]);var textureViewPtr=Number((growMemViews(),HEAPU64)[(entryPtr+48)/8]);var externalTexturePtr=0;WebGPU.iterateExtensions(entryPtr,{327681:ptr=>{externalTexturePtr=Number((growMemViews(),HEAPU64)[(ptr+16)/8])}});var resource;if(bufferPtr){var size=readI53FromI64(entryPtr+32);if(size==-1)size=undefined;resource={buffer:WebGPU.getJsObject(bufferPtr),offset:readI53FromI64(entryPtr+24),size}}else{resource=WebGPU.getJsObject(samplerPtr||textureViewPtr||externalTexturePtr)}return{binding:(growMemViews(),HEAPU32)[(entryPtr+8)/4],resource}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i{var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8)}}var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateCommandEncoder(0n);WebGPU.Internals.jsObjectInsert(ptr,device.createCommandEncoder(desc));return ptr})();return BigInt(ret)};var _wgpuDeviceCreateComputePipeline=function(devicePtr,descriptor){devicePtr=bigintToI53Checked(devicePtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var desc=WebGPU.makeComputePipelineDesc(descriptor);var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateComputePipeline(0n);WebGPU.Internals.jsObjectInsert(ptr,device.createComputePipeline(desc));return ptr})();return BigInt(ret)};var _wgpuQueueSubmit=function(queuePtr,commandCount,commands){queuePtr=bigintToI53Checked(queuePtr);commandCount=bigintToI53Checked(commandCount);commands=bigintToI53Checked(commands);var queue=WebGPU.getJsObject(queuePtr);var cmds=Array.from((growMemViews(),HEAP64).subarray(commands/8,(commands+commandCount*8)/8),id=>WebGPU.getJsObject(id));queue.submit(cmds)};function _wgpuQueueWriteBuffer(queuePtr,bufferPtr,bufferOffset,data,size){queuePtr=bigintToI53Checked(queuePtr);bufferPtr=bigintToI53Checked(bufferPtr);bufferOffset=bigintToI53Checked(bufferOffset);data=bigintToI53Checked(data);size=bigintToI53Checked(size);var queue=WebGPU.getJsObject(queuePtr);var buffer=WebGPU.getJsObject(bufferPtr);var subarray=(growMemViews(),HEAPU8).subarray(data,data+size);queue.writeBuffer(buffer,bufferOffset,subarray,0,size)}var runAndAbortIfError=func=>{try{return func()}catch(e){abort(e)}};var Asyncify={instrumentWasmImports(imports){var importPattern=/^(invoke_.*|__asyncjs__.*)$/;for(let[x,original]of Object.entries(imports)){if(typeof original==\"function\"){let isAsyncifyImport=original.isAsync||importPattern.test(x);if(isAsyncifyImport){imports[x]=original=new WebAssembly.Suspending(original)}}}},instrumentFunction(original){var wrapper=(...args)=>original(...args);return wrapper},instrumentWasmExports(exports){var exportPattern=/^(wllama_start|wllama_action|main|__main_argc_argv)$/;Asyncify.asyncExports=new Set;var ret={};for(let[x,original]of Object.entries(exports)){if(typeof original==\"function\"){let isAsyncifyExport=exportPattern.test(x);if(isAsyncifyExport){Asyncify.asyncExports.add(original);original=Asyncify.makeAsyncFunction(original)}var wrapper=Asyncify.instrumentFunction(original);ret[x]=wrapper}else{ret[x]=original}}return ret},asyncExports:null,isAsyncExport(func){return Asyncify.asyncExports?.has(func)},handleAsync:async startAsync=>{runtimeKeepalivePush();try{return await startAsync()}finally{runtimeKeepalivePop()}},handleSleep:startAsync=>Asyncify.handleAsync(()=>new Promise(startAsync)),makeAsyncFunction(original){return WebAssembly.promising(original)}};var getCFunc=ident=>{var func=Module[\"_\"+ident];return func};var writeArrayToMemory=(array,buffer)=>{(growMemViews(),HEAP8).set(array,buffer)};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={pointer:p=>BigInt(p),string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return BigInt(ret)},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return BigInt(ret)}};function convertReturnValue(ret){if(returnType===\"string\"){return UTF8ToString(Number(ret))}if(returnType===\"pointer\")return Number(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type===\"number\"||type===\"boolean\");var numericRet=returnType!==\"string\";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var FS_createPath=(...args)=>FS.createPath(...args);var FS_unlink=(...args)=>FS.unlink(...args);var FS_createLazyFile=(...args)=>FS.createLazyFile(...args);var FS_createDevice=(...args)=>FS.createDevice(...args);PThread.init();FS.createPreloadedFile=FS_createPreloadedFile;FS.preloadFile=FS_preloadFile;FS.staticInit();{initMemory();if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(Module[\"preloadPlugins\"])preloadPlugins=Module[\"preloadPlugins\"];if(Module[\"print\"])out=Module[\"print\"];if(Module[\"printErr\"])err=Module[\"printErr\"];if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].shift()()}}}Module[\"addRunDependency\"]=addRunDependency;Module[\"removeRunDependency\"]=removeRunDependency;Module[\"ccall\"]=ccall;Module[\"cwrap\"]=cwrap;Module[\"FS_preloadFile\"]=FS_preloadFile;Module[\"FS_unlink\"]=FS_unlink;Module[\"FS_createPath\"]=FS_createPath;Module[\"FS_createDevice\"]=FS_createDevice;Module[\"FS_createDataFile\"]=FS_createDataFile;Module[\"FS_createLazyFile\"]=FS_createLazyFile;Module[\"ExitStatus\"]=ExitStatus;Module[\"PThread\"]=PThread;Module[\"terminateWorker\"]=terminateWorker;Module[\"cleanupThread\"]=cleanupThread;Module[\"addOnPreRun\"]=addOnPreRun;Module[\"onPreRuns\"]=onPreRuns;Module[\"callRuntimeCallbacks\"]=callRuntimeCallbacks;Module[\"addRunDependency\"]=addRunDependency;Module[\"runDependencies\"]=runDependencies;Module[\"removeRunDependency\"]=removeRunDependency;Module[\"dependenciesFulfilled\"]=dependenciesFulfilled;Module[\"spawnThread\"]=spawnThread;Module[\"_exit\"]=_exit;Module[\"exitJS\"]=exitJS;Module[\"_proc_exit\"]=_proc_exit;Module[\"keepRuntimeAlive\"]=keepRuntimeAlive;Module[\"runtimeKeepaliveCounter\"]=runtimeKeepaliveCounter;Module[\"proxyToMainThread\"]=proxyToMainThread;Module[\"stackSave\"]=stackSave;Module[\"stackRestore\"]=stackRestore;Module[\"stackAlloc\"]=stackAlloc;Module[\"exitOnMainThread\"]=exitOnMainThread;Module[\"addOnPostRun\"]=addOnPostRun;Module[\"onPostRuns\"]=onPostRuns;Module[\"establishStackSpace\"]=establishStackSpace;Module[\"getValue\"]=getValue;Module[\"invokeEntryPoint\"]=invokeEntryPoint;Module[\"getWasmTableEntry\"]=getWasmTableEntry;Module[\"wasmTableMirror\"]=wasmTableMirror;Module[\"noExitRuntime\"]=noExitRuntime;Module[\"registerTLSInit\"]=registerTLSInit;Module[\"setValue\"]=setValue;Module[\"wasmMemory\"]=wasmMemory;Module[\"___assert_fail\"]=___assert_fail;Module[\"bigintToI53Checked\"]=bigintToI53Checked;Module[\"INT53_MAX\"]=INT53_MAX;Module[\"INT53_MIN\"]=INT53_MIN;Module[\"UTF8ToString\"]=UTF8ToString;Module[\"UTF8ArrayToString\"]=UTF8ArrayToString;Module[\"UTF8Decoder\"]=UTF8Decoder;Module[\"findStringEnd\"]=findStringEnd;Module[\"___pthread_create_js\"]=___pthread_create_js;Module[\"pthreadCreateProxied\"]=pthreadCreateProxied;Module[\"_emscripten_has_threading_support\"]=_emscripten_has_threading_support;Module[\"___syscall_fcntl64\"]=___syscall_fcntl64;Module[\"syscallGetVarargP\"]=syscallGetVarargP;Module[\"syscallGetVarargI\"]=syscallGetVarargI;Module[\"SYSCALLS\"]=SYSCALLS;Module[\"PATH\"]=PATH;Module[\"FS\"]=FS;Module[\"randomFill\"]=randomFill;Module[\"initRandomFill\"]=initRandomFill;Module[\"PATH_FS\"]=PATH_FS;Module[\"TTY\"]=TTY;Module[\"FS_stdin_getChar\"]=FS_stdin_getChar;Module[\"FS_stdin_getChar_buffer\"]=FS_stdin_getChar_buffer;Module[\"intArrayFromString\"]=intArrayFromString;Module[\"lengthBytesUTF8\"]=lengthBytesUTF8;Module[\"stringToUTF8Array\"]=stringToUTF8Array;Module[\"MEMFS\"]=MEMFS;Module[\"mmapAlloc\"]=mmapAlloc;Module[\"zeroMemory\"]=zeroMemory;Module[\"alignMemory\"]=alignMemory;Module[\"FS_modeStringToFlags\"]=FS_modeStringToFlags;Module[\"FS_getMode\"]=FS_getMode;Module[\"FS_createPreloadedFile\"]=FS_createPreloadedFile;Module[\"FS_preloadFile\"]=FS_preloadFile;Module[\"asyncLoad\"]=asyncLoad;Module[\"FS_createDataFile\"]=FS_createDataFile;Module[\"getUniqueRunDependency\"]=getUniqueRunDependency;Module[\"FS_handledByPreloadPlugin\"]=FS_handledByPreloadPlugin;Module[\"preloadPlugins\"]=preloadPlugins;Module[\"___syscall_fstat64\"]=___syscall_fstat64;Module[\"___syscall_getcwd\"]=___syscall_getcwd;Module[\"stringToUTF8\"]=stringToUTF8;Module[\"___syscall_getdents64\"]=___syscall_getdents64;Module[\"___syscall_ioctl\"]=___syscall_ioctl;Module[\"___syscall_lstat64\"]=___syscall_lstat64;Module[\"___syscall_newfstatat\"]=___syscall_newfstatat;Module[\"___syscall_openat\"]=___syscall_openat;Module[\"___syscall_stat64\"]=___syscall_stat64;Module[\"__abort_js\"]=__abort_js;Module[\"__emscripten_init_main_thread_js\"]=__emscripten_init_main_thread_js;Module[\"__emscripten_notify_mailbox_postmessage\"]=__emscripten_notify_mailbox_postmessage;Module[\"checkMailbox\"]=checkMailbox;Module[\"callUserCallback\"]=callUserCallback;Module[\"handleException\"]=handleException;Module[\"maybeExit\"]=maybeExit;Module[\"__emscripten_thread_mailbox_await\"]=__emscripten_thread_mailbox_await;Module[\"__emscripten_receive_on_main_thread_js\"]=__emscripten_receive_on_main_thread_js;Module[\"proxiedJSCallArgs\"]=proxiedJSCallArgs;Module[\"__emscripten_runtime_keepalive_clear\"]=__emscripten_runtime_keepalive_clear;Module[\"__emscripten_thread_cleanup\"]=__emscripten_thread_cleanup;Module[\"__emscripten_thread_set_strongref\"]=__emscripten_thread_set_strongref;Module[\"__localtime_js\"]=__localtime_js;Module[\"ydayFromDate\"]=ydayFromDate;Module[\"isLeapYear\"]=isLeapYear;Module[\"MONTH_DAYS_LEAP_CUMULATIVE\"]=MONTH_DAYS_LEAP_CUMULATIVE;Module[\"MONTH_DAYS_REGULAR_CUMULATIVE\"]=MONTH_DAYS_REGULAR_CUMULATIVE;Module[\"__mmap_js\"]=__mmap_js;Module[\"__munmap_js\"]=__munmap_js;Module[\"__setitimer_js\"]=__setitimer_js;Module[\"timers\"]=timers;Module[\"_emscripten_get_now\"]=_emscripten_get_now;Module[\"__tzset_js\"]=__tzset_js;Module[\"_clock_time_get\"]=_clock_time_get;Module[\"_emscripten_date_now\"]=_emscripten_date_now;Module[\"nowIsMonotonic\"]=nowIsMonotonic;Module[\"checkWasiClock\"]=checkWasiClock;Module[\"_emscripten_check_blocking_allowed\"]=_emscripten_check_blocking_allowed;Module[\"_emscripten_exit_with_live_runtime\"]=_emscripten_exit_with_live_runtime;Module[\"runtimeKeepalivePush\"]=runtimeKeepalivePush;Module[\"_emscripten_get_heap_max\"]=_emscripten_get_heap_max;Module[\"getHeapMax\"]=getHeapMax;Module[\"_emscripten_has_asyncify\"]=_emscripten_has_asyncify;Module[\"_emscripten_num_logical_cores\"]=_emscripten_num_logical_cores;Module[\"_emscripten_resize_heap\"]=_emscripten_resize_heap;Module[\"growMemory\"]=growMemory;Module[\"_emwgpuAdapterRequestDevice\"]=_emwgpuAdapterRequestDevice;Module[\"emwgpuStringToInt_DeviceLostReason\"]=emwgpuStringToInt_DeviceLostReason;Module[\"WebGPU\"]=WebGPU;Module[\"stringToUTF8OnStack\"]=stringToUTF8OnStack;Module[\"writeI53ToI64\"]=writeI53ToI64;Module[\"stringToNewUTF8\"]=stringToNewUTF8;Module[\"readI53FromI64\"]=readI53FromI64;Module[\"runtimeKeepalivePop\"]=runtimeKeepalivePop;Module[\"_emwgpuBufferDestroy\"]=_emwgpuBufferDestroy;Module[\"_emwgpuBufferGetConstMappedRange\"]=_emwgpuBufferGetConstMappedRange;Module[\"warnOnce\"]=warnOnce;Module[\"_emwgpuBufferMapAsync\"]=_emwgpuBufferMapAsync;Module[\"_emwgpuBufferUnmap\"]=_emwgpuBufferUnmap;Module[\"_emwgpuDelete\"]=_emwgpuDelete;Module[\"_emwgpuDeviceCreateBuffer\"]=_emwgpuDeviceCreateBuffer;Module[\"_emwgpuDeviceCreateShaderModule\"]=_emwgpuDeviceCreateShaderModule;Module[\"_emwgpuDeviceDestroy\"]=_emwgpuDeviceDestroy;Module[\"_emwgpuInstanceRequestAdapter\"]=_emwgpuInstanceRequestAdapter;Module[\"_emwgpuQueueOnSubmittedWorkDone\"]=_emwgpuQueueOnSubmittedWorkDone;Module[\"_emwgpuWaitAny\"]=_emwgpuWaitAny;Module[\"_environ_get\"]=_environ_get;Module[\"getEnvStrings\"]=getEnvStrings;Module[\"ENV\"]=ENV;Module[\"getExecutableName\"]=getExecutableName;Module[\"_environ_sizes_get\"]=_environ_sizes_get;Module[\"_fd_close\"]=_fd_close;Module[\"_fd_read\"]=_fd_read;Module[\"doReadv\"]=doReadv;Module[\"_fd_seek\"]=_fd_seek;Module[\"_fd_write\"]=_fd_write;Module[\"doWritev\"]=doWritev;Module[\"_random_get\"]=_random_get;Module[\"_wgpuAdapterGetFeatures\"]=_wgpuAdapterGetFeatures;Module[\"emwgpuStringToInt_FeatureName\"]=emwgpuStringToInt_FeatureName;Module[\"_wgpuAdapterGetInfo\"]=_wgpuAdapterGetInfo;Module[\"_wgpuAdapterGetLimits\"]=_wgpuAdapterGetLimits;Module[\"_wgpuAdapterHasFeature\"]=_wgpuAdapterHasFeature;Module[\"_wgpuBufferGetSize\"]=_wgpuBufferGetSize;Module[\"_wgpuCommandEncoderBeginComputePass\"]=_wgpuCommandEncoderBeginComputePass;Module[\"_wgpuCommandEncoderCopyBufferToBuffer\"]=_wgpuCommandEncoderCopyBufferToBuffer;Module[\"_wgpuCommandEncoderFinish\"]=_wgpuCommandEncoderFinish;Module[\"_wgpuComputePassEncoderDispatchWorkgroups\"]=_wgpuComputePassEncoderDispatchWorkgroups;Module[\"_wgpuComputePassEncoderEnd\"]=_wgpuComputePassEncoderEnd;Module[\"_wgpuComputePassEncoderSetBindGroup\"]=_wgpuComputePassEncoderSetBindGroup;Module[\"_wgpuComputePassEncoderSetPipeline\"]=_wgpuComputePassEncoderSetPipeline;Module[\"_wgpuComputePipelineGetBindGroupLayout\"]=_wgpuComputePipelineGetBindGroupLayout;Module[\"_wgpuDeviceCreateBindGroup\"]=_wgpuDeviceCreateBindGroup;Module[\"_wgpuDeviceCreateCommandEncoder\"]=_wgpuDeviceCreateCommandEncoder;Module[\"_wgpuDeviceCreateComputePipeline\"]=_wgpuDeviceCreateComputePipeline;Module[\"_wgpuQueueSubmit\"]=_wgpuQueueSubmit;Module[\"_wgpuQueueWriteBuffer\"]=_wgpuQueueWriteBuffer;Module[\"Asyncify\"]=Asyncify;Module[\"runAndAbortIfError\"]=runAndAbortIfError;Module[\"ccall\"]=ccall;Module[\"getCFunc\"]=getCFunc;Module[\"writeArrayToMemory\"]=writeArrayToMemory;Module[\"cwrap\"]=cwrap;Module[\"FS_createPath\"]=FS_createPath;Module[\"FS_unlink\"]=FS_unlink;Module[\"FS_createLazyFile\"]=FS_createLazyFile;Module[\"FS_createDevice\"]=FS_createDevice;var proxiedFunctionTable=[_proc_exit,exitOnMainThread,pthreadCreateProxied,___syscall_fcntl64,___syscall_fstat64,___syscall_getcwd,___syscall_getdents64,___syscall_ioctl,___syscall_lstat64,___syscall_newfstatat,___syscall_openat,___syscall_stat64,__mmap_js,__munmap_js,__setitimer_js,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function __asyncjs__js_file_read(path_ptr,offset,req_size,out_ptr){return Asyncify.handleAsync(async()=>await _wllama_js_file_read(UTF8ToString(Number(path_ptr)),Number(offset),Number(req_size),Number(out_ptr)))}__asyncjs__js_file_read.sig=\"jjjjj\";var _malloc,_free,_wllama_malloc,_wllama_start,_wllama_action,_wllama_exit,_wllama_debug,_main,_emwgpuCreateBindGroup,_emwgpuCreateBindGroupLayout,_emwgpuCreateCommandBuffer,_emwgpuCreateCommandEncoder,_emwgpuCreateComputePassEncoder,_emwgpuCreateComputePipeline,_emwgpuCreateExternalTexture,_emwgpuCreatePipelineLayout,_emwgpuCreateQuerySet,_emwgpuCreateRenderBundle,_emwgpuCreateRenderBundleEncoder,_emwgpuCreateRenderPassEncoder,_emwgpuCreateRenderPipeline,_emwgpuCreateSampler,_emwgpuCreateSurface,_emwgpuCreateTexture,_emwgpuCreateTextureView,_emwgpuCreateAdapter,_emwgpuCreateBuffer,_emwgpuCreateDevice,_emwgpuCreateQueue,_emwgpuCreateShaderModule,_emwgpuOnCompilationInfoCompleted,_emwgpuOnCreateComputePipelineCompleted,_emwgpuOnCreateRenderPipelineCompleted,_emwgpuOnDeviceLostCompleted,_emwgpuOnMapAsyncCompleted,_emwgpuOnPopErrorScopeCompleted,_emwgpuOnRequestAdapterCompleted,_emwgpuOnRequestDeviceCompleted,_emwgpuOnWorkDoneCompleted,_emwgpuOnUncapturedError,__emscripten_tls_init,_pthread_self,_emscripten_builtin_memalign,__emscripten_run_callback_on_thread,__emscripten_thread_init,__emscripten_thread_crashed,__emscripten_run_js_on_main_thread,__emscripten_thread_free_data,__emscripten_thread_exit,__emscripten_timeout,__emscripten_check_mailbox,_memalign,___trap,_emscripten_stack_set_limits,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,__indirect_function_table,wasmTable;function assignWasmExports(wasmExports){_malloc=Module[\"_malloc\"]=wasmExports[\"malloc\"];_free=Module[\"_free\"]=wasmExports[\"free\"];_wllama_malloc=Module[\"_wllama_malloc\"]=wasmExports[\"wllama_malloc\"];_wllama_start=Module[\"_wllama_start\"]=wasmExports[\"wllama_start\"];_wllama_action=Module[\"_wllama_action\"]=wasmExports[\"wllama_action\"];_wllama_exit=Module[\"_wllama_exit\"]=wasmExports[\"wllama_exit\"];_wllama_debug=Module[\"_wllama_debug\"]=wasmExports[\"wllama_debug\"];_main=Module[\"_main\"]=wasmExports[\"main\"];_emwgpuCreateBindGroup=Module[\"_emwgpuCreateBindGroup\"]=wasmExports[\"emwgpuCreateBindGroup\"];_emwgpuCreateBindGroupLayout=Module[\"_emwgpuCreateBindGroupLayout\"]=wasmExports[\"emwgpuCreateBindGroupLayout\"];_emwgpuCreateCommandBuffer=Module[\"_emwgpuCreateCommandBuffer\"]=wasmExports[\"emwgpuCreateCommandBuffer\"];_emwgpuCreateCommandEncoder=Module[\"_emwgpuCreateCommandEncoder\"]=wasmExports[\"emwgpuCreateCommandEncoder\"];_emwgpuCreateComputePassEncoder=Module[\"_emwgpuCreateComputePassEncoder\"]=wasmExports[\"emwgpuCreateComputePassEncoder\"];_emwgpuCreateComputePipeline=Module[\"_emwgpuCreateComputePipeline\"]=wasmExports[\"emwgpuCreateComputePipeline\"];_emwgpuCreateExternalTexture=Module[\"_emwgpuCreateExternalTexture\"]=wasmExports[\"emwgpuCreateExternalTexture\"];_emwgpuCreatePipelineLayout=Module[\"_emwgpuCreatePipelineLayout\"]=wasmExports[\"emwgpuCreatePipelineLayout\"];_emwgpuCreateQuerySet=Module[\"_emwgpuCreateQuerySet\"]=wasmExports[\"emwgpuCreateQuerySet\"];_emwgpuCreateRenderBundle=Module[\"_emwgpuCreateRenderBundle\"]=wasmExports[\"emwgpuCreateRenderBundle\"];_emwgpuCreateRenderBundleEncoder=Module[\"_emwgpuCreateRenderBundleEncoder\"]=wasmExports[\"emwgpuCreateRenderBundleEncoder\"];_emwgpuCreateRenderPassEncoder=Module[\"_emwgpuCreateRenderPassEncoder\"]=wasmExports[\"emwgpuCreateRenderPassEncoder\"];_emwgpuCreateRenderPipeline=Module[\"_emwgpuCreateRenderPipeline\"]=wasmExports[\"emwgpuCreateRenderPipeline\"];_emwgpuCreateSampler=Module[\"_emwgpuCreateSampler\"]=wasmExports[\"emwgpuCreateSampler\"];_emwgpuCreateSurface=Module[\"_emwgpuCreateSurface\"]=wasmExports[\"emwgpuCreateSurface\"];_emwgpuCreateTexture=Module[\"_emwgpuCreateTexture\"]=wasmExports[\"emwgpuCreateTexture\"];_emwgpuCreateTextureView=Module[\"_emwgpuCreateTextureView\"]=wasmExports[\"emwgpuCreateTextureView\"];_emwgpuCreateAdapter=Module[\"_emwgpuCreateAdapter\"]=wasmExports[\"emwgpuCreateAdapter\"];_emwgpuCreateBuffer=Module[\"_emwgpuCreateBuffer\"]=wasmExports[\"emwgpuCreateBuffer\"];_emwgpuCreateDevice=Module[\"_emwgpuCreateDevice\"]=wasmExports[\"emwgpuCreateDevice\"];_emwgpuCreateQueue=Module[\"_emwgpuCreateQueue\"]=wasmExports[\"emwgpuCreateQueue\"];_emwgpuCreateShaderModule=Module[\"_emwgpuCreateShaderModule\"]=wasmExports[\"emwgpuCreateShaderModule\"];_emwgpuOnCompilationInfoCompleted=Module[\"_emwgpuOnCompilationInfoCompleted\"]=wasmExports[\"emwgpuOnCompilationInfoCompleted\"];_emwgpuOnCreateComputePipelineCompleted=Module[\"_emwgpuOnCreateComputePipelineCompleted\"]=wasmExports[\"emwgpuOnCreateComputePipelineCompleted\"];_emwgpuOnCreateRenderPipelineCompleted=Module[\"_emwgpuOnCreateRenderPipelineCompleted\"]=wasmExports[\"emwgpuOnCreateRenderPipelineCompleted\"];_emwgpuOnDeviceLostCompleted=Module[\"_emwgpuOnDeviceLostCompleted\"]=wasmExports[\"emwgpuOnDeviceLostCompleted\"];_emwgpuOnMapAsyncCompleted=Module[\"_emwgpuOnMapAsyncCompleted\"]=wasmExports[\"emwgpuOnMapAsyncCompleted\"];_emwgpuOnPopErrorScopeCompleted=Module[\"_emwgpuOnPopErrorScopeCompleted\"]=wasmExports[\"emwgpuOnPopErrorScopeCompleted\"];_emwgpuOnRequestAdapterCompleted=Module[\"_emwgpuOnRequestAdapterCompleted\"]=wasmExports[\"emwgpuOnRequestAdapterCompleted\"];_emwgpuOnRequestDeviceCompleted=Module[\"_emwgpuOnRequestDeviceCompleted\"]=wasmExports[\"emwgpuOnRequestDeviceCompleted\"];_emwgpuOnWorkDoneCompleted=Module[\"_emwgpuOnWorkDoneCompleted\"]=wasmExports[\"emwgpuOnWorkDoneCompleted\"];_emwgpuOnUncapturedError=Module[\"_emwgpuOnUncapturedError\"]=wasmExports[\"emwgpuOnUncapturedError\"];__emscripten_tls_init=Module[\"__emscripten_tls_init\"]=wasmExports[\"_emscripten_tls_init\"];_pthread_self=Module[\"_pthread_self\"]=wasmExports[\"pthread_self\"];_emscripten_builtin_memalign=Module[\"_emscripten_builtin_memalign\"]=wasmExports[\"emscripten_builtin_memalign\"];__emscripten_run_callback_on_thread=Module[\"__emscripten_run_callback_on_thread\"]=wasmExports[\"_emscripten_run_callback_on_thread\"];__emscripten_thread_init=Module[\"__emscripten_thread_init\"]=wasmExports[\"_emscripten_thread_init\"];__emscripten_thread_crashed=Module[\"__emscripten_thread_crashed\"]=wasmExports[\"_emscripten_thread_crashed\"];__emscripten_run_js_on_main_thread=Module[\"__emscripten_run_js_on_main_thread\"]=wasmExports[\"_emscripten_run_js_on_main_thread\"];__emscripten_thread_free_data=Module[\"__emscripten_thread_free_data\"]=wasmExports[\"_emscripten_thread_free_data\"];__emscripten_thread_exit=Module[\"__emscripten_thread_exit\"]=wasmExports[\"_emscripten_thread_exit\"];__emscripten_timeout=Module[\"__emscripten_timeout\"]=wasmExports[\"_emscripten_timeout\"];__emscripten_check_mailbox=Module[\"__emscripten_check_mailbox\"]=wasmExports[\"_emscripten_check_mailbox\"];_memalign=Module[\"_memalign\"]=wasmExports[\"memalign\"];___trap=Module[\"___trap\"]=wasmExports[\"__trap\"];_emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=wasmExports[\"emscripten_stack_set_limits\"];__emscripten_stack_restore=Module[\"__emscripten_stack_restore\"]=wasmExports[\"_emscripten_stack_restore\"];__emscripten_stack_alloc=Module[\"__emscripten_stack_alloc\"]=wasmExports[\"_emscripten_stack_alloc\"];_emscripten_stack_get_current=Module[\"_emscripten_stack_get_current\"]=wasmExports[\"emscripten_stack_get_current\"];__indirect_function_table=Module[\"__indirect_function_table\"]=wasmTable=wasmExports[\"__indirect_function_table\"]}var wasmImports;function assignWasmImports(){wasmImports={__assert_fail:___assert_fail,__asyncjs__js_file_read,__pthread_create_js:___pthread_create_js,__syscall_fcntl64:___syscall_fcntl64,__syscall_getcwd:___syscall_getcwd,__syscall_getdents64:___syscall_getdents64,__syscall_ioctl:___syscall_ioctl,__syscall_openat:___syscall_openat,__syscall_stat64:___syscall_stat64,_abort_js:__abort_js,_emscripten_init_main_thread_js:__emscripten_init_main_thread_js,_emscripten_notify_mailbox_postmessage:__emscripten_notify_mailbox_postmessage,_emscripten_receive_on_main_thread_js:__emscripten_receive_on_main_thread_js,_emscripten_runtime_keepalive_clear:__emscripten_runtime_keepalive_clear,_emscripten_thread_cleanup:__emscripten_thread_cleanup,_emscripten_thread_mailbox_await:__emscripten_thread_mailbox_await,_emscripten_thread_set_strongref:__emscripten_thread_set_strongref,_localtime_js:__localtime_js,_mmap_js:__mmap_js,_munmap_js:__munmap_js,_setitimer_js:__setitimer_js,_tzset_js:__tzset_js,clock_time_get:_clock_time_get,emscripten_check_blocking_allowed:_emscripten_check_blocking_allowed,emscripten_date_now:_emscripten_date_now,emscripten_exit_with_live_runtime:_emscripten_exit_with_live_runtime,emscripten_get_heap_max:_emscripten_get_heap_max,emscripten_get_now:_emscripten_get_now,emscripten_has_asyncify:_emscripten_has_asyncify,emscripten_num_logical_cores:_emscripten_num_logical_cores,emscripten_resize_heap:_emscripten_resize_heap,emwgpuAdapterRequestDevice:_emwgpuAdapterRequestDevice,emwgpuBufferDestroy:_emwgpuBufferDestroy,emwgpuBufferGetConstMappedRange:_emwgpuBufferGetConstMappedRange,emwgpuBufferMapAsync:_emwgpuBufferMapAsync,emwgpuBufferUnmap:_emwgpuBufferUnmap,emwgpuDelete:_emwgpuDelete,emwgpuDeviceCreateBuffer:_emwgpuDeviceCreateBuffer,emwgpuDeviceCreateShaderModule:_emwgpuDeviceCreateShaderModule,emwgpuDeviceDestroy:_emwgpuDeviceDestroy,emwgpuInstanceRequestAdapter:_emwgpuInstanceRequestAdapter,emwgpuQueueOnSubmittedWorkDone:_emwgpuQueueOnSubmittedWorkDone,emwgpuWaitAny:_emwgpuWaitAny,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,exit:_exit,fd_close:_fd_close,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,memory:wasmMemory,proc_exit:_proc_exit,random_get:_random_get,wgpuAdapterGetFeatures:_wgpuAdapterGetFeatures,wgpuAdapterGetInfo:_wgpuAdapterGetInfo,wgpuAdapterGetLimits:_wgpuAdapterGetLimits,wgpuAdapterHasFeature:_wgpuAdapterHasFeature,wgpuBufferGetSize:_wgpuBufferGetSize,wgpuCommandEncoderBeginComputePass:_wgpuCommandEncoderBeginComputePass,wgpuCommandEncoderCopyBufferToBuffer:_wgpuCommandEncoderCopyBufferToBuffer,wgpuCommandEncoderFinish:_wgpuCommandEncoderFinish,wgpuComputePassEncoderDispatchWorkgroups:_wgpuComputePassEncoderDispatchWorkgroups,wgpuComputePassEncoderEnd:_wgpuComputePassEncoderEnd,wgpuComputePassEncoderSetBindGroup:_wgpuComputePassEncoderSetBindGroup,wgpuComputePassEncoderSetPipeline:_wgpuComputePassEncoderSetPipeline,wgpuComputePipelineGetBindGroupLayout:_wgpuComputePipelineGetBindGroupLayout,wgpuDeviceCreateBindGroup:_wgpuDeviceCreateBindGroup,wgpuDeviceCreateCommandEncoder:_wgpuDeviceCreateCommandEncoder,wgpuDeviceCreateComputePipeline:_wgpuDeviceCreateComputePipeline,wgpuQueueSubmit:_wgpuQueueSubmit,wgpuQueueWriteBuffer:_wgpuQueueWriteBuffer}}function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_pp=f=>a0=>Number(f(BigInt(a0)));var makeWrapper__p=f=>a0=>f(BigInt(a0));var makeWrapper___PP=f=>(a0,a1,a2)=>f(a0,BigInt(a1?a1:0),BigInt(a2?a2:0));var makeWrapper_p=f=>()=>Number(f());var makeWrapper_ppp=f=>(a0,a1)=>Number(f(BigInt(a0),BigInt(a1)));var makeWrapper__pp_ppp=f=>(a0,a1,a2,a3,a4,a5)=>f(BigInt(a0),BigInt(a1),a2,BigInt(a3),BigInt(a4),BigInt(a5));var makeWrapper__p_____=f=>(a0,a1,a2,a3,a4,a5)=>f(BigInt(a0),a1,a2,a3,a4,a5);var makeWrapper___p_p_=f=>(a0,a1,a2,a3,a4)=>f(a0,BigInt(a1),a2,BigInt(a3),a4);var makeWrapper__pp=f=>(a0,a1)=>f(BigInt(a0),BigInt(a1));wasmExports[\"malloc\"]=makeWrapper_pp(wasmExports[\"malloc\"]);wasmExports[\"free\"]=makeWrapper__p(wasmExports[\"free\"]);wasmExports[\"main\"]=makeWrapper___PP(wasmExports[\"main\"]);wasmExports[\"pthread_self\"]=makeWrapper_p(wasmExports[\"pthread_self\"]);wasmExports[\"emscripten_builtin_memalign\"]=makeWrapper_ppp(wasmExports[\"emscripten_builtin_memalign\"]);wasmExports[\"_emscripten_run_callback_on_thread\"]=makeWrapper__pp_ppp(wasmExports[\"_emscripten_run_callback_on_thread\"]);wasmExports[\"_emscripten_thread_init\"]=makeWrapper__p_____(wasmExports[\"_emscripten_thread_init\"]);wasmExports[\"_emscripten_run_js_on_main_thread\"]=makeWrapper___p_p_(wasmExports[\"_emscripten_run_js_on_main_thread\"]);wasmExports[\"_emscripten_thread_free_data\"]=makeWrapper__p(wasmExports[\"_emscripten_thread_free_data\"]);wasmExports[\"_emscripten_thread_exit\"]=makeWrapper__p(wasmExports[\"_emscripten_thread_exit\"]);wasmExports[\"memalign\"]=makeWrapper_ppp(wasmExports[\"memalign\"]);wasmExports[\"emscripten_stack_set_limits\"]=makeWrapper__pp(wasmExports[\"emscripten_stack_set_limits\"]);wasmExports[\"_emscripten_stack_restore\"]=makeWrapper__p(wasmExports[\"_emscripten_stack_restore\"]);wasmExports[\"_emscripten_stack_alloc\"]=makeWrapper_pp(wasmExports[\"_emscripten_stack_alloc\"]);wasmExports[\"emscripten_stack_get_current\"]=makeWrapper_p(wasmExports[\"emscripten_stack_get_current\"]);return wasmExports}async function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,BigInt(argv));ret=await ret;exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){dependenciesFulfilled=run;return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}async function doRun(){Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();Module[\"onRuntimeInitialized\"]?.();var noInitialRun=Module[\"noInitialRun\"]||false;if(!noInitialRun)await callMain();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(()=>{setTimeout(()=>Module[\"setStatus\"](\"\"),1);doRun()},1)}else{doRun()}}var wasmExports;if(!ENVIRONMENT_IS_PTHREAD){createWasm();run()}\n"; +export const WLLAMA_EMSCRIPTEN_CODE = "var Module=typeof Module!=\"undefined\"?Module:{};var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!=\"renderer\";var ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&self.name?.startsWith(\"em-pthread\");if(ENVIRONMENT_IS_NODE){var worker_threads=require(\"worker_threads\");global.Worker=worker_threads.Worker;ENVIRONMENT_IS_WORKER=!worker_threads.isMainThread;ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&worker_threads[\"workerData\"]==\"em-pthread\"}var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=globalThis.document?.currentScript?.src;if(typeof __filename!=\"undefined\"){_scriptName=__filename}else if(ENVIRONMENT_IS_WORKER){_scriptName=self.location.href}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require(\"fs\");scriptDirectory=__dirname+\"/\";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:\"utf8\");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\\\/g,\"/\")}arguments_=process.argv.slice(2);if(typeof module!=\"undefined\"){module[\"exports\"]=Module}quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(\".\",_scriptName).href}catch{}if(!ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:\"same-origin\"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+\" : \"+response.url)}}}else{}var defaultPrint=console.log.bind(console);var defaultPrintErr=console.error.bind(console);if(ENVIRONMENT_IS_NODE){var utils=require(\"util\");var stringify=a=>typeof a==\"object\"?utils.inspect(a):a;defaultPrint=(...args)=>fs.writeSync(1,args.map(stringify).join(\" \")+\"\\n\");defaultPrintErr=(...args)=>fs.writeSync(2,args.map(stringify).join(\" \")+\"\\n\")}var out=defaultPrint;var err=defaultPrintErr;var wasmBinary;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var isFileURI=filename=>filename.startsWith(\"file://\");function growMemViews(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}}if(ENVIRONMENT_IS_NODE&&ENVIRONMENT_IS_PTHREAD){var parentPort=worker_threads[\"parentPort\"];parentPort.on(\"message\",msg=>global.onmessage?.({data:msg}));Object.assign(globalThis,{self:global,postMessage:msg=>parentPort[\"postMessage\"](msg)});process.on(\"uncaughtException\",err=>{postMessage({cmd:\"uncaughtException\",error:err});process.exit(1)})}var startWorker;if(ENVIRONMENT_IS_PTHREAD){var initializedJS=false;self.onunhandledrejection=e=>{throw e.reason||e};async function handleMessage(e){try{var msgData=e[\"data\"];var cmd=msgData.cmd;if(cmd===\"load\"){let messageQueue=[];self.onmessage=e=>messageQueue.push(e);startWorker=()=>{postMessage({cmd:\"loaded\"});for(let msg of messageQueue){handleMessage(msg)}self.onmessage=handleMessage};for(const handler of msgData.handlers){if(!Module[handler]||Module[handler].proxy){Module[handler]=(...args)=>{postMessage({cmd:\"callHandler\",handler,args})};if(handler==\"print\")out=Module[handler];if(handler==\"printErr\")err=Module[handler]}}wasmMemory=msgData.wasmMemory;updateMemoryViews();wasmModule=msgData.wasmModule;createWasm();run()}else if(cmd===\"run\"){establishStackSpace(msgData.pthread_ptr);__emscripten_thread_init(msgData.pthread_ptr,0,0,1,0,0);PThread.threadInitTLS();__emscripten_thread_mailbox_await(msgData.pthread_ptr);if(!initializedJS){initializedJS=true}try{await invokeEntryPoint(msgData.start_routine,msgData.arg)}catch(ex){if(ex!=\"unwind\"){throw ex}}}else if(msgData.target===\"setimmediate\"){}else if(cmd===\"checkMailbox\"){if(initializedJS){checkMailbox()}}else if(cmd){err(`worker: received unknown command ${cmd}`);err(msgData)}}catch(ex){__emscripten_thread_crashed();throw ex}}self.onmessage=handleMessage}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function initMemory(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||134217728;wasmMemory=new WebAssembly.Memory({initial:BigInt(INITIAL_MEMORY/65536),maximum:65536n,shared:true,address:\"i64\"})}updateMemoryViews()}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return startWorker();if(!Module[\"noFSInit\"]&&!FS.initialized)FS.init();TTY.init();wasmExports[\"__wasm_call_ctors\"]();FS.ignorePermissions=false}function preMain(){}function postRun(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module[\"onAbort\"]?.(what);what=\"Aborted(\"+what+\")\";err(what);ABORT=true;what+=\". Build with -sASSERTIONS for more info.\";if(runtimeInitialized){___trap()}var e=new WebAssembly.RuntimeError(what);throw e}var wasmBinaryFile;function findWasmBinary(){return locateFile(\"wllama.wasm\")}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:\"same-origin\"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err(\"falling back to ArrayBuffer instantiation\")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){assignWasmImports();if(!wasmImports.__instrumented){wasmImports.__instrumented=true;Asyncify.instrumentWasmImports(wasmImports)}var imports={env:wasmImports,wasi_snapshot_preview1:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmExports=applySignatureConversions(wasmExports);registerTLSInit(wasmExports[\"_emscripten_tls_init\"]);assignWasmExports(wasmExports);wasmModule=module;removeRunDependency(\"wasm-instantiate\");return wasmExports}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){return receiveInstance(result[\"instance\"],result[\"module\"])}var info=getWasmImports();if(Module[\"instantiateWasm\"]){return new Promise((resolve,reject)=>{Module[\"instantiateWasm\"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}if(ENVIRONMENT_IS_PTHREAD){var instance=new WebAssembly.Instance(wasmModule,getWasmImports());return receiveInstance(instance,wasmModule)}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name=\"ExitStatus\";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var terminateWorker=worker=>{worker.terminate();worker.onmessage=e=>{}};var cleanupThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];PThread.returnWorkerToPool(worker)};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module[\"monitorRunDependencies\"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}};var addRunDependency=id=>{runDependencies++;Module[\"monitorRunDependencies\"]?.(runDependencies)};var spawnThread=threadParams=>{var worker=PThread.getNewWorker();if(!worker){return 6}PThread.runningWorkers.push(worker);PThread.pthreads[threadParams.pthread_ptr]=worker;worker.pthread_ptr=threadParams.pthread_ptr;var msg={cmd:\"run\",start_routine:threadParams.startRoutine,arg:threadParams.arg,pthread_ptr:threadParams.pthread_ptr};if(ENVIRONMENT_IS_NODE){worker.unref()}worker.postMessage(msg,threadParams.transferList);return 0};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var stackSave=()=>_emscripten_stack_get_current();var stackRestore=val=>__emscripten_stack_restore(val);var stackAlloc=sz=>__emscripten_stack_alloc(sz);var proxyToMainThread=(funcIndex,emAsmAddr,sync,...callArgs)=>{var serializedNumCallArgs=callArgs.length*2;var sp=stackSave();var args=stackAlloc(serializedNumCallArgs*8);var b=args/8;for(var i=0;i{EXITSTATUS=status;if(ENVIRONMENT_IS_PTHREAD){exitOnMainThread(status);throw\"unwind\"}_proc_exit(status)};var _exit=exitJS;var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init(){if(!ENVIRONMENT_IS_PTHREAD){PThread.initMainThread()}},initMainThread(){var pthreadPoolSize=Module[\"pthreadPoolSize\"];while(pthreadPoolSize--){PThread.allocateUnusedWorker()}addOnPreRun(async()=>{var pthreadPoolReady=PThread.loadWasmModuleToAllWorkers();addRunDependency(\"loading-workers\");await pthreadPoolReady;removeRunDependency(\"loading-workers\")})},terminateAllThreads:()=>{for(var worker of PThread.runningWorkers){terminateWorker(worker)}for(var worker of PThread.unusedWorkers){terminateWorker(worker)}PThread.unusedWorkers=[];PThread.runningWorkers=[];PThread.pthreads={}},returnWorkerToPool:worker=>{var pthread_ptr=worker.pthread_ptr;delete PThread.pthreads[pthread_ptr];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);worker.pthread_ptr=0;__emscripten_thread_free_data(pthread_ptr)},threadInitTLS(){PThread.tlsInitFunctions.forEach(f=>f())},loadWasmModuleToWorker:worker=>new Promise(onFinishedLoading=>{worker.onmessage=e=>{var d=e[\"data\"];var cmd=d.cmd;if(d.targetThread&&d.targetThread!=_pthread_self()){var targetWorker=PThread.pthreads[d.targetThread];if(targetWorker){targetWorker.postMessage(d,d.transferList)}else{err(`Internal error! Worker sent a message \"${cmd}\" to target pthread ${d.targetThread}, but that thread no longer exists!`)}return}if(cmd===\"checkMailbox\"){checkMailbox()}else if(cmd===\"spawnThread\"){spawnThread(d)}else if(cmd===\"cleanupThread\"){callUserCallback(()=>cleanupThread(d.thread))}else if(cmd===\"loaded\"){worker.loaded=true;if(ENVIRONMENT_IS_NODE&&!worker.pthread_ptr){worker.unref()}onFinishedLoading(worker)}else if(d.target===\"setimmediate\"){worker.postMessage(d)}else if(cmd===\"uncaughtException\"){worker.onerror(d.error)}else if(cmd===\"callHandler\"){Module[d.handler](...d.args)}else if(cmd){err(`worker sent an unknown command ${cmd}`)}};worker.onerror=e=>{var message=\"worker sent an error!\";err(`${message} ${e.filename}:${e.lineno}: ${e.message}`);throw e};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",data=>worker.onmessage({data}));worker.on(\"error\",e=>worker.onerror(e))}var handlers=[];var knownHandlers=[\"onExit\",\"onAbort\",\"print\",\"printErr\"];for(var handler of knownHandlers){if(Module.propertyIsEnumerable(handler)){handlers.push(handler)}}worker.postMessage({cmd:\"load\",handlers,wasmMemory,wasmModule})}),async loadWasmModuleToAllWorkers(){if(ENVIRONMENT_IS_PTHREAD){return}let pthreadPoolReady=Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker));return pthreadPoolReady},allocateUnusedWorker(){var worker;var pthreadMainJs=_scriptName;if(Module[\"mainScriptUrlOrBlob\"]){pthreadMainJs=Module[\"mainScriptUrlOrBlob\"];if(typeof pthreadMainJs!=\"string\"){pthreadMainJs=URL.createObjectURL(pthreadMainJs)}}worker=new Worker(pthreadMainJs,{workerData:\"em-pthread\",name:\"em-pthread\"});PThread.unusedWorkers.push(worker)},getNewWorker(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);function establishStackSpace(pthread_ptr){var stackHigh=Number((growMemViews(),HEAPU64)[(pthread_ptr+88)/8]);var stackSize=Number((growMemViews(),HEAPU64)[(pthread_ptr+96)/8]);var stackLow=stackHigh-stackSize;_emscripten_stack_set_limits(stackHigh,stackLow);stackRestore(stackHigh)}var wasmTableMirror=[];var getWasmTableEntry=funcPtr=>{funcPtr=Number(funcPtr);var func=wasmTableMirror[funcPtr];if(!func){wasmTableMirror[funcPtr]=func=wasmTable.get(BigInt(funcPtr));if(Asyncify.isAsyncExport(func)){wasmTableMirror[funcPtr]=func=Asyncify.makeAsyncFunction(func)}}return func};var invokeEntryPoint=async(ptr,arg)=>{runtimeKeepaliveCounter=0;noExitRuntime=0;var result=(a1=>WebAssembly.promising(getWasmTableEntry(ptr)).call(null,BigInt(a1)))(arg);function finish(result){if(keepRuntimeAlive()){EXITSTATUS=result;return}__emscripten_thread_exit(result)}result=await result;finish(result)};invokeEntryPoint.isAsync=true;var noExitRuntime=true;var registerTLSInit=tlsInitFunc=>PThread.tlsInitFunctions.push(tlsInitFunc);var wasmMemory;var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>numINT53_MAX?NaN:Number(num);var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.buffer instanceof ArrayBuffer?heapOrArray.subarray(idx,endPtr):heapOrArray.slice(idx,endPtr))}var str=\"\";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString((growMemViews(),HEAPU8),ptr,maxBytesToRead,ignoreNul):\"\";function pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(2,0,1,pthread_ptr,attr,startRoutine,arg);return ___pthread_create_js(pthread_ptr,attr,startRoutine,arg)}var _emscripten_has_threading_support=()=>!!globalThis.SharedArrayBuffer;function ___pthread_create_js(pthread_ptr,attr,startRoutine,arg){pthread_ptr=bigintToI53Checked(pthread_ptr);attr=bigintToI53Checked(attr);startRoutine=bigintToI53Checked(startRoutine);arg=bigintToI53Checked(arg);if(!_emscripten_has_threading_support()){return 6}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg)}if(error)return error;var threadParams={startRoutine,pthread_ptr,arg,transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}var syscallGetVarargP=()=>{var ret=Number((growMemViews(),HEAPU64)[SYSCALLS.varargs/8]);SYSCALLS.varargs+=8;return ret};var syscallGetVarargI=()=>{var ret=(growMemViews(),HEAP32)[+SYSCALLS.varargs/4];SYSCALLS.varargs+=4;return ret};var PATH={isAbs:path=>path.charAt(0)===\"/\",splitPath:filename=>{var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(p=>!!p),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\\/]+|\\/)\\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join(\"/\")),join2:(l,r)=>PATH.normalize(l+\"/\"+r)};var initRandomFill=()=>view=>view.set(crypto.getRandomValues(new Uint8Array(view.byteLength)));var randomFill=view=>{(randomFill=initRandomFill())(view)};var PATH_FS={resolve:(...args)=>{var resolvedPath=\"\",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!=\"string\"){throw new TypeError(\"Arguments to path.resolve must be strings\")}else if(!path){return\"\"}resolvedPath=path+\"/\"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(p=>!!p),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!==\"\")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split(\"/\"));var toParts=trim(to.split(\"/\"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++}}heap[outIdx]=0;return outIdx-startIdx};var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes(\"EOF\"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString(\"utf-8\")}}else if(globalThis.window?.prompt){result=window.prompt(\"Input: \");if(result!==null){result+=\"\\n\"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var zeroMemory=(ptr,size)=>(growMemViews(),HEAPU8).fill(0,ptr,ptr+size);var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(ptr)zeroMemory(ptr,size);return ptr};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,\"/\",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of[\"mode\",\"atime\",\"mtime\",\"ctime\"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){if(!MEMFS.doesNotExistError){MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack=\"\"}throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[\".\",\"..\",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var flagModes={r:0,\"r+\":2,w:512|64|1,\"w+\":512|64|2,a:1024|64|1,\"a+\":1024|64|2};var flags=flagModes[str];if(typeof flags==\"undefined\"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var getUniqueRunDependency=id=>id;var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!=\"undefined\")Browser.init();for(var plugin of preloadPlugins){if(plugin[\"canHandle\"](fullname)){return plugin[\"handle\"](byteArray,fullname)}}return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);addRunDependency(dep);try{var byteArray=url;if(typeof url==\"string\"){byteArray=await asyncLoad(url)}byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}}finally{removeRunDependency(dep)}};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name=\"ErrnoError\";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+\"/\"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split(\"/\").filter(p=>!!p);var current=FS.root;var current_path=\"/\";for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes(\"r\")&&!(node.mode&292)){return 2}else if(perms.includes(\"w\")&&!(node.mode&146)){return 2}else if(perms.includes(\"x\")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,\"wx\");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!==\"r\"||flags&(512|64)){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate==\"function\"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}for(var mount of mounts){if(mount.type.syncfs){mount.type.syncfs(mount,populate,done)}else{done(null)}}},mount(type,opts,mountpoint){var root=mountpoint===\"/\";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);for(var[hash,current]of Object.entries(FS.nameTable)){while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}}node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name===\".\"||name===\"..\"){throw new FS.ErrnoError(20)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split(\"/\");var d=\"\";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+=\"/\";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev==\"undefined\"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===\"\"){throw new FS.ErrnoError(44)}flags=typeof flags==\"string\"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path==\"object\"){node=path}else{isDirPath=path.endsWith(\"/\");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}if(Module[\"logReadFiles\"]&&!(flags&1)){if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||\"binary\";if(opts.encoding!==\"utf8\"&&opts.encoding!==\"binary\"){abort(`Invalid encoding type \"${opts.encoding}\"`)}var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding===\"utf8\"){buf=UTF8ArrayToString(buf)}FS.close(stream);return buf},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==\"string\"){data=new Uint8Array(intArrayFromString(data,true))}if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{abort(\"Unsupported data type\")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,\"x\");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir(\"/tmp\");FS.mkdir(\"/home\");FS.mkdir(\"/home/web_user\")},createDefaultDevices(){FS.mkdir(\"/dev\");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev(\"/dev/null\",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev(\"/dev/tty\",FS.makedev(5,0));FS.mkdev(\"/dev/tty1\",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice(\"/dev\",\"random\",randomByte);FS.createDevice(\"/dev\",\"urandom\",randomByte);FS.mkdir(\"/dev/shm\");FS.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories(){FS.mkdir(\"/proc\");var proc_self=FS.mkdir(\"/proc/self\");FS.mkdir(\"/proc/self/fd\");FS.mount({mount(){var node=FS.createNode(proc_self,\"fd\",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},\"/proc/self/fd\")},createStandardStreams(input,output,error){if(input){FS.createDevice(\"/dev\",\"stdin\",input)}else{FS.symlink(\"/dev/tty\",\"/dev/stdin\")}if(output){FS.createDevice(\"/dev\",\"stdout\",null,output)}else{FS.symlink(\"/dev/tty\",\"/dev/stdout\")}if(error){FS.createDevice(\"/dev\",\"stderr\",null,error)}else{FS.symlink(\"/dev/tty1\",\"/dev/stderr\")}var stdin=FS.open(\"/dev/stdin\",0);var stdout=FS.open(\"/dev/stdout\",1);var stderr=FS.open(\"/dev/stderr\",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){FS.initialized=true;input??=Module[\"stdin\"];output??=Module[\"stdout\"];error??=Module[\"stderr\"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path===\"/\"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent==\"string\"?parent:FS.getPath(parent);var parts=path.split(\"/\").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent==\"string\"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==\"string\"){var arr=new Array(data.length);for(var i=0,len=data.length;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open(\"HEAD\",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort(\"Couldn't load \"+url+\". Status: \"+xhr.status);var datalength=Number(xhr.getResponseHeader(\"Content-length\"));var header;var hasByteServing=(header=xhr.getResponseHeader(\"Accept-Ranges\"))&&header===\"bytes\";var usesGzip=(header=xhr.getResponseHeader(\"Content-Encoding\"))&&header===\"gzip\";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)abort(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)abort(\"only \"+datalength+\" bytes available! programmer error!\");var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);if(datalength!==chunkSize)xhr.setRequestHeader(\"Range\",\"bytes=\"+from+\"-\"+to);xhr.responseType=\"arraybuffer\";if(xhr.overrideMimeType){xhr.overrideMimeType(\"text/plain; charset=x-user-defined\")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort(\"Couldn't load \"+url+\". Status: \"+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||\"\",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==\"undefined\"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==\"undefined\")abort(\"doXHR failed!\");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out(\"LazyFiles on gzip forces download of the whole file when length is accessed\")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(globalThis.XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)abort(\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\");var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};for(const[key,fn]of Object.entries(node.stream_ops)){stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}}function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,(growMemViews(),HEAP8),ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+\"/\"+path},writeStat(buf,stat){(growMemViews(),HEAPU32)[buf/4]=stat.dev;(growMemViews(),HEAPU32)[(buf+4)/4]=stat.mode;(growMemViews(),HEAPU64)[(buf+8)/8]=BigInt(stat.nlink);(growMemViews(),HEAPU32)[(buf+16)/4]=stat.uid;(growMemViews(),HEAPU32)[(buf+20)/4]=stat.gid;(growMemViews(),HEAPU32)[(buf+24)/4]=stat.rdev;(growMemViews(),HEAP64)[(buf+32)/8]=BigInt(stat.size);(growMemViews(),HEAP32)[(buf+40)/4]=4096;(growMemViews(),HEAP32)[(buf+44)/4]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();(growMemViews(),HEAP64)[(buf+48)/8]=BigInt(Math.floor(atime/1e3));(growMemViews(),HEAPU64)[(buf+56)/8]=BigInt(atime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+64)/8]=BigInt(Math.floor(mtime/1e3));(growMemViews(),HEAPU64)[(buf+72)/8]=BigInt(mtime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+80)/8]=BigInt(Math.floor(ctime/1e3));(growMemViews(),HEAPU64)[(buf+88)/8]=BigInt(ctime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+96)/8]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){(growMemViews(),HEAPU32)[(buf+8)/4]=stats.bsize;(growMemViews(),HEAPU32)[(buf+72)/4]=stats.bsize;(growMemViews(),HEAP64)[(buf+16)/8]=BigInt(stats.blocks);(growMemViews(),HEAP64)[(buf+24)/8]=BigInt(stats.bfree);(growMemViews(),HEAP64)[(buf+32)/8]=BigInt(stats.bavail);(growMemViews(),HEAP64)[(buf+40)/8]=BigInt(stats.files);(growMemViews(),HEAP64)[(buf+48)/8]=BigInt(stats.ffree);(growMemViews(),HEAPU32)[(buf+56)/4]=stats.fsid;(growMemViews(),HEAPU32)[(buf+80)/4]=stats.flags;(growMemViews(),HEAPU32)[(buf+64)/4]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=(growMemViews(),HEAPU8).slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(3,0,1,fd,cmd,varargs);varargs=bigintToI53Checked(varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 5:{var arg=syscallGetVarargP();var offset=0;(growMemViews(),HEAP16)[(arg+offset)/2]=2;return 0}case 6:case 7:return 0}return-28}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(4,0,1,fd,buf);buf=bigintToI53Checked(buf);try{return SYSCALLS.writeStat(buf,FS.fstat(fd))}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,(growMemViews(),HEAPU8),outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(5,0,1,buf,size);buf=bigintToI53Checked(buf);size=bigintToI53Checked(size);try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(sizeabort(\"\");function __emscripten_init_main_thread_js(tb){tb=bigintToI53Checked(tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1,!ENVIRONMENT_IS_WEB,65536,false);PThread.threadInitTLS()}var handleException=e=>{if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)};var maybeExit=()=>{if(!keepRuntimeAlive()){try{if(ENVIRONMENT_IS_PTHREAD){if(_pthread_self())__emscripten_thread_exit(EXITSTATUS);return}_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};function __emscripten_thread_mailbox_await(pthread_ptr){pthread_ptr=bigintToI53Checked(pthread_ptr);if(Atomics.waitAsync){var wait=Atomics.waitAsync((growMemViews(),HEAP32),pthread_ptr/4,pthread_ptr);wait.value.then(checkMailbox);var waitingAsync=pthread_ptr+228;Atomics.store((growMemViews(),HEAP32),waitingAsync/4,1)}}var checkMailbox=()=>callUserCallback(()=>{var pthread_ptr=_pthread_self();if(pthread_ptr){__emscripten_thread_mailbox_await(pthread_ptr);__emscripten_check_mailbox()}});function __emscripten_notify_mailbox_postmessage(targetThread,currThreadId){targetThread=bigintToI53Checked(targetThread);currThreadId=bigintToI53Checked(currThreadId);if(targetThread==currThreadId){setTimeout(checkMailbox)}else if(ENVIRONMENT_IS_PTHREAD){postMessage({targetThread,cmd:\"checkMailbox\"})}else{var worker=PThread.pthreads[targetThread];if(!worker){return}worker.postMessage({cmd:\"checkMailbox\"})}}var proxiedJSCallArgs=[];function __emscripten_receive_on_main_thread_js(funcIndex,emAsmAddr,callingThread,numCallArgs,args){emAsmAddr=bigintToI53Checked(emAsmAddr);callingThread=bigintToI53Checked(callingThread);args=bigintToI53Checked(args);numCallArgs/=2;proxiedJSCallArgs.length=numCallArgs;var b=args/8;for(var i=0;i{noExitRuntime=false;runtimeKeepaliveCounter=0};function __emscripten_thread_cleanup(thread){thread=bigintToI53Checked(thread);if(!ENVIRONMENT_IS_PTHREAD)cleanupThread(thread);else postMessage({cmd:\"cleanupThread\",thread})}function __emscripten_thread_set_strongref(thread){thread=bigintToI53Checked(thread);if(ENVIRONMENT_IS_NODE){PThread.pthreads[thread].ref()}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time,tmPtr){time=bigintToI53Checked(time);tmPtr=bigintToI53Checked(tmPtr);var date=new Date(time*1e3);(growMemViews(),HEAP32)[tmPtr/4]=date.getSeconds();(growMemViews(),HEAP32)[(tmPtr+4)/4]=date.getMinutes();(growMemViews(),HEAP32)[(tmPtr+8)/4]=date.getHours();(growMemViews(),HEAP32)[(tmPtr+12)/4]=date.getDate();(growMemViews(),HEAP32)[(tmPtr+16)/4]=date.getMonth();(growMemViews(),HEAP32)[(tmPtr+20)/4]=date.getFullYear()-1900;(growMemViews(),HEAP32)[(tmPtr+24)/4]=date.getDay();var yday=ydayFromDate(date)|0;(growMemViews(),HEAP32)[(tmPtr+28)/4]=yday;(growMemViews(),HEAP64)[(tmPtr+40)/8]=BigInt(-(date.getTimezoneOffset()*60));var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;(growMemViews(),HEAP32)[(tmPtr+32)/4]=dst}function __mmap_js(len,prot,flags,fd,offset,allocated,addr){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(12,0,1,len,prot,flags,fd,offset,allocated,addr);len=bigintToI53Checked(len);offset=bigintToI53Checked(offset);allocated=bigintToI53Checked(allocated);addr=bigintToI53Checked(addr);try{var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;(growMemViews(),HEAP32)[allocated/4]=res.allocated;(growMemViews(),HEAPU64)[addr/8]=BigInt(ptr);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(13,0,1,addr,len,prot,flags,fd,offset);addr=bigintToI53Checked(addr);len=bigintToI53Checked(len);offset=bigintToI53Checked(offset);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var timers={};var _emscripten_get_now=()=>performance.timeOrigin+performance.now();function __setitimer_js(which,timeout_ms){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(14,0,1,which,timeout_ms);if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0}var __tzset_js=function(timezone,daylight,std_name,dst_name){timezone=bigintToI53Checked(timezone);daylight=bigintToI53Checked(daylight);std_name=bigintToI53Checked(std_name);dst_name=bigintToI53Checked(dst_name);var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);(growMemViews(),HEAPU64)[timezone/8]=BigInt(stdTimezoneOffset*60);(growMemViews(),HEAP32)[daylight/4]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?\"-\":\"+\";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,\"0\");var minutes=String(absOffset%60).padStart(2,\"0\");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffsetDate.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);ptime=bigintToI53Checked(ptime);if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);(growMemViews(),HEAP64)[ptime/8]=BigInt(nsec);return 0}var _emscripten_check_blocking_allowed=()=>{};var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};var _emscripten_exit_with_live_runtime=()=>{runtimeKeepalivePush();throw\"unwind\"};var getHeapMax=()=>4294967296;var _emscripten_get_heap_max=()=>BigInt(getHeapMax());var _emscripten_has_asyncify=()=>2;var _emscripten_num_logical_cores=()=>ENVIRONMENT_IS_NODE?require(\"os\").cpus().length:navigator[\"hardwareConcurrency\"];var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(BigInt(pages));updateMemoryViews();return 1}catch(e){}};function _emscripten_resize_heap(requestedSize){requestedSize=bigintToI53Checked(requestedSize);var oldSize=(growMemViews(),HEAPU8).length;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false}var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var writeI53ToI64=(ptr,num)=>{(growMemViews(),HEAPU32)[ptr/4]=num;var lower=(growMemViews(),HEAPU32)[ptr/4];(growMemViews(),HEAPU32)[(ptr+4)/4]=(num-lower)/4294967296};var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var readI53FromI64=ptr=>(growMemViews(),HEAPU32)[ptr/4]+(growMemViews(),HEAP32)[(ptr+4)/4]*4294967296;var WebGPU={Internals:{jsObjects:[],jsObjectInsert:(ptr,jsObject)=>{WebGPU.Internals.jsObjects[ptr]=jsObject},bufferOnUnmaps:[],futures:[],futureInsert:(futureId,promise)=>{WebGPU.Internals.futures[futureId]=new Promise(resolve=>promise.finally(()=>resolve(futureId)))}},getJsObject:ptr=>{if(!ptr)return undefined;return WebGPU.Internals.jsObjects[ptr]},importJsAdapter:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateAdapter(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroup:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroup(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroupLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroupLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBuffer:(buffer,parentPtr=0)=>{assert(buffer.mapState===\"unmapped\");var bufferPtr=_emwgpuCreateBuffer(parentPtr);WebGPU.Internals.jsObjectInsert(bufferPtr,buffer);return bufferPtr},importJsCommandBuffer:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandBuffer(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsCommandEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsDevice:(device,parentPtr=0)=>{var queuePtr=_emwgpuCreateQueue(parentPtr);var devicePtr=_emwgpuCreateDevice(parentPtr,queuePtr);WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);return devicePtr},importJsExternalTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateExternalTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsPipelineLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreatePipelineLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQuerySet:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQuerySet(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQueue:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQueue(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundle:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundle(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundleEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundleEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSampler:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSampler(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsShaderModule:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateShaderModule(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSurface:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSurface(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTextureView:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTextureView(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},errorCallback:(callback,type,message,userdata)=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(message);((a1,a2,a3)=>getWasmTableEntry(callback).call(null,a1,BigInt(a2),BigInt(a3)))(type,BigInt(messagePtr),userdata);stackRestore(sp)},iterateExtensions:(root,handlers)=>{for(var ptr=Number((growMemViews(),HEAPU64)[root/8]);ptr;ptr=Number((growMemViews(),HEAPU64)[ptr/8])){var sType=(growMemViews(),HEAP32)[(ptr+8)/4];var handler=handlers[sType](ptr)}},setStringView:(ptr,data,length)=>{(growMemViews(),HEAPU64)[ptr/8]=BigInt(data);(growMemViews(),HEAPU64)[(ptr+8)/8]=BigInt(length)},makeStringFromStringView:stringViewPtr=>{var ptr=Number((growMemViews(),HEAPU64)[stringViewPtr/8]);var length=Number((growMemViews(),HEAPU64)[(stringViewPtr+8)/8]);return UTF8ToString(ptr,length)},makeStringFromOptionalStringView:stringViewPtr=>{var ptr=Number((growMemViews(),HEAPU64)[stringViewPtr/8]);var length=Number((growMemViews(),HEAPU64)[(stringViewPtr+8)/8]);if(!ptr){if(length===0){return\"\"}return undefined}return UTF8ToString(ptr,length)},makeColor:ptr=>({r:(growMemViews(),HEAPF64)[ptr/8],g:(growMemViews(),HEAPF64)[(ptr+8)/8],b:(growMemViews(),HEAPF64)[(ptr+16)/8],a:(growMemViews(),HEAPF64)[(ptr+24)/8]}),makeExtent3D:ptr=>({width:(growMemViews(),HEAPU32)[ptr/4],height:(growMemViews(),HEAPU32)[(ptr+4)/4],depthOrArrayLayers:(growMemViews(),HEAPU32)[(ptr+8)/4]}),makeOrigin3D:ptr=>({x:(growMemViews(),HEAPU32)[ptr/4],y:(growMemViews(),HEAPU32)[(ptr+4)/4],z:(growMemViews(),HEAPU32)[(ptr+8)/4]}),makeTexelCopyTextureInfo:ptr=>({texture:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[ptr/8])),mipLevel:(growMemViews(),HEAPU32)[(ptr+8)/4],origin:WebGPU.makeOrigin3D(ptr+12),aspect:WebGPU.TextureAspect[(growMemViews(),HEAP32)[(ptr+24)/4]]}),makeTexelCopyBufferLayout:ptr=>{var bytesPerRow=(growMemViews(),HEAPU32)[(ptr+8)/4];var rowsPerImage=(growMemViews(),HEAPU32)[(ptr+12)/4];return{offset:readI53FromI64(ptr),bytesPerRow:bytesPerRow===4294967295?undefined:bytesPerRow,rowsPerImage:rowsPerImage===4294967295?undefined:rowsPerImage}},makeTexelCopyBufferInfo:ptr=>{var layoutPtr=ptr+0;var bufferCopyView=WebGPU.makeTexelCopyBufferLayout(layoutPtr);bufferCopyView[\"buffer\"]=WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+16)/8]));return bufferCopyView},makePassTimestampWrites:ptr=>{if(ptr===0)return undefined;return{querySet:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+8)/8])),beginningOfPassWriteIndex:(growMemViews(),HEAPU32)[(ptr+16)/4],endOfPassWriteIndex:(growMemViews(),HEAPU32)[(ptr+20)/4]}},makePipelineConstants:(constantCount,constantsPtr)=>{if(!constantCount)return;var constants={};for(var i=0;i{if(!layoutPtr)return\"auto\";return WebGPU.getJsObject(layoutPtr)},makeComputeState:ptr=>{if(!ptr)return undefined;var desc={module:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+8)/8])),constants:WebGPU.makePipelineConstants(Number((growMemViews(),HEAPU64)[(ptr+32)/8]),Number((growMemViews(),HEAPU64)[(ptr+40)/8])),entryPoint:WebGPU.makeStringFromOptionalStringView(ptr+16)};return desc},makeComputePipelineDesc:descriptor=>{var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8),layout:WebGPU.makePipelineLayout(Number((growMemViews(),HEAPU64)[(descriptor+24)/8])),compute:WebGPU.makeComputeState(descriptor+32)};return desc},makeRenderPipelineDesc:descriptor=>{function makePrimitiveState(psPtr){if(!psPtr)return undefined;return{topology:WebGPU.PrimitiveTopology[(growMemViews(),HEAP32)[(psPtr+8)/4]],stripIndexFormat:WebGPU.IndexFormat[(growMemViews(),HEAP32)[(psPtr+12)/4]],frontFace:WebGPU.FrontFace[(growMemViews(),HEAP32)[(psPtr+16)/4]],cullMode:WebGPU.CullMode[(growMemViews(),HEAP32)[(psPtr+20)/4]],unclippedDepth:!!(growMemViews(),HEAPU32)[(psPtr+24)/4]}}function makeBlendComponent(bdPtr){if(!bdPtr)return undefined;return{operation:WebGPU.BlendOperation[(growMemViews(),HEAP32)[bdPtr/4]],srcFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[(bdPtr+4)/4]],dstFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[(bdPtr+8)/4]]}}function makeBlendState(bsPtr){if(!bsPtr)return undefined;return{alpha:makeBlendComponent(bsPtr+12),color:makeBlendComponent(bsPtr+0)}}function makeColorState(csPtr){var format=WebGPU.TextureFormat[(growMemViews(),HEAP32)[(csPtr+8)/4]];return format?{format,blend:makeBlendState(Number((growMemViews(),HEAPU64)[(csPtr+16)/8])),writeMask:(growMemViews(),HEAPU32)[(csPtr+24)/4]}:undefined}function makeColorStates(count,csArrayPtr){var states=[];for(var i=0;i{var nextInChainPtr=Number((growMemViews(),HEAPU64)[limitsOutPtr/8]);function setLimitValueU32(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;(growMemViews(),HEAPU32)[(basePtr+limitOffset)/4]=limitValue}function setLimitValueU64(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;writeI53ToI64(basePtr+limitOffset,limitValue)}setLimitValueU32(\"maxTextureDimension1D\",limitsOutPtr,8);setLimitValueU32(\"maxTextureDimension2D\",limitsOutPtr,12);setLimitValueU32(\"maxTextureDimension3D\",limitsOutPtr,16);setLimitValueU32(\"maxTextureArrayLayers\",limitsOutPtr,20);setLimitValueU32(\"maxBindGroups\",limitsOutPtr,24);setLimitValueU32(\"maxBindGroupsPlusVertexBuffers\",limitsOutPtr,28);setLimitValueU32(\"maxBindingsPerBindGroup\",limitsOutPtr,32);setLimitValueU32(\"maxDynamicUniformBuffersPerPipelineLayout\",limitsOutPtr,36);setLimitValueU32(\"maxDynamicStorageBuffersPerPipelineLayout\",limitsOutPtr,40);setLimitValueU32(\"maxSampledTexturesPerShaderStage\",limitsOutPtr,44);setLimitValueU32(\"maxSamplersPerShaderStage\",limitsOutPtr,48);setLimitValueU32(\"maxStorageBuffersPerShaderStage\",limitsOutPtr,52);setLimitValueU32(\"maxStorageTexturesPerShaderStage\",limitsOutPtr,56);setLimitValueU32(\"maxUniformBuffersPerShaderStage\",limitsOutPtr,60);setLimitValueU32(\"minUniformBufferOffsetAlignment\",limitsOutPtr,80);setLimitValueU32(\"minStorageBufferOffsetAlignment\",limitsOutPtr,84);setLimitValueU64(\"maxUniformBufferBindingSize\",limitsOutPtr,64);setLimitValueU64(\"maxStorageBufferBindingSize\",limitsOutPtr,72);setLimitValueU32(\"maxVertexBuffers\",limitsOutPtr,88);setLimitValueU64(\"maxBufferSize\",limitsOutPtr,96);setLimitValueU32(\"maxVertexAttributes\",limitsOutPtr,104);setLimitValueU32(\"maxVertexBufferArrayStride\",limitsOutPtr,108);setLimitValueU32(\"maxInterStageShaderVariables\",limitsOutPtr,112);setLimitValueU32(\"maxColorAttachments\",limitsOutPtr,116);setLimitValueU32(\"maxColorAttachmentBytesPerSample\",limitsOutPtr,120);setLimitValueU32(\"maxComputeWorkgroupStorageSize\",limitsOutPtr,124);setLimitValueU32(\"maxComputeInvocationsPerWorkgroup\",limitsOutPtr,128);setLimitValueU32(\"maxComputeWorkgroupSizeX\",limitsOutPtr,132);setLimitValueU32(\"maxComputeWorkgroupSizeY\",limitsOutPtr,136);setLimitValueU32(\"maxComputeWorkgroupSizeZ\",limitsOutPtr,140);setLimitValueU32(\"maxComputeWorkgroupsPerDimension\",limitsOutPtr,144);setLimitValueU32(\"maxImmediateSize\",limitsOutPtr,148);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var compatibilityModeLimitsPtr=nextInChainPtr;setLimitValueU32(\"maxStorageBuffersInVertexStage\",compatibilityModeLimitsPtr,16,limits.maxStorageBuffersPerShaderStage);setLimitValueU32(\"maxStorageBuffersInFragmentStage\",compatibilityModeLimitsPtr,24,limits.maxStorageBuffersPerShaderStage);setLimitValueU32(\"maxStorageTexturesInVertexStage\",compatibilityModeLimitsPtr,20,limits.maxStorageTexturesPerShaderStage);setLimitValueU32(\"maxStorageTexturesInFragmentStage\",compatibilityModeLimitsPtr,28,limits.maxStorageTexturesPerShaderStage)}},fillAdapterInfoStruct:(info,infoStruct)=>{(growMemViews(),HEAPU32)[(infoStruct+88)/4]=info.subgroupMinSize;(growMemViews(),HEAPU32)[(infoStruct+92)/4]=info.subgroupMaxSize;var strs=info.vendor+info.architecture+info.device+info.description;var strPtr=stringToNewUTF8(strs);var vendorLen=lengthBytesUTF8(info.vendor);WebGPU.setStringView(infoStruct+8,strPtr,vendorLen);strPtr+=vendorLen;var architectureLen=lengthBytesUTF8(info.architecture);WebGPU.setStringView(infoStruct+24,strPtr,architectureLen);strPtr+=architectureLen;var deviceLen=lengthBytesUTF8(info.device);WebGPU.setStringView(infoStruct+40,strPtr,deviceLen);strPtr+=deviceLen;var descriptionLen=lengthBytesUTF8(info.description);WebGPU.setStringView(infoStruct+56,strPtr,descriptionLen);strPtr+=descriptionLen;(growMemViews(),HEAP32)[(infoStruct+72)/4]=2;var adapterType=info.isFallbackAdapter?3:4;(growMemViews(),HEAP32)[(infoStruct+76)/4]=adapterType;(growMemViews(),HEAPU32)[(infoStruct+80)/4]=0;(growMemViews(),HEAPU32)[(infoStruct+84)/4]=0},AddressMode:[,\"clamp-to-edge\",\"repeat\",\"mirror-repeat\"],BlendFactor:[,\"zero\",\"one\",\"src\",\"one-minus-src\",\"src-alpha\",\"one-minus-src-alpha\",\"dst\",\"one-minus-dst\",\"dst-alpha\",\"one-minus-dst-alpha\",\"src-alpha-saturated\",\"constant\",\"one-minus-constant\",\"src1\",\"one-minus-src1\",\"src1-alpha\",\"one-minus-src1-alpha\"],BlendOperation:[,\"add\",\"subtract\",\"reverse-subtract\",\"min\",\"max\"],BufferBindingType:[,,\"uniform\",\"storage\",\"read-only-storage\"],BufferMapState:[,\"unmapped\",\"pending\",\"mapped\"],CompareFunction:[,\"never\",\"less\",\"equal\",\"less-equal\",\"greater\",\"not-equal\",\"greater-equal\",\"always\"],CompilationInfoRequestStatus:[,\"success\",\"callback-cancelled\"],ComponentSwizzle:[,\"0\",\"1\",\"r\",\"g\",\"b\",\"a\"],CompositeAlphaMode:[,\"opaque\",\"premultiplied\",\"unpremultiplied\",\"inherit\"],CullMode:[,\"none\",\"front\",\"back\"],ErrorFilter:[,\"validation\",\"out-of-memory\",\"internal\"],FeatureLevel:[,\"compatibility\",\"core\"],FeatureName:{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\",22:\"texture-component-swizzle\",327692:\"chromium-experimental-unorm16-texture-formats\",327729:\"chromium-experimental-multi-draw-indirect\"},FilterMode:[,\"nearest\",\"linear\"],FrontFace:[,\"ccw\",\"cw\"],IndexFormat:[,\"uint16\",\"uint32\"],InstanceFeatureName:[,\"timed-wait-any\",\"shader-source-spirv\",\"multiple-devices-per-adapter\"],LoadOp:[,\"load\",\"clear\"],MipmapFilterMode:[,\"nearest\",\"linear\"],OptionalBool:[\"false\",\"true\"],PowerPreference:[,\"low-power\",\"high-performance\"],PredefinedColorSpace:[,\"srgb\",\"display-p3\"],PrimitiveTopology:[,\"point-list\",\"line-list\",\"line-strip\",\"triangle-list\",\"triangle-strip\"],QueryType:[,\"occlusion\",\"timestamp\"],SamplerBindingType:[,,\"filtering\",\"non-filtering\",\"comparison\"],Status:[,\"success\",\"error\"],StencilOperation:[,\"keep\",\"zero\",\"replace\",\"invert\",\"increment-clamp\",\"decrement-clamp\",\"increment-wrap\",\"decrement-wrap\"],StorageTextureAccess:[,,\"write-only\",\"read-only\",\"read-write\"],StoreOp:[,\"store\",\"discard\"],SurfaceGetCurrentTextureStatus:[,\"success-optimal\",\"success-suboptimal\",\"timeout\",\"outdated\",\"lost\",\"error\"],TextureAspect:[,\"all\",\"stencil-only\",\"depth-only\"],TextureDimension:[,\"1d\",\"2d\",\"3d\"],TextureFormat:[,\"r8unorm\",\"r8snorm\",\"r8uint\",\"r8sint\",\"r16unorm\",\"r16snorm\",\"r16uint\",\"r16sint\",\"r16float\",\"rg8unorm\",\"rg8snorm\",\"rg8uint\",\"rg8sint\",\"r32float\",\"r32uint\",\"r32sint\",\"rg16unorm\",\"rg16snorm\",\"rg16uint\",\"rg16sint\",\"rg16float\",\"rgba8unorm\",\"rgba8unorm-srgb\",\"rgba8snorm\",\"rgba8uint\",\"rgba8sint\",\"bgra8unorm\",\"bgra8unorm-srgb\",\"rgb10a2uint\",\"rgb10a2unorm\",\"rg11b10ufloat\",\"rgb9e5ufloat\",\"rg32float\",\"rg32uint\",\"rg32sint\",\"rgba16unorm\",\"rgba16snorm\",\"rgba16uint\",\"rgba16sint\",\"rgba16float\",\"rgba32float\",\"rgba32uint\",\"rgba32sint\",\"stencil8\",\"depth16unorm\",\"depth24plus\",\"depth24plus-stencil8\",\"depth32float\",\"depth32float-stencil8\",\"bc1-rgba-unorm\",\"bc1-rgba-unorm-srgb\",\"bc2-rgba-unorm\",\"bc2-rgba-unorm-srgb\",\"bc3-rgba-unorm\",\"bc3-rgba-unorm-srgb\",\"bc4-r-unorm\",\"bc4-r-snorm\",\"bc5-rg-unorm\",\"bc5-rg-snorm\",\"bc6h-rgb-ufloat\",\"bc6h-rgb-float\",\"bc7-rgba-unorm\",\"bc7-rgba-unorm-srgb\",\"etc2-rgb8unorm\",\"etc2-rgb8unorm-srgb\",\"etc2-rgb8a1unorm\",\"etc2-rgb8a1unorm-srgb\",\"etc2-rgba8unorm\",\"etc2-rgba8unorm-srgb\",\"eac-r11unorm\",\"eac-r11snorm\",\"eac-rg11unorm\",\"eac-rg11snorm\",\"astc-4x4-unorm\",\"astc-4x4-unorm-srgb\",\"astc-5x4-unorm\",\"astc-5x4-unorm-srgb\",\"astc-5x5-unorm\",\"astc-5x5-unorm-srgb\",\"astc-6x5-unorm\",\"astc-6x5-unorm-srgb\",\"astc-6x6-unorm\",\"astc-6x6-unorm-srgb\",\"astc-8x5-unorm\",\"astc-8x5-unorm-srgb\",\"astc-8x6-unorm\",\"astc-8x6-unorm-srgb\",\"astc-8x8-unorm\",\"astc-8x8-unorm-srgb\",\"astc-10x5-unorm\",\"astc-10x5-unorm-srgb\",\"astc-10x6-unorm\",\"astc-10x6-unorm-srgb\",\"astc-10x8-unorm\",\"astc-10x8-unorm-srgb\",\"astc-10x10-unorm\",\"astc-10x10-unorm-srgb\",\"astc-12x10-unorm\",\"astc-12x10-unorm-srgb\",\"astc-12x12-unorm\",\"astc-12x12-unorm-srgb\"],TextureSampleType:[,,\"float\",\"unfilterable-float\",\"depth\",\"sint\",\"uint\"],TextureViewDimension:[,\"1d\",\"2d\",\"2d-array\",\"cube\",\"cube-array\",\"3d\"],ToneMappingMode:[,\"standard\",\"extended\"],VertexFormat:[,\"uint8\",\"uint8x2\",\"uint8x4\",\"sint8\",\"sint8x2\",\"sint8x4\",\"unorm8\",\"unorm8x2\",\"unorm8x4\",\"snorm8\",\"snorm8x2\",\"snorm8x4\",\"uint16\",\"uint16x2\",\"uint16x4\",\"sint16\",\"sint16x2\",\"sint16x4\",\"unorm16\",\"unorm16x2\",\"unorm16x4\",\"snorm16\",\"snorm16x2\",\"snorm16x4\",\"float16\",\"float16x2\",\"float16x4\",\"float32\",\"float32x2\",\"float32x3\",\"float32x4\",\"uint32\",\"uint32x2\",\"uint32x3\",\"uint32x4\",\"sint32\",\"sint32x2\",\"sint32x3\",\"sint32x4\",\"unorm10-10-10-2\",\"unorm8x4-bgra\"],VertexStepMode:[,\"vertex\",\"instance\"],WGSLLanguageFeatureName:[,\"readonly_and_readwrite_storage_textures\",\"packed_4x8_integer_dot_product\",\"unrestricted_pointer_parameters\",\"pointer_composite_access\",\"uniform_buffer_standard_layout\",\"subgroup_id\",\"texture_and_sampler_let\",\"subgroup_uniformity\",\"texture_formats_tier1\"]};var emwgpuStringToInt_DeviceLostReason={undefined:1,unknown:1,destroyed:2};var runtimeKeepalivePop=()=>{runtimeKeepaliveCounter-=1};function _emwgpuAdapterRequestDevice(adapterPtr,futureId,deviceLostFutureId,devicePtr,queuePtr,descriptor){adapterPtr=bigintToI53Checked(adapterPtr);futureId=bigintToI53Checked(futureId);deviceLostFutureId=bigintToI53Checked(deviceLostFutureId);devicePtr=bigintToI53Checked(devicePtr);queuePtr=bigintToI53Checked(queuePtr);descriptor=bigintToI53Checked(descriptor);var adapter=WebGPU.getJsObject(adapterPtr);var desc={};if(descriptor){var requiredFeatureCount=Number((growMemViews(),HEAPU64)[(descriptor+24)/8]);if(requiredFeatureCount){var requiredFeaturesPtr=Number((growMemViews(),HEAPU64)[(descriptor+32)/8]);desc[\"requiredFeatures\"]=Array.from((growMemViews(),HEAPU32).subarray(requiredFeaturesPtr/4,(requiredFeaturesPtr+requiredFeatureCount*4)/4),feature=>WebGPU.FeatureName[feature])}var limitsPtr=Number((growMemViews(),HEAPU64)[(descriptor+40)/8]);if(limitsPtr){var nextInChainPtr=Number((growMemViews(),HEAPU64)[limitsPtr/8]);var requiredLimits={};function setLimitU32IfDefined(name,basePtr,limitOffset,ignoreIfZero=false){var ptr=basePtr+limitOffset;var value=(growMemViews(),HEAPU32)[ptr/4];if(value!=4294967295&&(!ignoreIfZero||value!=0)){requiredLimits[name]=value}}function setLimitU64IfDefined(name,basePtr,limitOffset){var ptr=basePtr+limitOffset;var limitPart1=(growMemViews(),HEAPU32)[ptr/4];var limitPart2=(growMemViews(),HEAPU32)[(ptr+4)/4];if(limitPart1!=4294967295||limitPart2!=4294967295){requiredLimits[name]=readI53FromI64(ptr)}}setLimitU32IfDefined(\"maxTextureDimension1D\",limitsPtr,8);setLimitU32IfDefined(\"maxTextureDimension2D\",limitsPtr,12);setLimitU32IfDefined(\"maxTextureDimension3D\",limitsPtr,16);setLimitU32IfDefined(\"maxTextureArrayLayers\",limitsPtr,20);setLimitU32IfDefined(\"maxBindGroups\",limitsPtr,24);setLimitU32IfDefined(\"maxBindGroupsPlusVertexBuffers\",limitsPtr,28);setLimitU32IfDefined(\"maxBindingsPerBindGroup\",limitsPtr,32);setLimitU32IfDefined(\"maxDynamicUniformBuffersPerPipelineLayout\",limitsPtr,36);setLimitU32IfDefined(\"maxDynamicStorageBuffersPerPipelineLayout\",limitsPtr,40);setLimitU32IfDefined(\"maxSampledTexturesPerShaderStage\",limitsPtr,44);setLimitU32IfDefined(\"maxSamplersPerShaderStage\",limitsPtr,48);setLimitU32IfDefined(\"maxStorageBuffersPerShaderStage\",limitsPtr,52);setLimitU32IfDefined(\"maxStorageTexturesPerShaderStage\",limitsPtr,56);setLimitU32IfDefined(\"maxUniformBuffersPerShaderStage\",limitsPtr,60);setLimitU32IfDefined(\"minUniformBufferOffsetAlignment\",limitsPtr,80);setLimitU32IfDefined(\"minStorageBufferOffsetAlignment\",limitsPtr,84);setLimitU64IfDefined(\"maxUniformBufferBindingSize\",limitsPtr,64);setLimitU64IfDefined(\"maxStorageBufferBindingSize\",limitsPtr,72);setLimitU32IfDefined(\"maxVertexBuffers\",limitsPtr,88);setLimitU64IfDefined(\"maxBufferSize\",limitsPtr,96);setLimitU32IfDefined(\"maxVertexAttributes\",limitsPtr,104);setLimitU32IfDefined(\"maxVertexBufferArrayStride\",limitsPtr,108);setLimitU32IfDefined(\"maxInterStageShaderVariables\",limitsPtr,112);setLimitU32IfDefined(\"maxColorAttachments\",limitsPtr,116);setLimitU32IfDefined(\"maxColorAttachmentBytesPerSample\",limitsPtr,120);setLimitU32IfDefined(\"maxComputeWorkgroupStorageSize\",limitsPtr,124);setLimitU32IfDefined(\"maxComputeInvocationsPerWorkgroup\",limitsPtr,128);setLimitU32IfDefined(\"maxComputeWorkgroupSizeX\",limitsPtr,132);setLimitU32IfDefined(\"maxComputeWorkgroupSizeY\",limitsPtr,136);setLimitU32IfDefined(\"maxComputeWorkgroupSizeZ\",limitsPtr,140);setLimitU32IfDefined(\"maxComputeWorkgroupsPerDimension\",limitsPtr,144);setLimitU32IfDefined(\"maxImmediateSize\",limitsPtr,148,true);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var compatibilityModeLimitsPtr=nextInChainPtr;if(\"maxStorageBuffersInVertexStage\"in GPUSupportedLimits.prototype){setLimitU32IfDefined(\"maxStorageBuffersInVertexStage\",compatibilityModeLimitsPtr,16);setLimitU32IfDefined(\"maxStorageTexturesInVertexStage\",compatibilityModeLimitsPtr,20);setLimitU32IfDefined(\"maxStorageBuffersInFragmentStage\",compatibilityModeLimitsPtr,24);setLimitU32IfDefined(\"maxStorageTexturesInFragmentStage\",compatibilityModeLimitsPtr,28)}}desc[\"requiredLimits\"]=requiredLimits}var defaultQueuePtr=Number((growMemViews(),HEAPU64)[(descriptor+48)/8]);if(defaultQueuePtr){var defaultQueueDesc={label:WebGPU.makeStringFromOptionalStringView(defaultQueuePtr+8)};desc[\"defaultQueue\"]=defaultQueueDesc}desc[\"label\"]=WebGPU.makeStringFromOptionalStringView(descriptor+8)}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,adapter.requestDevice(desc).then(device=>{runtimeKeepalivePop();callUserCallback(()=>{WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);devicePtr=BigInt(devicePtr);WebGPU.Internals.futureInsert(deviceLostFutureId,device.lost.then(info=>{callUserCallback(()=>{device.onuncapturederror=ev=>{};var sp=stackSave();var messagePtr=stringToUTF8OnStack(info.message);_emwgpuOnDeviceLostCompleted(deviceLostFutureId,emwgpuStringToInt_DeviceLostReason[info.reason],BigInt(messagePtr));stackRestore(sp)})}));device.onuncapturederror=ev=>{var type=5;if(ev.error instanceof GPUValidationError)type=2;else if(ev.error instanceof GPUOutOfMemoryError)type=3;else if(ev.error instanceof GPUInternalError)type=4;var sp=stackSave();var messagePtr=stringToUTF8OnStack(ev.error.message);_emwgpuOnUncapturedError(BigInt(devicePtr),type,BigInt(messagePtr));stackRestore(sp)};_emwgpuOnRequestDeviceCompleted(futureId,1,BigInt(devicePtr),0n)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestDeviceCompleted(futureId,3,BigInt(devicePtr),BigInt(messagePtr));if(deviceLostFutureId){_emwgpuOnDeviceLostCompleted(deviceLostFutureId,4,BigInt(messagePtr))}stackRestore(sp)})}))}function _emwgpuBufferDestroy(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(onUnmap){for(var i=0;i{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text=\"warning: \"+text;err(text)}};var _emwgpuBufferGetConstMappedRange=function(bufferPtr,offset,size){bufferPtr=bigintToI53Checked(bufferPtr);offset=bigintToI53Checked(offset);size=bigintToI53Checked(size);var ret=(()=>{var buffer=WebGPU.getJsObject(bufferPtr);if(size==-1)size=undefined;var mapped;try{mapped=buffer.getMappedRange(offset,size)}catch(ex){return 0n}var data=_memalign(16,mapped.byteLength);(growMemViews(),HEAPU8).set(new Uint8Array(mapped),data);WebGPU.Internals.bufferOnUnmaps[bufferPtr].push(()=>_free(data));return data})();return BigInt(ret)};var _emwgpuBufferMapAsync=function(bufferPtr,futureId,mode,offset,size){bufferPtr=bigintToI53Checked(bufferPtr);futureId=bigintToI53Checked(futureId);mode=bigintToI53Checked(mode);offset=bigintToI53Checked(offset);size=bigintToI53Checked(size);var buffer=WebGPU.getJsObject(bufferPtr);WebGPU.Internals.bufferOnUnmaps[bufferPtr]=[];if(size==-1)size=undefined;runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,buffer.mapAsync(mode,offset,size).then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnMapAsyncCompleted(futureId,1,0n)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);var status=ex.name===\"AbortError\"?4:ex.name===\"OperationError\"?3:0;_emwgpuOnMapAsyncCompleted(futureId,status,BigInt(messagePtr));delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]})}))};function _emwgpuBufferUnmap(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(!onUnmap){return}for(var i=0;i{const device=WebGPU.getJsObject(devicePtr);device.onuncapturederror=null;device.destroy()};function _emwgpuInstanceRequestAdapter(instancePtr,futureId,options,adapterPtr){instancePtr=bigintToI53Checked(instancePtr);futureId=bigintToI53Checked(futureId);options=bigintToI53Checked(options);adapterPtr=bigintToI53Checked(adapterPtr);var opts;if(options){opts={featureLevel:WebGPU.FeatureLevel[(growMemViews(),HEAP32)[(options+8)/4]],powerPreference:WebGPU.PowerPreference[(growMemViews(),HEAP32)[(options+12)/4]],forceFallbackAdapter:!!(growMemViews(),HEAPU32)[(options+16)/4]};var nextInChainPtr=Number((growMemViews(),HEAPU64)[options/8]);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var webxrOptions=nextInChainPtr;opts.xrCompatible=!!(growMemViews(),HEAPU32)[(webxrOptions+16)/4]}}if(!(\"gpu\"in navigator)){var sp=stackSave();var messagePtr=stringToUTF8OnStack(\"WebGPU not available on this browser (navigator.gpu is not available)\");_emwgpuOnRequestAdapterCompleted(futureId,3,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp);return}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,navigator.gpu.requestAdapter(opts).then(adapter=>{runtimeKeepalivePop();callUserCallback(()=>{if(adapter){WebGPU.Internals.jsObjectInsert(adapterPtr,adapter);_emwgpuOnRequestAdapterCompleted(futureId,1,BigInt(adapterPtr),0n)}else{var sp=stackSave();var messagePtr=stringToUTF8OnStack(\"WebGPU not available on this browser (requestAdapter returned null)\");_emwgpuOnRequestAdapterCompleted(futureId,3,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp)}})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestAdapterCompleted(futureId,4,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp)})}))}var _emwgpuQueueOnSubmittedWorkDone=function(queuePtr,futureId){queuePtr=bigintToI53Checked(queuePtr);futureId=bigintToI53Checked(futureId);var queue=WebGPU.getJsObject(queuePtr);runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,queue.onSubmittedWorkDone().then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnWorkDoneCompleted(futureId,1)})}))};var _emwgpuWaitAny=function(futurePtr,futureCount,timeoutMSPtr){futurePtr=bigintToI53Checked(futurePtr);futureCount=bigintToI53Checked(futureCount);timeoutMSPtr=bigintToI53Checked(timeoutMSPtr);return Asyncify.handleAsync(async()=>{var promises=[];if(timeoutMSPtr){var timeoutMS=(growMemViews(),HEAP32)[timeoutMSPtr/4];promises.length=futureCount+1;promises[futureCount]=new Promise(resolve=>setTimeout(resolve,timeoutMS,0))}else{promises.length=futureCount}for(var i=0;ithisProgram||\"./this.program\";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator==\"object\"&&navigator.language||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(15,0,1,__environ,environ_buf);__environ=bigintToI53Checked(__environ);environ_buf=bigintToI53Checked(environ_buf);var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;(growMemViews(),HEAPU64)[(__environ+envp)/8]=BigInt(ptr);bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=8}return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(16,0,1,penviron_count,penviron_buf_size);penviron_count=bigintToI53Checked(penviron_count);penviron_buf_size=bigintToI53Checked(penviron_buf_size);var strings=getEnvStrings();(growMemViews(),HEAPU64)[penviron_count/8]=BigInt(strings.length);var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}(growMemViews(),HEAPU64)[penviron_buf_size/8]=BigInt(bufSize);return 0}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(17,0,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i{var ret=0;for(var i=0;i=0){(growMemViews(),HEAP32)[(featuresPtr+offset)/4]=featureEnumValue;offset+=4;numFeatures++}}(growMemViews(),HEAPU64)[(supportedFeatures+8)/8]=BigInt(featuresPtr);(growMemViews(),HEAPU64)[supportedFeatures/8]=BigInt(numFeatures)}function _wgpuAdapterGetInfo(adapterPtr,info){adapterPtr=bigintToI53Checked(adapterPtr);info=bigintToI53Checked(info);var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillAdapterInfoStruct(adapter.info,info);return 1}function _wgpuAdapterGetLimits(adapterPtr,limitsOutPtr){adapterPtr=bigintToI53Checked(adapterPtr);limitsOutPtr=bigintToI53Checked(limitsOutPtr);var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillLimitStruct(adapter.limits,limitsOutPtr);return 1}function _wgpuAdapterHasFeature(adapterPtr,featureEnumValue){adapterPtr=bigintToI53Checked(adapterPtr);var adapter=WebGPU.getJsObject(adapterPtr);return adapter.features.has(WebGPU.FeatureName[featureEnumValue])}var _wgpuBufferGetSize=function(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var ret=(()=>{var buffer=WebGPU.getJsObject(bufferPtr);return buffer.size})();return BigInt(ret)};var _wgpuCommandEncoderBeginComputePass=function(encoderPtr,descriptor){encoderPtr=bigintToI53Checked(encoderPtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8),timestampWrites:WebGPU.makePassTimestampWrites(Number((growMemViews(),HEAPU64)[(descriptor+24)/8]))}}var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateComputePassEncoder(0n);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.beginComputePass(desc));return ptr})();return BigInt(ret)};function _wgpuCommandEncoderCopyBufferToBuffer(encoderPtr,srcPtr,srcOffset,dstPtr,dstOffset,size){encoderPtr=bigintToI53Checked(encoderPtr);srcPtr=bigintToI53Checked(srcPtr);srcOffset=bigintToI53Checked(srcOffset);dstPtr=bigintToI53Checked(dstPtr);dstOffset=bigintToI53Checked(dstOffset);size=bigintToI53Checked(size);var commandEncoder=WebGPU.getJsObject(encoderPtr);var src=WebGPU.getJsObject(srcPtr);var dst=WebGPU.getJsObject(dstPtr);commandEncoder.copyBufferToBuffer(src,srcOffset,dst,dstOffset,size)}var _wgpuCommandEncoderFinish=function(encoderPtr,descriptor){encoderPtr=bigintToI53Checked(encoderPtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateCommandBuffer(0n);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.finish());return ptr})();return BigInt(ret)};function _wgpuComputePassEncoderDispatchWorkgroups(passPtr,x,y,z){passPtr=bigintToI53Checked(passPtr);var pass=WebGPU.getJsObject(passPtr);pass.dispatchWorkgroups(x,y,z)}function _wgpuComputePassEncoderEnd(passPtr){passPtr=bigintToI53Checked(passPtr);var pass=WebGPU.getJsObject(passPtr);pass.end()}function _wgpuComputePassEncoderSetBindGroup(passPtr,groupIndex,groupPtr,dynamicOffsetCount,dynamicOffsetsPtr){passPtr=bigintToI53Checked(passPtr);groupPtr=bigintToI53Checked(groupPtr);dynamicOffsetCount=bigintToI53Checked(dynamicOffsetCount);dynamicOffsetsPtr=bigintToI53Checked(dynamicOffsetsPtr);var pass=WebGPU.getJsObject(passPtr);var group=WebGPU.getJsObject(groupPtr);if(dynamicOffsetCount==0){pass.setBindGroup(groupIndex,group)}else{pass.setBindGroup(groupIndex,group,(growMemViews(),HEAPU32),dynamicOffsetsPtr/4,dynamicOffsetCount)}}function _wgpuComputePassEncoderSetPipeline(passPtr,pipelinePtr){passPtr=bigintToI53Checked(passPtr);pipelinePtr=bigintToI53Checked(pipelinePtr);var pass=WebGPU.getJsObject(passPtr);var pipeline=WebGPU.getJsObject(pipelinePtr);pass.setPipeline(pipeline)}var _wgpuComputePipelineGetBindGroupLayout=function(pipelinePtr,groupIndex){pipelinePtr=bigintToI53Checked(pipelinePtr);var ret=(()=>{var pipeline=WebGPU.getJsObject(pipelinePtr);var ptr=_emwgpuCreateBindGroupLayout(0n);WebGPU.Internals.jsObjectInsert(ptr,pipeline.getBindGroupLayout(groupIndex));return ptr})();return BigInt(ret)};var _wgpuDeviceCreateBindGroup=function(devicePtr,descriptor){devicePtr=bigintToI53Checked(devicePtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{function makeEntry(entryPtr){var bufferPtr=Number((growMemViews(),HEAPU64)[(entryPtr+16)/8]);var samplerPtr=Number((growMemViews(),HEAPU64)[(entryPtr+40)/8]);var textureViewPtr=Number((growMemViews(),HEAPU64)[(entryPtr+48)/8]);var externalTexturePtr=0;WebGPU.iterateExtensions(entryPtr,{327681:ptr=>{externalTexturePtr=Number((growMemViews(),HEAPU64)[(ptr+16)/8])}});var resource;if(bufferPtr){var size=readI53FromI64(entryPtr+32);if(size==-1)size=undefined;resource={buffer:WebGPU.getJsObject(bufferPtr),offset:readI53FromI64(entryPtr+24),size}}else{resource=WebGPU.getJsObject(samplerPtr||textureViewPtr||externalTexturePtr)}return{binding:(growMemViews(),HEAPU32)[(entryPtr+8)/4],resource}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i{var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8)}}var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateCommandEncoder(0n);WebGPU.Internals.jsObjectInsert(ptr,device.createCommandEncoder(desc));return ptr})();return BigInt(ret)};var _wgpuDeviceCreateComputePipeline=function(devicePtr,descriptor){devicePtr=bigintToI53Checked(devicePtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var desc=WebGPU.makeComputePipelineDesc(descriptor);var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateComputePipeline(0n);WebGPU.Internals.jsObjectInsert(ptr,device.createComputePipeline(desc));return ptr})();return BigInt(ret)};var _wgpuQueueSubmit=function(queuePtr,commandCount,commands){queuePtr=bigintToI53Checked(queuePtr);commandCount=bigintToI53Checked(commandCount);commands=bigintToI53Checked(commands);var queue=WebGPU.getJsObject(queuePtr);var cmds=Array.from((growMemViews(),HEAP64).subarray(commands/8,(commands+commandCount*8)/8),id=>WebGPU.getJsObject(id));queue.submit(cmds)};function _wgpuQueueWriteBuffer(queuePtr,bufferPtr,bufferOffset,data,size){queuePtr=bigintToI53Checked(queuePtr);bufferPtr=bigintToI53Checked(bufferPtr);bufferOffset=bigintToI53Checked(bufferOffset);data=bigintToI53Checked(data);size=bigintToI53Checked(size);var queue=WebGPU.getJsObject(queuePtr);var buffer=WebGPU.getJsObject(bufferPtr);var subarray=(growMemViews(),HEAPU8).subarray(data,data+size);queue.writeBuffer(buffer,bufferOffset,subarray,0,size)}var Asyncify={instrumentWasmImports(imports){var importPattern=/^(invoke_.*|__asyncjs__.*)$/;for(let[x,original]of Object.entries(imports)){if(typeof original==\"function\"){let isAsyncifyImport=original.isAsync||importPattern.test(x);if(isAsyncifyImport){imports[x]=original=new WebAssembly.Suspending(original)}}}},instrumentFunction(original){var wrapper=(...args)=>original(...args);return wrapper},instrumentWasmExports(exports){var exportPattern=/^(wllama_start|wllama_action|main|__main_argc_argv)$/;Asyncify.asyncExports=new Set;var ret={};for(let[x,original]of Object.entries(exports)){if(typeof original==\"function\"){let isAsyncifyExport=exportPattern.test(x);if(isAsyncifyExport){Asyncify.asyncExports.add(original);original=Asyncify.makeAsyncFunction(original)}var wrapper=Asyncify.instrumentFunction(original);ret[x]=wrapper}else{ret[x]=original}}return ret},asyncExports:null,isAsyncExport(func){return Asyncify.asyncExports?.has(func)},handleAsync:async startAsync=>{runtimeKeepalivePush();try{return await startAsync()}finally{runtimeKeepalivePop()}},handleSleep:startAsync=>Asyncify.handleAsync(()=>new Promise(startAsync)),makeAsyncFunction(original){return WebAssembly.promising(original)}};var getCFunc=ident=>{var func=Module[\"_\"+ident];return func};var writeArrayToMemory=(array,buffer)=>{(growMemViews(),HEAP8).set(array,buffer)};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={pointer:p=>BigInt(p),string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return BigInt(ret)},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return BigInt(ret)}};function convertReturnValue(ret){if(returnType===\"string\"){return UTF8ToString(Number(ret))}if(returnType===\"pointer\")return Number(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type===\"number\"||type===\"boolean\");var numericRet=returnType!==\"string\";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var FS_createPath=(...args)=>FS.createPath(...args);var FS_unlink=(...args)=>FS.unlink(...args);var FS_createLazyFile=(...args)=>FS.createLazyFile(...args);var FS_createDevice=(...args)=>FS.createDevice(...args);PThread.init();FS.createPreloadedFile=FS_createPreloadedFile;FS.preloadFile=FS_preloadFile;FS.staticInit();{initMemory();if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(Module[\"preloadPlugins\"])preloadPlugins=Module[\"preloadPlugins\"];if(Module[\"print\"])out=Module[\"print\"];if(Module[\"printErr\"])err=Module[\"printErr\"];if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].shift()()}}}Module[\"mmapAlloc\"]=mmapAlloc;Module[\"addRunDependency\"]=addRunDependency;Module[\"removeRunDependency\"]=removeRunDependency;Module[\"ccall\"]=ccall;Module[\"cwrap\"]=cwrap;Module[\"FS_preloadFile\"]=FS_preloadFile;Module[\"FS_unlink\"]=FS_unlink;Module[\"FS_createPath\"]=FS_createPath;Module[\"FS_createDevice\"]=FS_createDevice;Module[\"FS\"]=FS;Module[\"FS_createDataFile\"]=FS_createDataFile;Module[\"FS_createLazyFile\"]=FS_createLazyFile;Module[\"MEMFS\"]=MEMFS;var proxiedFunctionTable=[_proc_exit,exitOnMainThread,pthreadCreateProxied,___syscall_fcntl64,___syscall_fstat64,___syscall_getcwd,___syscall_getdents64,___syscall_ioctl,___syscall_lstat64,___syscall_newfstatat,___syscall_openat,___syscall_stat64,__mmap_js,__munmap_js,__setitimer_js,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function __asyncjs__js_file_read(path_ptr,offset,req_size,out_ptr){return Asyncify.handleAsync(async()=>await _wllama_js_file_read(UTF8ToString(Number(path_ptr)),Number(offset),Number(req_size),Number(out_ptr)))}__asyncjs__js_file_read.sig=\"jjjjj\";var _malloc,_free,_wllama_malloc,_wllama_start,_wllama_action,_wllama_exit,_wllama_debug,_main,_emwgpuCreateBindGroup,_emwgpuCreateBindGroupLayout,_emwgpuCreateCommandBuffer,_emwgpuCreateCommandEncoder,_emwgpuCreateComputePassEncoder,_emwgpuCreateComputePipeline,_emwgpuCreateExternalTexture,_emwgpuCreatePipelineLayout,_emwgpuCreateQuerySet,_emwgpuCreateRenderBundle,_emwgpuCreateRenderBundleEncoder,_emwgpuCreateRenderPassEncoder,_emwgpuCreateRenderPipeline,_emwgpuCreateSampler,_emwgpuCreateSurface,_emwgpuCreateTexture,_emwgpuCreateTextureView,_emwgpuCreateAdapter,_emwgpuCreateBuffer,_emwgpuCreateDevice,_emwgpuCreateQueue,_emwgpuCreateShaderModule,_emwgpuOnDeviceLostCompleted,_emwgpuOnMapAsyncCompleted,_emwgpuOnRequestAdapterCompleted,_emwgpuOnRequestDeviceCompleted,_emwgpuOnWorkDoneCompleted,_emwgpuOnUncapturedError,__emscripten_tls_init,_pthread_self,_emscripten_builtin_memalign,__emscripten_thread_init,__emscripten_thread_crashed,__emscripten_run_js_on_main_thread,__emscripten_thread_free_data,__emscripten_thread_exit,__emscripten_timeout,__emscripten_check_mailbox,_memalign,___trap,_emscripten_stack_set_limits,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,__indirect_function_table,wasmTable;function assignWasmExports(wasmExports){_malloc=wasmExports[\"malloc\"];_free=wasmExports[\"free\"];_wllama_malloc=Module[\"_wllama_malloc\"]=wasmExports[\"wllama_malloc\"];_wllama_start=Module[\"_wllama_start\"]=wasmExports[\"wllama_start\"];_wllama_action=Module[\"_wllama_action\"]=wasmExports[\"wllama_action\"];_wllama_exit=Module[\"_wllama_exit\"]=wasmExports[\"wllama_exit\"];_wllama_debug=Module[\"_wllama_debug\"]=wasmExports[\"wllama_debug\"];_main=Module[\"_main\"]=wasmExports[\"main\"];_emwgpuCreateBindGroup=wasmExports[\"emwgpuCreateBindGroup\"];_emwgpuCreateBindGroupLayout=wasmExports[\"emwgpuCreateBindGroupLayout\"];_emwgpuCreateCommandBuffer=wasmExports[\"emwgpuCreateCommandBuffer\"];_emwgpuCreateCommandEncoder=wasmExports[\"emwgpuCreateCommandEncoder\"];_emwgpuCreateComputePassEncoder=wasmExports[\"emwgpuCreateComputePassEncoder\"];_emwgpuCreateComputePipeline=wasmExports[\"emwgpuCreateComputePipeline\"];_emwgpuCreateExternalTexture=wasmExports[\"emwgpuCreateExternalTexture\"];_emwgpuCreatePipelineLayout=wasmExports[\"emwgpuCreatePipelineLayout\"];_emwgpuCreateQuerySet=wasmExports[\"emwgpuCreateQuerySet\"];_emwgpuCreateRenderBundle=wasmExports[\"emwgpuCreateRenderBundle\"];_emwgpuCreateRenderBundleEncoder=wasmExports[\"emwgpuCreateRenderBundleEncoder\"];_emwgpuCreateRenderPassEncoder=wasmExports[\"emwgpuCreateRenderPassEncoder\"];_emwgpuCreateRenderPipeline=wasmExports[\"emwgpuCreateRenderPipeline\"];_emwgpuCreateSampler=wasmExports[\"emwgpuCreateSampler\"];_emwgpuCreateSurface=wasmExports[\"emwgpuCreateSurface\"];_emwgpuCreateTexture=wasmExports[\"emwgpuCreateTexture\"];_emwgpuCreateTextureView=wasmExports[\"emwgpuCreateTextureView\"];_emwgpuCreateAdapter=wasmExports[\"emwgpuCreateAdapter\"];_emwgpuCreateBuffer=wasmExports[\"emwgpuCreateBuffer\"];_emwgpuCreateDevice=wasmExports[\"emwgpuCreateDevice\"];_emwgpuCreateQueue=wasmExports[\"emwgpuCreateQueue\"];_emwgpuCreateShaderModule=wasmExports[\"emwgpuCreateShaderModule\"];_emwgpuOnDeviceLostCompleted=wasmExports[\"emwgpuOnDeviceLostCompleted\"];_emwgpuOnMapAsyncCompleted=wasmExports[\"emwgpuOnMapAsyncCompleted\"];_emwgpuOnRequestAdapterCompleted=wasmExports[\"emwgpuOnRequestAdapterCompleted\"];_emwgpuOnRequestDeviceCompleted=wasmExports[\"emwgpuOnRequestDeviceCompleted\"];_emwgpuOnWorkDoneCompleted=wasmExports[\"emwgpuOnWorkDoneCompleted\"];_emwgpuOnUncapturedError=wasmExports[\"emwgpuOnUncapturedError\"];__emscripten_tls_init=wasmExports[\"_emscripten_tls_init\"];_pthread_self=wasmExports[\"pthread_self\"];_emscripten_builtin_memalign=wasmExports[\"emscripten_builtin_memalign\"];__emscripten_thread_init=wasmExports[\"_emscripten_thread_init\"];__emscripten_thread_crashed=wasmExports[\"_emscripten_thread_crashed\"];__emscripten_run_js_on_main_thread=wasmExports[\"_emscripten_run_js_on_main_thread\"];__emscripten_thread_free_data=wasmExports[\"_emscripten_thread_free_data\"];__emscripten_thread_exit=wasmExports[\"_emscripten_thread_exit\"];__emscripten_timeout=wasmExports[\"_emscripten_timeout\"];__emscripten_check_mailbox=wasmExports[\"_emscripten_check_mailbox\"];_memalign=wasmExports[\"memalign\"];___trap=wasmExports[\"__trap\"];_emscripten_stack_set_limits=wasmExports[\"emscripten_stack_set_limits\"];__emscripten_stack_restore=wasmExports[\"_emscripten_stack_restore\"];__emscripten_stack_alloc=wasmExports[\"_emscripten_stack_alloc\"];_emscripten_stack_get_current=wasmExports[\"emscripten_stack_get_current\"];__indirect_function_table=wasmTable=wasmExports[\"__indirect_function_table\"]}var wasmImports;function assignWasmImports(){wasmImports={__asyncjs__js_file_read,__pthread_create_js:___pthread_create_js,__syscall_fcntl64:___syscall_fcntl64,__syscall_getcwd:___syscall_getcwd,__syscall_getdents64:___syscall_getdents64,__syscall_ioctl:___syscall_ioctl,__syscall_openat:___syscall_openat,__syscall_stat64:___syscall_stat64,_abort_js:__abort_js,_emscripten_init_main_thread_js:__emscripten_init_main_thread_js,_emscripten_notify_mailbox_postmessage:__emscripten_notify_mailbox_postmessage,_emscripten_receive_on_main_thread_js:__emscripten_receive_on_main_thread_js,_emscripten_runtime_keepalive_clear:__emscripten_runtime_keepalive_clear,_emscripten_thread_cleanup:__emscripten_thread_cleanup,_emscripten_thread_mailbox_await:__emscripten_thread_mailbox_await,_emscripten_thread_set_strongref:__emscripten_thread_set_strongref,_localtime_js:__localtime_js,_mmap_js:__mmap_js,_munmap_js:__munmap_js,_setitimer_js:__setitimer_js,_tzset_js:__tzset_js,clock_time_get:_clock_time_get,emscripten_check_blocking_allowed:_emscripten_check_blocking_allowed,emscripten_date_now:_emscripten_date_now,emscripten_exit_with_live_runtime:_emscripten_exit_with_live_runtime,emscripten_get_heap_max:_emscripten_get_heap_max,emscripten_get_now:_emscripten_get_now,emscripten_has_asyncify:_emscripten_has_asyncify,emscripten_num_logical_cores:_emscripten_num_logical_cores,emscripten_resize_heap:_emscripten_resize_heap,emwgpuAdapterRequestDevice:_emwgpuAdapterRequestDevice,emwgpuBufferDestroy:_emwgpuBufferDestroy,emwgpuBufferGetConstMappedRange:_emwgpuBufferGetConstMappedRange,emwgpuBufferMapAsync:_emwgpuBufferMapAsync,emwgpuBufferUnmap:_emwgpuBufferUnmap,emwgpuDelete:_emwgpuDelete,emwgpuDeviceCreateBuffer:_emwgpuDeviceCreateBuffer,emwgpuDeviceCreateShaderModule:_emwgpuDeviceCreateShaderModule,emwgpuDeviceDestroy:_emwgpuDeviceDestroy,emwgpuInstanceRequestAdapter:_emwgpuInstanceRequestAdapter,emwgpuQueueOnSubmittedWorkDone:_emwgpuQueueOnSubmittedWorkDone,emwgpuWaitAny:_emwgpuWaitAny,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,exit:_exit,fd_close:_fd_close,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,memory:wasmMemory,proc_exit:_proc_exit,random_get:_random_get,wgpuAdapterGetFeatures:_wgpuAdapterGetFeatures,wgpuAdapterGetInfo:_wgpuAdapterGetInfo,wgpuAdapterGetLimits:_wgpuAdapterGetLimits,wgpuAdapterHasFeature:_wgpuAdapterHasFeature,wgpuBufferGetSize:_wgpuBufferGetSize,wgpuCommandEncoderBeginComputePass:_wgpuCommandEncoderBeginComputePass,wgpuCommandEncoderCopyBufferToBuffer:_wgpuCommandEncoderCopyBufferToBuffer,wgpuCommandEncoderFinish:_wgpuCommandEncoderFinish,wgpuComputePassEncoderDispatchWorkgroups:_wgpuComputePassEncoderDispatchWorkgroups,wgpuComputePassEncoderEnd:_wgpuComputePassEncoderEnd,wgpuComputePassEncoderSetBindGroup:_wgpuComputePassEncoderSetBindGroup,wgpuComputePassEncoderSetPipeline:_wgpuComputePassEncoderSetPipeline,wgpuComputePipelineGetBindGroupLayout:_wgpuComputePipelineGetBindGroupLayout,wgpuDeviceCreateBindGroup:_wgpuDeviceCreateBindGroup,wgpuDeviceCreateCommandEncoder:_wgpuDeviceCreateCommandEncoder,wgpuDeviceCreateComputePipeline:_wgpuDeviceCreateComputePipeline,wgpuQueueSubmit:_wgpuQueueSubmit,wgpuQueueWriteBuffer:_wgpuQueueWriteBuffer}}function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_pp=f=>a0=>Number(f(BigInt(a0)));var makeWrapper__p=f=>a0=>f(BigInt(a0));var makeWrapper___PP=f=>(a0,a1,a2)=>f(a0,BigInt(a1?a1:0),BigInt(a2?a2:0));var makeWrapper_p=f=>()=>Number(f());var makeWrapper_ppp=f=>(a0,a1)=>Number(f(BigInt(a0),BigInt(a1)));var makeWrapper__pp_ppp=f=>(a0,a1,a2,a3,a4,a5)=>f(BigInt(a0),BigInt(a1),a2,BigInt(a3),BigInt(a4),BigInt(a5));var makeWrapper__p_____=f=>(a0,a1,a2,a3,a4,a5)=>f(BigInt(a0),a1,a2,a3,a4,a5);var makeWrapper___p_p_=f=>(a0,a1,a2,a3,a4)=>f(a0,BigInt(a1),a2,BigInt(a3),a4);var makeWrapper__pp=f=>(a0,a1)=>f(BigInt(a0),BigInt(a1));wasmExports[\"malloc\"]=makeWrapper_pp(wasmExports[\"malloc\"]);wasmExports[\"free\"]=makeWrapper__p(wasmExports[\"free\"]);wasmExports[\"main\"]=makeWrapper___PP(wasmExports[\"main\"]);wasmExports[\"pthread_self\"]=makeWrapper_p(wasmExports[\"pthread_self\"]);wasmExports[\"emscripten_builtin_memalign\"]=makeWrapper_ppp(wasmExports[\"emscripten_builtin_memalign\"]);wasmExports[\"_emscripten_run_callback_on_thread\"]=makeWrapper__pp_ppp(wasmExports[\"_emscripten_run_callback_on_thread\"]);wasmExports[\"_emscripten_thread_init\"]=makeWrapper__p_____(wasmExports[\"_emscripten_thread_init\"]);wasmExports[\"_emscripten_run_js_on_main_thread\"]=makeWrapper___p_p_(wasmExports[\"_emscripten_run_js_on_main_thread\"]);wasmExports[\"_emscripten_thread_free_data\"]=makeWrapper__p(wasmExports[\"_emscripten_thread_free_data\"]);wasmExports[\"_emscripten_thread_exit\"]=makeWrapper__p(wasmExports[\"_emscripten_thread_exit\"]);wasmExports[\"memalign\"]=makeWrapper_ppp(wasmExports[\"memalign\"]);wasmExports[\"emscripten_stack_set_limits\"]=makeWrapper__pp(wasmExports[\"emscripten_stack_set_limits\"]);wasmExports[\"_emscripten_stack_restore\"]=makeWrapper__p(wasmExports[\"_emscripten_stack_restore\"]);wasmExports[\"_emscripten_stack_alloc\"]=makeWrapper_pp(wasmExports[\"_emscripten_stack_alloc\"]);wasmExports[\"emscripten_stack_get_current\"]=makeWrapper_p(wasmExports[\"emscripten_stack_get_current\"]);return wasmExports}async function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,BigInt(argv));ret=await ret;exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){dependenciesFulfilled=run;return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}async function doRun(){Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();Module[\"onRuntimeInitialized\"]?.();var noInitialRun=Module[\"noInitialRun\"]||false;if(!noInitialRun)await callMain();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(()=>{setTimeout(()=>Module[\"setStatus\"](\"\"),1);doRun()},1)}else{doRun()}}var wasmExports;if(!ENVIRONMENT_IS_PTHREAD){createWasm();run()}\n"; diff --git a/src/workers-code/llama-cpp.js b/src/workers-code/llama-cpp.js index 224c2b6d..c0b54299 100644 --- a/src/workers-code/llama-cpp.js +++ b/src/workers-code/llama-cpp.js @@ -6,6 +6,7 @@ let wllamaExit; let wllamaDebug; let Module = null; +let isCompat = false; ////////////////////////////////////////////////////////////// // UTILS @@ -30,12 +31,18 @@ const getHeapU8 = () => { return new Uint8Array(buffer); }; +const toSizeT = (num) => { + return isCompat ? Number(num) : BigInt(num); +}; + // Get module config that forwards stdout/err to main thread const getWModuleConfig = (_argMainScriptBlob) => { var pathConfig = RUN_OPTIONS.pathConfig; var pthreadPoolSize = RUN_OPTIONS.nbThread; var argMainScriptBlob = _argMainScriptBlob; + isCompat = RUN_OPTIONS.compat; + if (!pathConfig['wllama.wasm']) { throw new Error('"wllama.wasm" is missing in pathConfig'); } @@ -91,10 +98,10 @@ const getWasmMemory = () => { while (maxBytes > minBytes) { try { const wasmMemory = new WebAssembly.Memory({ - initial: BigInt(minBytes / 65536), - maximum: BigInt(maxBytes / 65536), + initial: toSizeT(minBytes / 65536), + maximum: toSizeT(maxBytes / 65536), shared: true, - address: 'i64', + address: isCompat ? undefined : 'i64', }); return wasmMemory; } catch (e) { @@ -180,7 +187,7 @@ const patchHeapFS = () => { const name = stream.node.name; if (fsNameToFile[name]) { const f = fsNameToFile[name]; - const mmapPtr = f.ptr + BigInt(position); + const mmapPtr = f.ptr + toSizeT(position); return { ptr: mmapPtr, allocated: false, @@ -202,7 +209,7 @@ const heapfsAlloc = (name, size, allocBuffer) => { throw new Error('File size must be bigger than 0'); } const m = Module; - const ptr = BigInt(allocBuffer ? m.mmapAlloc(size) : 0); + const ptr = toSizeT(allocBuffer ? m.mmapAlloc(size) : 0); const file = { ptr: ptr, size: size, @@ -264,7 +271,7 @@ const _wllama_js_file_read = async (path, offset, req_size, out_ptr) => { const bytes = new Uint8Array(data); getHeapU8().set(bytes, out_ptr); - return BigInt(bytes.length); + return toSizeT(bytes.length); }; ////////////////////////////////////////////////////////////// @@ -338,7 +345,7 @@ onmessage = async (e) => { // init FS patchHeapFS(); // init cwrap - const pointer = 'bigint'; + const pointer = isCompat ? 'number' : 'bigint'; // TODO: note sure why emscripten cannot bind if there is only 1 argument wllamaMalloc = callWrapper('wllama_malloc', pointer, [ 'number', @@ -413,7 +420,7 @@ onmessage = async (e) => { const argAction = args[0]; const argEncodedMsg = args[1]; try { - const inputPtr = await wllamaMalloc(BigInt(argEncodedMsg.byteLength), 0); + const inputPtr = await wllamaMalloc(toSizeT(argEncodedMsg.byteLength), 0); // copy data to wasm heap const inputBuffer = new Uint8Array( getHeapU8().buffer, From a7295e00b5f130e755a1cf1de0b77b0454c3f188 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sat, 23 May 2026 15:24:01 +0200 Subject: [PATCH 03/11] v3.2.0 --- compat/package.json | 2 +- package.json | 2 +- src/wasm-from-cdn.ts | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/compat/package.json b/compat/package.json index 644d05f8..c56845a4 100644 --- a/compat/package.json +++ b/compat/package.json @@ -1,6 +1,6 @@ { "name": "@wllama/wllama-compat", - "version": "3.1.1", + "version": "3.2.0", "description": "Optional package providing compatibility with older browsers for @wllama/wllama", "main": "index.js", "type": "module", diff --git a/package.json b/package.json index d5f79b36..ddd7346a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@wllama/wllama", - "version": "3.1.1", + "version": "3.2.0", "description": "WebAssembly binding for llama.cpp - Enabling on-browser LLM inference", "main": "index.js", "type": "module", diff --git a/src/wasm-from-cdn.ts b/src/wasm-from-cdn.ts index ec0b8768..11987cb9 100644 --- a/src/wasm-from-cdn.ts +++ b/src/wasm-from-cdn.ts @@ -2,12 +2,12 @@ // Do not edit this file directly const WasmFromCDN = { - default: 'https://cdn.jsdelivr.net/npm/@wllama/wllama@3.1.1/src/wasm/wllama.wasm', + default: 'https://cdn.jsdelivr.net/npm/@wllama/wllama@3.2.0/src/wasm/wllama.wasm', }; export const WasmCompatFromCDN = { - worker: 'https://cdn.jsdelivr.net/npm/@wllama/wllama-compat@3.1.1/wasm/worker.js', - wasm: 'https://cdn.jsdelivr.net/npm/@wllama/wllama-compat@3.1.1/wasm/wllama.wasm', + worker: 'https://cdn.jsdelivr.net/npm/@wllama/wllama-compat@3.2.0/wasm/worker.js', + wasm: 'https://cdn.jsdelivr.net/npm/@wllama/wllama-compat@3.2.0/wasm/wllama.wasm', }; export default WasmFromCDN; \ No newline at end of file From 1e4605ced8970a037a140b37c8e4ce77fecb250d Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sat, 23 May 2026 15:31:38 +0200 Subject: [PATCH 04/11] change semantic of mode --- compat/README.md | 12 +++++++++--- examples/embeddings/index.html | 4 ++-- examples/main/src/utils/wllama.context.tsx | 2 +- examples/multimodal/index.html | 4 ++-- examples/tools/index.html | 4 ++-- src/wllama.ts | 6 +++--- 6 files changed, 19 insertions(+), 13 deletions(-) diff --git a/compat/README.md b/compat/README.md index 3972da33..0e24978d 100644 --- a/compat/README.md +++ b/compat/README.md @@ -29,10 +29,16 @@ Out of the box, wllama fetches the compat assets from jsDelivr CDN when compat m ### Recommended preset -We recommend to disable the compat mode on Firefox, as the WebGPU on Firefox via compat mode is extremely slow, not usable: +By default (`mode = 'safari'`), compat is disabled on Firefox because WebGPU via compat mode is extremely slow there. This is the recommended behaviour: ```js -wllama.setCompat('default', 'exclude_firefox'); +wllama.setCompat('default'); +``` + +If you also want compat on Firefox (e.g. to reach users without JSPI enabled), pass `'firefox_safari'`: + +```js +wllama.setCompat('default', 'firefox_safari'); ``` ## Disabling compat mode @@ -78,5 +84,5 @@ export const WLLAMA_COMPAT_CONFIG = { }; const instance = new Wllama(WLLAMA_CONFIG_PATHS, { logger: DebugLogger }); -instance.setCompat(WLLAMA_COMPAT_CONFIG, 'exclude_firefox'); +instance.setCompat(WLLAMA_COMPAT_CONFIG); ``` diff --git a/examples/embeddings/index.html b/examples/embeddings/index.html index 656b7aa6..3373088c 100644 --- a/examples/embeddings/index.html +++ b/examples/embeddings/index.html @@ -40,9 +40,9 @@ wllama.setCompat({ wasm: '../../compat/wasm/wllama.wasm', worker: '../../compat/wasm/wllama.js', - }, 'exclude_firefox'); + }); } else { - wllama.setCompat('default', 'exclude_firefox'); + wllama.setCompat('default'); } print(`DEMO EMBEDDINGS`); diff --git a/examples/main/src/utils/wllama.context.tsx b/examples/main/src/utils/wllama.context.tsx index bc95a5b9..b3f9586e 100644 --- a/examples/main/src/utils/wllama.context.tsx +++ b/examples/main/src/utils/wllama.context.tsx @@ -65,7 +65,7 @@ const WllamaContext = createContext({} as any); const createWllamaInstance = () => { const instance = new Wllama(WLLAMA_CONFIG_PATHS, { logger: DebugLogger }); - instance.setCompat(WLLAMA_COMPAT_CONFIG, 'exclude_firefox'); + instance.setCompat(WLLAMA_COMPAT_CONFIG); return instance; }; diff --git a/examples/multimodal/index.html b/examples/multimodal/index.html index 666ca541..62edaca3 100644 --- a/examples/multimodal/index.html +++ b/examples/multimodal/index.html @@ -227,7 +227,7 @@

    Multimodal (Vision) Completion

    'exclude_firefox' ); } else { - wllama.setCompat('default', 'exclude_firefox'); + wllama.setCompat('default'); } const makeProgressCallback = @@ -269,7 +269,7 @@

    Multimodal (Vision) Completion

    'exclude_firefox' ); } else { - wllama.setCompat('default', 'exclude_firefox'); + wllama.setCompat('default'); } try { await wllama.loadModel(Array.from(files)); diff --git a/examples/tools/index.html b/examples/tools/index.html index 46a75cb4..8be14f5c 100644 --- a/examples/tools/index.html +++ b/examples/tools/index.html @@ -621,7 +621,7 @@

    Tool Calling Demo (OAI-compat API)

    'exclude_firefox' ); } else { - wllama.setCompat('default', 'exclude_firefox'); + wllama.setCompat('default'); } try { await wllama.loadModelFromHF(MODEL_HF, { @@ -656,7 +656,7 @@

    Tool Calling Demo (OAI-compat API)

    'exclude_firefox' ); } else { - wllama.setCompat('default', 'exclude_firefox'); + wllama.setCompat('default'); } try { await wllama.loadModel([file]); diff --git a/src/wllama.ts b/src/wllama.ts index 1aa73ba2..6fe889c5 100644 --- a/src/wllama.ts +++ b/src/wllama.ts @@ -215,13 +215,13 @@ export class Wllama { /** * Set compatibility options for Wllama. * @param compat Set to null to disable compatibility, or 'default' to use the default compat resources from CDN. - * @param mode If set to 'exclude_firefox', disable compatibility only on Firefox (not WebGPU, but allow better performance) + * @param mode 'safari' by default; If set to 'firefox_safari', the compat mode will **also** be enabled on Firefox, which will significantly degrade the performance but allow using WebGPU on Firefox. */ setCompat( compat: WllamaCompat | null | 'default', - mode?: 'exclude_firefox' | undefined + mode: 'safari' | 'firefox_safari' = 'safari' ) { - if (mode === 'exclude_firefox') { + if (mode === 'safari') { if (isFirefox()) { this.compat = null; return; From b1a42969a38c6be84d58c2d1fb1f0917e679bed3 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sat, 23 May 2026 15:32:46 +0200 Subject: [PATCH 05/11] unused var --- src/wllama.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/wllama.ts b/src/wllama.ts index 6fe889c5..faa744dc 100644 --- a/src/wllama.ts +++ b/src/wllama.ts @@ -6,7 +6,6 @@ import { checkEnvironmentCompatible, isFirefox, isString, - isSupportJSPI, isSupportMultiThread, isSupportWebGPU, MMPROJ_FILE_NAME, From 955499f567e476e8fbf413b97890474c79d5a910 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sat, 23 May 2026 15:57:23 +0200 Subject: [PATCH 06/11] fix more bugs --- CMakeLists.txt | 2 +- compat/README.md | 4 ++-- compat/{index.ts => index.js} | 0 compat/wasm/wllama.js | 2 +- examples/basic/index.html | 4 +++- examples/main/src/config.ts | 11 +++-------- examples/main/src/vite-env.d.ts | 6 ++++++ examples/main/vite.config.ts | 33 ++++++++++++++++++++++++++++++++ src/mjs.test.ts | 3 +++ src/wasm/wllama.js | 2 +- src/wasm/wllama.wasm | Bin 7435174 -> 7435174 bytes src/wllama.test.ts | 33 +++++++++++++++++++------------- src/wllama.ts | 3 ++- src/wllama.wgpu.test.ts | 13 ++++++++++--- src/worker.ts | 5 +++++ src/workers-code/generated.ts | 2 +- 16 files changed, 91 insertions(+), 32 deletions(-) rename compat/{index.ts => index.js} (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0a9e12f2..bcaae03f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,7 +22,7 @@ set(WLLAMA_LINK_OPTIONS -sALLOW_MEMORY_GROWTH=1 -sFORCE_FILESYSTEM=1 -sEXPORTED_FUNCTIONS=_main,_wllama_malloc,_wllama_start,_wllama_action,_wllama_exit,_wllama_debug - -sEXPORTED_RUNTIME_METHODS=ccall,cwrap,HEAPU8,MEMFS,FS,mmapAlloc + -sEXPORTED_RUNTIME_METHODS=ccall,cwrap,HEAPU8,MEMFS,FS,mmapAlloc,ENV,wasmMemory -sNO_EXIT_RUNTIME=1 -sIMPORTED_MEMORY=1 -sPTHREAD_POOL_SIZE=Module[\"pthreadPoolSize\"] diff --git a/compat/README.md b/compat/README.md index 0e24978d..1b3d101c 100644 --- a/compat/README.md +++ b/compat/README.md @@ -70,11 +70,11 @@ wllama.setCompat({ }); ``` -**IMPORTANT**: for Vite, you will need to import it as `?raw` +**IMPORTANT**: for Vite, you will need to import the JS as `?raw` ```ts import compatWasm from '@wllama/wllama-compat/wasm/wllama.wasm?url'; -import compatWorker from '@wllama/wllama-compat/wasm/wllama.js?raw'; +import compatWorker from '@wllama/wllama-compat/wasm/wllama.js?raw'; // IMPORTANT: ?raw, NOT ?url export const WLLAMA_COMPAT_CONFIG = { wasm: compatWasm, diff --git a/compat/index.ts b/compat/index.js similarity index 100% rename from compat/index.ts rename to compat/index.js diff --git a/compat/wasm/wllama.js b/compat/wasm/wllama.js index 42ed97d2..41016b8f 100644 --- a/compat/wasm/wllama.js +++ b/compat/wasm/wllama.js @@ -1 +1 @@ -var Module=typeof Module!="undefined"?Module:{};var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";var ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&self.name?.startsWith("em-pthread");if(ENVIRONMENT_IS_NODE){var worker_threads=require("worker_threads");global.Worker=worker_threads.Worker;ENVIRONMENT_IS_WORKER=!worker_threads.isMainThread;ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&worker_threads["workerData"]=="em-pthread"}var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=globalThis.document?.currentScript?.src;if(typeof __filename!="undefined"){_scriptName=__filename}else if(ENVIRONMENT_IS_WORKER){_scriptName=self.location.href}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");scriptDirectory=__dirname+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module}quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}if(!ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var defaultPrint=console.log.bind(console);var defaultPrintErr=console.error.bind(console);if(ENVIRONMENT_IS_NODE){var utils=require("util");var stringify=a=>typeof a=="object"?utils.inspect(a):a;defaultPrint=(...args)=>fs.writeSync(1,args.map(stringify).join(" ")+"\n");defaultPrintErr=(...args)=>fs.writeSync(2,args.map(stringify).join(" ")+"\n")}var out=defaultPrint;var err=defaultPrintErr;var wasmBinary;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var isFileURI=filename=>filename.startsWith("file://");function growMemViews(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}}if(ENVIRONMENT_IS_NODE&&ENVIRONMENT_IS_PTHREAD){var parentPort=worker_threads["parentPort"];parentPort.on("message",msg=>global.onmessage?.({data:msg}));Object.assign(globalThis,{self:global,postMessage:msg=>parentPort["postMessage"](msg)});process.on("uncaughtException",err=>{postMessage({cmd:"uncaughtException",error:err});process.exit(1)})}var startWorker;if(ENVIRONMENT_IS_PTHREAD){var initializedJS=false;self.onunhandledrejection=e=>{throw e.reason||e};function handleMessage(e){try{var msgData=e["data"];var cmd=msgData.cmd;if(cmd==="load"){let messageQueue=[];self.onmessage=e=>messageQueue.push(e);startWorker=()=>{postMessage({cmd:"loaded"});for(let msg of messageQueue){handleMessage(msg)}self.onmessage=handleMessage};for(const handler of msgData.handlers){if(!Module[handler]||Module[handler].proxy){Module[handler]=(...args)=>{postMessage({cmd:"callHandler",handler,args})};if(handler=="print")out=Module[handler];if(handler=="printErr")err=Module[handler]}}wasmMemory=msgData.wasmMemory;updateMemoryViews();wasmModule=msgData.wasmModule;createWasm();run()}else if(cmd==="run"){establishStackSpace(msgData.pthread_ptr);__emscripten_thread_init(msgData.pthread_ptr,0,0,1,0,0);PThread.threadInitTLS();__emscripten_thread_mailbox_await(msgData.pthread_ptr);if(!initializedJS){initializedJS=true}try{invokeEntryPoint(msgData.start_routine,msgData.arg)}catch(ex){if(ex!="unwind"){throw ex}}}else if(msgData.target==="setimmediate"){}else if(cmd==="checkMailbox"){if(initializedJS){checkMailbox()}}else if(cmd){err(`worker: received unknown command ${cmd}`);err(msgData)}}catch(ex){__emscripten_thread_crashed();throw ex}}self.onmessage=handleMessage}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function initMemory(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||134217728;wasmMemory=new WebAssembly.Memory({initial:INITIAL_MEMORY/65536,maximum:65536,shared:true})}updateMemoryViews()}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return startWorker();if(!Module["noFSInit"]&&!FS.initialized)FS.init();TTY.init();wasmExports["cc"]();FS.ignorePermissions=false}function preMain(){}function postRun(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var wasmBinaryFile;function findWasmBinary(){return locateFile("wllama.wasm")}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){assignWasmImports();var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmExports=applySignatureConversions(wasmExports);registerTLSInit(wasmExports["Nc"]);assignWasmExports(wasmExports);wasmModule=module;removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){return receiveInstance(result["instance"],result["module"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}if(ENVIRONMENT_IS_PTHREAD){var instance=new WebAssembly.Instance(wasmModule,getWasmImports());return receiveInstance(instance,wasmModule)}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var terminateWorker=worker=>{worker.terminate();worker.onmessage=e=>{}};var cleanupThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];PThread.returnWorkerToPool(worker)};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}};var addRunDependency=id=>{runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)};var spawnThread=threadParams=>{var worker=PThread.getNewWorker();if(!worker){return 6}PThread.runningWorkers.push(worker);PThread.pthreads[threadParams.pthread_ptr]=worker;worker.pthread_ptr=threadParams.pthread_ptr;var msg={cmd:"run",start_routine:threadParams.startRoutine,arg:threadParams.arg,pthread_ptr:threadParams.pthread_ptr};if(ENVIRONMENT_IS_NODE){worker.unref()}worker.postMessage(msg,threadParams.transferList);return 0};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var stackSave=()=>_emscripten_stack_get_current();var stackRestore=val=>__emscripten_stack_restore(val);var stackAlloc=sz=>__emscripten_stack_alloc(sz);var proxyToMainThread=(funcIndex,emAsmAddr,sync,...callArgs)=>{var serializedNumCallArgs=callArgs.length*2;var sp=stackSave();var args=stackAlloc(serializedNumCallArgs*8);var b=args>>>3;for(var i=0;i>>0]=1n;(growMemViews(),HEAP64)[b+2*i+1>>>0]=arg}else{(growMemViews(),HEAP64)[b+2*i>>>0]=0n;(growMemViews(),HEAPF64)[b+2*i+1>>>0]=arg}}var rtn=__emscripten_run_js_on_main_thread(funcIndex,emAsmAddr,serializedNumCallArgs,args,sync);stackRestore(sp);return rtn};function _proc_exit(code){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(0,0,1,code);EXITSTATUS=code;if(!keepRuntimeAlive()){PThread.terminateAllThreads();Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))}function exitOnMainThread(returnCode){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(1,0,0,returnCode);_exit(returnCode)}var exitJS=(status,implicit)=>{EXITSTATUS=status;if(ENVIRONMENT_IS_PTHREAD){exitOnMainThread(status);throw"unwind"}_proc_exit(status)};var _exit=exitJS;var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init(){if(!ENVIRONMENT_IS_PTHREAD){PThread.initMainThread()}},initMainThread(){var pthreadPoolSize=Module["pthreadPoolSize"];while(pthreadPoolSize--){PThread.allocateUnusedWorker()}addOnPreRun(async()=>{var pthreadPoolReady=PThread.loadWasmModuleToAllWorkers();addRunDependency("loading-workers");await pthreadPoolReady;removeRunDependency("loading-workers")})},terminateAllThreads:()=>{for(var worker of PThread.runningWorkers){terminateWorker(worker)}for(var worker of PThread.unusedWorkers){terminateWorker(worker)}PThread.unusedWorkers=[];PThread.runningWorkers=[];PThread.pthreads={}},returnWorkerToPool:worker=>{var pthread_ptr=worker.pthread_ptr;delete PThread.pthreads[pthread_ptr];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);worker.pthread_ptr=0;__emscripten_thread_free_data(pthread_ptr)},threadInitTLS(){PThread.tlsInitFunctions.forEach(f=>f())},loadWasmModuleToWorker:worker=>new Promise(onFinishedLoading=>{worker.onmessage=e=>{var d=e["data"];var cmd=d.cmd;if(d.targetThread&&d.targetThread!=_pthread_self()){var targetWorker=PThread.pthreads[d.targetThread];if(targetWorker){targetWorker.postMessage(d,d.transferList)}else{err(`Internal error! Worker sent a message "${cmd}" to target pthread ${d.targetThread}, but that thread no longer exists!`)}return}if(cmd==="checkMailbox"){checkMailbox()}else if(cmd==="spawnThread"){spawnThread(d)}else if(cmd==="cleanupThread"){callUserCallback(()=>cleanupThread(d.thread))}else if(cmd==="loaded"){worker.loaded=true;if(ENVIRONMENT_IS_NODE&&!worker.pthread_ptr){worker.unref()}onFinishedLoading(worker)}else if(d.target==="setimmediate"){worker.postMessage(d)}else if(cmd==="uncaughtException"){worker.onerror(d.error)}else if(cmd==="callHandler"){Module[d.handler](...d.args)}else if(cmd){err(`worker sent an unknown command ${cmd}`)}};worker.onerror=e=>{var message="worker sent an error!";err(`${message} ${e.filename}:${e.lineno}: ${e.message}`);throw e};if(ENVIRONMENT_IS_NODE){worker.on("message",data=>worker.onmessage({data}));worker.on("error",e=>worker.onerror(e))}var handlers=[];var knownHandlers=["onExit","onAbort","print","printErr"];for(var handler of knownHandlers){if(Module.propertyIsEnumerable(handler)){handlers.push(handler)}}worker.postMessage({cmd:"load",handlers,wasmMemory,wasmModule})}),async loadWasmModuleToAllWorkers(){if(ENVIRONMENT_IS_PTHREAD){return}let pthreadPoolReady=Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker));return pthreadPoolReady},allocateUnusedWorker(){var worker;var pthreadMainJs=_scriptName;if(Module["mainScriptUrlOrBlob"]){pthreadMainJs=Module["mainScriptUrlOrBlob"];if(typeof pthreadMainJs!="string"){pthreadMainJs=URL.createObjectURL(pthreadMainJs)}}worker=new Worker(pthreadMainJs,{workerData:"em-pthread",name:"em-pthread"});PThread.unusedWorkers.push(worker)},getNewWorker(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var dynCalls={};function establishStackSpace(pthread_ptr){var stackHigh=(growMemViews(),HEAPU32)[pthread_ptr+52>>>2>>>0];var stackSize=(growMemViews(),HEAPU32)[pthread_ptr+56>>>2>>>0];var stackLow=stackHigh-stackSize;_emscripten_stack_set_limits(stackHigh,stackLow);stackRestore(stackHigh)}var invokeEntryPoint=(ptr,arg)=>{runtimeKeepaliveCounter=0;noExitRuntime=0;var result=(a1=>dynCall_ii(ptr,a1))(arg);function finish(result){if(keepRuntimeAlive()){EXITSTATUS=result;return}__emscripten_thread_exit(result)}finish(result)};invokeEntryPoint.isAsync=true;var noExitRuntime=true;var registerTLSInit=tlsInitFunc=>PThread.tlsInitFunctions.push(tlsInitFunc);var wasmMemory;var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>numINT53_MAX?NaN:Number(num);var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{idx>>>=0;var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.buffer instanceof ArrayBuffer?heapOrArray.subarray(idx,endPtr):heapOrArray.slice(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>{ptr>>>=0;return ptr?UTF8ArrayToString((growMemViews(),HEAPU8),ptr,maxBytesToRead,ignoreNul):""};var exceptionCaught=[];var uncaughtExceptionCount=0;function ___cxa_begin_catch(ptr){ptr>>>=0;var info=new ExceptionInfo(ptr);if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(info);___cxa_increment_exception_refcount(ptr);return ___cxa_get_exception_ptr(ptr)}function ___cxa_current_primary_exception(){if(!exceptionCaught.length){return 0}var info=exceptionCaught[exceptionCaught.length-1];___cxa_increment_exception_refcount(info.excPtr);return info.excPtr}var exceptionLast=0;var ___cxa_end_catch=()=>{_setThrew(0,0);var info=exceptionCaught.pop();___cxa_decrement_exception_refcount(info.excPtr);exceptionLast=0};class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){(growMemViews(),HEAPU32)[this.ptr+4>>>2>>>0]=type}get_type(){return(growMemViews(),HEAPU32)[this.ptr+4>>>2>>>0]}set_destructor(destructor){(growMemViews(),HEAPU32)[this.ptr+8>>>2>>>0]=destructor}get_destructor(){return(growMemViews(),HEAPU32)[this.ptr+8>>>2>>>0]}set_caught(caught){caught=caught?1:0;(growMemViews(),HEAP8)[this.ptr+12>>>0]=caught}get_caught(){return(growMemViews(),HEAP8)[this.ptr+12>>>0]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;(growMemViews(),HEAP8)[this.ptr+13>>>0]=rethrown}get_rethrown(){return(growMemViews(),HEAP8)[this.ptr+13>>>0]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){(growMemViews(),HEAPU32)[this.ptr+16>>>2>>>0]=adjustedPtr}get_adjusted_ptr(){return(growMemViews(),HEAPU32)[this.ptr+16>>>2>>>0]}}var setTempRet0=val=>__emscripten_tempret_set(val);var findMatchingCatch=args=>{var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0}var info=new ExceptionInfo(thrown);info.set_adjusted_ptr(thrown);var thrownType=info.get_type();if(!thrownType){setTempRet0(0);return thrown}for(var caughtType of args){if(caughtType===0||caughtType===thrownType){break}var adjusted_ptr_addr=info.ptr+16;if(___cxa_can_catch(caughtType,thrownType,adjusted_ptr_addr)){setTempRet0(caughtType);return thrown}}setTempRet0(thrownType);return thrown};function ___cxa_find_matching_catch_2(){return findMatchingCatch([])}function ___cxa_find_matching_catch_3(arg0){arg0>>>=0;return findMatchingCatch([arg0])}function ___cxa_find_matching_catch_4(arg0,arg1){arg0>>>=0;arg1>>>=0;return findMatchingCatch([arg0,arg1])}function ___cxa_find_matching_catch_7(arg0,arg1,arg2,arg3,arg4){arg0>>>=0;arg1>>>=0;arg2>>>=0;arg3>>>=0;arg4>>>=0;return findMatchingCatch([arg0,arg1,arg2,arg3,arg4])}var ___cxa_rethrow=()=>{var info=exceptionCaught.pop();if(!info){abort("no exception to throw")}var ptr=info.excPtr;if(!info.get_rethrown()){exceptionCaught.push(info);info.set_rethrown(true);info.set_caught(false);uncaughtExceptionCount++}exceptionLast=ptr;throw exceptionLast};function ___cxa_rethrow_primary_exception(ptr){ptr>>>=0;if(!ptr)return;var info=new ExceptionInfo(ptr);exceptionCaught.push(info);info.set_rethrown(true);___cxa_rethrow()}function ___cxa_throw(ptr,type,destructor){ptr>>>=0;type>>>=0;destructor>>>=0;var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast}var ___cxa_uncaught_exceptions=()=>uncaughtExceptionCount;function pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(2,0,1,pthread_ptr,attr,startRoutine,arg);return ___pthread_create_js(pthread_ptr,attr,startRoutine,arg)}var _emscripten_has_threading_support=()=>!!globalThis.SharedArrayBuffer;function ___pthread_create_js(pthread_ptr,attr,startRoutine,arg){pthread_ptr>>>=0;attr>>>=0;startRoutine>>>=0;arg>>>=0;if(!_emscripten_has_threading_support()){return 6}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg)}if(error)return error;var threadParams={startRoutine,pthread_ptr,arg,transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function ___resumeException(ptr){ptr>>>=0;if(!exceptionLast){exceptionLast=ptr}throw exceptionLast}var syscallGetVarargI=()=>{var ret=(growMemViews(),HEAP32)[+SYSCALLS.varargs>>>2>>>0];SYSCALLS.varargs+=4;return ret};var syscallGetVarargP=syscallGetVarargI;var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\/]+|\/)\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(ENVIRONMENT_IS_NODE){var nodeCrypto=require("crypto");return view=>nodeCrypto.randomFillSync(view)}return view=>view.set(crypto.getRandomValues(new Uint8Array(view.byteLength)))};var randomFill=view=>{(randomFill=initRandomFill())(view)};var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{outIdx>>>=0;if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=endIdx)break;heap[outIdx++>>>0]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++>>>0]=192|u>>6;heap[outIdx++>>>0]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++>>>0]=224|u>>12;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++>>>0]=240|u>>18;heap[outIdx++>>>0]=128|u>>12&63;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63;i++}}heap[outIdx>>>0]=0;return outIdx-startIdx};var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}}else if(globalThis.window?.prompt){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var zeroMemory=(ptr,size)=>(growMemViews(),HEAPU8).fill(0,ptr,ptr+size);var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(ptr)zeroMemory(ptr,size);return ptr};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of["mode","atime","mtime","ctime"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){if(!MEMFS.doesNotExistError){MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack=""}throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[".","..",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length>>0)}}return{ptr,allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var FS_modeStringToFlags=str=>{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var getUniqueRunDependency=id=>id;var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!="undefined")Browser.init();for(var plugin of preloadPlugins){if(plugin["canHandle"](fullname)){return plugin["handle"](byteArray,fullname)}}return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);addRunDependency(dep);try{var byteArray=url;if(typeof url=="string"){byteArray=await asyncLoad(url)}byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}}finally{removeRunDependency(dep)}};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+"/"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&(512|64)){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}for(var mount of mounts){if(mount.type.syncfs){mount.type.syncfs(mount,populate,done)}else{done(null)}}},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);for(var[hash,current]of Object.entries(FS.nameTable)){while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}}node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name==="."||name===".."){throw new FS.ErrnoError(20)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+="/";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path=="object"){node=path}else{isDirPath=path.endsWith("/");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}if(Module["logReadFiles"]&&!(flags&1)){if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){abort(`Invalid encoding type "${opts.encoding}"`)}var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){buf=UTF8ArrayToString(buf)}FS.close(stream);return buf},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){data=new Uint8Array(intArrayFromString(data,true))}if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{abort("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},"/proc/self/fd")},createStandardStreams(input,output,error){if(input){FS.createDevice("/dev","stdin",input)}else{FS.symlink("/dev/tty","/dev/stdin")}if(output){FS.createDevice("/dev","stdout",null,output)}else{FS.symlink("/dev/tty","/dev/stdout")}if(error){FS.createDevice("/dev","stderr",null,error)}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){FS.initialized=true;input??=Module["stdin"];output??=Module["stdout"];error??=Module["stderr"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)abort("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)abort("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")abort("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(globalThis.XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)abort("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};for(const[key,fn]of Object.entries(node.stream_ops)){stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}}function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,(growMemViews(),HEAP8),ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+"/"+path},writeStat(buf,stat){(growMemViews(),HEAPU32)[buf>>>2>>>0]=stat.dev;(growMemViews(),HEAPU32)[buf+4>>>2>>>0]=stat.mode;(growMemViews(),HEAPU32)[buf+8>>>2>>>0]=stat.nlink;(growMemViews(),HEAPU32)[buf+12>>>2>>>0]=stat.uid;(growMemViews(),HEAPU32)[buf+16>>>2>>>0]=stat.gid;(growMemViews(),HEAPU32)[buf+20>>>2>>>0]=stat.rdev;(growMemViews(),HEAP64)[buf+24>>>3>>>0]=BigInt(stat.size);(growMemViews(),HEAP32)[buf+32>>>2>>>0]=4096;(growMemViews(),HEAP32)[buf+36>>>2>>>0]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();(growMemViews(),HEAP64)[buf+40>>>3>>>0]=BigInt(Math.floor(atime/1e3));(growMemViews(),HEAPU32)[buf+48>>>2>>>0]=atime%1e3*1e3*1e3;(growMemViews(),HEAP64)[buf+56>>>3>>>0]=BigInt(Math.floor(mtime/1e3));(growMemViews(),HEAPU32)[buf+64>>>2>>>0]=mtime%1e3*1e3*1e3;(growMemViews(),HEAP64)[buf+72>>>3>>>0]=BigInt(Math.floor(ctime/1e3));(growMemViews(),HEAPU32)[buf+80>>>2>>>0]=ctime%1e3*1e3*1e3;(growMemViews(),HEAP64)[buf+88>>>3>>>0]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){(growMemViews(),HEAPU32)[buf+4>>>2>>>0]=stats.bsize;(growMemViews(),HEAPU32)[buf+60>>>2>>>0]=stats.bsize;(growMemViews(),HEAP64)[buf+8>>>3>>>0]=BigInt(stats.blocks);(growMemViews(),HEAP64)[buf+16>>>3>>>0]=BigInt(stats.bfree);(growMemViews(),HEAP64)[buf+24>>>3>>>0]=BigInt(stats.bavail);(growMemViews(),HEAP64)[buf+32>>>3>>>0]=BigInt(stats.files);(growMemViews(),HEAP64)[buf+40>>>3>>>0]=BigInt(stats.ffree);(growMemViews(),HEAPU32)[buf+48>>>2>>>0]=stats.fsid;(growMemViews(),HEAPU32)[buf+64>>>2>>>0]=stats.flags;(growMemViews(),HEAPU32)[buf+56>>>2>>>0]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=(growMemViews(),HEAPU8).slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(3,0,1,fd,cmd,varargs);varargs>>>=0;SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;(growMemViews(),HEAP16)[arg+offset>>>1>>>0]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(4,0,1,fd,buf);buf>>>=0;try{return SYSCALLS.writeStat(buf,FS.fstat(fd))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,(growMemViews(),HEAPU8),outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(5,0,1,buf,size);buf>>>=0;size>>>=0;try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(size>>=0;count>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);stream.getdents||=FS.readdir(stream.path);var struct_size=280;var pos=0;var off=FS.llseek(stream,0,1);var startIdx=Math.floor(off/struct_size);var endIdx=Math.min(stream.getdents.length,startIdx+Math.floor(count/struct_size));for(var idx=startIdx;idx>>3>>>0]=BigInt(id);(growMemViews(),HEAP64)[dirp+pos+8>>>3>>>0]=BigInt((idx+1)*struct_size);(growMemViews(),HEAP16)[dirp+pos+16>>>1>>>0]=280;(growMemViews(),HEAP8)[dirp+pos+18>>>0]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(7,0,1,fd,op,varargs);varargs>>>=0;SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();(growMemViews(),HEAP32)[argp>>>2>>>0]=termios.c_iflag||0;(growMemViews(),HEAP32)[argp+4>>>2>>>0]=termios.c_oflag||0;(growMemViews(),HEAP32)[argp+8>>>2>>>0]=termios.c_cflag||0;(growMemViews(),HEAP32)[argp+12>>>2>>>0]=termios.c_lflag||0;for(var i=0;i<32;i++){(growMemViews(),HEAP8)[argp+i+17>>>0]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=syscallGetVarargP();var c_iflag=(growMemViews(),HEAP32)[argp>>>2>>>0];var c_oflag=(growMemViews(),HEAP32)[argp+4>>>2>>>0];var c_cflag=(growMemViews(),HEAP32)[argp+8>>>2>>>0];var c_lflag=(growMemViews(),HEAP32)[argp+12>>>2>>>0];var c_cc=[];for(var i=0;i<32;i++){c_cc.push((growMemViews(),HEAP8)[argp+i+17>>>0])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag,c_oflag,c_cflag,c_lflag,c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=syscallGetVarargP();(growMemViews(),HEAP32)[argp>>>2>>>0]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21537:case 21531:{var argp=syscallGetVarargP();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=syscallGetVarargP();(growMemViews(),HEAP16)[argp>>>1>>>0]=winsize[0];(growMemViews(),HEAP16)[argp+2>>>1>>>0]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_lstat64(path,buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(8,0,1,path,buf);path>>>=0;buf>>>=0;try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.lstat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(9,0,1,dirfd,path,buf,flags);path>>>=0;buf>>>=0;try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.writeStat(buf,nofollow?FS.lstat(path):FS.stat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(10,0,1,dirfd,path,flags,varargs);path>>>=0;varargs>>>=0;SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(11,0,1,path,buf);path>>>=0;buf>>>=0;try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.stat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __abort_js=()=>abort("");function __emscripten_init_main_thread_js(tb){tb>>>=0;__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1,!ENVIRONMENT_IS_WEB,65536,false);PThread.threadInitTLS()}var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var maybeExit=()=>{if(!keepRuntimeAlive()){try{if(ENVIRONMENT_IS_PTHREAD){if(_pthread_self())__emscripten_thread_exit(EXITSTATUS);return}_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};function __emscripten_thread_mailbox_await(pthread_ptr){pthread_ptr>>>=0;if(Atomics.waitAsync){var wait=Atomics.waitAsync((growMemViews(),HEAP32),pthread_ptr>>>2,pthread_ptr);wait.value.then(checkMailbox);var waitingAsync=pthread_ptr+128;Atomics.store((growMemViews(),HEAP32),waitingAsync>>>2,1)}}var checkMailbox=()=>callUserCallback(()=>{var pthread_ptr=_pthread_self();if(pthread_ptr){__emscripten_thread_mailbox_await(pthread_ptr);__emscripten_check_mailbox()}});function __emscripten_notify_mailbox_postmessage(targetThread,currThreadId){targetThread>>>=0;currThreadId>>>=0;if(targetThread==currThreadId){setTimeout(checkMailbox)}else if(ENVIRONMENT_IS_PTHREAD){postMessage({targetThread,cmd:"checkMailbox"})}else{var worker=PThread.pthreads[targetThread];if(!worker){return}worker.postMessage({cmd:"checkMailbox"})}}var proxiedJSCallArgs=[];function __emscripten_receive_on_main_thread_js(funcIndex,emAsmAddr,callingThread,numCallArgs,args){emAsmAddr>>>=0;callingThread>>>=0;args>>>=0;numCallArgs/=2;proxiedJSCallArgs.length=numCallArgs;var b=args>>>3;for(var i=0;i>>0]){proxiedJSCallArgs[i]=(growMemViews(),HEAP64)[b+2*i+1>>>0]}else{proxiedJSCallArgs[i]=(growMemViews(),HEAPF64)[b+2*i+1>>>0]}}var func=proxiedFunctionTable[funcIndex];PThread.currentProxiedOperationCallerThread=callingThread;var rtn=func(...proxiedJSCallArgs);PThread.currentProxiedOperationCallerThread=0;return rtn}var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};function __emscripten_thread_cleanup(thread){thread>>>=0;if(!ENVIRONMENT_IS_PTHREAD)cleanupThread(thread);else postMessage({cmd:"cleanupThread",thread})}function __emscripten_thread_set_strongref(thread){thread>>>=0;if(ENVIRONMENT_IS_NODE){PThread.pthreads[thread].ref()}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time,tmPtr){time=bigintToI53Checked(time);tmPtr>>>=0;var date=new Date(time*1e3);(growMemViews(),HEAP32)[tmPtr>>>2>>>0]=date.getSeconds();(growMemViews(),HEAP32)[tmPtr+4>>>2>>>0]=date.getMinutes();(growMemViews(),HEAP32)[tmPtr+8>>>2>>>0]=date.getHours();(growMemViews(),HEAP32)[tmPtr+12>>>2>>>0]=date.getDate();(growMemViews(),HEAP32)[tmPtr+16>>>2>>>0]=date.getMonth();(growMemViews(),HEAP32)[tmPtr+20>>>2>>>0]=date.getFullYear()-1900;(growMemViews(),HEAP32)[tmPtr+24>>>2>>>0]=date.getDay();var yday=ydayFromDate(date)|0;(growMemViews(),HEAP32)[tmPtr+28>>>2>>>0]=yday;(growMemViews(),HEAP32)[tmPtr+36>>>2>>>0]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;(growMemViews(),HEAP32)[tmPtr+32>>>2>>>0]=dst}function __mmap_js(len,prot,flags,fd,offset,allocated,addr){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(12,0,1,len,prot,flags,fd,offset,allocated,addr);len>>>=0;offset=bigintToI53Checked(offset);allocated>>>=0;addr>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;(growMemViews(),HEAP32)[allocated>>>2>>>0]=res.allocated;(growMemViews(),HEAPU32)[addr>>>2>>>0]=ptr;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(13,0,1,addr,len,prot,flags,fd,offset);addr>>>=0;len>>>=0;offset=bigintToI53Checked(offset);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var timers={};var _emscripten_get_now=()=>performance.timeOrigin+performance.now();function __setitimer_js(which,timeout_ms){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(14,0,1,which,timeout_ms);if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0}var __tzset_js=function(timezone,daylight,std_name,dst_name){timezone>>>=0;daylight>>>=0;std_name>>>=0;dst_name>>>=0;var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);(growMemViews(),HEAPU32)[timezone>>>2>>>0]=stdTimezoneOffset*60;(growMemViews(),HEAP32)[daylight>>>2>>>0]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffsetDate.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);ptime>>>=0;if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);(growMemViews(),HEAP64)[ptime>>>3>>>0]=BigInt(nsec);return 0}var _emscripten_check_blocking_allowed=()=>{};var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};var _emscripten_exit_with_live_runtime=()=>{runtimeKeepalivePush();throw"unwind"};var getHeapMax=()=>4294901760;function _emscripten_get_heap_max(){return getHeapMax()}var _emscripten_has_asyncify=()=>1;var _emscripten_num_logical_cores=()=>ENVIRONMENT_IS_NODE?require("os").cpus().length:navigator["hardwareConcurrency"];var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};function _emscripten_resize_heap(requestedSize){requestedSize>>>=0;var oldSize=(growMemViews(),HEAPU8).length;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false}var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var writeI53ToI64=(ptr,num)=>{(growMemViews(),HEAPU32)[ptr>>>2>>>0]=num;var lower=(growMemViews(),HEAPU32)[ptr>>>2>>>0];(growMemViews(),HEAPU32)[ptr+4>>>2>>>0]=(num-lower)/4294967296};var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var readI53FromI64=ptr=>(growMemViews(),HEAPU32)[ptr>>>2>>>0]+(growMemViews(),HEAP32)[ptr+4>>>2>>>0]*4294967296;var WebGPU={Internals:{jsObjects:[],jsObjectInsert:(ptr,jsObject)=>{ptr>>>=0;WebGPU.Internals.jsObjects[ptr]=jsObject},bufferOnUnmaps:[],futures:[],futureInsert:(futureId,promise)=>{WebGPU.Internals.futures[futureId]=new Promise(resolve=>promise.finally(()=>resolve(futureId)))}},getJsObject:ptr=>{if(!ptr)return undefined;ptr>>>=0;return WebGPU.Internals.jsObjects[ptr]},importJsAdapter:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateAdapter(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroup:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroup(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroupLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroupLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBuffer:(buffer,parentPtr=0)=>{assert(buffer.mapState==="unmapped");var bufferPtr=_emwgpuCreateBuffer(parentPtr);WebGPU.Internals.jsObjectInsert(bufferPtr,buffer);return bufferPtr},importJsCommandBuffer:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandBuffer(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsCommandEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsDevice:(device,parentPtr=0)=>{var queuePtr=_emwgpuCreateQueue(parentPtr);var devicePtr=_emwgpuCreateDevice(parentPtr,queuePtr);WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);return devicePtr},importJsExternalTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateExternalTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsPipelineLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreatePipelineLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQuerySet:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQuerySet(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQueue:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQueue(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundle:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundle(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundleEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundleEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSampler:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSampler(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsShaderModule:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateShaderModule(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSurface:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSurface(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTextureView:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTextureView(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},errorCallback:(callback,type,message,userdata)=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(message);((a1,a2,a3)=>dynCall_viii(callback,a1,a2,a3))(type,messagePtr,userdata);stackRestore(sp)},iterateExtensions:(root,handlers)=>{for(var ptr=(growMemViews(),HEAPU32)[root>>>2>>>0];ptr;ptr=(growMemViews(),HEAPU32)[ptr>>>2>>>0]){var sType=(growMemViews(),HEAP32)[ptr+4>>>2>>>0];var handler=handlers[sType](ptr)}},setStringView:(ptr,data,length)=>{(growMemViews(),HEAPU32)[ptr>>>2>>>0]=data;(growMemViews(),HEAPU32)[ptr+4>>>2>>>0]=length},makeStringFromStringView:stringViewPtr=>{var ptr=(growMemViews(),HEAPU32)[stringViewPtr>>>2>>>0];var length=(growMemViews(),HEAPU32)[stringViewPtr+4>>>2>>>0];return UTF8ToString(ptr,length)},makeStringFromOptionalStringView:stringViewPtr=>{var ptr=(growMemViews(),HEAPU32)[stringViewPtr>>>2>>>0];var length=(growMemViews(),HEAPU32)[stringViewPtr+4>>>2>>>0];if(!ptr){if(length===0){return""}return undefined}return UTF8ToString(ptr,length)},makeColor:ptr=>({r:(growMemViews(),HEAPF64)[ptr>>>3>>>0],g:(growMemViews(),HEAPF64)[ptr+8>>>3>>>0],b:(growMemViews(),HEAPF64)[ptr+16>>>3>>>0],a:(growMemViews(),HEAPF64)[ptr+24>>>3>>>0]}),makeExtent3D:ptr=>({width:(growMemViews(),HEAPU32)[ptr>>>2>>>0],height:(growMemViews(),HEAPU32)[ptr+4>>>2>>>0],depthOrArrayLayers:(growMemViews(),HEAPU32)[ptr+8>>>2>>>0]}),makeOrigin3D:ptr=>({x:(growMemViews(),HEAPU32)[ptr>>>2>>>0],y:(growMemViews(),HEAPU32)[ptr+4>>>2>>>0],z:(growMemViews(),HEAPU32)[ptr+8>>>2>>>0]}),makeTexelCopyTextureInfo:ptr=>({texture:WebGPU.getJsObject((growMemViews(),HEAPU32)[ptr>>>2>>>0]),mipLevel:(growMemViews(),HEAPU32)[ptr+4>>>2>>>0],origin:WebGPU.makeOrigin3D(ptr+8),aspect:WebGPU.TextureAspect[(growMemViews(),HEAP32)[ptr+20>>>2>>>0]]}),makeTexelCopyBufferLayout:ptr=>{var bytesPerRow=(growMemViews(),HEAPU32)[ptr+8>>>2>>>0];var rowsPerImage=(growMemViews(),HEAPU32)[ptr+12>>>2>>>0];return{offset:readI53FromI64(ptr),bytesPerRow:bytesPerRow===4294967295?undefined:bytesPerRow,rowsPerImage:rowsPerImage===4294967295?undefined:rowsPerImage}},makeTexelCopyBufferInfo:ptr=>{var layoutPtr=ptr+0;var bufferCopyView=WebGPU.makeTexelCopyBufferLayout(layoutPtr);bufferCopyView["buffer"]=WebGPU.getJsObject((growMemViews(),HEAPU32)[ptr+16>>>2>>>0]);return bufferCopyView},makePassTimestampWrites:ptr=>{if(ptr===0)return undefined;return{querySet:WebGPU.getJsObject((growMemViews(),HEAPU32)[ptr+4>>>2>>>0]),beginningOfPassWriteIndex:(growMemViews(),HEAPU32)[ptr+8>>>2>>>0],endOfPassWriteIndex:(growMemViews(),HEAPU32)[ptr+12>>>2>>>0]}},makePipelineConstants:(constantCount,constantsPtr)=>{if(!constantCount)return;var constants={};for(var i=0;i>>3>>>0]}return constants},makePipelineLayout:layoutPtr=>{if(!layoutPtr)return"auto";return WebGPU.getJsObject(layoutPtr)},makeComputeState:ptr=>{if(!ptr)return undefined;var desc={module:WebGPU.getJsObject((growMemViews(),HEAPU32)[ptr+4>>>2>>>0]),constants:WebGPU.makePipelineConstants((growMemViews(),HEAPU32)[ptr+16>>>2>>>0],(growMemViews(),HEAPU32)[ptr+20>>>2>>>0]),entryPoint:WebGPU.makeStringFromOptionalStringView(ptr+8)};return desc},makeComputePipelineDesc:descriptor=>{var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),layout:WebGPU.makePipelineLayout((growMemViews(),HEAPU32)[descriptor+12>>>2>>>0]),compute:WebGPU.makeComputeState(descriptor+16)};return desc},makeRenderPipelineDesc:descriptor=>{function makePrimitiveState(psPtr){if(!psPtr)return undefined;return{topology:WebGPU.PrimitiveTopology[(growMemViews(),HEAP32)[psPtr+4>>>2>>>0]],stripIndexFormat:WebGPU.IndexFormat[(growMemViews(),HEAP32)[psPtr+8>>>2>>>0]],frontFace:WebGPU.FrontFace[(growMemViews(),HEAP32)[psPtr+12>>>2>>>0]],cullMode:WebGPU.CullMode[(growMemViews(),HEAP32)[psPtr+16>>>2>>>0]],unclippedDepth:!!(growMemViews(),HEAPU32)[psPtr+20>>>2>>>0]}}function makeBlendComponent(bdPtr){if(!bdPtr)return undefined;return{operation:WebGPU.BlendOperation[(growMemViews(),HEAP32)[bdPtr>>>2>>>0]],srcFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[bdPtr+4>>>2>>>0]],dstFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[bdPtr+8>>>2>>>0]]}}function makeBlendState(bsPtr){if(!bsPtr)return undefined;return{alpha:makeBlendComponent(bsPtr+12),color:makeBlendComponent(bsPtr+0)}}function makeColorState(csPtr){var format=WebGPU.TextureFormat[(growMemViews(),HEAP32)[csPtr+4>>>2>>>0]];return format?{format,blend:makeBlendState((growMemViews(),HEAPU32)[csPtr+8>>>2>>>0]),writeMask:(growMemViews(),HEAPU32)[csPtr+16>>>2>>>0]}:undefined}function makeColorStates(count,csArrayPtr){var states=[];for(var i=0;i>>2>>>0]],failOp:WebGPU.StencilOperation[(growMemViews(),HEAP32)[ssfPtr+4>>>2>>>0]],depthFailOp:WebGPU.StencilOperation[(growMemViews(),HEAP32)[ssfPtr+8>>>2>>>0]],passOp:WebGPU.StencilOperation[(growMemViews(),HEAP32)[ssfPtr+12>>>2>>>0]]}}function makeDepthStencilState(dssPtr){if(!dssPtr)return undefined;return{format:WebGPU.TextureFormat[(growMemViews(),HEAP32)[dssPtr+4>>>2>>>0]],depthWriteEnabled:!!(growMemViews(),HEAPU32)[dssPtr+8>>>2>>>0],depthCompare:WebGPU.CompareFunction[(growMemViews(),HEAP32)[dssPtr+12>>>2>>>0]],stencilFront:makeStencilStateFace(dssPtr+16),stencilBack:makeStencilStateFace(dssPtr+32),stencilReadMask:(growMemViews(),HEAPU32)[dssPtr+48>>>2>>>0],stencilWriteMask:(growMemViews(),HEAPU32)[dssPtr+52>>>2>>>0],depthBias:(growMemViews(),HEAP32)[dssPtr+56>>>2>>>0],depthBiasSlopeScale:(growMemViews(),HEAPF32)[dssPtr+60>>>2>>>0],depthBiasClamp:(growMemViews(),HEAPF32)[dssPtr+64>>>2>>>0]}}function makeVertexAttribute(vaPtr){return{format:WebGPU.VertexFormat[(growMemViews(),HEAP32)[vaPtr+4>>>2>>>0]],offset:readI53FromI64(vaPtr+8),shaderLocation:(growMemViews(),HEAPU32)[vaPtr+16>>>2>>>0]}}function makeVertexAttributes(count,vaArrayPtr){var vas=[];for(var i=0;i>>2>>>0]];var attributeCount=(growMemViews(),HEAPU32)[vbPtr+16>>>2>>>0];if(!stepMode&&!attributeCount){return null}return{arrayStride:readI53FromI64(vbPtr+8),stepMode,attributes:makeVertexAttributes(attributeCount,(growMemViews(),HEAPU32)[vbPtr+20>>>2>>>0])}}function makeVertexBuffers(count,vbArrayPtr){if(!count)return undefined;var vbs=[];for(var i=0;i>>2>>>0]),constants:WebGPU.makePipelineConstants((growMemViews(),HEAPU32)[viPtr+16>>>2>>>0],(growMemViews(),HEAPU32)[viPtr+20>>>2>>>0]),buffers:makeVertexBuffers((growMemViews(),HEAPU32)[viPtr+24>>>2>>>0],(growMemViews(),HEAPU32)[viPtr+28>>>2>>>0]),entryPoint:WebGPU.makeStringFromOptionalStringView(viPtr+8)};return desc}function makeMultisampleState(msPtr){if(!msPtr)return undefined;return{count:(growMemViews(),HEAPU32)[msPtr+4>>>2>>>0],mask:(growMemViews(),HEAPU32)[msPtr+8>>>2>>>0],alphaToCoverageEnabled:!!(growMemViews(),HEAPU32)[msPtr+12>>>2>>>0]}}function makeFragmentState(fsPtr){if(!fsPtr)return undefined;var desc={module:WebGPU.getJsObject((growMemViews(),HEAPU32)[fsPtr+4>>>2>>>0]),constants:WebGPU.makePipelineConstants((growMemViews(),HEAPU32)[fsPtr+16>>>2>>>0],(growMemViews(),HEAPU32)[fsPtr+20>>>2>>>0]),targets:makeColorStates((growMemViews(),HEAPU32)[fsPtr+24>>>2>>>0],(growMemViews(),HEAPU32)[fsPtr+28>>>2>>>0]),entryPoint:WebGPU.makeStringFromOptionalStringView(fsPtr+8)};return desc}var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),layout:WebGPU.makePipelineLayout((growMemViews(),HEAPU32)[descriptor+12>>>2>>>0]),vertex:makeVertexState(descriptor+16),primitive:makePrimitiveState(descriptor+48),depthStencil:makeDepthStencilState((growMemViews(),HEAPU32)[descriptor+72>>>2>>>0]),multisample:makeMultisampleState(descriptor+76),fragment:makeFragmentState((growMemViews(),HEAPU32)[descriptor+92>>>2>>>0])};return desc},fillLimitStruct:(limits,limitsOutPtr)=>{var nextInChainPtr=(growMemViews(),HEAPU32)[limitsOutPtr>>>2>>>0];function setLimitValueU32(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;(growMemViews(),HEAPU32)[basePtr+limitOffset>>>2>>>0]=limitValue}function setLimitValueU64(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;writeI53ToI64(basePtr+limitOffset,limitValue)}setLimitValueU32("maxTextureDimension1D",limitsOutPtr,4);setLimitValueU32("maxTextureDimension2D",limitsOutPtr,8);setLimitValueU32("maxTextureDimension3D",limitsOutPtr,12);setLimitValueU32("maxTextureArrayLayers",limitsOutPtr,16);setLimitValueU32("maxBindGroups",limitsOutPtr,20);setLimitValueU32("maxBindGroupsPlusVertexBuffers",limitsOutPtr,24);setLimitValueU32("maxBindingsPerBindGroup",limitsOutPtr,28);setLimitValueU32("maxDynamicUniformBuffersPerPipelineLayout",limitsOutPtr,32);setLimitValueU32("maxDynamicStorageBuffersPerPipelineLayout",limitsOutPtr,36);setLimitValueU32("maxSampledTexturesPerShaderStage",limitsOutPtr,40);setLimitValueU32("maxSamplersPerShaderStage",limitsOutPtr,44);setLimitValueU32("maxStorageBuffersPerShaderStage",limitsOutPtr,48);setLimitValueU32("maxStorageTexturesPerShaderStage",limitsOutPtr,52);setLimitValueU32("maxUniformBuffersPerShaderStage",limitsOutPtr,56);setLimitValueU32("minUniformBufferOffsetAlignment",limitsOutPtr,80);setLimitValueU32("minStorageBufferOffsetAlignment",limitsOutPtr,84);setLimitValueU64("maxUniformBufferBindingSize",limitsOutPtr,64);setLimitValueU64("maxStorageBufferBindingSize",limitsOutPtr,72);setLimitValueU32("maxVertexBuffers",limitsOutPtr,88);setLimitValueU64("maxBufferSize",limitsOutPtr,96);setLimitValueU32("maxVertexAttributes",limitsOutPtr,104);setLimitValueU32("maxVertexBufferArrayStride",limitsOutPtr,108);setLimitValueU32("maxInterStageShaderVariables",limitsOutPtr,112);setLimitValueU32("maxColorAttachments",limitsOutPtr,116);setLimitValueU32("maxColorAttachmentBytesPerSample",limitsOutPtr,120);setLimitValueU32("maxComputeWorkgroupStorageSize",limitsOutPtr,124);setLimitValueU32("maxComputeInvocationsPerWorkgroup",limitsOutPtr,128);setLimitValueU32("maxComputeWorkgroupSizeX",limitsOutPtr,132);setLimitValueU32("maxComputeWorkgroupSizeY",limitsOutPtr,136);setLimitValueU32("maxComputeWorkgroupSizeZ",limitsOutPtr,140);setLimitValueU32("maxComputeWorkgroupsPerDimension",limitsOutPtr,144);setLimitValueU32("maxImmediateSize",limitsOutPtr,148);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[nextInChainPtr+4>>>2>>>0];var compatibilityModeLimitsPtr=nextInChainPtr;setLimitValueU32("maxStorageBuffersInVertexStage",compatibilityModeLimitsPtr,8,limits.maxStorageBuffersPerShaderStage);setLimitValueU32("maxStorageBuffersInFragmentStage",compatibilityModeLimitsPtr,16,limits.maxStorageBuffersPerShaderStage);setLimitValueU32("maxStorageTexturesInVertexStage",compatibilityModeLimitsPtr,12,limits.maxStorageTexturesPerShaderStage);setLimitValueU32("maxStorageTexturesInFragmentStage",compatibilityModeLimitsPtr,20,limits.maxStorageTexturesPerShaderStage)}},fillAdapterInfoStruct:(info,infoStruct)=>{(growMemViews(),HEAPU32)[infoStruct+52>>>2>>>0]=info.subgroupMinSize;(growMemViews(),HEAPU32)[infoStruct+56>>>2>>>0]=info.subgroupMaxSize;var strs=info.vendor+info.architecture+info.device+info.description;var strPtr=stringToNewUTF8(strs);var vendorLen=lengthBytesUTF8(info.vendor);WebGPU.setStringView(infoStruct+4,strPtr,vendorLen);strPtr+=vendorLen;var architectureLen=lengthBytesUTF8(info.architecture);WebGPU.setStringView(infoStruct+12,strPtr,architectureLen);strPtr+=architectureLen;var deviceLen=lengthBytesUTF8(info.device);WebGPU.setStringView(infoStruct+20,strPtr,deviceLen);strPtr+=deviceLen;var descriptionLen=lengthBytesUTF8(info.description);WebGPU.setStringView(infoStruct+28,strPtr,descriptionLen);strPtr+=descriptionLen;(growMemViews(),HEAP32)[infoStruct+36>>>2>>>0]=2;var adapterType=info.isFallbackAdapter?3:4;(growMemViews(),HEAP32)[infoStruct+40>>>2>>>0]=adapterType;(growMemViews(),HEAPU32)[infoStruct+44>>>2>>>0]=0;(growMemViews(),HEAPU32)[infoStruct+48>>>2>>>0]=0},AddressMode:[,"clamp-to-edge","repeat","mirror-repeat"],BlendFactor:[,"zero","one","src","one-minus-src","src-alpha","one-minus-src-alpha","dst","one-minus-dst","dst-alpha","one-minus-dst-alpha","src-alpha-saturated","constant","one-minus-constant","src1","one-minus-src1","src1-alpha","one-minus-src1-alpha"],BlendOperation:[,"add","subtract","reverse-subtract","min","max"],BufferBindingType:[,,"uniform","storage","read-only-storage"],BufferMapState:[,"unmapped","pending","mapped"],CompareFunction:[,"never","less","equal","less-equal","greater","not-equal","greater-equal","always"],CompilationInfoRequestStatus:[,"success","callback-cancelled"],ComponentSwizzle:[,"0","1","r","g","b","a"],CompositeAlphaMode:[,"opaque","premultiplied","unpremultiplied","inherit"],CullMode:[,"none","front","back"],ErrorFilter:[,"validation","out-of-memory","internal"],FeatureLevel:[,"compatibility","core"],FeatureName:{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",22:"texture-component-swizzle",327692:"chromium-experimental-unorm16-texture-formats",327729:"chromium-experimental-multi-draw-indirect"},FilterMode:[,"nearest","linear"],FrontFace:[,"ccw","cw"],IndexFormat:[,"uint16","uint32"],InstanceFeatureName:[,"timed-wait-any","shader-source-spirv","multiple-devices-per-adapter"],LoadOp:[,"load","clear"],MipmapFilterMode:[,"nearest","linear"],OptionalBool:["false","true"],PowerPreference:[,"low-power","high-performance"],PredefinedColorSpace:[,"srgb","display-p3"],PrimitiveTopology:[,"point-list","line-list","line-strip","triangle-list","triangle-strip"],QueryType:[,"occlusion","timestamp"],SamplerBindingType:[,,"filtering","non-filtering","comparison"],Status:[,"success","error"],StencilOperation:[,"keep","zero","replace","invert","increment-clamp","decrement-clamp","increment-wrap","decrement-wrap"],StorageTextureAccess:[,,"write-only","read-only","read-write"],StoreOp:[,"store","discard"],SurfaceGetCurrentTextureStatus:[,"success-optimal","success-suboptimal","timeout","outdated","lost","error"],TextureAspect:[,"all","stencil-only","depth-only"],TextureDimension:[,"1d","2d","3d"],TextureFormat:[,"r8unorm","r8snorm","r8uint","r8sint","r16unorm","r16snorm","r16uint","r16sint","r16float","rg8unorm","rg8snorm","rg8uint","rg8sint","r32float","r32uint","r32sint","rg16unorm","rg16snorm","rg16uint","rg16sint","rg16float","rgba8unorm","rgba8unorm-srgb","rgba8snorm","rgba8uint","rgba8sint","bgra8unorm","bgra8unorm-srgb","rgb10a2uint","rgb10a2unorm","rg11b10ufloat","rgb9e5ufloat","rg32float","rg32uint","rg32sint","rgba16unorm","rgba16snorm","rgba16uint","rgba16sint","rgba16float","rgba32float","rgba32uint","rgba32sint","stencil8","depth16unorm","depth24plus","depth24plus-stencil8","depth32float","depth32float-stencil8","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb","bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm","bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb","etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm","astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"],TextureSampleType:[,,"float","unfilterable-float","depth","sint","uint"],TextureViewDimension:[,"1d","2d","2d-array","cube","cube-array","3d"],ToneMappingMode:[,"standard","extended"],VertexFormat:[,"uint8","uint8x2","uint8x4","sint8","sint8x2","sint8x4","unorm8","unorm8x2","unorm8x4","snorm8","snorm8x2","snorm8x4","uint16","uint16x2","uint16x4","sint16","sint16x2","sint16x4","unorm16","unorm16x2","unorm16x4","snorm16","snorm16x2","snorm16x4","float16","float16x2","float16x4","float32","float32x2","float32x3","float32x4","uint32","uint32x2","uint32x3","uint32x4","sint32","sint32x2","sint32x3","sint32x4","unorm10-10-10-2","unorm8x4-bgra"],VertexStepMode:[,"vertex","instance"],WGSLLanguageFeatureName:[,"readonly_and_readwrite_storage_textures","packed_4x8_integer_dot_product","unrestricted_pointer_parameters","pointer_composite_access","uniform_buffer_standard_layout","subgroup_id","texture_and_sampler_let","subgroup_uniformity","texture_formats_tier1"]};var emwgpuStringToInt_DeviceLostReason={undefined:1,unknown:1,destroyed:2};var runtimeKeepalivePop=()=>{runtimeKeepaliveCounter-=1};function _emwgpuAdapterRequestDevice(adapterPtr,futureId,deviceLostFutureId,devicePtr,queuePtr,descriptor){adapterPtr>>>=0;futureId=bigintToI53Checked(futureId);deviceLostFutureId=bigintToI53Checked(deviceLostFutureId);devicePtr>>>=0;queuePtr>>>=0;descriptor>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);var desc={};if(descriptor){var requiredFeatureCount=(growMemViews(),HEAPU32)[descriptor+12>>>2>>>0];if(requiredFeatureCount){var requiredFeaturesPtr=(growMemViews(),HEAPU32)[descriptor+16>>>2>>>0];desc["requiredFeatures"]=Array.from((growMemViews(),HEAPU32).subarray(requiredFeaturesPtr>>>2>>>0,requiredFeaturesPtr+requiredFeatureCount*4>>>2>>>0),feature=>WebGPU.FeatureName[feature])}var limitsPtr=(growMemViews(),HEAPU32)[descriptor+20>>>2>>>0];if(limitsPtr){var nextInChainPtr=(growMemViews(),HEAPU32)[limitsPtr>>>2>>>0];var requiredLimits={};function setLimitU32IfDefined(name,basePtr,limitOffset,ignoreIfZero=false){var ptr=basePtr+limitOffset;var value=(growMemViews(),HEAPU32)[ptr>>>2>>>0];if(value!=4294967295&&(!ignoreIfZero||value!=0)){requiredLimits[name]=value}}function setLimitU64IfDefined(name,basePtr,limitOffset){var ptr=basePtr+limitOffset;var limitPart1=(growMemViews(),HEAPU32)[ptr>>>2>>>0];var limitPart2=(growMemViews(),HEAPU32)[ptr+4>>>2>>>0];if(limitPart1!=4294967295||limitPart2!=4294967295){requiredLimits[name]=readI53FromI64(ptr)}}setLimitU32IfDefined("maxTextureDimension1D",limitsPtr,4);setLimitU32IfDefined("maxTextureDimension2D",limitsPtr,8);setLimitU32IfDefined("maxTextureDimension3D",limitsPtr,12);setLimitU32IfDefined("maxTextureArrayLayers",limitsPtr,16);setLimitU32IfDefined("maxBindGroups",limitsPtr,20);setLimitU32IfDefined("maxBindGroupsPlusVertexBuffers",limitsPtr,24);setLimitU32IfDefined("maxBindingsPerBindGroup",limitsPtr,28);setLimitU32IfDefined("maxDynamicUniformBuffersPerPipelineLayout",limitsPtr,32);setLimitU32IfDefined("maxDynamicStorageBuffersPerPipelineLayout",limitsPtr,36);setLimitU32IfDefined("maxSampledTexturesPerShaderStage",limitsPtr,40);setLimitU32IfDefined("maxSamplersPerShaderStage",limitsPtr,44);setLimitU32IfDefined("maxStorageBuffersPerShaderStage",limitsPtr,48);setLimitU32IfDefined("maxStorageTexturesPerShaderStage",limitsPtr,52);setLimitU32IfDefined("maxUniformBuffersPerShaderStage",limitsPtr,56);setLimitU32IfDefined("minUniformBufferOffsetAlignment",limitsPtr,80);setLimitU32IfDefined("minStorageBufferOffsetAlignment",limitsPtr,84);setLimitU64IfDefined("maxUniformBufferBindingSize",limitsPtr,64);setLimitU64IfDefined("maxStorageBufferBindingSize",limitsPtr,72);setLimitU32IfDefined("maxVertexBuffers",limitsPtr,88);setLimitU64IfDefined("maxBufferSize",limitsPtr,96);setLimitU32IfDefined("maxVertexAttributes",limitsPtr,104);setLimitU32IfDefined("maxVertexBufferArrayStride",limitsPtr,108);setLimitU32IfDefined("maxInterStageShaderVariables",limitsPtr,112);setLimitU32IfDefined("maxColorAttachments",limitsPtr,116);setLimitU32IfDefined("maxColorAttachmentBytesPerSample",limitsPtr,120);setLimitU32IfDefined("maxComputeWorkgroupStorageSize",limitsPtr,124);setLimitU32IfDefined("maxComputeInvocationsPerWorkgroup",limitsPtr,128);setLimitU32IfDefined("maxComputeWorkgroupSizeX",limitsPtr,132);setLimitU32IfDefined("maxComputeWorkgroupSizeY",limitsPtr,136);setLimitU32IfDefined("maxComputeWorkgroupSizeZ",limitsPtr,140);setLimitU32IfDefined("maxComputeWorkgroupsPerDimension",limitsPtr,144);setLimitU32IfDefined("maxImmediateSize",limitsPtr,148,true);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[nextInChainPtr+4>>>2>>>0];var compatibilityModeLimitsPtr=nextInChainPtr;if("maxStorageBuffersInVertexStage"in GPUSupportedLimits.prototype){setLimitU32IfDefined("maxStorageBuffersInVertexStage",compatibilityModeLimitsPtr,8);setLimitU32IfDefined("maxStorageTexturesInVertexStage",compatibilityModeLimitsPtr,12);setLimitU32IfDefined("maxStorageBuffersInFragmentStage",compatibilityModeLimitsPtr,16);setLimitU32IfDefined("maxStorageTexturesInFragmentStage",compatibilityModeLimitsPtr,20)}}desc["requiredLimits"]=requiredLimits}var defaultQueuePtr=(growMemViews(),HEAPU32)[descriptor+24>>>2>>>0];if(defaultQueuePtr){var defaultQueueDesc={label:WebGPU.makeStringFromOptionalStringView(defaultQueuePtr+4)};desc["defaultQueue"]=defaultQueueDesc}desc["label"]=WebGPU.makeStringFromOptionalStringView(descriptor+4)}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,adapter.requestDevice(desc).then(device=>{runtimeKeepalivePop();callUserCallback(()=>{WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);WebGPU.Internals.futureInsert(deviceLostFutureId,device.lost.then(info=>{callUserCallback(()=>{device.onuncapturederror=ev=>{};var sp=stackSave();var messagePtr=stringToUTF8OnStack(info.message);_emwgpuOnDeviceLostCompleted(deviceLostFutureId,emwgpuStringToInt_DeviceLostReason[info.reason],messagePtr);stackRestore(sp)})}));device.onuncapturederror=ev=>{var type=5;if(ev.error instanceof GPUValidationError)type=2;else if(ev.error instanceof GPUOutOfMemoryError)type=3;else if(ev.error instanceof GPUInternalError)type=4;var sp=stackSave();var messagePtr=stringToUTF8OnStack(ev.error.message);_emwgpuOnUncapturedError(devicePtr,type,messagePtr);stackRestore(sp)};_emwgpuOnRequestDeviceCompleted(futureId,1,devicePtr,0)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestDeviceCompleted(futureId,3,devicePtr,messagePtr);if(deviceLostFutureId){_emwgpuOnDeviceLostCompleted(deviceLostFutureId,4,messagePtr)}stackRestore(sp)})}))}function _emwgpuBufferDestroy(bufferPtr){bufferPtr>>>=0;var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(onUnmap){for(var i=0;i{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};function _emwgpuBufferGetConstMappedRange(bufferPtr,offset,size){bufferPtr>>>=0;offset>>>=0;size>>>=0;var buffer=WebGPU.getJsObject(bufferPtr);if(size==4294967295)size=undefined;var mapped;try{mapped=buffer.getMappedRange(offset,size)}catch(ex){return 0}var data=_memalign(16,mapped.byteLength);(growMemViews(),HEAPU8).set(new Uint8Array(mapped),data>>>0);WebGPU.Internals.bufferOnUnmaps[bufferPtr].push(()=>_free(data));return data}var _emwgpuBufferMapAsync=function(bufferPtr,futureId,mode,offset,size){bufferPtr>>>=0;futureId=bigintToI53Checked(futureId);mode=bigintToI53Checked(mode);offset>>>=0;size>>>=0;var buffer=WebGPU.getJsObject(bufferPtr);WebGPU.Internals.bufferOnUnmaps[bufferPtr]=[];if(size==4294967295)size=undefined;runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,buffer.mapAsync(mode,offset,size).then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnMapAsyncCompleted(futureId,1,0)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);var status=ex.name==="AbortError"?4:ex.name==="OperationError"?3:0;_emwgpuOnMapAsyncCompleted(futureId,status,messagePtr);delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]})}))};function _emwgpuBufferUnmap(bufferPtr){bufferPtr>>>=0;var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(!onUnmap){return}for(var i=0;i>>=0;delete WebGPU.Internals.jsObjects[ptr]}function _emwgpuDeviceCreateBuffer(devicePtr,descriptor,bufferPtr){devicePtr>>>=0;descriptor>>>=0;bufferPtr>>>=0;var mappedAtCreation=!!(growMemViews(),HEAPU32)[descriptor+32>>>2>>>0];var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),usage:(growMemViews(),HEAPU32)[descriptor+16>>>2>>>0],size:readI53FromI64(descriptor+24),mappedAtCreation};var device=WebGPU.getJsObject(devicePtr);var buffer;try{buffer=device.createBuffer(desc)}catch(ex){return false}WebGPU.Internals.jsObjectInsert(bufferPtr,buffer);if(mappedAtCreation){WebGPU.Internals.bufferOnUnmaps[bufferPtr]=[]}return true}function _emwgpuDeviceCreateShaderModule(devicePtr,descriptor,shaderModulePtr){devicePtr>>>=0;descriptor>>>=0;shaderModulePtr>>>=0;var nextInChainPtr=(growMemViews(),HEAPU32)[descriptor>>>2>>>0];var sType=(growMemViews(),HEAP32)[nextInChainPtr+4>>>2>>>0];var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),code:""};switch(sType){case 2:{desc["code"]=WebGPU.makeStringFromStringView(nextInChainPtr+8);break}}var device=WebGPU.getJsObject(devicePtr);WebGPU.Internals.jsObjectInsert(shaderModulePtr,device.createShaderModule(desc))}var _emwgpuDeviceDestroy=devicePtr=>{const device=WebGPU.getJsObject(devicePtr);device.onuncapturederror=null;device.destroy()};function _emwgpuInstanceRequestAdapter(instancePtr,futureId,options,adapterPtr){instancePtr>>>=0;futureId=bigintToI53Checked(futureId);options>>>=0;adapterPtr>>>=0;var opts;if(options){opts={featureLevel:WebGPU.FeatureLevel[(growMemViews(),HEAP32)[options+4>>>2>>>0]],powerPreference:WebGPU.PowerPreference[(growMemViews(),HEAP32)[options+8>>>2>>>0]],forceFallbackAdapter:!!(growMemViews(),HEAPU32)[options+12>>>2>>>0]};var nextInChainPtr=(growMemViews(),HEAPU32)[options>>>2>>>0];if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[nextInChainPtr+4>>>2>>>0];var webxrOptions=nextInChainPtr;opts.xrCompatible=!!(growMemViews(),HEAPU32)[webxrOptions+8>>>2>>>0]}}if(!("gpu"in navigator)){var sp=stackSave();var messagePtr=stringToUTF8OnStack("WebGPU not available on this browser (navigator.gpu is not available)");_emwgpuOnRequestAdapterCompleted(futureId,3,adapterPtr,messagePtr);stackRestore(sp);return}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,navigator.gpu.requestAdapter(opts).then(adapter=>{runtimeKeepalivePop();callUserCallback(()=>{if(adapter){WebGPU.Internals.jsObjectInsert(adapterPtr,adapter);_emwgpuOnRequestAdapterCompleted(futureId,1,adapterPtr,0)}else{var sp=stackSave();var messagePtr=stringToUTF8OnStack("WebGPU not available on this browser (requestAdapter returned null)");_emwgpuOnRequestAdapterCompleted(futureId,3,adapterPtr,messagePtr);stackRestore(sp)}})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestAdapterCompleted(futureId,4,adapterPtr,messagePtr);stackRestore(sp)})}))}var _emwgpuQueueOnSubmittedWorkDone=function(queuePtr,futureId){queuePtr>>>=0;futureId=bigintToI53Checked(futureId);var queue=WebGPU.getJsObject(queuePtr);runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,queue.onSubmittedWorkDone().then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnWorkDoneCompleted(futureId,1)})}))};var _emwgpuWaitAny=function(futurePtr,futureCount,timeoutMSPtr){futurePtr>>>=0;futureCount>>>=0;timeoutMSPtr>>>=0;return Asyncify.handleAsync(async()=>{var promises=[];if(timeoutMSPtr){var timeoutMS=(growMemViews(),HEAP32)[timeoutMSPtr>>>2>>>0];promises.length=futureCount+1;promises[futureCount]=new Promise(resolve=>setTimeout(resolve,timeoutMS,0))}else{promises.length=futureCount}for(var i=0;ithisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.language||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(15,0,1,__environ,environ_buf);__environ>>>=0;environ_buf>>>=0;var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;(growMemViews(),HEAPU32)[__environ+envp>>>2>>>0]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(16,0,1,penviron_count,penviron_buf_size);penviron_count>>>=0;penviron_buf_size>>>=0;var strings=getEnvStrings();(growMemViews(),HEAPU32)[penviron_count>>>2>>>0]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}(growMemViews(),HEAPU32)[penviron_buf_size>>>2>>>0]=bufSize;return 0}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(17,0,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>>2>>>0];var len=(growMemViews(),HEAPU32)[iov+4>>>2>>>0];iov+=8;var curr=FS.read(stream,(growMemViews(),HEAP8),ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>>=0;iovcnt>>>=0;pnum>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);(growMemViews(),HEAPU32)[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(19,0,1,fd,offset,whence,newOffset);offset=bigintToI53Checked(offset);newOffset>>>=0;try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);(growMemViews(),HEAP64)[newOffset>>>3>>>0]=BigInt(stream.position);if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>>2>>>0];var len=(growMemViews(),HEAPU32)[iov+4>>>2>>>0];iov+=8;var curr=FS.write(stream,(growMemViews(),HEAP8),ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>>=0;iovcnt>>>=0;pnum>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);(growMemViews(),HEAPU32)[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _llvm_eh_typeid_for(type){type>>>=0;return type}function _random_get(buffer,size){buffer>>>=0;size>>>=0;try{randomFill((growMemViews(),HEAPU8).subarray(buffer>>>0,buffer+size>>>0));return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var emwgpuStringToInt_FeatureName={"core-features-and-limits":1,"depth-clip-control":2,"depth32float-stencil8":3,"texture-compression-bc":4,"texture-compression-bc-sliced-3d":5,"texture-compression-etc2":6,"texture-compression-astc":7,"texture-compression-astc-sliced-3d":8,"timestamp-query":9,"indirect-first-instance":10,"shader-f16":11,"rg11b10ufloat-renderable":12,"bgra8unorm-storage":13,"float32-filterable":14,"float32-blendable":15,"clip-distances":16,"dual-source-blending":17,subgroups:18,"texture-formats-tier1":19,"texture-formats-tier2":20,"primitive-index":21,"texture-component-swizzle":22,"chromium-experimental-unorm16-texture-formats":327692,"chromium-experimental-multi-draw-indirect":327729};function _wgpuAdapterGetFeatures(adapterPtr,supportedFeatures){adapterPtr>>>=0;supportedFeatures>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);var featuresPtr=_malloc(adapter.features.size*4);var offset=0;var numFeatures=0;for(const feature of adapter.features){var featureEnumValue=emwgpuStringToInt_FeatureName[feature];if(featureEnumValue>=0){(growMemViews(),HEAP32)[featuresPtr+offset>>>2>>>0]=featureEnumValue;offset+=4;numFeatures++}}(growMemViews(),HEAPU32)[supportedFeatures+4>>>2>>>0]=featuresPtr;(growMemViews(),HEAPU32)[supportedFeatures>>>2>>>0]=numFeatures}function _wgpuAdapterGetInfo(adapterPtr,info){adapterPtr>>>=0;info>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillAdapterInfoStruct(adapter.info,info);return 1}function _wgpuAdapterGetLimits(adapterPtr,limitsOutPtr){adapterPtr>>>=0;limitsOutPtr>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillLimitStruct(adapter.limits,limitsOutPtr);return 1}function _wgpuAdapterHasFeature(adapterPtr,featureEnumValue){adapterPtr>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);return adapter.features.has(WebGPU.FeatureName[featureEnumValue])}var _wgpuBufferGetSize=function(bufferPtr){bufferPtr>>>=0;var ret=(()=>{var buffer=WebGPU.getJsObject(bufferPtr);return buffer.size})();return BigInt(ret)};function _wgpuCommandEncoderBeginComputePass(encoderPtr,descriptor){encoderPtr>>>=0;descriptor>>>=0;var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),timestampWrites:WebGPU.makePassTimestampWrites((growMemViews(),HEAPU32)[descriptor+12>>>2>>>0])}}var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateComputePassEncoder(0);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.beginComputePass(desc));return ptr}function _wgpuCommandEncoderCopyBufferToBuffer(encoderPtr,srcPtr,srcOffset,dstPtr,dstOffset,size){encoderPtr>>>=0;srcPtr>>>=0;srcOffset=bigintToI53Checked(srcOffset);dstPtr>>>=0;dstOffset=bigintToI53Checked(dstOffset);size=bigintToI53Checked(size);var commandEncoder=WebGPU.getJsObject(encoderPtr);var src=WebGPU.getJsObject(srcPtr);var dst=WebGPU.getJsObject(dstPtr);commandEncoder.copyBufferToBuffer(src,srcOffset,dst,dstOffset,size)}function _wgpuCommandEncoderFinish(encoderPtr,descriptor){encoderPtr>>>=0;descriptor>>>=0;var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateCommandBuffer(0);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.finish());return ptr}function _wgpuComputePassEncoderDispatchWorkgroups(passPtr,x,y,z){passPtr>>>=0;var pass=WebGPU.getJsObject(passPtr);pass.dispatchWorkgroups(x,y,z)}function _wgpuComputePassEncoderEnd(passPtr){passPtr>>>=0;var pass=WebGPU.getJsObject(passPtr);pass.end()}function _wgpuComputePassEncoderSetBindGroup(passPtr,groupIndex,groupPtr,dynamicOffsetCount,dynamicOffsetsPtr){passPtr>>>=0;groupPtr>>>=0;dynamicOffsetCount>>>=0;dynamicOffsetsPtr>>>=0;var pass=WebGPU.getJsObject(passPtr);var group=WebGPU.getJsObject(groupPtr);if(dynamicOffsetCount==0){pass.setBindGroup(groupIndex,group)}else{pass.setBindGroup(groupIndex,group,(growMemViews(),HEAPU32),dynamicOffsetsPtr>>>2,dynamicOffsetCount)}}function _wgpuComputePassEncoderSetPipeline(passPtr,pipelinePtr){passPtr>>>=0;pipelinePtr>>>=0;var pass=WebGPU.getJsObject(passPtr);var pipeline=WebGPU.getJsObject(pipelinePtr);pass.setPipeline(pipeline)}function _wgpuComputePipelineGetBindGroupLayout(pipelinePtr,groupIndex){pipelinePtr>>>=0;var pipeline=WebGPU.getJsObject(pipelinePtr);var ptr=_emwgpuCreateBindGroupLayout(0);WebGPU.Internals.jsObjectInsert(ptr,pipeline.getBindGroupLayout(groupIndex));return ptr}var _wgpuDeviceCreateBindGroup=function(devicePtr,descriptor){devicePtr>>>=0;descriptor>>>=0;function makeEntry(entryPtr){var bufferPtr=(growMemViews(),HEAPU32)[entryPtr+8>>>2>>>0];var samplerPtr=(growMemViews(),HEAPU32)[entryPtr+32>>>2>>>0];var textureViewPtr=(growMemViews(),HEAPU32)[entryPtr+36>>>2>>>0];var externalTexturePtr=0;WebGPU.iterateExtensions(entryPtr,{327681:ptr=>{externalTexturePtr=(growMemViews(),HEAPU32)[ptr+8>>>2>>>0]}});var resource;if(bufferPtr){var size=readI53FromI64(entryPtr+24);if(size==-1)size=undefined;resource={buffer:WebGPU.getJsObject(bufferPtr),offset:readI53FromI64(entryPtr+16),size}}else{resource=WebGPU.getJsObject(samplerPtr||textureViewPtr||externalTexturePtr)}return{binding:(growMemViews(),HEAPU32)[entryPtr+4>>>2>>>0],resource}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i>>2>>>0]),entries:makeEntries((growMemViews(),HEAPU32)[descriptor+16>>>2>>>0],(growMemViews(),HEAPU32)[descriptor+20>>>2>>>0])};var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateBindGroup(0);WebGPU.Internals.jsObjectInsert(ptr,device.createBindGroup(desc));return ptr};function _wgpuDeviceCreateCommandEncoder(devicePtr,descriptor){devicePtr>>>=0;descriptor>>>=0;var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4)}}var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateCommandEncoder(0);WebGPU.Internals.jsObjectInsert(ptr,device.createCommandEncoder(desc));return ptr}function _wgpuDeviceCreateComputePipeline(devicePtr,descriptor){devicePtr>>>=0;descriptor>>>=0;var desc=WebGPU.makeComputePipelineDesc(descriptor);var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateComputePipeline(0);WebGPU.Internals.jsObjectInsert(ptr,device.createComputePipeline(desc));return ptr}var _wgpuQueueSubmit=function(queuePtr,commandCount,commands){queuePtr>>>=0;commandCount>>>=0;commands>>>=0;var queue=WebGPU.getJsObject(queuePtr);var cmds=Array.from((growMemViews(),HEAP32).subarray(commands>>>2>>>0,commands+commandCount*4>>>2>>>0),id=>WebGPU.getJsObject(id));queue.submit(cmds)};function _wgpuQueueWriteBuffer(queuePtr,bufferPtr,bufferOffset,data,size){queuePtr>>>=0;bufferPtr>>>=0;bufferOffset=bigintToI53Checked(bufferOffset);data>>>=0;size>>>=0;var queue=WebGPU.getJsObject(queuePtr);var buffer=WebGPU.getJsObject(bufferPtr);var subarray=(growMemViews(),HEAPU8).subarray(data>>>0,data+size>>>0);queue.writeBuffer(buffer,bufferOffset,subarray,0,size)}var runAndAbortIfError=func=>{try{return func()}catch(e){abort(e)}};var Asyncify={instrumentWasmImports(imports){var importPattern=/^(invoke_.*|__asyncjs__.*)$/;for(let[x,original]of Object.entries(imports)){if(typeof original=="function"){let isAsyncifyImport=original.isAsync||importPattern.test(x)}}},instrumentFunction(original){var wrapper=(...args)=>{Asyncify.exportCallStack.push(original);try{return original(...args)}finally{if(!ABORT){var top=Asyncify.exportCallStack.pop();Asyncify.maybeStopUnwind()}}};Asyncify.funcWrappers.set(original,wrapper);return wrapper},instrumentWasmExports(exports){var ret={};for(let[x,original]of Object.entries(exports)){if(typeof original=="function"){var wrapper=Asyncify.instrumentFunction(original);ret[x]=wrapper}else{ret[x]=original}}return ret},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callstackFuncToId:new Map,callStackIdToFunc:new Map,funcWrappers:new Map,callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId(func){if(!Asyncify.callstackFuncToId.has(func)){var id=Asyncify.callStackId++;Asyncify.callstackFuncToId.set(func,id);Asyncify.callStackIdToFunc.set(id,func)}return Asyncify.callstackFuncToId.get(func)},maybeStopUnwind(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runtimeKeepalivePush();runAndAbortIfError(_asyncify_stop_unwind);if(typeof Fibers!="undefined"){Fibers.trampoline()}}},whenDone(){return new Promise((resolve,reject)=>{Asyncify.asyncPromiseHandlers={resolve,reject}})},allocateData(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader(ptr,stack,stackSize){(growMemViews(),HEAPU32)[ptr>>>2>>>0]=stack;(growMemViews(),HEAPU32)[ptr+4>>>2>>>0]=stack+stackSize},setDataRewindFunc(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);(growMemViews(),HEAP32)[ptr+8>>>2>>>0]=rewindId},getDataRewindFunc(ptr){var id=(growMemViews(),HEAP32)[ptr+8>>>2>>>0];var func=Asyncify.callStackIdToFunc.get(id);return func},doRewind(ptr){var original=Asyncify.getDataRewindFunc(ptr);var func=Asyncify.funcWrappers.get(original);runtimeKeepalivePop();return func()},handleSleep(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync((handleSleepReturnValue=0)=>{if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(()=>_asyncify_start_rewind(Asyncify.currData));if(typeof MainLoop!="undefined"&&MainLoop.func){MainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();if(typeof MainLoop!="undefined"&&MainLoop.func){MainLoop.pause()}runAndAbortIfError(()=>_asyncify_start_unwind(Asyncify.currData))}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_rewind);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(callUserCallback)}else{abort(`invalid state: ${Asyncify.state}`)}return Asyncify.handleSleepReturnValue},handleAsync:startAsync=>Asyncify.handleSleep(wakeUp=>{startAsync().then(wakeUp)})};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{(growMemViews(),HEAP8).set(array,buffer>>>0)};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="pointer")return ret>>>0;if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var FS_createPath=(...args)=>FS.createPath(...args);var FS_unlink=(...args)=>FS.unlink(...args);var FS_createLazyFile=(...args)=>FS.createLazyFile(...args);var FS_createDevice=(...args)=>FS.createDevice(...args);PThread.init();FS.createPreloadedFile=FS_createPreloadedFile;FS.preloadFile=FS_preloadFile;FS.staticInit();{initMemory();if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(Module["preloadPlugins"])preloadPlugins=Module["preloadPlugins"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()()}}}Module["mmapAlloc"]=mmapAlloc;Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["FS_preloadFile"]=FS_preloadFile;Module["FS_unlink"]=FS_unlink;Module["FS_createPath"]=FS_createPath;Module["FS_createDevice"]=FS_createDevice;Module["FS"]=FS;Module["FS_createDataFile"]=FS_createDataFile;Module["FS_createLazyFile"]=FS_createLazyFile;Module["MEMFS"]=MEMFS;var proxiedFunctionTable=[_proc_exit,exitOnMainThread,pthreadCreateProxied,___syscall_fcntl64,___syscall_fstat64,___syscall_getcwd,___syscall_getdents64,___syscall_ioctl,___syscall_lstat64,___syscall_newfstatat,___syscall_openat,___syscall_stat64,__mmap_js,__munmap_js,__setitimer_js,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function __asyncjs__js_file_read(path_ptr,offset,req_size,out_ptr){return Asyncify.handleAsync(async()=>await _wllama_js_file_read(UTF8ToString(Number(path_ptr)),Number(offset),Number(req_size),Number(out_ptr)))}var _malloc,_free,_wllama_malloc,_wllama_start,_wllama_action,_wllama_exit,_wllama_debug,_main,_emwgpuCreateBindGroup,_emwgpuCreateBindGroupLayout,_emwgpuCreateCommandBuffer,_emwgpuCreateCommandEncoder,_emwgpuCreateComputePassEncoder,_emwgpuCreateComputePipeline,_emwgpuCreateExternalTexture,_emwgpuCreatePipelineLayout,_emwgpuCreateQuerySet,_emwgpuCreateRenderBundle,_emwgpuCreateRenderBundleEncoder,_emwgpuCreateRenderPassEncoder,_emwgpuCreateRenderPipeline,_emwgpuCreateSampler,_emwgpuCreateSurface,_emwgpuCreateTexture,_emwgpuCreateTextureView,_emwgpuCreateAdapter,_emwgpuCreateBuffer,_emwgpuCreateDevice,_emwgpuCreateQueue,_emwgpuCreateShaderModule,_emwgpuOnDeviceLostCompleted,_emwgpuOnMapAsyncCompleted,_emwgpuOnRequestAdapterCompleted,_emwgpuOnRequestDeviceCompleted,_emwgpuOnWorkDoneCompleted,_emwgpuOnUncapturedError,__emscripten_tls_init,_pthread_self,_emscripten_builtin_memalign,__emscripten_thread_init,__emscripten_thread_crashed,__emscripten_run_js_on_main_thread,__emscripten_thread_free_data,__emscripten_thread_exit,__emscripten_timeout,__emscripten_check_mailbox,_memalign,_setThrew,__emscripten_tempret_set,_emscripten_stack_set_limits,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,___cxa_decrement_exception_refcount,___cxa_increment_exception_refcount,___cxa_can_catch,___cxa_get_exception_ptr,dynCall_iii,dynCall_viii,dynCall_ii,dynCall_vi,dynCall_vii,dynCall_v,dynCall_viiii,dynCall_viiiii,dynCall_iiii,dynCall_viiiiiiiiiiiiii,dynCall_viiiiiii,dynCall_viiiiiiii,dynCall_iiiiii,dynCall_viiiiiiiii,dynCall_j,dynCall_viiiiii,dynCall_iiiiiii,dynCall_iiji,dynCall_iiiii,dynCall_iiiiiiii,dynCall_vij,dynCall_iij,dynCall_iifff,dynCall_iiiffiiii,dynCall_iiiiiiiiii,dynCall_iiiiiiiiiiiiiiiiiii,dynCall_iiiiiiiiiiiiiii,dynCall_di,dynCall_ji,dynCall_dii,dynCall_jii,dynCall_viiijj,dynCall_iid,dynCall_vid,dynCall_viiiijj,dynCall_viid,dynCall_vjjiii,dynCall_iiiiiijii,dynCall_iiiji,dynCall_fiii,dynCall_viiij,dynCall_iiif,dynCall_ifi,dynCall_iiiiiiiiiiiiii,dynCall_iiiiff,dynCall_viijj,dynCall_iiiiiiiiiii,dynCall_viif,dynCall_iiijj,dynCall_iiijjjj,dynCall_iiiiiiiiiffffffi,dynCall_iiiiiiiii,dynCall_i,dynCall_iiij,dynCall_viiiijjji,dynCall_iiiiiiiiiifi,dynCall_iiiiiiiiiiiijjiifiiiiiii,dynCall_iiiiiiiiiiiiiiii,dynCall_iiijjj,dynCall_iiiiiiiiifi,dynCall_iiiff,dynCall_iiiiiiji,dynCall_iiiiijiiijjjjjjj,dynCall_iiiiijji,dynCall_iiiiiiiiiiii,dynCall_viiiiiiiiii,dynCall_viij,dynCall_iiijiiii,dynCall_iiiiiifi,dynCall_iiiiiiiifii,dynCall_vj,dynCall_viijii,dynCall_viijijj,dynCall_viiiij,dynCall_iiid,dynCall_jiji,dynCall_iidiiii,dynCall_iiiij,dynCall_iiiiij,dynCall_iiiiid,dynCall_jiiii,dynCall_diii,dynCall_viiiiiiiiiiiiiii,dynCall_viji,dynCall_iiiiijj,dynCall_iiiiiijj,_asyncify_start_unwind,_asyncify_stop_unwind,_asyncify_start_rewind,_asyncify_stop_rewind,__indirect_function_table,wasmTable;function assignWasmExports(wasmExports){_malloc=wasmExports["dc"];_free=wasmExports["ec"];_wllama_malloc=Module["_wllama_malloc"]=wasmExports["fc"];_wllama_start=Module["_wllama_start"]=wasmExports["gc"];_wllama_action=Module["_wllama_action"]=wasmExports["hc"];_wllama_exit=Module["_wllama_exit"]=wasmExports["ic"];_wllama_debug=Module["_wllama_debug"]=wasmExports["jc"];_main=Module["_main"]=wasmExports["kc"];_emwgpuCreateBindGroup=wasmExports["lc"];_emwgpuCreateBindGroupLayout=wasmExports["mc"];_emwgpuCreateCommandBuffer=wasmExports["nc"];_emwgpuCreateCommandEncoder=wasmExports["oc"];_emwgpuCreateComputePassEncoder=wasmExports["pc"];_emwgpuCreateComputePipeline=wasmExports["qc"];_emwgpuCreateExternalTexture=wasmExports["rc"];_emwgpuCreatePipelineLayout=wasmExports["sc"];_emwgpuCreateQuerySet=wasmExports["tc"];_emwgpuCreateRenderBundle=wasmExports["uc"];_emwgpuCreateRenderBundleEncoder=wasmExports["vc"];_emwgpuCreateRenderPassEncoder=wasmExports["wc"];_emwgpuCreateRenderPipeline=wasmExports["xc"];_emwgpuCreateSampler=wasmExports["yc"];_emwgpuCreateSurface=wasmExports["zc"];_emwgpuCreateTexture=wasmExports["Ac"];_emwgpuCreateTextureView=wasmExports["Bc"];_emwgpuCreateAdapter=wasmExports["Cc"];_emwgpuCreateBuffer=wasmExports["Dc"];_emwgpuCreateDevice=wasmExports["Ec"];_emwgpuCreateQueue=wasmExports["Fc"];_emwgpuCreateShaderModule=wasmExports["Gc"];_emwgpuOnDeviceLostCompleted=wasmExports["Hc"];_emwgpuOnMapAsyncCompleted=wasmExports["Ic"];_emwgpuOnRequestAdapterCompleted=wasmExports["Jc"];_emwgpuOnRequestDeviceCompleted=wasmExports["Kc"];_emwgpuOnWorkDoneCompleted=wasmExports["Lc"];_emwgpuOnUncapturedError=wasmExports["Mc"];__emscripten_tls_init=wasmExports["Nc"];_pthread_self=wasmExports["Oc"];_emscripten_builtin_memalign=wasmExports["Pc"];__emscripten_thread_init=wasmExports["Rc"];__emscripten_thread_crashed=wasmExports["Sc"];__emscripten_run_js_on_main_thread=wasmExports["Tc"];__emscripten_thread_free_data=wasmExports["Uc"];__emscripten_thread_exit=wasmExports["Vc"];__emscripten_timeout=wasmExports["Wc"];__emscripten_check_mailbox=wasmExports["Xc"];_memalign=wasmExports["Yc"];_setThrew=wasmExports["Zc"];__emscripten_tempret_set=wasmExports["_c"];_emscripten_stack_set_limits=wasmExports["$c"];__emscripten_stack_restore=wasmExports["ad"];__emscripten_stack_alloc=wasmExports["bd"];_emscripten_stack_get_current=wasmExports["cd"];___cxa_decrement_exception_refcount=wasmExports["dd"];___cxa_increment_exception_refcount=wasmExports["ed"];___cxa_can_catch=wasmExports["fd"];___cxa_get_exception_ptr=wasmExports["gd"];dynCall_iii=dynCalls["iii"]=wasmExports["hd"];dynCall_viii=dynCalls["viii"]=wasmExports["id"];dynCall_ii=dynCalls["ii"]=wasmExports["jd"];dynCall_vi=dynCalls["vi"]=wasmExports["kd"];dynCall_vii=dynCalls["vii"]=wasmExports["ld"];dynCall_v=dynCalls["v"]=wasmExports["md"];dynCall_viiii=dynCalls["viiii"]=wasmExports["nd"];dynCall_viiiii=dynCalls["viiiii"]=wasmExports["od"];dynCall_iiii=dynCalls["iiii"]=wasmExports["pd"];dynCall_viiiiiiiiiiiiii=dynCalls["viiiiiiiiiiiiii"]=wasmExports["qd"];dynCall_viiiiiii=dynCalls["viiiiiii"]=wasmExports["rd"];dynCall_viiiiiiii=dynCalls["viiiiiiii"]=wasmExports["sd"];dynCall_iiiiii=dynCalls["iiiiii"]=wasmExports["td"];dynCall_viiiiiiiii=dynCalls["viiiiiiiii"]=wasmExports["ud"];dynCall_j=dynCalls["j"]=wasmExports["vd"];dynCall_viiiiii=dynCalls["viiiiii"]=wasmExports["wd"];dynCall_iiiiiii=dynCalls["iiiiiii"]=wasmExports["xd"];dynCall_iiji=dynCalls["iiji"]=wasmExports["yd"];dynCall_iiiii=dynCalls["iiiii"]=wasmExports["zd"];dynCall_iiiiiiii=dynCalls["iiiiiiii"]=wasmExports["Ad"];dynCall_vij=dynCalls["vij"]=wasmExports["Bd"];dynCall_iij=dynCalls["iij"]=wasmExports["Cd"];dynCall_iifff=dynCalls["iifff"]=wasmExports["Dd"];dynCall_iiiffiiii=dynCalls["iiiffiiii"]=wasmExports["Ed"];dynCall_iiiiiiiiii=dynCalls["iiiiiiiiii"]=wasmExports["Fd"];dynCall_iiiiiiiiiiiiiiiiiii=dynCalls["iiiiiiiiiiiiiiiiiii"]=wasmExports["Gd"];dynCall_iiiiiiiiiiiiiii=dynCalls["iiiiiiiiiiiiiii"]=wasmExports["Hd"];dynCall_di=dynCalls["di"]=wasmExports["Id"];dynCall_ji=dynCalls["ji"]=wasmExports["Jd"];dynCall_dii=dynCalls["dii"]=wasmExports["Kd"];dynCall_jii=dynCalls["jii"]=wasmExports["Ld"];dynCall_viiijj=dynCalls["viiijj"]=wasmExports["Md"];dynCall_iid=dynCalls["iid"]=wasmExports["Nd"];dynCall_vid=dynCalls["vid"]=wasmExports["Od"];dynCall_viiiijj=dynCalls["viiiijj"]=wasmExports["Pd"];dynCall_viid=dynCalls["viid"]=wasmExports["Qd"];dynCall_vjjiii=dynCalls["vjjiii"]=wasmExports["Rd"];dynCall_iiiiiijii=dynCalls["iiiiiijii"]=wasmExports["Sd"];dynCall_iiiji=dynCalls["iiiji"]=wasmExports["Td"];dynCall_fiii=dynCalls["fiii"]=wasmExports["Ud"];dynCall_viiij=dynCalls["viiij"]=wasmExports["Vd"];dynCall_iiif=dynCalls["iiif"]=wasmExports["Wd"];dynCall_ifi=dynCalls["ifi"]=wasmExports["Xd"];dynCall_iiiiiiiiiiiiii=dynCalls["iiiiiiiiiiiiii"]=wasmExports["Yd"];dynCall_iiiiff=dynCalls["iiiiff"]=wasmExports["Zd"];dynCall_viijj=dynCalls["viijj"]=wasmExports["_d"];dynCall_iiiiiiiiiii=dynCalls["iiiiiiiiiii"]=wasmExports["$d"];dynCall_viif=dynCalls["viif"]=wasmExports["ae"];dynCall_iiijj=dynCalls["iiijj"]=wasmExports["be"];dynCall_iiijjjj=dynCalls["iiijjjj"]=wasmExports["ce"];dynCall_iiiiiiiiiffffffi=dynCalls["iiiiiiiiiffffffi"]=wasmExports["de"];dynCall_iiiiiiiii=dynCalls["iiiiiiiii"]=wasmExports["ee"];dynCall_i=dynCalls["i"]=wasmExports["fe"];dynCall_iiij=dynCalls["iiij"]=wasmExports["ge"];dynCall_viiiijjji=dynCalls["viiiijjji"]=wasmExports["he"];dynCall_iiiiiiiiiifi=dynCalls["iiiiiiiiiifi"]=wasmExports["ie"];dynCall_iiiiiiiiiiiijjiifiiiiiii=dynCalls["iiiiiiiiiiiijjiifiiiiiii"]=wasmExports["je"];dynCall_iiiiiiiiiiiiiiii=dynCalls["iiiiiiiiiiiiiiii"]=wasmExports["ke"];dynCall_iiijjj=dynCalls["iiijjj"]=wasmExports["le"];dynCall_iiiiiiiiifi=dynCalls["iiiiiiiiifi"]=wasmExports["me"];dynCall_iiiff=dynCalls["iiiff"]=wasmExports["ne"];dynCall_iiiiiiji=dynCalls["iiiiiiji"]=wasmExports["oe"];dynCall_iiiiijiiijjjjjjj=dynCalls["iiiiijiiijjjjjjj"]=wasmExports["pe"];dynCall_iiiiijji=dynCalls["iiiiijji"]=wasmExports["qe"];dynCall_iiiiiiiiiiii=dynCalls["iiiiiiiiiiii"]=wasmExports["re"];dynCall_viiiiiiiiii=dynCalls["viiiiiiiiii"]=wasmExports["se"];dynCall_viij=dynCalls["viij"]=wasmExports["te"];dynCall_iiijiiii=dynCalls["iiijiiii"]=wasmExports["ue"];dynCall_iiiiiifi=dynCalls["iiiiiifi"]=wasmExports["ve"];dynCall_iiiiiiiifii=dynCalls["iiiiiiiifii"]=wasmExports["we"];dynCall_vj=dynCalls["vj"]=wasmExports["xe"];dynCall_viijii=dynCalls["viijii"]=wasmExports["ye"];dynCall_viijijj=dynCalls["viijijj"]=wasmExports["ze"];dynCall_viiiij=dynCalls["viiiij"]=wasmExports["Ae"];dynCall_iiid=dynCalls["iiid"]=wasmExports["Be"];dynCall_jiji=dynCalls["jiji"]=wasmExports["Ce"];dynCall_iidiiii=dynCalls["iidiiii"]=wasmExports["De"];dynCall_iiiij=dynCalls["iiiij"]=wasmExports["Ee"];dynCall_iiiiij=dynCalls["iiiiij"]=wasmExports["Fe"];dynCall_iiiiid=dynCalls["iiiiid"]=wasmExports["Ge"];dynCall_jiiii=dynCalls["jiiii"]=wasmExports["He"];dynCall_diii=dynCalls["diii"]=wasmExports["Ie"];dynCall_viiiiiiiiiiiiiii=dynCalls["viiiiiiiiiiiiiii"]=wasmExports["Je"];dynCall_viji=dynCalls["viji"]=wasmExports["Ke"];dynCall_iiiiijj=dynCalls["iiiiijj"]=wasmExports["Le"];dynCall_iiiiiijj=dynCalls["iiiiiijj"]=wasmExports["Me"];_asyncify_start_unwind=wasmExports["Ne"];_asyncify_stop_unwind=wasmExports["Oe"];_asyncify_start_rewind=wasmExports["Pe"];_asyncify_stop_rewind=wasmExports["Qe"];__indirect_function_table=wasmTable=wasmExports["Qc"]}var wasmImports;function assignWasmImports(){wasmImports={ya:__asyncjs__js_file_read,s:___cxa_begin_catch,Va:___cxa_current_primary_exception,B:___cxa_end_catch,b:___cxa_find_matching_catch_2,n:___cxa_find_matching_catch_3,P:___cxa_find_matching_catch_4,ac:___cxa_find_matching_catch_7,ja:___cxa_rethrow,Ta:___cxa_rethrow_primary_exception,v:___cxa_throw,Wa:___cxa_uncaught_exceptions,db:___pthread_create_js,i:___resumeException,wa:___syscall_fcntl64,Sa:___syscall_getcwd,Xa:___syscall_getdents64,qb:___syscall_ioctl,xa:___syscall_openat,ab:___syscall_stat64,vb:__abort_js,lb:__emscripten_init_main_thread_js,Za:__emscripten_notify_mailbox_postmessage,eb:__emscripten_receive_on_main_thread_js,Pa:__emscripten_runtime_keepalive_clear,ta:__emscripten_thread_cleanup,kb:__emscripten_thread_mailbox_await,sb:__emscripten_thread_set_strongref,hb:__localtime_js,fb:__mmap_js,gb:__munmap_js,Qa:__setitimer_js,ib:__tzset_js,ub:_clock_time_get,ua:_emscripten_check_blocking_allowed,tb:_emscripten_date_now,rb:_emscripten_exit_with_live_runtime,_a:_emscripten_get_heap_max,ba:_emscripten_get_now,wb:_emscripten_has_asyncify,$a:_emscripten_num_logical_cores,Ya:_emscripten_resize_heap,Ab:_emwgpuAdapterRequestDevice,W:_emwgpuBufferDestroy,Eb:_emwgpuBufferGetConstMappedRange,Db:_emwgpuBufferMapAsync,Cb:_emwgpuBufferUnmap,p:_emwgpuDelete,_:_emwgpuDeviceCreateBuffer,za:_emwgpuDeviceCreateShaderModule,Bb:_emwgpuDeviceDestroy,zb:_emwgpuInstanceRequestAdapter,yb:_emwgpuQueueOnSubmittedWorkDone,xb:_emwgpuWaitAny,nb:_environ_get,ob:_environ_sizes_get,bb:_exit,ca:_fd_close,va:_fd_read,jb:_fd_seek,pb:_fd_write,M:invoke_di,ga:invoke_dii,Aa:invoke_diii,L:invoke_fiii,K:invoke_i,Fa:invoke_ifi,d:invoke_ii,S:invoke_iid,$b:invoke_iifff,f:invoke_iii,Ca:invoke_iiid,A:invoke_iiif,Wb:invoke_iiiff,Ia:invoke_iiiffiiii,g:invoke_iiii,oa:invoke_iiiiff,o:invoke_iiiii,Ob:invoke_iiiiid,l:invoke_iiiiii,ka:invoke_iiiiiifi,m:invoke_iiiiiii,H:invoke_iiiiiiii,Ub:invoke_iiiiiiiifii,aa:invoke_iiiiiiiii,r:invoke_iiiiiiiiiffffffi,na:invoke_iiiiiiiiifi,F:invoke_iiiiiiiiii,u:invoke_iiiiiiiiiifi,I:invoke_iiiiiiiiiii,X:invoke_iiiiiiiiiiii,Zb:invoke_iiiiiiiiiiiiii,$:invoke_iiiiiiiiiiiiiii,t:invoke_iiiiiiiiiiiiiiii,Ha:invoke_iiiiiiiiiiiiiiiiiii,D:invoke_iiiiiiiiiiiijjiifiiiiiii,Ea:invoke_iiiiiiji,Ja:invoke_iiiiiijii,Ba:invoke_iiiiij,ma:invoke_iiiiijiiijjjjjjj,la:invoke_iiiiijji,Qb:invoke_iiiij,Y:invoke_iiij,_b:invoke_iiiji,U:invoke_iiijiiii,E:invoke_iiijj,w:invoke_iiijjj,G:invoke_iiijjjj,N:invoke_iij,ra:invoke_iiji,Rb:invoke_j,C:invoke_ji,T:invoke_jii,ea:invoke_jiiii,h:invoke_v,q:invoke_vi,ha:invoke_vid,c:invoke_vii,Lb:invoke_viid,Mb:invoke_viif,e:invoke_viii,j:invoke_viiii,k:invoke_viiiii,z:invoke_viiiiii,O:invoke_viiiiiii,qa:invoke_viiiiiiii,ia:invoke_viiiiiiiii,V:invoke_viiiiiiiiii,sa:invoke_viiiiiiiiiiiiii,da:invoke_viiiiiiiiiiiiiii,R:invoke_viiiij,Ka:invoke_viiiijj,y:invoke_viiiijjji,Q:invoke_viiij,La:invoke_viiijj,Pb:invoke_viij,Da:invoke_viijii,Sb:invoke_viijijj,Ga:invoke_viijj,J:invoke_vij,fa:invoke_vj,Z:invoke_vjjiii,x:_llvm_eh_typeid_for,a:wasmMemory,Oa:_proc_exit,Ra:_random_get,Ua:_wgpuAdapterGetFeatures,cb:_wgpuAdapterGetInfo,mb:_wgpuAdapterGetLimits,Na:_wgpuAdapterHasFeature,bc:_wgpuBufferGetSize,Tb:_wgpuCommandEncoderBeginComputePass,Fb:_wgpuCommandEncoderCopyBufferToBuffer,Hb:_wgpuCommandEncoderFinish,Jb:_wgpuComputePassEncoderDispatchWorkgroups,Ib:_wgpuComputePassEncoderEnd,Kb:_wgpuComputePassEncoderSetBindGroup,Nb:_wgpuComputePassEncoderSetPipeline,Yb:_wgpuComputePipelineGetBindGroupLayout,Xb:_wgpuDeviceCreateBindGroup,Vb:_wgpuDeviceCreateCommandEncoder,Ma:_wgpuDeviceCreateComputePipeline,Gb:_wgpuQueueSubmit,pa:_wgpuQueueWriteBuffer}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14){var sp=stackSave();try{dynCall_viiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiji(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiji(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vij(index,a1,a2){var sp=stackSave();try{dynCall_vij(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iij(index,a1,a2){var sp=stackSave();try{return dynCall_iij(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_di(index,a1){var sp=stackSave();try{return dynCall_di(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return dynCall_ji(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);return 0n}}function invoke_iid(index,a1,a2){var sp=stackSave();try{return dynCall_iid(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vid(index,a1,a2){var sp=stackSave();try{dynCall_vid(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijj(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiijj(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiijj(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiijj(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vjjiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_vjjiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iifff(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iifff(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiffiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiffiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jii(index,a1,a2){var sp=stackSave();try{return dynCall_jii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);return 0n}}function invoke_fiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_fiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiij(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiij(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiji(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiji(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13){var sp=stackSave();try{return dynCall_iiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18){var sp=stackSave();try{return dynCall_iiiiiiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14){var sp=stackSave();try{return dynCall_iiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiif(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiif(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijj(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viijj(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijj(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiijj(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijjjj(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiijjjj(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiffffffi(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{return dynCall_iiiiiiiiiffffffi(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return dynCall_i(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiij(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ifi(index,a1,a2){var sp=stackSave();try{return dynCall_ifi(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiff(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiff(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiijjji(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiijjji(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiifi(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiiiiiiiifi(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiijjiifiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23){var sp=stackSave();try{return dynCall_iiiiiiiiiiiijjiifiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{return dynCall_iiiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijjj(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiijjj(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiifi(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiiiiiifi(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiff(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiff(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiji(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiiji(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiijiiijjjjjjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{return dynCall_iiiiijiiijjjjjjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiijji(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiijji(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_dii(index,a1,a2){var sp=stackSave();try{return dynCall_dii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiijiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiifi(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiifi(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiifii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiiiiifii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vj(index,a1){var sp=stackSave();try{dynCall_vj(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijijj(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viijijj(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viijii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiij(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiij(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiid(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_j(index){var sp=stackSave();try{return dynCall_j(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);return 0n}}function invoke_iiiij(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiij(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiij(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiij(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viij(index,a1,a2,a3){var sp=stackSave();try{dynCall_viij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiid(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiid(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);return 0n}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{dynCall_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viif(index,a1,a2,a3){var sp=stackSave();try{dynCall_viif(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viid(index,a1,a2,a3){var sp=stackSave();try{dynCall_viid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_pp=f=>a0=>f(a0)>>>0;var makeWrapper_p=f=>()=>f()>>>0;var makeWrapper_ppp=f=>(a0,a1)=>f(a0,a1)>>>0;wasmExports["dc"]=makeWrapper_pp(wasmExports["dc"]);wasmExports["Oc"]=makeWrapper_p(wasmExports["Oc"]);wasmExports["Pc"]=makeWrapper_ppp(wasmExports["Pc"]);wasmExports["Yc"]=makeWrapper_ppp(wasmExports["Yc"]);wasmExports["bd"]=makeWrapper_pp(wasmExports["bd"]);wasmExports["cd"]=makeWrapper_p(wasmExports["cd"]);wasmExports["gd"]=makeWrapper_pp(wasmExports["gd"]);return wasmExports}function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){dependenciesFulfilled=run;return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();Module["onRuntimeInitialized"]?.();var noInitialRun=Module["noInitialRun"]||false;if(!noInitialRun)callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}var wasmExports;if(!ENVIRONMENT_IS_PTHREAD){createWasm();run()} +var Module=typeof Module!="undefined"?Module:{};var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";var ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&self.name?.startsWith("em-pthread");if(ENVIRONMENT_IS_NODE){var worker_threads=require("worker_threads");global.Worker=worker_threads.Worker;ENVIRONMENT_IS_WORKER=!worker_threads.isMainThread;ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&worker_threads["workerData"]=="em-pthread"}var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=globalThis.document?.currentScript?.src;if(typeof __filename!="undefined"){_scriptName=__filename}else if(ENVIRONMENT_IS_WORKER){_scriptName=self.location.href}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");scriptDirectory=__dirname+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module}quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}if(!ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var defaultPrint=console.log.bind(console);var defaultPrintErr=console.error.bind(console);if(ENVIRONMENT_IS_NODE){var utils=require("util");var stringify=a=>typeof a=="object"?utils.inspect(a):a;defaultPrint=(...args)=>fs.writeSync(1,args.map(stringify).join(" ")+"\n");defaultPrintErr=(...args)=>fs.writeSync(2,args.map(stringify).join(" ")+"\n")}var out=defaultPrint;var err=defaultPrintErr;var wasmBinary;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var isFileURI=filename=>filename.startsWith("file://");function growMemViews(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}}if(ENVIRONMENT_IS_NODE&&ENVIRONMENT_IS_PTHREAD){var parentPort=worker_threads["parentPort"];parentPort.on("message",msg=>global.onmessage?.({data:msg}));Object.assign(globalThis,{self:global,postMessage:msg=>parentPort["postMessage"](msg)});process.on("uncaughtException",err=>{postMessage({cmd:"uncaughtException",error:err});process.exit(1)})}var startWorker;if(ENVIRONMENT_IS_PTHREAD){var initializedJS=false;self.onunhandledrejection=e=>{throw e.reason||e};function handleMessage(e){try{var msgData=e["data"];var cmd=msgData.cmd;if(cmd==="load"){let messageQueue=[];self.onmessage=e=>messageQueue.push(e);startWorker=()=>{postMessage({cmd:"loaded"});for(let msg of messageQueue){handleMessage(msg)}self.onmessage=handleMessage};for(const handler of msgData.handlers){if(!Module[handler]||Module[handler].proxy){Module[handler]=(...args)=>{postMessage({cmd:"callHandler",handler,args})};if(handler=="print")out=Module[handler];if(handler=="printErr")err=Module[handler]}}wasmMemory=msgData.wasmMemory;updateMemoryViews();wasmModule=msgData.wasmModule;createWasm();run()}else if(cmd==="run"){establishStackSpace(msgData.pthread_ptr);__emscripten_thread_init(msgData.pthread_ptr,0,0,1,0,0);PThread.threadInitTLS();__emscripten_thread_mailbox_await(msgData.pthread_ptr);if(!initializedJS){initializedJS=true}try{invokeEntryPoint(msgData.start_routine,msgData.arg)}catch(ex){if(ex!="unwind"){throw ex}}}else if(msgData.target==="setimmediate"){}else if(cmd==="checkMailbox"){if(initializedJS){checkMailbox()}}else if(cmd){err(`worker: received unknown command ${cmd}`);err(msgData)}}catch(ex){__emscripten_thread_crashed();throw ex}}self.onmessage=handleMessage}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function initMemory(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||134217728;wasmMemory=new WebAssembly.Memory({initial:INITIAL_MEMORY/65536,maximum:65536,shared:true})}updateMemoryViews()}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return startWorker();if(!Module["noFSInit"]&&!FS.initialized)FS.init();TTY.init();wasmExports["cc"]();FS.ignorePermissions=false}function preMain(){}function postRun(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var wasmBinaryFile;function findWasmBinary(){return locateFile("wllama.wasm")}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){assignWasmImports();var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmExports=applySignatureConversions(wasmExports);registerTLSInit(wasmExports["Nc"]);assignWasmExports(wasmExports);wasmModule=module;removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){return receiveInstance(result["instance"],result["module"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}if(ENVIRONMENT_IS_PTHREAD){var instance=new WebAssembly.Instance(wasmModule,getWasmImports());return receiveInstance(instance,wasmModule)}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var terminateWorker=worker=>{worker.terminate();worker.onmessage=e=>{}};var cleanupThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];PThread.returnWorkerToPool(worker)};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}};var addRunDependency=id=>{runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)};var spawnThread=threadParams=>{var worker=PThread.getNewWorker();if(!worker){return 6}PThread.runningWorkers.push(worker);PThread.pthreads[threadParams.pthread_ptr]=worker;worker.pthread_ptr=threadParams.pthread_ptr;var msg={cmd:"run",start_routine:threadParams.startRoutine,arg:threadParams.arg,pthread_ptr:threadParams.pthread_ptr};if(ENVIRONMENT_IS_NODE){worker.unref()}worker.postMessage(msg,threadParams.transferList);return 0};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var stackSave=()=>_emscripten_stack_get_current();var stackRestore=val=>__emscripten_stack_restore(val);var stackAlloc=sz=>__emscripten_stack_alloc(sz);var proxyToMainThread=(funcIndex,emAsmAddr,sync,...callArgs)=>{var serializedNumCallArgs=callArgs.length*2;var sp=stackSave();var args=stackAlloc(serializedNumCallArgs*8);var b=args>>>3;for(var i=0;i>>0]=1n;(growMemViews(),HEAP64)[b+2*i+1>>>0]=arg}else{(growMemViews(),HEAP64)[b+2*i>>>0]=0n;(growMemViews(),HEAPF64)[b+2*i+1>>>0]=arg}}var rtn=__emscripten_run_js_on_main_thread(funcIndex,emAsmAddr,serializedNumCallArgs,args,sync);stackRestore(sp);return rtn};function _proc_exit(code){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(0,0,1,code);EXITSTATUS=code;if(!keepRuntimeAlive()){PThread.terminateAllThreads();Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))}function exitOnMainThread(returnCode){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(1,0,0,returnCode);_exit(returnCode)}var exitJS=(status,implicit)=>{EXITSTATUS=status;if(ENVIRONMENT_IS_PTHREAD){exitOnMainThread(status);throw"unwind"}_proc_exit(status)};var _exit=exitJS;var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init(){if(!ENVIRONMENT_IS_PTHREAD){PThread.initMainThread()}},initMainThread(){var pthreadPoolSize=Module["pthreadPoolSize"];while(pthreadPoolSize--){PThread.allocateUnusedWorker()}addOnPreRun(async()=>{var pthreadPoolReady=PThread.loadWasmModuleToAllWorkers();addRunDependency("loading-workers");await pthreadPoolReady;removeRunDependency("loading-workers")})},terminateAllThreads:()=>{for(var worker of PThread.runningWorkers){terminateWorker(worker)}for(var worker of PThread.unusedWorkers){terminateWorker(worker)}PThread.unusedWorkers=[];PThread.runningWorkers=[];PThread.pthreads={}},returnWorkerToPool:worker=>{var pthread_ptr=worker.pthread_ptr;delete PThread.pthreads[pthread_ptr];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);worker.pthread_ptr=0;__emscripten_thread_free_data(pthread_ptr)},threadInitTLS(){PThread.tlsInitFunctions.forEach(f=>f())},loadWasmModuleToWorker:worker=>new Promise(onFinishedLoading=>{worker.onmessage=e=>{var d=e["data"];var cmd=d.cmd;if(d.targetThread&&d.targetThread!=_pthread_self()){var targetWorker=PThread.pthreads[d.targetThread];if(targetWorker){targetWorker.postMessage(d,d.transferList)}else{err(`Internal error! Worker sent a message "${cmd}" to target pthread ${d.targetThread}, but that thread no longer exists!`)}return}if(cmd==="checkMailbox"){checkMailbox()}else if(cmd==="spawnThread"){spawnThread(d)}else if(cmd==="cleanupThread"){callUserCallback(()=>cleanupThread(d.thread))}else if(cmd==="loaded"){worker.loaded=true;if(ENVIRONMENT_IS_NODE&&!worker.pthread_ptr){worker.unref()}onFinishedLoading(worker)}else if(d.target==="setimmediate"){worker.postMessage(d)}else if(cmd==="uncaughtException"){worker.onerror(d.error)}else if(cmd==="callHandler"){Module[d.handler](...d.args)}else if(cmd){err(`worker sent an unknown command ${cmd}`)}};worker.onerror=e=>{var message="worker sent an error!";err(`${message} ${e.filename}:${e.lineno}: ${e.message}`);throw e};if(ENVIRONMENT_IS_NODE){worker.on("message",data=>worker.onmessage({data}));worker.on("error",e=>worker.onerror(e))}var handlers=[];var knownHandlers=["onExit","onAbort","print","printErr"];for(var handler of knownHandlers){if(Module.propertyIsEnumerable(handler)){handlers.push(handler)}}worker.postMessage({cmd:"load",handlers,wasmMemory,wasmModule})}),async loadWasmModuleToAllWorkers(){if(ENVIRONMENT_IS_PTHREAD){return}let pthreadPoolReady=Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker));return pthreadPoolReady},allocateUnusedWorker(){var worker;var pthreadMainJs=_scriptName;if(Module["mainScriptUrlOrBlob"]){pthreadMainJs=Module["mainScriptUrlOrBlob"];if(typeof pthreadMainJs!="string"){pthreadMainJs=URL.createObjectURL(pthreadMainJs)}}worker=new Worker(pthreadMainJs,{workerData:"em-pthread",name:"em-pthread"});PThread.unusedWorkers.push(worker)},getNewWorker(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var dynCalls={};function establishStackSpace(pthread_ptr){var stackHigh=(growMemViews(),HEAPU32)[pthread_ptr+52>>>2>>>0];var stackSize=(growMemViews(),HEAPU32)[pthread_ptr+56>>>2>>>0];var stackLow=stackHigh-stackSize;_emscripten_stack_set_limits(stackHigh,stackLow);stackRestore(stackHigh)}var invokeEntryPoint=(ptr,arg)=>{runtimeKeepaliveCounter=0;noExitRuntime=0;var result=(a1=>dynCall_ii(ptr,a1))(arg);function finish(result){if(keepRuntimeAlive()){EXITSTATUS=result;return}__emscripten_thread_exit(result)}finish(result)};invokeEntryPoint.isAsync=true;var noExitRuntime=true;var registerTLSInit=tlsInitFunc=>PThread.tlsInitFunctions.push(tlsInitFunc);var wasmMemory;var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>numINT53_MAX?NaN:Number(num);var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{idx>>>=0;var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.buffer instanceof ArrayBuffer?heapOrArray.subarray(idx,endPtr):heapOrArray.slice(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>{ptr>>>=0;return ptr?UTF8ArrayToString((growMemViews(),HEAPU8),ptr,maxBytesToRead,ignoreNul):""};var exceptionCaught=[];var uncaughtExceptionCount=0;function ___cxa_begin_catch(ptr){ptr>>>=0;var info=new ExceptionInfo(ptr);if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(info);___cxa_increment_exception_refcount(ptr);return ___cxa_get_exception_ptr(ptr)}function ___cxa_current_primary_exception(){if(!exceptionCaught.length){return 0}var info=exceptionCaught[exceptionCaught.length-1];___cxa_increment_exception_refcount(info.excPtr);return info.excPtr}var exceptionLast=0;var ___cxa_end_catch=()=>{_setThrew(0,0);var info=exceptionCaught.pop();___cxa_decrement_exception_refcount(info.excPtr);exceptionLast=0};class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){(growMemViews(),HEAPU32)[this.ptr+4>>>2>>>0]=type}get_type(){return(growMemViews(),HEAPU32)[this.ptr+4>>>2>>>0]}set_destructor(destructor){(growMemViews(),HEAPU32)[this.ptr+8>>>2>>>0]=destructor}get_destructor(){return(growMemViews(),HEAPU32)[this.ptr+8>>>2>>>0]}set_caught(caught){caught=caught?1:0;(growMemViews(),HEAP8)[this.ptr+12>>>0]=caught}get_caught(){return(growMemViews(),HEAP8)[this.ptr+12>>>0]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;(growMemViews(),HEAP8)[this.ptr+13>>>0]=rethrown}get_rethrown(){return(growMemViews(),HEAP8)[this.ptr+13>>>0]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){(growMemViews(),HEAPU32)[this.ptr+16>>>2>>>0]=adjustedPtr}get_adjusted_ptr(){return(growMemViews(),HEAPU32)[this.ptr+16>>>2>>>0]}}var setTempRet0=val=>__emscripten_tempret_set(val);var findMatchingCatch=args=>{var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0}var info=new ExceptionInfo(thrown);info.set_adjusted_ptr(thrown);var thrownType=info.get_type();if(!thrownType){setTempRet0(0);return thrown}for(var caughtType of args){if(caughtType===0||caughtType===thrownType){break}var adjusted_ptr_addr=info.ptr+16;if(___cxa_can_catch(caughtType,thrownType,adjusted_ptr_addr)){setTempRet0(caughtType);return thrown}}setTempRet0(thrownType);return thrown};function ___cxa_find_matching_catch_2(){return findMatchingCatch([])}function ___cxa_find_matching_catch_3(arg0){arg0>>>=0;return findMatchingCatch([arg0])}function ___cxa_find_matching_catch_4(arg0,arg1){arg0>>>=0;arg1>>>=0;return findMatchingCatch([arg0,arg1])}function ___cxa_find_matching_catch_7(arg0,arg1,arg2,arg3,arg4){arg0>>>=0;arg1>>>=0;arg2>>>=0;arg3>>>=0;arg4>>>=0;return findMatchingCatch([arg0,arg1,arg2,arg3,arg4])}var ___cxa_rethrow=()=>{var info=exceptionCaught.pop();if(!info){abort("no exception to throw")}var ptr=info.excPtr;if(!info.get_rethrown()){exceptionCaught.push(info);info.set_rethrown(true);info.set_caught(false);uncaughtExceptionCount++}exceptionLast=ptr;throw exceptionLast};function ___cxa_rethrow_primary_exception(ptr){ptr>>>=0;if(!ptr)return;var info=new ExceptionInfo(ptr);exceptionCaught.push(info);info.set_rethrown(true);___cxa_rethrow()}function ___cxa_throw(ptr,type,destructor){ptr>>>=0;type>>>=0;destructor>>>=0;var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast}var ___cxa_uncaught_exceptions=()=>uncaughtExceptionCount;function pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(2,0,1,pthread_ptr,attr,startRoutine,arg);return ___pthread_create_js(pthread_ptr,attr,startRoutine,arg)}var _emscripten_has_threading_support=()=>!!globalThis.SharedArrayBuffer;function ___pthread_create_js(pthread_ptr,attr,startRoutine,arg){pthread_ptr>>>=0;attr>>>=0;startRoutine>>>=0;arg>>>=0;if(!_emscripten_has_threading_support()){return 6}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg)}if(error)return error;var threadParams={startRoutine,pthread_ptr,arg,transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function ___resumeException(ptr){ptr>>>=0;if(!exceptionLast){exceptionLast=ptr}throw exceptionLast}var syscallGetVarargI=()=>{var ret=(growMemViews(),HEAP32)[+SYSCALLS.varargs>>>2>>>0];SYSCALLS.varargs+=4;return ret};var syscallGetVarargP=syscallGetVarargI;var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\/]+|\/)\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(ENVIRONMENT_IS_NODE){var nodeCrypto=require("crypto");return view=>nodeCrypto.randomFillSync(view)}return view=>view.set(crypto.getRandomValues(new Uint8Array(view.byteLength)))};var randomFill=view=>{(randomFill=initRandomFill())(view)};var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{outIdx>>>=0;if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=endIdx)break;heap[outIdx++>>>0]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++>>>0]=192|u>>6;heap[outIdx++>>>0]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++>>>0]=224|u>>12;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++>>>0]=240|u>>18;heap[outIdx++>>>0]=128|u>>12&63;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63;i++}}heap[outIdx>>>0]=0;return outIdx-startIdx};var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}}else if(globalThis.window?.prompt){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var zeroMemory=(ptr,size)=>(growMemViews(),HEAPU8).fill(0,ptr,ptr+size);var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(ptr)zeroMemory(ptr,size);return ptr};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of["mode","atime","mtime","ctime"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){if(!MEMFS.doesNotExistError){MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack=""}throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[".","..",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length>>0)}}return{ptr,allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var FS_modeStringToFlags=str=>{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var getUniqueRunDependency=id=>id;var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!="undefined")Browser.init();for(var plugin of preloadPlugins){if(plugin["canHandle"](fullname)){return plugin["handle"](byteArray,fullname)}}return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);addRunDependency(dep);try{var byteArray=url;if(typeof url=="string"){byteArray=await asyncLoad(url)}byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}}finally{removeRunDependency(dep)}};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+"/"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&(512|64)){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}for(var mount of mounts){if(mount.type.syncfs){mount.type.syncfs(mount,populate,done)}else{done(null)}}},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);for(var[hash,current]of Object.entries(FS.nameTable)){while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}}node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name==="."||name===".."){throw new FS.ErrnoError(20)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+="/";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path=="object"){node=path}else{isDirPath=path.endsWith("/");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}if(Module["logReadFiles"]&&!(flags&1)){if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){abort(`Invalid encoding type "${opts.encoding}"`)}var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){buf=UTF8ArrayToString(buf)}FS.close(stream);return buf},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){data=new Uint8Array(intArrayFromString(data,true))}if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{abort("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},"/proc/self/fd")},createStandardStreams(input,output,error){if(input){FS.createDevice("/dev","stdin",input)}else{FS.symlink("/dev/tty","/dev/stdin")}if(output){FS.createDevice("/dev","stdout",null,output)}else{FS.symlink("/dev/tty","/dev/stdout")}if(error){FS.createDevice("/dev","stderr",null,error)}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){FS.initialized=true;input??=Module["stdin"];output??=Module["stdout"];error??=Module["stderr"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)abort("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)abort("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")abort("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(globalThis.XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)abort("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};for(const[key,fn]of Object.entries(node.stream_ops)){stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}}function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,(growMemViews(),HEAP8),ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+"/"+path},writeStat(buf,stat){(growMemViews(),HEAPU32)[buf>>>2>>>0]=stat.dev;(growMemViews(),HEAPU32)[buf+4>>>2>>>0]=stat.mode;(growMemViews(),HEAPU32)[buf+8>>>2>>>0]=stat.nlink;(growMemViews(),HEAPU32)[buf+12>>>2>>>0]=stat.uid;(growMemViews(),HEAPU32)[buf+16>>>2>>>0]=stat.gid;(growMemViews(),HEAPU32)[buf+20>>>2>>>0]=stat.rdev;(growMemViews(),HEAP64)[buf+24>>>3>>>0]=BigInt(stat.size);(growMemViews(),HEAP32)[buf+32>>>2>>>0]=4096;(growMemViews(),HEAP32)[buf+36>>>2>>>0]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();(growMemViews(),HEAP64)[buf+40>>>3>>>0]=BigInt(Math.floor(atime/1e3));(growMemViews(),HEAPU32)[buf+48>>>2>>>0]=atime%1e3*1e3*1e3;(growMemViews(),HEAP64)[buf+56>>>3>>>0]=BigInt(Math.floor(mtime/1e3));(growMemViews(),HEAPU32)[buf+64>>>2>>>0]=mtime%1e3*1e3*1e3;(growMemViews(),HEAP64)[buf+72>>>3>>>0]=BigInt(Math.floor(ctime/1e3));(growMemViews(),HEAPU32)[buf+80>>>2>>>0]=ctime%1e3*1e3*1e3;(growMemViews(),HEAP64)[buf+88>>>3>>>0]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){(growMemViews(),HEAPU32)[buf+4>>>2>>>0]=stats.bsize;(growMemViews(),HEAPU32)[buf+60>>>2>>>0]=stats.bsize;(growMemViews(),HEAP64)[buf+8>>>3>>>0]=BigInt(stats.blocks);(growMemViews(),HEAP64)[buf+16>>>3>>>0]=BigInt(stats.bfree);(growMemViews(),HEAP64)[buf+24>>>3>>>0]=BigInt(stats.bavail);(growMemViews(),HEAP64)[buf+32>>>3>>>0]=BigInt(stats.files);(growMemViews(),HEAP64)[buf+40>>>3>>>0]=BigInt(stats.ffree);(growMemViews(),HEAPU32)[buf+48>>>2>>>0]=stats.fsid;(growMemViews(),HEAPU32)[buf+64>>>2>>>0]=stats.flags;(growMemViews(),HEAPU32)[buf+56>>>2>>>0]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=(growMemViews(),HEAPU8).slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(3,0,1,fd,cmd,varargs);varargs>>>=0;SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;(growMemViews(),HEAP16)[arg+offset>>>1>>>0]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(4,0,1,fd,buf);buf>>>=0;try{return SYSCALLS.writeStat(buf,FS.fstat(fd))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,(growMemViews(),HEAPU8),outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(5,0,1,buf,size);buf>>>=0;size>>>=0;try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(size>>=0;count>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);stream.getdents||=FS.readdir(stream.path);var struct_size=280;var pos=0;var off=FS.llseek(stream,0,1);var startIdx=Math.floor(off/struct_size);var endIdx=Math.min(stream.getdents.length,startIdx+Math.floor(count/struct_size));for(var idx=startIdx;idx>>3>>>0]=BigInt(id);(growMemViews(),HEAP64)[dirp+pos+8>>>3>>>0]=BigInt((idx+1)*struct_size);(growMemViews(),HEAP16)[dirp+pos+16>>>1>>>0]=280;(growMemViews(),HEAP8)[dirp+pos+18>>>0]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(7,0,1,fd,op,varargs);varargs>>>=0;SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();(growMemViews(),HEAP32)[argp>>>2>>>0]=termios.c_iflag||0;(growMemViews(),HEAP32)[argp+4>>>2>>>0]=termios.c_oflag||0;(growMemViews(),HEAP32)[argp+8>>>2>>>0]=termios.c_cflag||0;(growMemViews(),HEAP32)[argp+12>>>2>>>0]=termios.c_lflag||0;for(var i=0;i<32;i++){(growMemViews(),HEAP8)[argp+i+17>>>0]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=syscallGetVarargP();var c_iflag=(growMemViews(),HEAP32)[argp>>>2>>>0];var c_oflag=(growMemViews(),HEAP32)[argp+4>>>2>>>0];var c_cflag=(growMemViews(),HEAP32)[argp+8>>>2>>>0];var c_lflag=(growMemViews(),HEAP32)[argp+12>>>2>>>0];var c_cc=[];for(var i=0;i<32;i++){c_cc.push((growMemViews(),HEAP8)[argp+i+17>>>0])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag,c_oflag,c_cflag,c_lflag,c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=syscallGetVarargP();(growMemViews(),HEAP32)[argp>>>2>>>0]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21537:case 21531:{var argp=syscallGetVarargP();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=syscallGetVarargP();(growMemViews(),HEAP16)[argp>>>1>>>0]=winsize[0];(growMemViews(),HEAP16)[argp+2>>>1>>>0]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_lstat64(path,buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(8,0,1,path,buf);path>>>=0;buf>>>=0;try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.lstat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(9,0,1,dirfd,path,buf,flags);path>>>=0;buf>>>=0;try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.writeStat(buf,nofollow?FS.lstat(path):FS.stat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(10,0,1,dirfd,path,flags,varargs);path>>>=0;varargs>>>=0;SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(11,0,1,path,buf);path>>>=0;buf>>>=0;try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.stat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __abort_js=()=>abort("");function __emscripten_init_main_thread_js(tb){tb>>>=0;__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1,!ENVIRONMENT_IS_WEB,65536,false);PThread.threadInitTLS()}var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var maybeExit=()=>{if(!keepRuntimeAlive()){try{if(ENVIRONMENT_IS_PTHREAD){if(_pthread_self())__emscripten_thread_exit(EXITSTATUS);return}_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};function __emscripten_thread_mailbox_await(pthread_ptr){pthread_ptr>>>=0;if(Atomics.waitAsync){var wait=Atomics.waitAsync((growMemViews(),HEAP32),pthread_ptr>>>2,pthread_ptr);wait.value.then(checkMailbox);var waitingAsync=pthread_ptr+128;Atomics.store((growMemViews(),HEAP32),waitingAsync>>>2,1)}}var checkMailbox=()=>callUserCallback(()=>{var pthread_ptr=_pthread_self();if(pthread_ptr){__emscripten_thread_mailbox_await(pthread_ptr);__emscripten_check_mailbox()}});function __emscripten_notify_mailbox_postmessage(targetThread,currThreadId){targetThread>>>=0;currThreadId>>>=0;if(targetThread==currThreadId){setTimeout(checkMailbox)}else if(ENVIRONMENT_IS_PTHREAD){postMessage({targetThread,cmd:"checkMailbox"})}else{var worker=PThread.pthreads[targetThread];if(!worker){return}worker.postMessage({cmd:"checkMailbox"})}}var proxiedJSCallArgs=[];function __emscripten_receive_on_main_thread_js(funcIndex,emAsmAddr,callingThread,numCallArgs,args){emAsmAddr>>>=0;callingThread>>>=0;args>>>=0;numCallArgs/=2;proxiedJSCallArgs.length=numCallArgs;var b=args>>>3;for(var i=0;i>>0]){proxiedJSCallArgs[i]=(growMemViews(),HEAP64)[b+2*i+1>>>0]}else{proxiedJSCallArgs[i]=(growMemViews(),HEAPF64)[b+2*i+1>>>0]}}var func=proxiedFunctionTable[funcIndex];PThread.currentProxiedOperationCallerThread=callingThread;var rtn=func(...proxiedJSCallArgs);PThread.currentProxiedOperationCallerThread=0;return rtn}var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};function __emscripten_thread_cleanup(thread){thread>>>=0;if(!ENVIRONMENT_IS_PTHREAD)cleanupThread(thread);else postMessage({cmd:"cleanupThread",thread})}function __emscripten_thread_set_strongref(thread){thread>>>=0;if(ENVIRONMENT_IS_NODE){PThread.pthreads[thread].ref()}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time,tmPtr){time=bigintToI53Checked(time);tmPtr>>>=0;var date=new Date(time*1e3);(growMemViews(),HEAP32)[tmPtr>>>2>>>0]=date.getSeconds();(growMemViews(),HEAP32)[tmPtr+4>>>2>>>0]=date.getMinutes();(growMemViews(),HEAP32)[tmPtr+8>>>2>>>0]=date.getHours();(growMemViews(),HEAP32)[tmPtr+12>>>2>>>0]=date.getDate();(growMemViews(),HEAP32)[tmPtr+16>>>2>>>0]=date.getMonth();(growMemViews(),HEAP32)[tmPtr+20>>>2>>>0]=date.getFullYear()-1900;(growMemViews(),HEAP32)[tmPtr+24>>>2>>>0]=date.getDay();var yday=ydayFromDate(date)|0;(growMemViews(),HEAP32)[tmPtr+28>>>2>>>0]=yday;(growMemViews(),HEAP32)[tmPtr+36>>>2>>>0]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;(growMemViews(),HEAP32)[tmPtr+32>>>2>>>0]=dst}function __mmap_js(len,prot,flags,fd,offset,allocated,addr){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(12,0,1,len,prot,flags,fd,offset,allocated,addr);len>>>=0;offset=bigintToI53Checked(offset);allocated>>>=0;addr>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;(growMemViews(),HEAP32)[allocated>>>2>>>0]=res.allocated;(growMemViews(),HEAPU32)[addr>>>2>>>0]=ptr;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(13,0,1,addr,len,prot,flags,fd,offset);addr>>>=0;len>>>=0;offset=bigintToI53Checked(offset);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var timers={};var _emscripten_get_now=()=>performance.timeOrigin+performance.now();function __setitimer_js(which,timeout_ms){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(14,0,1,which,timeout_ms);if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0}var __tzset_js=function(timezone,daylight,std_name,dst_name){timezone>>>=0;daylight>>>=0;std_name>>>=0;dst_name>>>=0;var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);(growMemViews(),HEAPU32)[timezone>>>2>>>0]=stdTimezoneOffset*60;(growMemViews(),HEAP32)[daylight>>>2>>>0]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffsetDate.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);ptime>>>=0;if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);(growMemViews(),HEAP64)[ptime>>>3>>>0]=BigInt(nsec);return 0}var _emscripten_check_blocking_allowed=()=>{};var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};var _emscripten_exit_with_live_runtime=()=>{runtimeKeepalivePush();throw"unwind"};var getHeapMax=()=>4294901760;function _emscripten_get_heap_max(){return getHeapMax()}var _emscripten_has_asyncify=()=>1;var _emscripten_num_logical_cores=()=>ENVIRONMENT_IS_NODE?require("os").cpus().length:navigator["hardwareConcurrency"];var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};function _emscripten_resize_heap(requestedSize){requestedSize>>>=0;var oldSize=(growMemViews(),HEAPU8).length;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false}var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var writeI53ToI64=(ptr,num)=>{(growMemViews(),HEAPU32)[ptr>>>2>>>0]=num;var lower=(growMemViews(),HEAPU32)[ptr>>>2>>>0];(growMemViews(),HEAPU32)[ptr+4>>>2>>>0]=(num-lower)/4294967296};var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var readI53FromI64=ptr=>(growMemViews(),HEAPU32)[ptr>>>2>>>0]+(growMemViews(),HEAP32)[ptr+4>>>2>>>0]*4294967296;var WebGPU={Internals:{jsObjects:[],jsObjectInsert:(ptr,jsObject)=>{ptr>>>=0;WebGPU.Internals.jsObjects[ptr]=jsObject},bufferOnUnmaps:[],futures:[],futureInsert:(futureId,promise)=>{WebGPU.Internals.futures[futureId]=new Promise(resolve=>promise.finally(()=>resolve(futureId)))}},getJsObject:ptr=>{if(!ptr)return undefined;ptr>>>=0;return WebGPU.Internals.jsObjects[ptr]},importJsAdapter:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateAdapter(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroup:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroup(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroupLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroupLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBuffer:(buffer,parentPtr=0)=>{assert(buffer.mapState==="unmapped");var bufferPtr=_emwgpuCreateBuffer(parentPtr);WebGPU.Internals.jsObjectInsert(bufferPtr,buffer);return bufferPtr},importJsCommandBuffer:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandBuffer(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsCommandEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsDevice:(device,parentPtr=0)=>{var queuePtr=_emwgpuCreateQueue(parentPtr);var devicePtr=_emwgpuCreateDevice(parentPtr,queuePtr);WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);return devicePtr},importJsExternalTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateExternalTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsPipelineLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreatePipelineLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQuerySet:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQuerySet(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQueue:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQueue(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundle:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundle(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundleEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundleEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSampler:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSampler(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsShaderModule:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateShaderModule(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSurface:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSurface(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTextureView:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTextureView(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},errorCallback:(callback,type,message,userdata)=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(message);((a1,a2,a3)=>dynCall_viii(callback,a1,a2,a3))(type,messagePtr,userdata);stackRestore(sp)},iterateExtensions:(root,handlers)=>{for(var ptr=(growMemViews(),HEAPU32)[root>>>2>>>0];ptr;ptr=(growMemViews(),HEAPU32)[ptr>>>2>>>0]){var sType=(growMemViews(),HEAP32)[ptr+4>>>2>>>0];var handler=handlers[sType](ptr)}},setStringView:(ptr,data,length)=>{(growMemViews(),HEAPU32)[ptr>>>2>>>0]=data;(growMemViews(),HEAPU32)[ptr+4>>>2>>>0]=length},makeStringFromStringView:stringViewPtr=>{var ptr=(growMemViews(),HEAPU32)[stringViewPtr>>>2>>>0];var length=(growMemViews(),HEAPU32)[stringViewPtr+4>>>2>>>0];return UTF8ToString(ptr,length)},makeStringFromOptionalStringView:stringViewPtr=>{var ptr=(growMemViews(),HEAPU32)[stringViewPtr>>>2>>>0];var length=(growMemViews(),HEAPU32)[stringViewPtr+4>>>2>>>0];if(!ptr){if(length===0){return""}return undefined}return UTF8ToString(ptr,length)},makeColor:ptr=>({r:(growMemViews(),HEAPF64)[ptr>>>3>>>0],g:(growMemViews(),HEAPF64)[ptr+8>>>3>>>0],b:(growMemViews(),HEAPF64)[ptr+16>>>3>>>0],a:(growMemViews(),HEAPF64)[ptr+24>>>3>>>0]}),makeExtent3D:ptr=>({width:(growMemViews(),HEAPU32)[ptr>>>2>>>0],height:(growMemViews(),HEAPU32)[ptr+4>>>2>>>0],depthOrArrayLayers:(growMemViews(),HEAPU32)[ptr+8>>>2>>>0]}),makeOrigin3D:ptr=>({x:(growMemViews(),HEAPU32)[ptr>>>2>>>0],y:(growMemViews(),HEAPU32)[ptr+4>>>2>>>0],z:(growMemViews(),HEAPU32)[ptr+8>>>2>>>0]}),makeTexelCopyTextureInfo:ptr=>({texture:WebGPU.getJsObject((growMemViews(),HEAPU32)[ptr>>>2>>>0]),mipLevel:(growMemViews(),HEAPU32)[ptr+4>>>2>>>0],origin:WebGPU.makeOrigin3D(ptr+8),aspect:WebGPU.TextureAspect[(growMemViews(),HEAP32)[ptr+20>>>2>>>0]]}),makeTexelCopyBufferLayout:ptr=>{var bytesPerRow=(growMemViews(),HEAPU32)[ptr+8>>>2>>>0];var rowsPerImage=(growMemViews(),HEAPU32)[ptr+12>>>2>>>0];return{offset:readI53FromI64(ptr),bytesPerRow:bytesPerRow===4294967295?undefined:bytesPerRow,rowsPerImage:rowsPerImage===4294967295?undefined:rowsPerImage}},makeTexelCopyBufferInfo:ptr=>{var layoutPtr=ptr+0;var bufferCopyView=WebGPU.makeTexelCopyBufferLayout(layoutPtr);bufferCopyView["buffer"]=WebGPU.getJsObject((growMemViews(),HEAPU32)[ptr+16>>>2>>>0]);return bufferCopyView},makePassTimestampWrites:ptr=>{if(ptr===0)return undefined;return{querySet:WebGPU.getJsObject((growMemViews(),HEAPU32)[ptr+4>>>2>>>0]),beginningOfPassWriteIndex:(growMemViews(),HEAPU32)[ptr+8>>>2>>>0],endOfPassWriteIndex:(growMemViews(),HEAPU32)[ptr+12>>>2>>>0]}},makePipelineConstants:(constantCount,constantsPtr)=>{if(!constantCount)return;var constants={};for(var i=0;i>>3>>>0]}return constants},makePipelineLayout:layoutPtr=>{if(!layoutPtr)return"auto";return WebGPU.getJsObject(layoutPtr)},makeComputeState:ptr=>{if(!ptr)return undefined;var desc={module:WebGPU.getJsObject((growMemViews(),HEAPU32)[ptr+4>>>2>>>0]),constants:WebGPU.makePipelineConstants((growMemViews(),HEAPU32)[ptr+16>>>2>>>0],(growMemViews(),HEAPU32)[ptr+20>>>2>>>0]),entryPoint:WebGPU.makeStringFromOptionalStringView(ptr+8)};return desc},makeComputePipelineDesc:descriptor=>{var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),layout:WebGPU.makePipelineLayout((growMemViews(),HEAPU32)[descriptor+12>>>2>>>0]),compute:WebGPU.makeComputeState(descriptor+16)};return desc},makeRenderPipelineDesc:descriptor=>{function makePrimitiveState(psPtr){if(!psPtr)return undefined;return{topology:WebGPU.PrimitiveTopology[(growMemViews(),HEAP32)[psPtr+4>>>2>>>0]],stripIndexFormat:WebGPU.IndexFormat[(growMemViews(),HEAP32)[psPtr+8>>>2>>>0]],frontFace:WebGPU.FrontFace[(growMemViews(),HEAP32)[psPtr+12>>>2>>>0]],cullMode:WebGPU.CullMode[(growMemViews(),HEAP32)[psPtr+16>>>2>>>0]],unclippedDepth:!!(growMemViews(),HEAPU32)[psPtr+20>>>2>>>0]}}function makeBlendComponent(bdPtr){if(!bdPtr)return undefined;return{operation:WebGPU.BlendOperation[(growMemViews(),HEAP32)[bdPtr>>>2>>>0]],srcFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[bdPtr+4>>>2>>>0]],dstFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[bdPtr+8>>>2>>>0]]}}function makeBlendState(bsPtr){if(!bsPtr)return undefined;return{alpha:makeBlendComponent(bsPtr+12),color:makeBlendComponent(bsPtr+0)}}function makeColorState(csPtr){var format=WebGPU.TextureFormat[(growMemViews(),HEAP32)[csPtr+4>>>2>>>0]];return format?{format,blend:makeBlendState((growMemViews(),HEAPU32)[csPtr+8>>>2>>>0]),writeMask:(growMemViews(),HEAPU32)[csPtr+16>>>2>>>0]}:undefined}function makeColorStates(count,csArrayPtr){var states=[];for(var i=0;i>>2>>>0]],failOp:WebGPU.StencilOperation[(growMemViews(),HEAP32)[ssfPtr+4>>>2>>>0]],depthFailOp:WebGPU.StencilOperation[(growMemViews(),HEAP32)[ssfPtr+8>>>2>>>0]],passOp:WebGPU.StencilOperation[(growMemViews(),HEAP32)[ssfPtr+12>>>2>>>0]]}}function makeDepthStencilState(dssPtr){if(!dssPtr)return undefined;return{format:WebGPU.TextureFormat[(growMemViews(),HEAP32)[dssPtr+4>>>2>>>0]],depthWriteEnabled:!!(growMemViews(),HEAPU32)[dssPtr+8>>>2>>>0],depthCompare:WebGPU.CompareFunction[(growMemViews(),HEAP32)[dssPtr+12>>>2>>>0]],stencilFront:makeStencilStateFace(dssPtr+16),stencilBack:makeStencilStateFace(dssPtr+32),stencilReadMask:(growMemViews(),HEAPU32)[dssPtr+48>>>2>>>0],stencilWriteMask:(growMemViews(),HEAPU32)[dssPtr+52>>>2>>>0],depthBias:(growMemViews(),HEAP32)[dssPtr+56>>>2>>>0],depthBiasSlopeScale:(growMemViews(),HEAPF32)[dssPtr+60>>>2>>>0],depthBiasClamp:(growMemViews(),HEAPF32)[dssPtr+64>>>2>>>0]}}function makeVertexAttribute(vaPtr){return{format:WebGPU.VertexFormat[(growMemViews(),HEAP32)[vaPtr+4>>>2>>>0]],offset:readI53FromI64(vaPtr+8),shaderLocation:(growMemViews(),HEAPU32)[vaPtr+16>>>2>>>0]}}function makeVertexAttributes(count,vaArrayPtr){var vas=[];for(var i=0;i>>2>>>0]];var attributeCount=(growMemViews(),HEAPU32)[vbPtr+16>>>2>>>0];if(!stepMode&&!attributeCount){return null}return{arrayStride:readI53FromI64(vbPtr+8),stepMode,attributes:makeVertexAttributes(attributeCount,(growMemViews(),HEAPU32)[vbPtr+20>>>2>>>0])}}function makeVertexBuffers(count,vbArrayPtr){if(!count)return undefined;var vbs=[];for(var i=0;i>>2>>>0]),constants:WebGPU.makePipelineConstants((growMemViews(),HEAPU32)[viPtr+16>>>2>>>0],(growMemViews(),HEAPU32)[viPtr+20>>>2>>>0]),buffers:makeVertexBuffers((growMemViews(),HEAPU32)[viPtr+24>>>2>>>0],(growMemViews(),HEAPU32)[viPtr+28>>>2>>>0]),entryPoint:WebGPU.makeStringFromOptionalStringView(viPtr+8)};return desc}function makeMultisampleState(msPtr){if(!msPtr)return undefined;return{count:(growMemViews(),HEAPU32)[msPtr+4>>>2>>>0],mask:(growMemViews(),HEAPU32)[msPtr+8>>>2>>>0],alphaToCoverageEnabled:!!(growMemViews(),HEAPU32)[msPtr+12>>>2>>>0]}}function makeFragmentState(fsPtr){if(!fsPtr)return undefined;var desc={module:WebGPU.getJsObject((growMemViews(),HEAPU32)[fsPtr+4>>>2>>>0]),constants:WebGPU.makePipelineConstants((growMemViews(),HEAPU32)[fsPtr+16>>>2>>>0],(growMemViews(),HEAPU32)[fsPtr+20>>>2>>>0]),targets:makeColorStates((growMemViews(),HEAPU32)[fsPtr+24>>>2>>>0],(growMemViews(),HEAPU32)[fsPtr+28>>>2>>>0]),entryPoint:WebGPU.makeStringFromOptionalStringView(fsPtr+8)};return desc}var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),layout:WebGPU.makePipelineLayout((growMemViews(),HEAPU32)[descriptor+12>>>2>>>0]),vertex:makeVertexState(descriptor+16),primitive:makePrimitiveState(descriptor+48),depthStencil:makeDepthStencilState((growMemViews(),HEAPU32)[descriptor+72>>>2>>>0]),multisample:makeMultisampleState(descriptor+76),fragment:makeFragmentState((growMemViews(),HEAPU32)[descriptor+92>>>2>>>0])};return desc},fillLimitStruct:(limits,limitsOutPtr)=>{var nextInChainPtr=(growMemViews(),HEAPU32)[limitsOutPtr>>>2>>>0];function setLimitValueU32(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;(growMemViews(),HEAPU32)[basePtr+limitOffset>>>2>>>0]=limitValue}function setLimitValueU64(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;writeI53ToI64(basePtr+limitOffset,limitValue)}setLimitValueU32("maxTextureDimension1D",limitsOutPtr,4);setLimitValueU32("maxTextureDimension2D",limitsOutPtr,8);setLimitValueU32("maxTextureDimension3D",limitsOutPtr,12);setLimitValueU32("maxTextureArrayLayers",limitsOutPtr,16);setLimitValueU32("maxBindGroups",limitsOutPtr,20);setLimitValueU32("maxBindGroupsPlusVertexBuffers",limitsOutPtr,24);setLimitValueU32("maxBindingsPerBindGroup",limitsOutPtr,28);setLimitValueU32("maxDynamicUniformBuffersPerPipelineLayout",limitsOutPtr,32);setLimitValueU32("maxDynamicStorageBuffersPerPipelineLayout",limitsOutPtr,36);setLimitValueU32("maxSampledTexturesPerShaderStage",limitsOutPtr,40);setLimitValueU32("maxSamplersPerShaderStage",limitsOutPtr,44);setLimitValueU32("maxStorageBuffersPerShaderStage",limitsOutPtr,48);setLimitValueU32("maxStorageTexturesPerShaderStage",limitsOutPtr,52);setLimitValueU32("maxUniformBuffersPerShaderStage",limitsOutPtr,56);setLimitValueU32("minUniformBufferOffsetAlignment",limitsOutPtr,80);setLimitValueU32("minStorageBufferOffsetAlignment",limitsOutPtr,84);setLimitValueU64("maxUniformBufferBindingSize",limitsOutPtr,64);setLimitValueU64("maxStorageBufferBindingSize",limitsOutPtr,72);setLimitValueU32("maxVertexBuffers",limitsOutPtr,88);setLimitValueU64("maxBufferSize",limitsOutPtr,96);setLimitValueU32("maxVertexAttributes",limitsOutPtr,104);setLimitValueU32("maxVertexBufferArrayStride",limitsOutPtr,108);setLimitValueU32("maxInterStageShaderVariables",limitsOutPtr,112);setLimitValueU32("maxColorAttachments",limitsOutPtr,116);setLimitValueU32("maxColorAttachmentBytesPerSample",limitsOutPtr,120);setLimitValueU32("maxComputeWorkgroupStorageSize",limitsOutPtr,124);setLimitValueU32("maxComputeInvocationsPerWorkgroup",limitsOutPtr,128);setLimitValueU32("maxComputeWorkgroupSizeX",limitsOutPtr,132);setLimitValueU32("maxComputeWorkgroupSizeY",limitsOutPtr,136);setLimitValueU32("maxComputeWorkgroupSizeZ",limitsOutPtr,140);setLimitValueU32("maxComputeWorkgroupsPerDimension",limitsOutPtr,144);setLimitValueU32("maxImmediateSize",limitsOutPtr,148);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[nextInChainPtr+4>>>2>>>0];var compatibilityModeLimitsPtr=nextInChainPtr;setLimitValueU32("maxStorageBuffersInVertexStage",compatibilityModeLimitsPtr,8,limits.maxStorageBuffersPerShaderStage);setLimitValueU32("maxStorageBuffersInFragmentStage",compatibilityModeLimitsPtr,16,limits.maxStorageBuffersPerShaderStage);setLimitValueU32("maxStorageTexturesInVertexStage",compatibilityModeLimitsPtr,12,limits.maxStorageTexturesPerShaderStage);setLimitValueU32("maxStorageTexturesInFragmentStage",compatibilityModeLimitsPtr,20,limits.maxStorageTexturesPerShaderStage)}},fillAdapterInfoStruct:(info,infoStruct)=>{(growMemViews(),HEAPU32)[infoStruct+52>>>2>>>0]=info.subgroupMinSize;(growMemViews(),HEAPU32)[infoStruct+56>>>2>>>0]=info.subgroupMaxSize;var strs=info.vendor+info.architecture+info.device+info.description;var strPtr=stringToNewUTF8(strs);var vendorLen=lengthBytesUTF8(info.vendor);WebGPU.setStringView(infoStruct+4,strPtr,vendorLen);strPtr+=vendorLen;var architectureLen=lengthBytesUTF8(info.architecture);WebGPU.setStringView(infoStruct+12,strPtr,architectureLen);strPtr+=architectureLen;var deviceLen=lengthBytesUTF8(info.device);WebGPU.setStringView(infoStruct+20,strPtr,deviceLen);strPtr+=deviceLen;var descriptionLen=lengthBytesUTF8(info.description);WebGPU.setStringView(infoStruct+28,strPtr,descriptionLen);strPtr+=descriptionLen;(growMemViews(),HEAP32)[infoStruct+36>>>2>>>0]=2;var adapterType=info.isFallbackAdapter?3:4;(growMemViews(),HEAP32)[infoStruct+40>>>2>>>0]=adapterType;(growMemViews(),HEAPU32)[infoStruct+44>>>2>>>0]=0;(growMemViews(),HEAPU32)[infoStruct+48>>>2>>>0]=0},AddressMode:[,"clamp-to-edge","repeat","mirror-repeat"],BlendFactor:[,"zero","one","src","one-minus-src","src-alpha","one-minus-src-alpha","dst","one-minus-dst","dst-alpha","one-minus-dst-alpha","src-alpha-saturated","constant","one-minus-constant","src1","one-minus-src1","src1-alpha","one-minus-src1-alpha"],BlendOperation:[,"add","subtract","reverse-subtract","min","max"],BufferBindingType:[,,"uniform","storage","read-only-storage"],BufferMapState:[,"unmapped","pending","mapped"],CompareFunction:[,"never","less","equal","less-equal","greater","not-equal","greater-equal","always"],CompilationInfoRequestStatus:[,"success","callback-cancelled"],ComponentSwizzle:[,"0","1","r","g","b","a"],CompositeAlphaMode:[,"opaque","premultiplied","unpremultiplied","inherit"],CullMode:[,"none","front","back"],ErrorFilter:[,"validation","out-of-memory","internal"],FeatureLevel:[,"compatibility","core"],FeatureName:{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",22:"texture-component-swizzle",327692:"chromium-experimental-unorm16-texture-formats",327729:"chromium-experimental-multi-draw-indirect"},FilterMode:[,"nearest","linear"],FrontFace:[,"ccw","cw"],IndexFormat:[,"uint16","uint32"],InstanceFeatureName:[,"timed-wait-any","shader-source-spirv","multiple-devices-per-adapter"],LoadOp:[,"load","clear"],MipmapFilterMode:[,"nearest","linear"],OptionalBool:["false","true"],PowerPreference:[,"low-power","high-performance"],PredefinedColorSpace:[,"srgb","display-p3"],PrimitiveTopology:[,"point-list","line-list","line-strip","triangle-list","triangle-strip"],QueryType:[,"occlusion","timestamp"],SamplerBindingType:[,,"filtering","non-filtering","comparison"],Status:[,"success","error"],StencilOperation:[,"keep","zero","replace","invert","increment-clamp","decrement-clamp","increment-wrap","decrement-wrap"],StorageTextureAccess:[,,"write-only","read-only","read-write"],StoreOp:[,"store","discard"],SurfaceGetCurrentTextureStatus:[,"success-optimal","success-suboptimal","timeout","outdated","lost","error"],TextureAspect:[,"all","stencil-only","depth-only"],TextureDimension:[,"1d","2d","3d"],TextureFormat:[,"r8unorm","r8snorm","r8uint","r8sint","r16unorm","r16snorm","r16uint","r16sint","r16float","rg8unorm","rg8snorm","rg8uint","rg8sint","r32float","r32uint","r32sint","rg16unorm","rg16snorm","rg16uint","rg16sint","rg16float","rgba8unorm","rgba8unorm-srgb","rgba8snorm","rgba8uint","rgba8sint","bgra8unorm","bgra8unorm-srgb","rgb10a2uint","rgb10a2unorm","rg11b10ufloat","rgb9e5ufloat","rg32float","rg32uint","rg32sint","rgba16unorm","rgba16snorm","rgba16uint","rgba16sint","rgba16float","rgba32float","rgba32uint","rgba32sint","stencil8","depth16unorm","depth24plus","depth24plus-stencil8","depth32float","depth32float-stencil8","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb","bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm","bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb","etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm","astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"],TextureSampleType:[,,"float","unfilterable-float","depth","sint","uint"],TextureViewDimension:[,"1d","2d","2d-array","cube","cube-array","3d"],ToneMappingMode:[,"standard","extended"],VertexFormat:[,"uint8","uint8x2","uint8x4","sint8","sint8x2","sint8x4","unorm8","unorm8x2","unorm8x4","snorm8","snorm8x2","snorm8x4","uint16","uint16x2","uint16x4","sint16","sint16x2","sint16x4","unorm16","unorm16x2","unorm16x4","snorm16","snorm16x2","snorm16x4","float16","float16x2","float16x4","float32","float32x2","float32x3","float32x4","uint32","uint32x2","uint32x3","uint32x4","sint32","sint32x2","sint32x3","sint32x4","unorm10-10-10-2","unorm8x4-bgra"],VertexStepMode:[,"vertex","instance"],WGSLLanguageFeatureName:[,"readonly_and_readwrite_storage_textures","packed_4x8_integer_dot_product","unrestricted_pointer_parameters","pointer_composite_access","uniform_buffer_standard_layout","subgroup_id","texture_and_sampler_let","subgroup_uniformity","texture_formats_tier1"]};var emwgpuStringToInt_DeviceLostReason={undefined:1,unknown:1,destroyed:2};var runtimeKeepalivePop=()=>{runtimeKeepaliveCounter-=1};function _emwgpuAdapterRequestDevice(adapterPtr,futureId,deviceLostFutureId,devicePtr,queuePtr,descriptor){adapterPtr>>>=0;futureId=bigintToI53Checked(futureId);deviceLostFutureId=bigintToI53Checked(deviceLostFutureId);devicePtr>>>=0;queuePtr>>>=0;descriptor>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);var desc={};if(descriptor){var requiredFeatureCount=(growMemViews(),HEAPU32)[descriptor+12>>>2>>>0];if(requiredFeatureCount){var requiredFeaturesPtr=(growMemViews(),HEAPU32)[descriptor+16>>>2>>>0];desc["requiredFeatures"]=Array.from((growMemViews(),HEAPU32).subarray(requiredFeaturesPtr>>>2>>>0,requiredFeaturesPtr+requiredFeatureCount*4>>>2>>>0),feature=>WebGPU.FeatureName[feature])}var limitsPtr=(growMemViews(),HEAPU32)[descriptor+20>>>2>>>0];if(limitsPtr){var nextInChainPtr=(growMemViews(),HEAPU32)[limitsPtr>>>2>>>0];var requiredLimits={};function setLimitU32IfDefined(name,basePtr,limitOffset,ignoreIfZero=false){var ptr=basePtr+limitOffset;var value=(growMemViews(),HEAPU32)[ptr>>>2>>>0];if(value!=4294967295&&(!ignoreIfZero||value!=0)){requiredLimits[name]=value}}function setLimitU64IfDefined(name,basePtr,limitOffset){var ptr=basePtr+limitOffset;var limitPart1=(growMemViews(),HEAPU32)[ptr>>>2>>>0];var limitPart2=(growMemViews(),HEAPU32)[ptr+4>>>2>>>0];if(limitPart1!=4294967295||limitPart2!=4294967295){requiredLimits[name]=readI53FromI64(ptr)}}setLimitU32IfDefined("maxTextureDimension1D",limitsPtr,4);setLimitU32IfDefined("maxTextureDimension2D",limitsPtr,8);setLimitU32IfDefined("maxTextureDimension3D",limitsPtr,12);setLimitU32IfDefined("maxTextureArrayLayers",limitsPtr,16);setLimitU32IfDefined("maxBindGroups",limitsPtr,20);setLimitU32IfDefined("maxBindGroupsPlusVertexBuffers",limitsPtr,24);setLimitU32IfDefined("maxBindingsPerBindGroup",limitsPtr,28);setLimitU32IfDefined("maxDynamicUniformBuffersPerPipelineLayout",limitsPtr,32);setLimitU32IfDefined("maxDynamicStorageBuffersPerPipelineLayout",limitsPtr,36);setLimitU32IfDefined("maxSampledTexturesPerShaderStage",limitsPtr,40);setLimitU32IfDefined("maxSamplersPerShaderStage",limitsPtr,44);setLimitU32IfDefined("maxStorageBuffersPerShaderStage",limitsPtr,48);setLimitU32IfDefined("maxStorageTexturesPerShaderStage",limitsPtr,52);setLimitU32IfDefined("maxUniformBuffersPerShaderStage",limitsPtr,56);setLimitU32IfDefined("minUniformBufferOffsetAlignment",limitsPtr,80);setLimitU32IfDefined("minStorageBufferOffsetAlignment",limitsPtr,84);setLimitU64IfDefined("maxUniformBufferBindingSize",limitsPtr,64);setLimitU64IfDefined("maxStorageBufferBindingSize",limitsPtr,72);setLimitU32IfDefined("maxVertexBuffers",limitsPtr,88);setLimitU64IfDefined("maxBufferSize",limitsPtr,96);setLimitU32IfDefined("maxVertexAttributes",limitsPtr,104);setLimitU32IfDefined("maxVertexBufferArrayStride",limitsPtr,108);setLimitU32IfDefined("maxInterStageShaderVariables",limitsPtr,112);setLimitU32IfDefined("maxColorAttachments",limitsPtr,116);setLimitU32IfDefined("maxColorAttachmentBytesPerSample",limitsPtr,120);setLimitU32IfDefined("maxComputeWorkgroupStorageSize",limitsPtr,124);setLimitU32IfDefined("maxComputeInvocationsPerWorkgroup",limitsPtr,128);setLimitU32IfDefined("maxComputeWorkgroupSizeX",limitsPtr,132);setLimitU32IfDefined("maxComputeWorkgroupSizeY",limitsPtr,136);setLimitU32IfDefined("maxComputeWorkgroupSizeZ",limitsPtr,140);setLimitU32IfDefined("maxComputeWorkgroupsPerDimension",limitsPtr,144);setLimitU32IfDefined("maxImmediateSize",limitsPtr,148,true);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[nextInChainPtr+4>>>2>>>0];var compatibilityModeLimitsPtr=nextInChainPtr;if("maxStorageBuffersInVertexStage"in GPUSupportedLimits.prototype){setLimitU32IfDefined("maxStorageBuffersInVertexStage",compatibilityModeLimitsPtr,8);setLimitU32IfDefined("maxStorageTexturesInVertexStage",compatibilityModeLimitsPtr,12);setLimitU32IfDefined("maxStorageBuffersInFragmentStage",compatibilityModeLimitsPtr,16);setLimitU32IfDefined("maxStorageTexturesInFragmentStage",compatibilityModeLimitsPtr,20)}}desc["requiredLimits"]=requiredLimits}var defaultQueuePtr=(growMemViews(),HEAPU32)[descriptor+24>>>2>>>0];if(defaultQueuePtr){var defaultQueueDesc={label:WebGPU.makeStringFromOptionalStringView(defaultQueuePtr+4)};desc["defaultQueue"]=defaultQueueDesc}desc["label"]=WebGPU.makeStringFromOptionalStringView(descriptor+4)}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,adapter.requestDevice(desc).then(device=>{runtimeKeepalivePop();callUserCallback(()=>{WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);WebGPU.Internals.futureInsert(deviceLostFutureId,device.lost.then(info=>{callUserCallback(()=>{device.onuncapturederror=ev=>{};var sp=stackSave();var messagePtr=stringToUTF8OnStack(info.message);_emwgpuOnDeviceLostCompleted(deviceLostFutureId,emwgpuStringToInt_DeviceLostReason[info.reason],messagePtr);stackRestore(sp)})}));device.onuncapturederror=ev=>{var type=5;if(ev.error instanceof GPUValidationError)type=2;else if(ev.error instanceof GPUOutOfMemoryError)type=3;else if(ev.error instanceof GPUInternalError)type=4;var sp=stackSave();var messagePtr=stringToUTF8OnStack(ev.error.message);_emwgpuOnUncapturedError(devicePtr,type,messagePtr);stackRestore(sp)};_emwgpuOnRequestDeviceCompleted(futureId,1,devicePtr,0)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestDeviceCompleted(futureId,3,devicePtr,messagePtr);if(deviceLostFutureId){_emwgpuOnDeviceLostCompleted(deviceLostFutureId,4,messagePtr)}stackRestore(sp)})}))}function _emwgpuBufferDestroy(bufferPtr){bufferPtr>>>=0;var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(onUnmap){for(var i=0;i{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};function _emwgpuBufferGetConstMappedRange(bufferPtr,offset,size){bufferPtr>>>=0;offset>>>=0;size>>>=0;var buffer=WebGPU.getJsObject(bufferPtr);if(size==4294967295)size=undefined;var mapped;try{mapped=buffer.getMappedRange(offset,size)}catch(ex){return 0}var data=_memalign(16,mapped.byteLength);(growMemViews(),HEAPU8).set(new Uint8Array(mapped),data>>>0);WebGPU.Internals.bufferOnUnmaps[bufferPtr].push(()=>_free(data));return data}var _emwgpuBufferMapAsync=function(bufferPtr,futureId,mode,offset,size){bufferPtr>>>=0;futureId=bigintToI53Checked(futureId);mode=bigintToI53Checked(mode);offset>>>=0;size>>>=0;var buffer=WebGPU.getJsObject(bufferPtr);WebGPU.Internals.bufferOnUnmaps[bufferPtr]=[];if(size==4294967295)size=undefined;runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,buffer.mapAsync(mode,offset,size).then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnMapAsyncCompleted(futureId,1,0)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);var status=ex.name==="AbortError"?4:ex.name==="OperationError"?3:0;_emwgpuOnMapAsyncCompleted(futureId,status,messagePtr);delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]})}))};function _emwgpuBufferUnmap(bufferPtr){bufferPtr>>>=0;var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(!onUnmap){return}for(var i=0;i>>=0;delete WebGPU.Internals.jsObjects[ptr]}function _emwgpuDeviceCreateBuffer(devicePtr,descriptor,bufferPtr){devicePtr>>>=0;descriptor>>>=0;bufferPtr>>>=0;var mappedAtCreation=!!(growMemViews(),HEAPU32)[descriptor+32>>>2>>>0];var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),usage:(growMemViews(),HEAPU32)[descriptor+16>>>2>>>0],size:readI53FromI64(descriptor+24),mappedAtCreation};var device=WebGPU.getJsObject(devicePtr);var buffer;try{buffer=device.createBuffer(desc)}catch(ex){return false}WebGPU.Internals.jsObjectInsert(bufferPtr,buffer);if(mappedAtCreation){WebGPU.Internals.bufferOnUnmaps[bufferPtr]=[]}return true}function _emwgpuDeviceCreateShaderModule(devicePtr,descriptor,shaderModulePtr){devicePtr>>>=0;descriptor>>>=0;shaderModulePtr>>>=0;var nextInChainPtr=(growMemViews(),HEAPU32)[descriptor>>>2>>>0];var sType=(growMemViews(),HEAP32)[nextInChainPtr+4>>>2>>>0];var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),code:""};switch(sType){case 2:{desc["code"]=WebGPU.makeStringFromStringView(nextInChainPtr+8);break}}var device=WebGPU.getJsObject(devicePtr);WebGPU.Internals.jsObjectInsert(shaderModulePtr,device.createShaderModule(desc))}var _emwgpuDeviceDestroy=devicePtr=>{const device=WebGPU.getJsObject(devicePtr);device.onuncapturederror=null;device.destroy()};function _emwgpuInstanceRequestAdapter(instancePtr,futureId,options,adapterPtr){instancePtr>>>=0;futureId=bigintToI53Checked(futureId);options>>>=0;adapterPtr>>>=0;var opts;if(options){opts={featureLevel:WebGPU.FeatureLevel[(growMemViews(),HEAP32)[options+4>>>2>>>0]],powerPreference:WebGPU.PowerPreference[(growMemViews(),HEAP32)[options+8>>>2>>>0]],forceFallbackAdapter:!!(growMemViews(),HEAPU32)[options+12>>>2>>>0]};var nextInChainPtr=(growMemViews(),HEAPU32)[options>>>2>>>0];if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[nextInChainPtr+4>>>2>>>0];var webxrOptions=nextInChainPtr;opts.xrCompatible=!!(growMemViews(),HEAPU32)[webxrOptions+8>>>2>>>0]}}if(!("gpu"in navigator)){var sp=stackSave();var messagePtr=stringToUTF8OnStack("WebGPU not available on this browser (navigator.gpu is not available)");_emwgpuOnRequestAdapterCompleted(futureId,3,adapterPtr,messagePtr);stackRestore(sp);return}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,navigator.gpu.requestAdapter(opts).then(adapter=>{runtimeKeepalivePop();callUserCallback(()=>{if(adapter){WebGPU.Internals.jsObjectInsert(adapterPtr,adapter);_emwgpuOnRequestAdapterCompleted(futureId,1,adapterPtr,0)}else{var sp=stackSave();var messagePtr=stringToUTF8OnStack("WebGPU not available on this browser (requestAdapter returned null)");_emwgpuOnRequestAdapterCompleted(futureId,3,adapterPtr,messagePtr);stackRestore(sp)}})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestAdapterCompleted(futureId,4,adapterPtr,messagePtr);stackRestore(sp)})}))}var _emwgpuQueueOnSubmittedWorkDone=function(queuePtr,futureId){queuePtr>>>=0;futureId=bigintToI53Checked(futureId);var queue=WebGPU.getJsObject(queuePtr);runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,queue.onSubmittedWorkDone().then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnWorkDoneCompleted(futureId,1)})}))};var _emwgpuWaitAny=function(futurePtr,futureCount,timeoutMSPtr){futurePtr>>>=0;futureCount>>>=0;timeoutMSPtr>>>=0;return Asyncify.handleAsync(async()=>{var promises=[];if(timeoutMSPtr){var timeoutMS=(growMemViews(),HEAP32)[timeoutMSPtr>>>2>>>0];promises.length=futureCount+1;promises[futureCount]=new Promise(resolve=>setTimeout(resolve,timeoutMS,0))}else{promises.length=futureCount}for(var i=0;ithisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.language||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(15,0,1,__environ,environ_buf);__environ>>>=0;environ_buf>>>=0;var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;(growMemViews(),HEAPU32)[__environ+envp>>>2>>>0]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(16,0,1,penviron_count,penviron_buf_size);penviron_count>>>=0;penviron_buf_size>>>=0;var strings=getEnvStrings();(growMemViews(),HEAPU32)[penviron_count>>>2>>>0]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}(growMemViews(),HEAPU32)[penviron_buf_size>>>2>>>0]=bufSize;return 0}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(17,0,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>>2>>>0];var len=(growMemViews(),HEAPU32)[iov+4>>>2>>>0];iov+=8;var curr=FS.read(stream,(growMemViews(),HEAP8),ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>>=0;iovcnt>>>=0;pnum>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);(growMemViews(),HEAPU32)[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(19,0,1,fd,offset,whence,newOffset);offset=bigintToI53Checked(offset);newOffset>>>=0;try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);(growMemViews(),HEAP64)[newOffset>>>3>>>0]=BigInt(stream.position);if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>>2>>>0];var len=(growMemViews(),HEAPU32)[iov+4>>>2>>>0];iov+=8;var curr=FS.write(stream,(growMemViews(),HEAP8),ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>>=0;iovcnt>>>=0;pnum>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);(growMemViews(),HEAPU32)[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _llvm_eh_typeid_for(type){type>>>=0;return type}function _random_get(buffer,size){buffer>>>=0;size>>>=0;try{randomFill((growMemViews(),HEAPU8).subarray(buffer>>>0,buffer+size>>>0));return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var emwgpuStringToInt_FeatureName={"core-features-and-limits":1,"depth-clip-control":2,"depth32float-stencil8":3,"texture-compression-bc":4,"texture-compression-bc-sliced-3d":5,"texture-compression-etc2":6,"texture-compression-astc":7,"texture-compression-astc-sliced-3d":8,"timestamp-query":9,"indirect-first-instance":10,"shader-f16":11,"rg11b10ufloat-renderable":12,"bgra8unorm-storage":13,"float32-filterable":14,"float32-blendable":15,"clip-distances":16,"dual-source-blending":17,subgroups:18,"texture-formats-tier1":19,"texture-formats-tier2":20,"primitive-index":21,"texture-component-swizzle":22,"chromium-experimental-unorm16-texture-formats":327692,"chromium-experimental-multi-draw-indirect":327729};function _wgpuAdapterGetFeatures(adapterPtr,supportedFeatures){adapterPtr>>>=0;supportedFeatures>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);var featuresPtr=_malloc(adapter.features.size*4);var offset=0;var numFeatures=0;for(const feature of adapter.features){var featureEnumValue=emwgpuStringToInt_FeatureName[feature];if(featureEnumValue>=0){(growMemViews(),HEAP32)[featuresPtr+offset>>>2>>>0]=featureEnumValue;offset+=4;numFeatures++}}(growMemViews(),HEAPU32)[supportedFeatures+4>>>2>>>0]=featuresPtr;(growMemViews(),HEAPU32)[supportedFeatures>>>2>>>0]=numFeatures}function _wgpuAdapterGetInfo(adapterPtr,info){adapterPtr>>>=0;info>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillAdapterInfoStruct(adapter.info,info);return 1}function _wgpuAdapterGetLimits(adapterPtr,limitsOutPtr){adapterPtr>>>=0;limitsOutPtr>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillLimitStruct(adapter.limits,limitsOutPtr);return 1}function _wgpuAdapterHasFeature(adapterPtr,featureEnumValue){adapterPtr>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);return adapter.features.has(WebGPU.FeatureName[featureEnumValue])}var _wgpuBufferGetSize=function(bufferPtr){bufferPtr>>>=0;var ret=(()=>{var buffer=WebGPU.getJsObject(bufferPtr);return buffer.size})();return BigInt(ret)};function _wgpuCommandEncoderBeginComputePass(encoderPtr,descriptor){encoderPtr>>>=0;descriptor>>>=0;var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),timestampWrites:WebGPU.makePassTimestampWrites((growMemViews(),HEAPU32)[descriptor+12>>>2>>>0])}}var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateComputePassEncoder(0);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.beginComputePass(desc));return ptr}function _wgpuCommandEncoderCopyBufferToBuffer(encoderPtr,srcPtr,srcOffset,dstPtr,dstOffset,size){encoderPtr>>>=0;srcPtr>>>=0;srcOffset=bigintToI53Checked(srcOffset);dstPtr>>>=0;dstOffset=bigintToI53Checked(dstOffset);size=bigintToI53Checked(size);var commandEncoder=WebGPU.getJsObject(encoderPtr);var src=WebGPU.getJsObject(srcPtr);var dst=WebGPU.getJsObject(dstPtr);commandEncoder.copyBufferToBuffer(src,srcOffset,dst,dstOffset,size)}function _wgpuCommandEncoderFinish(encoderPtr,descriptor){encoderPtr>>>=0;descriptor>>>=0;var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateCommandBuffer(0);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.finish());return ptr}function _wgpuComputePassEncoderDispatchWorkgroups(passPtr,x,y,z){passPtr>>>=0;var pass=WebGPU.getJsObject(passPtr);pass.dispatchWorkgroups(x,y,z)}function _wgpuComputePassEncoderEnd(passPtr){passPtr>>>=0;var pass=WebGPU.getJsObject(passPtr);pass.end()}function _wgpuComputePassEncoderSetBindGroup(passPtr,groupIndex,groupPtr,dynamicOffsetCount,dynamicOffsetsPtr){passPtr>>>=0;groupPtr>>>=0;dynamicOffsetCount>>>=0;dynamicOffsetsPtr>>>=0;var pass=WebGPU.getJsObject(passPtr);var group=WebGPU.getJsObject(groupPtr);if(dynamicOffsetCount==0){pass.setBindGroup(groupIndex,group)}else{pass.setBindGroup(groupIndex,group,(growMemViews(),HEAPU32),dynamicOffsetsPtr>>>2,dynamicOffsetCount)}}function _wgpuComputePassEncoderSetPipeline(passPtr,pipelinePtr){passPtr>>>=0;pipelinePtr>>>=0;var pass=WebGPU.getJsObject(passPtr);var pipeline=WebGPU.getJsObject(pipelinePtr);pass.setPipeline(pipeline)}function _wgpuComputePipelineGetBindGroupLayout(pipelinePtr,groupIndex){pipelinePtr>>>=0;var pipeline=WebGPU.getJsObject(pipelinePtr);var ptr=_emwgpuCreateBindGroupLayout(0);WebGPU.Internals.jsObjectInsert(ptr,pipeline.getBindGroupLayout(groupIndex));return ptr}var _wgpuDeviceCreateBindGroup=function(devicePtr,descriptor){devicePtr>>>=0;descriptor>>>=0;function makeEntry(entryPtr){var bufferPtr=(growMemViews(),HEAPU32)[entryPtr+8>>>2>>>0];var samplerPtr=(growMemViews(),HEAPU32)[entryPtr+32>>>2>>>0];var textureViewPtr=(growMemViews(),HEAPU32)[entryPtr+36>>>2>>>0];var externalTexturePtr=0;WebGPU.iterateExtensions(entryPtr,{327681:ptr=>{externalTexturePtr=(growMemViews(),HEAPU32)[ptr+8>>>2>>>0]}});var resource;if(bufferPtr){var size=readI53FromI64(entryPtr+24);if(size==-1)size=undefined;resource={buffer:WebGPU.getJsObject(bufferPtr),offset:readI53FromI64(entryPtr+16),size}}else{resource=WebGPU.getJsObject(samplerPtr||textureViewPtr||externalTexturePtr)}return{binding:(growMemViews(),HEAPU32)[entryPtr+4>>>2>>>0],resource}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i>>2>>>0]),entries:makeEntries((growMemViews(),HEAPU32)[descriptor+16>>>2>>>0],(growMemViews(),HEAPU32)[descriptor+20>>>2>>>0])};var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateBindGroup(0);WebGPU.Internals.jsObjectInsert(ptr,device.createBindGroup(desc));return ptr};function _wgpuDeviceCreateCommandEncoder(devicePtr,descriptor){devicePtr>>>=0;descriptor>>>=0;var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4)}}var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateCommandEncoder(0);WebGPU.Internals.jsObjectInsert(ptr,device.createCommandEncoder(desc));return ptr}function _wgpuDeviceCreateComputePipeline(devicePtr,descriptor){devicePtr>>>=0;descriptor>>>=0;var desc=WebGPU.makeComputePipelineDesc(descriptor);var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateComputePipeline(0);WebGPU.Internals.jsObjectInsert(ptr,device.createComputePipeline(desc));return ptr}var _wgpuQueueSubmit=function(queuePtr,commandCount,commands){queuePtr>>>=0;commandCount>>>=0;commands>>>=0;var queue=WebGPU.getJsObject(queuePtr);var cmds=Array.from((growMemViews(),HEAP32).subarray(commands>>>2>>>0,commands+commandCount*4>>>2>>>0),id=>WebGPU.getJsObject(id));queue.submit(cmds)};function _wgpuQueueWriteBuffer(queuePtr,bufferPtr,bufferOffset,data,size){queuePtr>>>=0;bufferPtr>>>=0;bufferOffset=bigintToI53Checked(bufferOffset);data>>>=0;size>>>=0;var queue=WebGPU.getJsObject(queuePtr);var buffer=WebGPU.getJsObject(bufferPtr);var subarray=(growMemViews(),HEAPU8).subarray(data>>>0,data+size>>>0);queue.writeBuffer(buffer,bufferOffset,subarray,0,size)}var runAndAbortIfError=func=>{try{return func()}catch(e){abort(e)}};var Asyncify={instrumentWasmImports(imports){var importPattern=/^(invoke_.*|__asyncjs__.*)$/;for(let[x,original]of Object.entries(imports)){if(typeof original=="function"){let isAsyncifyImport=original.isAsync||importPattern.test(x)}}},instrumentFunction(original){var wrapper=(...args)=>{Asyncify.exportCallStack.push(original);try{return original(...args)}finally{if(!ABORT){var top=Asyncify.exportCallStack.pop();Asyncify.maybeStopUnwind()}}};Asyncify.funcWrappers.set(original,wrapper);return wrapper},instrumentWasmExports(exports){var ret={};for(let[x,original]of Object.entries(exports)){if(typeof original=="function"){var wrapper=Asyncify.instrumentFunction(original);ret[x]=wrapper}else{ret[x]=original}}return ret},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callstackFuncToId:new Map,callStackIdToFunc:new Map,funcWrappers:new Map,callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId(func){if(!Asyncify.callstackFuncToId.has(func)){var id=Asyncify.callStackId++;Asyncify.callstackFuncToId.set(func,id);Asyncify.callStackIdToFunc.set(id,func)}return Asyncify.callstackFuncToId.get(func)},maybeStopUnwind(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runtimeKeepalivePush();runAndAbortIfError(_asyncify_stop_unwind);if(typeof Fibers!="undefined"){Fibers.trampoline()}}},whenDone(){return new Promise((resolve,reject)=>{Asyncify.asyncPromiseHandlers={resolve,reject}})},allocateData(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader(ptr,stack,stackSize){(growMemViews(),HEAPU32)[ptr>>>2>>>0]=stack;(growMemViews(),HEAPU32)[ptr+4>>>2>>>0]=stack+stackSize},setDataRewindFunc(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);(growMemViews(),HEAP32)[ptr+8>>>2>>>0]=rewindId},getDataRewindFunc(ptr){var id=(growMemViews(),HEAP32)[ptr+8>>>2>>>0];var func=Asyncify.callStackIdToFunc.get(id);return func},doRewind(ptr){var original=Asyncify.getDataRewindFunc(ptr);var func=Asyncify.funcWrappers.get(original);runtimeKeepalivePop();return func()},handleSleep(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync((handleSleepReturnValue=0)=>{if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(()=>_asyncify_start_rewind(Asyncify.currData));if(typeof MainLoop!="undefined"&&MainLoop.func){MainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();if(typeof MainLoop!="undefined"&&MainLoop.func){MainLoop.pause()}runAndAbortIfError(()=>_asyncify_start_unwind(Asyncify.currData))}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_rewind);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(callUserCallback)}else{abort(`invalid state: ${Asyncify.state}`)}return Asyncify.handleSleepReturnValue},handleAsync:startAsync=>Asyncify.handleSleep(wakeUp=>{startAsync().then(wakeUp)})};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{(growMemViews(),HEAP8).set(array,buffer>>>0)};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="pointer")return ret>>>0;if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var FS_createPath=(...args)=>FS.createPath(...args);var FS_unlink=(...args)=>FS.unlink(...args);var FS_createLazyFile=(...args)=>FS.createLazyFile(...args);var FS_createDevice=(...args)=>FS.createDevice(...args);PThread.init();FS.createPreloadedFile=FS_createPreloadedFile;FS.preloadFile=FS_preloadFile;FS.staticInit();{initMemory();if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(Module["preloadPlugins"])preloadPlugins=Module["preloadPlugins"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()()}}}Module["ENV"]=ENV;Module["mmapAlloc"]=mmapAlloc;Module["wasmMemory"]=wasmMemory;Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["FS_preloadFile"]=FS_preloadFile;Module["FS_unlink"]=FS_unlink;Module["FS_createPath"]=FS_createPath;Module["FS_createDevice"]=FS_createDevice;Module["FS"]=FS;Module["FS_createDataFile"]=FS_createDataFile;Module["FS_createLazyFile"]=FS_createLazyFile;Module["MEMFS"]=MEMFS;var proxiedFunctionTable=[_proc_exit,exitOnMainThread,pthreadCreateProxied,___syscall_fcntl64,___syscall_fstat64,___syscall_getcwd,___syscall_getdents64,___syscall_ioctl,___syscall_lstat64,___syscall_newfstatat,___syscall_openat,___syscall_stat64,__mmap_js,__munmap_js,__setitimer_js,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function __asyncjs__js_file_read(path_ptr,offset,req_size,out_ptr){return Asyncify.handleAsync(async()=>await _wllama_js_file_read(UTF8ToString(Number(path_ptr)),Number(offset),Number(req_size),Number(out_ptr)))}var _malloc,_free,_wllama_malloc,_wllama_start,_wllama_action,_wllama_exit,_wllama_debug,_main,_emwgpuCreateBindGroup,_emwgpuCreateBindGroupLayout,_emwgpuCreateCommandBuffer,_emwgpuCreateCommandEncoder,_emwgpuCreateComputePassEncoder,_emwgpuCreateComputePipeline,_emwgpuCreateExternalTexture,_emwgpuCreatePipelineLayout,_emwgpuCreateQuerySet,_emwgpuCreateRenderBundle,_emwgpuCreateRenderBundleEncoder,_emwgpuCreateRenderPassEncoder,_emwgpuCreateRenderPipeline,_emwgpuCreateSampler,_emwgpuCreateSurface,_emwgpuCreateTexture,_emwgpuCreateTextureView,_emwgpuCreateAdapter,_emwgpuCreateBuffer,_emwgpuCreateDevice,_emwgpuCreateQueue,_emwgpuCreateShaderModule,_emwgpuOnDeviceLostCompleted,_emwgpuOnMapAsyncCompleted,_emwgpuOnRequestAdapterCompleted,_emwgpuOnRequestDeviceCompleted,_emwgpuOnWorkDoneCompleted,_emwgpuOnUncapturedError,__emscripten_tls_init,_pthread_self,_emscripten_builtin_memalign,__emscripten_thread_init,__emscripten_thread_crashed,__emscripten_run_js_on_main_thread,__emscripten_thread_free_data,__emscripten_thread_exit,__emscripten_timeout,__emscripten_check_mailbox,_memalign,_setThrew,__emscripten_tempret_set,_emscripten_stack_set_limits,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,___cxa_decrement_exception_refcount,___cxa_increment_exception_refcount,___cxa_can_catch,___cxa_get_exception_ptr,dynCall_iii,dynCall_viii,dynCall_ii,dynCall_vi,dynCall_vii,dynCall_v,dynCall_viiii,dynCall_viiiii,dynCall_iiii,dynCall_viiiiiiiiiiiiii,dynCall_viiiiiii,dynCall_viiiiiiii,dynCall_iiiiii,dynCall_viiiiiiiii,dynCall_j,dynCall_viiiiii,dynCall_iiiiiii,dynCall_iiji,dynCall_iiiii,dynCall_iiiiiiii,dynCall_vij,dynCall_iij,dynCall_iifff,dynCall_iiiffiiii,dynCall_iiiiiiiiii,dynCall_iiiiiiiiiiiiiiiiiii,dynCall_iiiiiiiiiiiiiii,dynCall_di,dynCall_ji,dynCall_dii,dynCall_jii,dynCall_viiijj,dynCall_iid,dynCall_vid,dynCall_viiiijj,dynCall_viid,dynCall_vjjiii,dynCall_iiiiiijii,dynCall_iiiji,dynCall_fiii,dynCall_viiij,dynCall_iiif,dynCall_ifi,dynCall_iiiiiiiiiiiiii,dynCall_iiiiff,dynCall_viijj,dynCall_iiiiiiiiiii,dynCall_viif,dynCall_iiijj,dynCall_iiijjjj,dynCall_iiiiiiiiiffffffi,dynCall_iiiiiiiii,dynCall_i,dynCall_iiij,dynCall_viiiijjji,dynCall_iiiiiiiiiifi,dynCall_iiiiiiiiiiiijjiifiiiiiii,dynCall_iiiiiiiiiiiiiiii,dynCall_iiijjj,dynCall_iiiiiiiiifi,dynCall_iiiff,dynCall_iiiiiiji,dynCall_iiiiijiiijjjjjjj,dynCall_iiiiijji,dynCall_iiiiiiiiiiii,dynCall_viiiiiiiiii,dynCall_viij,dynCall_iiijiiii,dynCall_iiiiiifi,dynCall_iiiiiiiifii,dynCall_vj,dynCall_viijii,dynCall_viijijj,dynCall_viiiij,dynCall_iiid,dynCall_jiji,dynCall_iidiiii,dynCall_iiiij,dynCall_iiiiij,dynCall_iiiiid,dynCall_jiiii,dynCall_diii,dynCall_viiiiiiiiiiiiiii,dynCall_viji,dynCall_iiiiijj,dynCall_iiiiiijj,_asyncify_start_unwind,_asyncify_stop_unwind,_asyncify_start_rewind,_asyncify_stop_rewind,__indirect_function_table,wasmTable;function assignWasmExports(wasmExports){_malloc=wasmExports["dc"];_free=wasmExports["ec"];_wllama_malloc=Module["_wllama_malloc"]=wasmExports["fc"];_wllama_start=Module["_wllama_start"]=wasmExports["gc"];_wllama_action=Module["_wllama_action"]=wasmExports["hc"];_wllama_exit=Module["_wllama_exit"]=wasmExports["ic"];_wllama_debug=Module["_wllama_debug"]=wasmExports["jc"];_main=Module["_main"]=wasmExports["kc"];_emwgpuCreateBindGroup=wasmExports["lc"];_emwgpuCreateBindGroupLayout=wasmExports["mc"];_emwgpuCreateCommandBuffer=wasmExports["nc"];_emwgpuCreateCommandEncoder=wasmExports["oc"];_emwgpuCreateComputePassEncoder=wasmExports["pc"];_emwgpuCreateComputePipeline=wasmExports["qc"];_emwgpuCreateExternalTexture=wasmExports["rc"];_emwgpuCreatePipelineLayout=wasmExports["sc"];_emwgpuCreateQuerySet=wasmExports["tc"];_emwgpuCreateRenderBundle=wasmExports["uc"];_emwgpuCreateRenderBundleEncoder=wasmExports["vc"];_emwgpuCreateRenderPassEncoder=wasmExports["wc"];_emwgpuCreateRenderPipeline=wasmExports["xc"];_emwgpuCreateSampler=wasmExports["yc"];_emwgpuCreateSurface=wasmExports["zc"];_emwgpuCreateTexture=wasmExports["Ac"];_emwgpuCreateTextureView=wasmExports["Bc"];_emwgpuCreateAdapter=wasmExports["Cc"];_emwgpuCreateBuffer=wasmExports["Dc"];_emwgpuCreateDevice=wasmExports["Ec"];_emwgpuCreateQueue=wasmExports["Fc"];_emwgpuCreateShaderModule=wasmExports["Gc"];_emwgpuOnDeviceLostCompleted=wasmExports["Hc"];_emwgpuOnMapAsyncCompleted=wasmExports["Ic"];_emwgpuOnRequestAdapterCompleted=wasmExports["Jc"];_emwgpuOnRequestDeviceCompleted=wasmExports["Kc"];_emwgpuOnWorkDoneCompleted=wasmExports["Lc"];_emwgpuOnUncapturedError=wasmExports["Mc"];__emscripten_tls_init=wasmExports["Nc"];_pthread_self=wasmExports["Oc"];_emscripten_builtin_memalign=wasmExports["Pc"];__emscripten_thread_init=wasmExports["Rc"];__emscripten_thread_crashed=wasmExports["Sc"];__emscripten_run_js_on_main_thread=wasmExports["Tc"];__emscripten_thread_free_data=wasmExports["Uc"];__emscripten_thread_exit=wasmExports["Vc"];__emscripten_timeout=wasmExports["Wc"];__emscripten_check_mailbox=wasmExports["Xc"];_memalign=wasmExports["Yc"];_setThrew=wasmExports["Zc"];__emscripten_tempret_set=wasmExports["_c"];_emscripten_stack_set_limits=wasmExports["$c"];__emscripten_stack_restore=wasmExports["ad"];__emscripten_stack_alloc=wasmExports["bd"];_emscripten_stack_get_current=wasmExports["cd"];___cxa_decrement_exception_refcount=wasmExports["dd"];___cxa_increment_exception_refcount=wasmExports["ed"];___cxa_can_catch=wasmExports["fd"];___cxa_get_exception_ptr=wasmExports["gd"];dynCall_iii=dynCalls["iii"]=wasmExports["hd"];dynCall_viii=dynCalls["viii"]=wasmExports["id"];dynCall_ii=dynCalls["ii"]=wasmExports["jd"];dynCall_vi=dynCalls["vi"]=wasmExports["kd"];dynCall_vii=dynCalls["vii"]=wasmExports["ld"];dynCall_v=dynCalls["v"]=wasmExports["md"];dynCall_viiii=dynCalls["viiii"]=wasmExports["nd"];dynCall_viiiii=dynCalls["viiiii"]=wasmExports["od"];dynCall_iiii=dynCalls["iiii"]=wasmExports["pd"];dynCall_viiiiiiiiiiiiii=dynCalls["viiiiiiiiiiiiii"]=wasmExports["qd"];dynCall_viiiiiii=dynCalls["viiiiiii"]=wasmExports["rd"];dynCall_viiiiiiii=dynCalls["viiiiiiii"]=wasmExports["sd"];dynCall_iiiiii=dynCalls["iiiiii"]=wasmExports["td"];dynCall_viiiiiiiii=dynCalls["viiiiiiiii"]=wasmExports["ud"];dynCall_j=dynCalls["j"]=wasmExports["vd"];dynCall_viiiiii=dynCalls["viiiiii"]=wasmExports["wd"];dynCall_iiiiiii=dynCalls["iiiiiii"]=wasmExports["xd"];dynCall_iiji=dynCalls["iiji"]=wasmExports["yd"];dynCall_iiiii=dynCalls["iiiii"]=wasmExports["zd"];dynCall_iiiiiiii=dynCalls["iiiiiiii"]=wasmExports["Ad"];dynCall_vij=dynCalls["vij"]=wasmExports["Bd"];dynCall_iij=dynCalls["iij"]=wasmExports["Cd"];dynCall_iifff=dynCalls["iifff"]=wasmExports["Dd"];dynCall_iiiffiiii=dynCalls["iiiffiiii"]=wasmExports["Ed"];dynCall_iiiiiiiiii=dynCalls["iiiiiiiiii"]=wasmExports["Fd"];dynCall_iiiiiiiiiiiiiiiiiii=dynCalls["iiiiiiiiiiiiiiiiiii"]=wasmExports["Gd"];dynCall_iiiiiiiiiiiiiii=dynCalls["iiiiiiiiiiiiiii"]=wasmExports["Hd"];dynCall_di=dynCalls["di"]=wasmExports["Id"];dynCall_ji=dynCalls["ji"]=wasmExports["Jd"];dynCall_dii=dynCalls["dii"]=wasmExports["Kd"];dynCall_jii=dynCalls["jii"]=wasmExports["Ld"];dynCall_viiijj=dynCalls["viiijj"]=wasmExports["Md"];dynCall_iid=dynCalls["iid"]=wasmExports["Nd"];dynCall_vid=dynCalls["vid"]=wasmExports["Od"];dynCall_viiiijj=dynCalls["viiiijj"]=wasmExports["Pd"];dynCall_viid=dynCalls["viid"]=wasmExports["Qd"];dynCall_vjjiii=dynCalls["vjjiii"]=wasmExports["Rd"];dynCall_iiiiiijii=dynCalls["iiiiiijii"]=wasmExports["Sd"];dynCall_iiiji=dynCalls["iiiji"]=wasmExports["Td"];dynCall_fiii=dynCalls["fiii"]=wasmExports["Ud"];dynCall_viiij=dynCalls["viiij"]=wasmExports["Vd"];dynCall_iiif=dynCalls["iiif"]=wasmExports["Wd"];dynCall_ifi=dynCalls["ifi"]=wasmExports["Xd"];dynCall_iiiiiiiiiiiiii=dynCalls["iiiiiiiiiiiiii"]=wasmExports["Yd"];dynCall_iiiiff=dynCalls["iiiiff"]=wasmExports["Zd"];dynCall_viijj=dynCalls["viijj"]=wasmExports["_d"];dynCall_iiiiiiiiiii=dynCalls["iiiiiiiiiii"]=wasmExports["$d"];dynCall_viif=dynCalls["viif"]=wasmExports["ae"];dynCall_iiijj=dynCalls["iiijj"]=wasmExports["be"];dynCall_iiijjjj=dynCalls["iiijjjj"]=wasmExports["ce"];dynCall_iiiiiiiiiffffffi=dynCalls["iiiiiiiiiffffffi"]=wasmExports["de"];dynCall_iiiiiiiii=dynCalls["iiiiiiiii"]=wasmExports["ee"];dynCall_i=dynCalls["i"]=wasmExports["fe"];dynCall_iiij=dynCalls["iiij"]=wasmExports["ge"];dynCall_viiiijjji=dynCalls["viiiijjji"]=wasmExports["he"];dynCall_iiiiiiiiiifi=dynCalls["iiiiiiiiiifi"]=wasmExports["ie"];dynCall_iiiiiiiiiiiijjiifiiiiiii=dynCalls["iiiiiiiiiiiijjiifiiiiiii"]=wasmExports["je"];dynCall_iiiiiiiiiiiiiiii=dynCalls["iiiiiiiiiiiiiiii"]=wasmExports["ke"];dynCall_iiijjj=dynCalls["iiijjj"]=wasmExports["le"];dynCall_iiiiiiiiifi=dynCalls["iiiiiiiiifi"]=wasmExports["me"];dynCall_iiiff=dynCalls["iiiff"]=wasmExports["ne"];dynCall_iiiiiiji=dynCalls["iiiiiiji"]=wasmExports["oe"];dynCall_iiiiijiiijjjjjjj=dynCalls["iiiiijiiijjjjjjj"]=wasmExports["pe"];dynCall_iiiiijji=dynCalls["iiiiijji"]=wasmExports["qe"];dynCall_iiiiiiiiiiii=dynCalls["iiiiiiiiiiii"]=wasmExports["re"];dynCall_viiiiiiiiii=dynCalls["viiiiiiiiii"]=wasmExports["se"];dynCall_viij=dynCalls["viij"]=wasmExports["te"];dynCall_iiijiiii=dynCalls["iiijiiii"]=wasmExports["ue"];dynCall_iiiiiifi=dynCalls["iiiiiifi"]=wasmExports["ve"];dynCall_iiiiiiiifii=dynCalls["iiiiiiiifii"]=wasmExports["we"];dynCall_vj=dynCalls["vj"]=wasmExports["xe"];dynCall_viijii=dynCalls["viijii"]=wasmExports["ye"];dynCall_viijijj=dynCalls["viijijj"]=wasmExports["ze"];dynCall_viiiij=dynCalls["viiiij"]=wasmExports["Ae"];dynCall_iiid=dynCalls["iiid"]=wasmExports["Be"];dynCall_jiji=dynCalls["jiji"]=wasmExports["Ce"];dynCall_iidiiii=dynCalls["iidiiii"]=wasmExports["De"];dynCall_iiiij=dynCalls["iiiij"]=wasmExports["Ee"];dynCall_iiiiij=dynCalls["iiiiij"]=wasmExports["Fe"];dynCall_iiiiid=dynCalls["iiiiid"]=wasmExports["Ge"];dynCall_jiiii=dynCalls["jiiii"]=wasmExports["He"];dynCall_diii=dynCalls["diii"]=wasmExports["Ie"];dynCall_viiiiiiiiiiiiiii=dynCalls["viiiiiiiiiiiiiii"]=wasmExports["Je"];dynCall_viji=dynCalls["viji"]=wasmExports["Ke"];dynCall_iiiiijj=dynCalls["iiiiijj"]=wasmExports["Le"];dynCall_iiiiiijj=dynCalls["iiiiiijj"]=wasmExports["Me"];_asyncify_start_unwind=wasmExports["Ne"];_asyncify_stop_unwind=wasmExports["Oe"];_asyncify_start_rewind=wasmExports["Pe"];_asyncify_stop_rewind=wasmExports["Qe"];__indirect_function_table=wasmTable=wasmExports["Qc"]}var wasmImports;function assignWasmImports(){wasmImports={ya:__asyncjs__js_file_read,s:___cxa_begin_catch,Va:___cxa_current_primary_exception,B:___cxa_end_catch,b:___cxa_find_matching_catch_2,n:___cxa_find_matching_catch_3,P:___cxa_find_matching_catch_4,ac:___cxa_find_matching_catch_7,ja:___cxa_rethrow,Ta:___cxa_rethrow_primary_exception,v:___cxa_throw,Wa:___cxa_uncaught_exceptions,db:___pthread_create_js,i:___resumeException,wa:___syscall_fcntl64,Sa:___syscall_getcwd,Xa:___syscall_getdents64,qb:___syscall_ioctl,xa:___syscall_openat,ab:___syscall_stat64,vb:__abort_js,lb:__emscripten_init_main_thread_js,Za:__emscripten_notify_mailbox_postmessage,eb:__emscripten_receive_on_main_thread_js,Pa:__emscripten_runtime_keepalive_clear,ta:__emscripten_thread_cleanup,kb:__emscripten_thread_mailbox_await,sb:__emscripten_thread_set_strongref,hb:__localtime_js,fb:__mmap_js,gb:__munmap_js,Qa:__setitimer_js,ib:__tzset_js,ub:_clock_time_get,ua:_emscripten_check_blocking_allowed,tb:_emscripten_date_now,rb:_emscripten_exit_with_live_runtime,_a:_emscripten_get_heap_max,ba:_emscripten_get_now,wb:_emscripten_has_asyncify,$a:_emscripten_num_logical_cores,Ya:_emscripten_resize_heap,Ab:_emwgpuAdapterRequestDevice,W:_emwgpuBufferDestroy,Eb:_emwgpuBufferGetConstMappedRange,Db:_emwgpuBufferMapAsync,Cb:_emwgpuBufferUnmap,p:_emwgpuDelete,_:_emwgpuDeviceCreateBuffer,za:_emwgpuDeviceCreateShaderModule,Bb:_emwgpuDeviceDestroy,zb:_emwgpuInstanceRequestAdapter,yb:_emwgpuQueueOnSubmittedWorkDone,xb:_emwgpuWaitAny,nb:_environ_get,ob:_environ_sizes_get,bb:_exit,ca:_fd_close,va:_fd_read,jb:_fd_seek,pb:_fd_write,M:invoke_di,ga:invoke_dii,Aa:invoke_diii,L:invoke_fiii,K:invoke_i,Fa:invoke_ifi,d:invoke_ii,S:invoke_iid,$b:invoke_iifff,f:invoke_iii,Ca:invoke_iiid,A:invoke_iiif,Wb:invoke_iiiff,Ia:invoke_iiiffiiii,g:invoke_iiii,oa:invoke_iiiiff,o:invoke_iiiii,Ob:invoke_iiiiid,l:invoke_iiiiii,ka:invoke_iiiiiifi,m:invoke_iiiiiii,H:invoke_iiiiiiii,Ub:invoke_iiiiiiiifii,aa:invoke_iiiiiiiii,r:invoke_iiiiiiiiiffffffi,na:invoke_iiiiiiiiifi,F:invoke_iiiiiiiiii,u:invoke_iiiiiiiiiifi,I:invoke_iiiiiiiiiii,X:invoke_iiiiiiiiiiii,Zb:invoke_iiiiiiiiiiiiii,$:invoke_iiiiiiiiiiiiiii,t:invoke_iiiiiiiiiiiiiiii,Ha:invoke_iiiiiiiiiiiiiiiiiii,D:invoke_iiiiiiiiiiiijjiifiiiiiii,Ea:invoke_iiiiiiji,Ja:invoke_iiiiiijii,Ba:invoke_iiiiij,ma:invoke_iiiiijiiijjjjjjj,la:invoke_iiiiijji,Qb:invoke_iiiij,Y:invoke_iiij,_b:invoke_iiiji,U:invoke_iiijiiii,E:invoke_iiijj,w:invoke_iiijjj,G:invoke_iiijjjj,N:invoke_iij,ra:invoke_iiji,Rb:invoke_j,C:invoke_ji,T:invoke_jii,ea:invoke_jiiii,h:invoke_v,q:invoke_vi,ha:invoke_vid,c:invoke_vii,Lb:invoke_viid,Mb:invoke_viif,e:invoke_viii,j:invoke_viiii,k:invoke_viiiii,z:invoke_viiiiii,O:invoke_viiiiiii,qa:invoke_viiiiiiii,ia:invoke_viiiiiiiii,V:invoke_viiiiiiiiii,sa:invoke_viiiiiiiiiiiiii,da:invoke_viiiiiiiiiiiiiii,R:invoke_viiiij,Ka:invoke_viiiijj,y:invoke_viiiijjji,Q:invoke_viiij,La:invoke_viiijj,Pb:invoke_viij,Da:invoke_viijii,Sb:invoke_viijijj,Ga:invoke_viijj,J:invoke_vij,fa:invoke_vj,Z:invoke_vjjiii,x:_llvm_eh_typeid_for,a:wasmMemory,Oa:_proc_exit,Ra:_random_get,Ua:_wgpuAdapterGetFeatures,cb:_wgpuAdapterGetInfo,mb:_wgpuAdapterGetLimits,Na:_wgpuAdapterHasFeature,bc:_wgpuBufferGetSize,Tb:_wgpuCommandEncoderBeginComputePass,Fb:_wgpuCommandEncoderCopyBufferToBuffer,Hb:_wgpuCommandEncoderFinish,Jb:_wgpuComputePassEncoderDispatchWorkgroups,Ib:_wgpuComputePassEncoderEnd,Kb:_wgpuComputePassEncoderSetBindGroup,Nb:_wgpuComputePassEncoderSetPipeline,Yb:_wgpuComputePipelineGetBindGroupLayout,Xb:_wgpuDeviceCreateBindGroup,Vb:_wgpuDeviceCreateCommandEncoder,Ma:_wgpuDeviceCreateComputePipeline,Gb:_wgpuQueueSubmit,pa:_wgpuQueueWriteBuffer}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14){var sp=stackSave();try{dynCall_viiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiji(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiji(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vij(index,a1,a2){var sp=stackSave();try{dynCall_vij(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iij(index,a1,a2){var sp=stackSave();try{return dynCall_iij(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_di(index,a1){var sp=stackSave();try{return dynCall_di(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return dynCall_ji(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);return 0n}}function invoke_iid(index,a1,a2){var sp=stackSave();try{return dynCall_iid(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vid(index,a1,a2){var sp=stackSave();try{dynCall_vid(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijj(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiijj(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiijj(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiijj(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vjjiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_vjjiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iifff(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iifff(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiffiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiffiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jii(index,a1,a2){var sp=stackSave();try{return dynCall_jii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);return 0n}}function invoke_fiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_fiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiij(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiij(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiji(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiji(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13){var sp=stackSave();try{return dynCall_iiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18){var sp=stackSave();try{return dynCall_iiiiiiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14){var sp=stackSave();try{return dynCall_iiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiif(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiif(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijj(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viijj(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijj(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiijj(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijjjj(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiijjjj(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiffffffi(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{return dynCall_iiiiiiiiiffffffi(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return dynCall_i(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiij(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ifi(index,a1,a2){var sp=stackSave();try{return dynCall_ifi(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiff(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiff(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiijjji(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiijjji(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiifi(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiiiiiiiifi(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiijjiifiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23){var sp=stackSave();try{return dynCall_iiiiiiiiiiiijjiifiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{return dynCall_iiiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijjj(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiijjj(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiifi(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiiiiiifi(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiff(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiff(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiji(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiiji(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiijiiijjjjjjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{return dynCall_iiiiijiiijjjjjjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiijji(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiijji(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_dii(index,a1,a2){var sp=stackSave();try{return dynCall_dii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiijiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiifi(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiifi(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiifii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiiiiifii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vj(index,a1){var sp=stackSave();try{dynCall_vj(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijijj(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viijijj(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viijii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiij(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiij(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiid(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_j(index){var sp=stackSave();try{return dynCall_j(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);return 0n}}function invoke_iiiij(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiij(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiij(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiij(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viij(index,a1,a2,a3){var sp=stackSave();try{dynCall_viij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiid(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiid(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);return 0n}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{dynCall_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viif(index,a1,a2,a3){var sp=stackSave();try{dynCall_viif(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viid(index,a1,a2,a3){var sp=stackSave();try{dynCall_viid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_pp=f=>a0=>f(a0)>>>0;var makeWrapper_p=f=>()=>f()>>>0;var makeWrapper_ppp=f=>(a0,a1)=>f(a0,a1)>>>0;wasmExports["dc"]=makeWrapper_pp(wasmExports["dc"]);wasmExports["Oc"]=makeWrapper_p(wasmExports["Oc"]);wasmExports["Pc"]=makeWrapper_ppp(wasmExports["Pc"]);wasmExports["Yc"]=makeWrapper_ppp(wasmExports["Yc"]);wasmExports["bd"]=makeWrapper_pp(wasmExports["bd"]);wasmExports["cd"]=makeWrapper_p(wasmExports["cd"]);wasmExports["gd"]=makeWrapper_pp(wasmExports["gd"]);return wasmExports}function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){dependenciesFulfilled=run;return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();Module["onRuntimeInitialized"]?.();var noInitialRun=Module["noInitialRun"]||false;if(!noInitialRun)callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}var wasmExports;if(!ENVIRONMENT_IS_PTHREAD){createWasm();run()} diff --git a/examples/basic/index.html b/examples/basic/index.html index 2691d784..e5ae79c8 100644 --- a/examples/basic/index.html +++ b/examples/basic/index.html @@ -93,7 +93,9 @@

    Embeddings

    wllama.setCompat({ wasm: '../../compat/wasm/wllama.wasm', worker: '../../compat/wasm/wllama.js', - }, 'exclude_firefox'); + }); + } else { + wllama.setCompat('default'); } if (files) { diff --git a/examples/main/src/config.ts b/examples/main/src/config.ts index 02fbfd98..e2de94e2 100644 --- a/examples/main/src/config.ts +++ b/examples/main/src/config.ts @@ -1,8 +1,7 @@ // See: https://vitejs.dev/guide/assets#explicit-url-imports import wllamaWasm from '@wllama/wllama/src/wasm/wllama.wasm?url'; -import compatWasm from '@wllama/wllama-compat/wasm/wllama.wasm?url'; -import compatWorker from '@wllama/wllama-compat/wasm/wllama.js?raw'; import wllamaPackageJson from '@wllama/wllama/package.json'; +import compatConfig from 'virtual:wllama-compat'; import { InferenceParams } from './utils/types'; export const WLLAMA_VERSION = wllamaPackageJson.version; @@ -11,12 +10,8 @@ export const WLLAMA_CONFIG_PATHS = { default: wllamaWasm, }; -export const WLLAMA_COMPAT_CONFIG = { - wasm: compatWasm, - worker: { - code: compatWorker, - }, -}; +// Either a local { wasm, worker } object (when compat package is built) or 'default' (CDN fallback) +export const WLLAMA_COMPAT_CONFIG = compatConfig; export const MAX_GGUF_SIZE = 2 * 1024 * 1024 * 1024; // 2GB diff --git a/examples/main/src/vite-env.d.ts b/examples/main/src/vite-env.d.ts index 11f02fe2..00eff671 100644 --- a/examples/main/src/vite-env.d.ts +++ b/examples/main/src/vite-env.d.ts @@ -1 +1,7 @@ /// + +declare module 'virtual:wllama-compat' { + import type { WllamaCompat } from '@wllama/wllama'; + const config: WllamaCompat | 'default'; + export default config; +} diff --git a/examples/main/vite.config.ts b/examples/main/vite.config.ts index 11b59bfa..d8cf8526 100644 --- a/examples/main/vite.config.ts +++ b/examples/main/vite.config.ts @@ -1,11 +1,44 @@ import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; +import { existsSync } from 'fs'; +import { resolve } from 'path'; + +const COMPAT_WASM = resolve( + __dirname, + 'node_modules/@wllama/wllama-compat/wasm/wllama.wasm' +); +const COMPAT_JS = resolve( + __dirname, + 'node_modules/@wllama/wllama-compat/wasm/wllama.js' +); +const compatAvailable = existsSync(COMPAT_WASM) && existsSync(COMPAT_JS); // https://vitejs.dev/config/ export default defineConfig({ base: './', plugins: [ react(), + { + name: 'wllama-compat', + resolveId(id) { + if (id === 'virtual:wllama-compat') return '\0virtual:wllama-compat'; + }, + load(id) { + if (id !== '\0virtual:wllama-compat') return; + if (compatAvailable) { + return ` +import wasm from '${COMPAT_WASM}?url'; +import worker from '${COMPAT_JS}?raw'; +export default { wasm, worker: { code: worker } }; +`; + } else { + console.warn( + '[wllama-compat] compat WASM not found — falling back to CDN. Run "npm install" inside the compat package to build locally.' + ); + return `export default 'default';`; + } + }, + }, { name: 'isolation', configureServer(server) { diff --git a/src/mjs.test.ts b/src/mjs.test.ts index b28a0a01..355b168f 100644 --- a/src/mjs.test.ts +++ b/src/mjs.test.ts @@ -30,12 +30,15 @@ const testFunc = async (wllama: WllamaMJS) => { await wllama.exit(); }; +// TODO: enable compat mode in tests once test infrastructure supports Safari/asyncify test.sequential('(mjs) generates completion', async () => { const wllama = new WllamaMJS(CONFIG_PATHS); + wllama.setCompat(null); await testFunc(wllama); }); test.sequential('(mjs/minified) generates completion', async () => { const wllama = new WllamaMJSMinified(CONFIG_PATHS); + wllama.setCompat(null); await testFunc(wllama as unknown as WllamaMJS); }); diff --git a/src/wasm/wllama.js b/src/wasm/wllama.js index fabd93d5..6ef623ae 100644 --- a/src/wasm/wllama.js +++ b/src/wasm/wllama.js @@ -1 +1 @@ -var Module=typeof Module!="undefined"?Module:{};var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";var ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&self.name?.startsWith("em-pthread");if(ENVIRONMENT_IS_NODE){var worker_threads=require("worker_threads");global.Worker=worker_threads.Worker;ENVIRONMENT_IS_WORKER=!worker_threads.isMainThread;ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&worker_threads["workerData"]=="em-pthread"}var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=globalThis.document?.currentScript?.src;if(typeof __filename!="undefined"){_scriptName=__filename}else if(ENVIRONMENT_IS_WORKER){_scriptName=self.location.href}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");scriptDirectory=__dirname+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module}quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}if(!ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var defaultPrint=console.log.bind(console);var defaultPrintErr=console.error.bind(console);if(ENVIRONMENT_IS_NODE){var utils=require("util");var stringify=a=>typeof a=="object"?utils.inspect(a):a;defaultPrint=(...args)=>fs.writeSync(1,args.map(stringify).join(" ")+"\n");defaultPrintErr=(...args)=>fs.writeSync(2,args.map(stringify).join(" ")+"\n")}var out=defaultPrint;var err=defaultPrintErr;var wasmBinary;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var isFileURI=filename=>filename.startsWith("file://");function growMemViews(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}}if(ENVIRONMENT_IS_NODE&&ENVIRONMENT_IS_PTHREAD){var parentPort=worker_threads["parentPort"];parentPort.on("message",msg=>global.onmessage?.({data:msg}));Object.assign(globalThis,{self:global,postMessage:msg=>parentPort["postMessage"](msg)});process.on("uncaughtException",err=>{postMessage({cmd:"uncaughtException",error:err});process.exit(1)})}var startWorker;if(ENVIRONMENT_IS_PTHREAD){var initializedJS=false;self.onunhandledrejection=e=>{throw e.reason||e};async function handleMessage(e){try{var msgData=e["data"];var cmd=msgData.cmd;if(cmd==="load"){let messageQueue=[];self.onmessage=e=>messageQueue.push(e);startWorker=()=>{postMessage({cmd:"loaded"});for(let msg of messageQueue){handleMessage(msg)}self.onmessage=handleMessage};for(const handler of msgData.handlers){if(!Module[handler]||Module[handler].proxy){Module[handler]=(...args)=>{postMessage({cmd:"callHandler",handler,args})};if(handler=="print")out=Module[handler];if(handler=="printErr")err=Module[handler]}}wasmMemory=msgData.wasmMemory;updateMemoryViews();wasmModule=msgData.wasmModule;createWasm();run()}else if(cmd==="run"){establishStackSpace(msgData.pthread_ptr);__emscripten_thread_init(msgData.pthread_ptr,0,0,1,0,0);PThread.threadInitTLS();__emscripten_thread_mailbox_await(msgData.pthread_ptr);if(!initializedJS){initializedJS=true}try{await invokeEntryPoint(msgData.start_routine,msgData.arg)}catch(ex){if(ex!="unwind"){throw ex}}}else if(msgData.target==="setimmediate"){}else if(cmd==="checkMailbox"){if(initializedJS){checkMailbox()}}else if(cmd){err(`worker: received unknown command ${cmd}`);err(msgData)}}catch(ex){__emscripten_thread_crashed();throw ex}}self.onmessage=handleMessage}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function initMemory(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||134217728;wasmMemory=new WebAssembly.Memory({initial:BigInt(INITIAL_MEMORY/65536),maximum:65536n,shared:true,address:"i64"})}updateMemoryViews()}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return startWorker();if(!Module["noFSInit"]&&!FS.initialized)FS.init();TTY.init();wasmExports["__wasm_call_ctors"]();FS.ignorePermissions=false}function preMain(){}function postRun(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";if(runtimeInitialized){___trap()}var e=new WebAssembly.RuntimeError(what);throw e}var wasmBinaryFile;function findWasmBinary(){return locateFile("wllama.wasm")}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){assignWasmImports();if(!wasmImports.__instrumented){wasmImports.__instrumented=true;Asyncify.instrumentWasmImports(wasmImports)}var imports={env:wasmImports,wasi_snapshot_preview1:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmExports=applySignatureConversions(wasmExports);registerTLSInit(wasmExports["_emscripten_tls_init"]);assignWasmExports(wasmExports);wasmModule=module;removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){return receiveInstance(result["instance"],result["module"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}if(ENVIRONMENT_IS_PTHREAD){var instance=new WebAssembly.Instance(wasmModule,getWasmImports());return receiveInstance(instance,wasmModule)}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var terminateWorker=worker=>{worker.terminate();worker.onmessage=e=>{}};var cleanupThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];PThread.returnWorkerToPool(worker)};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}};var addRunDependency=id=>{runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)};var spawnThread=threadParams=>{var worker=PThread.getNewWorker();if(!worker){return 6}PThread.runningWorkers.push(worker);PThread.pthreads[threadParams.pthread_ptr]=worker;worker.pthread_ptr=threadParams.pthread_ptr;var msg={cmd:"run",start_routine:threadParams.startRoutine,arg:threadParams.arg,pthread_ptr:threadParams.pthread_ptr};if(ENVIRONMENT_IS_NODE){worker.unref()}worker.postMessage(msg,threadParams.transferList);return 0};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var stackSave=()=>_emscripten_stack_get_current();var stackRestore=val=>__emscripten_stack_restore(val);var stackAlloc=sz=>__emscripten_stack_alloc(sz);var proxyToMainThread=(funcIndex,emAsmAddr,sync,...callArgs)=>{var serializedNumCallArgs=callArgs.length*2;var sp=stackSave();var args=stackAlloc(serializedNumCallArgs*8);var b=args/8;for(var i=0;i{EXITSTATUS=status;if(ENVIRONMENT_IS_PTHREAD){exitOnMainThread(status);throw"unwind"}_proc_exit(status)};var _exit=exitJS;var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init(){if(!ENVIRONMENT_IS_PTHREAD){PThread.initMainThread()}},initMainThread(){var pthreadPoolSize=Module["pthreadPoolSize"];while(pthreadPoolSize--){PThread.allocateUnusedWorker()}addOnPreRun(async()=>{var pthreadPoolReady=PThread.loadWasmModuleToAllWorkers();addRunDependency("loading-workers");await pthreadPoolReady;removeRunDependency("loading-workers")})},terminateAllThreads:()=>{for(var worker of PThread.runningWorkers){terminateWorker(worker)}for(var worker of PThread.unusedWorkers){terminateWorker(worker)}PThread.unusedWorkers=[];PThread.runningWorkers=[];PThread.pthreads={}},returnWorkerToPool:worker=>{var pthread_ptr=worker.pthread_ptr;delete PThread.pthreads[pthread_ptr];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);worker.pthread_ptr=0;__emscripten_thread_free_data(pthread_ptr)},threadInitTLS(){PThread.tlsInitFunctions.forEach(f=>f())},loadWasmModuleToWorker:worker=>new Promise(onFinishedLoading=>{worker.onmessage=e=>{var d=e["data"];var cmd=d.cmd;if(d.targetThread&&d.targetThread!=_pthread_self()){var targetWorker=PThread.pthreads[d.targetThread];if(targetWorker){targetWorker.postMessage(d,d.transferList)}else{err(`Internal error! Worker sent a message "${cmd}" to target pthread ${d.targetThread}, but that thread no longer exists!`)}return}if(cmd==="checkMailbox"){checkMailbox()}else if(cmd==="spawnThread"){spawnThread(d)}else if(cmd==="cleanupThread"){callUserCallback(()=>cleanupThread(d.thread))}else if(cmd==="loaded"){worker.loaded=true;if(ENVIRONMENT_IS_NODE&&!worker.pthread_ptr){worker.unref()}onFinishedLoading(worker)}else if(d.target==="setimmediate"){worker.postMessage(d)}else if(cmd==="uncaughtException"){worker.onerror(d.error)}else if(cmd==="callHandler"){Module[d.handler](...d.args)}else if(cmd){err(`worker sent an unknown command ${cmd}`)}};worker.onerror=e=>{var message="worker sent an error!";err(`${message} ${e.filename}:${e.lineno}: ${e.message}`);throw e};if(ENVIRONMENT_IS_NODE){worker.on("message",data=>worker.onmessage({data}));worker.on("error",e=>worker.onerror(e))}var handlers=[];var knownHandlers=["onExit","onAbort","print","printErr"];for(var handler of knownHandlers){if(Module.propertyIsEnumerable(handler)){handlers.push(handler)}}worker.postMessage({cmd:"load",handlers,wasmMemory,wasmModule})}),async loadWasmModuleToAllWorkers(){if(ENVIRONMENT_IS_PTHREAD){return}let pthreadPoolReady=Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker));return pthreadPoolReady},allocateUnusedWorker(){var worker;var pthreadMainJs=_scriptName;if(Module["mainScriptUrlOrBlob"]){pthreadMainJs=Module["mainScriptUrlOrBlob"];if(typeof pthreadMainJs!="string"){pthreadMainJs=URL.createObjectURL(pthreadMainJs)}}worker=new Worker(pthreadMainJs,{workerData:"em-pthread",name:"em-pthread"});PThread.unusedWorkers.push(worker)},getNewWorker(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);function establishStackSpace(pthread_ptr){var stackHigh=Number((growMemViews(),HEAPU64)[(pthread_ptr+88)/8]);var stackSize=Number((growMemViews(),HEAPU64)[(pthread_ptr+96)/8]);var stackLow=stackHigh-stackSize;_emscripten_stack_set_limits(stackHigh,stackLow);stackRestore(stackHigh)}var wasmTableMirror=[];var getWasmTableEntry=funcPtr=>{funcPtr=Number(funcPtr);var func=wasmTableMirror[funcPtr];if(!func){wasmTableMirror[funcPtr]=func=wasmTable.get(BigInt(funcPtr));if(Asyncify.isAsyncExport(func)){wasmTableMirror[funcPtr]=func=Asyncify.makeAsyncFunction(func)}}return func};var invokeEntryPoint=async(ptr,arg)=>{runtimeKeepaliveCounter=0;noExitRuntime=0;var result=(a1=>WebAssembly.promising(getWasmTableEntry(ptr)).call(null,BigInt(a1)))(arg);function finish(result){if(keepRuntimeAlive()){EXITSTATUS=result;return}__emscripten_thread_exit(result)}result=await result;finish(result)};invokeEntryPoint.isAsync=true;var noExitRuntime=true;var registerTLSInit=tlsInitFunc=>PThread.tlsInitFunctions.push(tlsInitFunc);var wasmMemory;var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>numINT53_MAX?NaN:Number(num);var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.buffer instanceof ArrayBuffer?heapOrArray.subarray(idx,endPtr):heapOrArray.slice(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString((growMemViews(),HEAPU8),ptr,maxBytesToRead,ignoreNul):"";function pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(2,0,1,pthread_ptr,attr,startRoutine,arg);return ___pthread_create_js(pthread_ptr,attr,startRoutine,arg)}var _emscripten_has_threading_support=()=>!!globalThis.SharedArrayBuffer;function ___pthread_create_js(pthread_ptr,attr,startRoutine,arg){pthread_ptr=bigintToI53Checked(pthread_ptr);attr=bigintToI53Checked(attr);startRoutine=bigintToI53Checked(startRoutine);arg=bigintToI53Checked(arg);if(!_emscripten_has_threading_support()){return 6}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg)}if(error)return error;var threadParams={startRoutine,pthread_ptr,arg,transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}var syscallGetVarargP=()=>{var ret=Number((growMemViews(),HEAPU64)[SYSCALLS.varargs/8]);SYSCALLS.varargs+=8;return ret};var syscallGetVarargI=()=>{var ret=(growMemViews(),HEAP32)[+SYSCALLS.varargs/4];SYSCALLS.varargs+=4;return ret};var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\/]+|\/)\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>view=>view.set(crypto.getRandomValues(new Uint8Array(view.byteLength)));var randomFill=view=>{(randomFill=initRandomFill())(view)};var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++}}heap[outIdx]=0;return outIdx-startIdx};var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}}else if(globalThis.window?.prompt){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var zeroMemory=(ptr,size)=>(growMemViews(),HEAPU8).fill(0,ptr,ptr+size);var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(ptr)zeroMemory(ptr,size);return ptr};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of["mode","atime","mtime","ctime"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){if(!MEMFS.doesNotExistError){MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack=""}throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[".","..",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var getUniqueRunDependency=id=>id;var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!="undefined")Browser.init();for(var plugin of preloadPlugins){if(plugin["canHandle"](fullname)){return plugin["handle"](byteArray,fullname)}}return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);addRunDependency(dep);try{var byteArray=url;if(typeof url=="string"){byteArray=await asyncLoad(url)}byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}}finally{removeRunDependency(dep)}};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+"/"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&(512|64)){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}for(var mount of mounts){if(mount.type.syncfs){mount.type.syncfs(mount,populate,done)}else{done(null)}}},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);for(var[hash,current]of Object.entries(FS.nameTable)){while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}}node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name==="."||name===".."){throw new FS.ErrnoError(20)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+="/";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path=="object"){node=path}else{isDirPath=path.endsWith("/");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}if(Module["logReadFiles"]&&!(flags&1)){if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){abort(`Invalid encoding type "${opts.encoding}"`)}var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){buf=UTF8ArrayToString(buf)}FS.close(stream);return buf},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){data=new Uint8Array(intArrayFromString(data,true))}if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{abort("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},"/proc/self/fd")},createStandardStreams(input,output,error){if(input){FS.createDevice("/dev","stdin",input)}else{FS.symlink("/dev/tty","/dev/stdin")}if(output){FS.createDevice("/dev","stdout",null,output)}else{FS.symlink("/dev/tty","/dev/stdout")}if(error){FS.createDevice("/dev","stderr",null,error)}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){FS.initialized=true;input??=Module["stdin"];output??=Module["stdout"];error??=Module["stderr"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)abort("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)abort("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")abort("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(globalThis.XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)abort("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};for(const[key,fn]of Object.entries(node.stream_ops)){stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}}function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,(growMemViews(),HEAP8),ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+"/"+path},writeStat(buf,stat){(growMemViews(),HEAPU32)[buf/4]=stat.dev;(growMemViews(),HEAPU32)[(buf+4)/4]=stat.mode;(growMemViews(),HEAPU64)[(buf+8)/8]=BigInt(stat.nlink);(growMemViews(),HEAPU32)[(buf+16)/4]=stat.uid;(growMemViews(),HEAPU32)[(buf+20)/4]=stat.gid;(growMemViews(),HEAPU32)[(buf+24)/4]=stat.rdev;(growMemViews(),HEAP64)[(buf+32)/8]=BigInt(stat.size);(growMemViews(),HEAP32)[(buf+40)/4]=4096;(growMemViews(),HEAP32)[(buf+44)/4]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();(growMemViews(),HEAP64)[(buf+48)/8]=BigInt(Math.floor(atime/1e3));(growMemViews(),HEAPU64)[(buf+56)/8]=BigInt(atime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+64)/8]=BigInt(Math.floor(mtime/1e3));(growMemViews(),HEAPU64)[(buf+72)/8]=BigInt(mtime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+80)/8]=BigInt(Math.floor(ctime/1e3));(growMemViews(),HEAPU64)[(buf+88)/8]=BigInt(ctime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+96)/8]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){(growMemViews(),HEAPU32)[(buf+8)/4]=stats.bsize;(growMemViews(),HEAPU32)[(buf+72)/4]=stats.bsize;(growMemViews(),HEAP64)[(buf+16)/8]=BigInt(stats.blocks);(growMemViews(),HEAP64)[(buf+24)/8]=BigInt(stats.bfree);(growMemViews(),HEAP64)[(buf+32)/8]=BigInt(stats.bavail);(growMemViews(),HEAP64)[(buf+40)/8]=BigInt(stats.files);(growMemViews(),HEAP64)[(buf+48)/8]=BigInt(stats.ffree);(growMemViews(),HEAPU32)[(buf+56)/4]=stats.fsid;(growMemViews(),HEAPU32)[(buf+80)/4]=stats.flags;(growMemViews(),HEAPU32)[(buf+64)/4]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=(growMemViews(),HEAPU8).slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(3,0,1,fd,cmd,varargs);varargs=bigintToI53Checked(varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 5:{var arg=syscallGetVarargP();var offset=0;(growMemViews(),HEAP16)[(arg+offset)/2]=2;return 0}case 6:case 7:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(4,0,1,fd,buf);buf=bigintToI53Checked(buf);try{return SYSCALLS.writeStat(buf,FS.fstat(fd))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,(growMemViews(),HEAPU8),outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(5,0,1,buf,size);buf=bigintToI53Checked(buf);size=bigintToI53Checked(size);try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(sizeabort("");function __emscripten_init_main_thread_js(tb){tb=bigintToI53Checked(tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1,!ENVIRONMENT_IS_WEB,65536,false);PThread.threadInitTLS()}var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var maybeExit=()=>{if(!keepRuntimeAlive()){try{if(ENVIRONMENT_IS_PTHREAD){if(_pthread_self())__emscripten_thread_exit(EXITSTATUS);return}_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};function __emscripten_thread_mailbox_await(pthread_ptr){pthread_ptr=bigintToI53Checked(pthread_ptr);if(Atomics.waitAsync){var wait=Atomics.waitAsync((growMemViews(),HEAP32),pthread_ptr/4,pthread_ptr);wait.value.then(checkMailbox);var waitingAsync=pthread_ptr+228;Atomics.store((growMemViews(),HEAP32),waitingAsync/4,1)}}var checkMailbox=()=>callUserCallback(()=>{var pthread_ptr=_pthread_self();if(pthread_ptr){__emscripten_thread_mailbox_await(pthread_ptr);__emscripten_check_mailbox()}});function __emscripten_notify_mailbox_postmessage(targetThread,currThreadId){targetThread=bigintToI53Checked(targetThread);currThreadId=bigintToI53Checked(currThreadId);if(targetThread==currThreadId){setTimeout(checkMailbox)}else if(ENVIRONMENT_IS_PTHREAD){postMessage({targetThread,cmd:"checkMailbox"})}else{var worker=PThread.pthreads[targetThread];if(!worker){return}worker.postMessage({cmd:"checkMailbox"})}}var proxiedJSCallArgs=[];function __emscripten_receive_on_main_thread_js(funcIndex,emAsmAddr,callingThread,numCallArgs,args){emAsmAddr=bigintToI53Checked(emAsmAddr);callingThread=bigintToI53Checked(callingThread);args=bigintToI53Checked(args);numCallArgs/=2;proxiedJSCallArgs.length=numCallArgs;var b=args/8;for(var i=0;i{noExitRuntime=false;runtimeKeepaliveCounter=0};function __emscripten_thread_cleanup(thread){thread=bigintToI53Checked(thread);if(!ENVIRONMENT_IS_PTHREAD)cleanupThread(thread);else postMessage({cmd:"cleanupThread",thread})}function __emscripten_thread_set_strongref(thread){thread=bigintToI53Checked(thread);if(ENVIRONMENT_IS_NODE){PThread.pthreads[thread].ref()}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time,tmPtr){time=bigintToI53Checked(time);tmPtr=bigintToI53Checked(tmPtr);var date=new Date(time*1e3);(growMemViews(),HEAP32)[tmPtr/4]=date.getSeconds();(growMemViews(),HEAP32)[(tmPtr+4)/4]=date.getMinutes();(growMemViews(),HEAP32)[(tmPtr+8)/4]=date.getHours();(growMemViews(),HEAP32)[(tmPtr+12)/4]=date.getDate();(growMemViews(),HEAP32)[(tmPtr+16)/4]=date.getMonth();(growMemViews(),HEAP32)[(tmPtr+20)/4]=date.getFullYear()-1900;(growMemViews(),HEAP32)[(tmPtr+24)/4]=date.getDay();var yday=ydayFromDate(date)|0;(growMemViews(),HEAP32)[(tmPtr+28)/4]=yday;(growMemViews(),HEAP64)[(tmPtr+40)/8]=BigInt(-(date.getTimezoneOffset()*60));var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;(growMemViews(),HEAP32)[(tmPtr+32)/4]=dst}function __mmap_js(len,prot,flags,fd,offset,allocated,addr){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(12,0,1,len,prot,flags,fd,offset,allocated,addr);len=bigintToI53Checked(len);offset=bigintToI53Checked(offset);allocated=bigintToI53Checked(allocated);addr=bigintToI53Checked(addr);try{var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;(growMemViews(),HEAP32)[allocated/4]=res.allocated;(growMemViews(),HEAPU64)[addr/8]=BigInt(ptr);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(13,0,1,addr,len,prot,flags,fd,offset);addr=bigintToI53Checked(addr);len=bigintToI53Checked(len);offset=bigintToI53Checked(offset);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var timers={};var _emscripten_get_now=()=>performance.timeOrigin+performance.now();function __setitimer_js(which,timeout_ms){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(14,0,1,which,timeout_ms);if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0}var __tzset_js=function(timezone,daylight,std_name,dst_name){timezone=bigintToI53Checked(timezone);daylight=bigintToI53Checked(daylight);std_name=bigintToI53Checked(std_name);dst_name=bigintToI53Checked(dst_name);var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);(growMemViews(),HEAPU64)[timezone/8]=BigInt(stdTimezoneOffset*60);(growMemViews(),HEAP32)[daylight/4]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffsetDate.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);ptime=bigintToI53Checked(ptime);if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);(growMemViews(),HEAP64)[ptime/8]=BigInt(nsec);return 0}var _emscripten_check_blocking_allowed=()=>{};var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};var _emscripten_exit_with_live_runtime=()=>{runtimeKeepalivePush();throw"unwind"};var getHeapMax=()=>4294967296;var _emscripten_get_heap_max=()=>BigInt(getHeapMax());var _emscripten_has_asyncify=()=>2;var _emscripten_num_logical_cores=()=>ENVIRONMENT_IS_NODE?require("os").cpus().length:navigator["hardwareConcurrency"];var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(BigInt(pages));updateMemoryViews();return 1}catch(e){}};function _emscripten_resize_heap(requestedSize){requestedSize=bigintToI53Checked(requestedSize);var oldSize=(growMemViews(),HEAPU8).length;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false}var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var writeI53ToI64=(ptr,num)=>{(growMemViews(),HEAPU32)[ptr/4]=num;var lower=(growMemViews(),HEAPU32)[ptr/4];(growMemViews(),HEAPU32)[(ptr+4)/4]=(num-lower)/4294967296};var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var readI53FromI64=ptr=>(growMemViews(),HEAPU32)[ptr/4]+(growMemViews(),HEAP32)[(ptr+4)/4]*4294967296;var WebGPU={Internals:{jsObjects:[],jsObjectInsert:(ptr,jsObject)=>{WebGPU.Internals.jsObjects[ptr]=jsObject},bufferOnUnmaps:[],futures:[],futureInsert:(futureId,promise)=>{WebGPU.Internals.futures[futureId]=new Promise(resolve=>promise.finally(()=>resolve(futureId)))}},getJsObject:ptr=>{if(!ptr)return undefined;return WebGPU.Internals.jsObjects[ptr]},importJsAdapter:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateAdapter(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroup:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroup(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroupLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroupLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBuffer:(buffer,parentPtr=0)=>{assert(buffer.mapState==="unmapped");var bufferPtr=_emwgpuCreateBuffer(parentPtr);WebGPU.Internals.jsObjectInsert(bufferPtr,buffer);return bufferPtr},importJsCommandBuffer:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandBuffer(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsCommandEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsDevice:(device,parentPtr=0)=>{var queuePtr=_emwgpuCreateQueue(parentPtr);var devicePtr=_emwgpuCreateDevice(parentPtr,queuePtr);WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);return devicePtr},importJsExternalTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateExternalTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsPipelineLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreatePipelineLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQuerySet:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQuerySet(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQueue:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQueue(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundle:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundle(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundleEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundleEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSampler:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSampler(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsShaderModule:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateShaderModule(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSurface:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSurface(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTextureView:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTextureView(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},errorCallback:(callback,type,message,userdata)=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(message);((a1,a2,a3)=>getWasmTableEntry(callback).call(null,a1,BigInt(a2),BigInt(a3)))(type,BigInt(messagePtr),userdata);stackRestore(sp)},iterateExtensions:(root,handlers)=>{for(var ptr=Number((growMemViews(),HEAPU64)[root/8]);ptr;ptr=Number((growMemViews(),HEAPU64)[ptr/8])){var sType=(growMemViews(),HEAP32)[(ptr+8)/4];var handler=handlers[sType](ptr)}},setStringView:(ptr,data,length)=>{(growMemViews(),HEAPU64)[ptr/8]=BigInt(data);(growMemViews(),HEAPU64)[(ptr+8)/8]=BigInt(length)},makeStringFromStringView:stringViewPtr=>{var ptr=Number((growMemViews(),HEAPU64)[stringViewPtr/8]);var length=Number((growMemViews(),HEAPU64)[(stringViewPtr+8)/8]);return UTF8ToString(ptr,length)},makeStringFromOptionalStringView:stringViewPtr=>{var ptr=Number((growMemViews(),HEAPU64)[stringViewPtr/8]);var length=Number((growMemViews(),HEAPU64)[(stringViewPtr+8)/8]);if(!ptr){if(length===0){return""}return undefined}return UTF8ToString(ptr,length)},makeColor:ptr=>({r:(growMemViews(),HEAPF64)[ptr/8],g:(growMemViews(),HEAPF64)[(ptr+8)/8],b:(growMemViews(),HEAPF64)[(ptr+16)/8],a:(growMemViews(),HEAPF64)[(ptr+24)/8]}),makeExtent3D:ptr=>({width:(growMemViews(),HEAPU32)[ptr/4],height:(growMemViews(),HEAPU32)[(ptr+4)/4],depthOrArrayLayers:(growMemViews(),HEAPU32)[(ptr+8)/4]}),makeOrigin3D:ptr=>({x:(growMemViews(),HEAPU32)[ptr/4],y:(growMemViews(),HEAPU32)[(ptr+4)/4],z:(growMemViews(),HEAPU32)[(ptr+8)/4]}),makeTexelCopyTextureInfo:ptr=>({texture:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[ptr/8])),mipLevel:(growMemViews(),HEAPU32)[(ptr+8)/4],origin:WebGPU.makeOrigin3D(ptr+12),aspect:WebGPU.TextureAspect[(growMemViews(),HEAP32)[(ptr+24)/4]]}),makeTexelCopyBufferLayout:ptr=>{var bytesPerRow=(growMemViews(),HEAPU32)[(ptr+8)/4];var rowsPerImage=(growMemViews(),HEAPU32)[(ptr+12)/4];return{offset:readI53FromI64(ptr),bytesPerRow:bytesPerRow===4294967295?undefined:bytesPerRow,rowsPerImage:rowsPerImage===4294967295?undefined:rowsPerImage}},makeTexelCopyBufferInfo:ptr=>{var layoutPtr=ptr+0;var bufferCopyView=WebGPU.makeTexelCopyBufferLayout(layoutPtr);bufferCopyView["buffer"]=WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+16)/8]));return bufferCopyView},makePassTimestampWrites:ptr=>{if(ptr===0)return undefined;return{querySet:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+8)/8])),beginningOfPassWriteIndex:(growMemViews(),HEAPU32)[(ptr+16)/4],endOfPassWriteIndex:(growMemViews(),HEAPU32)[(ptr+20)/4]}},makePipelineConstants:(constantCount,constantsPtr)=>{if(!constantCount)return;var constants={};for(var i=0;i{if(!layoutPtr)return"auto";return WebGPU.getJsObject(layoutPtr)},makeComputeState:ptr=>{if(!ptr)return undefined;var desc={module:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+8)/8])),constants:WebGPU.makePipelineConstants(Number((growMemViews(),HEAPU64)[(ptr+32)/8]),Number((growMemViews(),HEAPU64)[(ptr+40)/8])),entryPoint:WebGPU.makeStringFromOptionalStringView(ptr+16)};return desc},makeComputePipelineDesc:descriptor=>{var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8),layout:WebGPU.makePipelineLayout(Number((growMemViews(),HEAPU64)[(descriptor+24)/8])),compute:WebGPU.makeComputeState(descriptor+32)};return desc},makeRenderPipelineDesc:descriptor=>{function makePrimitiveState(psPtr){if(!psPtr)return undefined;return{topology:WebGPU.PrimitiveTopology[(growMemViews(),HEAP32)[(psPtr+8)/4]],stripIndexFormat:WebGPU.IndexFormat[(growMemViews(),HEAP32)[(psPtr+12)/4]],frontFace:WebGPU.FrontFace[(growMemViews(),HEAP32)[(psPtr+16)/4]],cullMode:WebGPU.CullMode[(growMemViews(),HEAP32)[(psPtr+20)/4]],unclippedDepth:!!(growMemViews(),HEAPU32)[(psPtr+24)/4]}}function makeBlendComponent(bdPtr){if(!bdPtr)return undefined;return{operation:WebGPU.BlendOperation[(growMemViews(),HEAP32)[bdPtr/4]],srcFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[(bdPtr+4)/4]],dstFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[(bdPtr+8)/4]]}}function makeBlendState(bsPtr){if(!bsPtr)return undefined;return{alpha:makeBlendComponent(bsPtr+12),color:makeBlendComponent(bsPtr+0)}}function makeColorState(csPtr){var format=WebGPU.TextureFormat[(growMemViews(),HEAP32)[(csPtr+8)/4]];return format?{format,blend:makeBlendState(Number((growMemViews(),HEAPU64)[(csPtr+16)/8])),writeMask:(growMemViews(),HEAPU32)[(csPtr+24)/4]}:undefined}function makeColorStates(count,csArrayPtr){var states=[];for(var i=0;i{var nextInChainPtr=Number((growMemViews(),HEAPU64)[limitsOutPtr/8]);function setLimitValueU32(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;(growMemViews(),HEAPU32)[(basePtr+limitOffset)/4]=limitValue}function setLimitValueU64(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;writeI53ToI64(basePtr+limitOffset,limitValue)}setLimitValueU32("maxTextureDimension1D",limitsOutPtr,8);setLimitValueU32("maxTextureDimension2D",limitsOutPtr,12);setLimitValueU32("maxTextureDimension3D",limitsOutPtr,16);setLimitValueU32("maxTextureArrayLayers",limitsOutPtr,20);setLimitValueU32("maxBindGroups",limitsOutPtr,24);setLimitValueU32("maxBindGroupsPlusVertexBuffers",limitsOutPtr,28);setLimitValueU32("maxBindingsPerBindGroup",limitsOutPtr,32);setLimitValueU32("maxDynamicUniformBuffersPerPipelineLayout",limitsOutPtr,36);setLimitValueU32("maxDynamicStorageBuffersPerPipelineLayout",limitsOutPtr,40);setLimitValueU32("maxSampledTexturesPerShaderStage",limitsOutPtr,44);setLimitValueU32("maxSamplersPerShaderStage",limitsOutPtr,48);setLimitValueU32("maxStorageBuffersPerShaderStage",limitsOutPtr,52);setLimitValueU32("maxStorageTexturesPerShaderStage",limitsOutPtr,56);setLimitValueU32("maxUniformBuffersPerShaderStage",limitsOutPtr,60);setLimitValueU32("minUniformBufferOffsetAlignment",limitsOutPtr,80);setLimitValueU32("minStorageBufferOffsetAlignment",limitsOutPtr,84);setLimitValueU64("maxUniformBufferBindingSize",limitsOutPtr,64);setLimitValueU64("maxStorageBufferBindingSize",limitsOutPtr,72);setLimitValueU32("maxVertexBuffers",limitsOutPtr,88);setLimitValueU64("maxBufferSize",limitsOutPtr,96);setLimitValueU32("maxVertexAttributes",limitsOutPtr,104);setLimitValueU32("maxVertexBufferArrayStride",limitsOutPtr,108);setLimitValueU32("maxInterStageShaderVariables",limitsOutPtr,112);setLimitValueU32("maxColorAttachments",limitsOutPtr,116);setLimitValueU32("maxColorAttachmentBytesPerSample",limitsOutPtr,120);setLimitValueU32("maxComputeWorkgroupStorageSize",limitsOutPtr,124);setLimitValueU32("maxComputeInvocationsPerWorkgroup",limitsOutPtr,128);setLimitValueU32("maxComputeWorkgroupSizeX",limitsOutPtr,132);setLimitValueU32("maxComputeWorkgroupSizeY",limitsOutPtr,136);setLimitValueU32("maxComputeWorkgroupSizeZ",limitsOutPtr,140);setLimitValueU32("maxComputeWorkgroupsPerDimension",limitsOutPtr,144);setLimitValueU32("maxImmediateSize",limitsOutPtr,148);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var compatibilityModeLimitsPtr=nextInChainPtr;setLimitValueU32("maxStorageBuffersInVertexStage",compatibilityModeLimitsPtr,16,limits.maxStorageBuffersPerShaderStage);setLimitValueU32("maxStorageBuffersInFragmentStage",compatibilityModeLimitsPtr,24,limits.maxStorageBuffersPerShaderStage);setLimitValueU32("maxStorageTexturesInVertexStage",compatibilityModeLimitsPtr,20,limits.maxStorageTexturesPerShaderStage);setLimitValueU32("maxStorageTexturesInFragmentStage",compatibilityModeLimitsPtr,28,limits.maxStorageTexturesPerShaderStage)}},fillAdapterInfoStruct:(info,infoStruct)=>{(growMemViews(),HEAPU32)[(infoStruct+88)/4]=info.subgroupMinSize;(growMemViews(),HEAPU32)[(infoStruct+92)/4]=info.subgroupMaxSize;var strs=info.vendor+info.architecture+info.device+info.description;var strPtr=stringToNewUTF8(strs);var vendorLen=lengthBytesUTF8(info.vendor);WebGPU.setStringView(infoStruct+8,strPtr,vendorLen);strPtr+=vendorLen;var architectureLen=lengthBytesUTF8(info.architecture);WebGPU.setStringView(infoStruct+24,strPtr,architectureLen);strPtr+=architectureLen;var deviceLen=lengthBytesUTF8(info.device);WebGPU.setStringView(infoStruct+40,strPtr,deviceLen);strPtr+=deviceLen;var descriptionLen=lengthBytesUTF8(info.description);WebGPU.setStringView(infoStruct+56,strPtr,descriptionLen);strPtr+=descriptionLen;(growMemViews(),HEAP32)[(infoStruct+72)/4]=2;var adapterType=info.isFallbackAdapter?3:4;(growMemViews(),HEAP32)[(infoStruct+76)/4]=adapterType;(growMemViews(),HEAPU32)[(infoStruct+80)/4]=0;(growMemViews(),HEAPU32)[(infoStruct+84)/4]=0},AddressMode:[,"clamp-to-edge","repeat","mirror-repeat"],BlendFactor:[,"zero","one","src","one-minus-src","src-alpha","one-minus-src-alpha","dst","one-minus-dst","dst-alpha","one-minus-dst-alpha","src-alpha-saturated","constant","one-minus-constant","src1","one-minus-src1","src1-alpha","one-minus-src1-alpha"],BlendOperation:[,"add","subtract","reverse-subtract","min","max"],BufferBindingType:[,,"uniform","storage","read-only-storage"],BufferMapState:[,"unmapped","pending","mapped"],CompareFunction:[,"never","less","equal","less-equal","greater","not-equal","greater-equal","always"],CompilationInfoRequestStatus:[,"success","callback-cancelled"],ComponentSwizzle:[,"0","1","r","g","b","a"],CompositeAlphaMode:[,"opaque","premultiplied","unpremultiplied","inherit"],CullMode:[,"none","front","back"],ErrorFilter:[,"validation","out-of-memory","internal"],FeatureLevel:[,"compatibility","core"],FeatureName:{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",22:"texture-component-swizzle",327692:"chromium-experimental-unorm16-texture-formats",327729:"chromium-experimental-multi-draw-indirect"},FilterMode:[,"nearest","linear"],FrontFace:[,"ccw","cw"],IndexFormat:[,"uint16","uint32"],InstanceFeatureName:[,"timed-wait-any","shader-source-spirv","multiple-devices-per-adapter"],LoadOp:[,"load","clear"],MipmapFilterMode:[,"nearest","linear"],OptionalBool:["false","true"],PowerPreference:[,"low-power","high-performance"],PredefinedColorSpace:[,"srgb","display-p3"],PrimitiveTopology:[,"point-list","line-list","line-strip","triangle-list","triangle-strip"],QueryType:[,"occlusion","timestamp"],SamplerBindingType:[,,"filtering","non-filtering","comparison"],Status:[,"success","error"],StencilOperation:[,"keep","zero","replace","invert","increment-clamp","decrement-clamp","increment-wrap","decrement-wrap"],StorageTextureAccess:[,,"write-only","read-only","read-write"],StoreOp:[,"store","discard"],SurfaceGetCurrentTextureStatus:[,"success-optimal","success-suboptimal","timeout","outdated","lost","error"],TextureAspect:[,"all","stencil-only","depth-only"],TextureDimension:[,"1d","2d","3d"],TextureFormat:[,"r8unorm","r8snorm","r8uint","r8sint","r16unorm","r16snorm","r16uint","r16sint","r16float","rg8unorm","rg8snorm","rg8uint","rg8sint","r32float","r32uint","r32sint","rg16unorm","rg16snorm","rg16uint","rg16sint","rg16float","rgba8unorm","rgba8unorm-srgb","rgba8snorm","rgba8uint","rgba8sint","bgra8unorm","bgra8unorm-srgb","rgb10a2uint","rgb10a2unorm","rg11b10ufloat","rgb9e5ufloat","rg32float","rg32uint","rg32sint","rgba16unorm","rgba16snorm","rgba16uint","rgba16sint","rgba16float","rgba32float","rgba32uint","rgba32sint","stencil8","depth16unorm","depth24plus","depth24plus-stencil8","depth32float","depth32float-stencil8","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb","bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm","bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb","etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm","astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"],TextureSampleType:[,,"float","unfilterable-float","depth","sint","uint"],TextureViewDimension:[,"1d","2d","2d-array","cube","cube-array","3d"],ToneMappingMode:[,"standard","extended"],VertexFormat:[,"uint8","uint8x2","uint8x4","sint8","sint8x2","sint8x4","unorm8","unorm8x2","unorm8x4","snorm8","snorm8x2","snorm8x4","uint16","uint16x2","uint16x4","sint16","sint16x2","sint16x4","unorm16","unorm16x2","unorm16x4","snorm16","snorm16x2","snorm16x4","float16","float16x2","float16x4","float32","float32x2","float32x3","float32x4","uint32","uint32x2","uint32x3","uint32x4","sint32","sint32x2","sint32x3","sint32x4","unorm10-10-10-2","unorm8x4-bgra"],VertexStepMode:[,"vertex","instance"],WGSLLanguageFeatureName:[,"readonly_and_readwrite_storage_textures","packed_4x8_integer_dot_product","unrestricted_pointer_parameters","pointer_composite_access","uniform_buffer_standard_layout","subgroup_id","texture_and_sampler_let","subgroup_uniformity","texture_formats_tier1"]};var emwgpuStringToInt_DeviceLostReason={undefined:1,unknown:1,destroyed:2};var runtimeKeepalivePop=()=>{runtimeKeepaliveCounter-=1};function _emwgpuAdapterRequestDevice(adapterPtr,futureId,deviceLostFutureId,devicePtr,queuePtr,descriptor){adapterPtr=bigintToI53Checked(adapterPtr);futureId=bigintToI53Checked(futureId);deviceLostFutureId=bigintToI53Checked(deviceLostFutureId);devicePtr=bigintToI53Checked(devicePtr);queuePtr=bigintToI53Checked(queuePtr);descriptor=bigintToI53Checked(descriptor);var adapter=WebGPU.getJsObject(adapterPtr);var desc={};if(descriptor){var requiredFeatureCount=Number((growMemViews(),HEAPU64)[(descriptor+24)/8]);if(requiredFeatureCount){var requiredFeaturesPtr=Number((growMemViews(),HEAPU64)[(descriptor+32)/8]);desc["requiredFeatures"]=Array.from((growMemViews(),HEAPU32).subarray(requiredFeaturesPtr/4,(requiredFeaturesPtr+requiredFeatureCount*4)/4),feature=>WebGPU.FeatureName[feature])}var limitsPtr=Number((growMemViews(),HEAPU64)[(descriptor+40)/8]);if(limitsPtr){var nextInChainPtr=Number((growMemViews(),HEAPU64)[limitsPtr/8]);var requiredLimits={};function setLimitU32IfDefined(name,basePtr,limitOffset,ignoreIfZero=false){var ptr=basePtr+limitOffset;var value=(growMemViews(),HEAPU32)[ptr/4];if(value!=4294967295&&(!ignoreIfZero||value!=0)){requiredLimits[name]=value}}function setLimitU64IfDefined(name,basePtr,limitOffset){var ptr=basePtr+limitOffset;var limitPart1=(growMemViews(),HEAPU32)[ptr/4];var limitPart2=(growMemViews(),HEAPU32)[(ptr+4)/4];if(limitPart1!=4294967295||limitPart2!=4294967295){requiredLimits[name]=readI53FromI64(ptr)}}setLimitU32IfDefined("maxTextureDimension1D",limitsPtr,8);setLimitU32IfDefined("maxTextureDimension2D",limitsPtr,12);setLimitU32IfDefined("maxTextureDimension3D",limitsPtr,16);setLimitU32IfDefined("maxTextureArrayLayers",limitsPtr,20);setLimitU32IfDefined("maxBindGroups",limitsPtr,24);setLimitU32IfDefined("maxBindGroupsPlusVertexBuffers",limitsPtr,28);setLimitU32IfDefined("maxBindingsPerBindGroup",limitsPtr,32);setLimitU32IfDefined("maxDynamicUniformBuffersPerPipelineLayout",limitsPtr,36);setLimitU32IfDefined("maxDynamicStorageBuffersPerPipelineLayout",limitsPtr,40);setLimitU32IfDefined("maxSampledTexturesPerShaderStage",limitsPtr,44);setLimitU32IfDefined("maxSamplersPerShaderStage",limitsPtr,48);setLimitU32IfDefined("maxStorageBuffersPerShaderStage",limitsPtr,52);setLimitU32IfDefined("maxStorageTexturesPerShaderStage",limitsPtr,56);setLimitU32IfDefined("maxUniformBuffersPerShaderStage",limitsPtr,60);setLimitU32IfDefined("minUniformBufferOffsetAlignment",limitsPtr,80);setLimitU32IfDefined("minStorageBufferOffsetAlignment",limitsPtr,84);setLimitU64IfDefined("maxUniformBufferBindingSize",limitsPtr,64);setLimitU64IfDefined("maxStorageBufferBindingSize",limitsPtr,72);setLimitU32IfDefined("maxVertexBuffers",limitsPtr,88);setLimitU64IfDefined("maxBufferSize",limitsPtr,96);setLimitU32IfDefined("maxVertexAttributes",limitsPtr,104);setLimitU32IfDefined("maxVertexBufferArrayStride",limitsPtr,108);setLimitU32IfDefined("maxInterStageShaderVariables",limitsPtr,112);setLimitU32IfDefined("maxColorAttachments",limitsPtr,116);setLimitU32IfDefined("maxColorAttachmentBytesPerSample",limitsPtr,120);setLimitU32IfDefined("maxComputeWorkgroupStorageSize",limitsPtr,124);setLimitU32IfDefined("maxComputeInvocationsPerWorkgroup",limitsPtr,128);setLimitU32IfDefined("maxComputeWorkgroupSizeX",limitsPtr,132);setLimitU32IfDefined("maxComputeWorkgroupSizeY",limitsPtr,136);setLimitU32IfDefined("maxComputeWorkgroupSizeZ",limitsPtr,140);setLimitU32IfDefined("maxComputeWorkgroupsPerDimension",limitsPtr,144);setLimitU32IfDefined("maxImmediateSize",limitsPtr,148,true);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var compatibilityModeLimitsPtr=nextInChainPtr;if("maxStorageBuffersInVertexStage"in GPUSupportedLimits.prototype){setLimitU32IfDefined("maxStorageBuffersInVertexStage",compatibilityModeLimitsPtr,16);setLimitU32IfDefined("maxStorageTexturesInVertexStage",compatibilityModeLimitsPtr,20);setLimitU32IfDefined("maxStorageBuffersInFragmentStage",compatibilityModeLimitsPtr,24);setLimitU32IfDefined("maxStorageTexturesInFragmentStage",compatibilityModeLimitsPtr,28)}}desc["requiredLimits"]=requiredLimits}var defaultQueuePtr=Number((growMemViews(),HEAPU64)[(descriptor+48)/8]);if(defaultQueuePtr){var defaultQueueDesc={label:WebGPU.makeStringFromOptionalStringView(defaultQueuePtr+8)};desc["defaultQueue"]=defaultQueueDesc}desc["label"]=WebGPU.makeStringFromOptionalStringView(descriptor+8)}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,adapter.requestDevice(desc).then(device=>{runtimeKeepalivePop();callUserCallback(()=>{WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);devicePtr=BigInt(devicePtr);WebGPU.Internals.futureInsert(deviceLostFutureId,device.lost.then(info=>{callUserCallback(()=>{device.onuncapturederror=ev=>{};var sp=stackSave();var messagePtr=stringToUTF8OnStack(info.message);_emwgpuOnDeviceLostCompleted(deviceLostFutureId,emwgpuStringToInt_DeviceLostReason[info.reason],BigInt(messagePtr));stackRestore(sp)})}));device.onuncapturederror=ev=>{var type=5;if(ev.error instanceof GPUValidationError)type=2;else if(ev.error instanceof GPUOutOfMemoryError)type=3;else if(ev.error instanceof GPUInternalError)type=4;var sp=stackSave();var messagePtr=stringToUTF8OnStack(ev.error.message);_emwgpuOnUncapturedError(BigInt(devicePtr),type,BigInt(messagePtr));stackRestore(sp)};_emwgpuOnRequestDeviceCompleted(futureId,1,BigInt(devicePtr),0n)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestDeviceCompleted(futureId,3,BigInt(devicePtr),BigInt(messagePtr));if(deviceLostFutureId){_emwgpuOnDeviceLostCompleted(deviceLostFutureId,4,BigInt(messagePtr))}stackRestore(sp)})}))}function _emwgpuBufferDestroy(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(onUnmap){for(var i=0;i{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};var _emwgpuBufferGetConstMappedRange=function(bufferPtr,offset,size){bufferPtr=bigintToI53Checked(bufferPtr);offset=bigintToI53Checked(offset);size=bigintToI53Checked(size);var ret=(()=>{var buffer=WebGPU.getJsObject(bufferPtr);if(size==-1)size=undefined;var mapped;try{mapped=buffer.getMappedRange(offset,size)}catch(ex){return 0n}var data=_memalign(16,mapped.byteLength);(growMemViews(),HEAPU8).set(new Uint8Array(mapped),data);WebGPU.Internals.bufferOnUnmaps[bufferPtr].push(()=>_free(data));return data})();return BigInt(ret)};var _emwgpuBufferMapAsync=function(bufferPtr,futureId,mode,offset,size){bufferPtr=bigintToI53Checked(bufferPtr);futureId=bigintToI53Checked(futureId);mode=bigintToI53Checked(mode);offset=bigintToI53Checked(offset);size=bigintToI53Checked(size);var buffer=WebGPU.getJsObject(bufferPtr);WebGPU.Internals.bufferOnUnmaps[bufferPtr]=[];if(size==-1)size=undefined;runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,buffer.mapAsync(mode,offset,size).then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnMapAsyncCompleted(futureId,1,0n)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);var status=ex.name==="AbortError"?4:ex.name==="OperationError"?3:0;_emwgpuOnMapAsyncCompleted(futureId,status,BigInt(messagePtr));delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]})}))};function _emwgpuBufferUnmap(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(!onUnmap){return}for(var i=0;i{const device=WebGPU.getJsObject(devicePtr);device.onuncapturederror=null;device.destroy()};function _emwgpuInstanceRequestAdapter(instancePtr,futureId,options,adapterPtr){instancePtr=bigintToI53Checked(instancePtr);futureId=bigintToI53Checked(futureId);options=bigintToI53Checked(options);adapterPtr=bigintToI53Checked(adapterPtr);var opts;if(options){opts={featureLevel:WebGPU.FeatureLevel[(growMemViews(),HEAP32)[(options+8)/4]],powerPreference:WebGPU.PowerPreference[(growMemViews(),HEAP32)[(options+12)/4]],forceFallbackAdapter:!!(growMemViews(),HEAPU32)[(options+16)/4]};var nextInChainPtr=Number((growMemViews(),HEAPU64)[options/8]);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var webxrOptions=nextInChainPtr;opts.xrCompatible=!!(growMemViews(),HEAPU32)[(webxrOptions+16)/4]}}if(!("gpu"in navigator)){var sp=stackSave();var messagePtr=stringToUTF8OnStack("WebGPU not available on this browser (navigator.gpu is not available)");_emwgpuOnRequestAdapterCompleted(futureId,3,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp);return}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,navigator.gpu.requestAdapter(opts).then(adapter=>{runtimeKeepalivePop();callUserCallback(()=>{if(adapter){WebGPU.Internals.jsObjectInsert(adapterPtr,adapter);_emwgpuOnRequestAdapterCompleted(futureId,1,BigInt(adapterPtr),0n)}else{var sp=stackSave();var messagePtr=stringToUTF8OnStack("WebGPU not available on this browser (requestAdapter returned null)");_emwgpuOnRequestAdapterCompleted(futureId,3,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp)}})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestAdapterCompleted(futureId,4,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp)})}))}var _emwgpuQueueOnSubmittedWorkDone=function(queuePtr,futureId){queuePtr=bigintToI53Checked(queuePtr);futureId=bigintToI53Checked(futureId);var queue=WebGPU.getJsObject(queuePtr);runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,queue.onSubmittedWorkDone().then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnWorkDoneCompleted(futureId,1)})}))};var _emwgpuWaitAny=function(futurePtr,futureCount,timeoutMSPtr){futurePtr=bigintToI53Checked(futurePtr);futureCount=bigintToI53Checked(futureCount);timeoutMSPtr=bigintToI53Checked(timeoutMSPtr);return Asyncify.handleAsync(async()=>{var promises=[];if(timeoutMSPtr){var timeoutMS=(growMemViews(),HEAP32)[timeoutMSPtr/4];promises.length=futureCount+1;promises[futureCount]=new Promise(resolve=>setTimeout(resolve,timeoutMS,0))}else{promises.length=futureCount}for(var i=0;ithisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.language||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(15,0,1,__environ,environ_buf);__environ=bigintToI53Checked(__environ);environ_buf=bigintToI53Checked(environ_buf);var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;(growMemViews(),HEAPU64)[(__environ+envp)/8]=BigInt(ptr);bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=8}return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(16,0,1,penviron_count,penviron_buf_size);penviron_count=bigintToI53Checked(penviron_count);penviron_buf_size=bigintToI53Checked(penviron_buf_size);var strings=getEnvStrings();(growMemViews(),HEAPU64)[penviron_count/8]=BigInt(strings.length);var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}(growMemViews(),HEAPU64)[penviron_buf_size/8]=BigInt(bufSize);return 0}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(17,0,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i{var ret=0;for(var i=0;i=0){(growMemViews(),HEAP32)[(featuresPtr+offset)/4]=featureEnumValue;offset+=4;numFeatures++}}(growMemViews(),HEAPU64)[(supportedFeatures+8)/8]=BigInt(featuresPtr);(growMemViews(),HEAPU64)[supportedFeatures/8]=BigInt(numFeatures)}function _wgpuAdapterGetInfo(adapterPtr,info){adapterPtr=bigintToI53Checked(adapterPtr);info=bigintToI53Checked(info);var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillAdapterInfoStruct(adapter.info,info);return 1}function _wgpuAdapterGetLimits(adapterPtr,limitsOutPtr){adapterPtr=bigintToI53Checked(adapterPtr);limitsOutPtr=bigintToI53Checked(limitsOutPtr);var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillLimitStruct(adapter.limits,limitsOutPtr);return 1}function _wgpuAdapterHasFeature(adapterPtr,featureEnumValue){adapterPtr=bigintToI53Checked(adapterPtr);var adapter=WebGPU.getJsObject(adapterPtr);return adapter.features.has(WebGPU.FeatureName[featureEnumValue])}var _wgpuBufferGetSize=function(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var ret=(()=>{var buffer=WebGPU.getJsObject(bufferPtr);return buffer.size})();return BigInt(ret)};var _wgpuCommandEncoderBeginComputePass=function(encoderPtr,descriptor){encoderPtr=bigintToI53Checked(encoderPtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8),timestampWrites:WebGPU.makePassTimestampWrites(Number((growMemViews(),HEAPU64)[(descriptor+24)/8]))}}var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateComputePassEncoder(0n);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.beginComputePass(desc));return ptr})();return BigInt(ret)};function _wgpuCommandEncoderCopyBufferToBuffer(encoderPtr,srcPtr,srcOffset,dstPtr,dstOffset,size){encoderPtr=bigintToI53Checked(encoderPtr);srcPtr=bigintToI53Checked(srcPtr);srcOffset=bigintToI53Checked(srcOffset);dstPtr=bigintToI53Checked(dstPtr);dstOffset=bigintToI53Checked(dstOffset);size=bigintToI53Checked(size);var commandEncoder=WebGPU.getJsObject(encoderPtr);var src=WebGPU.getJsObject(srcPtr);var dst=WebGPU.getJsObject(dstPtr);commandEncoder.copyBufferToBuffer(src,srcOffset,dst,dstOffset,size)}var _wgpuCommandEncoderFinish=function(encoderPtr,descriptor){encoderPtr=bigintToI53Checked(encoderPtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateCommandBuffer(0n);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.finish());return ptr})();return BigInt(ret)};function _wgpuComputePassEncoderDispatchWorkgroups(passPtr,x,y,z){passPtr=bigintToI53Checked(passPtr);var pass=WebGPU.getJsObject(passPtr);pass.dispatchWorkgroups(x,y,z)}function _wgpuComputePassEncoderEnd(passPtr){passPtr=bigintToI53Checked(passPtr);var pass=WebGPU.getJsObject(passPtr);pass.end()}function _wgpuComputePassEncoderSetBindGroup(passPtr,groupIndex,groupPtr,dynamicOffsetCount,dynamicOffsetsPtr){passPtr=bigintToI53Checked(passPtr);groupPtr=bigintToI53Checked(groupPtr);dynamicOffsetCount=bigintToI53Checked(dynamicOffsetCount);dynamicOffsetsPtr=bigintToI53Checked(dynamicOffsetsPtr);var pass=WebGPU.getJsObject(passPtr);var group=WebGPU.getJsObject(groupPtr);if(dynamicOffsetCount==0){pass.setBindGroup(groupIndex,group)}else{pass.setBindGroup(groupIndex,group,(growMemViews(),HEAPU32),dynamicOffsetsPtr/4,dynamicOffsetCount)}}function _wgpuComputePassEncoderSetPipeline(passPtr,pipelinePtr){passPtr=bigintToI53Checked(passPtr);pipelinePtr=bigintToI53Checked(pipelinePtr);var pass=WebGPU.getJsObject(passPtr);var pipeline=WebGPU.getJsObject(pipelinePtr);pass.setPipeline(pipeline)}var _wgpuComputePipelineGetBindGroupLayout=function(pipelinePtr,groupIndex){pipelinePtr=bigintToI53Checked(pipelinePtr);var ret=(()=>{var pipeline=WebGPU.getJsObject(pipelinePtr);var ptr=_emwgpuCreateBindGroupLayout(0n);WebGPU.Internals.jsObjectInsert(ptr,pipeline.getBindGroupLayout(groupIndex));return ptr})();return BigInt(ret)};var _wgpuDeviceCreateBindGroup=function(devicePtr,descriptor){devicePtr=bigintToI53Checked(devicePtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{function makeEntry(entryPtr){var bufferPtr=Number((growMemViews(),HEAPU64)[(entryPtr+16)/8]);var samplerPtr=Number((growMemViews(),HEAPU64)[(entryPtr+40)/8]);var textureViewPtr=Number((growMemViews(),HEAPU64)[(entryPtr+48)/8]);var externalTexturePtr=0;WebGPU.iterateExtensions(entryPtr,{327681:ptr=>{externalTexturePtr=Number((growMemViews(),HEAPU64)[(ptr+16)/8])}});var resource;if(bufferPtr){var size=readI53FromI64(entryPtr+32);if(size==-1)size=undefined;resource={buffer:WebGPU.getJsObject(bufferPtr),offset:readI53FromI64(entryPtr+24),size}}else{resource=WebGPU.getJsObject(samplerPtr||textureViewPtr||externalTexturePtr)}return{binding:(growMemViews(),HEAPU32)[(entryPtr+8)/4],resource}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i{var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8)}}var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateCommandEncoder(0n);WebGPU.Internals.jsObjectInsert(ptr,device.createCommandEncoder(desc));return ptr})();return BigInt(ret)};var _wgpuDeviceCreateComputePipeline=function(devicePtr,descriptor){devicePtr=bigintToI53Checked(devicePtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var desc=WebGPU.makeComputePipelineDesc(descriptor);var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateComputePipeline(0n);WebGPU.Internals.jsObjectInsert(ptr,device.createComputePipeline(desc));return ptr})();return BigInt(ret)};var _wgpuQueueSubmit=function(queuePtr,commandCount,commands){queuePtr=bigintToI53Checked(queuePtr);commandCount=bigintToI53Checked(commandCount);commands=bigintToI53Checked(commands);var queue=WebGPU.getJsObject(queuePtr);var cmds=Array.from((growMemViews(),HEAP64).subarray(commands/8,(commands+commandCount*8)/8),id=>WebGPU.getJsObject(id));queue.submit(cmds)};function _wgpuQueueWriteBuffer(queuePtr,bufferPtr,bufferOffset,data,size){queuePtr=bigintToI53Checked(queuePtr);bufferPtr=bigintToI53Checked(bufferPtr);bufferOffset=bigintToI53Checked(bufferOffset);data=bigintToI53Checked(data);size=bigintToI53Checked(size);var queue=WebGPU.getJsObject(queuePtr);var buffer=WebGPU.getJsObject(bufferPtr);var subarray=(growMemViews(),HEAPU8).subarray(data,data+size);queue.writeBuffer(buffer,bufferOffset,subarray,0,size)}var Asyncify={instrumentWasmImports(imports){var importPattern=/^(invoke_.*|__asyncjs__.*)$/;for(let[x,original]of Object.entries(imports)){if(typeof original=="function"){let isAsyncifyImport=original.isAsync||importPattern.test(x);if(isAsyncifyImport){imports[x]=original=new WebAssembly.Suspending(original)}}}},instrumentFunction(original){var wrapper=(...args)=>original(...args);return wrapper},instrumentWasmExports(exports){var exportPattern=/^(wllama_start|wllama_action|main|__main_argc_argv)$/;Asyncify.asyncExports=new Set;var ret={};for(let[x,original]of Object.entries(exports)){if(typeof original=="function"){let isAsyncifyExport=exportPattern.test(x);if(isAsyncifyExport){Asyncify.asyncExports.add(original);original=Asyncify.makeAsyncFunction(original)}var wrapper=Asyncify.instrumentFunction(original);ret[x]=wrapper}else{ret[x]=original}}return ret},asyncExports:null,isAsyncExport(func){return Asyncify.asyncExports?.has(func)},handleAsync:async startAsync=>{runtimeKeepalivePush();try{return await startAsync()}finally{runtimeKeepalivePop()}},handleSleep:startAsync=>Asyncify.handleAsync(()=>new Promise(startAsync)),makeAsyncFunction(original){return WebAssembly.promising(original)}};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{(growMemViews(),HEAP8).set(array,buffer)};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={pointer:p=>BigInt(p),string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return BigInt(ret)},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return BigInt(ret)}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(Number(ret))}if(returnType==="pointer")return Number(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var FS_createPath=(...args)=>FS.createPath(...args);var FS_unlink=(...args)=>FS.unlink(...args);var FS_createLazyFile=(...args)=>FS.createLazyFile(...args);var FS_createDevice=(...args)=>FS.createDevice(...args);PThread.init();FS.createPreloadedFile=FS_createPreloadedFile;FS.preloadFile=FS_preloadFile;FS.staticInit();{initMemory();if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(Module["preloadPlugins"])preloadPlugins=Module["preloadPlugins"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()()}}}Module["mmapAlloc"]=mmapAlloc;Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["FS_preloadFile"]=FS_preloadFile;Module["FS_unlink"]=FS_unlink;Module["FS_createPath"]=FS_createPath;Module["FS_createDevice"]=FS_createDevice;Module["FS"]=FS;Module["FS_createDataFile"]=FS_createDataFile;Module["FS_createLazyFile"]=FS_createLazyFile;Module["MEMFS"]=MEMFS;var proxiedFunctionTable=[_proc_exit,exitOnMainThread,pthreadCreateProxied,___syscall_fcntl64,___syscall_fstat64,___syscall_getcwd,___syscall_getdents64,___syscall_ioctl,___syscall_lstat64,___syscall_newfstatat,___syscall_openat,___syscall_stat64,__mmap_js,__munmap_js,__setitimer_js,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function __asyncjs__js_file_read(path_ptr,offset,req_size,out_ptr){return Asyncify.handleAsync(async()=>await _wllama_js_file_read(UTF8ToString(Number(path_ptr)),Number(offset),Number(req_size),Number(out_ptr)))}__asyncjs__js_file_read.sig="jjjjj";var _malloc,_free,_wllama_malloc,_wllama_start,_wllama_action,_wllama_exit,_wllama_debug,_main,_emwgpuCreateBindGroup,_emwgpuCreateBindGroupLayout,_emwgpuCreateCommandBuffer,_emwgpuCreateCommandEncoder,_emwgpuCreateComputePassEncoder,_emwgpuCreateComputePipeline,_emwgpuCreateExternalTexture,_emwgpuCreatePipelineLayout,_emwgpuCreateQuerySet,_emwgpuCreateRenderBundle,_emwgpuCreateRenderBundleEncoder,_emwgpuCreateRenderPassEncoder,_emwgpuCreateRenderPipeline,_emwgpuCreateSampler,_emwgpuCreateSurface,_emwgpuCreateTexture,_emwgpuCreateTextureView,_emwgpuCreateAdapter,_emwgpuCreateBuffer,_emwgpuCreateDevice,_emwgpuCreateQueue,_emwgpuCreateShaderModule,_emwgpuOnDeviceLostCompleted,_emwgpuOnMapAsyncCompleted,_emwgpuOnRequestAdapterCompleted,_emwgpuOnRequestDeviceCompleted,_emwgpuOnWorkDoneCompleted,_emwgpuOnUncapturedError,__emscripten_tls_init,_pthread_self,_emscripten_builtin_memalign,__emscripten_thread_init,__emscripten_thread_crashed,__emscripten_run_js_on_main_thread,__emscripten_thread_free_data,__emscripten_thread_exit,__emscripten_timeout,__emscripten_check_mailbox,_memalign,___trap,_emscripten_stack_set_limits,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,__indirect_function_table,wasmTable;function assignWasmExports(wasmExports){_malloc=wasmExports["malloc"];_free=wasmExports["free"];_wllama_malloc=Module["_wllama_malloc"]=wasmExports["wllama_malloc"];_wllama_start=Module["_wllama_start"]=wasmExports["wllama_start"];_wllama_action=Module["_wllama_action"]=wasmExports["wllama_action"];_wllama_exit=Module["_wllama_exit"]=wasmExports["wllama_exit"];_wllama_debug=Module["_wllama_debug"]=wasmExports["wllama_debug"];_main=Module["_main"]=wasmExports["main"];_emwgpuCreateBindGroup=wasmExports["emwgpuCreateBindGroup"];_emwgpuCreateBindGroupLayout=wasmExports["emwgpuCreateBindGroupLayout"];_emwgpuCreateCommandBuffer=wasmExports["emwgpuCreateCommandBuffer"];_emwgpuCreateCommandEncoder=wasmExports["emwgpuCreateCommandEncoder"];_emwgpuCreateComputePassEncoder=wasmExports["emwgpuCreateComputePassEncoder"];_emwgpuCreateComputePipeline=wasmExports["emwgpuCreateComputePipeline"];_emwgpuCreateExternalTexture=wasmExports["emwgpuCreateExternalTexture"];_emwgpuCreatePipelineLayout=wasmExports["emwgpuCreatePipelineLayout"];_emwgpuCreateQuerySet=wasmExports["emwgpuCreateQuerySet"];_emwgpuCreateRenderBundle=wasmExports["emwgpuCreateRenderBundle"];_emwgpuCreateRenderBundleEncoder=wasmExports["emwgpuCreateRenderBundleEncoder"];_emwgpuCreateRenderPassEncoder=wasmExports["emwgpuCreateRenderPassEncoder"];_emwgpuCreateRenderPipeline=wasmExports["emwgpuCreateRenderPipeline"];_emwgpuCreateSampler=wasmExports["emwgpuCreateSampler"];_emwgpuCreateSurface=wasmExports["emwgpuCreateSurface"];_emwgpuCreateTexture=wasmExports["emwgpuCreateTexture"];_emwgpuCreateTextureView=wasmExports["emwgpuCreateTextureView"];_emwgpuCreateAdapter=wasmExports["emwgpuCreateAdapter"];_emwgpuCreateBuffer=wasmExports["emwgpuCreateBuffer"];_emwgpuCreateDevice=wasmExports["emwgpuCreateDevice"];_emwgpuCreateQueue=wasmExports["emwgpuCreateQueue"];_emwgpuCreateShaderModule=wasmExports["emwgpuCreateShaderModule"];_emwgpuOnDeviceLostCompleted=wasmExports["emwgpuOnDeviceLostCompleted"];_emwgpuOnMapAsyncCompleted=wasmExports["emwgpuOnMapAsyncCompleted"];_emwgpuOnRequestAdapterCompleted=wasmExports["emwgpuOnRequestAdapterCompleted"];_emwgpuOnRequestDeviceCompleted=wasmExports["emwgpuOnRequestDeviceCompleted"];_emwgpuOnWorkDoneCompleted=wasmExports["emwgpuOnWorkDoneCompleted"];_emwgpuOnUncapturedError=wasmExports["emwgpuOnUncapturedError"];__emscripten_tls_init=wasmExports["_emscripten_tls_init"];_pthread_self=wasmExports["pthread_self"];_emscripten_builtin_memalign=wasmExports["emscripten_builtin_memalign"];__emscripten_thread_init=wasmExports["_emscripten_thread_init"];__emscripten_thread_crashed=wasmExports["_emscripten_thread_crashed"];__emscripten_run_js_on_main_thread=wasmExports["_emscripten_run_js_on_main_thread"];__emscripten_thread_free_data=wasmExports["_emscripten_thread_free_data"];__emscripten_thread_exit=wasmExports["_emscripten_thread_exit"];__emscripten_timeout=wasmExports["_emscripten_timeout"];__emscripten_check_mailbox=wasmExports["_emscripten_check_mailbox"];_memalign=wasmExports["memalign"];___trap=wasmExports["__trap"];_emscripten_stack_set_limits=wasmExports["emscripten_stack_set_limits"];__emscripten_stack_restore=wasmExports["_emscripten_stack_restore"];__emscripten_stack_alloc=wasmExports["_emscripten_stack_alloc"];_emscripten_stack_get_current=wasmExports["emscripten_stack_get_current"];__indirect_function_table=wasmTable=wasmExports["__indirect_function_table"]}var wasmImports;function assignWasmImports(){wasmImports={__asyncjs__js_file_read,__pthread_create_js:___pthread_create_js,__syscall_fcntl64:___syscall_fcntl64,__syscall_getcwd:___syscall_getcwd,__syscall_getdents64:___syscall_getdents64,__syscall_ioctl:___syscall_ioctl,__syscall_openat:___syscall_openat,__syscall_stat64:___syscall_stat64,_abort_js:__abort_js,_emscripten_init_main_thread_js:__emscripten_init_main_thread_js,_emscripten_notify_mailbox_postmessage:__emscripten_notify_mailbox_postmessage,_emscripten_receive_on_main_thread_js:__emscripten_receive_on_main_thread_js,_emscripten_runtime_keepalive_clear:__emscripten_runtime_keepalive_clear,_emscripten_thread_cleanup:__emscripten_thread_cleanup,_emscripten_thread_mailbox_await:__emscripten_thread_mailbox_await,_emscripten_thread_set_strongref:__emscripten_thread_set_strongref,_localtime_js:__localtime_js,_mmap_js:__mmap_js,_munmap_js:__munmap_js,_setitimer_js:__setitimer_js,_tzset_js:__tzset_js,clock_time_get:_clock_time_get,emscripten_check_blocking_allowed:_emscripten_check_blocking_allowed,emscripten_date_now:_emscripten_date_now,emscripten_exit_with_live_runtime:_emscripten_exit_with_live_runtime,emscripten_get_heap_max:_emscripten_get_heap_max,emscripten_get_now:_emscripten_get_now,emscripten_has_asyncify:_emscripten_has_asyncify,emscripten_num_logical_cores:_emscripten_num_logical_cores,emscripten_resize_heap:_emscripten_resize_heap,emwgpuAdapterRequestDevice:_emwgpuAdapterRequestDevice,emwgpuBufferDestroy:_emwgpuBufferDestroy,emwgpuBufferGetConstMappedRange:_emwgpuBufferGetConstMappedRange,emwgpuBufferMapAsync:_emwgpuBufferMapAsync,emwgpuBufferUnmap:_emwgpuBufferUnmap,emwgpuDelete:_emwgpuDelete,emwgpuDeviceCreateBuffer:_emwgpuDeviceCreateBuffer,emwgpuDeviceCreateShaderModule:_emwgpuDeviceCreateShaderModule,emwgpuDeviceDestroy:_emwgpuDeviceDestroy,emwgpuInstanceRequestAdapter:_emwgpuInstanceRequestAdapter,emwgpuQueueOnSubmittedWorkDone:_emwgpuQueueOnSubmittedWorkDone,emwgpuWaitAny:_emwgpuWaitAny,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,exit:_exit,fd_close:_fd_close,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,memory:wasmMemory,proc_exit:_proc_exit,random_get:_random_get,wgpuAdapterGetFeatures:_wgpuAdapterGetFeatures,wgpuAdapterGetInfo:_wgpuAdapterGetInfo,wgpuAdapterGetLimits:_wgpuAdapterGetLimits,wgpuAdapterHasFeature:_wgpuAdapterHasFeature,wgpuBufferGetSize:_wgpuBufferGetSize,wgpuCommandEncoderBeginComputePass:_wgpuCommandEncoderBeginComputePass,wgpuCommandEncoderCopyBufferToBuffer:_wgpuCommandEncoderCopyBufferToBuffer,wgpuCommandEncoderFinish:_wgpuCommandEncoderFinish,wgpuComputePassEncoderDispatchWorkgroups:_wgpuComputePassEncoderDispatchWorkgroups,wgpuComputePassEncoderEnd:_wgpuComputePassEncoderEnd,wgpuComputePassEncoderSetBindGroup:_wgpuComputePassEncoderSetBindGroup,wgpuComputePassEncoderSetPipeline:_wgpuComputePassEncoderSetPipeline,wgpuComputePipelineGetBindGroupLayout:_wgpuComputePipelineGetBindGroupLayout,wgpuDeviceCreateBindGroup:_wgpuDeviceCreateBindGroup,wgpuDeviceCreateCommandEncoder:_wgpuDeviceCreateCommandEncoder,wgpuDeviceCreateComputePipeline:_wgpuDeviceCreateComputePipeline,wgpuQueueSubmit:_wgpuQueueSubmit,wgpuQueueWriteBuffer:_wgpuQueueWriteBuffer}}function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_pp=f=>a0=>Number(f(BigInt(a0)));var makeWrapper__p=f=>a0=>f(BigInt(a0));var makeWrapper___PP=f=>(a0,a1,a2)=>f(a0,BigInt(a1?a1:0),BigInt(a2?a2:0));var makeWrapper_p=f=>()=>Number(f());var makeWrapper_ppp=f=>(a0,a1)=>Number(f(BigInt(a0),BigInt(a1)));var makeWrapper__pp_ppp=f=>(a0,a1,a2,a3,a4,a5)=>f(BigInt(a0),BigInt(a1),a2,BigInt(a3),BigInt(a4),BigInt(a5));var makeWrapper__p_____=f=>(a0,a1,a2,a3,a4,a5)=>f(BigInt(a0),a1,a2,a3,a4,a5);var makeWrapper___p_p_=f=>(a0,a1,a2,a3,a4)=>f(a0,BigInt(a1),a2,BigInt(a3),a4);var makeWrapper__pp=f=>(a0,a1)=>f(BigInt(a0),BigInt(a1));wasmExports["malloc"]=makeWrapper_pp(wasmExports["malloc"]);wasmExports["free"]=makeWrapper__p(wasmExports["free"]);wasmExports["main"]=makeWrapper___PP(wasmExports["main"]);wasmExports["pthread_self"]=makeWrapper_p(wasmExports["pthread_self"]);wasmExports["emscripten_builtin_memalign"]=makeWrapper_ppp(wasmExports["emscripten_builtin_memalign"]);wasmExports["_emscripten_run_callback_on_thread"]=makeWrapper__pp_ppp(wasmExports["_emscripten_run_callback_on_thread"]);wasmExports["_emscripten_thread_init"]=makeWrapper__p_____(wasmExports["_emscripten_thread_init"]);wasmExports["_emscripten_run_js_on_main_thread"]=makeWrapper___p_p_(wasmExports["_emscripten_run_js_on_main_thread"]);wasmExports["_emscripten_thread_free_data"]=makeWrapper__p(wasmExports["_emscripten_thread_free_data"]);wasmExports["_emscripten_thread_exit"]=makeWrapper__p(wasmExports["_emscripten_thread_exit"]);wasmExports["memalign"]=makeWrapper_ppp(wasmExports["memalign"]);wasmExports["emscripten_stack_set_limits"]=makeWrapper__pp(wasmExports["emscripten_stack_set_limits"]);wasmExports["_emscripten_stack_restore"]=makeWrapper__p(wasmExports["_emscripten_stack_restore"]);wasmExports["_emscripten_stack_alloc"]=makeWrapper_pp(wasmExports["_emscripten_stack_alloc"]);wasmExports["emscripten_stack_get_current"]=makeWrapper_p(wasmExports["emscripten_stack_get_current"]);return wasmExports}async function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,BigInt(argv));ret=await ret;exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){dependenciesFulfilled=run;return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}async function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();Module["onRuntimeInitialized"]?.();var noInitialRun=Module["noInitialRun"]||false;if(!noInitialRun)await callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}var wasmExports;if(!ENVIRONMENT_IS_PTHREAD){createWasm();run()} +var Module=typeof Module!="undefined"?Module:{};var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";var ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&self.name?.startsWith("em-pthread");if(ENVIRONMENT_IS_NODE){var worker_threads=require("worker_threads");global.Worker=worker_threads.Worker;ENVIRONMENT_IS_WORKER=!worker_threads.isMainThread;ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&worker_threads["workerData"]=="em-pthread"}var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=globalThis.document?.currentScript?.src;if(typeof __filename!="undefined"){_scriptName=__filename}else if(ENVIRONMENT_IS_WORKER){_scriptName=self.location.href}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");scriptDirectory=__dirname+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module}quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}if(!ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var defaultPrint=console.log.bind(console);var defaultPrintErr=console.error.bind(console);if(ENVIRONMENT_IS_NODE){var utils=require("util");var stringify=a=>typeof a=="object"?utils.inspect(a):a;defaultPrint=(...args)=>fs.writeSync(1,args.map(stringify).join(" ")+"\n");defaultPrintErr=(...args)=>fs.writeSync(2,args.map(stringify).join(" ")+"\n")}var out=defaultPrint;var err=defaultPrintErr;var wasmBinary;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var isFileURI=filename=>filename.startsWith("file://");function growMemViews(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}}if(ENVIRONMENT_IS_NODE&&ENVIRONMENT_IS_PTHREAD){var parentPort=worker_threads["parentPort"];parentPort.on("message",msg=>global.onmessage?.({data:msg}));Object.assign(globalThis,{self:global,postMessage:msg=>parentPort["postMessage"](msg)});process.on("uncaughtException",err=>{postMessage({cmd:"uncaughtException",error:err});process.exit(1)})}var startWorker;if(ENVIRONMENT_IS_PTHREAD){var initializedJS=false;self.onunhandledrejection=e=>{throw e.reason||e};async function handleMessage(e){try{var msgData=e["data"];var cmd=msgData.cmd;if(cmd==="load"){let messageQueue=[];self.onmessage=e=>messageQueue.push(e);startWorker=()=>{postMessage({cmd:"loaded"});for(let msg of messageQueue){handleMessage(msg)}self.onmessage=handleMessage};for(const handler of msgData.handlers){if(!Module[handler]||Module[handler].proxy){Module[handler]=(...args)=>{postMessage({cmd:"callHandler",handler,args})};if(handler=="print")out=Module[handler];if(handler=="printErr")err=Module[handler]}}wasmMemory=msgData.wasmMemory;updateMemoryViews();wasmModule=msgData.wasmModule;createWasm();run()}else if(cmd==="run"){establishStackSpace(msgData.pthread_ptr);__emscripten_thread_init(msgData.pthread_ptr,0,0,1,0,0);PThread.threadInitTLS();__emscripten_thread_mailbox_await(msgData.pthread_ptr);if(!initializedJS){initializedJS=true}try{await invokeEntryPoint(msgData.start_routine,msgData.arg)}catch(ex){if(ex!="unwind"){throw ex}}}else if(msgData.target==="setimmediate"){}else if(cmd==="checkMailbox"){if(initializedJS){checkMailbox()}}else if(cmd){err(`worker: received unknown command ${cmd}`);err(msgData)}}catch(ex){__emscripten_thread_crashed();throw ex}}self.onmessage=handleMessage}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function initMemory(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||134217728;wasmMemory=new WebAssembly.Memory({initial:BigInt(INITIAL_MEMORY/65536),maximum:65536n,shared:true,address:"i64"})}updateMemoryViews()}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return startWorker();if(!Module["noFSInit"]&&!FS.initialized)FS.init();TTY.init();wasmExports["__wasm_call_ctors"]();FS.ignorePermissions=false}function preMain(){}function postRun(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";if(runtimeInitialized){___trap()}var e=new WebAssembly.RuntimeError(what);throw e}var wasmBinaryFile;function findWasmBinary(){return locateFile("wllama.wasm")}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){assignWasmImports();if(!wasmImports.__instrumented){wasmImports.__instrumented=true;Asyncify.instrumentWasmImports(wasmImports)}var imports={env:wasmImports,wasi_snapshot_preview1:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmExports=applySignatureConversions(wasmExports);registerTLSInit(wasmExports["_emscripten_tls_init"]);assignWasmExports(wasmExports);wasmModule=module;removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){return receiveInstance(result["instance"],result["module"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}if(ENVIRONMENT_IS_PTHREAD){var instance=new WebAssembly.Instance(wasmModule,getWasmImports());return receiveInstance(instance,wasmModule)}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var terminateWorker=worker=>{worker.terminate();worker.onmessage=e=>{}};var cleanupThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];PThread.returnWorkerToPool(worker)};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}};var addRunDependency=id=>{runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)};var spawnThread=threadParams=>{var worker=PThread.getNewWorker();if(!worker){return 6}PThread.runningWorkers.push(worker);PThread.pthreads[threadParams.pthread_ptr]=worker;worker.pthread_ptr=threadParams.pthread_ptr;var msg={cmd:"run",start_routine:threadParams.startRoutine,arg:threadParams.arg,pthread_ptr:threadParams.pthread_ptr};if(ENVIRONMENT_IS_NODE){worker.unref()}worker.postMessage(msg,threadParams.transferList);return 0};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var stackSave=()=>_emscripten_stack_get_current();var stackRestore=val=>__emscripten_stack_restore(val);var stackAlloc=sz=>__emscripten_stack_alloc(sz);var proxyToMainThread=(funcIndex,emAsmAddr,sync,...callArgs)=>{var serializedNumCallArgs=callArgs.length*2;var sp=stackSave();var args=stackAlloc(serializedNumCallArgs*8);var b=args/8;for(var i=0;i{EXITSTATUS=status;if(ENVIRONMENT_IS_PTHREAD){exitOnMainThread(status);throw"unwind"}_proc_exit(status)};var _exit=exitJS;var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init(){if(!ENVIRONMENT_IS_PTHREAD){PThread.initMainThread()}},initMainThread(){var pthreadPoolSize=Module["pthreadPoolSize"];while(pthreadPoolSize--){PThread.allocateUnusedWorker()}addOnPreRun(async()=>{var pthreadPoolReady=PThread.loadWasmModuleToAllWorkers();addRunDependency("loading-workers");await pthreadPoolReady;removeRunDependency("loading-workers")})},terminateAllThreads:()=>{for(var worker of PThread.runningWorkers){terminateWorker(worker)}for(var worker of PThread.unusedWorkers){terminateWorker(worker)}PThread.unusedWorkers=[];PThread.runningWorkers=[];PThread.pthreads={}},returnWorkerToPool:worker=>{var pthread_ptr=worker.pthread_ptr;delete PThread.pthreads[pthread_ptr];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);worker.pthread_ptr=0;__emscripten_thread_free_data(pthread_ptr)},threadInitTLS(){PThread.tlsInitFunctions.forEach(f=>f())},loadWasmModuleToWorker:worker=>new Promise(onFinishedLoading=>{worker.onmessage=e=>{var d=e["data"];var cmd=d.cmd;if(d.targetThread&&d.targetThread!=_pthread_self()){var targetWorker=PThread.pthreads[d.targetThread];if(targetWorker){targetWorker.postMessage(d,d.transferList)}else{err(`Internal error! Worker sent a message "${cmd}" to target pthread ${d.targetThread}, but that thread no longer exists!`)}return}if(cmd==="checkMailbox"){checkMailbox()}else if(cmd==="spawnThread"){spawnThread(d)}else if(cmd==="cleanupThread"){callUserCallback(()=>cleanupThread(d.thread))}else if(cmd==="loaded"){worker.loaded=true;if(ENVIRONMENT_IS_NODE&&!worker.pthread_ptr){worker.unref()}onFinishedLoading(worker)}else if(d.target==="setimmediate"){worker.postMessage(d)}else if(cmd==="uncaughtException"){worker.onerror(d.error)}else if(cmd==="callHandler"){Module[d.handler](...d.args)}else if(cmd){err(`worker sent an unknown command ${cmd}`)}};worker.onerror=e=>{var message="worker sent an error!";err(`${message} ${e.filename}:${e.lineno}: ${e.message}`);throw e};if(ENVIRONMENT_IS_NODE){worker.on("message",data=>worker.onmessage({data}));worker.on("error",e=>worker.onerror(e))}var handlers=[];var knownHandlers=["onExit","onAbort","print","printErr"];for(var handler of knownHandlers){if(Module.propertyIsEnumerable(handler)){handlers.push(handler)}}worker.postMessage({cmd:"load",handlers,wasmMemory,wasmModule})}),async loadWasmModuleToAllWorkers(){if(ENVIRONMENT_IS_PTHREAD){return}let pthreadPoolReady=Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker));return pthreadPoolReady},allocateUnusedWorker(){var worker;var pthreadMainJs=_scriptName;if(Module["mainScriptUrlOrBlob"]){pthreadMainJs=Module["mainScriptUrlOrBlob"];if(typeof pthreadMainJs!="string"){pthreadMainJs=URL.createObjectURL(pthreadMainJs)}}worker=new Worker(pthreadMainJs,{workerData:"em-pthread",name:"em-pthread"});PThread.unusedWorkers.push(worker)},getNewWorker(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);function establishStackSpace(pthread_ptr){var stackHigh=Number((growMemViews(),HEAPU64)[(pthread_ptr+88)/8]);var stackSize=Number((growMemViews(),HEAPU64)[(pthread_ptr+96)/8]);var stackLow=stackHigh-stackSize;_emscripten_stack_set_limits(stackHigh,stackLow);stackRestore(stackHigh)}var wasmTableMirror=[];var getWasmTableEntry=funcPtr=>{funcPtr=Number(funcPtr);var func=wasmTableMirror[funcPtr];if(!func){wasmTableMirror[funcPtr]=func=wasmTable.get(BigInt(funcPtr));if(Asyncify.isAsyncExport(func)){wasmTableMirror[funcPtr]=func=Asyncify.makeAsyncFunction(func)}}return func};var invokeEntryPoint=async(ptr,arg)=>{runtimeKeepaliveCounter=0;noExitRuntime=0;var result=(a1=>WebAssembly.promising(getWasmTableEntry(ptr)).call(null,BigInt(a1)))(arg);function finish(result){if(keepRuntimeAlive()){EXITSTATUS=result;return}__emscripten_thread_exit(result)}result=await result;finish(result)};invokeEntryPoint.isAsync=true;var noExitRuntime=true;var registerTLSInit=tlsInitFunc=>PThread.tlsInitFunctions.push(tlsInitFunc);var wasmMemory;var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>numINT53_MAX?NaN:Number(num);var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.buffer instanceof ArrayBuffer?heapOrArray.subarray(idx,endPtr):heapOrArray.slice(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString((growMemViews(),HEAPU8),ptr,maxBytesToRead,ignoreNul):"";function pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(2,0,1,pthread_ptr,attr,startRoutine,arg);return ___pthread_create_js(pthread_ptr,attr,startRoutine,arg)}var _emscripten_has_threading_support=()=>!!globalThis.SharedArrayBuffer;function ___pthread_create_js(pthread_ptr,attr,startRoutine,arg){pthread_ptr=bigintToI53Checked(pthread_ptr);attr=bigintToI53Checked(attr);startRoutine=bigintToI53Checked(startRoutine);arg=bigintToI53Checked(arg);if(!_emscripten_has_threading_support()){return 6}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg)}if(error)return error;var threadParams={startRoutine,pthread_ptr,arg,transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}var syscallGetVarargP=()=>{var ret=Number((growMemViews(),HEAPU64)[SYSCALLS.varargs/8]);SYSCALLS.varargs+=8;return ret};var syscallGetVarargI=()=>{var ret=(growMemViews(),HEAP32)[+SYSCALLS.varargs/4];SYSCALLS.varargs+=4;return ret};var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\/]+|\/)\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>view=>view.set(crypto.getRandomValues(new Uint8Array(view.byteLength)));var randomFill=view=>{(randomFill=initRandomFill())(view)};var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++}}heap[outIdx]=0;return outIdx-startIdx};var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}}else if(globalThis.window?.prompt){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var zeroMemory=(ptr,size)=>(growMemViews(),HEAPU8).fill(0,ptr,ptr+size);var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(ptr)zeroMemory(ptr,size);return ptr};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of["mode","atime","mtime","ctime"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){if(!MEMFS.doesNotExistError){MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack=""}throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[".","..",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var getUniqueRunDependency=id=>id;var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!="undefined")Browser.init();for(var plugin of preloadPlugins){if(plugin["canHandle"](fullname)){return plugin["handle"](byteArray,fullname)}}return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);addRunDependency(dep);try{var byteArray=url;if(typeof url=="string"){byteArray=await asyncLoad(url)}byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}}finally{removeRunDependency(dep)}};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+"/"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&(512|64)){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}for(var mount of mounts){if(mount.type.syncfs){mount.type.syncfs(mount,populate,done)}else{done(null)}}},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);for(var[hash,current]of Object.entries(FS.nameTable)){while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}}node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name==="."||name===".."){throw new FS.ErrnoError(20)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+="/";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path=="object"){node=path}else{isDirPath=path.endsWith("/");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}if(Module["logReadFiles"]&&!(flags&1)){if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){abort(`Invalid encoding type "${opts.encoding}"`)}var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){buf=UTF8ArrayToString(buf)}FS.close(stream);return buf},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){data=new Uint8Array(intArrayFromString(data,true))}if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{abort("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},"/proc/self/fd")},createStandardStreams(input,output,error){if(input){FS.createDevice("/dev","stdin",input)}else{FS.symlink("/dev/tty","/dev/stdin")}if(output){FS.createDevice("/dev","stdout",null,output)}else{FS.symlink("/dev/tty","/dev/stdout")}if(error){FS.createDevice("/dev","stderr",null,error)}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){FS.initialized=true;input??=Module["stdin"];output??=Module["stdout"];error??=Module["stderr"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)abort("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)abort("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")abort("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(globalThis.XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)abort("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};for(const[key,fn]of Object.entries(node.stream_ops)){stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}}function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,(growMemViews(),HEAP8),ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+"/"+path},writeStat(buf,stat){(growMemViews(),HEAPU32)[buf/4]=stat.dev;(growMemViews(),HEAPU32)[(buf+4)/4]=stat.mode;(growMemViews(),HEAPU64)[(buf+8)/8]=BigInt(stat.nlink);(growMemViews(),HEAPU32)[(buf+16)/4]=stat.uid;(growMemViews(),HEAPU32)[(buf+20)/4]=stat.gid;(growMemViews(),HEAPU32)[(buf+24)/4]=stat.rdev;(growMemViews(),HEAP64)[(buf+32)/8]=BigInt(stat.size);(growMemViews(),HEAP32)[(buf+40)/4]=4096;(growMemViews(),HEAP32)[(buf+44)/4]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();(growMemViews(),HEAP64)[(buf+48)/8]=BigInt(Math.floor(atime/1e3));(growMemViews(),HEAPU64)[(buf+56)/8]=BigInt(atime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+64)/8]=BigInt(Math.floor(mtime/1e3));(growMemViews(),HEAPU64)[(buf+72)/8]=BigInt(mtime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+80)/8]=BigInt(Math.floor(ctime/1e3));(growMemViews(),HEAPU64)[(buf+88)/8]=BigInt(ctime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+96)/8]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){(growMemViews(),HEAPU32)[(buf+8)/4]=stats.bsize;(growMemViews(),HEAPU32)[(buf+72)/4]=stats.bsize;(growMemViews(),HEAP64)[(buf+16)/8]=BigInt(stats.blocks);(growMemViews(),HEAP64)[(buf+24)/8]=BigInt(stats.bfree);(growMemViews(),HEAP64)[(buf+32)/8]=BigInt(stats.bavail);(growMemViews(),HEAP64)[(buf+40)/8]=BigInt(stats.files);(growMemViews(),HEAP64)[(buf+48)/8]=BigInt(stats.ffree);(growMemViews(),HEAPU32)[(buf+56)/4]=stats.fsid;(growMemViews(),HEAPU32)[(buf+80)/4]=stats.flags;(growMemViews(),HEAPU32)[(buf+64)/4]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=(growMemViews(),HEAPU8).slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(3,0,1,fd,cmd,varargs);varargs=bigintToI53Checked(varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 5:{var arg=syscallGetVarargP();var offset=0;(growMemViews(),HEAP16)[(arg+offset)/2]=2;return 0}case 6:case 7:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(4,0,1,fd,buf);buf=bigintToI53Checked(buf);try{return SYSCALLS.writeStat(buf,FS.fstat(fd))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,(growMemViews(),HEAPU8),outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(5,0,1,buf,size);buf=bigintToI53Checked(buf);size=bigintToI53Checked(size);try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(sizeabort("");function __emscripten_init_main_thread_js(tb){tb=bigintToI53Checked(tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1,!ENVIRONMENT_IS_WEB,65536,false);PThread.threadInitTLS()}var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var maybeExit=()=>{if(!keepRuntimeAlive()){try{if(ENVIRONMENT_IS_PTHREAD){if(_pthread_self())__emscripten_thread_exit(EXITSTATUS);return}_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};function __emscripten_thread_mailbox_await(pthread_ptr){pthread_ptr=bigintToI53Checked(pthread_ptr);if(Atomics.waitAsync){var wait=Atomics.waitAsync((growMemViews(),HEAP32),pthread_ptr/4,pthread_ptr);wait.value.then(checkMailbox);var waitingAsync=pthread_ptr+228;Atomics.store((growMemViews(),HEAP32),waitingAsync/4,1)}}var checkMailbox=()=>callUserCallback(()=>{var pthread_ptr=_pthread_self();if(pthread_ptr){__emscripten_thread_mailbox_await(pthread_ptr);__emscripten_check_mailbox()}});function __emscripten_notify_mailbox_postmessage(targetThread,currThreadId){targetThread=bigintToI53Checked(targetThread);currThreadId=bigintToI53Checked(currThreadId);if(targetThread==currThreadId){setTimeout(checkMailbox)}else if(ENVIRONMENT_IS_PTHREAD){postMessage({targetThread,cmd:"checkMailbox"})}else{var worker=PThread.pthreads[targetThread];if(!worker){return}worker.postMessage({cmd:"checkMailbox"})}}var proxiedJSCallArgs=[];function __emscripten_receive_on_main_thread_js(funcIndex,emAsmAddr,callingThread,numCallArgs,args){emAsmAddr=bigintToI53Checked(emAsmAddr);callingThread=bigintToI53Checked(callingThread);args=bigintToI53Checked(args);numCallArgs/=2;proxiedJSCallArgs.length=numCallArgs;var b=args/8;for(var i=0;i{noExitRuntime=false;runtimeKeepaliveCounter=0};function __emscripten_thread_cleanup(thread){thread=bigintToI53Checked(thread);if(!ENVIRONMENT_IS_PTHREAD)cleanupThread(thread);else postMessage({cmd:"cleanupThread",thread})}function __emscripten_thread_set_strongref(thread){thread=bigintToI53Checked(thread);if(ENVIRONMENT_IS_NODE){PThread.pthreads[thread].ref()}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time,tmPtr){time=bigintToI53Checked(time);tmPtr=bigintToI53Checked(tmPtr);var date=new Date(time*1e3);(growMemViews(),HEAP32)[tmPtr/4]=date.getSeconds();(growMemViews(),HEAP32)[(tmPtr+4)/4]=date.getMinutes();(growMemViews(),HEAP32)[(tmPtr+8)/4]=date.getHours();(growMemViews(),HEAP32)[(tmPtr+12)/4]=date.getDate();(growMemViews(),HEAP32)[(tmPtr+16)/4]=date.getMonth();(growMemViews(),HEAP32)[(tmPtr+20)/4]=date.getFullYear()-1900;(growMemViews(),HEAP32)[(tmPtr+24)/4]=date.getDay();var yday=ydayFromDate(date)|0;(growMemViews(),HEAP32)[(tmPtr+28)/4]=yday;(growMemViews(),HEAP64)[(tmPtr+40)/8]=BigInt(-(date.getTimezoneOffset()*60));var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;(growMemViews(),HEAP32)[(tmPtr+32)/4]=dst}function __mmap_js(len,prot,flags,fd,offset,allocated,addr){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(12,0,1,len,prot,flags,fd,offset,allocated,addr);len=bigintToI53Checked(len);offset=bigintToI53Checked(offset);allocated=bigintToI53Checked(allocated);addr=bigintToI53Checked(addr);try{var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;(growMemViews(),HEAP32)[allocated/4]=res.allocated;(growMemViews(),HEAPU64)[addr/8]=BigInt(ptr);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(13,0,1,addr,len,prot,flags,fd,offset);addr=bigintToI53Checked(addr);len=bigintToI53Checked(len);offset=bigintToI53Checked(offset);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var timers={};var _emscripten_get_now=()=>performance.timeOrigin+performance.now();function __setitimer_js(which,timeout_ms){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(14,0,1,which,timeout_ms);if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0}var __tzset_js=function(timezone,daylight,std_name,dst_name){timezone=bigintToI53Checked(timezone);daylight=bigintToI53Checked(daylight);std_name=bigintToI53Checked(std_name);dst_name=bigintToI53Checked(dst_name);var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);(growMemViews(),HEAPU64)[timezone/8]=BigInt(stdTimezoneOffset*60);(growMemViews(),HEAP32)[daylight/4]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffsetDate.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);ptime=bigintToI53Checked(ptime);if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);(growMemViews(),HEAP64)[ptime/8]=BigInt(nsec);return 0}var _emscripten_check_blocking_allowed=()=>{};var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};var _emscripten_exit_with_live_runtime=()=>{runtimeKeepalivePush();throw"unwind"};var getHeapMax=()=>4294967296;var _emscripten_get_heap_max=()=>BigInt(getHeapMax());var _emscripten_has_asyncify=()=>2;var _emscripten_num_logical_cores=()=>ENVIRONMENT_IS_NODE?require("os").cpus().length:navigator["hardwareConcurrency"];var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(BigInt(pages));updateMemoryViews();return 1}catch(e){}};function _emscripten_resize_heap(requestedSize){requestedSize=bigintToI53Checked(requestedSize);var oldSize=(growMemViews(),HEAPU8).length;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false}var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var writeI53ToI64=(ptr,num)=>{(growMemViews(),HEAPU32)[ptr/4]=num;var lower=(growMemViews(),HEAPU32)[ptr/4];(growMemViews(),HEAPU32)[(ptr+4)/4]=(num-lower)/4294967296};var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var readI53FromI64=ptr=>(growMemViews(),HEAPU32)[ptr/4]+(growMemViews(),HEAP32)[(ptr+4)/4]*4294967296;var WebGPU={Internals:{jsObjects:[],jsObjectInsert:(ptr,jsObject)=>{WebGPU.Internals.jsObjects[ptr]=jsObject},bufferOnUnmaps:[],futures:[],futureInsert:(futureId,promise)=>{WebGPU.Internals.futures[futureId]=new Promise(resolve=>promise.finally(()=>resolve(futureId)))}},getJsObject:ptr=>{if(!ptr)return undefined;return WebGPU.Internals.jsObjects[ptr]},importJsAdapter:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateAdapter(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroup:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroup(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroupLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroupLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBuffer:(buffer,parentPtr=0)=>{assert(buffer.mapState==="unmapped");var bufferPtr=_emwgpuCreateBuffer(parentPtr);WebGPU.Internals.jsObjectInsert(bufferPtr,buffer);return bufferPtr},importJsCommandBuffer:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandBuffer(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsCommandEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsDevice:(device,parentPtr=0)=>{var queuePtr=_emwgpuCreateQueue(parentPtr);var devicePtr=_emwgpuCreateDevice(parentPtr,queuePtr);WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);return devicePtr},importJsExternalTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateExternalTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsPipelineLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreatePipelineLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQuerySet:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQuerySet(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQueue:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQueue(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundle:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundle(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundleEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundleEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSampler:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSampler(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsShaderModule:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateShaderModule(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSurface:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSurface(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTextureView:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTextureView(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},errorCallback:(callback,type,message,userdata)=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(message);((a1,a2,a3)=>getWasmTableEntry(callback).call(null,a1,BigInt(a2),BigInt(a3)))(type,BigInt(messagePtr),userdata);stackRestore(sp)},iterateExtensions:(root,handlers)=>{for(var ptr=Number((growMemViews(),HEAPU64)[root/8]);ptr;ptr=Number((growMemViews(),HEAPU64)[ptr/8])){var sType=(growMemViews(),HEAP32)[(ptr+8)/4];var handler=handlers[sType](ptr)}},setStringView:(ptr,data,length)=>{(growMemViews(),HEAPU64)[ptr/8]=BigInt(data);(growMemViews(),HEAPU64)[(ptr+8)/8]=BigInt(length)},makeStringFromStringView:stringViewPtr=>{var ptr=Number((growMemViews(),HEAPU64)[stringViewPtr/8]);var length=Number((growMemViews(),HEAPU64)[(stringViewPtr+8)/8]);return UTF8ToString(ptr,length)},makeStringFromOptionalStringView:stringViewPtr=>{var ptr=Number((growMemViews(),HEAPU64)[stringViewPtr/8]);var length=Number((growMemViews(),HEAPU64)[(stringViewPtr+8)/8]);if(!ptr){if(length===0){return""}return undefined}return UTF8ToString(ptr,length)},makeColor:ptr=>({r:(growMemViews(),HEAPF64)[ptr/8],g:(growMemViews(),HEAPF64)[(ptr+8)/8],b:(growMemViews(),HEAPF64)[(ptr+16)/8],a:(growMemViews(),HEAPF64)[(ptr+24)/8]}),makeExtent3D:ptr=>({width:(growMemViews(),HEAPU32)[ptr/4],height:(growMemViews(),HEAPU32)[(ptr+4)/4],depthOrArrayLayers:(growMemViews(),HEAPU32)[(ptr+8)/4]}),makeOrigin3D:ptr=>({x:(growMemViews(),HEAPU32)[ptr/4],y:(growMemViews(),HEAPU32)[(ptr+4)/4],z:(growMemViews(),HEAPU32)[(ptr+8)/4]}),makeTexelCopyTextureInfo:ptr=>({texture:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[ptr/8])),mipLevel:(growMemViews(),HEAPU32)[(ptr+8)/4],origin:WebGPU.makeOrigin3D(ptr+12),aspect:WebGPU.TextureAspect[(growMemViews(),HEAP32)[(ptr+24)/4]]}),makeTexelCopyBufferLayout:ptr=>{var bytesPerRow=(growMemViews(),HEAPU32)[(ptr+8)/4];var rowsPerImage=(growMemViews(),HEAPU32)[(ptr+12)/4];return{offset:readI53FromI64(ptr),bytesPerRow:bytesPerRow===4294967295?undefined:bytesPerRow,rowsPerImage:rowsPerImage===4294967295?undefined:rowsPerImage}},makeTexelCopyBufferInfo:ptr=>{var layoutPtr=ptr+0;var bufferCopyView=WebGPU.makeTexelCopyBufferLayout(layoutPtr);bufferCopyView["buffer"]=WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+16)/8]));return bufferCopyView},makePassTimestampWrites:ptr=>{if(ptr===0)return undefined;return{querySet:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+8)/8])),beginningOfPassWriteIndex:(growMemViews(),HEAPU32)[(ptr+16)/4],endOfPassWriteIndex:(growMemViews(),HEAPU32)[(ptr+20)/4]}},makePipelineConstants:(constantCount,constantsPtr)=>{if(!constantCount)return;var constants={};for(var i=0;i{if(!layoutPtr)return"auto";return WebGPU.getJsObject(layoutPtr)},makeComputeState:ptr=>{if(!ptr)return undefined;var desc={module:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+8)/8])),constants:WebGPU.makePipelineConstants(Number((growMemViews(),HEAPU64)[(ptr+32)/8]),Number((growMemViews(),HEAPU64)[(ptr+40)/8])),entryPoint:WebGPU.makeStringFromOptionalStringView(ptr+16)};return desc},makeComputePipelineDesc:descriptor=>{var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8),layout:WebGPU.makePipelineLayout(Number((growMemViews(),HEAPU64)[(descriptor+24)/8])),compute:WebGPU.makeComputeState(descriptor+32)};return desc},makeRenderPipelineDesc:descriptor=>{function makePrimitiveState(psPtr){if(!psPtr)return undefined;return{topology:WebGPU.PrimitiveTopology[(growMemViews(),HEAP32)[(psPtr+8)/4]],stripIndexFormat:WebGPU.IndexFormat[(growMemViews(),HEAP32)[(psPtr+12)/4]],frontFace:WebGPU.FrontFace[(growMemViews(),HEAP32)[(psPtr+16)/4]],cullMode:WebGPU.CullMode[(growMemViews(),HEAP32)[(psPtr+20)/4]],unclippedDepth:!!(growMemViews(),HEAPU32)[(psPtr+24)/4]}}function makeBlendComponent(bdPtr){if(!bdPtr)return undefined;return{operation:WebGPU.BlendOperation[(growMemViews(),HEAP32)[bdPtr/4]],srcFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[(bdPtr+4)/4]],dstFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[(bdPtr+8)/4]]}}function makeBlendState(bsPtr){if(!bsPtr)return undefined;return{alpha:makeBlendComponent(bsPtr+12),color:makeBlendComponent(bsPtr+0)}}function makeColorState(csPtr){var format=WebGPU.TextureFormat[(growMemViews(),HEAP32)[(csPtr+8)/4]];return format?{format,blend:makeBlendState(Number((growMemViews(),HEAPU64)[(csPtr+16)/8])),writeMask:(growMemViews(),HEAPU32)[(csPtr+24)/4]}:undefined}function makeColorStates(count,csArrayPtr){var states=[];for(var i=0;i{var nextInChainPtr=Number((growMemViews(),HEAPU64)[limitsOutPtr/8]);function setLimitValueU32(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;(growMemViews(),HEAPU32)[(basePtr+limitOffset)/4]=limitValue}function setLimitValueU64(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;writeI53ToI64(basePtr+limitOffset,limitValue)}setLimitValueU32("maxTextureDimension1D",limitsOutPtr,8);setLimitValueU32("maxTextureDimension2D",limitsOutPtr,12);setLimitValueU32("maxTextureDimension3D",limitsOutPtr,16);setLimitValueU32("maxTextureArrayLayers",limitsOutPtr,20);setLimitValueU32("maxBindGroups",limitsOutPtr,24);setLimitValueU32("maxBindGroupsPlusVertexBuffers",limitsOutPtr,28);setLimitValueU32("maxBindingsPerBindGroup",limitsOutPtr,32);setLimitValueU32("maxDynamicUniformBuffersPerPipelineLayout",limitsOutPtr,36);setLimitValueU32("maxDynamicStorageBuffersPerPipelineLayout",limitsOutPtr,40);setLimitValueU32("maxSampledTexturesPerShaderStage",limitsOutPtr,44);setLimitValueU32("maxSamplersPerShaderStage",limitsOutPtr,48);setLimitValueU32("maxStorageBuffersPerShaderStage",limitsOutPtr,52);setLimitValueU32("maxStorageTexturesPerShaderStage",limitsOutPtr,56);setLimitValueU32("maxUniformBuffersPerShaderStage",limitsOutPtr,60);setLimitValueU32("minUniformBufferOffsetAlignment",limitsOutPtr,80);setLimitValueU32("minStorageBufferOffsetAlignment",limitsOutPtr,84);setLimitValueU64("maxUniformBufferBindingSize",limitsOutPtr,64);setLimitValueU64("maxStorageBufferBindingSize",limitsOutPtr,72);setLimitValueU32("maxVertexBuffers",limitsOutPtr,88);setLimitValueU64("maxBufferSize",limitsOutPtr,96);setLimitValueU32("maxVertexAttributes",limitsOutPtr,104);setLimitValueU32("maxVertexBufferArrayStride",limitsOutPtr,108);setLimitValueU32("maxInterStageShaderVariables",limitsOutPtr,112);setLimitValueU32("maxColorAttachments",limitsOutPtr,116);setLimitValueU32("maxColorAttachmentBytesPerSample",limitsOutPtr,120);setLimitValueU32("maxComputeWorkgroupStorageSize",limitsOutPtr,124);setLimitValueU32("maxComputeInvocationsPerWorkgroup",limitsOutPtr,128);setLimitValueU32("maxComputeWorkgroupSizeX",limitsOutPtr,132);setLimitValueU32("maxComputeWorkgroupSizeY",limitsOutPtr,136);setLimitValueU32("maxComputeWorkgroupSizeZ",limitsOutPtr,140);setLimitValueU32("maxComputeWorkgroupsPerDimension",limitsOutPtr,144);setLimitValueU32("maxImmediateSize",limitsOutPtr,148);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var compatibilityModeLimitsPtr=nextInChainPtr;setLimitValueU32("maxStorageBuffersInVertexStage",compatibilityModeLimitsPtr,16,limits.maxStorageBuffersPerShaderStage);setLimitValueU32("maxStorageBuffersInFragmentStage",compatibilityModeLimitsPtr,24,limits.maxStorageBuffersPerShaderStage);setLimitValueU32("maxStorageTexturesInVertexStage",compatibilityModeLimitsPtr,20,limits.maxStorageTexturesPerShaderStage);setLimitValueU32("maxStorageTexturesInFragmentStage",compatibilityModeLimitsPtr,28,limits.maxStorageTexturesPerShaderStage)}},fillAdapterInfoStruct:(info,infoStruct)=>{(growMemViews(),HEAPU32)[(infoStruct+88)/4]=info.subgroupMinSize;(growMemViews(),HEAPU32)[(infoStruct+92)/4]=info.subgroupMaxSize;var strs=info.vendor+info.architecture+info.device+info.description;var strPtr=stringToNewUTF8(strs);var vendorLen=lengthBytesUTF8(info.vendor);WebGPU.setStringView(infoStruct+8,strPtr,vendorLen);strPtr+=vendorLen;var architectureLen=lengthBytesUTF8(info.architecture);WebGPU.setStringView(infoStruct+24,strPtr,architectureLen);strPtr+=architectureLen;var deviceLen=lengthBytesUTF8(info.device);WebGPU.setStringView(infoStruct+40,strPtr,deviceLen);strPtr+=deviceLen;var descriptionLen=lengthBytesUTF8(info.description);WebGPU.setStringView(infoStruct+56,strPtr,descriptionLen);strPtr+=descriptionLen;(growMemViews(),HEAP32)[(infoStruct+72)/4]=2;var adapterType=info.isFallbackAdapter?3:4;(growMemViews(),HEAP32)[(infoStruct+76)/4]=adapterType;(growMemViews(),HEAPU32)[(infoStruct+80)/4]=0;(growMemViews(),HEAPU32)[(infoStruct+84)/4]=0},AddressMode:[,"clamp-to-edge","repeat","mirror-repeat"],BlendFactor:[,"zero","one","src","one-minus-src","src-alpha","one-minus-src-alpha","dst","one-minus-dst","dst-alpha","one-minus-dst-alpha","src-alpha-saturated","constant","one-minus-constant","src1","one-minus-src1","src1-alpha","one-minus-src1-alpha"],BlendOperation:[,"add","subtract","reverse-subtract","min","max"],BufferBindingType:[,,"uniform","storage","read-only-storage"],BufferMapState:[,"unmapped","pending","mapped"],CompareFunction:[,"never","less","equal","less-equal","greater","not-equal","greater-equal","always"],CompilationInfoRequestStatus:[,"success","callback-cancelled"],ComponentSwizzle:[,"0","1","r","g","b","a"],CompositeAlphaMode:[,"opaque","premultiplied","unpremultiplied","inherit"],CullMode:[,"none","front","back"],ErrorFilter:[,"validation","out-of-memory","internal"],FeatureLevel:[,"compatibility","core"],FeatureName:{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",22:"texture-component-swizzle",327692:"chromium-experimental-unorm16-texture-formats",327729:"chromium-experimental-multi-draw-indirect"},FilterMode:[,"nearest","linear"],FrontFace:[,"ccw","cw"],IndexFormat:[,"uint16","uint32"],InstanceFeatureName:[,"timed-wait-any","shader-source-spirv","multiple-devices-per-adapter"],LoadOp:[,"load","clear"],MipmapFilterMode:[,"nearest","linear"],OptionalBool:["false","true"],PowerPreference:[,"low-power","high-performance"],PredefinedColorSpace:[,"srgb","display-p3"],PrimitiveTopology:[,"point-list","line-list","line-strip","triangle-list","triangle-strip"],QueryType:[,"occlusion","timestamp"],SamplerBindingType:[,,"filtering","non-filtering","comparison"],Status:[,"success","error"],StencilOperation:[,"keep","zero","replace","invert","increment-clamp","decrement-clamp","increment-wrap","decrement-wrap"],StorageTextureAccess:[,,"write-only","read-only","read-write"],StoreOp:[,"store","discard"],SurfaceGetCurrentTextureStatus:[,"success-optimal","success-suboptimal","timeout","outdated","lost","error"],TextureAspect:[,"all","stencil-only","depth-only"],TextureDimension:[,"1d","2d","3d"],TextureFormat:[,"r8unorm","r8snorm","r8uint","r8sint","r16unorm","r16snorm","r16uint","r16sint","r16float","rg8unorm","rg8snorm","rg8uint","rg8sint","r32float","r32uint","r32sint","rg16unorm","rg16snorm","rg16uint","rg16sint","rg16float","rgba8unorm","rgba8unorm-srgb","rgba8snorm","rgba8uint","rgba8sint","bgra8unorm","bgra8unorm-srgb","rgb10a2uint","rgb10a2unorm","rg11b10ufloat","rgb9e5ufloat","rg32float","rg32uint","rg32sint","rgba16unorm","rgba16snorm","rgba16uint","rgba16sint","rgba16float","rgba32float","rgba32uint","rgba32sint","stencil8","depth16unorm","depth24plus","depth24plus-stencil8","depth32float","depth32float-stencil8","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb","bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm","bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb","etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm","astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"],TextureSampleType:[,,"float","unfilterable-float","depth","sint","uint"],TextureViewDimension:[,"1d","2d","2d-array","cube","cube-array","3d"],ToneMappingMode:[,"standard","extended"],VertexFormat:[,"uint8","uint8x2","uint8x4","sint8","sint8x2","sint8x4","unorm8","unorm8x2","unorm8x4","snorm8","snorm8x2","snorm8x4","uint16","uint16x2","uint16x4","sint16","sint16x2","sint16x4","unorm16","unorm16x2","unorm16x4","snorm16","snorm16x2","snorm16x4","float16","float16x2","float16x4","float32","float32x2","float32x3","float32x4","uint32","uint32x2","uint32x3","uint32x4","sint32","sint32x2","sint32x3","sint32x4","unorm10-10-10-2","unorm8x4-bgra"],VertexStepMode:[,"vertex","instance"],WGSLLanguageFeatureName:[,"readonly_and_readwrite_storage_textures","packed_4x8_integer_dot_product","unrestricted_pointer_parameters","pointer_composite_access","uniform_buffer_standard_layout","subgroup_id","texture_and_sampler_let","subgroup_uniformity","texture_formats_tier1"]};var emwgpuStringToInt_DeviceLostReason={undefined:1,unknown:1,destroyed:2};var runtimeKeepalivePop=()=>{runtimeKeepaliveCounter-=1};function _emwgpuAdapterRequestDevice(adapterPtr,futureId,deviceLostFutureId,devicePtr,queuePtr,descriptor){adapterPtr=bigintToI53Checked(adapterPtr);futureId=bigintToI53Checked(futureId);deviceLostFutureId=bigintToI53Checked(deviceLostFutureId);devicePtr=bigintToI53Checked(devicePtr);queuePtr=bigintToI53Checked(queuePtr);descriptor=bigintToI53Checked(descriptor);var adapter=WebGPU.getJsObject(adapterPtr);var desc={};if(descriptor){var requiredFeatureCount=Number((growMemViews(),HEAPU64)[(descriptor+24)/8]);if(requiredFeatureCount){var requiredFeaturesPtr=Number((growMemViews(),HEAPU64)[(descriptor+32)/8]);desc["requiredFeatures"]=Array.from((growMemViews(),HEAPU32).subarray(requiredFeaturesPtr/4,(requiredFeaturesPtr+requiredFeatureCount*4)/4),feature=>WebGPU.FeatureName[feature])}var limitsPtr=Number((growMemViews(),HEAPU64)[(descriptor+40)/8]);if(limitsPtr){var nextInChainPtr=Number((growMemViews(),HEAPU64)[limitsPtr/8]);var requiredLimits={};function setLimitU32IfDefined(name,basePtr,limitOffset,ignoreIfZero=false){var ptr=basePtr+limitOffset;var value=(growMemViews(),HEAPU32)[ptr/4];if(value!=4294967295&&(!ignoreIfZero||value!=0)){requiredLimits[name]=value}}function setLimitU64IfDefined(name,basePtr,limitOffset){var ptr=basePtr+limitOffset;var limitPart1=(growMemViews(),HEAPU32)[ptr/4];var limitPart2=(growMemViews(),HEAPU32)[(ptr+4)/4];if(limitPart1!=4294967295||limitPart2!=4294967295){requiredLimits[name]=readI53FromI64(ptr)}}setLimitU32IfDefined("maxTextureDimension1D",limitsPtr,8);setLimitU32IfDefined("maxTextureDimension2D",limitsPtr,12);setLimitU32IfDefined("maxTextureDimension3D",limitsPtr,16);setLimitU32IfDefined("maxTextureArrayLayers",limitsPtr,20);setLimitU32IfDefined("maxBindGroups",limitsPtr,24);setLimitU32IfDefined("maxBindGroupsPlusVertexBuffers",limitsPtr,28);setLimitU32IfDefined("maxBindingsPerBindGroup",limitsPtr,32);setLimitU32IfDefined("maxDynamicUniformBuffersPerPipelineLayout",limitsPtr,36);setLimitU32IfDefined("maxDynamicStorageBuffersPerPipelineLayout",limitsPtr,40);setLimitU32IfDefined("maxSampledTexturesPerShaderStage",limitsPtr,44);setLimitU32IfDefined("maxSamplersPerShaderStage",limitsPtr,48);setLimitU32IfDefined("maxStorageBuffersPerShaderStage",limitsPtr,52);setLimitU32IfDefined("maxStorageTexturesPerShaderStage",limitsPtr,56);setLimitU32IfDefined("maxUniformBuffersPerShaderStage",limitsPtr,60);setLimitU32IfDefined("minUniformBufferOffsetAlignment",limitsPtr,80);setLimitU32IfDefined("minStorageBufferOffsetAlignment",limitsPtr,84);setLimitU64IfDefined("maxUniformBufferBindingSize",limitsPtr,64);setLimitU64IfDefined("maxStorageBufferBindingSize",limitsPtr,72);setLimitU32IfDefined("maxVertexBuffers",limitsPtr,88);setLimitU64IfDefined("maxBufferSize",limitsPtr,96);setLimitU32IfDefined("maxVertexAttributes",limitsPtr,104);setLimitU32IfDefined("maxVertexBufferArrayStride",limitsPtr,108);setLimitU32IfDefined("maxInterStageShaderVariables",limitsPtr,112);setLimitU32IfDefined("maxColorAttachments",limitsPtr,116);setLimitU32IfDefined("maxColorAttachmentBytesPerSample",limitsPtr,120);setLimitU32IfDefined("maxComputeWorkgroupStorageSize",limitsPtr,124);setLimitU32IfDefined("maxComputeInvocationsPerWorkgroup",limitsPtr,128);setLimitU32IfDefined("maxComputeWorkgroupSizeX",limitsPtr,132);setLimitU32IfDefined("maxComputeWorkgroupSizeY",limitsPtr,136);setLimitU32IfDefined("maxComputeWorkgroupSizeZ",limitsPtr,140);setLimitU32IfDefined("maxComputeWorkgroupsPerDimension",limitsPtr,144);setLimitU32IfDefined("maxImmediateSize",limitsPtr,148,true);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var compatibilityModeLimitsPtr=nextInChainPtr;if("maxStorageBuffersInVertexStage"in GPUSupportedLimits.prototype){setLimitU32IfDefined("maxStorageBuffersInVertexStage",compatibilityModeLimitsPtr,16);setLimitU32IfDefined("maxStorageTexturesInVertexStage",compatibilityModeLimitsPtr,20);setLimitU32IfDefined("maxStorageBuffersInFragmentStage",compatibilityModeLimitsPtr,24);setLimitU32IfDefined("maxStorageTexturesInFragmentStage",compatibilityModeLimitsPtr,28)}}desc["requiredLimits"]=requiredLimits}var defaultQueuePtr=Number((growMemViews(),HEAPU64)[(descriptor+48)/8]);if(defaultQueuePtr){var defaultQueueDesc={label:WebGPU.makeStringFromOptionalStringView(defaultQueuePtr+8)};desc["defaultQueue"]=defaultQueueDesc}desc["label"]=WebGPU.makeStringFromOptionalStringView(descriptor+8)}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,adapter.requestDevice(desc).then(device=>{runtimeKeepalivePop();callUserCallback(()=>{WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);devicePtr=BigInt(devicePtr);WebGPU.Internals.futureInsert(deviceLostFutureId,device.lost.then(info=>{callUserCallback(()=>{device.onuncapturederror=ev=>{};var sp=stackSave();var messagePtr=stringToUTF8OnStack(info.message);_emwgpuOnDeviceLostCompleted(deviceLostFutureId,emwgpuStringToInt_DeviceLostReason[info.reason],BigInt(messagePtr));stackRestore(sp)})}));device.onuncapturederror=ev=>{var type=5;if(ev.error instanceof GPUValidationError)type=2;else if(ev.error instanceof GPUOutOfMemoryError)type=3;else if(ev.error instanceof GPUInternalError)type=4;var sp=stackSave();var messagePtr=stringToUTF8OnStack(ev.error.message);_emwgpuOnUncapturedError(BigInt(devicePtr),type,BigInt(messagePtr));stackRestore(sp)};_emwgpuOnRequestDeviceCompleted(futureId,1,BigInt(devicePtr),0n)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestDeviceCompleted(futureId,3,BigInt(devicePtr),BigInt(messagePtr));if(deviceLostFutureId){_emwgpuOnDeviceLostCompleted(deviceLostFutureId,4,BigInt(messagePtr))}stackRestore(sp)})}))}function _emwgpuBufferDestroy(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(onUnmap){for(var i=0;i{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};var _emwgpuBufferGetConstMappedRange=function(bufferPtr,offset,size){bufferPtr=bigintToI53Checked(bufferPtr);offset=bigintToI53Checked(offset);size=bigintToI53Checked(size);var ret=(()=>{var buffer=WebGPU.getJsObject(bufferPtr);if(size==-1)size=undefined;var mapped;try{mapped=buffer.getMappedRange(offset,size)}catch(ex){return 0n}var data=_memalign(16,mapped.byteLength);(growMemViews(),HEAPU8).set(new Uint8Array(mapped),data);WebGPU.Internals.bufferOnUnmaps[bufferPtr].push(()=>_free(data));return data})();return BigInt(ret)};var _emwgpuBufferMapAsync=function(bufferPtr,futureId,mode,offset,size){bufferPtr=bigintToI53Checked(bufferPtr);futureId=bigintToI53Checked(futureId);mode=bigintToI53Checked(mode);offset=bigintToI53Checked(offset);size=bigintToI53Checked(size);var buffer=WebGPU.getJsObject(bufferPtr);WebGPU.Internals.bufferOnUnmaps[bufferPtr]=[];if(size==-1)size=undefined;runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,buffer.mapAsync(mode,offset,size).then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnMapAsyncCompleted(futureId,1,0n)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);var status=ex.name==="AbortError"?4:ex.name==="OperationError"?3:0;_emwgpuOnMapAsyncCompleted(futureId,status,BigInt(messagePtr));delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]})}))};function _emwgpuBufferUnmap(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(!onUnmap){return}for(var i=0;i{const device=WebGPU.getJsObject(devicePtr);device.onuncapturederror=null;device.destroy()};function _emwgpuInstanceRequestAdapter(instancePtr,futureId,options,adapterPtr){instancePtr=bigintToI53Checked(instancePtr);futureId=bigintToI53Checked(futureId);options=bigintToI53Checked(options);adapterPtr=bigintToI53Checked(adapterPtr);var opts;if(options){opts={featureLevel:WebGPU.FeatureLevel[(growMemViews(),HEAP32)[(options+8)/4]],powerPreference:WebGPU.PowerPreference[(growMemViews(),HEAP32)[(options+12)/4]],forceFallbackAdapter:!!(growMemViews(),HEAPU32)[(options+16)/4]};var nextInChainPtr=Number((growMemViews(),HEAPU64)[options/8]);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var webxrOptions=nextInChainPtr;opts.xrCompatible=!!(growMemViews(),HEAPU32)[(webxrOptions+16)/4]}}if(!("gpu"in navigator)){var sp=stackSave();var messagePtr=stringToUTF8OnStack("WebGPU not available on this browser (navigator.gpu is not available)");_emwgpuOnRequestAdapterCompleted(futureId,3,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp);return}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,navigator.gpu.requestAdapter(opts).then(adapter=>{runtimeKeepalivePop();callUserCallback(()=>{if(adapter){WebGPU.Internals.jsObjectInsert(adapterPtr,adapter);_emwgpuOnRequestAdapterCompleted(futureId,1,BigInt(adapterPtr),0n)}else{var sp=stackSave();var messagePtr=stringToUTF8OnStack("WebGPU not available on this browser (requestAdapter returned null)");_emwgpuOnRequestAdapterCompleted(futureId,3,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp)}})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestAdapterCompleted(futureId,4,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp)})}))}var _emwgpuQueueOnSubmittedWorkDone=function(queuePtr,futureId){queuePtr=bigintToI53Checked(queuePtr);futureId=bigintToI53Checked(futureId);var queue=WebGPU.getJsObject(queuePtr);runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,queue.onSubmittedWorkDone().then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnWorkDoneCompleted(futureId,1)})}))};var _emwgpuWaitAny=function(futurePtr,futureCount,timeoutMSPtr){futurePtr=bigintToI53Checked(futurePtr);futureCount=bigintToI53Checked(futureCount);timeoutMSPtr=bigintToI53Checked(timeoutMSPtr);return Asyncify.handleAsync(async()=>{var promises=[];if(timeoutMSPtr){var timeoutMS=(growMemViews(),HEAP32)[timeoutMSPtr/4];promises.length=futureCount+1;promises[futureCount]=new Promise(resolve=>setTimeout(resolve,timeoutMS,0))}else{promises.length=futureCount}for(var i=0;ithisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.language||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(15,0,1,__environ,environ_buf);__environ=bigintToI53Checked(__environ);environ_buf=bigintToI53Checked(environ_buf);var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;(growMemViews(),HEAPU64)[(__environ+envp)/8]=BigInt(ptr);bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=8}return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(16,0,1,penviron_count,penviron_buf_size);penviron_count=bigintToI53Checked(penviron_count);penviron_buf_size=bigintToI53Checked(penviron_buf_size);var strings=getEnvStrings();(growMemViews(),HEAPU64)[penviron_count/8]=BigInt(strings.length);var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}(growMemViews(),HEAPU64)[penviron_buf_size/8]=BigInt(bufSize);return 0}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(17,0,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i{var ret=0;for(var i=0;i=0){(growMemViews(),HEAP32)[(featuresPtr+offset)/4]=featureEnumValue;offset+=4;numFeatures++}}(growMemViews(),HEAPU64)[(supportedFeatures+8)/8]=BigInt(featuresPtr);(growMemViews(),HEAPU64)[supportedFeatures/8]=BigInt(numFeatures)}function _wgpuAdapterGetInfo(adapterPtr,info){adapterPtr=bigintToI53Checked(adapterPtr);info=bigintToI53Checked(info);var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillAdapterInfoStruct(adapter.info,info);return 1}function _wgpuAdapterGetLimits(adapterPtr,limitsOutPtr){adapterPtr=bigintToI53Checked(adapterPtr);limitsOutPtr=bigintToI53Checked(limitsOutPtr);var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillLimitStruct(adapter.limits,limitsOutPtr);return 1}function _wgpuAdapterHasFeature(adapterPtr,featureEnumValue){adapterPtr=bigintToI53Checked(adapterPtr);var adapter=WebGPU.getJsObject(adapterPtr);return adapter.features.has(WebGPU.FeatureName[featureEnumValue])}var _wgpuBufferGetSize=function(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var ret=(()=>{var buffer=WebGPU.getJsObject(bufferPtr);return buffer.size})();return BigInt(ret)};var _wgpuCommandEncoderBeginComputePass=function(encoderPtr,descriptor){encoderPtr=bigintToI53Checked(encoderPtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8),timestampWrites:WebGPU.makePassTimestampWrites(Number((growMemViews(),HEAPU64)[(descriptor+24)/8]))}}var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateComputePassEncoder(0n);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.beginComputePass(desc));return ptr})();return BigInt(ret)};function _wgpuCommandEncoderCopyBufferToBuffer(encoderPtr,srcPtr,srcOffset,dstPtr,dstOffset,size){encoderPtr=bigintToI53Checked(encoderPtr);srcPtr=bigintToI53Checked(srcPtr);srcOffset=bigintToI53Checked(srcOffset);dstPtr=bigintToI53Checked(dstPtr);dstOffset=bigintToI53Checked(dstOffset);size=bigintToI53Checked(size);var commandEncoder=WebGPU.getJsObject(encoderPtr);var src=WebGPU.getJsObject(srcPtr);var dst=WebGPU.getJsObject(dstPtr);commandEncoder.copyBufferToBuffer(src,srcOffset,dst,dstOffset,size)}var _wgpuCommandEncoderFinish=function(encoderPtr,descriptor){encoderPtr=bigintToI53Checked(encoderPtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateCommandBuffer(0n);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.finish());return ptr})();return BigInt(ret)};function _wgpuComputePassEncoderDispatchWorkgroups(passPtr,x,y,z){passPtr=bigintToI53Checked(passPtr);var pass=WebGPU.getJsObject(passPtr);pass.dispatchWorkgroups(x,y,z)}function _wgpuComputePassEncoderEnd(passPtr){passPtr=bigintToI53Checked(passPtr);var pass=WebGPU.getJsObject(passPtr);pass.end()}function _wgpuComputePassEncoderSetBindGroup(passPtr,groupIndex,groupPtr,dynamicOffsetCount,dynamicOffsetsPtr){passPtr=bigintToI53Checked(passPtr);groupPtr=bigintToI53Checked(groupPtr);dynamicOffsetCount=bigintToI53Checked(dynamicOffsetCount);dynamicOffsetsPtr=bigintToI53Checked(dynamicOffsetsPtr);var pass=WebGPU.getJsObject(passPtr);var group=WebGPU.getJsObject(groupPtr);if(dynamicOffsetCount==0){pass.setBindGroup(groupIndex,group)}else{pass.setBindGroup(groupIndex,group,(growMemViews(),HEAPU32),dynamicOffsetsPtr/4,dynamicOffsetCount)}}function _wgpuComputePassEncoderSetPipeline(passPtr,pipelinePtr){passPtr=bigintToI53Checked(passPtr);pipelinePtr=bigintToI53Checked(pipelinePtr);var pass=WebGPU.getJsObject(passPtr);var pipeline=WebGPU.getJsObject(pipelinePtr);pass.setPipeline(pipeline)}var _wgpuComputePipelineGetBindGroupLayout=function(pipelinePtr,groupIndex){pipelinePtr=bigintToI53Checked(pipelinePtr);var ret=(()=>{var pipeline=WebGPU.getJsObject(pipelinePtr);var ptr=_emwgpuCreateBindGroupLayout(0n);WebGPU.Internals.jsObjectInsert(ptr,pipeline.getBindGroupLayout(groupIndex));return ptr})();return BigInt(ret)};var _wgpuDeviceCreateBindGroup=function(devicePtr,descriptor){devicePtr=bigintToI53Checked(devicePtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{function makeEntry(entryPtr){var bufferPtr=Number((growMemViews(),HEAPU64)[(entryPtr+16)/8]);var samplerPtr=Number((growMemViews(),HEAPU64)[(entryPtr+40)/8]);var textureViewPtr=Number((growMemViews(),HEAPU64)[(entryPtr+48)/8]);var externalTexturePtr=0;WebGPU.iterateExtensions(entryPtr,{327681:ptr=>{externalTexturePtr=Number((growMemViews(),HEAPU64)[(ptr+16)/8])}});var resource;if(bufferPtr){var size=readI53FromI64(entryPtr+32);if(size==-1)size=undefined;resource={buffer:WebGPU.getJsObject(bufferPtr),offset:readI53FromI64(entryPtr+24),size}}else{resource=WebGPU.getJsObject(samplerPtr||textureViewPtr||externalTexturePtr)}return{binding:(growMemViews(),HEAPU32)[(entryPtr+8)/4],resource}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i{var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8)}}var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateCommandEncoder(0n);WebGPU.Internals.jsObjectInsert(ptr,device.createCommandEncoder(desc));return ptr})();return BigInt(ret)};var _wgpuDeviceCreateComputePipeline=function(devicePtr,descriptor){devicePtr=bigintToI53Checked(devicePtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var desc=WebGPU.makeComputePipelineDesc(descriptor);var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateComputePipeline(0n);WebGPU.Internals.jsObjectInsert(ptr,device.createComputePipeline(desc));return ptr})();return BigInt(ret)};var _wgpuQueueSubmit=function(queuePtr,commandCount,commands){queuePtr=bigintToI53Checked(queuePtr);commandCount=bigintToI53Checked(commandCount);commands=bigintToI53Checked(commands);var queue=WebGPU.getJsObject(queuePtr);var cmds=Array.from((growMemViews(),HEAP64).subarray(commands/8,(commands+commandCount*8)/8),id=>WebGPU.getJsObject(id));queue.submit(cmds)};function _wgpuQueueWriteBuffer(queuePtr,bufferPtr,bufferOffset,data,size){queuePtr=bigintToI53Checked(queuePtr);bufferPtr=bigintToI53Checked(bufferPtr);bufferOffset=bigintToI53Checked(bufferOffset);data=bigintToI53Checked(data);size=bigintToI53Checked(size);var queue=WebGPU.getJsObject(queuePtr);var buffer=WebGPU.getJsObject(bufferPtr);var subarray=(growMemViews(),HEAPU8).subarray(data,data+size);queue.writeBuffer(buffer,bufferOffset,subarray,0,size)}var Asyncify={instrumentWasmImports(imports){var importPattern=/^(invoke_.*|__asyncjs__.*)$/;for(let[x,original]of Object.entries(imports)){if(typeof original=="function"){let isAsyncifyImport=original.isAsync||importPattern.test(x);if(isAsyncifyImport){imports[x]=original=new WebAssembly.Suspending(original)}}}},instrumentFunction(original){var wrapper=(...args)=>original(...args);return wrapper},instrumentWasmExports(exports){var exportPattern=/^(wllama_start|wllama_action|main|__main_argc_argv)$/;Asyncify.asyncExports=new Set;var ret={};for(let[x,original]of Object.entries(exports)){if(typeof original=="function"){let isAsyncifyExport=exportPattern.test(x);if(isAsyncifyExport){Asyncify.asyncExports.add(original);original=Asyncify.makeAsyncFunction(original)}var wrapper=Asyncify.instrumentFunction(original);ret[x]=wrapper}else{ret[x]=original}}return ret},asyncExports:null,isAsyncExport(func){return Asyncify.asyncExports?.has(func)},handleAsync:async startAsync=>{runtimeKeepalivePush();try{return await startAsync()}finally{runtimeKeepalivePop()}},handleSleep:startAsync=>Asyncify.handleAsync(()=>new Promise(startAsync)),makeAsyncFunction(original){return WebAssembly.promising(original)}};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{(growMemViews(),HEAP8).set(array,buffer)};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={pointer:p=>BigInt(p),string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return BigInt(ret)},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return BigInt(ret)}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(Number(ret))}if(returnType==="pointer")return Number(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var FS_createPath=(...args)=>FS.createPath(...args);var FS_unlink=(...args)=>FS.unlink(...args);var FS_createLazyFile=(...args)=>FS.createLazyFile(...args);var FS_createDevice=(...args)=>FS.createDevice(...args);PThread.init();FS.createPreloadedFile=FS_createPreloadedFile;FS.preloadFile=FS_preloadFile;FS.staticInit();{initMemory();if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(Module["preloadPlugins"])preloadPlugins=Module["preloadPlugins"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()()}}}Module["ENV"]=ENV;Module["mmapAlloc"]=mmapAlloc;Module["wasmMemory"]=wasmMemory;Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["FS_preloadFile"]=FS_preloadFile;Module["FS_unlink"]=FS_unlink;Module["FS_createPath"]=FS_createPath;Module["FS_createDevice"]=FS_createDevice;Module["FS"]=FS;Module["FS_createDataFile"]=FS_createDataFile;Module["FS_createLazyFile"]=FS_createLazyFile;Module["MEMFS"]=MEMFS;var proxiedFunctionTable=[_proc_exit,exitOnMainThread,pthreadCreateProxied,___syscall_fcntl64,___syscall_fstat64,___syscall_getcwd,___syscall_getdents64,___syscall_ioctl,___syscall_lstat64,___syscall_newfstatat,___syscall_openat,___syscall_stat64,__mmap_js,__munmap_js,__setitimer_js,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function __asyncjs__js_file_read(path_ptr,offset,req_size,out_ptr){return Asyncify.handleAsync(async()=>await _wllama_js_file_read(UTF8ToString(Number(path_ptr)),Number(offset),Number(req_size),Number(out_ptr)))}__asyncjs__js_file_read.sig="jjjjj";var _malloc,_free,_wllama_malloc,_wllama_start,_wllama_action,_wllama_exit,_wllama_debug,_main,_emwgpuCreateBindGroup,_emwgpuCreateBindGroupLayout,_emwgpuCreateCommandBuffer,_emwgpuCreateCommandEncoder,_emwgpuCreateComputePassEncoder,_emwgpuCreateComputePipeline,_emwgpuCreateExternalTexture,_emwgpuCreatePipelineLayout,_emwgpuCreateQuerySet,_emwgpuCreateRenderBundle,_emwgpuCreateRenderBundleEncoder,_emwgpuCreateRenderPassEncoder,_emwgpuCreateRenderPipeline,_emwgpuCreateSampler,_emwgpuCreateSurface,_emwgpuCreateTexture,_emwgpuCreateTextureView,_emwgpuCreateAdapter,_emwgpuCreateBuffer,_emwgpuCreateDevice,_emwgpuCreateQueue,_emwgpuCreateShaderModule,_emwgpuOnDeviceLostCompleted,_emwgpuOnMapAsyncCompleted,_emwgpuOnRequestAdapterCompleted,_emwgpuOnRequestDeviceCompleted,_emwgpuOnWorkDoneCompleted,_emwgpuOnUncapturedError,__emscripten_tls_init,_pthread_self,_emscripten_builtin_memalign,__emscripten_thread_init,__emscripten_thread_crashed,__emscripten_run_js_on_main_thread,__emscripten_thread_free_data,__emscripten_thread_exit,__emscripten_timeout,__emscripten_check_mailbox,_memalign,___trap,_emscripten_stack_set_limits,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,__indirect_function_table,wasmTable;function assignWasmExports(wasmExports){_malloc=wasmExports["malloc"];_free=wasmExports["free"];_wllama_malloc=Module["_wllama_malloc"]=wasmExports["wllama_malloc"];_wllama_start=Module["_wllama_start"]=wasmExports["wllama_start"];_wllama_action=Module["_wllama_action"]=wasmExports["wllama_action"];_wllama_exit=Module["_wllama_exit"]=wasmExports["wllama_exit"];_wllama_debug=Module["_wllama_debug"]=wasmExports["wllama_debug"];_main=Module["_main"]=wasmExports["main"];_emwgpuCreateBindGroup=wasmExports["emwgpuCreateBindGroup"];_emwgpuCreateBindGroupLayout=wasmExports["emwgpuCreateBindGroupLayout"];_emwgpuCreateCommandBuffer=wasmExports["emwgpuCreateCommandBuffer"];_emwgpuCreateCommandEncoder=wasmExports["emwgpuCreateCommandEncoder"];_emwgpuCreateComputePassEncoder=wasmExports["emwgpuCreateComputePassEncoder"];_emwgpuCreateComputePipeline=wasmExports["emwgpuCreateComputePipeline"];_emwgpuCreateExternalTexture=wasmExports["emwgpuCreateExternalTexture"];_emwgpuCreatePipelineLayout=wasmExports["emwgpuCreatePipelineLayout"];_emwgpuCreateQuerySet=wasmExports["emwgpuCreateQuerySet"];_emwgpuCreateRenderBundle=wasmExports["emwgpuCreateRenderBundle"];_emwgpuCreateRenderBundleEncoder=wasmExports["emwgpuCreateRenderBundleEncoder"];_emwgpuCreateRenderPassEncoder=wasmExports["emwgpuCreateRenderPassEncoder"];_emwgpuCreateRenderPipeline=wasmExports["emwgpuCreateRenderPipeline"];_emwgpuCreateSampler=wasmExports["emwgpuCreateSampler"];_emwgpuCreateSurface=wasmExports["emwgpuCreateSurface"];_emwgpuCreateTexture=wasmExports["emwgpuCreateTexture"];_emwgpuCreateTextureView=wasmExports["emwgpuCreateTextureView"];_emwgpuCreateAdapter=wasmExports["emwgpuCreateAdapter"];_emwgpuCreateBuffer=wasmExports["emwgpuCreateBuffer"];_emwgpuCreateDevice=wasmExports["emwgpuCreateDevice"];_emwgpuCreateQueue=wasmExports["emwgpuCreateQueue"];_emwgpuCreateShaderModule=wasmExports["emwgpuCreateShaderModule"];_emwgpuOnDeviceLostCompleted=wasmExports["emwgpuOnDeviceLostCompleted"];_emwgpuOnMapAsyncCompleted=wasmExports["emwgpuOnMapAsyncCompleted"];_emwgpuOnRequestAdapterCompleted=wasmExports["emwgpuOnRequestAdapterCompleted"];_emwgpuOnRequestDeviceCompleted=wasmExports["emwgpuOnRequestDeviceCompleted"];_emwgpuOnWorkDoneCompleted=wasmExports["emwgpuOnWorkDoneCompleted"];_emwgpuOnUncapturedError=wasmExports["emwgpuOnUncapturedError"];__emscripten_tls_init=wasmExports["_emscripten_tls_init"];_pthread_self=wasmExports["pthread_self"];_emscripten_builtin_memalign=wasmExports["emscripten_builtin_memalign"];__emscripten_thread_init=wasmExports["_emscripten_thread_init"];__emscripten_thread_crashed=wasmExports["_emscripten_thread_crashed"];__emscripten_run_js_on_main_thread=wasmExports["_emscripten_run_js_on_main_thread"];__emscripten_thread_free_data=wasmExports["_emscripten_thread_free_data"];__emscripten_thread_exit=wasmExports["_emscripten_thread_exit"];__emscripten_timeout=wasmExports["_emscripten_timeout"];__emscripten_check_mailbox=wasmExports["_emscripten_check_mailbox"];_memalign=wasmExports["memalign"];___trap=wasmExports["__trap"];_emscripten_stack_set_limits=wasmExports["emscripten_stack_set_limits"];__emscripten_stack_restore=wasmExports["_emscripten_stack_restore"];__emscripten_stack_alloc=wasmExports["_emscripten_stack_alloc"];_emscripten_stack_get_current=wasmExports["emscripten_stack_get_current"];__indirect_function_table=wasmTable=wasmExports["__indirect_function_table"]}var wasmImports;function assignWasmImports(){wasmImports={__asyncjs__js_file_read,__pthread_create_js:___pthread_create_js,__syscall_fcntl64:___syscall_fcntl64,__syscall_getcwd:___syscall_getcwd,__syscall_getdents64:___syscall_getdents64,__syscall_ioctl:___syscall_ioctl,__syscall_openat:___syscall_openat,__syscall_stat64:___syscall_stat64,_abort_js:__abort_js,_emscripten_init_main_thread_js:__emscripten_init_main_thread_js,_emscripten_notify_mailbox_postmessage:__emscripten_notify_mailbox_postmessage,_emscripten_receive_on_main_thread_js:__emscripten_receive_on_main_thread_js,_emscripten_runtime_keepalive_clear:__emscripten_runtime_keepalive_clear,_emscripten_thread_cleanup:__emscripten_thread_cleanup,_emscripten_thread_mailbox_await:__emscripten_thread_mailbox_await,_emscripten_thread_set_strongref:__emscripten_thread_set_strongref,_localtime_js:__localtime_js,_mmap_js:__mmap_js,_munmap_js:__munmap_js,_setitimer_js:__setitimer_js,_tzset_js:__tzset_js,clock_time_get:_clock_time_get,emscripten_check_blocking_allowed:_emscripten_check_blocking_allowed,emscripten_date_now:_emscripten_date_now,emscripten_exit_with_live_runtime:_emscripten_exit_with_live_runtime,emscripten_get_heap_max:_emscripten_get_heap_max,emscripten_get_now:_emscripten_get_now,emscripten_has_asyncify:_emscripten_has_asyncify,emscripten_num_logical_cores:_emscripten_num_logical_cores,emscripten_resize_heap:_emscripten_resize_heap,emwgpuAdapterRequestDevice:_emwgpuAdapterRequestDevice,emwgpuBufferDestroy:_emwgpuBufferDestroy,emwgpuBufferGetConstMappedRange:_emwgpuBufferGetConstMappedRange,emwgpuBufferMapAsync:_emwgpuBufferMapAsync,emwgpuBufferUnmap:_emwgpuBufferUnmap,emwgpuDelete:_emwgpuDelete,emwgpuDeviceCreateBuffer:_emwgpuDeviceCreateBuffer,emwgpuDeviceCreateShaderModule:_emwgpuDeviceCreateShaderModule,emwgpuDeviceDestroy:_emwgpuDeviceDestroy,emwgpuInstanceRequestAdapter:_emwgpuInstanceRequestAdapter,emwgpuQueueOnSubmittedWorkDone:_emwgpuQueueOnSubmittedWorkDone,emwgpuWaitAny:_emwgpuWaitAny,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,exit:_exit,fd_close:_fd_close,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,memory:wasmMemory,proc_exit:_proc_exit,random_get:_random_get,wgpuAdapterGetFeatures:_wgpuAdapterGetFeatures,wgpuAdapterGetInfo:_wgpuAdapterGetInfo,wgpuAdapterGetLimits:_wgpuAdapterGetLimits,wgpuAdapterHasFeature:_wgpuAdapterHasFeature,wgpuBufferGetSize:_wgpuBufferGetSize,wgpuCommandEncoderBeginComputePass:_wgpuCommandEncoderBeginComputePass,wgpuCommandEncoderCopyBufferToBuffer:_wgpuCommandEncoderCopyBufferToBuffer,wgpuCommandEncoderFinish:_wgpuCommandEncoderFinish,wgpuComputePassEncoderDispatchWorkgroups:_wgpuComputePassEncoderDispatchWorkgroups,wgpuComputePassEncoderEnd:_wgpuComputePassEncoderEnd,wgpuComputePassEncoderSetBindGroup:_wgpuComputePassEncoderSetBindGroup,wgpuComputePassEncoderSetPipeline:_wgpuComputePassEncoderSetPipeline,wgpuComputePipelineGetBindGroupLayout:_wgpuComputePipelineGetBindGroupLayout,wgpuDeviceCreateBindGroup:_wgpuDeviceCreateBindGroup,wgpuDeviceCreateCommandEncoder:_wgpuDeviceCreateCommandEncoder,wgpuDeviceCreateComputePipeline:_wgpuDeviceCreateComputePipeline,wgpuQueueSubmit:_wgpuQueueSubmit,wgpuQueueWriteBuffer:_wgpuQueueWriteBuffer}}function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_pp=f=>a0=>Number(f(BigInt(a0)));var makeWrapper__p=f=>a0=>f(BigInt(a0));var makeWrapper___PP=f=>(a0,a1,a2)=>f(a0,BigInt(a1?a1:0),BigInt(a2?a2:0));var makeWrapper_p=f=>()=>Number(f());var makeWrapper_ppp=f=>(a0,a1)=>Number(f(BigInt(a0),BigInt(a1)));var makeWrapper__pp_ppp=f=>(a0,a1,a2,a3,a4,a5)=>f(BigInt(a0),BigInt(a1),a2,BigInt(a3),BigInt(a4),BigInt(a5));var makeWrapper__p_____=f=>(a0,a1,a2,a3,a4,a5)=>f(BigInt(a0),a1,a2,a3,a4,a5);var makeWrapper___p_p_=f=>(a0,a1,a2,a3,a4)=>f(a0,BigInt(a1),a2,BigInt(a3),a4);var makeWrapper__pp=f=>(a0,a1)=>f(BigInt(a0),BigInt(a1));wasmExports["malloc"]=makeWrapper_pp(wasmExports["malloc"]);wasmExports["free"]=makeWrapper__p(wasmExports["free"]);wasmExports["main"]=makeWrapper___PP(wasmExports["main"]);wasmExports["pthread_self"]=makeWrapper_p(wasmExports["pthread_self"]);wasmExports["emscripten_builtin_memalign"]=makeWrapper_ppp(wasmExports["emscripten_builtin_memalign"]);wasmExports["_emscripten_run_callback_on_thread"]=makeWrapper__pp_ppp(wasmExports["_emscripten_run_callback_on_thread"]);wasmExports["_emscripten_thread_init"]=makeWrapper__p_____(wasmExports["_emscripten_thread_init"]);wasmExports["_emscripten_run_js_on_main_thread"]=makeWrapper___p_p_(wasmExports["_emscripten_run_js_on_main_thread"]);wasmExports["_emscripten_thread_free_data"]=makeWrapper__p(wasmExports["_emscripten_thread_free_data"]);wasmExports["_emscripten_thread_exit"]=makeWrapper__p(wasmExports["_emscripten_thread_exit"]);wasmExports["memalign"]=makeWrapper_ppp(wasmExports["memalign"]);wasmExports["emscripten_stack_set_limits"]=makeWrapper__pp(wasmExports["emscripten_stack_set_limits"]);wasmExports["_emscripten_stack_restore"]=makeWrapper__p(wasmExports["_emscripten_stack_restore"]);wasmExports["_emscripten_stack_alloc"]=makeWrapper_pp(wasmExports["_emscripten_stack_alloc"]);wasmExports["emscripten_stack_get_current"]=makeWrapper_p(wasmExports["emscripten_stack_get_current"]);return wasmExports}async function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,BigInt(argv));ret=await ret;exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){dependenciesFulfilled=run;return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}async function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();Module["onRuntimeInitialized"]?.();var noInitialRun=Module["noInitialRun"]||false;if(!noInitialRun)await callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}var wasmExports;if(!ENVIRONMENT_IS_PTHREAD){createWasm();run()} diff --git a/src/wasm/wllama.wasm b/src/wasm/wllama.wasm index 19da7e1f871002f7f35dc88dc5af4bc670f26c5a..87ccc25ed0ac7c507ebd01b36053291891707adf 100755 GIT binary patch delta 463 zcmWm0)lFRi007YNfLFXY#hq8&i%XFfm*Q@vMGG6i$4wZ4gaMd)&FRNU z&g0ul>?5~9Ob`lUgSa66Dg6E#3J>4EzlNJ)67C|=FrWDUM3P7*g;dh`Ogb54l0`N- zq`9>Gr^w3Km{R}Y3 z5W{?Dgi*#A=LbKTV3H}OnPHYW=2>8oUo5fA3ahNK&IX%ovCR&;`iGRP#0 zY(A4iE_r+*p8~#8ND;-9P|7#HQ${%vDyXE2YHIjFlv?Vjr-4SAXr_f$+GwYPPJYrw zH$A*x`{-wYL53J+gi(Gm#yAs9GQ~7A%reJ33oNq4GApdI#yT5pvc)#P+2Id=*=3J? W4mjk9V@~+TDQBENM4m1#Z{GkWHp-v? diff --git a/src/wllama.test.ts b/src/wllama.test.ts index 0533b848..83e85160 100644 --- a/src/wllama.test.ts +++ b/src/wllama.test.ts @@ -1,10 +1,17 @@ import { test, expect } from 'vitest'; -import { Wllama } from './wllama'; +import { Wllama, type WllamaConfig } from './wllama'; const CONFIG_PATHS = { default: '/src/wasm/wllama.wasm', }; +// TODO: enable compat mode in tests once test infrastructure supports Safari/asyncify +const createWllama = (config = CONFIG_PATHS, options: WllamaConfig = {}) => { + const w = new Wllama(config, options); + w.setCompat(null); + return w; +}; + const TINY_MODEL = 'https://huggingface.co/ggml-org/models/resolve/main/tinyllamas/stories15M-q4_0.gguf'; @@ -14,7 +21,7 @@ const SPLIT_MODEL = const EMBD_MODEL = TINY_MODEL; // for better speed test.sequential('loads single model file', async () => { - const wllama = new Wllama(CONFIG_PATHS); + const wllama = createWllama(); await wllama.loadModelFromUrl(TINY_MODEL, { n_ctx: 1024, @@ -33,7 +40,7 @@ test.sequential('loads single model file', async () => { }); test.sequential('loads single model file from HF', async () => { - const wllama = new Wllama(CONFIG_PATHS); + const wllama = createWllama(); await wllama.loadModelFromHF( { repo: 'ggml-org/models', file: 'tinyllamas/stories15M-q4_0.gguf' }, @@ -48,7 +55,7 @@ test.sequential('loads single model file from HF', async () => { }); test.sequential('loads single thread model', async () => { - const wllama = new Wllama(CONFIG_PATHS); + const wllama = createWllama(); await wllama.loadModelFromUrl(TINY_MODEL, { n_ctx: 1024, @@ -68,7 +75,7 @@ test.sequential('loads single thread model', async () => { }); test.sequential('loads model with progress callback', async () => { - const wllama = new Wllama(CONFIG_PATHS); + const wllama = createWllama(); let progressCalled = false; let lastLoaded = 0; @@ -90,7 +97,7 @@ test.sequential('loads model with progress callback', async () => { }); test.sequential('loads split model files', async () => { - const wllama = new Wllama(CONFIG_PATHS, { + const wllama = createWllama(CONFIG_PATHS, { parallelDownloads: 5, }); @@ -103,7 +110,7 @@ test.sequential('loads split model files', async () => { }); test.sequential('generates completion', async () => { - const wllama = new Wllama(CONFIG_PATHS); + const wllama = createWllama(); await wllama.loadModelFromUrl(TINY_MODEL, { n_ctx: 1024, @@ -126,7 +133,7 @@ test.sequential('generates completion', async () => { }); test.sequential('abort signal', async () => { - const wllama = new Wllama(CONFIG_PATHS); + const wllama = createWllama(); await wllama.loadModelFromUrl(TINY_MODEL, { n_ctx: 1024, @@ -159,7 +166,7 @@ test.sequential('abort signal', async () => { }); test.sequential('generates embeddings', async () => { - const wllama = new Wllama(CONFIG_PATHS); + const wllama = createWllama(); await wllama.loadModelFromUrl(EMBD_MODEL, { n_ctx: 1024, @@ -193,7 +200,7 @@ test.sequential('generates embeddings', async () => { }); test.sequential('allowOffline', async () => { - const wllama = new Wllama(CONFIG_PATHS, { + const wllama = createWllama(CONFIG_PATHS, { allowOffline: true, }); @@ -214,7 +221,7 @@ test.sequential('allowOffline', async () => { }); test.sequential('generates chat completion', async () => { - const wllama = new Wllama(CONFIG_PATHS); + const wllama = createWllama(); await wllama.loadModelFromUrl(TINY_MODEL, { n_ctx: 1024, @@ -243,7 +250,7 @@ test.sequential('generates chat completion', async () => { }); test.sequential('generates chat completion using async iterator', async () => { - const wllama = new Wllama(CONFIG_PATHS); + const wllama = createWllama(); await wllama.loadModelFromUrl(TINY_MODEL, { n_ctx: 1024, @@ -280,7 +287,7 @@ test.sequential('generates chat completion using async iterator', async () => { }); test.sequential('cleans up resources', async () => { - const wllama = new Wllama(CONFIG_PATHS); + const wllama = createWllama(); await wllama.loadModelFromUrl(TINY_MODEL); expect(wllama.isModelLoaded()).toBe(true); await wllama.exit(); diff --git a/src/wllama.ts b/src/wllama.ts index faa744dc..21d568f5 100644 --- a/src/wllama.ts +++ b/src/wllama.ts @@ -6,6 +6,7 @@ import { checkEnvironmentCompatible, isFirefox, isString, + isSupportJSPI, isSupportMultiThread, isSupportWebGPU, MMPROJ_FILE_NAME, @@ -495,7 +496,7 @@ export class Wllama { this.logger().warn( 'On Firefox, consider enabling "javascript.options.wasm_js_promise_integration" in "about:config" to improve performance.' ); - } else { + } else if (isSupportJSPI()) { this.logger().warn( 'WebGPU is disabled on Firefox due to missing JSPI support. Please consider enabling compat more, or enabling "javascript.options.wasm_js_promise_integration" in "about:config".' ); diff --git a/src/wllama.wgpu.test.ts b/src/wllama.wgpu.test.ts index 377075fe..cfaeac51 100644 --- a/src/wllama.wgpu.test.ts +++ b/src/wllama.wgpu.test.ts @@ -5,16 +5,23 @@ const CONFIG_PATHS = { default: '/src/wasm/wllama.wasm', }; +// TODO: enable compat mode in tests once test infrastructure supports Safari/asyncify +const createWllama = (): Wllama => { + const w = new Wllama(CONFIG_PATHS); + w.setCompat(null); + return w; +}; + const TINY_MODEL = 'https://huggingface.co/ggml-org/models/resolve/main/tinyllamas/stories15M-q4_0.gguf'; test('WebGPU is supported in this browser', () => { - const wllama = new Wllama(CONFIG_PATHS); + const wllama = createWllama(); expect(wllama.isSupportWebGPU()).toBe(true); }); test.sequential('loads model with WebGPU', async () => { - const wllama = new Wllama(CONFIG_PATHS); + const wllama = createWllama(); expect(wllama.isSupportWebGPU()).toBe(true); @@ -30,7 +37,7 @@ test.sequential('loads model with WebGPU', async () => { }); test.sequential('generates completion with WebGPU', async () => { - const wllama = new Wllama(CONFIG_PATHS); + const wllama = createWllama(); expect(wllama.isSupportWebGPU()).toBe(true); diff --git a/src/worker.ts b/src/worker.ts index cbc54971..53dd474b 100644 --- a/src/worker.ts +++ b/src/worker.ts @@ -113,6 +113,11 @@ export class ProxyToWorker { async getModuleCode(): Promise { if (!this.resources.jsPath) { + if (this.resources.compat) { + throw new Error( + 'compat mode is enabled but no jsPath was provided. Pass a worker JS via setCompat() or install @wllama/wllama-compat.' + ); + } return WLLAMA_EMSCRIPTEN_CODE; } else if ((this.resources.jsPath as { code: string }).code) { return (this.resources.jsPath as { code: string }).code; diff --git a/src/workers-code/generated.ts b/src/workers-code/generated.ts index 5dce697d..cf883f23 100644 --- a/src/workers-code/generated.ts +++ b/src/workers-code/generated.ts @@ -7,5 +7,5 @@ export const LLAMA_CPP_WORKER_CODE = "// Start the main llama.cpp\nlet wllamaMal export const OPFS_UTILS_WORKER_CODE = "let accessHandle;\nlet abortController = new AbortController();\n\nasync function openFile(filename) {\n const opfsRoot = await navigator.storage.getDirectory();\n const cacheDir = await opfsRoot.getDirectoryHandle('cache', { create: true });\n const fileHandler = await cacheDir.getFileHandle(filename, { create: true });\n accessHandle = await fileHandler.createSyncAccessHandle();\n accessHandle.truncate(0); // clear file content\n}\n\nasync function writeFile(buf) {\n accessHandle.write(buf);\n}\n\nasync function closeFile() {\n accessHandle.flush();\n accessHandle.close();\n}\n\nasync function writeTextFile(filename, str) {\n await openFile(filename);\n await writeFile(new TextEncoder().encode(str));\n await closeFile();\n}\n\nconst throttled = (func, delay) => {\n let lastRun = 0;\n return (...args) => {\n const now = Date.now();\n if (now - lastRun > delay) {\n lastRun = now;\n func.apply(null, args);\n }\n };\n};\n\nconst assertNonNull = (val) => {\n if (val === null || val === undefined) {\n throw new Error('OPFS Worker: Assertion failed');\n }\n};\n\n// respond to main thread\nconst resOK = () => postMessage({ ok: true });\nconst resProgress = (loaded, total) =>\n postMessage({ progress: { loaded, total } });\nconst resErr = (err) => postMessage({ err });\n\nonmessage = async (e) => {\n try {\n if (!e.data) return;\n\n /**\n * @param {Object} e.data\n *\n * Fine-control FS actions:\n * - { action: 'open', filename: 'string' }\n * - { action: 'write', buf: ArrayBuffer }\n * - { action: 'close' }\n *\n * Simple write API:\n * - { action: 'write-simple', filename: 'string', buf: ArrayBuffer }\n *\n * Download API:\n * - { action: 'download', url: 'string', filename: 'string', options: Object, metadataFileName: 'string' }\n * - { action: 'download-abort' }\n */\n const {\n action,\n filename,\n buf,\n url,\n options,\n metadataFileName,\n metadataAdditional,\n } = e.data;\n\n if (action === 'open') {\n assertNonNull(filename);\n await openFile(filename);\n return resOK();\n } else if (action === 'write') {\n assertNonNull(buf);\n await writeFile(buf);\n return resOK();\n } else if (action === 'close') {\n await closeFile();\n return resOK();\n } else if (action === 'write-simple') {\n assertNonNull(filename);\n assertNonNull(buf);\n await openFile(filename);\n await writeFile(buf);\n await closeFile();\n return resOK();\n } else if (action === 'download') {\n assertNonNull(url);\n assertNonNull(filename);\n assertNonNull(metadataFileName);\n assertNonNull(options);\n assertNonNull(options.aborted);\n abortController = new AbortController();\n if (options.aborted) abortController.abort();\n const response = await fetch(url, {\n ...options,\n signal: abortController.signal,\n });\n const contentLength = response.headers.get('content-length');\n const etag = (response.headers.get('etag') || '').replace(\n /[^A-Za-z0-9]/g,\n ''\n );\n const total = parseInt(contentLength, 10);\n const reader = response.body.getReader();\n await openFile(filename);\n let loaded = 0;\n const throttledProgress = throttled(resProgress, 100);\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n loaded += value.byteLength;\n await writeFile(value);\n throttledProgress(loaded, total);\n }\n resProgress(total, total); // 100% done\n await closeFile();\n // make sure this is in-sync with CacheEntryMetadata\n await writeTextFile(\n metadataFileName,\n JSON.stringify({\n originalURL: url,\n originalSize: total,\n etag,\n ...metadataAdditional,\n })\n );\n return resOK();\n } else if (action === 'download-abort') {\n if (abortController) {\n abortController.abort();\n }\n return;\n }\n\n throw new Error('OPFS Worker: Invalid action', e.data);\n } catch (err) {\n return resErr(err);\n }\n};\n"; -export const WLLAMA_EMSCRIPTEN_CODE = "var Module=typeof Module!=\"undefined\"?Module:{};var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!=\"renderer\";var ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&self.name?.startsWith(\"em-pthread\");if(ENVIRONMENT_IS_NODE){var worker_threads=require(\"worker_threads\");global.Worker=worker_threads.Worker;ENVIRONMENT_IS_WORKER=!worker_threads.isMainThread;ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&worker_threads[\"workerData\"]==\"em-pthread\"}var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=globalThis.document?.currentScript?.src;if(typeof __filename!=\"undefined\"){_scriptName=__filename}else if(ENVIRONMENT_IS_WORKER){_scriptName=self.location.href}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require(\"fs\");scriptDirectory=__dirname+\"/\";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:\"utf8\");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\\\/g,\"/\")}arguments_=process.argv.slice(2);if(typeof module!=\"undefined\"){module[\"exports\"]=Module}quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(\".\",_scriptName).href}catch{}if(!ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:\"same-origin\"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+\" : \"+response.url)}}}else{}var defaultPrint=console.log.bind(console);var defaultPrintErr=console.error.bind(console);if(ENVIRONMENT_IS_NODE){var utils=require(\"util\");var stringify=a=>typeof a==\"object\"?utils.inspect(a):a;defaultPrint=(...args)=>fs.writeSync(1,args.map(stringify).join(\" \")+\"\\n\");defaultPrintErr=(...args)=>fs.writeSync(2,args.map(stringify).join(\" \")+\"\\n\")}var out=defaultPrint;var err=defaultPrintErr;var wasmBinary;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var isFileURI=filename=>filename.startsWith(\"file://\");function growMemViews(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}}if(ENVIRONMENT_IS_NODE&&ENVIRONMENT_IS_PTHREAD){var parentPort=worker_threads[\"parentPort\"];parentPort.on(\"message\",msg=>global.onmessage?.({data:msg}));Object.assign(globalThis,{self:global,postMessage:msg=>parentPort[\"postMessage\"](msg)});process.on(\"uncaughtException\",err=>{postMessage({cmd:\"uncaughtException\",error:err});process.exit(1)})}var startWorker;if(ENVIRONMENT_IS_PTHREAD){var initializedJS=false;self.onunhandledrejection=e=>{throw e.reason||e};async function handleMessage(e){try{var msgData=e[\"data\"];var cmd=msgData.cmd;if(cmd===\"load\"){let messageQueue=[];self.onmessage=e=>messageQueue.push(e);startWorker=()=>{postMessage({cmd:\"loaded\"});for(let msg of messageQueue){handleMessage(msg)}self.onmessage=handleMessage};for(const handler of msgData.handlers){if(!Module[handler]||Module[handler].proxy){Module[handler]=(...args)=>{postMessage({cmd:\"callHandler\",handler,args})};if(handler==\"print\")out=Module[handler];if(handler==\"printErr\")err=Module[handler]}}wasmMemory=msgData.wasmMemory;updateMemoryViews();wasmModule=msgData.wasmModule;createWasm();run()}else if(cmd===\"run\"){establishStackSpace(msgData.pthread_ptr);__emscripten_thread_init(msgData.pthread_ptr,0,0,1,0,0);PThread.threadInitTLS();__emscripten_thread_mailbox_await(msgData.pthread_ptr);if(!initializedJS){initializedJS=true}try{await invokeEntryPoint(msgData.start_routine,msgData.arg)}catch(ex){if(ex!=\"unwind\"){throw ex}}}else if(msgData.target===\"setimmediate\"){}else if(cmd===\"checkMailbox\"){if(initializedJS){checkMailbox()}}else if(cmd){err(`worker: received unknown command ${cmd}`);err(msgData)}}catch(ex){__emscripten_thread_crashed();throw ex}}self.onmessage=handleMessage}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function initMemory(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||134217728;wasmMemory=new WebAssembly.Memory({initial:BigInt(INITIAL_MEMORY/65536),maximum:65536n,shared:true,address:\"i64\"})}updateMemoryViews()}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return startWorker();if(!Module[\"noFSInit\"]&&!FS.initialized)FS.init();TTY.init();wasmExports[\"__wasm_call_ctors\"]();FS.ignorePermissions=false}function preMain(){}function postRun(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module[\"onAbort\"]?.(what);what=\"Aborted(\"+what+\")\";err(what);ABORT=true;what+=\". Build with -sASSERTIONS for more info.\";if(runtimeInitialized){___trap()}var e=new WebAssembly.RuntimeError(what);throw e}var wasmBinaryFile;function findWasmBinary(){return locateFile(\"wllama.wasm\")}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:\"same-origin\"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err(\"falling back to ArrayBuffer instantiation\")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){assignWasmImports();if(!wasmImports.__instrumented){wasmImports.__instrumented=true;Asyncify.instrumentWasmImports(wasmImports)}var imports={env:wasmImports,wasi_snapshot_preview1:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmExports=applySignatureConversions(wasmExports);registerTLSInit(wasmExports[\"_emscripten_tls_init\"]);assignWasmExports(wasmExports);wasmModule=module;removeRunDependency(\"wasm-instantiate\");return wasmExports}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){return receiveInstance(result[\"instance\"],result[\"module\"])}var info=getWasmImports();if(Module[\"instantiateWasm\"]){return new Promise((resolve,reject)=>{Module[\"instantiateWasm\"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}if(ENVIRONMENT_IS_PTHREAD){var instance=new WebAssembly.Instance(wasmModule,getWasmImports());return receiveInstance(instance,wasmModule)}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name=\"ExitStatus\";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var terminateWorker=worker=>{worker.terminate();worker.onmessage=e=>{}};var cleanupThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];PThread.returnWorkerToPool(worker)};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module[\"monitorRunDependencies\"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}};var addRunDependency=id=>{runDependencies++;Module[\"monitorRunDependencies\"]?.(runDependencies)};var spawnThread=threadParams=>{var worker=PThread.getNewWorker();if(!worker){return 6}PThread.runningWorkers.push(worker);PThread.pthreads[threadParams.pthread_ptr]=worker;worker.pthread_ptr=threadParams.pthread_ptr;var msg={cmd:\"run\",start_routine:threadParams.startRoutine,arg:threadParams.arg,pthread_ptr:threadParams.pthread_ptr};if(ENVIRONMENT_IS_NODE){worker.unref()}worker.postMessage(msg,threadParams.transferList);return 0};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var stackSave=()=>_emscripten_stack_get_current();var stackRestore=val=>__emscripten_stack_restore(val);var stackAlloc=sz=>__emscripten_stack_alloc(sz);var proxyToMainThread=(funcIndex,emAsmAddr,sync,...callArgs)=>{var serializedNumCallArgs=callArgs.length*2;var sp=stackSave();var args=stackAlloc(serializedNumCallArgs*8);var b=args/8;for(var i=0;i{EXITSTATUS=status;if(ENVIRONMENT_IS_PTHREAD){exitOnMainThread(status);throw\"unwind\"}_proc_exit(status)};var _exit=exitJS;var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init(){if(!ENVIRONMENT_IS_PTHREAD){PThread.initMainThread()}},initMainThread(){var pthreadPoolSize=Module[\"pthreadPoolSize\"];while(pthreadPoolSize--){PThread.allocateUnusedWorker()}addOnPreRun(async()=>{var pthreadPoolReady=PThread.loadWasmModuleToAllWorkers();addRunDependency(\"loading-workers\");await pthreadPoolReady;removeRunDependency(\"loading-workers\")})},terminateAllThreads:()=>{for(var worker of PThread.runningWorkers){terminateWorker(worker)}for(var worker of PThread.unusedWorkers){terminateWorker(worker)}PThread.unusedWorkers=[];PThread.runningWorkers=[];PThread.pthreads={}},returnWorkerToPool:worker=>{var pthread_ptr=worker.pthread_ptr;delete PThread.pthreads[pthread_ptr];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);worker.pthread_ptr=0;__emscripten_thread_free_data(pthread_ptr)},threadInitTLS(){PThread.tlsInitFunctions.forEach(f=>f())},loadWasmModuleToWorker:worker=>new Promise(onFinishedLoading=>{worker.onmessage=e=>{var d=e[\"data\"];var cmd=d.cmd;if(d.targetThread&&d.targetThread!=_pthread_self()){var targetWorker=PThread.pthreads[d.targetThread];if(targetWorker){targetWorker.postMessage(d,d.transferList)}else{err(`Internal error! Worker sent a message \"${cmd}\" to target pthread ${d.targetThread}, but that thread no longer exists!`)}return}if(cmd===\"checkMailbox\"){checkMailbox()}else if(cmd===\"spawnThread\"){spawnThread(d)}else if(cmd===\"cleanupThread\"){callUserCallback(()=>cleanupThread(d.thread))}else if(cmd===\"loaded\"){worker.loaded=true;if(ENVIRONMENT_IS_NODE&&!worker.pthread_ptr){worker.unref()}onFinishedLoading(worker)}else if(d.target===\"setimmediate\"){worker.postMessage(d)}else if(cmd===\"uncaughtException\"){worker.onerror(d.error)}else if(cmd===\"callHandler\"){Module[d.handler](...d.args)}else if(cmd){err(`worker sent an unknown command ${cmd}`)}};worker.onerror=e=>{var message=\"worker sent an error!\";err(`${message} ${e.filename}:${e.lineno}: ${e.message}`);throw e};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",data=>worker.onmessage({data}));worker.on(\"error\",e=>worker.onerror(e))}var handlers=[];var knownHandlers=[\"onExit\",\"onAbort\",\"print\",\"printErr\"];for(var handler of knownHandlers){if(Module.propertyIsEnumerable(handler)){handlers.push(handler)}}worker.postMessage({cmd:\"load\",handlers,wasmMemory,wasmModule})}),async loadWasmModuleToAllWorkers(){if(ENVIRONMENT_IS_PTHREAD){return}let pthreadPoolReady=Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker));return pthreadPoolReady},allocateUnusedWorker(){var worker;var pthreadMainJs=_scriptName;if(Module[\"mainScriptUrlOrBlob\"]){pthreadMainJs=Module[\"mainScriptUrlOrBlob\"];if(typeof pthreadMainJs!=\"string\"){pthreadMainJs=URL.createObjectURL(pthreadMainJs)}}worker=new Worker(pthreadMainJs,{workerData:\"em-pthread\",name:\"em-pthread\"});PThread.unusedWorkers.push(worker)},getNewWorker(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);function establishStackSpace(pthread_ptr){var stackHigh=Number((growMemViews(),HEAPU64)[(pthread_ptr+88)/8]);var stackSize=Number((growMemViews(),HEAPU64)[(pthread_ptr+96)/8]);var stackLow=stackHigh-stackSize;_emscripten_stack_set_limits(stackHigh,stackLow);stackRestore(stackHigh)}var wasmTableMirror=[];var getWasmTableEntry=funcPtr=>{funcPtr=Number(funcPtr);var func=wasmTableMirror[funcPtr];if(!func){wasmTableMirror[funcPtr]=func=wasmTable.get(BigInt(funcPtr));if(Asyncify.isAsyncExport(func)){wasmTableMirror[funcPtr]=func=Asyncify.makeAsyncFunction(func)}}return func};var invokeEntryPoint=async(ptr,arg)=>{runtimeKeepaliveCounter=0;noExitRuntime=0;var result=(a1=>WebAssembly.promising(getWasmTableEntry(ptr)).call(null,BigInt(a1)))(arg);function finish(result){if(keepRuntimeAlive()){EXITSTATUS=result;return}__emscripten_thread_exit(result)}result=await result;finish(result)};invokeEntryPoint.isAsync=true;var noExitRuntime=true;var registerTLSInit=tlsInitFunc=>PThread.tlsInitFunctions.push(tlsInitFunc);var wasmMemory;var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>numINT53_MAX?NaN:Number(num);var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.buffer instanceof ArrayBuffer?heapOrArray.subarray(idx,endPtr):heapOrArray.slice(idx,endPtr))}var str=\"\";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString((growMemViews(),HEAPU8),ptr,maxBytesToRead,ignoreNul):\"\";function pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(2,0,1,pthread_ptr,attr,startRoutine,arg);return ___pthread_create_js(pthread_ptr,attr,startRoutine,arg)}var _emscripten_has_threading_support=()=>!!globalThis.SharedArrayBuffer;function ___pthread_create_js(pthread_ptr,attr,startRoutine,arg){pthread_ptr=bigintToI53Checked(pthread_ptr);attr=bigintToI53Checked(attr);startRoutine=bigintToI53Checked(startRoutine);arg=bigintToI53Checked(arg);if(!_emscripten_has_threading_support()){return 6}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg)}if(error)return error;var threadParams={startRoutine,pthread_ptr,arg,transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}var syscallGetVarargP=()=>{var ret=Number((growMemViews(),HEAPU64)[SYSCALLS.varargs/8]);SYSCALLS.varargs+=8;return ret};var syscallGetVarargI=()=>{var ret=(growMemViews(),HEAP32)[+SYSCALLS.varargs/4];SYSCALLS.varargs+=4;return ret};var PATH={isAbs:path=>path.charAt(0)===\"/\",splitPath:filename=>{var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(p=>!!p),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\\/]+|\\/)\\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join(\"/\")),join2:(l,r)=>PATH.normalize(l+\"/\"+r)};var initRandomFill=()=>view=>view.set(crypto.getRandomValues(new Uint8Array(view.byteLength)));var randomFill=view=>{(randomFill=initRandomFill())(view)};var PATH_FS={resolve:(...args)=>{var resolvedPath=\"\",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!=\"string\"){throw new TypeError(\"Arguments to path.resolve must be strings\")}else if(!path){return\"\"}resolvedPath=path+\"/\"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(p=>!!p),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!==\"\")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split(\"/\"));var toParts=trim(to.split(\"/\"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++}}heap[outIdx]=0;return outIdx-startIdx};var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes(\"EOF\"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString(\"utf-8\")}}else if(globalThis.window?.prompt){result=window.prompt(\"Input: \");if(result!==null){result+=\"\\n\"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var zeroMemory=(ptr,size)=>(growMemViews(),HEAPU8).fill(0,ptr,ptr+size);var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(ptr)zeroMemory(ptr,size);return ptr};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,\"/\",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of[\"mode\",\"atime\",\"mtime\",\"ctime\"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){if(!MEMFS.doesNotExistError){MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack=\"\"}throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[\".\",\"..\",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var flagModes={r:0,\"r+\":2,w:512|64|1,\"w+\":512|64|2,a:1024|64|1,\"a+\":1024|64|2};var flags=flagModes[str];if(typeof flags==\"undefined\"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var getUniqueRunDependency=id=>id;var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!=\"undefined\")Browser.init();for(var plugin of preloadPlugins){if(plugin[\"canHandle\"](fullname)){return plugin[\"handle\"](byteArray,fullname)}}return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);addRunDependency(dep);try{var byteArray=url;if(typeof url==\"string\"){byteArray=await asyncLoad(url)}byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}}finally{removeRunDependency(dep)}};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name=\"ErrnoError\";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+\"/\"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split(\"/\").filter(p=>!!p);var current=FS.root;var current_path=\"/\";for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes(\"r\")&&!(node.mode&292)){return 2}else if(perms.includes(\"w\")&&!(node.mode&146)){return 2}else if(perms.includes(\"x\")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,\"wx\");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!==\"r\"||flags&(512|64)){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate==\"function\"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}for(var mount of mounts){if(mount.type.syncfs){mount.type.syncfs(mount,populate,done)}else{done(null)}}},mount(type,opts,mountpoint){var root=mountpoint===\"/\";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);for(var[hash,current]of Object.entries(FS.nameTable)){while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}}node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name===\".\"||name===\"..\"){throw new FS.ErrnoError(20)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split(\"/\");var d=\"\";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+=\"/\";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev==\"undefined\"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===\"\"){throw new FS.ErrnoError(44)}flags=typeof flags==\"string\"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path==\"object\"){node=path}else{isDirPath=path.endsWith(\"/\");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}if(Module[\"logReadFiles\"]&&!(flags&1)){if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||\"binary\";if(opts.encoding!==\"utf8\"&&opts.encoding!==\"binary\"){abort(`Invalid encoding type \"${opts.encoding}\"`)}var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding===\"utf8\"){buf=UTF8ArrayToString(buf)}FS.close(stream);return buf},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==\"string\"){data=new Uint8Array(intArrayFromString(data,true))}if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{abort(\"Unsupported data type\")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,\"x\");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir(\"/tmp\");FS.mkdir(\"/home\");FS.mkdir(\"/home/web_user\")},createDefaultDevices(){FS.mkdir(\"/dev\");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev(\"/dev/null\",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev(\"/dev/tty\",FS.makedev(5,0));FS.mkdev(\"/dev/tty1\",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice(\"/dev\",\"random\",randomByte);FS.createDevice(\"/dev\",\"urandom\",randomByte);FS.mkdir(\"/dev/shm\");FS.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories(){FS.mkdir(\"/proc\");var proc_self=FS.mkdir(\"/proc/self\");FS.mkdir(\"/proc/self/fd\");FS.mount({mount(){var node=FS.createNode(proc_self,\"fd\",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},\"/proc/self/fd\")},createStandardStreams(input,output,error){if(input){FS.createDevice(\"/dev\",\"stdin\",input)}else{FS.symlink(\"/dev/tty\",\"/dev/stdin\")}if(output){FS.createDevice(\"/dev\",\"stdout\",null,output)}else{FS.symlink(\"/dev/tty\",\"/dev/stdout\")}if(error){FS.createDevice(\"/dev\",\"stderr\",null,error)}else{FS.symlink(\"/dev/tty1\",\"/dev/stderr\")}var stdin=FS.open(\"/dev/stdin\",0);var stdout=FS.open(\"/dev/stdout\",1);var stderr=FS.open(\"/dev/stderr\",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){FS.initialized=true;input??=Module[\"stdin\"];output??=Module[\"stdout\"];error??=Module[\"stderr\"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path===\"/\"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent==\"string\"?parent:FS.getPath(parent);var parts=path.split(\"/\").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent==\"string\"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==\"string\"){var arr=new Array(data.length);for(var i=0,len=data.length;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open(\"HEAD\",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort(\"Couldn't load \"+url+\". Status: \"+xhr.status);var datalength=Number(xhr.getResponseHeader(\"Content-length\"));var header;var hasByteServing=(header=xhr.getResponseHeader(\"Accept-Ranges\"))&&header===\"bytes\";var usesGzip=(header=xhr.getResponseHeader(\"Content-Encoding\"))&&header===\"gzip\";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)abort(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)abort(\"only \"+datalength+\" bytes available! programmer error!\");var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);if(datalength!==chunkSize)xhr.setRequestHeader(\"Range\",\"bytes=\"+from+\"-\"+to);xhr.responseType=\"arraybuffer\";if(xhr.overrideMimeType){xhr.overrideMimeType(\"text/plain; charset=x-user-defined\")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort(\"Couldn't load \"+url+\". Status: \"+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||\"\",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==\"undefined\"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==\"undefined\")abort(\"doXHR failed!\");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out(\"LazyFiles on gzip forces download of the whole file when length is accessed\")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(globalThis.XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)abort(\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\");var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};for(const[key,fn]of Object.entries(node.stream_ops)){stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}}function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,(growMemViews(),HEAP8),ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+\"/\"+path},writeStat(buf,stat){(growMemViews(),HEAPU32)[buf/4]=stat.dev;(growMemViews(),HEAPU32)[(buf+4)/4]=stat.mode;(growMemViews(),HEAPU64)[(buf+8)/8]=BigInt(stat.nlink);(growMemViews(),HEAPU32)[(buf+16)/4]=stat.uid;(growMemViews(),HEAPU32)[(buf+20)/4]=stat.gid;(growMemViews(),HEAPU32)[(buf+24)/4]=stat.rdev;(growMemViews(),HEAP64)[(buf+32)/8]=BigInt(stat.size);(growMemViews(),HEAP32)[(buf+40)/4]=4096;(growMemViews(),HEAP32)[(buf+44)/4]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();(growMemViews(),HEAP64)[(buf+48)/8]=BigInt(Math.floor(atime/1e3));(growMemViews(),HEAPU64)[(buf+56)/8]=BigInt(atime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+64)/8]=BigInt(Math.floor(mtime/1e3));(growMemViews(),HEAPU64)[(buf+72)/8]=BigInt(mtime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+80)/8]=BigInt(Math.floor(ctime/1e3));(growMemViews(),HEAPU64)[(buf+88)/8]=BigInt(ctime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+96)/8]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){(growMemViews(),HEAPU32)[(buf+8)/4]=stats.bsize;(growMemViews(),HEAPU32)[(buf+72)/4]=stats.bsize;(growMemViews(),HEAP64)[(buf+16)/8]=BigInt(stats.blocks);(growMemViews(),HEAP64)[(buf+24)/8]=BigInt(stats.bfree);(growMemViews(),HEAP64)[(buf+32)/8]=BigInt(stats.bavail);(growMemViews(),HEAP64)[(buf+40)/8]=BigInt(stats.files);(growMemViews(),HEAP64)[(buf+48)/8]=BigInt(stats.ffree);(growMemViews(),HEAPU32)[(buf+56)/4]=stats.fsid;(growMemViews(),HEAPU32)[(buf+80)/4]=stats.flags;(growMemViews(),HEAPU32)[(buf+64)/4]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=(growMemViews(),HEAPU8).slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(3,0,1,fd,cmd,varargs);varargs=bigintToI53Checked(varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 5:{var arg=syscallGetVarargP();var offset=0;(growMemViews(),HEAP16)[(arg+offset)/2]=2;return 0}case 6:case 7:return 0}return-28}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(4,0,1,fd,buf);buf=bigintToI53Checked(buf);try{return SYSCALLS.writeStat(buf,FS.fstat(fd))}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,(growMemViews(),HEAPU8),outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(5,0,1,buf,size);buf=bigintToI53Checked(buf);size=bigintToI53Checked(size);try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(sizeabort(\"\");function __emscripten_init_main_thread_js(tb){tb=bigintToI53Checked(tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1,!ENVIRONMENT_IS_WEB,65536,false);PThread.threadInitTLS()}var handleException=e=>{if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)};var maybeExit=()=>{if(!keepRuntimeAlive()){try{if(ENVIRONMENT_IS_PTHREAD){if(_pthread_self())__emscripten_thread_exit(EXITSTATUS);return}_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};function __emscripten_thread_mailbox_await(pthread_ptr){pthread_ptr=bigintToI53Checked(pthread_ptr);if(Atomics.waitAsync){var wait=Atomics.waitAsync((growMemViews(),HEAP32),pthread_ptr/4,pthread_ptr);wait.value.then(checkMailbox);var waitingAsync=pthread_ptr+228;Atomics.store((growMemViews(),HEAP32),waitingAsync/4,1)}}var checkMailbox=()=>callUserCallback(()=>{var pthread_ptr=_pthread_self();if(pthread_ptr){__emscripten_thread_mailbox_await(pthread_ptr);__emscripten_check_mailbox()}});function __emscripten_notify_mailbox_postmessage(targetThread,currThreadId){targetThread=bigintToI53Checked(targetThread);currThreadId=bigintToI53Checked(currThreadId);if(targetThread==currThreadId){setTimeout(checkMailbox)}else if(ENVIRONMENT_IS_PTHREAD){postMessage({targetThread,cmd:\"checkMailbox\"})}else{var worker=PThread.pthreads[targetThread];if(!worker){return}worker.postMessage({cmd:\"checkMailbox\"})}}var proxiedJSCallArgs=[];function __emscripten_receive_on_main_thread_js(funcIndex,emAsmAddr,callingThread,numCallArgs,args){emAsmAddr=bigintToI53Checked(emAsmAddr);callingThread=bigintToI53Checked(callingThread);args=bigintToI53Checked(args);numCallArgs/=2;proxiedJSCallArgs.length=numCallArgs;var b=args/8;for(var i=0;i{noExitRuntime=false;runtimeKeepaliveCounter=0};function __emscripten_thread_cleanup(thread){thread=bigintToI53Checked(thread);if(!ENVIRONMENT_IS_PTHREAD)cleanupThread(thread);else postMessage({cmd:\"cleanupThread\",thread})}function __emscripten_thread_set_strongref(thread){thread=bigintToI53Checked(thread);if(ENVIRONMENT_IS_NODE){PThread.pthreads[thread].ref()}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time,tmPtr){time=bigintToI53Checked(time);tmPtr=bigintToI53Checked(tmPtr);var date=new Date(time*1e3);(growMemViews(),HEAP32)[tmPtr/4]=date.getSeconds();(growMemViews(),HEAP32)[(tmPtr+4)/4]=date.getMinutes();(growMemViews(),HEAP32)[(tmPtr+8)/4]=date.getHours();(growMemViews(),HEAP32)[(tmPtr+12)/4]=date.getDate();(growMemViews(),HEAP32)[(tmPtr+16)/4]=date.getMonth();(growMemViews(),HEAP32)[(tmPtr+20)/4]=date.getFullYear()-1900;(growMemViews(),HEAP32)[(tmPtr+24)/4]=date.getDay();var yday=ydayFromDate(date)|0;(growMemViews(),HEAP32)[(tmPtr+28)/4]=yday;(growMemViews(),HEAP64)[(tmPtr+40)/8]=BigInt(-(date.getTimezoneOffset()*60));var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;(growMemViews(),HEAP32)[(tmPtr+32)/4]=dst}function __mmap_js(len,prot,flags,fd,offset,allocated,addr){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(12,0,1,len,prot,flags,fd,offset,allocated,addr);len=bigintToI53Checked(len);offset=bigintToI53Checked(offset);allocated=bigintToI53Checked(allocated);addr=bigintToI53Checked(addr);try{var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;(growMemViews(),HEAP32)[allocated/4]=res.allocated;(growMemViews(),HEAPU64)[addr/8]=BigInt(ptr);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(13,0,1,addr,len,prot,flags,fd,offset);addr=bigintToI53Checked(addr);len=bigintToI53Checked(len);offset=bigintToI53Checked(offset);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var timers={};var _emscripten_get_now=()=>performance.timeOrigin+performance.now();function __setitimer_js(which,timeout_ms){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(14,0,1,which,timeout_ms);if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0}var __tzset_js=function(timezone,daylight,std_name,dst_name){timezone=bigintToI53Checked(timezone);daylight=bigintToI53Checked(daylight);std_name=bigintToI53Checked(std_name);dst_name=bigintToI53Checked(dst_name);var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);(growMemViews(),HEAPU64)[timezone/8]=BigInt(stdTimezoneOffset*60);(growMemViews(),HEAP32)[daylight/4]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?\"-\":\"+\";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,\"0\");var minutes=String(absOffset%60).padStart(2,\"0\");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffsetDate.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);ptime=bigintToI53Checked(ptime);if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);(growMemViews(),HEAP64)[ptime/8]=BigInt(nsec);return 0}var _emscripten_check_blocking_allowed=()=>{};var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};var _emscripten_exit_with_live_runtime=()=>{runtimeKeepalivePush();throw\"unwind\"};var getHeapMax=()=>4294967296;var _emscripten_get_heap_max=()=>BigInt(getHeapMax());var _emscripten_has_asyncify=()=>2;var _emscripten_num_logical_cores=()=>ENVIRONMENT_IS_NODE?require(\"os\").cpus().length:navigator[\"hardwareConcurrency\"];var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(BigInt(pages));updateMemoryViews();return 1}catch(e){}};function _emscripten_resize_heap(requestedSize){requestedSize=bigintToI53Checked(requestedSize);var oldSize=(growMemViews(),HEAPU8).length;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false}var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var writeI53ToI64=(ptr,num)=>{(growMemViews(),HEAPU32)[ptr/4]=num;var lower=(growMemViews(),HEAPU32)[ptr/4];(growMemViews(),HEAPU32)[(ptr+4)/4]=(num-lower)/4294967296};var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var readI53FromI64=ptr=>(growMemViews(),HEAPU32)[ptr/4]+(growMemViews(),HEAP32)[(ptr+4)/4]*4294967296;var WebGPU={Internals:{jsObjects:[],jsObjectInsert:(ptr,jsObject)=>{WebGPU.Internals.jsObjects[ptr]=jsObject},bufferOnUnmaps:[],futures:[],futureInsert:(futureId,promise)=>{WebGPU.Internals.futures[futureId]=new Promise(resolve=>promise.finally(()=>resolve(futureId)))}},getJsObject:ptr=>{if(!ptr)return undefined;return WebGPU.Internals.jsObjects[ptr]},importJsAdapter:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateAdapter(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroup:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroup(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroupLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroupLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBuffer:(buffer,parentPtr=0)=>{assert(buffer.mapState===\"unmapped\");var bufferPtr=_emwgpuCreateBuffer(parentPtr);WebGPU.Internals.jsObjectInsert(bufferPtr,buffer);return bufferPtr},importJsCommandBuffer:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandBuffer(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsCommandEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsDevice:(device,parentPtr=0)=>{var queuePtr=_emwgpuCreateQueue(parentPtr);var devicePtr=_emwgpuCreateDevice(parentPtr,queuePtr);WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);return devicePtr},importJsExternalTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateExternalTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsPipelineLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreatePipelineLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQuerySet:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQuerySet(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQueue:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQueue(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundle:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundle(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundleEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundleEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSampler:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSampler(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsShaderModule:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateShaderModule(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSurface:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSurface(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTextureView:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTextureView(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},errorCallback:(callback,type,message,userdata)=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(message);((a1,a2,a3)=>getWasmTableEntry(callback).call(null,a1,BigInt(a2),BigInt(a3)))(type,BigInt(messagePtr),userdata);stackRestore(sp)},iterateExtensions:(root,handlers)=>{for(var ptr=Number((growMemViews(),HEAPU64)[root/8]);ptr;ptr=Number((growMemViews(),HEAPU64)[ptr/8])){var sType=(growMemViews(),HEAP32)[(ptr+8)/4];var handler=handlers[sType](ptr)}},setStringView:(ptr,data,length)=>{(growMemViews(),HEAPU64)[ptr/8]=BigInt(data);(growMemViews(),HEAPU64)[(ptr+8)/8]=BigInt(length)},makeStringFromStringView:stringViewPtr=>{var ptr=Number((growMemViews(),HEAPU64)[stringViewPtr/8]);var length=Number((growMemViews(),HEAPU64)[(stringViewPtr+8)/8]);return UTF8ToString(ptr,length)},makeStringFromOptionalStringView:stringViewPtr=>{var ptr=Number((growMemViews(),HEAPU64)[stringViewPtr/8]);var length=Number((growMemViews(),HEAPU64)[(stringViewPtr+8)/8]);if(!ptr){if(length===0){return\"\"}return undefined}return UTF8ToString(ptr,length)},makeColor:ptr=>({r:(growMemViews(),HEAPF64)[ptr/8],g:(growMemViews(),HEAPF64)[(ptr+8)/8],b:(growMemViews(),HEAPF64)[(ptr+16)/8],a:(growMemViews(),HEAPF64)[(ptr+24)/8]}),makeExtent3D:ptr=>({width:(growMemViews(),HEAPU32)[ptr/4],height:(growMemViews(),HEAPU32)[(ptr+4)/4],depthOrArrayLayers:(growMemViews(),HEAPU32)[(ptr+8)/4]}),makeOrigin3D:ptr=>({x:(growMemViews(),HEAPU32)[ptr/4],y:(growMemViews(),HEAPU32)[(ptr+4)/4],z:(growMemViews(),HEAPU32)[(ptr+8)/4]}),makeTexelCopyTextureInfo:ptr=>({texture:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[ptr/8])),mipLevel:(growMemViews(),HEAPU32)[(ptr+8)/4],origin:WebGPU.makeOrigin3D(ptr+12),aspect:WebGPU.TextureAspect[(growMemViews(),HEAP32)[(ptr+24)/4]]}),makeTexelCopyBufferLayout:ptr=>{var bytesPerRow=(growMemViews(),HEAPU32)[(ptr+8)/4];var rowsPerImage=(growMemViews(),HEAPU32)[(ptr+12)/4];return{offset:readI53FromI64(ptr),bytesPerRow:bytesPerRow===4294967295?undefined:bytesPerRow,rowsPerImage:rowsPerImage===4294967295?undefined:rowsPerImage}},makeTexelCopyBufferInfo:ptr=>{var layoutPtr=ptr+0;var bufferCopyView=WebGPU.makeTexelCopyBufferLayout(layoutPtr);bufferCopyView[\"buffer\"]=WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+16)/8]));return bufferCopyView},makePassTimestampWrites:ptr=>{if(ptr===0)return undefined;return{querySet:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+8)/8])),beginningOfPassWriteIndex:(growMemViews(),HEAPU32)[(ptr+16)/4],endOfPassWriteIndex:(growMemViews(),HEAPU32)[(ptr+20)/4]}},makePipelineConstants:(constantCount,constantsPtr)=>{if(!constantCount)return;var constants={};for(var i=0;i{if(!layoutPtr)return\"auto\";return WebGPU.getJsObject(layoutPtr)},makeComputeState:ptr=>{if(!ptr)return undefined;var desc={module:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+8)/8])),constants:WebGPU.makePipelineConstants(Number((growMemViews(),HEAPU64)[(ptr+32)/8]),Number((growMemViews(),HEAPU64)[(ptr+40)/8])),entryPoint:WebGPU.makeStringFromOptionalStringView(ptr+16)};return desc},makeComputePipelineDesc:descriptor=>{var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8),layout:WebGPU.makePipelineLayout(Number((growMemViews(),HEAPU64)[(descriptor+24)/8])),compute:WebGPU.makeComputeState(descriptor+32)};return desc},makeRenderPipelineDesc:descriptor=>{function makePrimitiveState(psPtr){if(!psPtr)return undefined;return{topology:WebGPU.PrimitiveTopology[(growMemViews(),HEAP32)[(psPtr+8)/4]],stripIndexFormat:WebGPU.IndexFormat[(growMemViews(),HEAP32)[(psPtr+12)/4]],frontFace:WebGPU.FrontFace[(growMemViews(),HEAP32)[(psPtr+16)/4]],cullMode:WebGPU.CullMode[(growMemViews(),HEAP32)[(psPtr+20)/4]],unclippedDepth:!!(growMemViews(),HEAPU32)[(psPtr+24)/4]}}function makeBlendComponent(bdPtr){if(!bdPtr)return undefined;return{operation:WebGPU.BlendOperation[(growMemViews(),HEAP32)[bdPtr/4]],srcFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[(bdPtr+4)/4]],dstFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[(bdPtr+8)/4]]}}function makeBlendState(bsPtr){if(!bsPtr)return undefined;return{alpha:makeBlendComponent(bsPtr+12),color:makeBlendComponent(bsPtr+0)}}function makeColorState(csPtr){var format=WebGPU.TextureFormat[(growMemViews(),HEAP32)[(csPtr+8)/4]];return format?{format,blend:makeBlendState(Number((growMemViews(),HEAPU64)[(csPtr+16)/8])),writeMask:(growMemViews(),HEAPU32)[(csPtr+24)/4]}:undefined}function makeColorStates(count,csArrayPtr){var states=[];for(var i=0;i{var nextInChainPtr=Number((growMemViews(),HEAPU64)[limitsOutPtr/8]);function setLimitValueU32(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;(growMemViews(),HEAPU32)[(basePtr+limitOffset)/4]=limitValue}function setLimitValueU64(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;writeI53ToI64(basePtr+limitOffset,limitValue)}setLimitValueU32(\"maxTextureDimension1D\",limitsOutPtr,8);setLimitValueU32(\"maxTextureDimension2D\",limitsOutPtr,12);setLimitValueU32(\"maxTextureDimension3D\",limitsOutPtr,16);setLimitValueU32(\"maxTextureArrayLayers\",limitsOutPtr,20);setLimitValueU32(\"maxBindGroups\",limitsOutPtr,24);setLimitValueU32(\"maxBindGroupsPlusVertexBuffers\",limitsOutPtr,28);setLimitValueU32(\"maxBindingsPerBindGroup\",limitsOutPtr,32);setLimitValueU32(\"maxDynamicUniformBuffersPerPipelineLayout\",limitsOutPtr,36);setLimitValueU32(\"maxDynamicStorageBuffersPerPipelineLayout\",limitsOutPtr,40);setLimitValueU32(\"maxSampledTexturesPerShaderStage\",limitsOutPtr,44);setLimitValueU32(\"maxSamplersPerShaderStage\",limitsOutPtr,48);setLimitValueU32(\"maxStorageBuffersPerShaderStage\",limitsOutPtr,52);setLimitValueU32(\"maxStorageTexturesPerShaderStage\",limitsOutPtr,56);setLimitValueU32(\"maxUniformBuffersPerShaderStage\",limitsOutPtr,60);setLimitValueU32(\"minUniformBufferOffsetAlignment\",limitsOutPtr,80);setLimitValueU32(\"minStorageBufferOffsetAlignment\",limitsOutPtr,84);setLimitValueU64(\"maxUniformBufferBindingSize\",limitsOutPtr,64);setLimitValueU64(\"maxStorageBufferBindingSize\",limitsOutPtr,72);setLimitValueU32(\"maxVertexBuffers\",limitsOutPtr,88);setLimitValueU64(\"maxBufferSize\",limitsOutPtr,96);setLimitValueU32(\"maxVertexAttributes\",limitsOutPtr,104);setLimitValueU32(\"maxVertexBufferArrayStride\",limitsOutPtr,108);setLimitValueU32(\"maxInterStageShaderVariables\",limitsOutPtr,112);setLimitValueU32(\"maxColorAttachments\",limitsOutPtr,116);setLimitValueU32(\"maxColorAttachmentBytesPerSample\",limitsOutPtr,120);setLimitValueU32(\"maxComputeWorkgroupStorageSize\",limitsOutPtr,124);setLimitValueU32(\"maxComputeInvocationsPerWorkgroup\",limitsOutPtr,128);setLimitValueU32(\"maxComputeWorkgroupSizeX\",limitsOutPtr,132);setLimitValueU32(\"maxComputeWorkgroupSizeY\",limitsOutPtr,136);setLimitValueU32(\"maxComputeWorkgroupSizeZ\",limitsOutPtr,140);setLimitValueU32(\"maxComputeWorkgroupsPerDimension\",limitsOutPtr,144);setLimitValueU32(\"maxImmediateSize\",limitsOutPtr,148);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var compatibilityModeLimitsPtr=nextInChainPtr;setLimitValueU32(\"maxStorageBuffersInVertexStage\",compatibilityModeLimitsPtr,16,limits.maxStorageBuffersPerShaderStage);setLimitValueU32(\"maxStorageBuffersInFragmentStage\",compatibilityModeLimitsPtr,24,limits.maxStorageBuffersPerShaderStage);setLimitValueU32(\"maxStorageTexturesInVertexStage\",compatibilityModeLimitsPtr,20,limits.maxStorageTexturesPerShaderStage);setLimitValueU32(\"maxStorageTexturesInFragmentStage\",compatibilityModeLimitsPtr,28,limits.maxStorageTexturesPerShaderStage)}},fillAdapterInfoStruct:(info,infoStruct)=>{(growMemViews(),HEAPU32)[(infoStruct+88)/4]=info.subgroupMinSize;(growMemViews(),HEAPU32)[(infoStruct+92)/4]=info.subgroupMaxSize;var strs=info.vendor+info.architecture+info.device+info.description;var strPtr=stringToNewUTF8(strs);var vendorLen=lengthBytesUTF8(info.vendor);WebGPU.setStringView(infoStruct+8,strPtr,vendorLen);strPtr+=vendorLen;var architectureLen=lengthBytesUTF8(info.architecture);WebGPU.setStringView(infoStruct+24,strPtr,architectureLen);strPtr+=architectureLen;var deviceLen=lengthBytesUTF8(info.device);WebGPU.setStringView(infoStruct+40,strPtr,deviceLen);strPtr+=deviceLen;var descriptionLen=lengthBytesUTF8(info.description);WebGPU.setStringView(infoStruct+56,strPtr,descriptionLen);strPtr+=descriptionLen;(growMemViews(),HEAP32)[(infoStruct+72)/4]=2;var adapterType=info.isFallbackAdapter?3:4;(growMemViews(),HEAP32)[(infoStruct+76)/4]=adapterType;(growMemViews(),HEAPU32)[(infoStruct+80)/4]=0;(growMemViews(),HEAPU32)[(infoStruct+84)/4]=0},AddressMode:[,\"clamp-to-edge\",\"repeat\",\"mirror-repeat\"],BlendFactor:[,\"zero\",\"one\",\"src\",\"one-minus-src\",\"src-alpha\",\"one-minus-src-alpha\",\"dst\",\"one-minus-dst\",\"dst-alpha\",\"one-minus-dst-alpha\",\"src-alpha-saturated\",\"constant\",\"one-minus-constant\",\"src1\",\"one-minus-src1\",\"src1-alpha\",\"one-minus-src1-alpha\"],BlendOperation:[,\"add\",\"subtract\",\"reverse-subtract\",\"min\",\"max\"],BufferBindingType:[,,\"uniform\",\"storage\",\"read-only-storage\"],BufferMapState:[,\"unmapped\",\"pending\",\"mapped\"],CompareFunction:[,\"never\",\"less\",\"equal\",\"less-equal\",\"greater\",\"not-equal\",\"greater-equal\",\"always\"],CompilationInfoRequestStatus:[,\"success\",\"callback-cancelled\"],ComponentSwizzle:[,\"0\",\"1\",\"r\",\"g\",\"b\",\"a\"],CompositeAlphaMode:[,\"opaque\",\"premultiplied\",\"unpremultiplied\",\"inherit\"],CullMode:[,\"none\",\"front\",\"back\"],ErrorFilter:[,\"validation\",\"out-of-memory\",\"internal\"],FeatureLevel:[,\"compatibility\",\"core\"],FeatureName:{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\",22:\"texture-component-swizzle\",327692:\"chromium-experimental-unorm16-texture-formats\",327729:\"chromium-experimental-multi-draw-indirect\"},FilterMode:[,\"nearest\",\"linear\"],FrontFace:[,\"ccw\",\"cw\"],IndexFormat:[,\"uint16\",\"uint32\"],InstanceFeatureName:[,\"timed-wait-any\",\"shader-source-spirv\",\"multiple-devices-per-adapter\"],LoadOp:[,\"load\",\"clear\"],MipmapFilterMode:[,\"nearest\",\"linear\"],OptionalBool:[\"false\",\"true\"],PowerPreference:[,\"low-power\",\"high-performance\"],PredefinedColorSpace:[,\"srgb\",\"display-p3\"],PrimitiveTopology:[,\"point-list\",\"line-list\",\"line-strip\",\"triangle-list\",\"triangle-strip\"],QueryType:[,\"occlusion\",\"timestamp\"],SamplerBindingType:[,,\"filtering\",\"non-filtering\",\"comparison\"],Status:[,\"success\",\"error\"],StencilOperation:[,\"keep\",\"zero\",\"replace\",\"invert\",\"increment-clamp\",\"decrement-clamp\",\"increment-wrap\",\"decrement-wrap\"],StorageTextureAccess:[,,\"write-only\",\"read-only\",\"read-write\"],StoreOp:[,\"store\",\"discard\"],SurfaceGetCurrentTextureStatus:[,\"success-optimal\",\"success-suboptimal\",\"timeout\",\"outdated\",\"lost\",\"error\"],TextureAspect:[,\"all\",\"stencil-only\",\"depth-only\"],TextureDimension:[,\"1d\",\"2d\",\"3d\"],TextureFormat:[,\"r8unorm\",\"r8snorm\",\"r8uint\",\"r8sint\",\"r16unorm\",\"r16snorm\",\"r16uint\",\"r16sint\",\"r16float\",\"rg8unorm\",\"rg8snorm\",\"rg8uint\",\"rg8sint\",\"r32float\",\"r32uint\",\"r32sint\",\"rg16unorm\",\"rg16snorm\",\"rg16uint\",\"rg16sint\",\"rg16float\",\"rgba8unorm\",\"rgba8unorm-srgb\",\"rgba8snorm\",\"rgba8uint\",\"rgba8sint\",\"bgra8unorm\",\"bgra8unorm-srgb\",\"rgb10a2uint\",\"rgb10a2unorm\",\"rg11b10ufloat\",\"rgb9e5ufloat\",\"rg32float\",\"rg32uint\",\"rg32sint\",\"rgba16unorm\",\"rgba16snorm\",\"rgba16uint\",\"rgba16sint\",\"rgba16float\",\"rgba32float\",\"rgba32uint\",\"rgba32sint\",\"stencil8\",\"depth16unorm\",\"depth24plus\",\"depth24plus-stencil8\",\"depth32float\",\"depth32float-stencil8\",\"bc1-rgba-unorm\",\"bc1-rgba-unorm-srgb\",\"bc2-rgba-unorm\",\"bc2-rgba-unorm-srgb\",\"bc3-rgba-unorm\",\"bc3-rgba-unorm-srgb\",\"bc4-r-unorm\",\"bc4-r-snorm\",\"bc5-rg-unorm\",\"bc5-rg-snorm\",\"bc6h-rgb-ufloat\",\"bc6h-rgb-float\",\"bc7-rgba-unorm\",\"bc7-rgba-unorm-srgb\",\"etc2-rgb8unorm\",\"etc2-rgb8unorm-srgb\",\"etc2-rgb8a1unorm\",\"etc2-rgb8a1unorm-srgb\",\"etc2-rgba8unorm\",\"etc2-rgba8unorm-srgb\",\"eac-r11unorm\",\"eac-r11snorm\",\"eac-rg11unorm\",\"eac-rg11snorm\",\"astc-4x4-unorm\",\"astc-4x4-unorm-srgb\",\"astc-5x4-unorm\",\"astc-5x4-unorm-srgb\",\"astc-5x5-unorm\",\"astc-5x5-unorm-srgb\",\"astc-6x5-unorm\",\"astc-6x5-unorm-srgb\",\"astc-6x6-unorm\",\"astc-6x6-unorm-srgb\",\"astc-8x5-unorm\",\"astc-8x5-unorm-srgb\",\"astc-8x6-unorm\",\"astc-8x6-unorm-srgb\",\"astc-8x8-unorm\",\"astc-8x8-unorm-srgb\",\"astc-10x5-unorm\",\"astc-10x5-unorm-srgb\",\"astc-10x6-unorm\",\"astc-10x6-unorm-srgb\",\"astc-10x8-unorm\",\"astc-10x8-unorm-srgb\",\"astc-10x10-unorm\",\"astc-10x10-unorm-srgb\",\"astc-12x10-unorm\",\"astc-12x10-unorm-srgb\",\"astc-12x12-unorm\",\"astc-12x12-unorm-srgb\"],TextureSampleType:[,,\"float\",\"unfilterable-float\",\"depth\",\"sint\",\"uint\"],TextureViewDimension:[,\"1d\",\"2d\",\"2d-array\",\"cube\",\"cube-array\",\"3d\"],ToneMappingMode:[,\"standard\",\"extended\"],VertexFormat:[,\"uint8\",\"uint8x2\",\"uint8x4\",\"sint8\",\"sint8x2\",\"sint8x4\",\"unorm8\",\"unorm8x2\",\"unorm8x4\",\"snorm8\",\"snorm8x2\",\"snorm8x4\",\"uint16\",\"uint16x2\",\"uint16x4\",\"sint16\",\"sint16x2\",\"sint16x4\",\"unorm16\",\"unorm16x2\",\"unorm16x4\",\"snorm16\",\"snorm16x2\",\"snorm16x4\",\"float16\",\"float16x2\",\"float16x4\",\"float32\",\"float32x2\",\"float32x3\",\"float32x4\",\"uint32\",\"uint32x2\",\"uint32x3\",\"uint32x4\",\"sint32\",\"sint32x2\",\"sint32x3\",\"sint32x4\",\"unorm10-10-10-2\",\"unorm8x4-bgra\"],VertexStepMode:[,\"vertex\",\"instance\"],WGSLLanguageFeatureName:[,\"readonly_and_readwrite_storage_textures\",\"packed_4x8_integer_dot_product\",\"unrestricted_pointer_parameters\",\"pointer_composite_access\",\"uniform_buffer_standard_layout\",\"subgroup_id\",\"texture_and_sampler_let\",\"subgroup_uniformity\",\"texture_formats_tier1\"]};var emwgpuStringToInt_DeviceLostReason={undefined:1,unknown:1,destroyed:2};var runtimeKeepalivePop=()=>{runtimeKeepaliveCounter-=1};function _emwgpuAdapterRequestDevice(adapterPtr,futureId,deviceLostFutureId,devicePtr,queuePtr,descriptor){adapterPtr=bigintToI53Checked(adapterPtr);futureId=bigintToI53Checked(futureId);deviceLostFutureId=bigintToI53Checked(deviceLostFutureId);devicePtr=bigintToI53Checked(devicePtr);queuePtr=bigintToI53Checked(queuePtr);descriptor=bigintToI53Checked(descriptor);var adapter=WebGPU.getJsObject(adapterPtr);var desc={};if(descriptor){var requiredFeatureCount=Number((growMemViews(),HEAPU64)[(descriptor+24)/8]);if(requiredFeatureCount){var requiredFeaturesPtr=Number((growMemViews(),HEAPU64)[(descriptor+32)/8]);desc[\"requiredFeatures\"]=Array.from((growMemViews(),HEAPU32).subarray(requiredFeaturesPtr/4,(requiredFeaturesPtr+requiredFeatureCount*4)/4),feature=>WebGPU.FeatureName[feature])}var limitsPtr=Number((growMemViews(),HEAPU64)[(descriptor+40)/8]);if(limitsPtr){var nextInChainPtr=Number((growMemViews(),HEAPU64)[limitsPtr/8]);var requiredLimits={};function setLimitU32IfDefined(name,basePtr,limitOffset,ignoreIfZero=false){var ptr=basePtr+limitOffset;var value=(growMemViews(),HEAPU32)[ptr/4];if(value!=4294967295&&(!ignoreIfZero||value!=0)){requiredLimits[name]=value}}function setLimitU64IfDefined(name,basePtr,limitOffset){var ptr=basePtr+limitOffset;var limitPart1=(growMemViews(),HEAPU32)[ptr/4];var limitPart2=(growMemViews(),HEAPU32)[(ptr+4)/4];if(limitPart1!=4294967295||limitPart2!=4294967295){requiredLimits[name]=readI53FromI64(ptr)}}setLimitU32IfDefined(\"maxTextureDimension1D\",limitsPtr,8);setLimitU32IfDefined(\"maxTextureDimension2D\",limitsPtr,12);setLimitU32IfDefined(\"maxTextureDimension3D\",limitsPtr,16);setLimitU32IfDefined(\"maxTextureArrayLayers\",limitsPtr,20);setLimitU32IfDefined(\"maxBindGroups\",limitsPtr,24);setLimitU32IfDefined(\"maxBindGroupsPlusVertexBuffers\",limitsPtr,28);setLimitU32IfDefined(\"maxBindingsPerBindGroup\",limitsPtr,32);setLimitU32IfDefined(\"maxDynamicUniformBuffersPerPipelineLayout\",limitsPtr,36);setLimitU32IfDefined(\"maxDynamicStorageBuffersPerPipelineLayout\",limitsPtr,40);setLimitU32IfDefined(\"maxSampledTexturesPerShaderStage\",limitsPtr,44);setLimitU32IfDefined(\"maxSamplersPerShaderStage\",limitsPtr,48);setLimitU32IfDefined(\"maxStorageBuffersPerShaderStage\",limitsPtr,52);setLimitU32IfDefined(\"maxStorageTexturesPerShaderStage\",limitsPtr,56);setLimitU32IfDefined(\"maxUniformBuffersPerShaderStage\",limitsPtr,60);setLimitU32IfDefined(\"minUniformBufferOffsetAlignment\",limitsPtr,80);setLimitU32IfDefined(\"minStorageBufferOffsetAlignment\",limitsPtr,84);setLimitU64IfDefined(\"maxUniformBufferBindingSize\",limitsPtr,64);setLimitU64IfDefined(\"maxStorageBufferBindingSize\",limitsPtr,72);setLimitU32IfDefined(\"maxVertexBuffers\",limitsPtr,88);setLimitU64IfDefined(\"maxBufferSize\",limitsPtr,96);setLimitU32IfDefined(\"maxVertexAttributes\",limitsPtr,104);setLimitU32IfDefined(\"maxVertexBufferArrayStride\",limitsPtr,108);setLimitU32IfDefined(\"maxInterStageShaderVariables\",limitsPtr,112);setLimitU32IfDefined(\"maxColorAttachments\",limitsPtr,116);setLimitU32IfDefined(\"maxColorAttachmentBytesPerSample\",limitsPtr,120);setLimitU32IfDefined(\"maxComputeWorkgroupStorageSize\",limitsPtr,124);setLimitU32IfDefined(\"maxComputeInvocationsPerWorkgroup\",limitsPtr,128);setLimitU32IfDefined(\"maxComputeWorkgroupSizeX\",limitsPtr,132);setLimitU32IfDefined(\"maxComputeWorkgroupSizeY\",limitsPtr,136);setLimitU32IfDefined(\"maxComputeWorkgroupSizeZ\",limitsPtr,140);setLimitU32IfDefined(\"maxComputeWorkgroupsPerDimension\",limitsPtr,144);setLimitU32IfDefined(\"maxImmediateSize\",limitsPtr,148,true);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var compatibilityModeLimitsPtr=nextInChainPtr;if(\"maxStorageBuffersInVertexStage\"in GPUSupportedLimits.prototype){setLimitU32IfDefined(\"maxStorageBuffersInVertexStage\",compatibilityModeLimitsPtr,16);setLimitU32IfDefined(\"maxStorageTexturesInVertexStage\",compatibilityModeLimitsPtr,20);setLimitU32IfDefined(\"maxStorageBuffersInFragmentStage\",compatibilityModeLimitsPtr,24);setLimitU32IfDefined(\"maxStorageTexturesInFragmentStage\",compatibilityModeLimitsPtr,28)}}desc[\"requiredLimits\"]=requiredLimits}var defaultQueuePtr=Number((growMemViews(),HEAPU64)[(descriptor+48)/8]);if(defaultQueuePtr){var defaultQueueDesc={label:WebGPU.makeStringFromOptionalStringView(defaultQueuePtr+8)};desc[\"defaultQueue\"]=defaultQueueDesc}desc[\"label\"]=WebGPU.makeStringFromOptionalStringView(descriptor+8)}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,adapter.requestDevice(desc).then(device=>{runtimeKeepalivePop();callUserCallback(()=>{WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);devicePtr=BigInt(devicePtr);WebGPU.Internals.futureInsert(deviceLostFutureId,device.lost.then(info=>{callUserCallback(()=>{device.onuncapturederror=ev=>{};var sp=stackSave();var messagePtr=stringToUTF8OnStack(info.message);_emwgpuOnDeviceLostCompleted(deviceLostFutureId,emwgpuStringToInt_DeviceLostReason[info.reason],BigInt(messagePtr));stackRestore(sp)})}));device.onuncapturederror=ev=>{var type=5;if(ev.error instanceof GPUValidationError)type=2;else if(ev.error instanceof GPUOutOfMemoryError)type=3;else if(ev.error instanceof GPUInternalError)type=4;var sp=stackSave();var messagePtr=stringToUTF8OnStack(ev.error.message);_emwgpuOnUncapturedError(BigInt(devicePtr),type,BigInt(messagePtr));stackRestore(sp)};_emwgpuOnRequestDeviceCompleted(futureId,1,BigInt(devicePtr),0n)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestDeviceCompleted(futureId,3,BigInt(devicePtr),BigInt(messagePtr));if(deviceLostFutureId){_emwgpuOnDeviceLostCompleted(deviceLostFutureId,4,BigInt(messagePtr))}stackRestore(sp)})}))}function _emwgpuBufferDestroy(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(onUnmap){for(var i=0;i{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text=\"warning: \"+text;err(text)}};var _emwgpuBufferGetConstMappedRange=function(bufferPtr,offset,size){bufferPtr=bigintToI53Checked(bufferPtr);offset=bigintToI53Checked(offset);size=bigintToI53Checked(size);var ret=(()=>{var buffer=WebGPU.getJsObject(bufferPtr);if(size==-1)size=undefined;var mapped;try{mapped=buffer.getMappedRange(offset,size)}catch(ex){return 0n}var data=_memalign(16,mapped.byteLength);(growMemViews(),HEAPU8).set(new Uint8Array(mapped),data);WebGPU.Internals.bufferOnUnmaps[bufferPtr].push(()=>_free(data));return data})();return BigInt(ret)};var _emwgpuBufferMapAsync=function(bufferPtr,futureId,mode,offset,size){bufferPtr=bigintToI53Checked(bufferPtr);futureId=bigintToI53Checked(futureId);mode=bigintToI53Checked(mode);offset=bigintToI53Checked(offset);size=bigintToI53Checked(size);var buffer=WebGPU.getJsObject(bufferPtr);WebGPU.Internals.bufferOnUnmaps[bufferPtr]=[];if(size==-1)size=undefined;runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,buffer.mapAsync(mode,offset,size).then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnMapAsyncCompleted(futureId,1,0n)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);var status=ex.name===\"AbortError\"?4:ex.name===\"OperationError\"?3:0;_emwgpuOnMapAsyncCompleted(futureId,status,BigInt(messagePtr));delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]})}))};function _emwgpuBufferUnmap(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(!onUnmap){return}for(var i=0;i{const device=WebGPU.getJsObject(devicePtr);device.onuncapturederror=null;device.destroy()};function _emwgpuInstanceRequestAdapter(instancePtr,futureId,options,adapterPtr){instancePtr=bigintToI53Checked(instancePtr);futureId=bigintToI53Checked(futureId);options=bigintToI53Checked(options);adapterPtr=bigintToI53Checked(adapterPtr);var opts;if(options){opts={featureLevel:WebGPU.FeatureLevel[(growMemViews(),HEAP32)[(options+8)/4]],powerPreference:WebGPU.PowerPreference[(growMemViews(),HEAP32)[(options+12)/4]],forceFallbackAdapter:!!(growMemViews(),HEAPU32)[(options+16)/4]};var nextInChainPtr=Number((growMemViews(),HEAPU64)[options/8]);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var webxrOptions=nextInChainPtr;opts.xrCompatible=!!(growMemViews(),HEAPU32)[(webxrOptions+16)/4]}}if(!(\"gpu\"in navigator)){var sp=stackSave();var messagePtr=stringToUTF8OnStack(\"WebGPU not available on this browser (navigator.gpu is not available)\");_emwgpuOnRequestAdapterCompleted(futureId,3,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp);return}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,navigator.gpu.requestAdapter(opts).then(adapter=>{runtimeKeepalivePop();callUserCallback(()=>{if(adapter){WebGPU.Internals.jsObjectInsert(adapterPtr,adapter);_emwgpuOnRequestAdapterCompleted(futureId,1,BigInt(adapterPtr),0n)}else{var sp=stackSave();var messagePtr=stringToUTF8OnStack(\"WebGPU not available on this browser (requestAdapter returned null)\");_emwgpuOnRequestAdapterCompleted(futureId,3,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp)}})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestAdapterCompleted(futureId,4,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp)})}))}var _emwgpuQueueOnSubmittedWorkDone=function(queuePtr,futureId){queuePtr=bigintToI53Checked(queuePtr);futureId=bigintToI53Checked(futureId);var queue=WebGPU.getJsObject(queuePtr);runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,queue.onSubmittedWorkDone().then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnWorkDoneCompleted(futureId,1)})}))};var _emwgpuWaitAny=function(futurePtr,futureCount,timeoutMSPtr){futurePtr=bigintToI53Checked(futurePtr);futureCount=bigintToI53Checked(futureCount);timeoutMSPtr=bigintToI53Checked(timeoutMSPtr);return Asyncify.handleAsync(async()=>{var promises=[];if(timeoutMSPtr){var timeoutMS=(growMemViews(),HEAP32)[timeoutMSPtr/4];promises.length=futureCount+1;promises[futureCount]=new Promise(resolve=>setTimeout(resolve,timeoutMS,0))}else{promises.length=futureCount}for(var i=0;ithisProgram||\"./this.program\";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator==\"object\"&&navigator.language||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(15,0,1,__environ,environ_buf);__environ=bigintToI53Checked(__environ);environ_buf=bigintToI53Checked(environ_buf);var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;(growMemViews(),HEAPU64)[(__environ+envp)/8]=BigInt(ptr);bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=8}return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(16,0,1,penviron_count,penviron_buf_size);penviron_count=bigintToI53Checked(penviron_count);penviron_buf_size=bigintToI53Checked(penviron_buf_size);var strings=getEnvStrings();(growMemViews(),HEAPU64)[penviron_count/8]=BigInt(strings.length);var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}(growMemViews(),HEAPU64)[penviron_buf_size/8]=BigInt(bufSize);return 0}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(17,0,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i{var ret=0;for(var i=0;i=0){(growMemViews(),HEAP32)[(featuresPtr+offset)/4]=featureEnumValue;offset+=4;numFeatures++}}(growMemViews(),HEAPU64)[(supportedFeatures+8)/8]=BigInt(featuresPtr);(growMemViews(),HEAPU64)[supportedFeatures/8]=BigInt(numFeatures)}function _wgpuAdapterGetInfo(adapterPtr,info){adapterPtr=bigintToI53Checked(adapterPtr);info=bigintToI53Checked(info);var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillAdapterInfoStruct(adapter.info,info);return 1}function _wgpuAdapterGetLimits(adapterPtr,limitsOutPtr){adapterPtr=bigintToI53Checked(adapterPtr);limitsOutPtr=bigintToI53Checked(limitsOutPtr);var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillLimitStruct(adapter.limits,limitsOutPtr);return 1}function _wgpuAdapterHasFeature(adapterPtr,featureEnumValue){adapterPtr=bigintToI53Checked(adapterPtr);var adapter=WebGPU.getJsObject(adapterPtr);return adapter.features.has(WebGPU.FeatureName[featureEnumValue])}var _wgpuBufferGetSize=function(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var ret=(()=>{var buffer=WebGPU.getJsObject(bufferPtr);return buffer.size})();return BigInt(ret)};var _wgpuCommandEncoderBeginComputePass=function(encoderPtr,descriptor){encoderPtr=bigintToI53Checked(encoderPtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8),timestampWrites:WebGPU.makePassTimestampWrites(Number((growMemViews(),HEAPU64)[(descriptor+24)/8]))}}var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateComputePassEncoder(0n);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.beginComputePass(desc));return ptr})();return BigInt(ret)};function _wgpuCommandEncoderCopyBufferToBuffer(encoderPtr,srcPtr,srcOffset,dstPtr,dstOffset,size){encoderPtr=bigintToI53Checked(encoderPtr);srcPtr=bigintToI53Checked(srcPtr);srcOffset=bigintToI53Checked(srcOffset);dstPtr=bigintToI53Checked(dstPtr);dstOffset=bigintToI53Checked(dstOffset);size=bigintToI53Checked(size);var commandEncoder=WebGPU.getJsObject(encoderPtr);var src=WebGPU.getJsObject(srcPtr);var dst=WebGPU.getJsObject(dstPtr);commandEncoder.copyBufferToBuffer(src,srcOffset,dst,dstOffset,size)}var _wgpuCommandEncoderFinish=function(encoderPtr,descriptor){encoderPtr=bigintToI53Checked(encoderPtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateCommandBuffer(0n);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.finish());return ptr})();return BigInt(ret)};function _wgpuComputePassEncoderDispatchWorkgroups(passPtr,x,y,z){passPtr=bigintToI53Checked(passPtr);var pass=WebGPU.getJsObject(passPtr);pass.dispatchWorkgroups(x,y,z)}function _wgpuComputePassEncoderEnd(passPtr){passPtr=bigintToI53Checked(passPtr);var pass=WebGPU.getJsObject(passPtr);pass.end()}function _wgpuComputePassEncoderSetBindGroup(passPtr,groupIndex,groupPtr,dynamicOffsetCount,dynamicOffsetsPtr){passPtr=bigintToI53Checked(passPtr);groupPtr=bigintToI53Checked(groupPtr);dynamicOffsetCount=bigintToI53Checked(dynamicOffsetCount);dynamicOffsetsPtr=bigintToI53Checked(dynamicOffsetsPtr);var pass=WebGPU.getJsObject(passPtr);var group=WebGPU.getJsObject(groupPtr);if(dynamicOffsetCount==0){pass.setBindGroup(groupIndex,group)}else{pass.setBindGroup(groupIndex,group,(growMemViews(),HEAPU32),dynamicOffsetsPtr/4,dynamicOffsetCount)}}function _wgpuComputePassEncoderSetPipeline(passPtr,pipelinePtr){passPtr=bigintToI53Checked(passPtr);pipelinePtr=bigintToI53Checked(pipelinePtr);var pass=WebGPU.getJsObject(passPtr);var pipeline=WebGPU.getJsObject(pipelinePtr);pass.setPipeline(pipeline)}var _wgpuComputePipelineGetBindGroupLayout=function(pipelinePtr,groupIndex){pipelinePtr=bigintToI53Checked(pipelinePtr);var ret=(()=>{var pipeline=WebGPU.getJsObject(pipelinePtr);var ptr=_emwgpuCreateBindGroupLayout(0n);WebGPU.Internals.jsObjectInsert(ptr,pipeline.getBindGroupLayout(groupIndex));return ptr})();return BigInt(ret)};var _wgpuDeviceCreateBindGroup=function(devicePtr,descriptor){devicePtr=bigintToI53Checked(devicePtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{function makeEntry(entryPtr){var bufferPtr=Number((growMemViews(),HEAPU64)[(entryPtr+16)/8]);var samplerPtr=Number((growMemViews(),HEAPU64)[(entryPtr+40)/8]);var textureViewPtr=Number((growMemViews(),HEAPU64)[(entryPtr+48)/8]);var externalTexturePtr=0;WebGPU.iterateExtensions(entryPtr,{327681:ptr=>{externalTexturePtr=Number((growMemViews(),HEAPU64)[(ptr+16)/8])}});var resource;if(bufferPtr){var size=readI53FromI64(entryPtr+32);if(size==-1)size=undefined;resource={buffer:WebGPU.getJsObject(bufferPtr),offset:readI53FromI64(entryPtr+24),size}}else{resource=WebGPU.getJsObject(samplerPtr||textureViewPtr||externalTexturePtr)}return{binding:(growMemViews(),HEAPU32)[(entryPtr+8)/4],resource}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i{var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8)}}var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateCommandEncoder(0n);WebGPU.Internals.jsObjectInsert(ptr,device.createCommandEncoder(desc));return ptr})();return BigInt(ret)};var _wgpuDeviceCreateComputePipeline=function(devicePtr,descriptor){devicePtr=bigintToI53Checked(devicePtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var desc=WebGPU.makeComputePipelineDesc(descriptor);var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateComputePipeline(0n);WebGPU.Internals.jsObjectInsert(ptr,device.createComputePipeline(desc));return ptr})();return BigInt(ret)};var _wgpuQueueSubmit=function(queuePtr,commandCount,commands){queuePtr=bigintToI53Checked(queuePtr);commandCount=bigintToI53Checked(commandCount);commands=bigintToI53Checked(commands);var queue=WebGPU.getJsObject(queuePtr);var cmds=Array.from((growMemViews(),HEAP64).subarray(commands/8,(commands+commandCount*8)/8),id=>WebGPU.getJsObject(id));queue.submit(cmds)};function _wgpuQueueWriteBuffer(queuePtr,bufferPtr,bufferOffset,data,size){queuePtr=bigintToI53Checked(queuePtr);bufferPtr=bigintToI53Checked(bufferPtr);bufferOffset=bigintToI53Checked(bufferOffset);data=bigintToI53Checked(data);size=bigintToI53Checked(size);var queue=WebGPU.getJsObject(queuePtr);var buffer=WebGPU.getJsObject(bufferPtr);var subarray=(growMemViews(),HEAPU8).subarray(data,data+size);queue.writeBuffer(buffer,bufferOffset,subarray,0,size)}var Asyncify={instrumentWasmImports(imports){var importPattern=/^(invoke_.*|__asyncjs__.*)$/;for(let[x,original]of Object.entries(imports)){if(typeof original==\"function\"){let isAsyncifyImport=original.isAsync||importPattern.test(x);if(isAsyncifyImport){imports[x]=original=new WebAssembly.Suspending(original)}}}},instrumentFunction(original){var wrapper=(...args)=>original(...args);return wrapper},instrumentWasmExports(exports){var exportPattern=/^(wllama_start|wllama_action|main|__main_argc_argv)$/;Asyncify.asyncExports=new Set;var ret={};for(let[x,original]of Object.entries(exports)){if(typeof original==\"function\"){let isAsyncifyExport=exportPattern.test(x);if(isAsyncifyExport){Asyncify.asyncExports.add(original);original=Asyncify.makeAsyncFunction(original)}var wrapper=Asyncify.instrumentFunction(original);ret[x]=wrapper}else{ret[x]=original}}return ret},asyncExports:null,isAsyncExport(func){return Asyncify.asyncExports?.has(func)},handleAsync:async startAsync=>{runtimeKeepalivePush();try{return await startAsync()}finally{runtimeKeepalivePop()}},handleSleep:startAsync=>Asyncify.handleAsync(()=>new Promise(startAsync)),makeAsyncFunction(original){return WebAssembly.promising(original)}};var getCFunc=ident=>{var func=Module[\"_\"+ident];return func};var writeArrayToMemory=(array,buffer)=>{(growMemViews(),HEAP8).set(array,buffer)};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={pointer:p=>BigInt(p),string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return BigInt(ret)},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return BigInt(ret)}};function convertReturnValue(ret){if(returnType===\"string\"){return UTF8ToString(Number(ret))}if(returnType===\"pointer\")return Number(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type===\"number\"||type===\"boolean\");var numericRet=returnType!==\"string\";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var FS_createPath=(...args)=>FS.createPath(...args);var FS_unlink=(...args)=>FS.unlink(...args);var FS_createLazyFile=(...args)=>FS.createLazyFile(...args);var FS_createDevice=(...args)=>FS.createDevice(...args);PThread.init();FS.createPreloadedFile=FS_createPreloadedFile;FS.preloadFile=FS_preloadFile;FS.staticInit();{initMemory();if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(Module[\"preloadPlugins\"])preloadPlugins=Module[\"preloadPlugins\"];if(Module[\"print\"])out=Module[\"print\"];if(Module[\"printErr\"])err=Module[\"printErr\"];if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].shift()()}}}Module[\"mmapAlloc\"]=mmapAlloc;Module[\"addRunDependency\"]=addRunDependency;Module[\"removeRunDependency\"]=removeRunDependency;Module[\"ccall\"]=ccall;Module[\"cwrap\"]=cwrap;Module[\"FS_preloadFile\"]=FS_preloadFile;Module[\"FS_unlink\"]=FS_unlink;Module[\"FS_createPath\"]=FS_createPath;Module[\"FS_createDevice\"]=FS_createDevice;Module[\"FS\"]=FS;Module[\"FS_createDataFile\"]=FS_createDataFile;Module[\"FS_createLazyFile\"]=FS_createLazyFile;Module[\"MEMFS\"]=MEMFS;var proxiedFunctionTable=[_proc_exit,exitOnMainThread,pthreadCreateProxied,___syscall_fcntl64,___syscall_fstat64,___syscall_getcwd,___syscall_getdents64,___syscall_ioctl,___syscall_lstat64,___syscall_newfstatat,___syscall_openat,___syscall_stat64,__mmap_js,__munmap_js,__setitimer_js,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function __asyncjs__js_file_read(path_ptr,offset,req_size,out_ptr){return Asyncify.handleAsync(async()=>await _wllama_js_file_read(UTF8ToString(Number(path_ptr)),Number(offset),Number(req_size),Number(out_ptr)))}__asyncjs__js_file_read.sig=\"jjjjj\";var _malloc,_free,_wllama_malloc,_wllama_start,_wllama_action,_wllama_exit,_wllama_debug,_main,_emwgpuCreateBindGroup,_emwgpuCreateBindGroupLayout,_emwgpuCreateCommandBuffer,_emwgpuCreateCommandEncoder,_emwgpuCreateComputePassEncoder,_emwgpuCreateComputePipeline,_emwgpuCreateExternalTexture,_emwgpuCreatePipelineLayout,_emwgpuCreateQuerySet,_emwgpuCreateRenderBundle,_emwgpuCreateRenderBundleEncoder,_emwgpuCreateRenderPassEncoder,_emwgpuCreateRenderPipeline,_emwgpuCreateSampler,_emwgpuCreateSurface,_emwgpuCreateTexture,_emwgpuCreateTextureView,_emwgpuCreateAdapter,_emwgpuCreateBuffer,_emwgpuCreateDevice,_emwgpuCreateQueue,_emwgpuCreateShaderModule,_emwgpuOnDeviceLostCompleted,_emwgpuOnMapAsyncCompleted,_emwgpuOnRequestAdapterCompleted,_emwgpuOnRequestDeviceCompleted,_emwgpuOnWorkDoneCompleted,_emwgpuOnUncapturedError,__emscripten_tls_init,_pthread_self,_emscripten_builtin_memalign,__emscripten_thread_init,__emscripten_thread_crashed,__emscripten_run_js_on_main_thread,__emscripten_thread_free_data,__emscripten_thread_exit,__emscripten_timeout,__emscripten_check_mailbox,_memalign,___trap,_emscripten_stack_set_limits,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,__indirect_function_table,wasmTable;function assignWasmExports(wasmExports){_malloc=wasmExports[\"malloc\"];_free=wasmExports[\"free\"];_wllama_malloc=Module[\"_wllama_malloc\"]=wasmExports[\"wllama_malloc\"];_wllama_start=Module[\"_wllama_start\"]=wasmExports[\"wllama_start\"];_wllama_action=Module[\"_wllama_action\"]=wasmExports[\"wllama_action\"];_wllama_exit=Module[\"_wllama_exit\"]=wasmExports[\"wllama_exit\"];_wllama_debug=Module[\"_wllama_debug\"]=wasmExports[\"wllama_debug\"];_main=Module[\"_main\"]=wasmExports[\"main\"];_emwgpuCreateBindGroup=wasmExports[\"emwgpuCreateBindGroup\"];_emwgpuCreateBindGroupLayout=wasmExports[\"emwgpuCreateBindGroupLayout\"];_emwgpuCreateCommandBuffer=wasmExports[\"emwgpuCreateCommandBuffer\"];_emwgpuCreateCommandEncoder=wasmExports[\"emwgpuCreateCommandEncoder\"];_emwgpuCreateComputePassEncoder=wasmExports[\"emwgpuCreateComputePassEncoder\"];_emwgpuCreateComputePipeline=wasmExports[\"emwgpuCreateComputePipeline\"];_emwgpuCreateExternalTexture=wasmExports[\"emwgpuCreateExternalTexture\"];_emwgpuCreatePipelineLayout=wasmExports[\"emwgpuCreatePipelineLayout\"];_emwgpuCreateQuerySet=wasmExports[\"emwgpuCreateQuerySet\"];_emwgpuCreateRenderBundle=wasmExports[\"emwgpuCreateRenderBundle\"];_emwgpuCreateRenderBundleEncoder=wasmExports[\"emwgpuCreateRenderBundleEncoder\"];_emwgpuCreateRenderPassEncoder=wasmExports[\"emwgpuCreateRenderPassEncoder\"];_emwgpuCreateRenderPipeline=wasmExports[\"emwgpuCreateRenderPipeline\"];_emwgpuCreateSampler=wasmExports[\"emwgpuCreateSampler\"];_emwgpuCreateSurface=wasmExports[\"emwgpuCreateSurface\"];_emwgpuCreateTexture=wasmExports[\"emwgpuCreateTexture\"];_emwgpuCreateTextureView=wasmExports[\"emwgpuCreateTextureView\"];_emwgpuCreateAdapter=wasmExports[\"emwgpuCreateAdapter\"];_emwgpuCreateBuffer=wasmExports[\"emwgpuCreateBuffer\"];_emwgpuCreateDevice=wasmExports[\"emwgpuCreateDevice\"];_emwgpuCreateQueue=wasmExports[\"emwgpuCreateQueue\"];_emwgpuCreateShaderModule=wasmExports[\"emwgpuCreateShaderModule\"];_emwgpuOnDeviceLostCompleted=wasmExports[\"emwgpuOnDeviceLostCompleted\"];_emwgpuOnMapAsyncCompleted=wasmExports[\"emwgpuOnMapAsyncCompleted\"];_emwgpuOnRequestAdapterCompleted=wasmExports[\"emwgpuOnRequestAdapterCompleted\"];_emwgpuOnRequestDeviceCompleted=wasmExports[\"emwgpuOnRequestDeviceCompleted\"];_emwgpuOnWorkDoneCompleted=wasmExports[\"emwgpuOnWorkDoneCompleted\"];_emwgpuOnUncapturedError=wasmExports[\"emwgpuOnUncapturedError\"];__emscripten_tls_init=wasmExports[\"_emscripten_tls_init\"];_pthread_self=wasmExports[\"pthread_self\"];_emscripten_builtin_memalign=wasmExports[\"emscripten_builtin_memalign\"];__emscripten_thread_init=wasmExports[\"_emscripten_thread_init\"];__emscripten_thread_crashed=wasmExports[\"_emscripten_thread_crashed\"];__emscripten_run_js_on_main_thread=wasmExports[\"_emscripten_run_js_on_main_thread\"];__emscripten_thread_free_data=wasmExports[\"_emscripten_thread_free_data\"];__emscripten_thread_exit=wasmExports[\"_emscripten_thread_exit\"];__emscripten_timeout=wasmExports[\"_emscripten_timeout\"];__emscripten_check_mailbox=wasmExports[\"_emscripten_check_mailbox\"];_memalign=wasmExports[\"memalign\"];___trap=wasmExports[\"__trap\"];_emscripten_stack_set_limits=wasmExports[\"emscripten_stack_set_limits\"];__emscripten_stack_restore=wasmExports[\"_emscripten_stack_restore\"];__emscripten_stack_alloc=wasmExports[\"_emscripten_stack_alloc\"];_emscripten_stack_get_current=wasmExports[\"emscripten_stack_get_current\"];__indirect_function_table=wasmTable=wasmExports[\"__indirect_function_table\"]}var wasmImports;function assignWasmImports(){wasmImports={__asyncjs__js_file_read,__pthread_create_js:___pthread_create_js,__syscall_fcntl64:___syscall_fcntl64,__syscall_getcwd:___syscall_getcwd,__syscall_getdents64:___syscall_getdents64,__syscall_ioctl:___syscall_ioctl,__syscall_openat:___syscall_openat,__syscall_stat64:___syscall_stat64,_abort_js:__abort_js,_emscripten_init_main_thread_js:__emscripten_init_main_thread_js,_emscripten_notify_mailbox_postmessage:__emscripten_notify_mailbox_postmessage,_emscripten_receive_on_main_thread_js:__emscripten_receive_on_main_thread_js,_emscripten_runtime_keepalive_clear:__emscripten_runtime_keepalive_clear,_emscripten_thread_cleanup:__emscripten_thread_cleanup,_emscripten_thread_mailbox_await:__emscripten_thread_mailbox_await,_emscripten_thread_set_strongref:__emscripten_thread_set_strongref,_localtime_js:__localtime_js,_mmap_js:__mmap_js,_munmap_js:__munmap_js,_setitimer_js:__setitimer_js,_tzset_js:__tzset_js,clock_time_get:_clock_time_get,emscripten_check_blocking_allowed:_emscripten_check_blocking_allowed,emscripten_date_now:_emscripten_date_now,emscripten_exit_with_live_runtime:_emscripten_exit_with_live_runtime,emscripten_get_heap_max:_emscripten_get_heap_max,emscripten_get_now:_emscripten_get_now,emscripten_has_asyncify:_emscripten_has_asyncify,emscripten_num_logical_cores:_emscripten_num_logical_cores,emscripten_resize_heap:_emscripten_resize_heap,emwgpuAdapterRequestDevice:_emwgpuAdapterRequestDevice,emwgpuBufferDestroy:_emwgpuBufferDestroy,emwgpuBufferGetConstMappedRange:_emwgpuBufferGetConstMappedRange,emwgpuBufferMapAsync:_emwgpuBufferMapAsync,emwgpuBufferUnmap:_emwgpuBufferUnmap,emwgpuDelete:_emwgpuDelete,emwgpuDeviceCreateBuffer:_emwgpuDeviceCreateBuffer,emwgpuDeviceCreateShaderModule:_emwgpuDeviceCreateShaderModule,emwgpuDeviceDestroy:_emwgpuDeviceDestroy,emwgpuInstanceRequestAdapter:_emwgpuInstanceRequestAdapter,emwgpuQueueOnSubmittedWorkDone:_emwgpuQueueOnSubmittedWorkDone,emwgpuWaitAny:_emwgpuWaitAny,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,exit:_exit,fd_close:_fd_close,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,memory:wasmMemory,proc_exit:_proc_exit,random_get:_random_get,wgpuAdapterGetFeatures:_wgpuAdapterGetFeatures,wgpuAdapterGetInfo:_wgpuAdapterGetInfo,wgpuAdapterGetLimits:_wgpuAdapterGetLimits,wgpuAdapterHasFeature:_wgpuAdapterHasFeature,wgpuBufferGetSize:_wgpuBufferGetSize,wgpuCommandEncoderBeginComputePass:_wgpuCommandEncoderBeginComputePass,wgpuCommandEncoderCopyBufferToBuffer:_wgpuCommandEncoderCopyBufferToBuffer,wgpuCommandEncoderFinish:_wgpuCommandEncoderFinish,wgpuComputePassEncoderDispatchWorkgroups:_wgpuComputePassEncoderDispatchWorkgroups,wgpuComputePassEncoderEnd:_wgpuComputePassEncoderEnd,wgpuComputePassEncoderSetBindGroup:_wgpuComputePassEncoderSetBindGroup,wgpuComputePassEncoderSetPipeline:_wgpuComputePassEncoderSetPipeline,wgpuComputePipelineGetBindGroupLayout:_wgpuComputePipelineGetBindGroupLayout,wgpuDeviceCreateBindGroup:_wgpuDeviceCreateBindGroup,wgpuDeviceCreateCommandEncoder:_wgpuDeviceCreateCommandEncoder,wgpuDeviceCreateComputePipeline:_wgpuDeviceCreateComputePipeline,wgpuQueueSubmit:_wgpuQueueSubmit,wgpuQueueWriteBuffer:_wgpuQueueWriteBuffer}}function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_pp=f=>a0=>Number(f(BigInt(a0)));var makeWrapper__p=f=>a0=>f(BigInt(a0));var makeWrapper___PP=f=>(a0,a1,a2)=>f(a0,BigInt(a1?a1:0),BigInt(a2?a2:0));var makeWrapper_p=f=>()=>Number(f());var makeWrapper_ppp=f=>(a0,a1)=>Number(f(BigInt(a0),BigInt(a1)));var makeWrapper__pp_ppp=f=>(a0,a1,a2,a3,a4,a5)=>f(BigInt(a0),BigInt(a1),a2,BigInt(a3),BigInt(a4),BigInt(a5));var makeWrapper__p_____=f=>(a0,a1,a2,a3,a4,a5)=>f(BigInt(a0),a1,a2,a3,a4,a5);var makeWrapper___p_p_=f=>(a0,a1,a2,a3,a4)=>f(a0,BigInt(a1),a2,BigInt(a3),a4);var makeWrapper__pp=f=>(a0,a1)=>f(BigInt(a0),BigInt(a1));wasmExports[\"malloc\"]=makeWrapper_pp(wasmExports[\"malloc\"]);wasmExports[\"free\"]=makeWrapper__p(wasmExports[\"free\"]);wasmExports[\"main\"]=makeWrapper___PP(wasmExports[\"main\"]);wasmExports[\"pthread_self\"]=makeWrapper_p(wasmExports[\"pthread_self\"]);wasmExports[\"emscripten_builtin_memalign\"]=makeWrapper_ppp(wasmExports[\"emscripten_builtin_memalign\"]);wasmExports[\"_emscripten_run_callback_on_thread\"]=makeWrapper__pp_ppp(wasmExports[\"_emscripten_run_callback_on_thread\"]);wasmExports[\"_emscripten_thread_init\"]=makeWrapper__p_____(wasmExports[\"_emscripten_thread_init\"]);wasmExports[\"_emscripten_run_js_on_main_thread\"]=makeWrapper___p_p_(wasmExports[\"_emscripten_run_js_on_main_thread\"]);wasmExports[\"_emscripten_thread_free_data\"]=makeWrapper__p(wasmExports[\"_emscripten_thread_free_data\"]);wasmExports[\"_emscripten_thread_exit\"]=makeWrapper__p(wasmExports[\"_emscripten_thread_exit\"]);wasmExports[\"memalign\"]=makeWrapper_ppp(wasmExports[\"memalign\"]);wasmExports[\"emscripten_stack_set_limits\"]=makeWrapper__pp(wasmExports[\"emscripten_stack_set_limits\"]);wasmExports[\"_emscripten_stack_restore\"]=makeWrapper__p(wasmExports[\"_emscripten_stack_restore\"]);wasmExports[\"_emscripten_stack_alloc\"]=makeWrapper_pp(wasmExports[\"_emscripten_stack_alloc\"]);wasmExports[\"emscripten_stack_get_current\"]=makeWrapper_p(wasmExports[\"emscripten_stack_get_current\"]);return wasmExports}async function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,BigInt(argv));ret=await ret;exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){dependenciesFulfilled=run;return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}async function doRun(){Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();Module[\"onRuntimeInitialized\"]?.();var noInitialRun=Module[\"noInitialRun\"]||false;if(!noInitialRun)await callMain();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(()=>{setTimeout(()=>Module[\"setStatus\"](\"\"),1);doRun()},1)}else{doRun()}}var wasmExports;if(!ENVIRONMENT_IS_PTHREAD){createWasm();run()}\n"; +export const WLLAMA_EMSCRIPTEN_CODE = "var Module=typeof Module!=\"undefined\"?Module:{};var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!=\"renderer\";var ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&self.name?.startsWith(\"em-pthread\");if(ENVIRONMENT_IS_NODE){var worker_threads=require(\"worker_threads\");global.Worker=worker_threads.Worker;ENVIRONMENT_IS_WORKER=!worker_threads.isMainThread;ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&worker_threads[\"workerData\"]==\"em-pthread\"}var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=globalThis.document?.currentScript?.src;if(typeof __filename!=\"undefined\"){_scriptName=__filename}else if(ENVIRONMENT_IS_WORKER){_scriptName=self.location.href}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require(\"fs\");scriptDirectory=__dirname+\"/\";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:\"utf8\");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\\\/g,\"/\")}arguments_=process.argv.slice(2);if(typeof module!=\"undefined\"){module[\"exports\"]=Module}quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(\".\",_scriptName).href}catch{}if(!ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:\"same-origin\"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+\" : \"+response.url)}}}else{}var defaultPrint=console.log.bind(console);var defaultPrintErr=console.error.bind(console);if(ENVIRONMENT_IS_NODE){var utils=require(\"util\");var stringify=a=>typeof a==\"object\"?utils.inspect(a):a;defaultPrint=(...args)=>fs.writeSync(1,args.map(stringify).join(\" \")+\"\\n\");defaultPrintErr=(...args)=>fs.writeSync(2,args.map(stringify).join(\" \")+\"\\n\")}var out=defaultPrint;var err=defaultPrintErr;var wasmBinary;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var isFileURI=filename=>filename.startsWith(\"file://\");function growMemViews(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}}if(ENVIRONMENT_IS_NODE&&ENVIRONMENT_IS_PTHREAD){var parentPort=worker_threads[\"parentPort\"];parentPort.on(\"message\",msg=>global.onmessage?.({data:msg}));Object.assign(globalThis,{self:global,postMessage:msg=>parentPort[\"postMessage\"](msg)});process.on(\"uncaughtException\",err=>{postMessage({cmd:\"uncaughtException\",error:err});process.exit(1)})}var startWorker;if(ENVIRONMENT_IS_PTHREAD){var initializedJS=false;self.onunhandledrejection=e=>{throw e.reason||e};async function handleMessage(e){try{var msgData=e[\"data\"];var cmd=msgData.cmd;if(cmd===\"load\"){let messageQueue=[];self.onmessage=e=>messageQueue.push(e);startWorker=()=>{postMessage({cmd:\"loaded\"});for(let msg of messageQueue){handleMessage(msg)}self.onmessage=handleMessage};for(const handler of msgData.handlers){if(!Module[handler]||Module[handler].proxy){Module[handler]=(...args)=>{postMessage({cmd:\"callHandler\",handler,args})};if(handler==\"print\")out=Module[handler];if(handler==\"printErr\")err=Module[handler]}}wasmMemory=msgData.wasmMemory;updateMemoryViews();wasmModule=msgData.wasmModule;createWasm();run()}else if(cmd===\"run\"){establishStackSpace(msgData.pthread_ptr);__emscripten_thread_init(msgData.pthread_ptr,0,0,1,0,0);PThread.threadInitTLS();__emscripten_thread_mailbox_await(msgData.pthread_ptr);if(!initializedJS){initializedJS=true}try{await invokeEntryPoint(msgData.start_routine,msgData.arg)}catch(ex){if(ex!=\"unwind\"){throw ex}}}else if(msgData.target===\"setimmediate\"){}else if(cmd===\"checkMailbox\"){if(initializedJS){checkMailbox()}}else if(cmd){err(`worker: received unknown command ${cmd}`);err(msgData)}}catch(ex){__emscripten_thread_crashed();throw ex}}self.onmessage=handleMessage}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function initMemory(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||134217728;wasmMemory=new WebAssembly.Memory({initial:BigInt(INITIAL_MEMORY/65536),maximum:65536n,shared:true,address:\"i64\"})}updateMemoryViews()}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return startWorker();if(!Module[\"noFSInit\"]&&!FS.initialized)FS.init();TTY.init();wasmExports[\"__wasm_call_ctors\"]();FS.ignorePermissions=false}function preMain(){}function postRun(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module[\"onAbort\"]?.(what);what=\"Aborted(\"+what+\")\";err(what);ABORT=true;what+=\". Build with -sASSERTIONS for more info.\";if(runtimeInitialized){___trap()}var e=new WebAssembly.RuntimeError(what);throw e}var wasmBinaryFile;function findWasmBinary(){return locateFile(\"wllama.wasm\")}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:\"same-origin\"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err(\"falling back to ArrayBuffer instantiation\")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){assignWasmImports();if(!wasmImports.__instrumented){wasmImports.__instrumented=true;Asyncify.instrumentWasmImports(wasmImports)}var imports={env:wasmImports,wasi_snapshot_preview1:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmExports=applySignatureConversions(wasmExports);registerTLSInit(wasmExports[\"_emscripten_tls_init\"]);assignWasmExports(wasmExports);wasmModule=module;removeRunDependency(\"wasm-instantiate\");return wasmExports}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){return receiveInstance(result[\"instance\"],result[\"module\"])}var info=getWasmImports();if(Module[\"instantiateWasm\"]){return new Promise((resolve,reject)=>{Module[\"instantiateWasm\"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}if(ENVIRONMENT_IS_PTHREAD){var instance=new WebAssembly.Instance(wasmModule,getWasmImports());return receiveInstance(instance,wasmModule)}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name=\"ExitStatus\";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var terminateWorker=worker=>{worker.terminate();worker.onmessage=e=>{}};var cleanupThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];PThread.returnWorkerToPool(worker)};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module[\"monitorRunDependencies\"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}};var addRunDependency=id=>{runDependencies++;Module[\"monitorRunDependencies\"]?.(runDependencies)};var spawnThread=threadParams=>{var worker=PThread.getNewWorker();if(!worker){return 6}PThread.runningWorkers.push(worker);PThread.pthreads[threadParams.pthread_ptr]=worker;worker.pthread_ptr=threadParams.pthread_ptr;var msg={cmd:\"run\",start_routine:threadParams.startRoutine,arg:threadParams.arg,pthread_ptr:threadParams.pthread_ptr};if(ENVIRONMENT_IS_NODE){worker.unref()}worker.postMessage(msg,threadParams.transferList);return 0};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var stackSave=()=>_emscripten_stack_get_current();var stackRestore=val=>__emscripten_stack_restore(val);var stackAlloc=sz=>__emscripten_stack_alloc(sz);var proxyToMainThread=(funcIndex,emAsmAddr,sync,...callArgs)=>{var serializedNumCallArgs=callArgs.length*2;var sp=stackSave();var args=stackAlloc(serializedNumCallArgs*8);var b=args/8;for(var i=0;i{EXITSTATUS=status;if(ENVIRONMENT_IS_PTHREAD){exitOnMainThread(status);throw\"unwind\"}_proc_exit(status)};var _exit=exitJS;var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init(){if(!ENVIRONMENT_IS_PTHREAD){PThread.initMainThread()}},initMainThread(){var pthreadPoolSize=Module[\"pthreadPoolSize\"];while(pthreadPoolSize--){PThread.allocateUnusedWorker()}addOnPreRun(async()=>{var pthreadPoolReady=PThread.loadWasmModuleToAllWorkers();addRunDependency(\"loading-workers\");await pthreadPoolReady;removeRunDependency(\"loading-workers\")})},terminateAllThreads:()=>{for(var worker of PThread.runningWorkers){terminateWorker(worker)}for(var worker of PThread.unusedWorkers){terminateWorker(worker)}PThread.unusedWorkers=[];PThread.runningWorkers=[];PThread.pthreads={}},returnWorkerToPool:worker=>{var pthread_ptr=worker.pthread_ptr;delete PThread.pthreads[pthread_ptr];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);worker.pthread_ptr=0;__emscripten_thread_free_data(pthread_ptr)},threadInitTLS(){PThread.tlsInitFunctions.forEach(f=>f())},loadWasmModuleToWorker:worker=>new Promise(onFinishedLoading=>{worker.onmessage=e=>{var d=e[\"data\"];var cmd=d.cmd;if(d.targetThread&&d.targetThread!=_pthread_self()){var targetWorker=PThread.pthreads[d.targetThread];if(targetWorker){targetWorker.postMessage(d,d.transferList)}else{err(`Internal error! Worker sent a message \"${cmd}\" to target pthread ${d.targetThread}, but that thread no longer exists!`)}return}if(cmd===\"checkMailbox\"){checkMailbox()}else if(cmd===\"spawnThread\"){spawnThread(d)}else if(cmd===\"cleanupThread\"){callUserCallback(()=>cleanupThread(d.thread))}else if(cmd===\"loaded\"){worker.loaded=true;if(ENVIRONMENT_IS_NODE&&!worker.pthread_ptr){worker.unref()}onFinishedLoading(worker)}else if(d.target===\"setimmediate\"){worker.postMessage(d)}else if(cmd===\"uncaughtException\"){worker.onerror(d.error)}else if(cmd===\"callHandler\"){Module[d.handler](...d.args)}else if(cmd){err(`worker sent an unknown command ${cmd}`)}};worker.onerror=e=>{var message=\"worker sent an error!\";err(`${message} ${e.filename}:${e.lineno}: ${e.message}`);throw e};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",data=>worker.onmessage({data}));worker.on(\"error\",e=>worker.onerror(e))}var handlers=[];var knownHandlers=[\"onExit\",\"onAbort\",\"print\",\"printErr\"];for(var handler of knownHandlers){if(Module.propertyIsEnumerable(handler)){handlers.push(handler)}}worker.postMessage({cmd:\"load\",handlers,wasmMemory,wasmModule})}),async loadWasmModuleToAllWorkers(){if(ENVIRONMENT_IS_PTHREAD){return}let pthreadPoolReady=Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker));return pthreadPoolReady},allocateUnusedWorker(){var worker;var pthreadMainJs=_scriptName;if(Module[\"mainScriptUrlOrBlob\"]){pthreadMainJs=Module[\"mainScriptUrlOrBlob\"];if(typeof pthreadMainJs!=\"string\"){pthreadMainJs=URL.createObjectURL(pthreadMainJs)}}worker=new Worker(pthreadMainJs,{workerData:\"em-pthread\",name:\"em-pthread\"});PThread.unusedWorkers.push(worker)},getNewWorker(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);function establishStackSpace(pthread_ptr){var stackHigh=Number((growMemViews(),HEAPU64)[(pthread_ptr+88)/8]);var stackSize=Number((growMemViews(),HEAPU64)[(pthread_ptr+96)/8]);var stackLow=stackHigh-stackSize;_emscripten_stack_set_limits(stackHigh,stackLow);stackRestore(stackHigh)}var wasmTableMirror=[];var getWasmTableEntry=funcPtr=>{funcPtr=Number(funcPtr);var func=wasmTableMirror[funcPtr];if(!func){wasmTableMirror[funcPtr]=func=wasmTable.get(BigInt(funcPtr));if(Asyncify.isAsyncExport(func)){wasmTableMirror[funcPtr]=func=Asyncify.makeAsyncFunction(func)}}return func};var invokeEntryPoint=async(ptr,arg)=>{runtimeKeepaliveCounter=0;noExitRuntime=0;var result=(a1=>WebAssembly.promising(getWasmTableEntry(ptr)).call(null,BigInt(a1)))(arg);function finish(result){if(keepRuntimeAlive()){EXITSTATUS=result;return}__emscripten_thread_exit(result)}result=await result;finish(result)};invokeEntryPoint.isAsync=true;var noExitRuntime=true;var registerTLSInit=tlsInitFunc=>PThread.tlsInitFunctions.push(tlsInitFunc);var wasmMemory;var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>numINT53_MAX?NaN:Number(num);var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.buffer instanceof ArrayBuffer?heapOrArray.subarray(idx,endPtr):heapOrArray.slice(idx,endPtr))}var str=\"\";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString((growMemViews(),HEAPU8),ptr,maxBytesToRead,ignoreNul):\"\";function pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(2,0,1,pthread_ptr,attr,startRoutine,arg);return ___pthread_create_js(pthread_ptr,attr,startRoutine,arg)}var _emscripten_has_threading_support=()=>!!globalThis.SharedArrayBuffer;function ___pthread_create_js(pthread_ptr,attr,startRoutine,arg){pthread_ptr=bigintToI53Checked(pthread_ptr);attr=bigintToI53Checked(attr);startRoutine=bigintToI53Checked(startRoutine);arg=bigintToI53Checked(arg);if(!_emscripten_has_threading_support()){return 6}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg)}if(error)return error;var threadParams={startRoutine,pthread_ptr,arg,transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}var syscallGetVarargP=()=>{var ret=Number((growMemViews(),HEAPU64)[SYSCALLS.varargs/8]);SYSCALLS.varargs+=8;return ret};var syscallGetVarargI=()=>{var ret=(growMemViews(),HEAP32)[+SYSCALLS.varargs/4];SYSCALLS.varargs+=4;return ret};var PATH={isAbs:path=>path.charAt(0)===\"/\",splitPath:filename=>{var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(p=>!!p),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\\/]+|\\/)\\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join(\"/\")),join2:(l,r)=>PATH.normalize(l+\"/\"+r)};var initRandomFill=()=>view=>view.set(crypto.getRandomValues(new Uint8Array(view.byteLength)));var randomFill=view=>{(randomFill=initRandomFill())(view)};var PATH_FS={resolve:(...args)=>{var resolvedPath=\"\",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!=\"string\"){throw new TypeError(\"Arguments to path.resolve must be strings\")}else if(!path){return\"\"}resolvedPath=path+\"/\"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(p=>!!p),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!==\"\")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split(\"/\"));var toParts=trim(to.split(\"/\"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++}}heap[outIdx]=0;return outIdx-startIdx};var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes(\"EOF\"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString(\"utf-8\")}}else if(globalThis.window?.prompt){result=window.prompt(\"Input: \");if(result!==null){result+=\"\\n\"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var zeroMemory=(ptr,size)=>(growMemViews(),HEAPU8).fill(0,ptr,ptr+size);var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(ptr)zeroMemory(ptr,size);return ptr};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,\"/\",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of[\"mode\",\"atime\",\"mtime\",\"ctime\"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){if(!MEMFS.doesNotExistError){MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack=\"\"}throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[\".\",\"..\",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var flagModes={r:0,\"r+\":2,w:512|64|1,\"w+\":512|64|2,a:1024|64|1,\"a+\":1024|64|2};var flags=flagModes[str];if(typeof flags==\"undefined\"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var getUniqueRunDependency=id=>id;var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!=\"undefined\")Browser.init();for(var plugin of preloadPlugins){if(plugin[\"canHandle\"](fullname)){return plugin[\"handle\"](byteArray,fullname)}}return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);addRunDependency(dep);try{var byteArray=url;if(typeof url==\"string\"){byteArray=await asyncLoad(url)}byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}}finally{removeRunDependency(dep)}};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name=\"ErrnoError\";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+\"/\"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split(\"/\").filter(p=>!!p);var current=FS.root;var current_path=\"/\";for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes(\"r\")&&!(node.mode&292)){return 2}else if(perms.includes(\"w\")&&!(node.mode&146)){return 2}else if(perms.includes(\"x\")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,\"wx\");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!==\"r\"||flags&(512|64)){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate==\"function\"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}for(var mount of mounts){if(mount.type.syncfs){mount.type.syncfs(mount,populate,done)}else{done(null)}}},mount(type,opts,mountpoint){var root=mountpoint===\"/\";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);for(var[hash,current]of Object.entries(FS.nameTable)){while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}}node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name===\".\"||name===\"..\"){throw new FS.ErrnoError(20)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split(\"/\");var d=\"\";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+=\"/\";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev==\"undefined\"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===\"\"){throw new FS.ErrnoError(44)}flags=typeof flags==\"string\"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path==\"object\"){node=path}else{isDirPath=path.endsWith(\"/\");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}if(Module[\"logReadFiles\"]&&!(flags&1)){if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||\"binary\";if(opts.encoding!==\"utf8\"&&opts.encoding!==\"binary\"){abort(`Invalid encoding type \"${opts.encoding}\"`)}var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding===\"utf8\"){buf=UTF8ArrayToString(buf)}FS.close(stream);return buf},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==\"string\"){data=new Uint8Array(intArrayFromString(data,true))}if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{abort(\"Unsupported data type\")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,\"x\");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir(\"/tmp\");FS.mkdir(\"/home\");FS.mkdir(\"/home/web_user\")},createDefaultDevices(){FS.mkdir(\"/dev\");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev(\"/dev/null\",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev(\"/dev/tty\",FS.makedev(5,0));FS.mkdev(\"/dev/tty1\",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice(\"/dev\",\"random\",randomByte);FS.createDevice(\"/dev\",\"urandom\",randomByte);FS.mkdir(\"/dev/shm\");FS.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories(){FS.mkdir(\"/proc\");var proc_self=FS.mkdir(\"/proc/self\");FS.mkdir(\"/proc/self/fd\");FS.mount({mount(){var node=FS.createNode(proc_self,\"fd\",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},\"/proc/self/fd\")},createStandardStreams(input,output,error){if(input){FS.createDevice(\"/dev\",\"stdin\",input)}else{FS.symlink(\"/dev/tty\",\"/dev/stdin\")}if(output){FS.createDevice(\"/dev\",\"stdout\",null,output)}else{FS.symlink(\"/dev/tty\",\"/dev/stdout\")}if(error){FS.createDevice(\"/dev\",\"stderr\",null,error)}else{FS.symlink(\"/dev/tty1\",\"/dev/stderr\")}var stdin=FS.open(\"/dev/stdin\",0);var stdout=FS.open(\"/dev/stdout\",1);var stderr=FS.open(\"/dev/stderr\",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){FS.initialized=true;input??=Module[\"stdin\"];output??=Module[\"stdout\"];error??=Module[\"stderr\"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path===\"/\"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent==\"string\"?parent:FS.getPath(parent);var parts=path.split(\"/\").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent==\"string\"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==\"string\"){var arr=new Array(data.length);for(var i=0,len=data.length;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open(\"HEAD\",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort(\"Couldn't load \"+url+\". Status: \"+xhr.status);var datalength=Number(xhr.getResponseHeader(\"Content-length\"));var header;var hasByteServing=(header=xhr.getResponseHeader(\"Accept-Ranges\"))&&header===\"bytes\";var usesGzip=(header=xhr.getResponseHeader(\"Content-Encoding\"))&&header===\"gzip\";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)abort(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)abort(\"only \"+datalength+\" bytes available! programmer error!\");var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);if(datalength!==chunkSize)xhr.setRequestHeader(\"Range\",\"bytes=\"+from+\"-\"+to);xhr.responseType=\"arraybuffer\";if(xhr.overrideMimeType){xhr.overrideMimeType(\"text/plain; charset=x-user-defined\")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort(\"Couldn't load \"+url+\". Status: \"+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||\"\",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==\"undefined\"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==\"undefined\")abort(\"doXHR failed!\");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out(\"LazyFiles on gzip forces download of the whole file when length is accessed\")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(globalThis.XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)abort(\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\");var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};for(const[key,fn]of Object.entries(node.stream_ops)){stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}}function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,(growMemViews(),HEAP8),ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+\"/\"+path},writeStat(buf,stat){(growMemViews(),HEAPU32)[buf/4]=stat.dev;(growMemViews(),HEAPU32)[(buf+4)/4]=stat.mode;(growMemViews(),HEAPU64)[(buf+8)/8]=BigInt(stat.nlink);(growMemViews(),HEAPU32)[(buf+16)/4]=stat.uid;(growMemViews(),HEAPU32)[(buf+20)/4]=stat.gid;(growMemViews(),HEAPU32)[(buf+24)/4]=stat.rdev;(growMemViews(),HEAP64)[(buf+32)/8]=BigInt(stat.size);(growMemViews(),HEAP32)[(buf+40)/4]=4096;(growMemViews(),HEAP32)[(buf+44)/4]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();(growMemViews(),HEAP64)[(buf+48)/8]=BigInt(Math.floor(atime/1e3));(growMemViews(),HEAPU64)[(buf+56)/8]=BigInt(atime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+64)/8]=BigInt(Math.floor(mtime/1e3));(growMemViews(),HEAPU64)[(buf+72)/8]=BigInt(mtime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+80)/8]=BigInt(Math.floor(ctime/1e3));(growMemViews(),HEAPU64)[(buf+88)/8]=BigInt(ctime%1e3*1e3*1e3);(growMemViews(),HEAP64)[(buf+96)/8]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){(growMemViews(),HEAPU32)[(buf+8)/4]=stats.bsize;(growMemViews(),HEAPU32)[(buf+72)/4]=stats.bsize;(growMemViews(),HEAP64)[(buf+16)/8]=BigInt(stats.blocks);(growMemViews(),HEAP64)[(buf+24)/8]=BigInt(stats.bfree);(growMemViews(),HEAP64)[(buf+32)/8]=BigInt(stats.bavail);(growMemViews(),HEAP64)[(buf+40)/8]=BigInt(stats.files);(growMemViews(),HEAP64)[(buf+48)/8]=BigInt(stats.ffree);(growMemViews(),HEAPU32)[(buf+56)/4]=stats.fsid;(growMemViews(),HEAPU32)[(buf+80)/4]=stats.flags;(growMemViews(),HEAPU32)[(buf+64)/4]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=(growMemViews(),HEAPU8).slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(3,0,1,fd,cmd,varargs);varargs=bigintToI53Checked(varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 5:{var arg=syscallGetVarargP();var offset=0;(growMemViews(),HEAP16)[(arg+offset)/2]=2;return 0}case 6:case 7:return 0}return-28}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(4,0,1,fd,buf);buf=bigintToI53Checked(buf);try{return SYSCALLS.writeStat(buf,FS.fstat(fd))}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,(growMemViews(),HEAPU8),outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(5,0,1,buf,size);buf=bigintToI53Checked(buf);size=bigintToI53Checked(size);try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(sizeabort(\"\");function __emscripten_init_main_thread_js(tb){tb=bigintToI53Checked(tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1,!ENVIRONMENT_IS_WEB,65536,false);PThread.threadInitTLS()}var handleException=e=>{if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)};var maybeExit=()=>{if(!keepRuntimeAlive()){try{if(ENVIRONMENT_IS_PTHREAD){if(_pthread_self())__emscripten_thread_exit(EXITSTATUS);return}_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};function __emscripten_thread_mailbox_await(pthread_ptr){pthread_ptr=bigintToI53Checked(pthread_ptr);if(Atomics.waitAsync){var wait=Atomics.waitAsync((growMemViews(),HEAP32),pthread_ptr/4,pthread_ptr);wait.value.then(checkMailbox);var waitingAsync=pthread_ptr+228;Atomics.store((growMemViews(),HEAP32),waitingAsync/4,1)}}var checkMailbox=()=>callUserCallback(()=>{var pthread_ptr=_pthread_self();if(pthread_ptr){__emscripten_thread_mailbox_await(pthread_ptr);__emscripten_check_mailbox()}});function __emscripten_notify_mailbox_postmessage(targetThread,currThreadId){targetThread=bigintToI53Checked(targetThread);currThreadId=bigintToI53Checked(currThreadId);if(targetThread==currThreadId){setTimeout(checkMailbox)}else if(ENVIRONMENT_IS_PTHREAD){postMessage({targetThread,cmd:\"checkMailbox\"})}else{var worker=PThread.pthreads[targetThread];if(!worker){return}worker.postMessage({cmd:\"checkMailbox\"})}}var proxiedJSCallArgs=[];function __emscripten_receive_on_main_thread_js(funcIndex,emAsmAddr,callingThread,numCallArgs,args){emAsmAddr=bigintToI53Checked(emAsmAddr);callingThread=bigintToI53Checked(callingThread);args=bigintToI53Checked(args);numCallArgs/=2;proxiedJSCallArgs.length=numCallArgs;var b=args/8;for(var i=0;i{noExitRuntime=false;runtimeKeepaliveCounter=0};function __emscripten_thread_cleanup(thread){thread=bigintToI53Checked(thread);if(!ENVIRONMENT_IS_PTHREAD)cleanupThread(thread);else postMessage({cmd:\"cleanupThread\",thread})}function __emscripten_thread_set_strongref(thread){thread=bigintToI53Checked(thread);if(ENVIRONMENT_IS_NODE){PThread.pthreads[thread].ref()}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time,tmPtr){time=bigintToI53Checked(time);tmPtr=bigintToI53Checked(tmPtr);var date=new Date(time*1e3);(growMemViews(),HEAP32)[tmPtr/4]=date.getSeconds();(growMemViews(),HEAP32)[(tmPtr+4)/4]=date.getMinutes();(growMemViews(),HEAP32)[(tmPtr+8)/4]=date.getHours();(growMemViews(),HEAP32)[(tmPtr+12)/4]=date.getDate();(growMemViews(),HEAP32)[(tmPtr+16)/4]=date.getMonth();(growMemViews(),HEAP32)[(tmPtr+20)/4]=date.getFullYear()-1900;(growMemViews(),HEAP32)[(tmPtr+24)/4]=date.getDay();var yday=ydayFromDate(date)|0;(growMemViews(),HEAP32)[(tmPtr+28)/4]=yday;(growMemViews(),HEAP64)[(tmPtr+40)/8]=BigInt(-(date.getTimezoneOffset()*60));var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;(growMemViews(),HEAP32)[(tmPtr+32)/4]=dst}function __mmap_js(len,prot,flags,fd,offset,allocated,addr){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(12,0,1,len,prot,flags,fd,offset,allocated,addr);len=bigintToI53Checked(len);offset=bigintToI53Checked(offset);allocated=bigintToI53Checked(allocated);addr=bigintToI53Checked(addr);try{var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;(growMemViews(),HEAP32)[allocated/4]=res.allocated;(growMemViews(),HEAPU64)[addr/8]=BigInt(ptr);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(13,0,1,addr,len,prot,flags,fd,offset);addr=bigintToI53Checked(addr);len=bigintToI53Checked(len);offset=bigintToI53Checked(offset);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var timers={};var _emscripten_get_now=()=>performance.timeOrigin+performance.now();function __setitimer_js(which,timeout_ms){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(14,0,1,which,timeout_ms);if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0}var __tzset_js=function(timezone,daylight,std_name,dst_name){timezone=bigintToI53Checked(timezone);daylight=bigintToI53Checked(daylight);std_name=bigintToI53Checked(std_name);dst_name=bigintToI53Checked(dst_name);var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);(growMemViews(),HEAPU64)[timezone/8]=BigInt(stdTimezoneOffset*60);(growMemViews(),HEAP32)[daylight/4]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?\"-\":\"+\";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,\"0\");var minutes=String(absOffset%60).padStart(2,\"0\");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffsetDate.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);ptime=bigintToI53Checked(ptime);if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);(growMemViews(),HEAP64)[ptime/8]=BigInt(nsec);return 0}var _emscripten_check_blocking_allowed=()=>{};var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};var _emscripten_exit_with_live_runtime=()=>{runtimeKeepalivePush();throw\"unwind\"};var getHeapMax=()=>4294967296;var _emscripten_get_heap_max=()=>BigInt(getHeapMax());var _emscripten_has_asyncify=()=>2;var _emscripten_num_logical_cores=()=>ENVIRONMENT_IS_NODE?require(\"os\").cpus().length:navigator[\"hardwareConcurrency\"];var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(BigInt(pages));updateMemoryViews();return 1}catch(e){}};function _emscripten_resize_heap(requestedSize){requestedSize=bigintToI53Checked(requestedSize);var oldSize=(growMemViews(),HEAPU8).length;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false}var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var writeI53ToI64=(ptr,num)=>{(growMemViews(),HEAPU32)[ptr/4]=num;var lower=(growMemViews(),HEAPU32)[ptr/4];(growMemViews(),HEAPU32)[(ptr+4)/4]=(num-lower)/4294967296};var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var readI53FromI64=ptr=>(growMemViews(),HEAPU32)[ptr/4]+(growMemViews(),HEAP32)[(ptr+4)/4]*4294967296;var WebGPU={Internals:{jsObjects:[],jsObjectInsert:(ptr,jsObject)=>{WebGPU.Internals.jsObjects[ptr]=jsObject},bufferOnUnmaps:[],futures:[],futureInsert:(futureId,promise)=>{WebGPU.Internals.futures[futureId]=new Promise(resolve=>promise.finally(()=>resolve(futureId)))}},getJsObject:ptr=>{if(!ptr)return undefined;return WebGPU.Internals.jsObjects[ptr]},importJsAdapter:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateAdapter(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroup:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroup(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroupLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroupLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBuffer:(buffer,parentPtr=0)=>{assert(buffer.mapState===\"unmapped\");var bufferPtr=_emwgpuCreateBuffer(parentPtr);WebGPU.Internals.jsObjectInsert(bufferPtr,buffer);return bufferPtr},importJsCommandBuffer:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandBuffer(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsCommandEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsDevice:(device,parentPtr=0)=>{var queuePtr=_emwgpuCreateQueue(parentPtr);var devicePtr=_emwgpuCreateDevice(parentPtr,queuePtr);WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);return devicePtr},importJsExternalTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateExternalTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsPipelineLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreatePipelineLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQuerySet:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQuerySet(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQueue:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQueue(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundle:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundle(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundleEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundleEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSampler:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSampler(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsShaderModule:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateShaderModule(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSurface:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSurface(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTextureView:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTextureView(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},errorCallback:(callback,type,message,userdata)=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(message);((a1,a2,a3)=>getWasmTableEntry(callback).call(null,a1,BigInt(a2),BigInt(a3)))(type,BigInt(messagePtr),userdata);stackRestore(sp)},iterateExtensions:(root,handlers)=>{for(var ptr=Number((growMemViews(),HEAPU64)[root/8]);ptr;ptr=Number((growMemViews(),HEAPU64)[ptr/8])){var sType=(growMemViews(),HEAP32)[(ptr+8)/4];var handler=handlers[sType](ptr)}},setStringView:(ptr,data,length)=>{(growMemViews(),HEAPU64)[ptr/8]=BigInt(data);(growMemViews(),HEAPU64)[(ptr+8)/8]=BigInt(length)},makeStringFromStringView:stringViewPtr=>{var ptr=Number((growMemViews(),HEAPU64)[stringViewPtr/8]);var length=Number((growMemViews(),HEAPU64)[(stringViewPtr+8)/8]);return UTF8ToString(ptr,length)},makeStringFromOptionalStringView:stringViewPtr=>{var ptr=Number((growMemViews(),HEAPU64)[stringViewPtr/8]);var length=Number((growMemViews(),HEAPU64)[(stringViewPtr+8)/8]);if(!ptr){if(length===0){return\"\"}return undefined}return UTF8ToString(ptr,length)},makeColor:ptr=>({r:(growMemViews(),HEAPF64)[ptr/8],g:(growMemViews(),HEAPF64)[(ptr+8)/8],b:(growMemViews(),HEAPF64)[(ptr+16)/8],a:(growMemViews(),HEAPF64)[(ptr+24)/8]}),makeExtent3D:ptr=>({width:(growMemViews(),HEAPU32)[ptr/4],height:(growMemViews(),HEAPU32)[(ptr+4)/4],depthOrArrayLayers:(growMemViews(),HEAPU32)[(ptr+8)/4]}),makeOrigin3D:ptr=>({x:(growMemViews(),HEAPU32)[ptr/4],y:(growMemViews(),HEAPU32)[(ptr+4)/4],z:(growMemViews(),HEAPU32)[(ptr+8)/4]}),makeTexelCopyTextureInfo:ptr=>({texture:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[ptr/8])),mipLevel:(growMemViews(),HEAPU32)[(ptr+8)/4],origin:WebGPU.makeOrigin3D(ptr+12),aspect:WebGPU.TextureAspect[(growMemViews(),HEAP32)[(ptr+24)/4]]}),makeTexelCopyBufferLayout:ptr=>{var bytesPerRow=(growMemViews(),HEAPU32)[(ptr+8)/4];var rowsPerImage=(growMemViews(),HEAPU32)[(ptr+12)/4];return{offset:readI53FromI64(ptr),bytesPerRow:bytesPerRow===4294967295?undefined:bytesPerRow,rowsPerImage:rowsPerImage===4294967295?undefined:rowsPerImage}},makeTexelCopyBufferInfo:ptr=>{var layoutPtr=ptr+0;var bufferCopyView=WebGPU.makeTexelCopyBufferLayout(layoutPtr);bufferCopyView[\"buffer\"]=WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+16)/8]));return bufferCopyView},makePassTimestampWrites:ptr=>{if(ptr===0)return undefined;return{querySet:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+8)/8])),beginningOfPassWriteIndex:(growMemViews(),HEAPU32)[(ptr+16)/4],endOfPassWriteIndex:(growMemViews(),HEAPU32)[(ptr+20)/4]}},makePipelineConstants:(constantCount,constantsPtr)=>{if(!constantCount)return;var constants={};for(var i=0;i{if(!layoutPtr)return\"auto\";return WebGPU.getJsObject(layoutPtr)},makeComputeState:ptr=>{if(!ptr)return undefined;var desc={module:WebGPU.getJsObject(Number((growMemViews(),HEAPU64)[(ptr+8)/8])),constants:WebGPU.makePipelineConstants(Number((growMemViews(),HEAPU64)[(ptr+32)/8]),Number((growMemViews(),HEAPU64)[(ptr+40)/8])),entryPoint:WebGPU.makeStringFromOptionalStringView(ptr+16)};return desc},makeComputePipelineDesc:descriptor=>{var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8),layout:WebGPU.makePipelineLayout(Number((growMemViews(),HEAPU64)[(descriptor+24)/8])),compute:WebGPU.makeComputeState(descriptor+32)};return desc},makeRenderPipelineDesc:descriptor=>{function makePrimitiveState(psPtr){if(!psPtr)return undefined;return{topology:WebGPU.PrimitiveTopology[(growMemViews(),HEAP32)[(psPtr+8)/4]],stripIndexFormat:WebGPU.IndexFormat[(growMemViews(),HEAP32)[(psPtr+12)/4]],frontFace:WebGPU.FrontFace[(growMemViews(),HEAP32)[(psPtr+16)/4]],cullMode:WebGPU.CullMode[(growMemViews(),HEAP32)[(psPtr+20)/4]],unclippedDepth:!!(growMemViews(),HEAPU32)[(psPtr+24)/4]}}function makeBlendComponent(bdPtr){if(!bdPtr)return undefined;return{operation:WebGPU.BlendOperation[(growMemViews(),HEAP32)[bdPtr/4]],srcFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[(bdPtr+4)/4]],dstFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[(bdPtr+8)/4]]}}function makeBlendState(bsPtr){if(!bsPtr)return undefined;return{alpha:makeBlendComponent(bsPtr+12),color:makeBlendComponent(bsPtr+0)}}function makeColorState(csPtr){var format=WebGPU.TextureFormat[(growMemViews(),HEAP32)[(csPtr+8)/4]];return format?{format,blend:makeBlendState(Number((growMemViews(),HEAPU64)[(csPtr+16)/8])),writeMask:(growMemViews(),HEAPU32)[(csPtr+24)/4]}:undefined}function makeColorStates(count,csArrayPtr){var states=[];for(var i=0;i{var nextInChainPtr=Number((growMemViews(),HEAPU64)[limitsOutPtr/8]);function setLimitValueU32(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;(growMemViews(),HEAPU32)[(basePtr+limitOffset)/4]=limitValue}function setLimitValueU64(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;writeI53ToI64(basePtr+limitOffset,limitValue)}setLimitValueU32(\"maxTextureDimension1D\",limitsOutPtr,8);setLimitValueU32(\"maxTextureDimension2D\",limitsOutPtr,12);setLimitValueU32(\"maxTextureDimension3D\",limitsOutPtr,16);setLimitValueU32(\"maxTextureArrayLayers\",limitsOutPtr,20);setLimitValueU32(\"maxBindGroups\",limitsOutPtr,24);setLimitValueU32(\"maxBindGroupsPlusVertexBuffers\",limitsOutPtr,28);setLimitValueU32(\"maxBindingsPerBindGroup\",limitsOutPtr,32);setLimitValueU32(\"maxDynamicUniformBuffersPerPipelineLayout\",limitsOutPtr,36);setLimitValueU32(\"maxDynamicStorageBuffersPerPipelineLayout\",limitsOutPtr,40);setLimitValueU32(\"maxSampledTexturesPerShaderStage\",limitsOutPtr,44);setLimitValueU32(\"maxSamplersPerShaderStage\",limitsOutPtr,48);setLimitValueU32(\"maxStorageBuffersPerShaderStage\",limitsOutPtr,52);setLimitValueU32(\"maxStorageTexturesPerShaderStage\",limitsOutPtr,56);setLimitValueU32(\"maxUniformBuffersPerShaderStage\",limitsOutPtr,60);setLimitValueU32(\"minUniformBufferOffsetAlignment\",limitsOutPtr,80);setLimitValueU32(\"minStorageBufferOffsetAlignment\",limitsOutPtr,84);setLimitValueU64(\"maxUniformBufferBindingSize\",limitsOutPtr,64);setLimitValueU64(\"maxStorageBufferBindingSize\",limitsOutPtr,72);setLimitValueU32(\"maxVertexBuffers\",limitsOutPtr,88);setLimitValueU64(\"maxBufferSize\",limitsOutPtr,96);setLimitValueU32(\"maxVertexAttributes\",limitsOutPtr,104);setLimitValueU32(\"maxVertexBufferArrayStride\",limitsOutPtr,108);setLimitValueU32(\"maxInterStageShaderVariables\",limitsOutPtr,112);setLimitValueU32(\"maxColorAttachments\",limitsOutPtr,116);setLimitValueU32(\"maxColorAttachmentBytesPerSample\",limitsOutPtr,120);setLimitValueU32(\"maxComputeWorkgroupStorageSize\",limitsOutPtr,124);setLimitValueU32(\"maxComputeInvocationsPerWorkgroup\",limitsOutPtr,128);setLimitValueU32(\"maxComputeWorkgroupSizeX\",limitsOutPtr,132);setLimitValueU32(\"maxComputeWorkgroupSizeY\",limitsOutPtr,136);setLimitValueU32(\"maxComputeWorkgroupSizeZ\",limitsOutPtr,140);setLimitValueU32(\"maxComputeWorkgroupsPerDimension\",limitsOutPtr,144);setLimitValueU32(\"maxImmediateSize\",limitsOutPtr,148);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var compatibilityModeLimitsPtr=nextInChainPtr;setLimitValueU32(\"maxStorageBuffersInVertexStage\",compatibilityModeLimitsPtr,16,limits.maxStorageBuffersPerShaderStage);setLimitValueU32(\"maxStorageBuffersInFragmentStage\",compatibilityModeLimitsPtr,24,limits.maxStorageBuffersPerShaderStage);setLimitValueU32(\"maxStorageTexturesInVertexStage\",compatibilityModeLimitsPtr,20,limits.maxStorageTexturesPerShaderStage);setLimitValueU32(\"maxStorageTexturesInFragmentStage\",compatibilityModeLimitsPtr,28,limits.maxStorageTexturesPerShaderStage)}},fillAdapterInfoStruct:(info,infoStruct)=>{(growMemViews(),HEAPU32)[(infoStruct+88)/4]=info.subgroupMinSize;(growMemViews(),HEAPU32)[(infoStruct+92)/4]=info.subgroupMaxSize;var strs=info.vendor+info.architecture+info.device+info.description;var strPtr=stringToNewUTF8(strs);var vendorLen=lengthBytesUTF8(info.vendor);WebGPU.setStringView(infoStruct+8,strPtr,vendorLen);strPtr+=vendorLen;var architectureLen=lengthBytesUTF8(info.architecture);WebGPU.setStringView(infoStruct+24,strPtr,architectureLen);strPtr+=architectureLen;var deviceLen=lengthBytesUTF8(info.device);WebGPU.setStringView(infoStruct+40,strPtr,deviceLen);strPtr+=deviceLen;var descriptionLen=lengthBytesUTF8(info.description);WebGPU.setStringView(infoStruct+56,strPtr,descriptionLen);strPtr+=descriptionLen;(growMemViews(),HEAP32)[(infoStruct+72)/4]=2;var adapterType=info.isFallbackAdapter?3:4;(growMemViews(),HEAP32)[(infoStruct+76)/4]=adapterType;(growMemViews(),HEAPU32)[(infoStruct+80)/4]=0;(growMemViews(),HEAPU32)[(infoStruct+84)/4]=0},AddressMode:[,\"clamp-to-edge\",\"repeat\",\"mirror-repeat\"],BlendFactor:[,\"zero\",\"one\",\"src\",\"one-minus-src\",\"src-alpha\",\"one-minus-src-alpha\",\"dst\",\"one-minus-dst\",\"dst-alpha\",\"one-minus-dst-alpha\",\"src-alpha-saturated\",\"constant\",\"one-minus-constant\",\"src1\",\"one-minus-src1\",\"src1-alpha\",\"one-minus-src1-alpha\"],BlendOperation:[,\"add\",\"subtract\",\"reverse-subtract\",\"min\",\"max\"],BufferBindingType:[,,\"uniform\",\"storage\",\"read-only-storage\"],BufferMapState:[,\"unmapped\",\"pending\",\"mapped\"],CompareFunction:[,\"never\",\"less\",\"equal\",\"less-equal\",\"greater\",\"not-equal\",\"greater-equal\",\"always\"],CompilationInfoRequestStatus:[,\"success\",\"callback-cancelled\"],ComponentSwizzle:[,\"0\",\"1\",\"r\",\"g\",\"b\",\"a\"],CompositeAlphaMode:[,\"opaque\",\"premultiplied\",\"unpremultiplied\",\"inherit\"],CullMode:[,\"none\",\"front\",\"back\"],ErrorFilter:[,\"validation\",\"out-of-memory\",\"internal\"],FeatureLevel:[,\"compatibility\",\"core\"],FeatureName:{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\",22:\"texture-component-swizzle\",327692:\"chromium-experimental-unorm16-texture-formats\",327729:\"chromium-experimental-multi-draw-indirect\"},FilterMode:[,\"nearest\",\"linear\"],FrontFace:[,\"ccw\",\"cw\"],IndexFormat:[,\"uint16\",\"uint32\"],InstanceFeatureName:[,\"timed-wait-any\",\"shader-source-spirv\",\"multiple-devices-per-adapter\"],LoadOp:[,\"load\",\"clear\"],MipmapFilterMode:[,\"nearest\",\"linear\"],OptionalBool:[\"false\",\"true\"],PowerPreference:[,\"low-power\",\"high-performance\"],PredefinedColorSpace:[,\"srgb\",\"display-p3\"],PrimitiveTopology:[,\"point-list\",\"line-list\",\"line-strip\",\"triangle-list\",\"triangle-strip\"],QueryType:[,\"occlusion\",\"timestamp\"],SamplerBindingType:[,,\"filtering\",\"non-filtering\",\"comparison\"],Status:[,\"success\",\"error\"],StencilOperation:[,\"keep\",\"zero\",\"replace\",\"invert\",\"increment-clamp\",\"decrement-clamp\",\"increment-wrap\",\"decrement-wrap\"],StorageTextureAccess:[,,\"write-only\",\"read-only\",\"read-write\"],StoreOp:[,\"store\",\"discard\"],SurfaceGetCurrentTextureStatus:[,\"success-optimal\",\"success-suboptimal\",\"timeout\",\"outdated\",\"lost\",\"error\"],TextureAspect:[,\"all\",\"stencil-only\",\"depth-only\"],TextureDimension:[,\"1d\",\"2d\",\"3d\"],TextureFormat:[,\"r8unorm\",\"r8snorm\",\"r8uint\",\"r8sint\",\"r16unorm\",\"r16snorm\",\"r16uint\",\"r16sint\",\"r16float\",\"rg8unorm\",\"rg8snorm\",\"rg8uint\",\"rg8sint\",\"r32float\",\"r32uint\",\"r32sint\",\"rg16unorm\",\"rg16snorm\",\"rg16uint\",\"rg16sint\",\"rg16float\",\"rgba8unorm\",\"rgba8unorm-srgb\",\"rgba8snorm\",\"rgba8uint\",\"rgba8sint\",\"bgra8unorm\",\"bgra8unorm-srgb\",\"rgb10a2uint\",\"rgb10a2unorm\",\"rg11b10ufloat\",\"rgb9e5ufloat\",\"rg32float\",\"rg32uint\",\"rg32sint\",\"rgba16unorm\",\"rgba16snorm\",\"rgba16uint\",\"rgba16sint\",\"rgba16float\",\"rgba32float\",\"rgba32uint\",\"rgba32sint\",\"stencil8\",\"depth16unorm\",\"depth24plus\",\"depth24plus-stencil8\",\"depth32float\",\"depth32float-stencil8\",\"bc1-rgba-unorm\",\"bc1-rgba-unorm-srgb\",\"bc2-rgba-unorm\",\"bc2-rgba-unorm-srgb\",\"bc3-rgba-unorm\",\"bc3-rgba-unorm-srgb\",\"bc4-r-unorm\",\"bc4-r-snorm\",\"bc5-rg-unorm\",\"bc5-rg-snorm\",\"bc6h-rgb-ufloat\",\"bc6h-rgb-float\",\"bc7-rgba-unorm\",\"bc7-rgba-unorm-srgb\",\"etc2-rgb8unorm\",\"etc2-rgb8unorm-srgb\",\"etc2-rgb8a1unorm\",\"etc2-rgb8a1unorm-srgb\",\"etc2-rgba8unorm\",\"etc2-rgba8unorm-srgb\",\"eac-r11unorm\",\"eac-r11snorm\",\"eac-rg11unorm\",\"eac-rg11snorm\",\"astc-4x4-unorm\",\"astc-4x4-unorm-srgb\",\"astc-5x4-unorm\",\"astc-5x4-unorm-srgb\",\"astc-5x5-unorm\",\"astc-5x5-unorm-srgb\",\"astc-6x5-unorm\",\"astc-6x5-unorm-srgb\",\"astc-6x6-unorm\",\"astc-6x6-unorm-srgb\",\"astc-8x5-unorm\",\"astc-8x5-unorm-srgb\",\"astc-8x6-unorm\",\"astc-8x6-unorm-srgb\",\"astc-8x8-unorm\",\"astc-8x8-unorm-srgb\",\"astc-10x5-unorm\",\"astc-10x5-unorm-srgb\",\"astc-10x6-unorm\",\"astc-10x6-unorm-srgb\",\"astc-10x8-unorm\",\"astc-10x8-unorm-srgb\",\"astc-10x10-unorm\",\"astc-10x10-unorm-srgb\",\"astc-12x10-unorm\",\"astc-12x10-unorm-srgb\",\"astc-12x12-unorm\",\"astc-12x12-unorm-srgb\"],TextureSampleType:[,,\"float\",\"unfilterable-float\",\"depth\",\"sint\",\"uint\"],TextureViewDimension:[,\"1d\",\"2d\",\"2d-array\",\"cube\",\"cube-array\",\"3d\"],ToneMappingMode:[,\"standard\",\"extended\"],VertexFormat:[,\"uint8\",\"uint8x2\",\"uint8x4\",\"sint8\",\"sint8x2\",\"sint8x4\",\"unorm8\",\"unorm8x2\",\"unorm8x4\",\"snorm8\",\"snorm8x2\",\"snorm8x4\",\"uint16\",\"uint16x2\",\"uint16x4\",\"sint16\",\"sint16x2\",\"sint16x4\",\"unorm16\",\"unorm16x2\",\"unorm16x4\",\"snorm16\",\"snorm16x2\",\"snorm16x4\",\"float16\",\"float16x2\",\"float16x4\",\"float32\",\"float32x2\",\"float32x3\",\"float32x4\",\"uint32\",\"uint32x2\",\"uint32x3\",\"uint32x4\",\"sint32\",\"sint32x2\",\"sint32x3\",\"sint32x4\",\"unorm10-10-10-2\",\"unorm8x4-bgra\"],VertexStepMode:[,\"vertex\",\"instance\"],WGSLLanguageFeatureName:[,\"readonly_and_readwrite_storage_textures\",\"packed_4x8_integer_dot_product\",\"unrestricted_pointer_parameters\",\"pointer_composite_access\",\"uniform_buffer_standard_layout\",\"subgroup_id\",\"texture_and_sampler_let\",\"subgroup_uniformity\",\"texture_formats_tier1\"]};var emwgpuStringToInt_DeviceLostReason={undefined:1,unknown:1,destroyed:2};var runtimeKeepalivePop=()=>{runtimeKeepaliveCounter-=1};function _emwgpuAdapterRequestDevice(adapterPtr,futureId,deviceLostFutureId,devicePtr,queuePtr,descriptor){adapterPtr=bigintToI53Checked(adapterPtr);futureId=bigintToI53Checked(futureId);deviceLostFutureId=bigintToI53Checked(deviceLostFutureId);devicePtr=bigintToI53Checked(devicePtr);queuePtr=bigintToI53Checked(queuePtr);descriptor=bigintToI53Checked(descriptor);var adapter=WebGPU.getJsObject(adapterPtr);var desc={};if(descriptor){var requiredFeatureCount=Number((growMemViews(),HEAPU64)[(descriptor+24)/8]);if(requiredFeatureCount){var requiredFeaturesPtr=Number((growMemViews(),HEAPU64)[(descriptor+32)/8]);desc[\"requiredFeatures\"]=Array.from((growMemViews(),HEAPU32).subarray(requiredFeaturesPtr/4,(requiredFeaturesPtr+requiredFeatureCount*4)/4),feature=>WebGPU.FeatureName[feature])}var limitsPtr=Number((growMemViews(),HEAPU64)[(descriptor+40)/8]);if(limitsPtr){var nextInChainPtr=Number((growMemViews(),HEAPU64)[limitsPtr/8]);var requiredLimits={};function setLimitU32IfDefined(name,basePtr,limitOffset,ignoreIfZero=false){var ptr=basePtr+limitOffset;var value=(growMemViews(),HEAPU32)[ptr/4];if(value!=4294967295&&(!ignoreIfZero||value!=0)){requiredLimits[name]=value}}function setLimitU64IfDefined(name,basePtr,limitOffset){var ptr=basePtr+limitOffset;var limitPart1=(growMemViews(),HEAPU32)[ptr/4];var limitPart2=(growMemViews(),HEAPU32)[(ptr+4)/4];if(limitPart1!=4294967295||limitPart2!=4294967295){requiredLimits[name]=readI53FromI64(ptr)}}setLimitU32IfDefined(\"maxTextureDimension1D\",limitsPtr,8);setLimitU32IfDefined(\"maxTextureDimension2D\",limitsPtr,12);setLimitU32IfDefined(\"maxTextureDimension3D\",limitsPtr,16);setLimitU32IfDefined(\"maxTextureArrayLayers\",limitsPtr,20);setLimitU32IfDefined(\"maxBindGroups\",limitsPtr,24);setLimitU32IfDefined(\"maxBindGroupsPlusVertexBuffers\",limitsPtr,28);setLimitU32IfDefined(\"maxBindingsPerBindGroup\",limitsPtr,32);setLimitU32IfDefined(\"maxDynamicUniformBuffersPerPipelineLayout\",limitsPtr,36);setLimitU32IfDefined(\"maxDynamicStorageBuffersPerPipelineLayout\",limitsPtr,40);setLimitU32IfDefined(\"maxSampledTexturesPerShaderStage\",limitsPtr,44);setLimitU32IfDefined(\"maxSamplersPerShaderStage\",limitsPtr,48);setLimitU32IfDefined(\"maxStorageBuffersPerShaderStage\",limitsPtr,52);setLimitU32IfDefined(\"maxStorageTexturesPerShaderStage\",limitsPtr,56);setLimitU32IfDefined(\"maxUniformBuffersPerShaderStage\",limitsPtr,60);setLimitU32IfDefined(\"minUniformBufferOffsetAlignment\",limitsPtr,80);setLimitU32IfDefined(\"minStorageBufferOffsetAlignment\",limitsPtr,84);setLimitU64IfDefined(\"maxUniformBufferBindingSize\",limitsPtr,64);setLimitU64IfDefined(\"maxStorageBufferBindingSize\",limitsPtr,72);setLimitU32IfDefined(\"maxVertexBuffers\",limitsPtr,88);setLimitU64IfDefined(\"maxBufferSize\",limitsPtr,96);setLimitU32IfDefined(\"maxVertexAttributes\",limitsPtr,104);setLimitU32IfDefined(\"maxVertexBufferArrayStride\",limitsPtr,108);setLimitU32IfDefined(\"maxInterStageShaderVariables\",limitsPtr,112);setLimitU32IfDefined(\"maxColorAttachments\",limitsPtr,116);setLimitU32IfDefined(\"maxColorAttachmentBytesPerSample\",limitsPtr,120);setLimitU32IfDefined(\"maxComputeWorkgroupStorageSize\",limitsPtr,124);setLimitU32IfDefined(\"maxComputeInvocationsPerWorkgroup\",limitsPtr,128);setLimitU32IfDefined(\"maxComputeWorkgroupSizeX\",limitsPtr,132);setLimitU32IfDefined(\"maxComputeWorkgroupSizeY\",limitsPtr,136);setLimitU32IfDefined(\"maxComputeWorkgroupSizeZ\",limitsPtr,140);setLimitU32IfDefined(\"maxComputeWorkgroupsPerDimension\",limitsPtr,144);setLimitU32IfDefined(\"maxImmediateSize\",limitsPtr,148,true);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var compatibilityModeLimitsPtr=nextInChainPtr;if(\"maxStorageBuffersInVertexStage\"in GPUSupportedLimits.prototype){setLimitU32IfDefined(\"maxStorageBuffersInVertexStage\",compatibilityModeLimitsPtr,16);setLimitU32IfDefined(\"maxStorageTexturesInVertexStage\",compatibilityModeLimitsPtr,20);setLimitU32IfDefined(\"maxStorageBuffersInFragmentStage\",compatibilityModeLimitsPtr,24);setLimitU32IfDefined(\"maxStorageTexturesInFragmentStage\",compatibilityModeLimitsPtr,28)}}desc[\"requiredLimits\"]=requiredLimits}var defaultQueuePtr=Number((growMemViews(),HEAPU64)[(descriptor+48)/8]);if(defaultQueuePtr){var defaultQueueDesc={label:WebGPU.makeStringFromOptionalStringView(defaultQueuePtr+8)};desc[\"defaultQueue\"]=defaultQueueDesc}desc[\"label\"]=WebGPU.makeStringFromOptionalStringView(descriptor+8)}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,adapter.requestDevice(desc).then(device=>{runtimeKeepalivePop();callUserCallback(()=>{WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);devicePtr=BigInt(devicePtr);WebGPU.Internals.futureInsert(deviceLostFutureId,device.lost.then(info=>{callUserCallback(()=>{device.onuncapturederror=ev=>{};var sp=stackSave();var messagePtr=stringToUTF8OnStack(info.message);_emwgpuOnDeviceLostCompleted(deviceLostFutureId,emwgpuStringToInt_DeviceLostReason[info.reason],BigInt(messagePtr));stackRestore(sp)})}));device.onuncapturederror=ev=>{var type=5;if(ev.error instanceof GPUValidationError)type=2;else if(ev.error instanceof GPUOutOfMemoryError)type=3;else if(ev.error instanceof GPUInternalError)type=4;var sp=stackSave();var messagePtr=stringToUTF8OnStack(ev.error.message);_emwgpuOnUncapturedError(BigInt(devicePtr),type,BigInt(messagePtr));stackRestore(sp)};_emwgpuOnRequestDeviceCompleted(futureId,1,BigInt(devicePtr),0n)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestDeviceCompleted(futureId,3,BigInt(devicePtr),BigInt(messagePtr));if(deviceLostFutureId){_emwgpuOnDeviceLostCompleted(deviceLostFutureId,4,BigInt(messagePtr))}stackRestore(sp)})}))}function _emwgpuBufferDestroy(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(onUnmap){for(var i=0;i{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text=\"warning: \"+text;err(text)}};var _emwgpuBufferGetConstMappedRange=function(bufferPtr,offset,size){bufferPtr=bigintToI53Checked(bufferPtr);offset=bigintToI53Checked(offset);size=bigintToI53Checked(size);var ret=(()=>{var buffer=WebGPU.getJsObject(bufferPtr);if(size==-1)size=undefined;var mapped;try{mapped=buffer.getMappedRange(offset,size)}catch(ex){return 0n}var data=_memalign(16,mapped.byteLength);(growMemViews(),HEAPU8).set(new Uint8Array(mapped),data);WebGPU.Internals.bufferOnUnmaps[bufferPtr].push(()=>_free(data));return data})();return BigInt(ret)};var _emwgpuBufferMapAsync=function(bufferPtr,futureId,mode,offset,size){bufferPtr=bigintToI53Checked(bufferPtr);futureId=bigintToI53Checked(futureId);mode=bigintToI53Checked(mode);offset=bigintToI53Checked(offset);size=bigintToI53Checked(size);var buffer=WebGPU.getJsObject(bufferPtr);WebGPU.Internals.bufferOnUnmaps[bufferPtr]=[];if(size==-1)size=undefined;runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,buffer.mapAsync(mode,offset,size).then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnMapAsyncCompleted(futureId,1,0n)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);var status=ex.name===\"AbortError\"?4:ex.name===\"OperationError\"?3:0;_emwgpuOnMapAsyncCompleted(futureId,status,BigInt(messagePtr));delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]})}))};function _emwgpuBufferUnmap(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(!onUnmap){return}for(var i=0;i{const device=WebGPU.getJsObject(devicePtr);device.onuncapturederror=null;device.destroy()};function _emwgpuInstanceRequestAdapter(instancePtr,futureId,options,adapterPtr){instancePtr=bigintToI53Checked(instancePtr);futureId=bigintToI53Checked(futureId);options=bigintToI53Checked(options);adapterPtr=bigintToI53Checked(adapterPtr);var opts;if(options){opts={featureLevel:WebGPU.FeatureLevel[(growMemViews(),HEAP32)[(options+8)/4]],powerPreference:WebGPU.PowerPreference[(growMemViews(),HEAP32)[(options+12)/4]],forceFallbackAdapter:!!(growMemViews(),HEAPU32)[(options+16)/4]};var nextInChainPtr=Number((growMemViews(),HEAPU64)[options/8]);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[(nextInChainPtr+8)/4];var webxrOptions=nextInChainPtr;opts.xrCompatible=!!(growMemViews(),HEAPU32)[(webxrOptions+16)/4]}}if(!(\"gpu\"in navigator)){var sp=stackSave();var messagePtr=stringToUTF8OnStack(\"WebGPU not available on this browser (navigator.gpu is not available)\");_emwgpuOnRequestAdapterCompleted(futureId,3,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp);return}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,navigator.gpu.requestAdapter(opts).then(adapter=>{runtimeKeepalivePop();callUserCallback(()=>{if(adapter){WebGPU.Internals.jsObjectInsert(adapterPtr,adapter);_emwgpuOnRequestAdapterCompleted(futureId,1,BigInt(adapterPtr),0n)}else{var sp=stackSave();var messagePtr=stringToUTF8OnStack(\"WebGPU not available on this browser (requestAdapter returned null)\");_emwgpuOnRequestAdapterCompleted(futureId,3,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp)}})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestAdapterCompleted(futureId,4,BigInt(adapterPtr),BigInt(messagePtr));stackRestore(sp)})}))}var _emwgpuQueueOnSubmittedWorkDone=function(queuePtr,futureId){queuePtr=bigintToI53Checked(queuePtr);futureId=bigintToI53Checked(futureId);var queue=WebGPU.getJsObject(queuePtr);runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,queue.onSubmittedWorkDone().then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnWorkDoneCompleted(futureId,1)})}))};var _emwgpuWaitAny=function(futurePtr,futureCount,timeoutMSPtr){futurePtr=bigintToI53Checked(futurePtr);futureCount=bigintToI53Checked(futureCount);timeoutMSPtr=bigintToI53Checked(timeoutMSPtr);return Asyncify.handleAsync(async()=>{var promises=[];if(timeoutMSPtr){var timeoutMS=(growMemViews(),HEAP32)[timeoutMSPtr/4];promises.length=futureCount+1;promises[futureCount]=new Promise(resolve=>setTimeout(resolve,timeoutMS,0))}else{promises.length=futureCount}for(var i=0;ithisProgram||\"./this.program\";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator==\"object\"&&navigator.language||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(15,0,1,__environ,environ_buf);__environ=bigintToI53Checked(__environ);environ_buf=bigintToI53Checked(environ_buf);var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;(growMemViews(),HEAPU64)[(__environ+envp)/8]=BigInt(ptr);bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=8}return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(16,0,1,penviron_count,penviron_buf_size);penviron_count=bigintToI53Checked(penviron_count);penviron_buf_size=bigintToI53Checked(penviron_buf_size);var strings=getEnvStrings();(growMemViews(),HEAPU64)[penviron_count/8]=BigInt(strings.length);var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}(growMemViews(),HEAPU64)[penviron_buf_size/8]=BigInt(bufSize);return 0}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(17,0,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i{var ret=0;for(var i=0;i=0){(growMemViews(),HEAP32)[(featuresPtr+offset)/4]=featureEnumValue;offset+=4;numFeatures++}}(growMemViews(),HEAPU64)[(supportedFeatures+8)/8]=BigInt(featuresPtr);(growMemViews(),HEAPU64)[supportedFeatures/8]=BigInt(numFeatures)}function _wgpuAdapterGetInfo(adapterPtr,info){adapterPtr=bigintToI53Checked(adapterPtr);info=bigintToI53Checked(info);var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillAdapterInfoStruct(adapter.info,info);return 1}function _wgpuAdapterGetLimits(adapterPtr,limitsOutPtr){adapterPtr=bigintToI53Checked(adapterPtr);limitsOutPtr=bigintToI53Checked(limitsOutPtr);var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillLimitStruct(adapter.limits,limitsOutPtr);return 1}function _wgpuAdapterHasFeature(adapterPtr,featureEnumValue){adapterPtr=bigintToI53Checked(adapterPtr);var adapter=WebGPU.getJsObject(adapterPtr);return adapter.features.has(WebGPU.FeatureName[featureEnumValue])}var _wgpuBufferGetSize=function(bufferPtr){bufferPtr=bigintToI53Checked(bufferPtr);var ret=(()=>{var buffer=WebGPU.getJsObject(bufferPtr);return buffer.size})();return BigInt(ret)};var _wgpuCommandEncoderBeginComputePass=function(encoderPtr,descriptor){encoderPtr=bigintToI53Checked(encoderPtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8),timestampWrites:WebGPU.makePassTimestampWrites(Number((growMemViews(),HEAPU64)[(descriptor+24)/8]))}}var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateComputePassEncoder(0n);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.beginComputePass(desc));return ptr})();return BigInt(ret)};function _wgpuCommandEncoderCopyBufferToBuffer(encoderPtr,srcPtr,srcOffset,dstPtr,dstOffset,size){encoderPtr=bigintToI53Checked(encoderPtr);srcPtr=bigintToI53Checked(srcPtr);srcOffset=bigintToI53Checked(srcOffset);dstPtr=bigintToI53Checked(dstPtr);dstOffset=bigintToI53Checked(dstOffset);size=bigintToI53Checked(size);var commandEncoder=WebGPU.getJsObject(encoderPtr);var src=WebGPU.getJsObject(srcPtr);var dst=WebGPU.getJsObject(dstPtr);commandEncoder.copyBufferToBuffer(src,srcOffset,dst,dstOffset,size)}var _wgpuCommandEncoderFinish=function(encoderPtr,descriptor){encoderPtr=bigintToI53Checked(encoderPtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateCommandBuffer(0n);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.finish());return ptr})();return BigInt(ret)};function _wgpuComputePassEncoderDispatchWorkgroups(passPtr,x,y,z){passPtr=bigintToI53Checked(passPtr);var pass=WebGPU.getJsObject(passPtr);pass.dispatchWorkgroups(x,y,z)}function _wgpuComputePassEncoderEnd(passPtr){passPtr=bigintToI53Checked(passPtr);var pass=WebGPU.getJsObject(passPtr);pass.end()}function _wgpuComputePassEncoderSetBindGroup(passPtr,groupIndex,groupPtr,dynamicOffsetCount,dynamicOffsetsPtr){passPtr=bigintToI53Checked(passPtr);groupPtr=bigintToI53Checked(groupPtr);dynamicOffsetCount=bigintToI53Checked(dynamicOffsetCount);dynamicOffsetsPtr=bigintToI53Checked(dynamicOffsetsPtr);var pass=WebGPU.getJsObject(passPtr);var group=WebGPU.getJsObject(groupPtr);if(dynamicOffsetCount==0){pass.setBindGroup(groupIndex,group)}else{pass.setBindGroup(groupIndex,group,(growMemViews(),HEAPU32),dynamicOffsetsPtr/4,dynamicOffsetCount)}}function _wgpuComputePassEncoderSetPipeline(passPtr,pipelinePtr){passPtr=bigintToI53Checked(passPtr);pipelinePtr=bigintToI53Checked(pipelinePtr);var pass=WebGPU.getJsObject(passPtr);var pipeline=WebGPU.getJsObject(pipelinePtr);pass.setPipeline(pipeline)}var _wgpuComputePipelineGetBindGroupLayout=function(pipelinePtr,groupIndex){pipelinePtr=bigintToI53Checked(pipelinePtr);var ret=(()=>{var pipeline=WebGPU.getJsObject(pipelinePtr);var ptr=_emwgpuCreateBindGroupLayout(0n);WebGPU.Internals.jsObjectInsert(ptr,pipeline.getBindGroupLayout(groupIndex));return ptr})();return BigInt(ret)};var _wgpuDeviceCreateBindGroup=function(devicePtr,descriptor){devicePtr=bigintToI53Checked(devicePtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{function makeEntry(entryPtr){var bufferPtr=Number((growMemViews(),HEAPU64)[(entryPtr+16)/8]);var samplerPtr=Number((growMemViews(),HEAPU64)[(entryPtr+40)/8]);var textureViewPtr=Number((growMemViews(),HEAPU64)[(entryPtr+48)/8]);var externalTexturePtr=0;WebGPU.iterateExtensions(entryPtr,{327681:ptr=>{externalTexturePtr=Number((growMemViews(),HEAPU64)[(ptr+16)/8])}});var resource;if(bufferPtr){var size=readI53FromI64(entryPtr+32);if(size==-1)size=undefined;resource={buffer:WebGPU.getJsObject(bufferPtr),offset:readI53FromI64(entryPtr+24),size}}else{resource=WebGPU.getJsObject(samplerPtr||textureViewPtr||externalTexturePtr)}return{binding:(growMemViews(),HEAPU32)[(entryPtr+8)/4],resource}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i{var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+8)}}var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateCommandEncoder(0n);WebGPU.Internals.jsObjectInsert(ptr,device.createCommandEncoder(desc));return ptr})();return BigInt(ret)};var _wgpuDeviceCreateComputePipeline=function(devicePtr,descriptor){devicePtr=bigintToI53Checked(devicePtr);descriptor=bigintToI53Checked(descriptor);var ret=(()=>{var desc=WebGPU.makeComputePipelineDesc(descriptor);var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateComputePipeline(0n);WebGPU.Internals.jsObjectInsert(ptr,device.createComputePipeline(desc));return ptr})();return BigInt(ret)};var _wgpuQueueSubmit=function(queuePtr,commandCount,commands){queuePtr=bigintToI53Checked(queuePtr);commandCount=bigintToI53Checked(commandCount);commands=bigintToI53Checked(commands);var queue=WebGPU.getJsObject(queuePtr);var cmds=Array.from((growMemViews(),HEAP64).subarray(commands/8,(commands+commandCount*8)/8),id=>WebGPU.getJsObject(id));queue.submit(cmds)};function _wgpuQueueWriteBuffer(queuePtr,bufferPtr,bufferOffset,data,size){queuePtr=bigintToI53Checked(queuePtr);bufferPtr=bigintToI53Checked(bufferPtr);bufferOffset=bigintToI53Checked(bufferOffset);data=bigintToI53Checked(data);size=bigintToI53Checked(size);var queue=WebGPU.getJsObject(queuePtr);var buffer=WebGPU.getJsObject(bufferPtr);var subarray=(growMemViews(),HEAPU8).subarray(data,data+size);queue.writeBuffer(buffer,bufferOffset,subarray,0,size)}var Asyncify={instrumentWasmImports(imports){var importPattern=/^(invoke_.*|__asyncjs__.*)$/;for(let[x,original]of Object.entries(imports)){if(typeof original==\"function\"){let isAsyncifyImport=original.isAsync||importPattern.test(x);if(isAsyncifyImport){imports[x]=original=new WebAssembly.Suspending(original)}}}},instrumentFunction(original){var wrapper=(...args)=>original(...args);return wrapper},instrumentWasmExports(exports){var exportPattern=/^(wllama_start|wllama_action|main|__main_argc_argv)$/;Asyncify.asyncExports=new Set;var ret={};for(let[x,original]of Object.entries(exports)){if(typeof original==\"function\"){let isAsyncifyExport=exportPattern.test(x);if(isAsyncifyExport){Asyncify.asyncExports.add(original);original=Asyncify.makeAsyncFunction(original)}var wrapper=Asyncify.instrumentFunction(original);ret[x]=wrapper}else{ret[x]=original}}return ret},asyncExports:null,isAsyncExport(func){return Asyncify.asyncExports?.has(func)},handleAsync:async startAsync=>{runtimeKeepalivePush();try{return await startAsync()}finally{runtimeKeepalivePop()}},handleSleep:startAsync=>Asyncify.handleAsync(()=>new Promise(startAsync)),makeAsyncFunction(original){return WebAssembly.promising(original)}};var getCFunc=ident=>{var func=Module[\"_\"+ident];return func};var writeArrayToMemory=(array,buffer)=>{(growMemViews(),HEAP8).set(array,buffer)};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={pointer:p=>BigInt(p),string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return BigInt(ret)},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return BigInt(ret)}};function convertReturnValue(ret){if(returnType===\"string\"){return UTF8ToString(Number(ret))}if(returnType===\"pointer\")return Number(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type===\"number\"||type===\"boolean\");var numericRet=returnType!==\"string\";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var FS_createPath=(...args)=>FS.createPath(...args);var FS_unlink=(...args)=>FS.unlink(...args);var FS_createLazyFile=(...args)=>FS.createLazyFile(...args);var FS_createDevice=(...args)=>FS.createDevice(...args);PThread.init();FS.createPreloadedFile=FS_createPreloadedFile;FS.preloadFile=FS_preloadFile;FS.staticInit();{initMemory();if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(Module[\"preloadPlugins\"])preloadPlugins=Module[\"preloadPlugins\"];if(Module[\"print\"])out=Module[\"print\"];if(Module[\"printErr\"])err=Module[\"printErr\"];if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].shift()()}}}Module[\"ENV\"]=ENV;Module[\"mmapAlloc\"]=mmapAlloc;Module[\"wasmMemory\"]=wasmMemory;Module[\"addRunDependency\"]=addRunDependency;Module[\"removeRunDependency\"]=removeRunDependency;Module[\"ccall\"]=ccall;Module[\"cwrap\"]=cwrap;Module[\"FS_preloadFile\"]=FS_preloadFile;Module[\"FS_unlink\"]=FS_unlink;Module[\"FS_createPath\"]=FS_createPath;Module[\"FS_createDevice\"]=FS_createDevice;Module[\"FS\"]=FS;Module[\"FS_createDataFile\"]=FS_createDataFile;Module[\"FS_createLazyFile\"]=FS_createLazyFile;Module[\"MEMFS\"]=MEMFS;var proxiedFunctionTable=[_proc_exit,exitOnMainThread,pthreadCreateProxied,___syscall_fcntl64,___syscall_fstat64,___syscall_getcwd,___syscall_getdents64,___syscall_ioctl,___syscall_lstat64,___syscall_newfstatat,___syscall_openat,___syscall_stat64,__mmap_js,__munmap_js,__setitimer_js,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function __asyncjs__js_file_read(path_ptr,offset,req_size,out_ptr){return Asyncify.handleAsync(async()=>await _wllama_js_file_read(UTF8ToString(Number(path_ptr)),Number(offset),Number(req_size),Number(out_ptr)))}__asyncjs__js_file_read.sig=\"jjjjj\";var _malloc,_free,_wllama_malloc,_wllama_start,_wllama_action,_wllama_exit,_wllama_debug,_main,_emwgpuCreateBindGroup,_emwgpuCreateBindGroupLayout,_emwgpuCreateCommandBuffer,_emwgpuCreateCommandEncoder,_emwgpuCreateComputePassEncoder,_emwgpuCreateComputePipeline,_emwgpuCreateExternalTexture,_emwgpuCreatePipelineLayout,_emwgpuCreateQuerySet,_emwgpuCreateRenderBundle,_emwgpuCreateRenderBundleEncoder,_emwgpuCreateRenderPassEncoder,_emwgpuCreateRenderPipeline,_emwgpuCreateSampler,_emwgpuCreateSurface,_emwgpuCreateTexture,_emwgpuCreateTextureView,_emwgpuCreateAdapter,_emwgpuCreateBuffer,_emwgpuCreateDevice,_emwgpuCreateQueue,_emwgpuCreateShaderModule,_emwgpuOnDeviceLostCompleted,_emwgpuOnMapAsyncCompleted,_emwgpuOnRequestAdapterCompleted,_emwgpuOnRequestDeviceCompleted,_emwgpuOnWorkDoneCompleted,_emwgpuOnUncapturedError,__emscripten_tls_init,_pthread_self,_emscripten_builtin_memalign,__emscripten_thread_init,__emscripten_thread_crashed,__emscripten_run_js_on_main_thread,__emscripten_thread_free_data,__emscripten_thread_exit,__emscripten_timeout,__emscripten_check_mailbox,_memalign,___trap,_emscripten_stack_set_limits,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,__indirect_function_table,wasmTable;function assignWasmExports(wasmExports){_malloc=wasmExports[\"malloc\"];_free=wasmExports[\"free\"];_wllama_malloc=Module[\"_wllama_malloc\"]=wasmExports[\"wllama_malloc\"];_wllama_start=Module[\"_wllama_start\"]=wasmExports[\"wllama_start\"];_wllama_action=Module[\"_wllama_action\"]=wasmExports[\"wllama_action\"];_wllama_exit=Module[\"_wllama_exit\"]=wasmExports[\"wllama_exit\"];_wllama_debug=Module[\"_wllama_debug\"]=wasmExports[\"wllama_debug\"];_main=Module[\"_main\"]=wasmExports[\"main\"];_emwgpuCreateBindGroup=wasmExports[\"emwgpuCreateBindGroup\"];_emwgpuCreateBindGroupLayout=wasmExports[\"emwgpuCreateBindGroupLayout\"];_emwgpuCreateCommandBuffer=wasmExports[\"emwgpuCreateCommandBuffer\"];_emwgpuCreateCommandEncoder=wasmExports[\"emwgpuCreateCommandEncoder\"];_emwgpuCreateComputePassEncoder=wasmExports[\"emwgpuCreateComputePassEncoder\"];_emwgpuCreateComputePipeline=wasmExports[\"emwgpuCreateComputePipeline\"];_emwgpuCreateExternalTexture=wasmExports[\"emwgpuCreateExternalTexture\"];_emwgpuCreatePipelineLayout=wasmExports[\"emwgpuCreatePipelineLayout\"];_emwgpuCreateQuerySet=wasmExports[\"emwgpuCreateQuerySet\"];_emwgpuCreateRenderBundle=wasmExports[\"emwgpuCreateRenderBundle\"];_emwgpuCreateRenderBundleEncoder=wasmExports[\"emwgpuCreateRenderBundleEncoder\"];_emwgpuCreateRenderPassEncoder=wasmExports[\"emwgpuCreateRenderPassEncoder\"];_emwgpuCreateRenderPipeline=wasmExports[\"emwgpuCreateRenderPipeline\"];_emwgpuCreateSampler=wasmExports[\"emwgpuCreateSampler\"];_emwgpuCreateSurface=wasmExports[\"emwgpuCreateSurface\"];_emwgpuCreateTexture=wasmExports[\"emwgpuCreateTexture\"];_emwgpuCreateTextureView=wasmExports[\"emwgpuCreateTextureView\"];_emwgpuCreateAdapter=wasmExports[\"emwgpuCreateAdapter\"];_emwgpuCreateBuffer=wasmExports[\"emwgpuCreateBuffer\"];_emwgpuCreateDevice=wasmExports[\"emwgpuCreateDevice\"];_emwgpuCreateQueue=wasmExports[\"emwgpuCreateQueue\"];_emwgpuCreateShaderModule=wasmExports[\"emwgpuCreateShaderModule\"];_emwgpuOnDeviceLostCompleted=wasmExports[\"emwgpuOnDeviceLostCompleted\"];_emwgpuOnMapAsyncCompleted=wasmExports[\"emwgpuOnMapAsyncCompleted\"];_emwgpuOnRequestAdapterCompleted=wasmExports[\"emwgpuOnRequestAdapterCompleted\"];_emwgpuOnRequestDeviceCompleted=wasmExports[\"emwgpuOnRequestDeviceCompleted\"];_emwgpuOnWorkDoneCompleted=wasmExports[\"emwgpuOnWorkDoneCompleted\"];_emwgpuOnUncapturedError=wasmExports[\"emwgpuOnUncapturedError\"];__emscripten_tls_init=wasmExports[\"_emscripten_tls_init\"];_pthread_self=wasmExports[\"pthread_self\"];_emscripten_builtin_memalign=wasmExports[\"emscripten_builtin_memalign\"];__emscripten_thread_init=wasmExports[\"_emscripten_thread_init\"];__emscripten_thread_crashed=wasmExports[\"_emscripten_thread_crashed\"];__emscripten_run_js_on_main_thread=wasmExports[\"_emscripten_run_js_on_main_thread\"];__emscripten_thread_free_data=wasmExports[\"_emscripten_thread_free_data\"];__emscripten_thread_exit=wasmExports[\"_emscripten_thread_exit\"];__emscripten_timeout=wasmExports[\"_emscripten_timeout\"];__emscripten_check_mailbox=wasmExports[\"_emscripten_check_mailbox\"];_memalign=wasmExports[\"memalign\"];___trap=wasmExports[\"__trap\"];_emscripten_stack_set_limits=wasmExports[\"emscripten_stack_set_limits\"];__emscripten_stack_restore=wasmExports[\"_emscripten_stack_restore\"];__emscripten_stack_alloc=wasmExports[\"_emscripten_stack_alloc\"];_emscripten_stack_get_current=wasmExports[\"emscripten_stack_get_current\"];__indirect_function_table=wasmTable=wasmExports[\"__indirect_function_table\"]}var wasmImports;function assignWasmImports(){wasmImports={__asyncjs__js_file_read,__pthread_create_js:___pthread_create_js,__syscall_fcntl64:___syscall_fcntl64,__syscall_getcwd:___syscall_getcwd,__syscall_getdents64:___syscall_getdents64,__syscall_ioctl:___syscall_ioctl,__syscall_openat:___syscall_openat,__syscall_stat64:___syscall_stat64,_abort_js:__abort_js,_emscripten_init_main_thread_js:__emscripten_init_main_thread_js,_emscripten_notify_mailbox_postmessage:__emscripten_notify_mailbox_postmessage,_emscripten_receive_on_main_thread_js:__emscripten_receive_on_main_thread_js,_emscripten_runtime_keepalive_clear:__emscripten_runtime_keepalive_clear,_emscripten_thread_cleanup:__emscripten_thread_cleanup,_emscripten_thread_mailbox_await:__emscripten_thread_mailbox_await,_emscripten_thread_set_strongref:__emscripten_thread_set_strongref,_localtime_js:__localtime_js,_mmap_js:__mmap_js,_munmap_js:__munmap_js,_setitimer_js:__setitimer_js,_tzset_js:__tzset_js,clock_time_get:_clock_time_get,emscripten_check_blocking_allowed:_emscripten_check_blocking_allowed,emscripten_date_now:_emscripten_date_now,emscripten_exit_with_live_runtime:_emscripten_exit_with_live_runtime,emscripten_get_heap_max:_emscripten_get_heap_max,emscripten_get_now:_emscripten_get_now,emscripten_has_asyncify:_emscripten_has_asyncify,emscripten_num_logical_cores:_emscripten_num_logical_cores,emscripten_resize_heap:_emscripten_resize_heap,emwgpuAdapterRequestDevice:_emwgpuAdapterRequestDevice,emwgpuBufferDestroy:_emwgpuBufferDestroy,emwgpuBufferGetConstMappedRange:_emwgpuBufferGetConstMappedRange,emwgpuBufferMapAsync:_emwgpuBufferMapAsync,emwgpuBufferUnmap:_emwgpuBufferUnmap,emwgpuDelete:_emwgpuDelete,emwgpuDeviceCreateBuffer:_emwgpuDeviceCreateBuffer,emwgpuDeviceCreateShaderModule:_emwgpuDeviceCreateShaderModule,emwgpuDeviceDestroy:_emwgpuDeviceDestroy,emwgpuInstanceRequestAdapter:_emwgpuInstanceRequestAdapter,emwgpuQueueOnSubmittedWorkDone:_emwgpuQueueOnSubmittedWorkDone,emwgpuWaitAny:_emwgpuWaitAny,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,exit:_exit,fd_close:_fd_close,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,memory:wasmMemory,proc_exit:_proc_exit,random_get:_random_get,wgpuAdapterGetFeatures:_wgpuAdapterGetFeatures,wgpuAdapterGetInfo:_wgpuAdapterGetInfo,wgpuAdapterGetLimits:_wgpuAdapterGetLimits,wgpuAdapterHasFeature:_wgpuAdapterHasFeature,wgpuBufferGetSize:_wgpuBufferGetSize,wgpuCommandEncoderBeginComputePass:_wgpuCommandEncoderBeginComputePass,wgpuCommandEncoderCopyBufferToBuffer:_wgpuCommandEncoderCopyBufferToBuffer,wgpuCommandEncoderFinish:_wgpuCommandEncoderFinish,wgpuComputePassEncoderDispatchWorkgroups:_wgpuComputePassEncoderDispatchWorkgroups,wgpuComputePassEncoderEnd:_wgpuComputePassEncoderEnd,wgpuComputePassEncoderSetBindGroup:_wgpuComputePassEncoderSetBindGroup,wgpuComputePassEncoderSetPipeline:_wgpuComputePassEncoderSetPipeline,wgpuComputePipelineGetBindGroupLayout:_wgpuComputePipelineGetBindGroupLayout,wgpuDeviceCreateBindGroup:_wgpuDeviceCreateBindGroup,wgpuDeviceCreateCommandEncoder:_wgpuDeviceCreateCommandEncoder,wgpuDeviceCreateComputePipeline:_wgpuDeviceCreateComputePipeline,wgpuQueueSubmit:_wgpuQueueSubmit,wgpuQueueWriteBuffer:_wgpuQueueWriteBuffer}}function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_pp=f=>a0=>Number(f(BigInt(a0)));var makeWrapper__p=f=>a0=>f(BigInt(a0));var makeWrapper___PP=f=>(a0,a1,a2)=>f(a0,BigInt(a1?a1:0),BigInt(a2?a2:0));var makeWrapper_p=f=>()=>Number(f());var makeWrapper_ppp=f=>(a0,a1)=>Number(f(BigInt(a0),BigInt(a1)));var makeWrapper__pp_ppp=f=>(a0,a1,a2,a3,a4,a5)=>f(BigInt(a0),BigInt(a1),a2,BigInt(a3),BigInt(a4),BigInt(a5));var makeWrapper__p_____=f=>(a0,a1,a2,a3,a4,a5)=>f(BigInt(a0),a1,a2,a3,a4,a5);var makeWrapper___p_p_=f=>(a0,a1,a2,a3,a4)=>f(a0,BigInt(a1),a2,BigInt(a3),a4);var makeWrapper__pp=f=>(a0,a1)=>f(BigInt(a0),BigInt(a1));wasmExports[\"malloc\"]=makeWrapper_pp(wasmExports[\"malloc\"]);wasmExports[\"free\"]=makeWrapper__p(wasmExports[\"free\"]);wasmExports[\"main\"]=makeWrapper___PP(wasmExports[\"main\"]);wasmExports[\"pthread_self\"]=makeWrapper_p(wasmExports[\"pthread_self\"]);wasmExports[\"emscripten_builtin_memalign\"]=makeWrapper_ppp(wasmExports[\"emscripten_builtin_memalign\"]);wasmExports[\"_emscripten_run_callback_on_thread\"]=makeWrapper__pp_ppp(wasmExports[\"_emscripten_run_callback_on_thread\"]);wasmExports[\"_emscripten_thread_init\"]=makeWrapper__p_____(wasmExports[\"_emscripten_thread_init\"]);wasmExports[\"_emscripten_run_js_on_main_thread\"]=makeWrapper___p_p_(wasmExports[\"_emscripten_run_js_on_main_thread\"]);wasmExports[\"_emscripten_thread_free_data\"]=makeWrapper__p(wasmExports[\"_emscripten_thread_free_data\"]);wasmExports[\"_emscripten_thread_exit\"]=makeWrapper__p(wasmExports[\"_emscripten_thread_exit\"]);wasmExports[\"memalign\"]=makeWrapper_ppp(wasmExports[\"memalign\"]);wasmExports[\"emscripten_stack_set_limits\"]=makeWrapper__pp(wasmExports[\"emscripten_stack_set_limits\"]);wasmExports[\"_emscripten_stack_restore\"]=makeWrapper__p(wasmExports[\"_emscripten_stack_restore\"]);wasmExports[\"_emscripten_stack_alloc\"]=makeWrapper_pp(wasmExports[\"_emscripten_stack_alloc\"]);wasmExports[\"emscripten_stack_get_current\"]=makeWrapper_p(wasmExports[\"emscripten_stack_get_current\"]);return wasmExports}async function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,BigInt(argv));ret=await ret;exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){dependenciesFulfilled=run;return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}async function doRun(){Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();Module[\"onRuntimeInitialized\"]?.();var noInitialRun=Module[\"noInitialRun\"]||false;if(!noInitialRun)await callMain();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(()=>{setTimeout(()=>Module[\"setStatus\"](\"\"),1);doRun()},1)}else{doRun()}}var wasmExports;if(!ENVIRONMENT_IS_PTHREAD){createWasm();run()}\n"; From 6433ebbaa843fc10b4cfbc7f1308721e2dc9401e Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sat, 23 May 2026 15:59:43 +0200 Subject: [PATCH 07/11] fix build vite --- examples/main/vite.config.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/examples/main/vite.config.ts b/examples/main/vite.config.ts index d8cf8526..7438658c 100644 --- a/examples/main/vite.config.ts +++ b/examples/main/vite.config.ts @@ -1,7 +1,11 @@ +/// import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; import { existsSync } from 'fs'; import { resolve } from 'path'; +import { fileURLToPath } from 'url'; + +const __dirname = fileURLToPath(new URL('.', import.meta.url)); const COMPAT_WASM = resolve( __dirname, From 165fde62217ac55803b497d595718e8649f74ef4 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sat, 23 May 2026 16:03:27 +0200 Subject: [PATCH 08/11] fix build (2) --- examples/main/package-lock.json | 25 ++++++++++++++++++++----- examples/main/package.json | 1 + package-lock.json | 16 ++-------------- package.json | 3 --- 4 files changed, 23 insertions(+), 22 deletions(-) diff --git a/examples/main/package-lock.json b/examples/main/package-lock.json index 4a1eb636..5b6671f6 100644 --- a/examples/main/package-lock.json +++ b/examples/main/package-lock.json @@ -19,6 +19,7 @@ "remark-gfm": "^4.0.0" }, "devDependencies": { + "@types/node": "^25.9.1", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "@typescript-eslint/eslint-plugin": "^7.15.0", @@ -38,12 +39,9 @@ }, "../..": { "name": "@wllama/wllama", - "version": "3.1.1", + "version": "3.2.0", "dev": true, "license": "MIT", - "dependencies": { - "@huggingface/jinja": "^0.5.8" - }, "devDependencies": { "@vitest/browser": "^2.1.6", "express": "^4.18.3", @@ -59,7 +57,7 @@ }, "../../compat": { "name": "@wllama/wllama-compat", - "version": "3.1.1", + "version": "3.2.0", "dev": true, "license": "MIT" }, @@ -1381,6 +1379,16 @@ "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", "license": "MIT" }, + "node_modules/@types/node": { + "version": "25.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.1.tgz", + "integrity": "sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": ">=7.24.0 <7.24.7" + } + }, "node_modules/@types/prop-types": { "version": "15.7.12", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", @@ -5389,6 +5397,13 @@ "node": ">=14.17" } }, + "node_modules/undici-types": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", + "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==", + "dev": true, + "license": "MIT" + }, "node_modules/unified": { "version": "11.0.5", "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", diff --git a/examples/main/package.json b/examples/main/package.json index 207b27be..f455614b 100644 --- a/examples/main/package.json +++ b/examples/main/package.json @@ -21,6 +21,7 @@ "remark-gfm": "^4.0.0" }, "devDependencies": { + "@types/node": "^25.9.1", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "@typescript-eslint/eslint-plugin": "^7.15.0", diff --git a/package-lock.json b/package-lock.json index 279809f4..c953d9c9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,16 +1,13 @@ { "name": "@wllama/wllama", - "version": "2.3.7", + "version": "3.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@wllama/wllama", - "version": "2.3.7", + "version": "3.2.0", "license": "MIT", - "dependencies": { - "@huggingface/jinja": "^0.5.8" - }, "devDependencies": { "@vitest/browser": "^2.1.6", "express": "^4.18.3", @@ -564,15 +561,6 @@ "@shikijs/vscode-textmate": "^9.3.0" } }, - "node_modules/@huggingface/jinja": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/@huggingface/jinja/-/jinja-0.5.8.tgz", - "integrity": "sha512-ZdElB7DPS7QQS8ZnFc5RPPtkg+eN11z8AmIZWAyes6pSbwXqiFB/POVevvm01begdSX1ho9Gxln/F6qlQMsuaA==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, "node_modules/@inquirer/confirm": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.0.2.tgz", diff --git a/package.json b/package.json index ddd7346a..4b6e3888 100644 --- a/package.json +++ b/package.json @@ -65,8 +65,5 @@ "semi": true, "singleQuote": true, "bracketSameLine": false - }, - "dependencies": { - "@huggingface/jinja": "^0.5.8" } } From 5460b97cd20ef9984ff8006ddcb08e5f1356ab89 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sat, 23 May 2026 16:05:05 +0200 Subject: [PATCH 09/11] nits --- src/wllama.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/wllama.ts b/src/wllama.ts index 21d568f5..4c15b0ab 100644 --- a/src/wllama.ts +++ b/src/wllama.ts @@ -151,7 +151,7 @@ export class Wllama { public cacheManager: CacheManager; public modelManager: ModelManager; - private compat: WllamaCompat | null = WasmCompatFromCDN; + private compat: WllamaCompat | null = null; private proxy: ProxyToWorker = null as any; private config: WllamaConfig; @@ -188,6 +188,7 @@ export class Wllama { parallelDownloads: wllamaConfig.parallelDownloads, allowOffline: wllamaConfig.allowOffline, }); + this.setCompat('default'); } private logger() { From 57fef54ffe1de167b3950e5c2dc2debb7aaa80b1 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sat, 23 May 2026 16:10:33 +0200 Subject: [PATCH 10/11] also allow publish compat package --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4b6e3888..c22b6ae6 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "build": "npm run clean && npm run build:worker && npm run build:tsup && npm run build:minified && npm run build:typedef", "postbuild": "./scripts/post_build.sh && npm run docs", "docs": "typedoc --tsconfig tsconfig.build.json src/index.ts", - "upload": "npm run format && npm run build && npm publish --access public", + "upload": "npm run format && npm run build && npm publish --access public && (cd compat && npm publish --access public)", "format": "prettier --write .", "test": "vitest", "test:firefox": "BROWSER=firefox vitest", From b0315207a7ba04956afbf55e03cf4ab3d1fb1f45 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sat, 23 May 2026 16:23:37 +0200 Subject: [PATCH 11/11] correct deployment --- compat/package.json | 2 +- package.json | 2 +- scripts/generate_wasm_from_cdn.js | 2 +- src/wasm-from-cdn.ts | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/compat/package.json b/compat/package.json index c56845a4..8db87662 100644 --- a/compat/package.json +++ b/compat/package.json @@ -1,6 +1,6 @@ { "name": "@wllama/wllama-compat", - "version": "3.2.0", + "version": "3.2.2", "description": "Optional package providing compatibility with older browsers for @wllama/wllama", "main": "index.js", "type": "module", diff --git a/package.json b/package.json index c22b6ae6..5855de90 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@wllama/wllama", - "version": "3.2.0", + "version": "3.2.2", "description": "WebAssembly binding for llama.cpp - Enabling on-browser LLM inference", "main": "index.js", "type": "module", diff --git a/scripts/generate_wasm_from_cdn.js b/scripts/generate_wasm_from_cdn.js index bb158510..96759a24 100644 --- a/scripts/generate_wasm_from_cdn.js +++ b/scripts/generate_wasm_from_cdn.js @@ -14,7 +14,7 @@ const WasmFromCDN = { }; export const WasmCompatFromCDN = { - worker: 'https://cdn.jsdelivr.net/npm/@wllama/wllama-compat@${version}/wasm/worker.js', + worker: 'https://cdn.jsdelivr.net/npm/@wllama/wllama-compat@${version}/wasm/wllama.js', wasm: 'https://cdn.jsdelivr.net/npm/@wllama/wllama-compat@${version}/wasm/wllama.wasm', }; diff --git a/src/wasm-from-cdn.ts b/src/wasm-from-cdn.ts index 11987cb9..b0f0842c 100644 --- a/src/wasm-from-cdn.ts +++ b/src/wasm-from-cdn.ts @@ -2,12 +2,12 @@ // Do not edit this file directly const WasmFromCDN = { - default: 'https://cdn.jsdelivr.net/npm/@wllama/wllama@3.2.0/src/wasm/wllama.wasm', + default: 'https://cdn.jsdelivr.net/npm/@wllama/wllama@3.2.2/src/wasm/wllama.wasm', }; export const WasmCompatFromCDN = { - worker: 'https://cdn.jsdelivr.net/npm/@wllama/wllama-compat@3.2.0/wasm/worker.js', - wasm: 'https://cdn.jsdelivr.net/npm/@wllama/wllama-compat@3.2.0/wasm/wllama.wasm', + worker: 'https://cdn.jsdelivr.net/npm/@wllama/wllama-compat@3.2.2/wasm/wllama.js', + wasm: 'https://cdn.jsdelivr.net/npm/@wllama/wllama-compat@3.2.2/wasm/wllama.wasm', }; export default WasmFromCDN; \ No newline at end of file

    DY{Hqe`H)e(-n-2iMITI4yMQGuBSY4n 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 z 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%0AMruJTeui7;|G?7<%64=%Qo<4^$PyHUw9UvW~L;{ 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�>(qF%mPIfjWo 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Ð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�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