From b847495b951b40bb0aa6bfd734fbf13df8d72019 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Thu, 27 Jun 2024 22:49:13 +0200 Subject: [PATCH] Sync with latest upstream source code + adapt to project structure change (#77) * sync with latest upstream source code * v1.12.1 --- CMakeLists.txt | 2 +- llama.cpp | 2 +- package.json | 2 +- src/multi-thread/wllama.js | 2 +- src/multi-thread/wllama.wasm | Bin 1587695 -> 1596502 bytes src/single-thread/wllama.js | 2 +- src/single-thread/wllama.wasm | Bin 1572745 -> 1581528 bytes 7 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f4f1cb1..0f780dc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,7 @@ set(THREADS_PREFER_PTHREAD_FLAG ON) set(COMMON_SRC actions.hpp json.hpp - llama.cpp/llama.h) + llama.cpp/include/llama.h) include_directories(${CMAKE_CURRENT_SOURCE_DIR}) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/llama.cpp/common) diff --git a/llama.cpp b/llama.cpp index d62e4aa..558f44b 160000 --- a/llama.cpp +++ b/llama.cpp @@ -1 +1 @@ -Subproject commit d62e4aaa02540c89be8b59426340b909d02bbc9e +Subproject commit 558f44bf83d78242d4e5c4ab98d0be9125cb9780 diff --git a/package.json b/package.json index 9c38594..6d59bdc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@wllama/wllama", - "version": "1.12.0", + "version": "1.12.1", "description": "Low-level WASM binding for llama.cpp", "main": "index.js", "type": "module", diff --git a/src/multi-thread/wllama.js b/src/multi-thread/wllama.js index d42a888..171d02e 100644 --- a/src/multi-thread/wllama.js +++ b/src/multi-thread/wllama.js @@ -5,7 +5,7 @@ var Module = (() => { return ( async function(moduleArg = {}) { -function GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU8}function GROWABLE_HEAP_I16(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP16}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU32}function GROWABLE_HEAP_F32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPF32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPF64}var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_NODE){const{createRequire:createRequire}=await import("module");var require=createRequire(import.meta.url);var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=require("url").fileURLToPath(new URL("./",import.meta.url))}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)onerror(err);else onload(binary?data.buffer:data)})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow};global.Worker=require("worker_threads").Worker}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}if(!ENVIRONMENT_IS_NODE){read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};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=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance=="undefined"){global.performance=require("perf_hooks").performance}}var defaultPrint=console.log.bind(console);var defaultPrintErr=console.error.bind(console);if(ENVIRONMENT_IS_NODE){defaultPrint=(...args)=>fs.writeSync(1,args.join(" ")+"\n");defaultPrintErr=(...args)=>fs.writeSync(2,args.join(" ")+"\n")}var out=Module["print"]||defaultPrint;var err=Module["printErr"]||defaultPrintErr;Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||134217728;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":4294967296/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){err("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)")}throw Error("bad memory")}}}updateMemoryViews();INITIAL_MEMORY=wasmMemory.buffer.byteLength;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}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(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";if(runtimeInitialized){___trap()}var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");var wasmBinaryFile;if(Module["locateFile"]){wasmBinaryFile="wllama.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}}else{wasmBinaryFile=new URL("wllama.wasm",import.meta.url).href}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"}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(binaryFile)){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(!response["ok"]){throw`failed to load wasm binary file at '${binaryFile}'`}return response["arrayBuffer"]()}).catch(()=>getBinarySync(binaryFile))}else if(readAsync){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),reject)})}}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function createWasm(){var info={"a":wasmImports};function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=applySignatureConversions(wasmExports);registerTLSInit(wasmExports["L"]);wasmTable=wasmExports["N"];addOnInit(wasmExports["E"]);wasmModule=module;removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;var ASM_CONSTS={133936:()=>GROWABLE_HEAP_I8().length};function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}Module["ExitStatus"]=ExitStatus;var terminateWorker=worker=>{worker.terminate();worker.onmessage=e=>{}};Module["terminateWorker"]=terminateWorker;var killThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];delete PThread.pthreads[pthread_ptr];terminateWorker(worker);__emscripten_thread_free_data(pthread_ptr);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);worker.pthread_ptr=0};Module["killThread"]=killThread;var cancelThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];worker.postMessage({"cmd":"cancel"})};Module["cancelThread"]=cancelThread;var cleanupThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];PThread.returnWorkerToPool(worker)};Module["cleanupThread"]=cleanupThread;var zeroMemory=(address,size)=>{GROWABLE_HEAP_U8().fill(0,address,address+size);return address};Module["zeroMemory"]=zeroMemory;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};Module["spawnThread"]=spawnThread;var runtimeKeepaliveCounter=0;Module["runtimeKeepaliveCounter"]=runtimeKeepaliveCounter;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;Module["keepRuntimeAlive"]=keepRuntimeAlive;var withStackSave=f=>{var stack=stackSave();var ret=f();stackRestore(stack);return ret};Module["withStackSave"]=withStackSave;var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;Module["convertI32PairToI53Checked"]=convertI32PairToI53Checked;var proxyToMainThread=(funcIndex,emAsmAddr,sync,...callArgs)=>withStackSave(()=>{var serializedNumCallArgs=callArgs.length;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>>3;for(var i=0;i>>0]=arg}return __emscripten_run_on_main_thread_js(funcIndex,emAsmAddr,serializedNumCallArgs,args,sync)});Module["proxyToMainThread"]=proxyToMainThread;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))}Module["_proc_exit"]=_proc_exit;var exitJS=(status,implicit)=>{EXITSTATUS=status;if(ENVIRONMENT_IS_PTHREAD){exitOnMainThread(status);throw"unwind"}_proc_exit(status)};Module["exitJS"]=exitJS;var _exit=exitJS;Module["_exit"]=_exit;var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};Module["handleException"]=handleException;var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init(){if(ENVIRONMENT_IS_PTHREAD){PThread.initWorker()}else{PThread.initMainThread()}},initMainThread(){var pthreadPoolSize=Module["pthreadPoolSize"];while(pthreadPoolSize--){PThread.allocateUnusedWorker()}addOnPreRun(()=>{addRunDependency("loading-workers");PThread.loadWasmModuleToAllWorkers(()=>removeRunDependency("loading-workers"))})},initWorker(){noExitRuntime=false},setExitStatus:status=>EXITSTATUS=status,terminateAllThreads__deps:["$terminateWorker"],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)},receiveObjectTransfer(data){},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"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(ENVIRONMENT_IS_NODE&&!worker.pthread_ptr){worker.unref()}onFinishedLoading(worker)}else if(cmd==="alert"){alert(`Thread ${d["threadId"]}: ${d["text"]}`)}else if(d.target==="setimmediate"){worker.postMessage(d)}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:data}));worker.on("error",e=>worker.onerror(e))}var handlers=[];var knownHandlers=["onExit","onAbort","print","printErr"];for(var handler of knownHandlers){if(Module.hasOwnProperty(handler)){handlers.push(handler)}}worker.postMessage({"cmd":"load","handlers":handlers,"urlOrBlob":Module["mainScriptUrlOrBlob"],"wasmMemory":wasmMemory,"wasmModule":wasmModule})}),loadWasmModuleToAllWorkers(onMaybeReady){if(ENVIRONMENT_IS_PTHREAD){return onMaybeReady()}let pthreadPoolReady=Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker));pthreadPoolReady.then(onMaybeReady)},allocateUnusedWorker(){var worker;if(!Module["locateFile"]){worker=new Worker(new URL("wllama.worker.mjs",import.meta.url),{type:"module"})}else{var pthreadMainJs=locateFile("wllama.worker.mjs");worker=new Worker(pthreadMainJs,{type:"module"})}PThread.unusedWorkers.push(worker)},getNewWorker(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()}};Module["PThread"]=PThread;var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};Module["callRuntimeCallbacks"]=callRuntimeCallbacks;var establishStackSpace=()=>{var pthread_ptr=_pthread_self();var stackHigh=GROWABLE_HEAP_U32()[pthread_ptr+52>>>2>>>0];var stackSize=GROWABLE_HEAP_U32()[pthread_ptr+56>>>2>>>0];var stackLow=stackHigh-stackSize;_emscripten_stack_set_limits(stackHigh,stackLow);stackRestore(stackHigh)};Module["establishStackSpace"]=establishStackSpace;function exitOnMainThread(returnCode){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(1,0,0,returnCode);_exit(returnCode)}Module["exitOnMainThread"]=exitOnMainThread;function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return GROWABLE_HEAP_I8()[ptr>>>0];case"i8":return GROWABLE_HEAP_I8()[ptr>>>0];case"i16":return GROWABLE_HEAP_I16()[ptr>>>1>>>0];case"i32":return GROWABLE_HEAP_I32()[ptr>>>2>>>0];case"i64":abort("to do getValue(i64) use WASM_BIGINT");case"float":return GROWABLE_HEAP_F32()[ptr>>>2>>>0];case"double":return GROWABLE_HEAP_F64()[ptr>>>3>>>0];case"*":return GROWABLE_HEAP_U32()[ptr>>>2>>>0];default:abort(`invalid type for getValue: ${type}`)}}Module["getValue"]=getValue;var wasmTableMirror=[];Module["wasmTableMirror"]=wasmTableMirror;var wasmTable;Module["wasmTable"]=wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};Module["getWasmTableEntry"]=getWasmTableEntry;var invokeEntryPoint=(ptr,arg)=>{var result=getWasmTableEntry(ptr)(arg);function finish(result){if(keepRuntimeAlive()){PThread.setExitStatus(result)}else{__emscripten_thread_exit(result)}}finish(result)};Module["invokeEntryPoint"]=invokeEntryPoint;var noExitRuntime=Module["noExitRuntime"]||true;Module["noExitRuntime"]=noExitRuntime;var registerTLSInit=tlsInitFunc=>PThread.tlsInitFunctions.push(tlsInitFunc);Module["registerTLSInit"]=registerTLSInit;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":GROWABLE_HEAP_I8()[ptr>>>0]=value;break;case"i8":GROWABLE_HEAP_I8()[ptr>>>0]=value;break;case"i16":GROWABLE_HEAP_I16()[ptr>>>1>>>0]=value;break;case"i32":GROWABLE_HEAP_I32()[ptr>>>2>>>0]=value;break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":GROWABLE_HEAP_F32()[ptr>>>2>>>0]=value;break;case"double":GROWABLE_HEAP_F64()[ptr>>>3>>>0]=value;break;case"*":GROWABLE_HEAP_U32()[ptr>>>2>>>0]=value;break;default:abort(`invalid type for setValue: ${type}`)}}Module["setValue"]=setValue;function ___emscripten_init_main_thread_js(tb){tb>>>=0;__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1,!ENVIRONMENT_IS_WEB,65536,false);PThread.threadInitTLS()}Module["___emscripten_init_main_thread_js"]=___emscripten_init_main_thread_js;function ___emscripten_thread_cleanup(thread){thread>>>=0;if(!ENVIRONMENT_IS_PTHREAD)cleanupThread(thread);else postMessage({"cmd":"cleanupThread","thread":thread})}Module["___emscripten_thread_cleanup"]=___emscripten_thread_cleanup;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)}Module["pthreadCreateProxied"]=pthreadCreateProxied;function ___pthread_create_js(pthread_ptr,attr,startRoutine,arg){pthread_ptr>>>=0;attr>>>=0;startRoutine>>>=0;arg>>>=0;if(typeof SharedArrayBuffer=="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");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:startRoutine,pthread_ptr:pthread_ptr,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}Module["___pthread_create_js"]=___pthread_create_js;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.substr(-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.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};Module["PATH"]=PATH;var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>(view.set(crypto.getRandomValues(new Uint8Array(view.byteLength))),view)}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");var randomFillSync=crypto_module["randomFillSync"];if(randomFillSync){return view=>crypto_module["randomFillSync"](view)}var randomBytes=crypto_module["randomBytes"];return view=>(view.set(randomBytes(view.byteLength)),view)}catch(e){}}abort("initRandomDevice")};Module["initRandomFill"]=initRandomFill;var randomFill=view=>(randomFill=initRandomFill())(view);Module["randomFill"]=randomFill;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).substr(1);to=PATH_FS.resolve(to).substr(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{idx>>>=0;var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.buffer instanceof SharedArrayBuffer?heapOrArray.slice(idx,endPtr):heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};Module["UTF8ArrayToString"]=UTF8ArrayToString;var FS_stdin_getChar_buffer=[];Module["FS_stdin_getChar_buffer"]=FS_stdin_getChar_buffer;var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};Module["lengthBytesUTF8"]=lengthBytesUTF8;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=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}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}}heap[outIdx>>>0]=0;return outIdx-startIdx};Module["stringToUTF8Array"]=stringToUTF8Array;function 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}Module["intArrayFromString"]=intArrayFromString;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)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};Module["FS_stdin_getChar"]=FS_stdin_getChar;var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops: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,0));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,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};Module["TTY"]=TTY;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;Module["alignMemory"]=alignMemory;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;return zeroMemory(ptr,size)};Module["mmapAlloc"]=mmapAlloc;var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,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,allocate:MEMFS.stream_ops.allocate,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.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}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.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink(parent,name){delete parent.contents[name];parent.timestamp=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.timestamp=Date.now()},readdir(node){var entries=[".",".."];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},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:ptr,allocated:allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};Module["MEMFS"]=MEMFS;var asyncLoad=(url,onload,onerror,noRunDep)=>{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url,arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)};Module["asyncLoad"]=asyncLoad;var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};Module["FS_createDataFile"]=FS_createDataFile;var preloadPlugins=Module["preloadPlugins"]||[];Module["preloadPlugins"]=preloadPlugins;var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};Module["FS_handledByPreloadPlugin"]=FS_handledByPreloadPlugin;var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,processData,onerror)}else{processData(url)}};Module["FS_createPreloadedFile"]=FS_createPreloadedFile;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};Module["FS_modeStringToFlags"]=FS_modeStringToFlags;var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};Module["FS_getMode"]=FS_getMode;var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:class{constructor(errno){this.name="ErrnoError";this.errno=errno}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.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{constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev;this.readMode=292|73;this.writeMode=146}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={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},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>>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){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){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},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},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)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},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:type,opts:opts,mountpoint: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);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];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||name==="."||name===".."){throw new FS.ErrnoError(28)}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)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;iFS.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});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){randomLeft=randomFill(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",16384|511,73);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}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}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(){[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""});FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init(input,output,error){FS.init.initialized=true;Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit(){FS.init.initialized=false;for(var i=0;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))throw new Error("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)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("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))throw new Error("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")throw new Error("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(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"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: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={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];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,GROWABLE_HEAP_I8(),ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};Module["FS"]=FS;var UTF8ToString=(ptr,maxBytesToRead)=>{ptr>>>=0;return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):""};Module["UTF8ToString"]=UTF8ToString;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 PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);GROWABLE_HEAP_I32()[buf>>>2>>>0]=stat.dev;GROWABLE_HEAP_I32()[buf+4>>>2>>>0]=stat.mode;GROWABLE_HEAP_U32()[buf+8>>>2>>>0]=stat.nlink;GROWABLE_HEAP_I32()[buf+12>>>2>>>0]=stat.uid;GROWABLE_HEAP_I32()[buf+16>>>2>>>0]=stat.gid;GROWABLE_HEAP_I32()[buf+20>>>2>>>0]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],GROWABLE_HEAP_I32()[buf+24>>>2>>>0]=tempI64[0],GROWABLE_HEAP_I32()[buf+28>>>2>>>0]=tempI64[1];GROWABLE_HEAP_I32()[buf+32>>>2>>>0]=4096;GROWABLE_HEAP_I32()[buf+36>>>2>>>0]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],GROWABLE_HEAP_I32()[buf+40>>>2>>>0]=tempI64[0],GROWABLE_HEAP_I32()[buf+44>>>2>>>0]=tempI64[1];GROWABLE_HEAP_U32()[buf+48>>>2>>>0]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],GROWABLE_HEAP_I32()[buf+56>>>2>>>0]=tempI64[0],GROWABLE_HEAP_I32()[buf+60>>>2>>>0]=tempI64[1];GROWABLE_HEAP_U32()[buf+64>>>2>>>0]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],GROWABLE_HEAP_I32()[buf+72>>>2>>>0]=tempI64[0],GROWABLE_HEAP_I32()[buf+76>>>2>>>0]=tempI64[1];GROWABLE_HEAP_U32()[buf+80>>>2>>>0]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],GROWABLE_HEAP_I32()[buf+88>>>2>>>0]=tempI64[0],GROWABLE_HEAP_I32()[buf+92>>>2>>>0]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=GROWABLE_HEAP_U8().slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get(){var ret=GROWABLE_HEAP_I32()[+SYSCALLS.varargs>>>2>>>0];SYSCALLS.varargs+=4;return ret},getp(){return SYSCALLS.get()},getStr(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream}};Module["SYSCALLS"]=SYSCALLS;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=SYSCALLS.get();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=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.getp();var offset=0;GROWABLE_HEAP_I16()[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}}Module["___syscall_fcntl64"]=___syscall_fcntl64;function ___syscall_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(4,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=SYSCALLS.getp();GROWABLE_HEAP_I32()[argp>>>2>>>0]=termios.c_iflag||0;GROWABLE_HEAP_I32()[argp+4>>>2>>>0]=termios.c_oflag||0;GROWABLE_HEAP_I32()[argp+8>>>2>>>0]=termios.c_cflag||0;GROWABLE_HEAP_I32()[argp+12>>>2>>>0]=termios.c_lflag||0;for(var i=0;i<32;i++){GROWABLE_HEAP_I8()[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=SYSCALLS.getp();var c_iflag=GROWABLE_HEAP_I32()[argp>>>2>>>0];var c_oflag=GROWABLE_HEAP_I32()[argp+4>>>2>>>0];var c_cflag=GROWABLE_HEAP_I32()[argp+8>>>2>>>0];var c_lflag=GROWABLE_HEAP_I32()[argp+12>>>2>>>0];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(GROWABLE_HEAP_I8()[argp+i+17>>>0])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag:c_iflag,c_oflag:c_oflag,c_cflag:c_cflag,c_lflag:c_lflag,c_cc:c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.getp();GROWABLE_HEAP_I32()[argp>>>2>>>0]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.getp();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=SYSCALLS.getp();GROWABLE_HEAP_I16()[argp>>>1>>>0]=winsize[0];GROWABLE_HEAP_I16()[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}}Module["___syscall_ioctl"]=___syscall_ioctl;function ___syscall_openat(dirfd,path,flags,varargs){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(5,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?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_openat"]=___syscall_openat;var nowIsMonotonic=1;Module["nowIsMonotonic"]=nowIsMonotonic;var __emscripten_get_now_is_monotonic=()=>nowIsMonotonic;Module["__emscripten_get_now_is_monotonic"]=__emscripten_get_now_is_monotonic;var maybeExit=()=>{if(!keepRuntimeAlive()){try{if(ENVIRONMENT_IS_PTHREAD)__emscripten_thread_exit(EXITSTATUS);else _exit(EXITSTATUS)}catch(e){handleException(e)}}};Module["maybeExit"]=maybeExit;var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};Module["callUserCallback"]=callUserCallback;function __emscripten_thread_mailbox_await(pthread_ptr){pthread_ptr>>>=0;if(typeof Atomics.waitAsync==="function"){var wait=Atomics.waitAsync(GROWABLE_HEAP_I32(),pthread_ptr>>>2,pthread_ptr);wait.value.then(checkMailbox);var waitingAsync=pthread_ptr+128;Atomics.store(GROWABLE_HEAP_I32(),waitingAsync>>>2,1)}}Module["__emscripten_thread_mailbox_await"]=__emscripten_thread_mailbox_await;var checkMailbox=()=>{var pthread_ptr=_pthread_self();if(pthread_ptr){__emscripten_thread_mailbox_await(pthread_ptr);callUserCallback(__emscripten_check_mailbox)}};Module["checkMailbox"]=checkMailbox;function __emscripten_notify_mailbox_postmessage(targetThreadId,currThreadId,mainThreadId){targetThreadId>>>=0;currThreadId>>>=0;mainThreadId>>>=0;if(targetThreadId==currThreadId){setTimeout(checkMailbox)}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"checkMailbox"})}else{var worker=PThread.pthreads[targetThreadId];if(!worker){return}worker.postMessage({"cmd":"checkMailbox"})}}Module["__emscripten_notify_mailbox_postmessage"]=__emscripten_notify_mailbox_postmessage;var proxiedJSCallArgs=[];Module["proxiedJSCallArgs"]=proxiedJSCallArgs;function __emscripten_receive_on_main_thread_js(funcIndex,emAsmAddr,callingThread,numCallArgs,args){emAsmAddr>>>=0;callingThread>>>=0;args>>>=0;proxiedJSCallArgs.length=numCallArgs;var b=args>>>3;for(var i=0;i>>0]}var func=emAsmAddr?ASM_CONSTS[emAsmAddr]:proxiedFunctionTable[funcIndex];PThread.currentProxiedOperationCallerThread=callingThread;var rtn=func(...proxiedJSCallArgs);PThread.currentProxiedOperationCallerThread=0;return rtn}Module["__emscripten_receive_on_main_thread_js"]=__emscripten_receive_on_main_thread_js;function __emscripten_thread_set_strongref(thread){thread>>>=0;if(ENVIRONMENT_IS_NODE){PThread.pthreads[thread].ref()}}Module["__emscripten_thread_set_strongref"]=__emscripten_thread_set_strongref;function __mmap_js(len,prot,flags,fd,offset_low,offset_high,allocated,addr){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(6,0,1,len,prot,flags,fd,offset_low,offset_high,allocated,addr);len>>>=0;var offset=convertI32PairToI53Checked(offset_low,offset_high);allocated>>>=0;addr>>>=0;try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;GROWABLE_HEAP_I32()[allocated>>>2>>>0]=res.allocated;GROWABLE_HEAP_U32()[addr>>>2>>>0]=ptr;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["__mmap_js"]=__mmap_js;function __munmap_js(addr,len,prot,flags,fd,offset_low,offset_high){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(7,0,1,addr,len,prot,flags,fd,offset_low,offset_high);addr>>>=0;len>>>=0;var offset=convertI32PairToI53Checked(offset_low,offset_high);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}}Module["__munmap_js"]=__munmap_js;var _abort=()=>{abort("")};Module["_abort"]=_abort;var readEmAsmArgsArray=[];Module["readEmAsmArgsArray"]=readEmAsmArgsArray;var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=GROWABLE_HEAP_U8()[sigPtr++>>>0]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?GROWABLE_HEAP_U32()[buf>>>2>>>0]:ch==105?GROWABLE_HEAP_I32()[buf>>>2>>>0]:GROWABLE_HEAP_F64()[buf>>>3>>>0]);buf+=wide?8:4}return readEmAsmArgsArray};Module["readEmAsmArgs"]=readEmAsmArgs;var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};Module["runEmAsmFunction"]=runEmAsmFunction;function _emscripten_asm_const_int(code,sigPtr,argbuf){code>>>=0;sigPtr>>>=0;argbuf>>>=0;return runEmAsmFunction(code,sigPtr,argbuf)}Module["_emscripten_asm_const_int"]=_emscripten_asm_const_int;var warnOnce=text=>{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};Module["warnOnce"]=warnOnce;var _emscripten_check_blocking_allowed=()=>{};Module["_emscripten_check_blocking_allowed"]=_emscripten_check_blocking_allowed;var _emscripten_date_now=()=>Date.now();Module["_emscripten_date_now"]=_emscripten_date_now;var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};Module["runtimeKeepalivePush"]=runtimeKeepalivePush;var _emscripten_exit_with_live_runtime=()=>{runtimeKeepalivePush();throw"unwind"};Module["_emscripten_exit_with_live_runtime"]=_emscripten_exit_with_live_runtime;var _emscripten_get_now;_emscripten_get_now=()=>performance.timeOrigin+performance.now();Module["_emscripten_get_now"]=_emscripten_get_now;var getHeapMax=()=>4294901760;Module["getHeapMax"]=getHeapMax;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};Module["growMemory"]=growMemory;function _emscripten_resize_heap(requestedSize){requestedSize>>>=0;var oldSize=GROWABLE_HEAP_U8().length;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;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,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false}Module["_emscripten_resize_heap"]=_emscripten_resize_heap;var ENV={};Module["ENV"]=ENV;var getExecutableName=()=>thisProgram||"./this.program";Module["getExecutableName"]=getExecutableName;var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"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};Module["getEnvStrings"]=getEnvStrings;var stringToAscii=(str,buffer)=>{for(var i=0;i>>0]=str.charCodeAt(i)}GROWABLE_HEAP_I8()[buffer>>>0]=0};Module["stringToAscii"]=stringToAscii;var _environ_get=function(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(8,0,1,__environ,environ_buf);__environ>>>=0;environ_buf>>>=0;var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;GROWABLE_HEAP_U32()[__environ+i*4>>>2>>>0]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};Module["_environ_get"]=_environ_get;var _environ_sizes_get=function(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(9,0,1,penviron_count,penviron_buf_size);penviron_count>>>=0;penviron_buf_size>>>=0;var strings=getEnvStrings();GROWABLE_HEAP_U32()[penviron_count>>>2>>>0]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);GROWABLE_HEAP_U32()[penviron_buf_size>>>2>>>0]=bufSize;return 0};Module["_environ_sizes_get"]=_environ_sizes_get;function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(10,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}}Module["_fd_close"]=_fd_close;var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>>2>>>0];var len=GROWABLE_HEAP_U32()[iov+4>>>2>>>0];iov+=8;var curr=FS.read(stream,GROWABLE_HEAP_I8(),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);GROWABLE_HEAP_U32()[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}Module["_fd_read"]=_fd_read;function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(12,0,1,fd,offset_low,offset_high,whence,newOffset);var offset=convertI32PairToI53Checked(offset_low,offset_high);newOffset>>>=0;try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],GROWABLE_HEAP_I32()[newOffset>>>2>>>0]=tempI64[0],GROWABLE_HEAP_I32()[newOffset+4>>>2>>>0]=tempI64[1];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}}Module["_fd_seek"]=_fd_seek;var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>>2>>>0];var len=GROWABLE_HEAP_U32()[iov+4>>>2>>>0];iov+=8;var curr=FS.write(stream,GROWABLE_HEAP_I8(),ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!=="undefined"){offset+=curr}}return ret};Module["doWritev"]=doWritev;function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(13,0,1,fd,iov,iovcnt,pnum);iov>>>=0;iovcnt>>>=0;pnum>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);GROWABLE_HEAP_U32()[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}Module["_fd_write"]=_fd_write;function _getentropy(buffer,size){buffer>>>=0;size>>>=0;randomFill(GROWABLE_HEAP_U8().subarray(buffer>>>0,buffer+size>>>0));return 0}Module["_getentropy"]=_getentropy;var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);Module["isLeapYear"]=isLeapYear;var arraySum=(array,index)=>{var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum};Module["arraySum"]=arraySum;var MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];Module["MONTH_DAYS_LEAP"]=MONTH_DAYS_LEAP;var MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];Module["MONTH_DAYS_REGULAR"]=MONTH_DAYS_REGULAR;var addDays=(date,days)=>{var newDate=new Date(date.getTime());while(days>0){var leap=isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate};Module["addDays"]=addDays;var writeArrayToMemory=(array,buffer)=>{GROWABLE_HEAP_I8().set(array,buffer>>>0)};Module["writeArrayToMemory"]=writeArrayToMemory;function _strftime(s,maxsize,format,tm){s>>>=0;maxsize>>>=0;format>>>=0;tm>>>=0;var tm_zone=GROWABLE_HEAP_U32()[tm+40>>>2>>>0];var date={tm_sec:GROWABLE_HEAP_I32()[tm>>>2>>>0],tm_min:GROWABLE_HEAP_I32()[tm+4>>>2>>>0],tm_hour:GROWABLE_HEAP_I32()[tm+8>>>2>>>0],tm_mday:GROWABLE_HEAP_I32()[tm+12>>>2>>>0],tm_mon:GROWABLE_HEAP_I32()[tm+16>>>2>>>0],tm_year:GROWABLE_HEAP_I32()[tm+20>>>2>>>0],tm_wday:GROWABLE_HEAP_I32()[tm+24>>>2>>>0],tm_yday:GROWABLE_HEAP_I32()[tm+28>>>2>>>0],tm_isdst:GROWABLE_HEAP_I32()[tm+32>>>2>>>0],tm_gmtoff:GROWABLE_HEAP_I32()[tm+36>>>2>>>0],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}return thisDate.getFullYear()}return thisDate.getFullYear()-1}var EXPANSION_RULES_2={"%a":date=>WEEKDAYS[date.tm_wday].substring(0,3),"%A":date=>WEEKDAYS[date.tm_wday],"%b":date=>MONTHS[date.tm_mon].substring(0,3),"%B":date=>MONTHS[date.tm_mon],"%C":date=>{var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":date=>leadingNulls(date.tm_mday,2),"%e":date=>leadingSomething(date.tm_mday,2," "),"%g":date=>getWeekBasedYear(date).toString().substring(2),"%G":getWeekBasedYear,"%H":date=>leadingNulls(date.tm_hour,2),"%I":date=>{var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":date=>leadingNulls(date.tm_mday+arraySum(isLeapYear(date.tm_year+1900)?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR,date.tm_mon-1),3),"%m":date=>leadingNulls(date.tm_mon+1,2),"%M":date=>leadingNulls(date.tm_min,2),"%n":()=>"\n","%p":date=>{if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":date=>leadingNulls(date.tm_sec,2),"%t":()=>"\t","%u":date=>date.tm_wday||7,"%U":date=>{var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":date=>{var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":date=>date.tm_wday,"%W":date=>{var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":date=>(date.tm_year+1900).toString().substring(2),"%Y":date=>date.tm_year+1900,"%z":date=>{var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":date=>date.tm_zone,"%%":()=>"%"};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}Module["_strftime"]=_strftime;function _strftime_l(s,maxsize,format,tm,loc){s>>>=0;maxsize>>>=0;format>>>=0;tm>>>=0;loc>>>=0;return _strftime(s,maxsize,format,tm)}Module["_strftime_l"]=_strftime_l;var getCFunc=ident=>{var func=Module["_"+ident];return func};Module["getCFunc"]=getCFunc;var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite);Module["stringToUTF8"]=stringToUTF8;var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};Module["stringToUTF8OnStack"]=stringToUTF8OnStack;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==="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)};Module["cwrap"]=cwrap;var FS_unlink=path=>FS.unlink(path);Module["FS_unlink"]=FS_unlink;PThread.init();FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;var proxiedFunctionTable=[_proc_exit,exitOnMainThread,pthreadCreateProxied,___syscall_fcntl64,___syscall_ioctl,___syscall_openat,__mmap_js,__munmap_js,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];var wasmImports={y:___emscripten_init_main_thread_js,g:___emscripten_thread_cleanup,u:___pthread_create_js,e:___syscall_fcntl64,D:___syscall_ioctl,j:___syscall_openat,m:__emscripten_get_now_is_monotonic,s:__emscripten_notify_mailbox_postmessage,w:__emscripten_receive_on_main_thread_js,x:__emscripten_thread_mailbox_await,l:__emscripten_thread_set_strongref,n:__mmap_js,o:__munmap_js,b:_abort,d:_emscripten_asm_const_int,h:_emscripten_check_blocking_allowed,f:_emscripten_date_now,k:_emscripten_exit_with_live_runtime,c:_emscripten_get_now,t:_emscripten_resize_heap,z:_environ_get,A:_environ_sizes_get,v:_exit,i:_fd_close,C:_fd_read,p:_fd_seek,B:_fd_write,q:_getentropy,a:wasmMemory||Module["wasmMemory"],r:_strftime_l};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["E"])();var _wllama_start=Module["_wllama_start"]=()=>(_wllama_start=Module["_wllama_start"]=wasmExports["F"])();var _wllama_action=Module["_wllama_action"]=(a0,a1)=>(_wllama_action=Module["_wllama_action"]=wasmExports["G"])(a0,a1);var _wllama_exit=Module["_wllama_exit"]=()=>(_wllama_exit=Module["_wllama_exit"]=wasmExports["H"])();var _wllama_debug=Module["_wllama_debug"]=()=>(_wllama_debug=Module["_wllama_debug"]=wasmExports["I"])();var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["J"])(a0,a1);var _pthread_self=Module["_pthread_self"]=()=>(_pthread_self=Module["_pthread_self"]=wasmExports["K"])();var __emscripten_tls_init=Module["__emscripten_tls_init"]=()=>(__emscripten_tls_init=Module["__emscripten_tls_init"]=wasmExports["L"])();var _emscripten_builtin_memalign=(a0,a1)=>(_emscripten_builtin_memalign=wasmExports["M"])(a0,a1);var __emscripten_thread_init=Module["__emscripten_thread_init"]=(a0,a1,a2,a3,a4,a5)=>(__emscripten_thread_init=Module["__emscripten_thread_init"]=wasmExports["O"])(a0,a1,a2,a3,a4,a5);var __emscripten_thread_crashed=Module["__emscripten_thread_crashed"]=()=>(__emscripten_thread_crashed=Module["__emscripten_thread_crashed"]=wasmExports["P"])();var _emscripten_main_thread_process_queued_calls=()=>(_emscripten_main_thread_process_queued_calls=wasmExports["Q"])();var _emscripten_main_runtime_thread_id=()=>(_emscripten_main_runtime_thread_id=wasmExports["R"])();var __emscripten_run_on_main_thread_js=(a0,a1,a2,a3,a4)=>(__emscripten_run_on_main_thread_js=wasmExports["S"])(a0,a1,a2,a3,a4);var __emscripten_thread_free_data=a0=>(__emscripten_thread_free_data=wasmExports["T"])(a0);var __emscripten_thread_exit=Module["__emscripten_thread_exit"]=a0=>(__emscripten_thread_exit=Module["__emscripten_thread_exit"]=wasmExports["U"])(a0);var __emscripten_check_mailbox=()=>(__emscripten_check_mailbox=wasmExports["V"])();var ___trap=()=>(___trap=wasmExports["W"])();var setTempRet0=a0=>(setTempRet0=wasmExports["X"])(a0);var _emscripten_stack_set_limits=(a0,a1)=>(_emscripten_stack_set_limits=wasmExports["Y"])(a0,a1);var stackSave=()=>(stackSave=wasmExports["Z"])();var stackRestore=a0=>(stackRestore=wasmExports["_"])(a0);var stackAlloc=a0=>(stackAlloc=wasmExports["$"])(a0);var dynCall_jiji=Module["dynCall_jiji"]=(a0,a1,a2,a3,a4)=>(dynCall_jiji=Module["dynCall_jiji"]=wasmExports["aa"])(a0,a1,a2,a3,a4);var dynCall_viij=Module["dynCall_viij"]=(a0,a1,a2,a3,a4)=>(dynCall_viij=Module["dynCall_viij"]=wasmExports["ba"])(a0,a1,a2,a3,a4);var dynCall_viijii=Module["dynCall_viijii"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_viijii=Module["dynCall_viijii"]=wasmExports["ca"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_iiiiij=Module["dynCall_iiiiij"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_iiiiij=Module["dynCall_iiiiij"]=wasmExports["da"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=wasmExports["ea"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=wasmExports["fa"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_p=f=>()=>f()>>>0;var makeWrapper_ppp=f=>(a0,a1)=>f(a0,a1)>>>0;var makeWrapper_pp=f=>a0=>f(a0)>>>0;wasmExports["K"]=makeWrapper_p(wasmExports["K"]);wasmExports["M"]=makeWrapper_ppp(wasmExports["M"]);wasmExports["R"]=makeWrapper_p(wasmExports["R"]);wasmExports["Z"]=makeWrapper_p(wasmExports["Z"]);wasmExports["$"]=makeWrapper_pp(wasmExports["$"]);return wasmExports}Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["wasmMemory"]=wasmMemory;Module["keepRuntimeAlive"]=keepRuntimeAlive;Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["ExitStatus"]=ExitStatus;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_unlink"]=FS.unlink;Module["PThread"]=PThread;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};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){return}if(ENVIRONMENT_IS_PTHREAD){readyPromiseResolve(Module);initRuntime();startWorker(Module);return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); +function GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU8}function GROWABLE_HEAP_I16(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP16}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU32}function GROWABLE_HEAP_F32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPF32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPF64}var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_NODE){const{createRequire:createRequire}=await import("module");var require=createRequire(import.meta.url);var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=require("url").fileURLToPath(new URL("./",import.meta.url))}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)onerror(err);else onload(binary?data.buffer:data)})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow};global.Worker=require("worker_threads").Worker}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}if(!ENVIRONMENT_IS_NODE){read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};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=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance=="undefined"){global.performance=require("perf_hooks").performance}}var defaultPrint=console.log.bind(console);var defaultPrintErr=console.error.bind(console);if(ENVIRONMENT_IS_NODE){defaultPrint=(...args)=>fs.writeSync(1,args.join(" ")+"\n");defaultPrintErr=(...args)=>fs.writeSync(2,args.join(" ")+"\n")}var out=Module["print"]||defaultPrint;var err=Module["printErr"]||defaultPrintErr;Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||134217728;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":4294967296/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){err("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)")}throw Error("bad memory")}}}updateMemoryViews();INITIAL_MEMORY=wasmMemory.buffer.byteLength;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}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(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";if(runtimeInitialized){___trap()}var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");var wasmBinaryFile;if(Module["locateFile"]){wasmBinaryFile="wllama.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}}else{wasmBinaryFile=new URL("wllama.wasm",import.meta.url).href}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"}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(binaryFile)){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(!response["ok"]){throw`failed to load wasm binary file at '${binaryFile}'`}return response["arrayBuffer"]()}).catch(()=>getBinarySync(binaryFile))}else if(readAsync){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),reject)})}}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function createWasm(){var info={"a":wasmImports};function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=applySignatureConversions(wasmExports);registerTLSInit(wasmExports["L"]);wasmTable=wasmExports["N"];addOnInit(wasmExports["E"]);wasmModule=module;removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;var ASM_CONSTS={134720:()=>GROWABLE_HEAP_I8().length};function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}Module["ExitStatus"]=ExitStatus;var terminateWorker=worker=>{worker.terminate();worker.onmessage=e=>{}};Module["terminateWorker"]=terminateWorker;var killThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];delete PThread.pthreads[pthread_ptr];terminateWorker(worker);__emscripten_thread_free_data(pthread_ptr);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);worker.pthread_ptr=0};Module["killThread"]=killThread;var cancelThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];worker.postMessage({"cmd":"cancel"})};Module["cancelThread"]=cancelThread;var cleanupThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];PThread.returnWorkerToPool(worker)};Module["cleanupThread"]=cleanupThread;var zeroMemory=(address,size)=>{GROWABLE_HEAP_U8().fill(0,address,address+size);return address};Module["zeroMemory"]=zeroMemory;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};Module["spawnThread"]=spawnThread;var runtimeKeepaliveCounter=0;Module["runtimeKeepaliveCounter"]=runtimeKeepaliveCounter;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;Module["keepRuntimeAlive"]=keepRuntimeAlive;var withStackSave=f=>{var stack=stackSave();var ret=f();stackRestore(stack);return ret};Module["withStackSave"]=withStackSave;var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;Module["convertI32PairToI53Checked"]=convertI32PairToI53Checked;var proxyToMainThread=(funcIndex,emAsmAddr,sync,...callArgs)=>withStackSave(()=>{var serializedNumCallArgs=callArgs.length;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>>3;for(var i=0;i>>0]=arg}return __emscripten_run_on_main_thread_js(funcIndex,emAsmAddr,serializedNumCallArgs,args,sync)});Module["proxyToMainThread"]=proxyToMainThread;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))}Module["_proc_exit"]=_proc_exit;var exitJS=(status,implicit)=>{EXITSTATUS=status;if(ENVIRONMENT_IS_PTHREAD){exitOnMainThread(status);throw"unwind"}_proc_exit(status)};Module["exitJS"]=exitJS;var _exit=exitJS;Module["_exit"]=_exit;var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};Module["handleException"]=handleException;var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init(){if(ENVIRONMENT_IS_PTHREAD){PThread.initWorker()}else{PThread.initMainThread()}},initMainThread(){var pthreadPoolSize=Module["pthreadPoolSize"];while(pthreadPoolSize--){PThread.allocateUnusedWorker()}addOnPreRun(()=>{addRunDependency("loading-workers");PThread.loadWasmModuleToAllWorkers(()=>removeRunDependency("loading-workers"))})},initWorker(){noExitRuntime=false},setExitStatus:status=>EXITSTATUS=status,terminateAllThreads__deps:["$terminateWorker"],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)},receiveObjectTransfer(data){},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"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(ENVIRONMENT_IS_NODE&&!worker.pthread_ptr){worker.unref()}onFinishedLoading(worker)}else if(cmd==="alert"){alert(`Thread ${d["threadId"]}: ${d["text"]}`)}else if(d.target==="setimmediate"){worker.postMessage(d)}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:data}));worker.on("error",e=>worker.onerror(e))}var handlers=[];var knownHandlers=["onExit","onAbort","print","printErr"];for(var handler of knownHandlers){if(Module.hasOwnProperty(handler)){handlers.push(handler)}}worker.postMessage({"cmd":"load","handlers":handlers,"urlOrBlob":Module["mainScriptUrlOrBlob"],"wasmMemory":wasmMemory,"wasmModule":wasmModule})}),loadWasmModuleToAllWorkers(onMaybeReady){if(ENVIRONMENT_IS_PTHREAD){return onMaybeReady()}let pthreadPoolReady=Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker));pthreadPoolReady.then(onMaybeReady)},allocateUnusedWorker(){var worker;if(!Module["locateFile"]){worker=new Worker(new URL("wllama.worker.mjs",import.meta.url),{type:"module"})}else{var pthreadMainJs=locateFile("wllama.worker.mjs");worker=new Worker(pthreadMainJs,{type:"module"})}PThread.unusedWorkers.push(worker)},getNewWorker(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()}};Module["PThread"]=PThread;var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};Module["callRuntimeCallbacks"]=callRuntimeCallbacks;var establishStackSpace=()=>{var pthread_ptr=_pthread_self();var stackHigh=GROWABLE_HEAP_U32()[pthread_ptr+52>>>2>>>0];var stackSize=GROWABLE_HEAP_U32()[pthread_ptr+56>>>2>>>0];var stackLow=stackHigh-stackSize;_emscripten_stack_set_limits(stackHigh,stackLow);stackRestore(stackHigh)};Module["establishStackSpace"]=establishStackSpace;function exitOnMainThread(returnCode){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(1,0,0,returnCode);_exit(returnCode)}Module["exitOnMainThread"]=exitOnMainThread;function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return GROWABLE_HEAP_I8()[ptr>>>0];case"i8":return GROWABLE_HEAP_I8()[ptr>>>0];case"i16":return GROWABLE_HEAP_I16()[ptr>>>1>>>0];case"i32":return GROWABLE_HEAP_I32()[ptr>>>2>>>0];case"i64":abort("to do getValue(i64) use WASM_BIGINT");case"float":return GROWABLE_HEAP_F32()[ptr>>>2>>>0];case"double":return GROWABLE_HEAP_F64()[ptr>>>3>>>0];case"*":return GROWABLE_HEAP_U32()[ptr>>>2>>>0];default:abort(`invalid type for getValue: ${type}`)}}Module["getValue"]=getValue;var wasmTableMirror=[];Module["wasmTableMirror"]=wasmTableMirror;var wasmTable;Module["wasmTable"]=wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};Module["getWasmTableEntry"]=getWasmTableEntry;var invokeEntryPoint=(ptr,arg)=>{var result=getWasmTableEntry(ptr)(arg);function finish(result){if(keepRuntimeAlive()){PThread.setExitStatus(result)}else{__emscripten_thread_exit(result)}}finish(result)};Module["invokeEntryPoint"]=invokeEntryPoint;var noExitRuntime=Module["noExitRuntime"]||true;Module["noExitRuntime"]=noExitRuntime;var registerTLSInit=tlsInitFunc=>PThread.tlsInitFunctions.push(tlsInitFunc);Module["registerTLSInit"]=registerTLSInit;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":GROWABLE_HEAP_I8()[ptr>>>0]=value;break;case"i8":GROWABLE_HEAP_I8()[ptr>>>0]=value;break;case"i16":GROWABLE_HEAP_I16()[ptr>>>1>>>0]=value;break;case"i32":GROWABLE_HEAP_I32()[ptr>>>2>>>0]=value;break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":GROWABLE_HEAP_F32()[ptr>>>2>>>0]=value;break;case"double":GROWABLE_HEAP_F64()[ptr>>>3>>>0]=value;break;case"*":GROWABLE_HEAP_U32()[ptr>>>2>>>0]=value;break;default:abort(`invalid type for setValue: ${type}`)}}Module["setValue"]=setValue;function ___emscripten_init_main_thread_js(tb){tb>>>=0;__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1,!ENVIRONMENT_IS_WEB,65536,false);PThread.threadInitTLS()}Module["___emscripten_init_main_thread_js"]=___emscripten_init_main_thread_js;function ___emscripten_thread_cleanup(thread){thread>>>=0;if(!ENVIRONMENT_IS_PTHREAD)cleanupThread(thread);else postMessage({"cmd":"cleanupThread","thread":thread})}Module["___emscripten_thread_cleanup"]=___emscripten_thread_cleanup;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)}Module["pthreadCreateProxied"]=pthreadCreateProxied;function ___pthread_create_js(pthread_ptr,attr,startRoutine,arg){pthread_ptr>>>=0;attr>>>=0;startRoutine>>>=0;arg>>>=0;if(typeof SharedArrayBuffer=="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");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:startRoutine,pthread_ptr:pthread_ptr,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}Module["___pthread_create_js"]=___pthread_create_js;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.substr(-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.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};Module["PATH"]=PATH;var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>(view.set(crypto.getRandomValues(new Uint8Array(view.byteLength))),view)}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");var randomFillSync=crypto_module["randomFillSync"];if(randomFillSync){return view=>crypto_module["randomFillSync"](view)}var randomBytes=crypto_module["randomBytes"];return view=>(view.set(randomBytes(view.byteLength)),view)}catch(e){}}abort("initRandomDevice")};Module["initRandomFill"]=initRandomFill;var randomFill=view=>(randomFill=initRandomFill())(view);Module["randomFill"]=randomFill;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).substr(1);to=PATH_FS.resolve(to).substr(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{idx>>>=0;var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.buffer instanceof SharedArrayBuffer?heapOrArray.slice(idx,endPtr):heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};Module["UTF8ArrayToString"]=UTF8ArrayToString;var FS_stdin_getChar_buffer=[];Module["FS_stdin_getChar_buffer"]=FS_stdin_getChar_buffer;var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};Module["lengthBytesUTF8"]=lengthBytesUTF8;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=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}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}}heap[outIdx>>>0]=0;return outIdx-startIdx};Module["stringToUTF8Array"]=stringToUTF8Array;function 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}Module["intArrayFromString"]=intArrayFromString;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)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};Module["FS_stdin_getChar"]=FS_stdin_getChar;var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops: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,0));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,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};Module["TTY"]=TTY;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;Module["alignMemory"]=alignMemory;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;return zeroMemory(ptr,size)};Module["mmapAlloc"]=mmapAlloc;var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,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,allocate:MEMFS.stream_ops.allocate,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.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}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.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink(parent,name){delete parent.contents[name];parent.timestamp=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.timestamp=Date.now()},readdir(node){var entries=[".",".."];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},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:ptr,allocated:allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};Module["MEMFS"]=MEMFS;var asyncLoad=(url,onload,onerror,noRunDep)=>{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url,arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)};Module["asyncLoad"]=asyncLoad;var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};Module["FS_createDataFile"]=FS_createDataFile;var preloadPlugins=Module["preloadPlugins"]||[];Module["preloadPlugins"]=preloadPlugins;var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};Module["FS_handledByPreloadPlugin"]=FS_handledByPreloadPlugin;var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,processData,onerror)}else{processData(url)}};Module["FS_createPreloadedFile"]=FS_createPreloadedFile;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};Module["FS_modeStringToFlags"]=FS_modeStringToFlags;var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};Module["FS_getMode"]=FS_getMode;var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:class{constructor(errno){this.name="ErrnoError";this.errno=errno}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.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{constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev;this.readMode=292|73;this.writeMode=146}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={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},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>>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){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){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},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},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)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},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:type,opts:opts,mountpoint: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);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];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||name==="."||name===".."){throw new FS.ErrnoError(28)}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)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;iFS.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});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){randomLeft=randomFill(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",16384|511,73);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}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}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(){[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""});FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init(input,output,error){FS.init.initialized=true;Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit(){FS.init.initialized=false;for(var i=0;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))throw new Error("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)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("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))throw new Error("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")throw new Error("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(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"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: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={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];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,GROWABLE_HEAP_I8(),ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};Module["FS"]=FS;var UTF8ToString=(ptr,maxBytesToRead)=>{ptr>>>=0;return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):""};Module["UTF8ToString"]=UTF8ToString;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 PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);GROWABLE_HEAP_I32()[buf>>>2>>>0]=stat.dev;GROWABLE_HEAP_I32()[buf+4>>>2>>>0]=stat.mode;GROWABLE_HEAP_U32()[buf+8>>>2>>>0]=stat.nlink;GROWABLE_HEAP_I32()[buf+12>>>2>>>0]=stat.uid;GROWABLE_HEAP_I32()[buf+16>>>2>>>0]=stat.gid;GROWABLE_HEAP_I32()[buf+20>>>2>>>0]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],GROWABLE_HEAP_I32()[buf+24>>>2>>>0]=tempI64[0],GROWABLE_HEAP_I32()[buf+28>>>2>>>0]=tempI64[1];GROWABLE_HEAP_I32()[buf+32>>>2>>>0]=4096;GROWABLE_HEAP_I32()[buf+36>>>2>>>0]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],GROWABLE_HEAP_I32()[buf+40>>>2>>>0]=tempI64[0],GROWABLE_HEAP_I32()[buf+44>>>2>>>0]=tempI64[1];GROWABLE_HEAP_U32()[buf+48>>>2>>>0]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],GROWABLE_HEAP_I32()[buf+56>>>2>>>0]=tempI64[0],GROWABLE_HEAP_I32()[buf+60>>>2>>>0]=tempI64[1];GROWABLE_HEAP_U32()[buf+64>>>2>>>0]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],GROWABLE_HEAP_I32()[buf+72>>>2>>>0]=tempI64[0],GROWABLE_HEAP_I32()[buf+76>>>2>>>0]=tempI64[1];GROWABLE_HEAP_U32()[buf+80>>>2>>>0]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],GROWABLE_HEAP_I32()[buf+88>>>2>>>0]=tempI64[0],GROWABLE_HEAP_I32()[buf+92>>>2>>>0]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=GROWABLE_HEAP_U8().slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get(){var ret=GROWABLE_HEAP_I32()[+SYSCALLS.varargs>>>2>>>0];SYSCALLS.varargs+=4;return ret},getp(){return SYSCALLS.get()},getStr(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream}};Module["SYSCALLS"]=SYSCALLS;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=SYSCALLS.get();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=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.getp();var offset=0;GROWABLE_HEAP_I16()[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}}Module["___syscall_fcntl64"]=___syscall_fcntl64;function ___syscall_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(4,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=SYSCALLS.getp();GROWABLE_HEAP_I32()[argp>>>2>>>0]=termios.c_iflag||0;GROWABLE_HEAP_I32()[argp+4>>>2>>>0]=termios.c_oflag||0;GROWABLE_HEAP_I32()[argp+8>>>2>>>0]=termios.c_cflag||0;GROWABLE_HEAP_I32()[argp+12>>>2>>>0]=termios.c_lflag||0;for(var i=0;i<32;i++){GROWABLE_HEAP_I8()[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=SYSCALLS.getp();var c_iflag=GROWABLE_HEAP_I32()[argp>>>2>>>0];var c_oflag=GROWABLE_HEAP_I32()[argp+4>>>2>>>0];var c_cflag=GROWABLE_HEAP_I32()[argp+8>>>2>>>0];var c_lflag=GROWABLE_HEAP_I32()[argp+12>>>2>>>0];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(GROWABLE_HEAP_I8()[argp+i+17>>>0])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag:c_iflag,c_oflag:c_oflag,c_cflag:c_cflag,c_lflag:c_lflag,c_cc:c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.getp();GROWABLE_HEAP_I32()[argp>>>2>>>0]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.getp();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=SYSCALLS.getp();GROWABLE_HEAP_I16()[argp>>>1>>>0]=winsize[0];GROWABLE_HEAP_I16()[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}}Module["___syscall_ioctl"]=___syscall_ioctl;function ___syscall_openat(dirfd,path,flags,varargs){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(5,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?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_openat"]=___syscall_openat;var nowIsMonotonic=1;Module["nowIsMonotonic"]=nowIsMonotonic;var __emscripten_get_now_is_monotonic=()=>nowIsMonotonic;Module["__emscripten_get_now_is_monotonic"]=__emscripten_get_now_is_monotonic;var maybeExit=()=>{if(!keepRuntimeAlive()){try{if(ENVIRONMENT_IS_PTHREAD)__emscripten_thread_exit(EXITSTATUS);else _exit(EXITSTATUS)}catch(e){handleException(e)}}};Module["maybeExit"]=maybeExit;var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};Module["callUserCallback"]=callUserCallback;function __emscripten_thread_mailbox_await(pthread_ptr){pthread_ptr>>>=0;if(typeof Atomics.waitAsync==="function"){var wait=Atomics.waitAsync(GROWABLE_HEAP_I32(),pthread_ptr>>>2,pthread_ptr);wait.value.then(checkMailbox);var waitingAsync=pthread_ptr+128;Atomics.store(GROWABLE_HEAP_I32(),waitingAsync>>>2,1)}}Module["__emscripten_thread_mailbox_await"]=__emscripten_thread_mailbox_await;var checkMailbox=()=>{var pthread_ptr=_pthread_self();if(pthread_ptr){__emscripten_thread_mailbox_await(pthread_ptr);callUserCallback(__emscripten_check_mailbox)}};Module["checkMailbox"]=checkMailbox;function __emscripten_notify_mailbox_postmessage(targetThreadId,currThreadId,mainThreadId){targetThreadId>>>=0;currThreadId>>>=0;mainThreadId>>>=0;if(targetThreadId==currThreadId){setTimeout(checkMailbox)}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"checkMailbox"})}else{var worker=PThread.pthreads[targetThreadId];if(!worker){return}worker.postMessage({"cmd":"checkMailbox"})}}Module["__emscripten_notify_mailbox_postmessage"]=__emscripten_notify_mailbox_postmessage;var proxiedJSCallArgs=[];Module["proxiedJSCallArgs"]=proxiedJSCallArgs;function __emscripten_receive_on_main_thread_js(funcIndex,emAsmAddr,callingThread,numCallArgs,args){emAsmAddr>>>=0;callingThread>>>=0;args>>>=0;proxiedJSCallArgs.length=numCallArgs;var b=args>>>3;for(var i=0;i>>0]}var func=emAsmAddr?ASM_CONSTS[emAsmAddr]:proxiedFunctionTable[funcIndex];PThread.currentProxiedOperationCallerThread=callingThread;var rtn=func(...proxiedJSCallArgs);PThread.currentProxiedOperationCallerThread=0;return rtn}Module["__emscripten_receive_on_main_thread_js"]=__emscripten_receive_on_main_thread_js;function __emscripten_thread_set_strongref(thread){thread>>>=0;if(ENVIRONMENT_IS_NODE){PThread.pthreads[thread].ref()}}Module["__emscripten_thread_set_strongref"]=__emscripten_thread_set_strongref;function __mmap_js(len,prot,flags,fd,offset_low,offset_high,allocated,addr){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(6,0,1,len,prot,flags,fd,offset_low,offset_high,allocated,addr);len>>>=0;var offset=convertI32PairToI53Checked(offset_low,offset_high);allocated>>>=0;addr>>>=0;try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;GROWABLE_HEAP_I32()[allocated>>>2>>>0]=res.allocated;GROWABLE_HEAP_U32()[addr>>>2>>>0]=ptr;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["__mmap_js"]=__mmap_js;function __munmap_js(addr,len,prot,flags,fd,offset_low,offset_high){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(7,0,1,addr,len,prot,flags,fd,offset_low,offset_high);addr>>>=0;len>>>=0;var offset=convertI32PairToI53Checked(offset_low,offset_high);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}}Module["__munmap_js"]=__munmap_js;var _abort=()=>{abort("")};Module["_abort"]=_abort;var readEmAsmArgsArray=[];Module["readEmAsmArgsArray"]=readEmAsmArgsArray;var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=GROWABLE_HEAP_U8()[sigPtr++>>>0]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?GROWABLE_HEAP_U32()[buf>>>2>>>0]:ch==105?GROWABLE_HEAP_I32()[buf>>>2>>>0]:GROWABLE_HEAP_F64()[buf>>>3>>>0]);buf+=wide?8:4}return readEmAsmArgsArray};Module["readEmAsmArgs"]=readEmAsmArgs;var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};Module["runEmAsmFunction"]=runEmAsmFunction;function _emscripten_asm_const_int(code,sigPtr,argbuf){code>>>=0;sigPtr>>>=0;argbuf>>>=0;return runEmAsmFunction(code,sigPtr,argbuf)}Module["_emscripten_asm_const_int"]=_emscripten_asm_const_int;var warnOnce=text=>{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};Module["warnOnce"]=warnOnce;var _emscripten_check_blocking_allowed=()=>{};Module["_emscripten_check_blocking_allowed"]=_emscripten_check_blocking_allowed;var _emscripten_date_now=()=>Date.now();Module["_emscripten_date_now"]=_emscripten_date_now;var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};Module["runtimeKeepalivePush"]=runtimeKeepalivePush;var _emscripten_exit_with_live_runtime=()=>{runtimeKeepalivePush();throw"unwind"};Module["_emscripten_exit_with_live_runtime"]=_emscripten_exit_with_live_runtime;var _emscripten_get_now;_emscripten_get_now=()=>performance.timeOrigin+performance.now();Module["_emscripten_get_now"]=_emscripten_get_now;var getHeapMax=()=>4294901760;Module["getHeapMax"]=getHeapMax;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};Module["growMemory"]=growMemory;function _emscripten_resize_heap(requestedSize){requestedSize>>>=0;var oldSize=GROWABLE_HEAP_U8().length;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;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,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false}Module["_emscripten_resize_heap"]=_emscripten_resize_heap;var ENV={};Module["ENV"]=ENV;var getExecutableName=()=>thisProgram||"./this.program";Module["getExecutableName"]=getExecutableName;var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"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};Module["getEnvStrings"]=getEnvStrings;var stringToAscii=(str,buffer)=>{for(var i=0;i>>0]=str.charCodeAt(i)}GROWABLE_HEAP_I8()[buffer>>>0]=0};Module["stringToAscii"]=stringToAscii;var _environ_get=function(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(8,0,1,__environ,environ_buf);__environ>>>=0;environ_buf>>>=0;var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;GROWABLE_HEAP_U32()[__environ+i*4>>>2>>>0]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};Module["_environ_get"]=_environ_get;var _environ_sizes_get=function(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(9,0,1,penviron_count,penviron_buf_size);penviron_count>>>=0;penviron_buf_size>>>=0;var strings=getEnvStrings();GROWABLE_HEAP_U32()[penviron_count>>>2>>>0]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);GROWABLE_HEAP_U32()[penviron_buf_size>>>2>>>0]=bufSize;return 0};Module["_environ_sizes_get"]=_environ_sizes_get;function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(10,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}}Module["_fd_close"]=_fd_close;var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>>2>>>0];var len=GROWABLE_HEAP_U32()[iov+4>>>2>>>0];iov+=8;var curr=FS.read(stream,GROWABLE_HEAP_I8(),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);GROWABLE_HEAP_U32()[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}Module["_fd_read"]=_fd_read;function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(12,0,1,fd,offset_low,offset_high,whence,newOffset);var offset=convertI32PairToI53Checked(offset_low,offset_high);newOffset>>>=0;try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],GROWABLE_HEAP_I32()[newOffset>>>2>>>0]=tempI64[0],GROWABLE_HEAP_I32()[newOffset+4>>>2>>>0]=tempI64[1];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}}Module["_fd_seek"]=_fd_seek;var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>>2>>>0];var len=GROWABLE_HEAP_U32()[iov+4>>>2>>>0];iov+=8;var curr=FS.write(stream,GROWABLE_HEAP_I8(),ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!=="undefined"){offset+=curr}}return ret};Module["doWritev"]=doWritev;function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(13,0,1,fd,iov,iovcnt,pnum);iov>>>=0;iovcnt>>>=0;pnum>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);GROWABLE_HEAP_U32()[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}Module["_fd_write"]=_fd_write;function _getentropy(buffer,size){buffer>>>=0;size>>>=0;randomFill(GROWABLE_HEAP_U8().subarray(buffer>>>0,buffer+size>>>0));return 0}Module["_getentropy"]=_getentropy;var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);Module["isLeapYear"]=isLeapYear;var arraySum=(array,index)=>{var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum};Module["arraySum"]=arraySum;var MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];Module["MONTH_DAYS_LEAP"]=MONTH_DAYS_LEAP;var MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];Module["MONTH_DAYS_REGULAR"]=MONTH_DAYS_REGULAR;var addDays=(date,days)=>{var newDate=new Date(date.getTime());while(days>0){var leap=isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate};Module["addDays"]=addDays;var writeArrayToMemory=(array,buffer)=>{GROWABLE_HEAP_I8().set(array,buffer>>>0)};Module["writeArrayToMemory"]=writeArrayToMemory;function _strftime(s,maxsize,format,tm){s>>>=0;maxsize>>>=0;format>>>=0;tm>>>=0;var tm_zone=GROWABLE_HEAP_U32()[tm+40>>>2>>>0];var date={tm_sec:GROWABLE_HEAP_I32()[tm>>>2>>>0],tm_min:GROWABLE_HEAP_I32()[tm+4>>>2>>>0],tm_hour:GROWABLE_HEAP_I32()[tm+8>>>2>>>0],tm_mday:GROWABLE_HEAP_I32()[tm+12>>>2>>>0],tm_mon:GROWABLE_HEAP_I32()[tm+16>>>2>>>0],tm_year:GROWABLE_HEAP_I32()[tm+20>>>2>>>0],tm_wday:GROWABLE_HEAP_I32()[tm+24>>>2>>>0],tm_yday:GROWABLE_HEAP_I32()[tm+28>>>2>>>0],tm_isdst:GROWABLE_HEAP_I32()[tm+32>>>2>>>0],tm_gmtoff:GROWABLE_HEAP_I32()[tm+36>>>2>>>0],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}return thisDate.getFullYear()}return thisDate.getFullYear()-1}var EXPANSION_RULES_2={"%a":date=>WEEKDAYS[date.tm_wday].substring(0,3),"%A":date=>WEEKDAYS[date.tm_wday],"%b":date=>MONTHS[date.tm_mon].substring(0,3),"%B":date=>MONTHS[date.tm_mon],"%C":date=>{var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":date=>leadingNulls(date.tm_mday,2),"%e":date=>leadingSomething(date.tm_mday,2," "),"%g":date=>getWeekBasedYear(date).toString().substring(2),"%G":getWeekBasedYear,"%H":date=>leadingNulls(date.tm_hour,2),"%I":date=>{var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":date=>leadingNulls(date.tm_mday+arraySum(isLeapYear(date.tm_year+1900)?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR,date.tm_mon-1),3),"%m":date=>leadingNulls(date.tm_mon+1,2),"%M":date=>leadingNulls(date.tm_min,2),"%n":()=>"\n","%p":date=>{if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":date=>leadingNulls(date.tm_sec,2),"%t":()=>"\t","%u":date=>date.tm_wday||7,"%U":date=>{var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":date=>{var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":date=>date.tm_wday,"%W":date=>{var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":date=>(date.tm_year+1900).toString().substring(2),"%Y":date=>date.tm_year+1900,"%z":date=>{var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":date=>date.tm_zone,"%%":()=>"%"};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}Module["_strftime"]=_strftime;function _strftime_l(s,maxsize,format,tm,loc){s>>>=0;maxsize>>>=0;format>>>=0;tm>>>=0;loc>>>=0;return _strftime(s,maxsize,format,tm)}Module["_strftime_l"]=_strftime_l;var getCFunc=ident=>{var func=Module["_"+ident];return func};Module["getCFunc"]=getCFunc;var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite);Module["stringToUTF8"]=stringToUTF8;var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};Module["stringToUTF8OnStack"]=stringToUTF8OnStack;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==="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)};Module["cwrap"]=cwrap;var FS_unlink=path=>FS.unlink(path);Module["FS_unlink"]=FS_unlink;PThread.init();FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;var proxiedFunctionTable=[_proc_exit,exitOnMainThread,pthreadCreateProxied,___syscall_fcntl64,___syscall_ioctl,___syscall_openat,__mmap_js,__munmap_js,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];var wasmImports={x:___emscripten_init_main_thread_js,g:___emscripten_thread_cleanup,u:___pthread_create_js,e:___syscall_fcntl64,C:___syscall_ioctl,j:___syscall_openat,m:__emscripten_get_now_is_monotonic,s:__emscripten_notify_mailbox_postmessage,v:__emscripten_receive_on_main_thread_js,w:__emscripten_thread_mailbox_await,l:__emscripten_thread_set_strongref,n:__mmap_js,o:__munmap_js,b:_abort,d:_emscripten_asm_const_int,h:_emscripten_check_blocking_allowed,f:_emscripten_date_now,k:_emscripten_exit_with_live_runtime,c:_emscripten_get_now,t:_emscripten_resize_heap,y:_environ_get,z:_environ_sizes_get,D:_exit,i:_fd_close,B:_fd_read,p:_fd_seek,A:_fd_write,q:_getentropy,a:wasmMemory||Module["wasmMemory"],r:_strftime_l};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["E"])();var _wllama_start=Module["_wllama_start"]=()=>(_wllama_start=Module["_wllama_start"]=wasmExports["F"])();var _wllama_action=Module["_wllama_action"]=(a0,a1)=>(_wllama_action=Module["_wllama_action"]=wasmExports["G"])(a0,a1);var _wllama_exit=Module["_wllama_exit"]=()=>(_wllama_exit=Module["_wllama_exit"]=wasmExports["H"])();var _wllama_debug=Module["_wllama_debug"]=()=>(_wllama_debug=Module["_wllama_debug"]=wasmExports["I"])();var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["J"])(a0,a1);var _pthread_self=Module["_pthread_self"]=()=>(_pthread_self=Module["_pthread_self"]=wasmExports["K"])();var __emscripten_tls_init=Module["__emscripten_tls_init"]=()=>(__emscripten_tls_init=Module["__emscripten_tls_init"]=wasmExports["L"])();var _emscripten_builtin_memalign=(a0,a1)=>(_emscripten_builtin_memalign=wasmExports["M"])(a0,a1);var __emscripten_thread_init=Module["__emscripten_thread_init"]=(a0,a1,a2,a3,a4,a5)=>(__emscripten_thread_init=Module["__emscripten_thread_init"]=wasmExports["O"])(a0,a1,a2,a3,a4,a5);var __emscripten_thread_crashed=Module["__emscripten_thread_crashed"]=()=>(__emscripten_thread_crashed=Module["__emscripten_thread_crashed"]=wasmExports["P"])();var _emscripten_main_thread_process_queued_calls=()=>(_emscripten_main_thread_process_queued_calls=wasmExports["Q"])();var _emscripten_main_runtime_thread_id=()=>(_emscripten_main_runtime_thread_id=wasmExports["R"])();var __emscripten_run_on_main_thread_js=(a0,a1,a2,a3,a4)=>(__emscripten_run_on_main_thread_js=wasmExports["S"])(a0,a1,a2,a3,a4);var __emscripten_thread_free_data=a0=>(__emscripten_thread_free_data=wasmExports["T"])(a0);var __emscripten_thread_exit=Module["__emscripten_thread_exit"]=a0=>(__emscripten_thread_exit=Module["__emscripten_thread_exit"]=wasmExports["U"])(a0);var __emscripten_check_mailbox=()=>(__emscripten_check_mailbox=wasmExports["V"])();var ___trap=()=>(___trap=wasmExports["W"])();var setTempRet0=a0=>(setTempRet0=wasmExports["X"])(a0);var _emscripten_stack_set_limits=(a0,a1)=>(_emscripten_stack_set_limits=wasmExports["Y"])(a0,a1);var stackSave=()=>(stackSave=wasmExports["Z"])();var stackRestore=a0=>(stackRestore=wasmExports["_"])(a0);var stackAlloc=a0=>(stackAlloc=wasmExports["$"])(a0);var dynCall_jiji=Module["dynCall_jiji"]=(a0,a1,a2,a3,a4)=>(dynCall_jiji=Module["dynCall_jiji"]=wasmExports["aa"])(a0,a1,a2,a3,a4);var dynCall_viij=Module["dynCall_viij"]=(a0,a1,a2,a3,a4)=>(dynCall_viij=Module["dynCall_viij"]=wasmExports["ba"])(a0,a1,a2,a3,a4);var dynCall_viijii=Module["dynCall_viijii"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_viijii=Module["dynCall_viijii"]=wasmExports["ca"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_iiiiij=Module["dynCall_iiiiij"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_iiiiij=Module["dynCall_iiiiij"]=wasmExports["da"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=wasmExports["ea"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=wasmExports["fa"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_p=f=>()=>f()>>>0;var makeWrapper_ppp=f=>(a0,a1)=>f(a0,a1)>>>0;var makeWrapper_pp=f=>a0=>f(a0)>>>0;wasmExports["K"]=makeWrapper_p(wasmExports["K"]);wasmExports["M"]=makeWrapper_ppp(wasmExports["M"]);wasmExports["R"]=makeWrapper_p(wasmExports["R"]);wasmExports["Z"]=makeWrapper_p(wasmExports["Z"]);wasmExports["$"]=makeWrapper_pp(wasmExports["$"]);return wasmExports}Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["wasmMemory"]=wasmMemory;Module["keepRuntimeAlive"]=keepRuntimeAlive;Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["ExitStatus"]=ExitStatus;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_unlink"]=FS.unlink;Module["PThread"]=PThread;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};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){return}if(ENVIRONMENT_IS_PTHREAD){readyPromiseResolve(Module);initRuntime();startWorker(Module);return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); return moduleArg.ready diff --git a/src/multi-thread/wllama.wasm b/src/multi-thread/wllama.wasm index 0b1da51abf783b2624a440316c13ca8154f998a4..f3b1025e07c01831b2320f570bfd4e62de305bc2 100755 GIT binary patch literal 1596502 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⁡Cc!e6e-1ZYfe8i*^ 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
U(T@2)Jp2y;tUJHKa)irZ`w*XotV>*r4A_!(p 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