@duckdb/duckdb-wasm
Version:
DuckDB powered by WebAssembly
1 lines • 658 kB
JavaScript
"use strict";(()=>{var qe=Object.create;var Le=Object.defineProperty;var ze=Object.getOwnPropertyDescriptor;var je=Object.getOwnPropertyNames;var $e=Object.getPrototypeOf,Xe=Object.prototype.hasOwnProperty;var J=(m=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(m,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):m)(function(m){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+m+'" is not supported')});var $=(m,e)=>()=>(e||m((e={exports:{}}).exports,e),e.exports);var Je=(m,e,r,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of je(e))!Xe.call(m,n)&&n!==r&&Le(m,n,{get:()=>e[n],enumerable:!(t=ze(e,n))||t.enumerable});return m};var be=(m,e,r)=>(r=m!=null?qe($e(m)):{},Je(e||!m||!m.__esModule?Le(r,"default",{value:m,enumerable:!0}):r,m));var te=$(()=>{});var Z=$(()=>{});var le=$(()=>{});var Me=$(()=>{});var ce=$(()=>{});var ue=$((hr,Re)=>{"use strict";Re.exports=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")}});var Pe=$((exports,module)=>{"use strict";var DuckDB=(()=>{var m;var _scriptDir=typeof document<"u"?(m=document.currentScript)==null?void 0:m.src:void 0;return typeof __filename<"u"&&(_scriptDir||(_scriptDir=__filename)),function(moduleArg={}){function GROWABLE_HEAP_I8(){return wasmMemory.buffer!=HEAP8.buffer&&updateMemoryViews(),HEAP8}function GROWABLE_HEAP_U8(){return wasmMemory.buffer!=HEAP8.buffer&&updateMemoryViews(),HEAPU8}function GROWABLE_HEAP_I16(){return wasmMemory.buffer!=HEAP8.buffer&&updateMemoryViews(),HEAP16}function GROWABLE_HEAP_U16(){return wasmMemory.buffer!=HEAP8.buffer&&updateMemoryViews(),HEAPU16}function GROWABLE_HEAP_I32(){return wasmMemory.buffer!=HEAP8.buffer&&updateMemoryViews(),HEAP32}function GROWABLE_HEAP_U32(){return wasmMemory.buffer!=HEAP8.buffer&&updateMemoryViews(),HEAPU32}function GROWABLE_HEAP_F32(){return wasmMemory.buffer!=HEAP8.buffer&&updateMemoryViews(),HEAPF32}function GROWABLE_HEAP_F64(){return wasmMemory.buffer!=HEAP8.buffer&&updateMemoryViews(),HEAPF64}var Module=moduleArg,readyPromiseResolve,readyPromiseReject,readyPromise=new Promise((e,r)=>{readyPromiseResolve=e,readyPromiseReject=r}),moduleOverrides=Object.assign({},Module),arguments_=[],thisProgram="./this.program",quit_=(e,r)=>{throw r},ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_PTHREAD=Module.ENVIRONMENT_IS_PTHREAD||!1,scriptDirectory="";function locateFile(e){return Module.locateFile?Module.locateFile(e,scriptDirectory):scriptDirectory+e}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=Z(),nodePath=le();ENVIRONMENT_IS_WORKER?scriptDirectory=nodePath.dirname(scriptDirectory)+"/":scriptDirectory=__dirname+"/",read_=(e,r)=>(e=isFileURI(e)?new URL(e):nodePath.normalize(e),fs.readFileSync(e,r?void 0:"utf8")),readBinary=e=>{var r=read_(e,!0);return r.buffer||(r=new Uint8Array(r)),r},readAsync=(e,r,t,n=!0)=>{e=isFileURI(e)?new URL(e):nodePath.normalize(e),fs.readFile(e,n?void 0:"utf8",(a,_)=>{a?t(a):r(n?_.buffer:_)})},!Module.thisProgram&&process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),arguments_=process.argv.slice(2),quit_=(e,r)=>{throw process.exitCode=e,r},global.Worker=te().Worker}else(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&(ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:typeof document<"u"&&document.currentScript&&(scriptDirectory=document.currentScript.src),_scriptDir&&(scriptDirectory=_scriptDir),scriptDirectory.startsWith("blob:")?scriptDirectory="":scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1),ENVIRONMENT_IS_NODE||(read_=e=>{var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},ENVIRONMENT_IS_WORKER&&(readBinary=e=>{var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),readAsync=(e,r,t)=>{var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=()=>{if(n.status==200||n.status==0&&n.response){r(n.response);return}t()},n.onerror=t,n.send(null)}));ENVIRONMENT_IS_NODE&&typeof performance>"u"&&(global.performance=Me().performance);var defaultPrint=console.log.bind(console),defaultPrintErr=console.error.bind(console);ENVIRONMENT_IS_NODE&&(defaultPrint=(...e)=>fs.writeSync(1,e.join(" ")+"\n"),defaultPrintErr=(...e)=>fs.writeSync(2,e.join(" ")+"\n"));var out=Module.print||defaultPrint,err=Module.printErr||defaultPrintErr;Object.assign(Module,moduleOverrides),moduleOverrides=null,Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram),Module.quit&&(quit_=Module.quit);var dynamicLibraries=Module.dynamicLibraries||[],wasmBinary;Module.wasmBinary&&(wasmBinary=Module.wasmBinary);var wasmMemory,wasmModule,ABORT=!1,EXITSTATUS;function assert(e,r){e||abort(r)}var HEAP,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var e=wasmMemory.buffer;Module.HEAP8=HEAP8=new Int8Array(e),Module.HEAP16=HEAP16=new Int16Array(e),Module.HEAPU8=HEAPU8=new Uint8Array(e),Module.HEAPU16=HEAPU16=new Uint16Array(e),Module.HEAP32=HEAP32=new Int32Array(e),Module.HEAPU32=HEAPU32=new Uint32Array(e),Module.HEAPF32=HEAPF32=new Float32Array(e),Module.HEAPF64=HEAPF64=new Float64Array(e)}var INITIAL_MEMORY=Module.INITIAL_MEMORY||16777216;if(ENVIRONMENT_IS_PTHREAD)wasmMemory=Module.wasmMemory;else if(Module.wasmMemory)wasmMemory=Module.wasmMemory;else if(wasmMemory=new WebAssembly.Memory({initial:INITIAL_MEMORY/65536,maximum:65536,shared:!0}),!(wasmMemory.buffer instanceof SharedArrayBuffer))throw 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"),ENVIRONMENT_IS_NODE&&err("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");updateMemoryViews(),INITIAL_MEMORY=wasmMemory.buffer.byteLength;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],__RELOC_FUNCS__=[],runtimeInitialized=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=!0,!ENVIRONMENT_IS_PTHREAD&&(callRuntimeCallbacks(__RELOC_FUNCS__),!Module.noFSInit&&!FS.init.initialized&&FS.init(),FS.ignorePermissions=!1,TTY.init(),SOCKFS.root=FS.mount(SOCKFS,{},null),PIPEFS.root=FS.mount(PIPEFS,{},null),callRuntimeCallbacks(__ATINIT__))}function preMain(){ENVIRONMENT_IS_PTHREAD||callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(!ENVIRONMENT_IS_PTHREAD){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnInit(e){__ATINIT__.unshift(e)}function addOnPreMain(e){__ATMAIN__.unshift(e)}function addOnExit(e){}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}var runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(e){return e}function addRunDependency(e){var r;runDependencies++,(r=Module.monitorRunDependencies)==null||r.call(Module,runDependencies)}function removeRunDependency(e){var t;if(runDependencies--,(t=Module.monitorRunDependencies)==null||t.call(Module,runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var r=dependenciesFulfilled;dependenciesFulfilled=null,r()}}function abort(e){var t;(t=Module.onAbort)==null||t.call(Module,e),e="Aborted("+e+")",err(e),ABORT=!0,EXITSTATUS=1,e+=". Build with -sASSERTIONS for more info.",runtimeInitialized&&___trap();var r=new WebAssembly.RuntimeError(e);throw readyPromiseReject(r),r}var dataURIPrefix="data:application/octet-stream;base64,",isDataURI=e=>e.startsWith(dataURIPrefix),isFileURI=e=>e.startsWith("file://"),wasmBinaryFile;wasmBinaryFile="./duckdb-coi.wasm",isDataURI(wasmBinaryFile)||(wasmBinaryFile=locateFile(wasmBinaryFile));function getBinarySync(e){if(e==wasmBinaryFile&&wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(e);throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(e){return!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch=="function"?fetch(e,{credentials:"same-origin"}).then(r=>{if(!r.ok)throw"failed to load wasm binary file at '".concat(e,"'");return r.arrayBuffer()}).catch(()=>getBinarySync(e)):Promise.resolve().then(()=>getBinarySync(e))}function instantiateArrayBuffer(e,r,t){return getBinaryPromise(e).then(n=>WebAssembly.instantiate(n,r)).then(t,n=>{err("failed to asynchronously prepare wasm: ".concat(n)),abort(n)})}function instantiateAsync(e,r,t,n){return!e&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(r)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"?fetch(r,{credentials:"same-origin"}).then(a=>{var _=WebAssembly.instantiateStreaming(a,t);return _.then(n,function(o){return err("wasm streaming compile failed: ".concat(o)),err("falling back to ArrayBuffer instantiation"),instantiateArrayBuffer(r,t,n)})}):instantiateArrayBuffer(r,t,n)}function createWasm(){var e={env:wasmImports,wasi_snapshot_preview1:wasmImports,"GOT.mem":new Proxy(wasmImports,GOTHandler),"GOT.func":new Proxy(wasmImports,GOTHandler)};function r(n,a){wasmExports=n.exports,wasmExports=relocateExports(wasmExports,1024);var _=getDylinkMetadata(a);return _.neededDynlibs&&(dynamicLibraries=_.neededDynlibs.concat(dynamicLibraries)),mergeLibSymbols(wasmExports,"main"),LDSO.init(),loadDylibs(),wasmExports=applySignatureConversions(wasmExports),registerTLSInit(wasmExports._emscripten_tls_init,n.exports,_),addOnInit(wasmExports.__wasm_call_ctors),__RELOC_FUNCS__.push(wasmExports.__wasm_apply_data_relocs),wasmModule=a,removeRunDependency("wasm-instantiate"),wasmExports}addRunDependency("wasm-instantiate");function t(n){r(n.instance,n.module)}if(Module.instantiateWasm)try{return Module.instantiateWasm(e,r)}catch(n){err("Module.instantiateWasm callback failed with error: ".concat(n)),readyPromiseReject(n)}return instantiateAsync(wasmBinary,wasmBinaryFile,e,t).catch(readyPromiseReject),{}}var tempDouble,tempI64,ASM_CONSTS={2318920:(e,r)=>{var t=typeof runtime=="object"&&runtime&&typeof runtime.whereToLoad=="function"&&runtime.whereToLoad?runtime.whereToLoad(UTF8ToString(e)):UTF8ToString(r),n=lengthBytesUTF8(t)+1,a=_malloc(n);return stringToUTF8(t,a,n),a},2319286:(e,r)=>{var t=UTF8ToString(e);if(typeof XMLHttpRequest>"u"){let D=ce(),h=le(),T=Z();var n=t.split("/"),a=n.length,_=h.join(D.homedir(),".duckdb/extensions/"+n[a-4]+"/"+n[a-3]+"/"+n[a-2]+"/"),o=h.join(_,n[a-1]);try{if(T.existsSync(_)||T.mkdirSync(_,{recursive:!0}),T.existsSync(o))u=T.readFileSync(o);else{let x=new Int32Array(new SharedArrayBuffer(8));var l=J("node:worker_threads").Worker,c=new l("const {Worker,isMainThread,parentPort,workerData,} = require('node:worker_threads');var times = 0;var SAB = 23;var Z = 0; async function ZZZ(e) {var x = await fetch(e);var res = await x.arrayBuffer();Atomics.store(SAB, 1, res.byteLength);Atomics.store(SAB, 0, 1);Atomics.notify(SAB, 1);Atomics.notify(SAB, 0);Z = res;};parentPort.on('message', function(event) {if (times == 0) {times++;SAB = event;} else if (times == 1) {times++; ZZZ(event);} else {const a = new Uint8Array(Z);const b = new Uint8Array(event.buffer);var K = Z.byteLength;for (var i = 0; i < K; i++) {b[i] = a[i];}Atomics.notify(event, 0);Atomics.store(SAB, 0, 2);Atomics.notify(SAB, 0);}});",{eval:!0}),u;x[0]=0,x[2]=4,c.postMessage(x),c.postMessage(t),Atomics.wait(x,0,0);let S=new Int32Array(new SharedArrayBuffer(x[1]+3-(x[1]+3)%4));c.postMessage(S),Atomics.wait(x,0,1);var d=new Uint8Array(S.buffer,0,x[1]);u=d,c.terminate(),T.writeFileSync(o,u)}}catch(x){return console.log("Error fetching module",x),0}}else{let D=new XMLHttpRequest;if(D.open("GET",t,!1),D.responseType="arraybuffer",D.send(null),D.status!=200)return 0;u=D.response}for(var p=WebAssembly.validate(u),f=u.byteLength,g=_malloc(f+4),E=new Uint8Array(u),v=0;v<f;v++)Module.HEAPU8[v+g+4]=E[v];var b=new Uint8Array(4);return b[0]=f%256,f-=b[0],f/=256,b[1]=f%256,f-=b[1],f/=256,b[2]=f%256,f-=b[2],f/=256,b[3]=f%256,f-=b[3],f/=256,Module.HEAPU8.set(b,g),FS.writeFile(UTF8ToString(r),new Uint8Array(u)),g},2321927:e=>{if(!e)return AL.alcErr=40964,1},2321975:e=>{if(!AL.currentCtx)return err("alGetProcAddress() called without a valid context"),1;if(!e)return AL.currentCtx.err=40963,1}};function ExitStatus(e){this.name="ExitStatus",this.message="Program terminated with exit(".concat(e,")"),this.status=e}var GOT={},currentModuleWeakSymbols=new Set([]),GOTHandler={get(e,r){var t=GOT[r];return t||(t=GOT[r]=new WebAssembly.Global({value:"i32",mutable:!0})),currentModuleWeakSymbols.has(r)||(t.required=!0),t}},terminateWorker=e=>{e.terminate(),e.onmessage=r=>{}},killThread=e=>{var r=PThread.pthreads[e];delete PThread.pthreads[e],terminateWorker(r),__emscripten_thread_free_data(e),PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(r),1),r.pthread_ptr=0},cancelThread=e=>{var r=PThread.pthreads[e];r.postMessage({cmd:"cancel"})},cleanupThread=e=>{var r=PThread.pthreads[e];PThread.finishedThreads.delete(e),e in PThread.outstandingPromises&&PThread.outstandingPromises[e].resolve(),PThread.returnWorkerToPool(r)},zeroMemory=(e,r)=>(GROWABLE_HEAP_U8().fill(0,e,e+r),e),markAsFinished=e=>{PThread.finishedThreads.add(e),e in PThread.outstandingPromises&&PThread.outstandingPromises[e].resolve()},spawnThread=e=>{var r=PThread.getNewWorker();if(!r)return 6;PThread.runningWorkers.push(r),PThread.pthreads[e.pthread_ptr]=r,r.pthread_ptr=e.pthread_ptr;var t={cmd:"run",start_routine:e.startRoutine,arg:e.arg,pthread_ptr:e.pthread_ptr};return ENVIRONMENT_IS_NODE&&r.unref(),r.postMessage(t,e.transferList),0},runtimeKeepaliveCounter=0,keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0,stackSave=()=>_emscripten_stack_get_current(),stackRestore=e=>__emscripten_stack_restore(e),withStackSave=e=>{var r=stackSave(),t=e();return stackRestore(r),t},stackAlloc=e=>__emscripten_stack_alloc(e),convertI32PairToI53Checked=(e,r)=>r+2097152>>>0<4194305-!!e?(e>>>0)+r*4294967296:NaN,proxyToMainThread=(e,r,t,...n)=>withStackSave(()=>{for(var a=n.length,_=stackAlloc(a*8),o=_>>>3,l=0;l<n.length;l++){var c=n[l];GROWABLE_HEAP_F64()[o+l>>>0]=c}return __emscripten_run_on_main_thread_js(e,r,a,_,t)});function _proc_exit(e){var r;if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(0,0,1,e);EXITSTATUS=e,keepRuntimeAlive()||(PThread.terminateAllThreads(),(r=Module.onExit)==null||r.call(Module,e),ABORT=!0),quit_(e,new ExitStatus(e))}_proc_exit.sig="vi";var exitJS=(e,r)=>{if(EXITSTATUS=e,ENVIRONMENT_IS_PTHREAD)throw exitOnMainThread(e),"unwind";_proc_exit(e)},_exit=exitJS;_exit.sig="vi";var handleException=e=>{if(e instanceof ExitStatus||e=="unwind")return EXITSTATUS;quit_(1,e)},PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init(){ENVIRONMENT_IS_PTHREAD?PThread.initWorker():PThread.initMainThread()},initMainThread(){for(var e=4;e--;)PThread.allocateUnusedWorker();addOnPreRun(()=>{addRunDependency("loading-workers"),PThread.loadWasmModuleToAllWorkers(()=>removeRunDependency("loading-workers"))}),PThread.outstandingPromises={},PThread.finishedThreads=new Set},initWorker(){noExitRuntime=!1},setExitStatus:e=>EXITSTATUS=e,terminateAllThreads__deps:["$terminateWorker"],terminateAllThreads:()=>{for(var e of PThread.runningWorkers)terminateWorker(e);for(var e of PThread.unusedWorkers)terminateWorker(e);PThread.unusedWorkers=[],PThread.runningWorkers=[],PThread.pthreads=[]},returnWorkerToPool:e=>{var r=e.pthread_ptr;delete PThread.pthreads[r],PThread.unusedWorkers.push(e),PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(e),1),e.pthread_ptr=0,__emscripten_thread_free_data(r)},receiveObjectTransfer(e){},threadInitTLS(){PThread.tlsInitFunctions.forEach(e=>e())},loadWasmModuleToWorker:e=>new Promise(r=>{e.onmessage=_=>{var o=_.data,l=o.cmd;if(o.targetThread&&o.targetThread!=_pthread_self()){var c=PThread.pthreads[o.targetThread];c?c.postMessage(o,o.transferList):err('Internal error! Worker sent a message "'.concat(l,'" to target pthread ').concat(o.targetThread,", but that thread no longer exists!"));return}l==="checkMailbox"?checkMailbox():l==="spawnThread"?spawnThread(o):l==="cleanupThread"?cleanupThread(o.thread):l==="markAsFinished"?markAsFinished(o.thread):l==="killThread"?killThread(o.thread):l==="cancelThread"?cancelThread(o.thread):l==="loaded"?(e.loaded=!0,ENVIRONMENT_IS_NODE&&!e.pthread_ptr&&e.unref(),r(e)):l==="alert"?alert("Thread ".concat(o.threadId,": ").concat(o.text)):o.target==="setimmediate"?e.postMessage(o):l==="callHandler"?Module[o.handler](...o.args):l&&err("worker sent an unknown command ".concat(l))},e.onerror=_=>{var o="worker sent an error!";throw err("".concat(o," ").concat(_.filename,":").concat(_.lineno,": ").concat(_.message)),_},ENVIRONMENT_IS_NODE&&(e.on("message",_=>e.onmessage({data:_})),e.on("error",_=>e.onerror(_)));var t=[],n=["onExit","onAbort","print","printErr"];for(var a of n)Module.hasOwnProperty(a)&&t.push(a);e.postMessage({cmd:"load",handlers:t,urlOrBlob:Module.mainScriptUrlOrBlob||_scriptDir,wasmMemory,wasmModule,sharedModules})}),loadWasmModuleToAllWorkers(e){if(ENVIRONMENT_IS_PTHREAD)return e();Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker)).then(e)},allocateUnusedWorker(){var e,r=locateFile("duckdb_wasm.worker.js");e=new Worker(r),PThread.unusedWorkers.push(e)},getNewWorker(){return PThread.unusedWorkers.length==0&&(PThread.allocateUnusedWorker(),PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])),PThread.unusedWorkers.pop()}};Module.PThread=PThread;var callRuntimeCallbacks=e=>{for(;e.length>0;)e.shift()(Module)},establishStackSpace=()=>{var e=_pthread_self(),r=GROWABLE_HEAP_U32()[e+52>>>2>>>0],t=GROWABLE_HEAP_U32()[e+56>>>2>>>0],n=r-t;_emscripten_stack_set_limits(r,n),stackRestore(r)};Module.establishStackSpace=establishStackSpace;function exitOnMainThread(e){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(1,0,0,e);_exit(e)}var UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,UTF8ArrayToString=(e,r,t)=>{r>>>=0;for(var n=r+t,a=r;e[a]&&!(a>=n);)++a;if(a-r>16&&e.buffer&&UTF8Decoder)return UTF8Decoder.decode(e.slice(r,a));for(var _="";r<a;){var o=e[r++];if(!(o&128)){_+=String.fromCharCode(o);continue}var l=e[r++]&63;if((o&224)==192){_+=String.fromCharCode((o&31)<<6|l);continue}var c=e[r++]&63;if((o&240)==224?o=(o&15)<<12|l<<6|c:o=(o&7)<<18|l<<12|c<<6|e[r++]&63,o<65536)_+=String.fromCharCode(o);else{var u=o-65536;_+=String.fromCharCode(55296|u>>10,56320|u&1023)}}return _},getDylinkMetadata=e=>{var r=0,t=0;function n(){return e[r++]}function a(){for(var P=0,I=1;;){var k=e[r++];if(P+=(k&127)*I,I*=128,!(k&128))break}return P}function _(){var P=a();return r+=P,UTF8ArrayToString(e,r-P,P)}function o(P,I){if(P)throw new Error(I)}var l="dylink.0";if(e instanceof WebAssembly.Module){var c=WebAssembly.Module.customSections(e,l);c.length===0&&(l="dylink",c=WebAssembly.Module.customSections(e,l)),o(c.length===0,"need dylink section"),e=new Uint8Array(c[0]),t=e.length}else{var u=new Uint32Array(new Uint8Array(e.subarray(0,24)).buffer),d=u[0]==1836278016;o(!d,"need to see wasm magic number"),o(e[8]!==0,"need the dylink section to be first"),r=9;var p=a();t=r+p,l=_()}var f={neededDynlibs:[],tlsExports:new Set,weakImports:new Set};if(l=="dylink"){f.memorySize=a(),f.memoryAlign=a(),f.tableSize=a(),f.tableAlign=a();for(var g=a(),E=0;E<g;++E){var v=_();f.neededDynlibs.push(v)}}else{o(l!=="dylink.0");for(var b=1,D=2,h=3,T=4,x=256,S=3,M=1;r<t;){var A=n(),L=a();if(A===b)f.memorySize=a(),f.memoryAlign=a(),f.tableSize=a(),f.tableAlign=a();else if(A===D)for(var g=a(),E=0;E<g;++E)v=_(),f.neededDynlibs.push(v);else if(A===h)for(var R=a();R--;){var y=_(),G=a();G&x&&f.tlsExports.add(y)}else if(A===T)for(var R=a();R--;){var w=_(),y=_(),G=a();(G&S)==M&&f.weakImports.add(y)}else r+=L}}return f};function getValue(e,r="i8"){switch(r.endsWith("*")&&(r="*"),r){case"i1":return GROWABLE_HEAP_I8()[e>>>0];case"i8":return GROWABLE_HEAP_I8()[e>>>0];case"i16":return GROWABLE_HEAP_I16()[e>>>1>>>0];case"i32":return GROWABLE_HEAP_I32()[e>>>2>>>0];case"i64":abort("to do getValue(i64) use WASM_BIGINT");case"float":return GROWABLE_HEAP_F32()[e>>>2>>>0];case"double":return GROWABLE_HEAP_F64()[e>>>3>>>0];case"*":return GROWABLE_HEAP_U32()[e>>>2>>>0];default:abort("invalid type for getValue: ".concat(r))}}var wasmTable=new WebAssembly.Table({initial:23367,element:"anyfunc"}),getWasmTableEntry=e=>wasmTable.get(e),invokeEntryPoint=(e,r)=>{runtimeKeepaliveCounter=0,__emscripten_dlsync_self();var t=getWasmTableEntry(e)(r);function n(a){keepRuntimeAlive()?PThread.setExitStatus(a):__emscripten_thread_exit(a)}n(t)};Module.invokeEntryPoint=invokeEntryPoint;var newDSO=(e,r,t)=>{var n={refcount:1/0,name:e,exports:t,global:!0};return LDSO.loadedLibsByName[e]=n,r!=null&&(LDSO.loadedLibsByHandle[r]=n),n},LDSO={loadedLibsByName:{},loadedLibsByHandle:{},init(){newDSO("__main__",0,wasmImports)}},___heap_base=2459936,alignMemory=(e,r)=>Math.ceil(e/r)*r,getMemory=e=>{if(runtimeInitialized)return zeroMemory(_malloc(e),e);var r=___heap_base,t=r+alignMemory(e,16);return ___heap_base=t,GOT.__heap_base.value=t,r},isInternalSym=e=>["__cpp_exception","__c_longjmp","__wasm_apply_data_relocs","__dso_handle","__tls_size","__tls_align","__set_stack_limits","_emscripten_tls_init","__wasm_init_tls","__wasm_call_ctors","__start_em_asm","__stop_em_asm","__start_em_js","__stop_em_js"].includes(e)||e.startsWith("__em_js__"),uleb128Encode=(e,r)=>{e<128?r.push(e):r.push(e%128|128,e>>7)},sigToWasmTypes=e=>{for(var r={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"},t={parameters:[],results:e[0]=="v"?[]:[r[e[0]]]},n=1;n<e.length;++n)t.parameters.push(r[e[n]]);return t},generateFuncType=(e,r)=>{var t=e.slice(0,1),n=e.slice(1),a={i:127,p:127,j:126,f:125,d:124,e:111};r.push(96),uleb128Encode(n.length,r);for(var _=0;_<n.length;++_)r.push(a[n[_]]);t=="v"?r.push(0):r.push(1,a[t])},convertJsFunctionToWasm=(e,r)=>{if(typeof WebAssembly.Function=="function")return new WebAssembly.Function(sigToWasmTypes(r),e);var t=[1];generateFuncType(r,t);var n=[0,97,115,109,1,0,0,0,1];uleb128Encode(t.length,n),n.push(...t),n.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var a=new WebAssembly.Module(new Uint8Array(n)),_=new WebAssembly.Instance(a,{e:{f:e}}),o=_.exports.f;return o},updateTableMap=(e,r)=>{if(functionsInTableMap)for(var t=e;t<e+r;t++){var n=getWasmTableEntry(t);n&&functionsInTableMap.set(n,t)}},functionsInTableMap,getFunctionAddress=e=>(functionsInTableMap||(functionsInTableMap=new WeakMap,updateTableMap(0,wasmTable.length)),functionsInTableMap.get(e)||0),freeTableIndexes=[],getEmptyTableSlot=()=>{if(freeTableIndexes.length)return freeTableIndexes.pop();try{wasmTable.grow(1)}catch(e){throw e instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":e}return wasmTable.length-1},setWasmTableEntry=(e,r)=>wasmTable.set(e,r),addFunction=(e,r)=>{var t=getFunctionAddress(e);if(t)return t;var n=getEmptyTableSlot();try{setWasmTableEntry(n,e)}catch(_){if(!(_ instanceof TypeError))throw _;var a=convertJsFunctionToWasm(e,r);setWasmTableEntry(n,a)}return functionsInTableMap.set(e,n),n},updateGOT=(e,r)=>{for(var t in e)if(!isInternalSym(t)){var n=e[t];t.startsWith("orig$")&&(t=t.split("$")[1],r=!0),GOT[t]||(GOT[t]=new WebAssembly.Global({value:"i32",mutable:!0})),(r||GOT[t].value==0)&&(typeof n=="function"?GOT[t].value=addFunction(n):typeof n=="number"?GOT[t].value=n:err("unhandled export type for '".concat(t,"': ").concat(typeof n)))}},relocateExports=(e,r,t)=>{var n={};for(var a in e){var _=e[a];typeof _=="object"&&(_=_.value),typeof _=="number"&&(_+=r),n[a]=_}return updateGOT(n,t),n},isSymbolDefined=e=>{var r=wasmImports[e];return!(!r||r.stub)},resolveGlobalSymbol=(e,r=!1)=>{var t;return r&&"orig$"+e in wasmImports&&(e="orig$"+e),isSymbolDefined(e)&&(t=wasmImports[e]),{sym:t,name:e}},UTF8ToString=(e,r)=>(e>>>=0,e?UTF8ArrayToString(GROWABLE_HEAP_U8(),e,r):""),loadWebAssemblyModule=(binary,flags,libName,localScope,handle)=>{var metadata=getDylinkMetadata(binary);currentModuleWeakSymbols=metadata.weakImports;function loadModule(){var firstLoad=!handle||!GROWABLE_HEAP_I8()[handle+8>>>0];if(firstLoad){var memAlign=Math.pow(2,metadata.memoryAlign),memoryBase=metadata.memorySize?alignMemory(getMemory(metadata.memorySize+memAlign),memAlign):0,tableBase=metadata.tableSize?wasmTable.length:0;handle&&(GROWABLE_HEAP_I8()[handle+8>>>0]=1,GROWABLE_HEAP_U32()[handle+12>>>2>>>0]=memoryBase,GROWABLE_HEAP_I32()[handle+16>>>2>>>0]=metadata.memorySize,GROWABLE_HEAP_U32()[handle+20>>>2>>>0]=tableBase,GROWABLE_HEAP_I32()[handle+24>>>2>>>0]=metadata.tableSize)}else memoryBase=GROWABLE_HEAP_U32()[handle+12>>>2>>>0],tableBase=GROWABLE_HEAP_U32()[handle+20>>>2>>>0];var tableGrowthNeeded=tableBase+metadata.tableSize-wasmTable.length;tableGrowthNeeded>0&&wasmTable.grow(tableGrowthNeeded);var moduleExports;function resolveSymbol(e){var r=resolveGlobalSymbol(e).sym;return!r&&localScope&&(r=localScope[e]),r||(r=moduleExports[e]),r}var proxyHandler={get(e,r){if(r.startsWith("invoke_"))return createDyncallWrapper(r.substring(7));switch(r){case"__memory_base":return memoryBase;case"__table_base":return tableBase}if(r in wasmImports&&!wasmImports[r].stub)return wasmImports[r];if(!(r in e)){var t;e[r]=(...n)=>(t||(t=resolveSymbol(r)),t(...n))}return e[r]}},proxy=new Proxy({},proxyHandler),info={"GOT.mem":new Proxy({},GOTHandler),"GOT.func":new Proxy({},GOTHandler),env:proxy,wasi_snapshot_preview1:proxy};function postInstantiation(module,instance){!ENVIRONMENT_IS_PTHREAD&&libName&&(sharedModules[libName]=module),updateTableMap(tableBase,metadata.tableSize),moduleExports=relocateExports(instance.exports,memoryBase),flags.allowUndefined||reportUndefinedSymbols();function addEmAsm(addr,body){for(var args=[],arity=0;arity<16&&body.indexOf("$"+arity)!=-1;arity++)args.push("$"+arity);args=args.join(",");var func="(".concat(args,") => { ").concat(body," };");ASM_CONSTS[start]=eval(func)}if("__start_em_asm"in moduleExports)for(var start=moduleExports.__start_em_asm,stop=moduleExports.__stop_em_asm;start<stop;){var jsString=UTF8ToString(start);addEmAsm(start,jsString),start=GROWABLE_HEAP_U8().indexOf(0,start)+1}function addEmJs(name,cSig,body){var jsArgs=[];if(cSig=cSig.slice(1,-1),cSig!="void"){cSig=cSig.split(",");for(var i in cSig){var jsArg=cSig[i].split(" ").pop();jsArgs.push(jsArg.replace("*",""))}}var func="(".concat(jsArgs,") => ").concat(body,";");moduleExports[name]=eval(func)}for(var name in moduleExports)if(name.startsWith("__em_js__")){var start=moduleExports[name],jsString=UTF8ToString(start),parts=jsString.split("<::>");addEmJs(name.replace("__em_js__",""),parts[0],parts[1]),delete moduleExports[name]}if(registerTLSInit(moduleExports._emscripten_tls_init,instance.exports,metadata),firstLoad){var applyRelocs=moduleExports.__wasm_apply_data_relocs;applyRelocs&&(runtimeInitialized?applyRelocs():__RELOC_FUNCS__.push(applyRelocs));var init=moduleExports.__wasm_call_ctors;init&&(runtimeInitialized?init():__ATINIT__.push(init))}return moduleExports}if(flags.loadAsync){if(binary instanceof WebAssembly.Module){var instance=new WebAssembly.Instance(binary,info);return Promise.resolve(postInstantiation(binary,instance))}return WebAssembly.instantiate(binary,info).then(e=>postInstantiation(e.module,e.instance))}var module=binary instanceof WebAssembly.Module?binary:new WebAssembly.Module(binary),instance=new WebAssembly.Instance(module,info);return postInstantiation(module,instance)}return flags.loadAsync?metadata.neededDynlibs.reduce((e,r)=>e.then(()=>loadDynamicLibrary(r,flags)),Promise.resolve()).then(loadModule):(metadata.neededDynlibs.forEach(e=>loadDynamicLibrary(e,flags,localScope)),loadModule())},mergeLibSymbols=(e,r)=>{for(var[t,n]of Object.entries(e))(_=>{isSymbolDefined(_)||(wasmImports[_]=n)})(t),t.startsWith("dynCall_")&&!Module.hasOwnProperty(t)&&(Module[t]=n)},asyncLoad=(e,r,t,n)=>{var a=n?"":"al ".concat(e);readAsync(e,_=>{r(new Uint8Array(_)),a&&removeRunDependency(a)},_=>{if(t)t();else throw'Loading data file "'.concat(e,'" failed.')}),a&&addRunDependency(a)},preloadPlugins=Module.preloadPlugins||[],registerWasmPlugin=()=>{var e={promiseChainEnd:Promise.resolve(),canHandle:r=>!Module.noWasmDecoding&&r.endsWith(".so"),handle:(r,t,n,a)=>{e.promiseChainEnd=e.promiseChainEnd.then(()=>loadWebAssemblyModule(r,{loadAsync:!0,nodelete:!0},t)).then(_=>{preloadedWasm[t]=_,n(r)},_=>{err("failed to instantiate wasm: ".concat(t,": ").concat(_)),a()})}};preloadPlugins.push(e)},preloadedWasm={};function loadDynamicLibrary(e,r={global:!0,nodelete:!0},t,n){var a=LDSO.loadedLibsByName[e];if(a)return r.global?a.global||(a.global=!0,mergeLibSymbols(a.exports,e)):t&&Object.assign(t,a.exports),r.nodelete&&a.refcount!==1/0&&(a.refcount=1/0),a.refcount++,n&&(LDSO.loadedLibsByHandle[n]=a),r.loadAsync?Promise.resolve(!0):!0;a=newDSO(e,n,"loading"),a.refcount=r.nodelete?1/0:1,a.global=r.global;function _(){var c=sharedModules[e];if(c)return r.loadAsync?Promise.resolve(c):c;if(n){var u=GROWABLE_HEAP_U32()[n+28>>>2>>>0],d=GROWABLE_HEAP_U32()[n+32>>>2>>>0];if(u&&d){var p=GROWABLE_HEAP_I8().slice(u,u+d);return r.loadAsync?Promise.resolve(p):p}}var f=locateFile(e);if(r.loadAsync)return new Promise(function(g,E){asyncLoad(f,g,E)});if(!readBinary)throw new Error("".concat(f,": file not found, and synchronous loading of external files is not available"));return readBinary(f)}function o(){var c=preloadedWasm[e];return c?r.loadAsync?Promise.resolve(c):c:r.loadAsync?_().then(u=>loadWebAssemblyModule(u,r,e,t,n)):loadWebAssemblyModule(_(),r,e,t,n)}function l(c){a.global?mergeLibSymbols(c,e):t&&Object.assign(t,c),a.exports=c}return r.loadAsync?o().then(c=>(l(c),!0)):(l(o()),!0)}var reportUndefinedSymbols=()=>{for(var[e,r]of Object.entries(GOT))if(r.value==0){var t=resolveGlobalSymbol(e,!0).sym;if(!t&&!r.required)continue;if(typeof t=="function")r.value=addFunction(t,t.sig);else if(typeof t=="number")r.value=t;else throw new Error("bad export type for '".concat(e,"': ").concat(typeof t))}},loadDylibs=()=>{if(!dynamicLibraries.length){reportUndefinedSymbols();return}addRunDependency("loadDylibs"),dynamicLibraries.reduce((e,r)=>e.then(()=>loadDynamicLibrary(r,{loadAsync:!0,global:!0,nodelete:!0,allowUndefined:!0})),Promise.resolve()).then(()=>{reportUndefinedSymbols(),removeRunDependency("loadDylibs")})},noExitRuntime=Module.noExitRuntime||!0,registerTLSInit=(e,r,t)=>{function n(){var a=e();if(a){var _={};t.tlsExports.forEach(o=>_[o]=r[o]),relocateExports(_,a,!0)}}PThread.tlsInitFunctions.push(n),runtimeInitialized&&n()};function setValue(e,r,t="i8"){switch(t.endsWith("*")&&(t="*"),t){case"i1":GROWABLE_HEAP_I8()[e>>>0]=r;break;case"i8":GROWABLE_HEAP_I8()[e>>>0]=r;break;case"i16":GROWABLE_HEAP_I16()[e>>>1>>>0]=r;break;case"i32":GROWABLE_HEAP_I32()[e>>>2>>>0]=r;break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":GROWABLE_HEAP_F32()[e>>>2>>>0]=r;break;case"double":GROWABLE_HEAP_F64()[e>>>3>>>0]=r;break;case"*":GROWABLE_HEAP_U32()[e>>>2>>>0]=r;break;default:abort("invalid type for setValue: ".concat(t))}}function ___assert_fail(e,r,t,n){e>>>=0,r>>>=0,n>>>=0,abort("Assertion failed: ".concat(UTF8ToString(e),", at: ")+[r?UTF8ToString(r):"unknown filename",t,n?UTF8ToString(n):"unknown function"])}___assert_fail.sig="vppip";var ___c_longjmp=new WebAssembly.Tag({parameters:["i32"]});function ___call_sighandler(e,r){return e>>>=0,getWasmTableEntry(e)(r)}___call_sighandler.sig="vpi";var ___cpp_exception=new WebAssembly.Tag({parameters:["i32"]});function ___emscripten_init_main_thread_js(e){e>>>=0,__emscripten_thread_init(e,!ENVIRONMENT_IS_WORKER,1,!ENVIRONMENT_IS_WEB,65536,!1),PThread.threadInitTLS()}___emscripten_init_main_thread_js.sig="vp";function ___emscripten_thread_cleanup(e){e>>>=0,ENVIRONMENT_IS_PTHREAD?postMessage({cmd:"cleanupThread",thread:e}):cleanupThread(e)}___emscripten_thread_cleanup.sig="vp";var ___memory_base=new WebAssembly.Global({value:"i32",mutable:!1},1024);function pthreadCreateProxied(e,r,t,n){return ENVIRONMENT_IS_PTHREAD?proxyToMainThread(2,0,1,e,r,t,n):___pthread_create_js(e,r,t,n)}function ___pthread_create_js(e,r,t,n){if(e>>>=0,r>>>=0,t>>>=0,n>>>=0,typeof SharedArrayBuffer>"u")return err("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var a=[],_=0;if(ENVIRONMENT_IS_PTHREAD&&(a.length===0||_))return pthreadCreateProxied(e,r,t,n);if(_)return _;var o={startRoutine:t,pthread_ptr:e,arg:n,transferList:a};return ENVIRONMENT_IS_PTHREAD?(o.cmd="spawnThread",postMessage(o,a),0):spawnThread(o)}___pthread_create_js.sig="ipppp";function ___pthread_kill_js(e,r){return e>>>=0,r===33?ENVIRONMENT_IS_PTHREAD?postMessage({cmd:"cancelThread",thread:e}):cancelThread(e):ENVIRONMENT_IS_PTHREAD?postMessage({cmd:"killThread",thread:e}):killThread(e),0}___pthread_kill_js.sig="ipi";var ___stack_high=2459936,___stack_low=2394400,___stack_pointer=new WebAssembly.Global({value:"i32",mutable:!0},2459936),PATH={isAbs:e=>e.charAt(0)==="/",splitPath:e=>{var r=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return r.exec(e).slice(1)},normalizeArray:(e,r)=>{for(var t=0,n=e.length-1;n>=0;n--){var a=e[n];a==="."?e.splice(n,1):a===".."?(e.splice(n,1),t++):t&&(e.splice(n,1),t--)}if(r)for(;t;t--)e.unshift("..");return e},normalize:e=>{var r=PATH.isAbs(e),t=e.substr(-1)==="/";return e=PATH.normalizeArray(e.split("/").filter(n=>!!n),!r).join("/"),!e&&!r&&(e="."),e&&t&&(e+="/"),(r?"/":"")+e},dirname:e=>{var r=PATH.splitPath(e),t=r[0],n=r[1];return!t&&!n?".":(n&&(n=n.substr(0,n.length-1)),t+n)},basename:e=>{if(e==="/")return"/";e=PATH.normalize(e),e=e.replace(/\/$/,"");var r=e.lastIndexOf("/");return r===-1?e:e.substr(r+1)},join:(...e)=>PATH.normalize(e.join("/")),join2:(e,r)=>PATH.normalize(e+"/"+r)},initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return n=>(n.set(crypto.getRandomValues(new Uint8Array(n.byteLength))),n);if(ENVIRONMENT_IS_NODE)try{var e=J("crypto"),r=e.randomFillSync;if(r)return n=>e.randomFillSync(n);var t=e.randomBytes;return n=>(n.set(t(n.byteLength)),n)}catch(n){}abort("initRandomDevice")},randomFill=e=>(randomFill=initRandomFill())(e),PATH_FS={resolve:(...e)=>{for(var r="",t=!1,n=e.length-1;n>=-1&&!t;n--){var a=n>=0?e[n]:FS.cwd();if(typeof a!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!a)return"";r=a+"/"+r,t=PATH.isAbs(a)}return r=PATH.normalizeArray(r.split("/").filter(_=>!!_),!t).join("/"),(t?"/":"")+r||"."},relative:(e,r)=>{e=PATH_FS.resolve(e).substr(1),r=PATH_FS.resolve(r).substr(1);function t(u){for(var d=0;d<u.length&&u[d]==="";d++);for(var p=u.length-1;p>=0&&u[p]==="";p--);return d>p?[]:u.slice(d,p-d+1)}for(var n=t(e.split("/")),a=t(r.split("/")),_=Math.min(n.length,a.length),o=_,l=0;l<_;l++)if(n[l]!==a[l]){o=l;break}for(var c=[],l=o;l<n.length;l++)c.push("..");return c=c.concat(a.slice(o)),c.join("/")}},FS_stdin_getChar_buffer=[],lengthBytesUTF8=e=>{for(var r=0,t=0;t<e.length;++t){var n=e.charCodeAt(t);n<=127?r++:n<=2047?r+=2:n>=55296&&n<=57343?(r+=4,++t):r+=3}return r},stringToUTF8Array=(e,r,t,n)=>{if(t>>>=0,!(n>0))return 0;for(var a=t,_=t+n-1,o=0;o<e.length;++o){var l=e.charCodeAt(o);if(l>=55296&&l<=57343){var c=e.charCodeAt(++o);l=65536+((l&1023)<<10)|c&1023}if(l<=127){if(t>=_)break;r[t++>>>0]=l}else if(l<=2047){if(t+1>=_)break;r[t++>>>0]=192|l>>6,r[t++>>>0]=128|l&63}else if(l<=65535){if(t+2>=_)break;r[t++>>>0]=224|l>>12,r[t++>>>0]=128|l>>6&63,r[t++>>>0]=128|l&63}else{if(t+3>=_)break;r[t++>>>0]=240|l>>18,r[t++>>>0]=128|l>>12&63,r[t++>>>0]=128|l>>6&63,r[t++>>>0]=128|l&63}}return r[t>>>0]=0,t-a};function intArrayFromString(e,r,t){var n=t>0?t:lengthBytesUTF8(e)+1,a=new Array(n),_=stringToUTF8Array(e,a,0,a.length);return r&&(a.length=_),a}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var e=null;if(ENVIRONMENT_IS_NODE){var r=256,t=Buffer.alloc(r),n=0,a=process.stdin.fd;try{n=fs.readSync(a,t)}catch(_){if(_.toString().includes("EOF"))n=0;else throw _}n>0?e=t.slice(0,n).toString("utf-8"):e=null}else typeof window<"u"&&typeof window.prompt=="function"?(e=window.prompt("Input: "),e!==null&&(e+="\n")):typeof readline=="function"&&(e=readline(),e!==null&&(e+="\n"));if(!e)return null;FS_stdin_getChar_buffer=intArrayFromString(e,!0)}return FS_stdin_getChar_buffer.shift()},TTY={ttys:[],init(){},shutdown(){},register(e,r){TTY.ttys[e]={input:[],output:[],ops:r},FS.registerDevice(e,TTY.stream_ops)},stream_ops:{open(e){var r=TTY.ttys[e.node.rdev];if(!r)throw new FS.ErrnoError(43);e.tty=r,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,r,t,n,a){if(!e.tty||!e.tty.ops.get_char)throw new FS.ErrnoError(60);for(var _=0,o=0;o<n;o++){var l;try{l=e.tty.ops.get_char(e.tty)}catch(c){throw new FS.ErrnoError(29)}if(l===void 0&&_===0)throw new FS.ErrnoError(6);if(l==null)break;_++,r[t+o]=l}return _&&(e.node.timestamp=Date.now()),_},write(e,r,t,n,a){if(!e.tty||!e.tty.ops.put_char)throw new FS.ErrnoError(60);try{for(var _=0;_<n;_++)e.tty.ops.put_char(e.tty,r[t+_])}catch(o){throw new FS.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),_}},default_tty_ops:{get_char(e){return FS_stdin_getChar()},put_char(e,r){r===null||r===10?(out(UTF8ArrayToString(e.output,0)),e.output=[]):r!=0&&e.output.push(r)},fsync(e){e.output&&e.output.length>0&&(out(UTF8ArrayToString(e.output,0)),e.output=[])},ioctl_tcgets(e){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(e,r,t){return 0},ioctl_tiocgwinsz(e){return[24,80]}},default_tty1_ops:{put_char(e,r){r===null||r===10?(err(UTF8ArrayToString(e.output,0)),e.output=[]):r!=0&&e.output.push(r)},fsync(e){e.output&&e.output.length>0&&(err(UTF8ArrayToString(e.output,0)),e.output=[])}}},mmapAlloc=e=>{e=alignMemory(e,65536);var r=_emscripten_builtin_memalign(65536,e);return r?zeroMemory(r,e):0},MEMFS={ops_table:null,mount(e){return MEMFS.createNode(null,"/",16895,0)},createNode(e,r,t,n){if(FS.isBlkdev(t)||FS.isFIFO(t))throw new FS.ErrnoError(63);MEMFS.ops_table||(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 a=FS.createNode(e,r,t,n);return FS.isDir(a.mode)?(a.node_ops=MEMFS.ops_table.dir.node,a.stream_ops=MEMFS.ops_table.dir.stream,a.contents={}):FS.isFile(a.mode)?(a.node_ops=MEMFS.ops_table.file.node,a.stream_ops=MEMFS.ops_table.file.stream,a.usedBytes=0,a.contents=null):FS.isLink(a.mode)?(a.node_ops=MEMFS.ops_table.link.node,a.stream_ops=MEMFS.ops_table.link.stream):FS.isChrdev(a.mode)&&(a.node_ops=MEMFS.ops_table.chrdev.node,a.stream_ops=MEMFS.ops_table.chrdev.stream),a.timestamp=Date.now(),e&&(e.contents[r]=a,e.timestamp=a.timestamp),a},getFileDataAsTypedArray(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage(e,r){var t=e.contents?e.contents.length:0;if(!(t>=r)){var n=1024*1024;r=Math.max(r,t*(t<n?2:1.125)>>>0),t!=0&&(r=Math.max(r,256));var a=e.contents;e.contents=new Uint8Array(r),e.usedBytes>0&&e.contents.set(a.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,r){if(e.usedBytes!=r)if(r==0)e.contents=null,e.usedBytes=0;else{var t=e.contents;e.contents=new Uint8Array(r),t&&e.contents.set(t.subarray(0,Math.min(r,e.usedBytes))),e.usedBytes=r}},node_ops:{getattr(e){var r={};return r.dev=FS.isChrdev(e.mode)?e.id:1,r.ino=e.id,r.mode=e.mode,r.nlink=1,r.uid=0,r.gid=0,r.rdev=e.rdev,FS.isDir(e.mode)?r.size=4096:FS.isFile(e.mode)?r.size=e.usedBytes:FS.isLink(e.mode)?r.size=e.link.length:r.size=0,r.atime=new Date(e.timestamp),r.mtime=new Date(e.timestamp),r.ctime=new Date(e.timestamp),r.blksize=4096,r.blocks=Math.ceil(r.size/r.blksize),r},setattr(e,r){r.mode!==void 0&&(e.mode=r.mode),r.timestamp!==void 0&&(e.timestamp=r.timestamp),r.size!==void 0&&MEMFS.resizeFileStorage(e,r.size)},lookup(e,r){throw FS.genericErrors[44]},mknod(e,r,t,n){return MEMFS.createNode(e,r,t,n)},rename(e,r,t){if(FS.isDir(e.mode)){var n;try{n=FS.lookupNode(r,t)}catch(_){}if(n)for(var a in n.contents)throw new FS.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=t,r.contents[t]=e,r.timestamp=e.parent.timestamp,e.parent=r},unlink(e,r){delete e.contents[r],e.timestamp=Date.now()},rmdir(e,r){var t=FS.lookupNode(e,r);for(var n in t.contents)throw new FS.ErrnoError(55);delete e.contents[r],e.timestamp=Date.now()},readdir(e){var r=[".",".."];for(var t of Object.keys(e.contents))r.push(t);return r},symlink(e,r,t){var n=MEMFS.createNode(e,r,41471,0);return n.link=t,n},readlink(e){if(!FS.isLink(e.mode))throw new FS.ErrnoError(28);return e.link}},stream_ops:{read(e,r,t,n,a){var _=e.node.contents;if(a>=e.node.usedBytes)return 0;var o=Math.min(e.node.usedBytes-a,n);if(o>8&&_.subarray)r.set(_.subarray(a,a+o),t);else for(var l=0;l<o;l++)r[t+l]=_[a+l];return o},write(e,r,t,n,a,_){if(r.buffer===GROWABLE_HEAP_I8().buffer&&(_=!1),!n)return 0;var o=e.node;if(o.timestamp=Date.now(),r.subarray&&(!o.contents||o.contents.subarray)){if(_)return o.contents=r.subarray(t,t+n),o.usedBytes=n,n;if(o.usedBytes===0&&a===0)return o.contents=r.slice(t,t+n),o.usedBytes=n,n;if(a+n<=o.usedBytes)return o.contents.set(r.subarray(t,t+n),a),n}if(MEMFS.expandFileStorage(o,a+n),o.contents.subarray&&r.subarray)o.contents.set(r.subarray(t,t+n),a);else for(var l=0;l<n;l++)o.contents[a+l]=r[t+l];return o.usedBytes=Math.max(o.usedBytes,a+n),n},llseek(e,r,t){var n=r;if(t===1?n+=e.position:t===2&&FS.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new FS.ErrnoError(28);return n},allocate(e,r,t){MEMFS.expandFileStorage(e.node,r+t),e.node.usedBytes=Math.max(e.node.usedBytes,r+t)},mmap(e,r,t,n,a){if(!FS.isFile(e.node.mode))throw new FS.ErrnoError(43);var _,o,l=e.node.contents;if(!(a&2)&&l.buffer===GROWABLE_HEAP_I8().buffer)o=!1,_=l.byteOffset;else{if((t>0||t+r<l.length)&&(l.subarray?l=l.subarray(t,t+r):l=Array.prototype.slice.call(l,t,t+r)),o=!0,_=mmapAlloc(r),!_)throw new FS.ErrnoError(48);GROWABLE_HEAP_I8().set(l,_>>>0)}return{ptr:_,allocated:o}},msync(e,r,t,n,a){return MEMFS.stream_ops.write(e,r,0,n,t,!1),0}}},FS_createDataFile=(e,r,t,n,a,_)=>{FS.createDataFile(e,r,t,n,a,_)},FS_handledByPreloadPlugin=(e,r,t,n)=>{typeof Browser<"u"&&Browser.init();var a=!1;return preloadPlugins.forEach(_=>{a||_.canHandle(r)&&(_.handle(e,r,t,n),a=!0)}),a},FS_createPreloadedFile=(e,r,t,n,a,_,o,l,c,u)=>{var d=r?PATH_FS.resolve(PATH.join2(e,r)):e,p="cp ".concat(d);function f(g){function E(v){u==null||u(),l||FS_createDataFile(e,r,v,n,a,c),_==null||_(),removeRunDependency(p)}FS_handledByPreloadPlugin(g,d,E,()=>{o==null||o(),removeRunDependency(p)})||E(g)}addRunDependency(p),typeof t=="string"?asyncLoad(t,f,o):f(t)},FS_modeStringToFlags=e=>{var r={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},t=r[e];if(typeof t>"u")throw new Error("Unknown file open mode: ".concat(e));return t},FS_getMode=(e,r)=>{var t=0;return e&&(t|=365),r&&(t|=146),t},FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:class{constructor(e){this.name="ErrnoError",this.errno=e}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(e){this.node=e}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(e){this.shared.flags=e}get position(){return this.shared.position}set position(e){this.shared.position=e}},FSNode:class{constructor(e,r,t,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=FS.nextInode++,this.name=r,this.mode=t,this.node_ops={},this.stream_ops={},this.rdev=n,this.readMode=365,this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(e){e?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(e){e?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(e,r={}){if(e=PATH_FS.resolve(e),!e)return{path:"",node:null};var t={follow_mount:!0,recurse_count:0};if(r=Object.assign(t,r),r.recurse_count>8)throw new FS.ErrnoError(32);for(var n=e.split("/").filter(p=>!!p),a=FS.root,_="/",o=0;o<n.length;o++){var l=o===n.length-1;if(l&&r.parent)break;if(a=FS.lookupNode(a,n[o]),_=PATH.join2(_,n[o]),FS.isMountpoint(a)&&(!l||l&&r.follow_mount)&&(a=a.mounted.root),!l||r.follow)for(var c=0;FS.isLink(a.mode);){var u=FS.readlink(_);_=PATH_FS.resolve(PATH.dirname(_),u);var d=FS.lookupPath(_,{recurse_count:r.recurse_count+1});if(a=d.node,c++>40)throw new FS.ErrnoError(32)}}return{path:_,node:a}},getPath(e){for(var r;;){if(FS.isRoot(e)){var t=e.mount.mountpoint;return r?t[t.length-1]!=="/"?"".concat(t,"/").concat(r):t+r:t}r=r?"".concat(e.name,"/").concat(r):e.name,e=e.parent}},hashName(e,r){for(var t=0,n=0;n<r.length;n++)t=(t<<5)-t+r.charCodeAt(n)|0;return(e+t>>>0)%FS.nameTable.length},hashAddNode(e){var r=FS.hashName(e.parent.id,e.name);e.name_next=FS.nameTable[r],FS.nameTable[r]=e},hashRemoveNode(e){var r=FS.hashName(e.parent.id,e.name);if(FS.nameTable[r]===e)FS.nameTable[r]=e.name_next;else for(var t=FS.nameTable[r];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode(e,r){var t=FS.mayLookup(e);if(t)throw new FS.ErrnoError(t);for(var n=FS.hashName(e.id,r),a=FS.nameTable[n];a;a=a.name_next){var _=a.name;if(a.parent.id===e.id&&_===r)return a}return FS.lookup(e,r)},createNode(e,r,t,n){var a=new FS.FSNode(e,r,t,n);return FS.hashAddNode(a),a},destroyNode(e){FS.hashRemoveNode(e)},isRoot(e){return e===e.parent},isMountpoint(e){return!!e.mounted},isFile(e){return(e&61440)===32768},isDir(e){return(e&61440)===16384},isLink(e){return(e&61440)===40960},isChrdev(e){return(e&61440)===8192},isBlkdev(e){return(e&61440)===24576},isFIFO(e){return(e&61440)===4096},isSocket(e){return(e&49152)===49152},flagsToPermissionString(e){var r=["r","w","rw"][e&3];return e&512&&(r+="w"),r},nodePermissions(e,r){return FS.ignorePermissions?0:r.includes("r")&&!(e.mode&292)||r.includes("w")&&!(e.mode&146)||r.includes("x")&&!(e.mode&73)?2:0},mayLookup(e){if(!FS.isDir(e.mode))return 54;var r=FS.nodePermissions(e,"x");return r||(e.node_ops.lookup?0:2)},mayCreate(e,r){try{var t=FS.lookupNode(e,r);return 20}catch(n){}return FS.nodePermissions(e,"wx")},mayDelete(e,r,t){var n;try{n=FS.lookupNode(e,r)}catch(_){return _.errno}var a=FS.nodePermissions(e,"wx");if(a)return a;if(t){if(!FS.isDir(n.mode))return 54;if(FS.isRoot(n)||FS.getPath(n)===FS.cwd())return 10}else if(FS.isDir(n.mode))return 31;return 0},mayOpen(e,r){return e?FS.isLink(e.mode)?32:FS.isDir(e.mode)&&(FS.flagsToPermissionString(r)!=="r"||r&512)?31:FS.nodePermissions(e,FS.flagsToPermissionString(r)):44},MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=FS.MAX_OPEN_FDS;e++)if(!FS.streams[e])return e;throw new FS.ErrnoError(33)},getStreamChecked(e){var r=FS.getStream(e);if(!r)throw new FS.ErrnoError(8);return r},getStream:e=>FS.streams[e],createStream(e,r=-1){return e=Object.assign(new FS.FSStream,e),r==-1&&(r=FS.nextfd()),e.fd=r,FS.streams[r]=e,e},closeStream(e){FS.streams[e]=null},dupStream(e,r=-1){var n,a;var t=FS.createStream(e,r);return(a=(n=t.stream_ops)==null?void 0:n.dup)==null||a.call(n,t),t},chrdev_stream_ops:{open(e){var t,n;var r=FS.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,(n=(t=e.stream_ops).open)==null||n.call(t,e)},llseek(){throw new FS.ErrnoError(70)}},major:e=>e>>8,minor:e=>e&255,makedev:(e,r)=>e<<8|r,registerDevice(e,r){FS.devices[e]={stream_ops:r}},getDevice:e=>FS.devices[e],getMounts(e){for(var r=[],t=[e];t.length;){var n=t.pop();r.push(n),t.push(...n.mounts)}return r},syncfs(e,r){typeof e=="function"&&(r=e,e=!1),FS.syncFSRequests++,FS.syncFSRequests>1&&err("warning: ".concat(FS.syncFSRequests," FS.syncfs operations in flight at once, probably just doing extra work"));var t=FS.getMounts(FS.root.mount),n=0;function a(o){return FS.syncFSRequests--,r(o)}function _(o){if(o)return _.errored?void 0:(_.errored=!0,a(o));++n>=t.length&&a(null)}t.forEach(o=>{if(!o.type.syncfs)return _(null);o.type.syncfs(o,e,_)})},mount(e,r,t){var n=t==="/",a=!t,_;if(n&&FS.root)throw new FS.ErrnoError(10);if(!n&&!a){var o=FS.lookupPath(t,{follow_mount:!1});if(t=o.path,_=o.node,FS.isMountpoint(_))throw new FS.ErrnoError(10);if(!FS.isDir(_.mode))throw new FS.ErrnoError(54)}var l={type:e,opts:r,mountpoint:t,mounts:[]},c=e.mount(l);return c.mount=l,l.root=c,n?FS.root=c:_&&(_.mounted=l,_.mount&&_.mount.mounts.push(l)),c},unmount(e){var r=FS.lookupPath(e,{follow_mo