From d0e357d51b8a14f6e4009b04a290d37c7cc345f7 Mon Sep 17 00:00:00 2001 From: Brian Whitman Date: Mon, 6 Jan 2025 12:38:29 -0800 Subject: [PATCH] wrong amy in web build, made piano sound bad --- www/run/amy-audioin.js | 2 +- www/run/amy-audioin.wasm | Bin 1314696 -> 1339131 bytes www/run/micropython.data | Bin 1604482 -> 1604494 bytes www/run/micropython.mjs | 2 +- 4 files changed, 2 insertions(+), 2 deletions(-) diff --git a/www/run/amy-audioin.js b/www/run/amy-audioin.js index b046c4d8..b5fa3518 100644 --- a/www/run/amy-audioin.js +++ b/www/run/amy-audioin.js @@ -5,7 +5,7 @@ var amyModule = (() => { return ( 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});["_amy_play_message","_amy_reset_sysclock","_amy_live_start","_amy_start","_sequencer_ticks","_malloc","_free","_emscripten_wasm_worker_initialize","___set_thread_state","___indirect_function_table","_ma_device__on_notification_unlocked","_ma_malloc_emscripten","_ma_free_emscripten","_ma_device_process_pcm_frames_capture__webaudio","_ma_device_process_pcm_frames_playback__webaudio","_fflush","___start_em_asm","___stop_em_asm","onRuntimeInitialized"].forEach(prop=>{if(!Object.getOwnPropertyDescriptor(Module["ready"],prop)){Object.defineProperty(Module["ready"],prop,{get:()=>abort("You are getting "+prop+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js"),set:()=>abort("You are setting "+prop+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")})}});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_AUDIO_WORKLET=typeof AudioWorkletGlobalScope!=="undefined";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_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER&&!ENVIRONMENT_IS_AUDIO_WORKLET;if(Module["ENVIRONMENT"]){throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)")}var ENVIRONMENT_IS_WASM_WORKER=Module["$ww"];var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_NODE){if(typeof process=="undefined"||!process.release||process.release.name!=="node")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");var nodeVersion=process.versions.node;var numericVersion=nodeVersion.split(".").slice(0,3);numericVersion=numericVersion[0]*1e4+numericVersion[1]*100+numericVersion[2].split("-")[0]*1;if(numericVersion<16e4){throw new Error("This emscripten-generated code requires node v16.0.0 (detected v"+nodeVersion+")")}var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}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)}assert(ret.buffer);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};Module["inspect"]=()=>"[Emscripten Module object]";let nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof process=="object"&&typeof require==="function"||typeof window=="object"||typeof importScripts=="function")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");if(typeof read!="undefined"){read_=read}readBinary=f=>{if(typeof readbuffer=="function"){return new Uint8Array(readbuffer(f))}let data=read(f,"binary");assert(typeof data=="object");return data};readAsync=(f,onload,onerror)=>{setTimeout(()=>onload(readBinary(f)))};if(typeof clearTimeout=="undefined"){globalThis.clearTimeout=id=>{}}if(typeof setTimeout=="undefined"){globalThis.setTimeout=f=>typeof f=="function"?f():abort()}if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit=="function"){quit_=(status,toThrow)=>{setTimeout(()=>{if(!(toThrow instanceof ExitStatus)){let toLog=toThrow;if(toThrow&&typeof toThrow=="object"&&toThrow.stack){toLog=[toThrow,toThrow.stack]}err(`exiting due to exception: ${toLog}`)}quit(status)});throw toThrow}}if(typeof print!="undefined"){if(typeof console=="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!="undefined"?printErr:print}}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.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}if(!(typeof window=="object"||typeof importScripts=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");{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_AUDIO_WORKLET){throw new Error("environment detection error")}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;checkIncomingModuleAPI();if(Module["arguments"])arguments_=Module["arguments"];legacyModuleProp("arguments","arguments_");if(Module["thisProgram"])thisProgram=Module["thisProgram"];legacyModuleProp("thisProgram","thisProgram");if(Module["quit"])quit_=Module["quit"];legacyModuleProp("quit","quit_");assert(typeof Module["memoryInitializerPrefixURL"]=="undefined","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["pthreadMainPrefixURL"]=="undefined","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["cdInitializerPrefixURL"]=="undefined","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["filePackagePrefixURL"]=="undefined","Module.filePackagePrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["read"]=="undefined","Module.read option was removed (modify read_ in JS)");assert(typeof Module["readAsync"]=="undefined","Module.readAsync option was removed (modify readAsync in JS)");assert(typeof Module["readBinary"]=="undefined","Module.readBinary option was removed (modify readBinary in JS)");assert(typeof Module["setWindowTitle"]=="undefined","Module.setWindowTitle option was removed (modify emscripten_set_window_title in JS)");assert(typeof Module["TOTAL_MEMORY"]=="undefined","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY");legacyModuleProp("asm","wasmExports");legacyModuleProp("read","read_");legacyModuleProp("readAsync","readAsync");legacyModuleProp("readBinary","readBinary");legacyModuleProp("setWindowTitle","setWindowTitle");assert(!ENVIRONMENT_IS_SHELL,"shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable.");var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];legacyModuleProp("wasmBinary","wasmBinary");if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed"+(text?": "+text:""))}}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)}assert(!Module["STACK_SIZE"],"STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time");assert(typeof Int32Array!="undefined"&&typeof Float64Array!=="undefined"&&Int32Array.prototype.subarray!=undefined&&Int32Array.prototype.set!=undefined,"JS engine does not provide full typed array support");var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||268435456;legacyModuleProp("INITIAL_MEMORY","INITIAL_MEMORY");assert(INITIAL_MEMORY>=134217728,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+INITIAL_MEMORY+"! (STACK_SIZE="+134217728+")");if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/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;assert(INITIAL_MEMORY%65536===0);function writeStackCookie(){var max=_emscripten_stack_get_end();assert((max&3)==0);if(max==0){max+=4}GROWABLE_HEAP_U32()[max>>2]=34821223;GROWABLE_HEAP_U32()[max+4>>2]=2310721022;GROWABLE_HEAP_U32()[0>>2]=1668509029}function checkStackCookie(){if(ABORT)return;var max=_emscripten_stack_get_end();if(max==0){max+=4}var cookie1=GROWABLE_HEAP_U32()[max>>2];var cookie2=GROWABLE_HEAP_U32()[max+4>>2];if(cookie1!=34821223||cookie2!=2310721022){abort(`Stack overflow! Stack cookie has been overwritten at ${ptrToString(max)}, expected hex dwords 0x89BACDFE and 0x2135467, but received ${ptrToString(cookie2)} ${ptrToString(cookie1)}`)}if(GROWABLE_HEAP_U32()[0>>2]!=1668509029){abort("Runtime error: The application has corrupted its heap memory area (address zero)!")}}(function(){var h16=new Int16Array(1);var h8=new Int8Array(h16.buffer);h16[0]=25459;if(h8[0]!==115||h8[1]!==99)throw"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)"})();var __ATPRERUN__=[];var __ATINIT__=[];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(){assert(!runtimeInitialized);runtimeInitialized=true;if(ENVIRONMENT_IS_WASM_WORKER)return _wasmWorkerInitializeRuntime();checkStackCookie();callRuntimeCallbacks(__ATINIT__)}function postRun(){checkStackCookie();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)}assert(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;var runDependencyTracking={};function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(!runDependencyTracking[id]);runDependencyTracking[id]=1;if(runDependencyWatcher===null&&typeof setInterval!="undefined"){runDependencyWatcher=setInterval(()=>{if(ABORT){clearInterval(runDependencyWatcher);runDependencyWatcher=null;return}var shown=false;for(var dep in runDependencyTracking){if(!shown){shown=true;err("still waiting on run dependencies:")}err(`dependency: ${dep}`)}if(shown){err("(end of list)")}},1e4)}}else{err("warning: run dependency added without ID")}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(runDependencyTracking[id]);delete runDependencyTracking[id]}else{err("warning: run dependency removed without ID")}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;if(what.indexOf("RuntimeError: unreachable")>=0){what+='. "unreachable" may be due to ASYNCIFY_STACK_SIZE not being large enough (try increasing it)'}var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var FS={error(){abort("Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -sFORCE_FILESYSTEM")},init(){FS.error()},createDataFile(){FS.error()},createPreloadedFile(){FS.error()},createLazyFile(){FS.error()},open(){FS.error()},mkdev(){FS.error()},registerDevice(){FS.error()},analyzePath(){FS.error()},ErrnoError(){FS.error()}};Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");function createExportWrapper(name){return function(){assert(runtimeInitialized,`native function \`${name}\` called before runtime initialization`);var f=wasmExports[name];assert(f,`exported native function \`${name}\` not found`);return f.apply(null,arguments)}}var wasmBinaryFile;wasmBinaryFile="amy-audioin.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}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(instance=>instance).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);if(isFileURI(wasmBinaryFile)){err(`warning: Loading from a file URI (${wasmBinaryFile}) is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing`)}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={"env":wasmImports,"wasi_snapshot_preview1":wasmImports};function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmTable=wasmExports["__indirect_function_table"];assert(wasmTable,"table not found in wasm exports");Module["wasmTable"]=wasmTable;addOnInit(wasmExports["__wasm_call_ctors"]);wasmModule=module;removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");var trueModule=Module;function receiveInstantiationResult(result){assert(Module===trueModule,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?");trueModule=null;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{}}function legacyModuleProp(prop,newName,incomming=true){if(!Object.getOwnPropertyDescriptor(Module,prop)){Object.defineProperty(Module,prop,{configurable:true,get(){let extra=incomming?" (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)":"";abort(`\`Module.${prop}\` has been replaced by \`${newName}\``+extra)}})}}function ignoredModuleProp(prop){if(Object.getOwnPropertyDescriptor(Module,prop)){abort(`\`Module.${prop}\` was supplied but \`${prop}\` not included in INCOMING_MODULE_JS_API`)}}function isExportedByForceFilesystem(name){return name==="FS_createPath"||name==="FS_createDataFile"||name==="FS_createPreloadedFile"||name==="FS_unlink"||name==="addRunDependency"||name==="FS_createLazyFile"||name==="FS_createDevice"||name==="removeRunDependency"}function missingGlobal(sym,msg){if(typeof globalThis!=="undefined"){Object.defineProperty(globalThis,sym,{configurable:true,get(){warnOnce(`\`${sym}\` is not longer defined by emscripten. ${msg}`);return undefined}})}}missingGlobal("buffer","Please use HEAP8.buffer or wasmMemory.buffer");missingGlobal("asm","Please use wasmExports instead");function missingLibrarySymbol(sym){if(typeof globalThis!=="undefined"&&!Object.getOwnPropertyDescriptor(globalThis,sym)){Object.defineProperty(globalThis,sym,{configurable:true,get(){var msg=`\`${sym}\` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line`;var librarySymbol=sym;if(!librarySymbol.startsWith("_")){librarySymbol="$"+sym}msg+=` (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE='${librarySymbol}')`;if(isExportedByForceFilesystem(sym)){msg+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"}warnOnce(msg);return undefined}})}unexportedRuntimeSymbol(sym)}function unexportedRuntimeSymbol(sym){if(!Object.getOwnPropertyDescriptor(Module,sym)){Object.defineProperty(Module,sym,{configurable:true,get(){var msg=`'${sym}' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the Emscripten FAQ)`;if(isExportedByForceFilesystem(sym)){msg+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"}abort(msg)}})}}var ASM_CONSTS={1110016:$0=>{amy_sequencer_js_hook($0)},1110047:($0,$1,$2,$3,$4)=>{if(typeof window==="undefined"||(window.AudioContext||window.webkitAudioContext)===undefined){return 0}if(typeof window.miniaudio==="undefined"){window.miniaudio={referenceCount:0};window.miniaudio.device_type={};window.miniaudio.device_type.playback=$0;window.miniaudio.device_type.capture=$1;window.miniaudio.device_type.duplex=$2;window.miniaudio.device_state={};window.miniaudio.device_state.stopped=$3;window.miniaudio.device_state.started=$4;miniaudio.devices=[];miniaudio.track_device=function(device){for(var iDevice=0;iDevice0){if(miniaudio.devices[miniaudio.devices.length-1]==null){miniaudio.devices.pop()}else{break}}};miniaudio.untrack_device=function(device){for(var iDevice=0;iDevice{Module._ma_device__on_notification_unlocked(device.pDevice)},error=>{console.error("Failed to resume audiocontext",error)})}}miniaudio.unlock_event_types.map(function(event_type){document.removeEventListener(event_type,miniaudio.unlock,true)})};miniaudio.unlock_event_types.map(function(event_type){document.addEventListener(event_type,miniaudio.unlock,true)})}window.miniaudio.referenceCount+=1;return 1},1112205:()=>{if(typeof window.miniaudio!=="undefined"){window.miniaudio.referenceCount-=1;if(window.miniaudio.referenceCount===0){delete window.miniaudio}}},1112369:()=>navigator.mediaDevices!==undefined&&navigator.mediaDevices.getUserMedia!==undefined,1112473:()=>{try{var temp=new(window.AudioContext||window.webkitAudioContext);var sampleRate=temp.sampleRate;temp.close();return sampleRate}catch(e){return 0}},1112644:$0=>miniaudio.track_device({webaudio:emscriptenGetAudioObject($0),state:1}),1112733:($0,$1)=>{var getUserMediaResult=0;var audioWorklet=emscriptenGetAudioObject($0);var audioContext=emscriptenGetAudioObject($1);navigator.mediaDevices.getUserMedia({audio:true,video:false}).then(function(stream){audioContext.streamNode=audioContext.createMediaStreamSource(stream);audioContext.streamNode.connect(audioWorklet);audioWorklet.connect(audioContext.destination);getUserMediaResult=0}).catch(function(error){console.log("navigator.mediaDevices.getUserMedia Failed: "+error);getUserMediaResult=-1});return getUserMediaResult},1113295:($0,$1)=>{var audioWorklet=emscriptenGetAudioObject($0);var audioContext=emscriptenGetAudioObject($1);audioWorklet.connect(audioContext.destination);return 0},1113455:$0=>emscriptenGetAudioObject($0).sampleRate,1113507:$0=>{var device=miniaudio.get_device_by_index($0);if(device.streamNode!==undefined){device.streamNode.disconnect();device.streamNode=undefined}},1113663:$0=>{miniaudio.untrack_device_by_index($0)},1113706:$0=>{var device=miniaudio.get_device_by_index($0);device.webaudio.resume();device.state=miniaudio.device_state.started},1113831:$0=>{var device=miniaudio.get_device_by_index($0);device.webaudio.suspend();device.state=miniaudio.device_state.stopped}};function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var _wasmWorkerDelayedMessageQueue=[];var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}assert(wasmTable.get(funcPtr)==func,"JavaScript-side Wasm function table mirror is out of date!");return func};var _wasmWorkerRunPostMessage=e=>{let data=ENVIRONMENT_IS_NODE?e:e.data;let wasmCall=data["_wsc"];wasmCall&&getWasmTableEntry(wasmCall)(...data["x"])};var _wasmWorkerAppendToQueue=e=>{_wasmWorkerDelayedMessageQueue.push(e)};var _wasmWorkerInitializeRuntime=()=>{let m=Module;assert(m["sb"]%16==0);assert(m["sz"]%16==0);_emscripten_wasm_worker_initialize(m["sb"],m["sz"]);if(typeof AudioWorkletGlobalScope==="undefined"){removeEventListener("message",_wasmWorkerAppendToQueue);_wasmWorkerDelayedMessageQueue=_wasmWorkerDelayedMessageQueue.forEach(_wasmWorkerRunPostMessage);addEventListener("message",_wasmWorkerRunPostMessage)}};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var noExitRuntime=Module["noExitRuntime"]||true;var ptrToString=ptr=>{assert(typeof ptr==="number");ptr>>>=0;return"0x"+ptr.toString(16).padStart(8,"0")};var warnOnce=text=>{if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;var UTF8ArrayToString=(heapOrArray,idx,maxBytesToRead)=>{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};var UTF8ToString=(ptr,maxBytesToRead)=>{assert(typeof ptr=="number",`UTF8ToString expects a number (got ${typeof ptr})`);return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):""};var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};var nowIsMonotonic=1;var __emscripten_get_now_is_monotonic=()=>nowIsMonotonic;var _abort=()=>{abort("native code called abort()")};var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{assert(Array.isArray(readEmAsmArgsArray));assert(buf%16==0);readEmAsmArgsArray.length=0;var ch;while(ch=GROWABLE_HEAP_U8()[sigPtr++]){var chr=String.fromCharCode(ch);var validChars=["d","f","i","p"];assert(validChars.includes(chr),`Invalid character ${ch}("${chr}") in readEmAsmArgs! Use only [${validChars}], and do not specify "v" for void return argument.`);var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?GROWABLE_HEAP_U32()[buf>>2]:ch==105?GROWABLE_HEAP_I32()[buf>>2]:GROWABLE_HEAP_F64()[buf>>3]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);assert(ASM_CONSTS.hasOwnProperty(code),`No EM_ASM constant found at address ${code}. The loaded WebAssembly file is likely out of sync with the generated JavaScript.`);return ASM_CONSTS[code].apply(null,args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var EmAudio={};var EmAudioCounter=0;var emscriptenRegisterAudioObject=object=>{assert(object,"Called emscriptenRegisterAudioObject() with a null object handle!");EmAudio[++EmAudioCounter]=object;return EmAudioCounter};var emscriptenGetAudioObject=objectHandle=>EmAudio[objectHandle];var _emscripten_create_audio_context=options=>{let ctx=window.AudioContext||window.webkitAudioContext;if(!ctx)console.error("emscripten_create_audio_context failed! Web Audio is not supported.");options>>=2;let opts=options?{latencyHint:GROWABLE_HEAP_U32()[options]?UTF8ToString(GROWABLE_HEAP_U32()[options]):void 0,sampleRate:GROWABLE_HEAP_I32()[options+1]||void 0}:void 0;return ctx&&emscriptenRegisterAudioObject(new ctx(opts))};var _emscripten_create_wasm_audio_worklet_node=(contextHandle,name,options,callback,userData)=>{assert(contextHandle,`Called emscripten_create_wasm_audio_worklet_node() with a null Web Audio Context handle!`);assert(EmAudio[contextHandle],`Called emscripten_create_wasm_audio_worklet_node() with a nonexisting/already freed Web Audio Context handle ${contextHandle}!`);assert(EmAudio[contextHandle]instanceof(window.AudioContext||window.webkitAudioContext),`Called emscripten_create_wasm_audio_worklet_node() on a context handle ${contextHandle} that is not an AudioContext, but of type ${typeof EmAudio[contextHandle]}`);options>>=2;function readChannelCountArray(heapIndex,numOutputs){let channelCounts=[];while(numOutputs--)channelCounts.push(GROWABLE_HEAP_U32()[heapIndex++]);return channelCounts}let opts=options?{numberOfInputs:GROWABLE_HEAP_I32()[options],numberOfOutputs:GROWABLE_HEAP_I32()[options+1],outputChannelCount:GROWABLE_HEAP_U32()[options+2]?readChannelCountArray(GROWABLE_HEAP_U32()[options+2]>>2,GROWABLE_HEAP_I32()[options+1]):void 0,processorOptions:{"cb":callback,"ud":userData}}:void 0;return emscriptenRegisterAudioObject(new AudioWorkletNode(EmAudio[contextHandle],UTF8ToString(name),opts))};var _emscripten_create_wasm_audio_worklet_processor_async=(contextHandle,options,callback,userData)=>{assert(contextHandle,`Called emscripten_create_wasm_audio_worklet_processor_async() with a null Web Audio Context handle!`);assert(EmAudio[contextHandle],`Called emscripten_create_wasm_audio_worklet_processor_async() with a nonexisting/already freed Web Audio Context handle ${contextHandle}!`);assert(EmAudio[contextHandle]instanceof(window.AudioContext||window.webkitAudioContext),`Called emscripten_create_wasm_audio_worklet_processor_async() on a context handle ${contextHandle} that is not an AudioContext, but of type ${typeof EmAudio[contextHandle]}`);options>>=2;let audioParams=[],numAudioParams=GROWABLE_HEAP_U32()[options+1],audioParamDescriptors=GROWABLE_HEAP_U32()[options+2]>>2,i=0;while(numAudioParams--){audioParams.push({name:i++,defaultValue:GROWABLE_HEAP_F32()[audioParamDescriptors++],minValue:GROWABLE_HEAP_F32()[audioParamDescriptors++],maxValue:GROWABLE_HEAP_F32()[audioParamDescriptors++],automationRate:["a","k"][GROWABLE_HEAP_U32()[audioParamDescriptors++]]+"-rate"})}EmAudio[contextHandle].audioWorklet.bootstrapMessage.port.postMessage({_wpn:UTF8ToString(GROWABLE_HEAP_U32()[options]),audioParams:audioParams,contextHandle:contextHandle,callback:callback,userData:userData})};var _emscripten_date_now=()=>Date.now();var _emscripten_destroy_audio_context=contextHandle=>{assert(EmAudio[contextHandle],`Called emscripten_destroy_audio_context() on an already freed context handle ${contextHandle}`);assert(EmAudio[contextHandle]instanceof(window.AudioContext||window.webkitAudioContext),`Called emscripten_destroy_audio_context() on a context handle ${contextHandle} that is not an AudioContext, but of type ${typeof EmAudio[contextHandle]}`);EmAudio[contextHandle].suspend();delete EmAudio[contextHandle]};var _emscripten_destroy_web_audio_node=objectHandle=>{assert(EmAudio[objectHandle],`Called emscripten_destroy_web_audio_node() on a nonexisting/already freed object handle ${objectHandle}`);assert(EmAudio[objectHandle].disconnect,`Called emscripten_destroy_web_audio_node() on a handle ${objectHandle} that is not an Web Audio Node, but of type ${typeof EmAudio[objectHandle]}`);EmAudio[objectHandle].disconnect();delete EmAudio[objectHandle]};var _emscripten_get_now;if(typeof performance!="undefined"&&performance.now){_emscripten_get_now=()=>performance.now()}else{_emscripten_get_now=Date.now}var getHeapMax=()=>2147483648;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){err(`growMemory: Attempted to grow heap from ${b.byteLength} bytes to ${size} bytes, but got error: ${e}`)}};var _emscripten_resize_heap=requestedSize=>{var oldSize=GROWABLE_HEAP_U8().length;requestedSize>>>=0;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){err(`Cannot enlarge memory, requested ${requestedSize} bytes, but the limit is ${maxHeapSize} bytes!`);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}}err(`Failed to grow the heap from ${oldSize} bytes to ${newSize} bytes, not enough memory!`);return false};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}checkStackCookie();if(e instanceof WebAssembly.RuntimeError){if(_emscripten_stack_get_current()<=0){err("Stack overflow detected. You can try increasing -sSTACK_SIZE (currently set to 134217728)")}}quit_(1,e)};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var SYSCALLS={varargs:undefined,get(){assert(SYSCALLS.varargs!=undefined);var ret=GROWABLE_HEAP_I32()[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret},getp(){return SYSCALLS.get()},getStr(ptr){var ret=UTF8ToString(ptr);return ret}};var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;checkUnflushedContent();if(keepRuntimeAlive()&&!implicit){var msg=`program exited (with status: ${status}), but keepRuntimeAlive() is set (counter=${runtimeKeepaliveCounter}) due to an async operation, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)`;readyPromiseReject(msg);err(msg)}_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){err("user callback triggered after runtime exited or application aborted. Ignoring.");return}try{func();maybeExit()}catch(e){handleException(e)}};var safeSetTimeout=(func,timeout)=>setTimeout(()=>{callUserCallback(func)},timeout);var preloadPlugins=Module["preloadPlugins"]||[];var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining{assert(img.complete,`Image ${name} could not be decoded`);var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;URL.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=event=>{err(`Image ${url} could not be decoded`);if(onerror)onerror()};img.src=url};preloadPlugins.push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;preloadedAudios[name]=audio;if(onload)onload(byteArray)}var b=new Blob([byteArray],{type:Browser.getMimetype(name)});var url=URL.createObjectURL(b);assert(typeof url=="string","createObjectURL must return a url as a string");var audio=new Audio;audio.addEventListener("canplaythrough",()=>finish(audio),false);audio.onerror=function audio_onerror(event){if(done)return;err(`warning: browser could not fully decode audio ${name}, trying slower base64 approach`);function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(()=>{finish(audio)},1e4)};preloadPlugins.push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(()=>{});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(()=>{});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",ev=>{if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(callback=>callback());Browser.init()}return ctx},destroyContext(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer=="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas=="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?()=>canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]):null)||(canvasContainer["webkitRequestFullScreen"]?()=>canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]):null);canvasContainer.requestFullscreen()},requestFullScreen(){abort("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||(()=>{});CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame(func){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout(func,timeout){return safeSetTimeout(func,timeout)},safeRequestAnimationFrame(func){return Browser.requestAnimationFrame(()=>{callUserCallback(func)})},getMimetype(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;assert(typeof scrollX!="undefined"&&typeof scrollY!="undefined","Unable to retrieve scroll position, mouse positions likely broken.");if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(listener=>listener(canvas.width,canvas.height))},setCanvasSize(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){if(typeof SDL!="undefined"){var flags=GROWABLE_HEAP_U32()[SDL.screen>>2];flags=flags|8388608;GROWABLE_HEAP_I32()[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){var flags=GROWABLE_HEAP_U32()[SDL.screen>>2];flags=flags&~8388608;GROWABLE_HEAP_I32()[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h{Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){err("emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up.");return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof Browser.setImmediate=="undefined"){if(typeof setImmediate=="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=event=>{if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);Browser.setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}else{Browser.setImmediate=setImmediate}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){Browser.setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0};var setMainLoop=(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming)=>{assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}if(Browser.mainLoop.method==="timeout"&&Module.ctx){warnOnce("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");Browser.mainLoop.method=""}Browser.mainLoop.runIter(browserIterationFunc);checkStackCookie();if(!checkIsRunning())return;if(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0){_emscripten_set_main_loop_timing(0,1e3/fps)}else{_emscripten_set_main_loop_timing(1,1)}Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}};var _emscripten_set_main_loop=(func,fps,simulateInfiniteLoop)=>{var browserIterationFunc=()=>dynCall_v.call(null,func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)};var _emscripten_sleep=ms=>Asyncify.handleSleep(wakeUp=>safeSetTimeout(wakeUp,ms));_emscripten_sleep.isAsync=true;var _wasmWorkersID=1;var _EmAudioDispatchProcessorCallback=e=>{let data=e.data,wasmCall=data["_wsc"];wasmCall&&getWasmTableEntry(wasmCall)(...data["x"])};var _emscripten_start_wasm_audio_worklet_thread_async=(contextHandle,stackLowestAddress,stackSize,callback,userData)=>{assert(contextHandle,`Called emscripten_start_wasm_audio_worklet_thread_async() with a null Web Audio Context handle!`);assert(EmAudio[contextHandle],`Called emscripten_start_wasm_audio_worklet_thread_async() with a nonexisting/already freed Web Audio Context handle ${contextHandle}!`);assert(EmAudio[contextHandle]instanceof(window.AudioContext||window.webkitAudioContext),`Called emscripten_start_wasm_audio_worklet_thread_async() on a context handle ${contextHandle} that is not an AudioContext, but of type ${typeof EmAudio[contextHandle]}`);let audioContext=EmAudio[contextHandle],audioWorklet=audioContext.audioWorklet;assert(stackLowestAddress!=0,"AudioWorklets require a dedicated stack space for audio data marshalling between Wasm and JS!");assert(stackLowestAddress%16==0,`AudioWorklet stack should be aligned to 16 bytes! (was ${stackLowestAddress} == ${stackLowestAddress%16} mod 16) Use e.g. memalign(16, stackSize) to align the stack!`);assert(stackSize!=0,"AudioWorklets require a dedicated stack space for audio data marshalling between Wasm and JS!");assert(stackSize%16==0,`AudioWorklet stack size should be a multiple of 16 bytes! (was ${stackSize} == ${stackSize%16} mod 16)`);assert(!audioContext.audioWorkletInitialized,"emscripten_create_wasm_audio_worklet() was already called for AudioContext "+contextHandle+"! Only call this function once per AudioContext!");audioContext.audioWorkletInitialized=1;let audioWorkletCreationFailed=()=>{((a1,a2,a3)=>dynCall_viii.apply(null,[callback,a1,a2,a3]))(contextHandle,0,userData)};if(!audioWorklet){return audioWorkletCreationFailed()}audioWorklet.addModule("amy-audioin.aw.js").then(()=>{audioWorklet.bootstrapMessage=new AudioWorkletNode(audioContext,"message",{processorOptions:{"$ww":_wasmWorkersID++,"wasm":wasmModule,"wasmMemory":wasmMemory,"sb":stackLowestAddress,"sz":stackSize}});audioWorklet.bootstrapMessage.port.onmessage=_EmAudioDispatchProcessorCallback;return audioWorklet.addModule(Module["mainScriptUrlOrBlob"]||_scriptDir)}).then(()=>{((a1,a2,a3)=>dynCall_viii.apply(null,[callback,a1,a2,a3]))(contextHandle,1,userData)}).catch(audioWorkletCreationFailed)};var _fd_close=fd=>{abort("fd_close called without SYSCALLS_REQUIRE_FILESYSTEM")};var convertI32PairToI53Checked=(lo,hi)=>{assert(lo==lo>>>0||lo==(lo|0));assert(hi===(hi|0));return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN};function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);return 70}var printCharBuffers=[null,[],[]];var printChar=(stream,curr)=>{var buffer=printCharBuffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}};var flush_NO_FILESYSTEM=()=>{_fflush(0);if(printCharBuffers[1].length)printChar(1,10);if(printCharBuffers[2].length)printChar(2,10)};var _fd_write=(fd,iov,iovcnt,pnum)=>{var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_U32()[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0};var runAndAbortIfError=func=>{try{return func()}catch(e){abort(e)}};var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};var runtimeKeepalivePop=()=>{assert(runtimeKeepaliveCounter>0);runtimeKeepaliveCounter-=1};var Asyncify={instrumentWasmImports(imports){var importPattern=/^(invoke_.*|__asyncjs__.*)$/;for(var x in imports){(function(x){var original=imports[x];var sig=original.sig;if(typeof original=="function"){var isAsyncifyImport=original.isAsync||importPattern.test(x);imports[x]=function(){var originalAsyncifyState=Asyncify.state;try{return original.apply(null,arguments)}finally{var changedToDisabled=originalAsyncifyState===Asyncify.State.Normal&&Asyncify.state===Asyncify.State.Disabled;var ignoredInvoke=x.startsWith("invoke_")&&true;if(Asyncify.state!==originalAsyncifyState&&!isAsyncifyImport&&!changedToDisabled&&!ignoredInvoke){throw new Error(`import ${x} was not in ASYNCIFY_IMPORTS, but changed the state`)}}}}})(x)}},instrumentWasmExports(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original=="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:128e3,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},maybeStopUnwind(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_unwind);if(typeof Fibers!="undefined"){Fibers.trampoline()}}},whenDone(){assert(Asyncify.currData,"Tried to wait for an async operation when none is in progress.");assert(!Asyncify.asyncPromiseHandlers,"Cannot have multiple async operations in flight at once");return new Promise((resolve,reject)=>{Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader(ptr,stack,stackSize){GROWABLE_HEAP_U32()[ptr>>2]=stack;GROWABLE_HEAP_U32()[ptr+4>>2]=stack+stackSize},setDataRewindFunc(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);GROWABLE_HEAP_I32()[ptr+8>>2]=rewindId},getDataRewindFunc(ptr){var id=GROWABLE_HEAP_I32()[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=wasmExports[name];return func},doRewind(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep(startAsync){assert(Asyncify.state!==Asyncify.State.Disabled,"Asyncify cannot be done during or after the runtime exits");if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync((handleSleepReturnValue=0)=>{assert(!handleSleepReturnValue||typeof handleSleepReturnValue=="number"||typeof handleSleepReturnValue=="boolean");if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue;reachedCallback=true;if(!reachedAfterCallback){return}assert(!Asyncify.exportCallStack.length,"Waking up (starting to rewind) must be done from JS, without compiled code on the stack.");Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(()=>_asyncify_start_rewind(Asyncify.currData));if(typeof Browser!="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();if(typeof Browser!="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}runAndAbortIfError(()=>_asyncify_start_unwind(Asyncify.currData))}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_rewind);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(func=>callUserCallback(func))}else{abort(`invalid state: ${Asyncify.state}`)}return Asyncify.handleSleepReturnValue},handleAsync(startAsync){return Asyncify.handleSleep(wakeUp=>{startAsync().then(wakeUp)})}};var getCFunc=ident=>{var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func};var writeArrayToMemory=(array,buffer)=>{assert(array.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)");GROWABLE_HEAP_I8().set(array,buffer)};var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{assert(typeof str==="string",`stringToUTF8Array expects a string (got ${typeof str})`);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++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;if(u>1114111)warnOnce("Invalid Unicode code point "+ptrToString(u)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF).");heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>{assert(typeof maxBytesToWrite=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!");return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)};var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};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;assert(returnType!=="array",'Return type should not be "array".');if(args){for(var i=0;ifunction(){return ccall(ident,returnType,argTypes,arguments,opts)};Module["requestFullscreen"]=Browser.requestFullscreen;Module["requestFullScreen"]=Browser.requestFullScreen;Module["requestAnimationFrame"]=Browser.requestAnimationFrame;Module["setCanvasSize"]=Browser.setCanvasSize;Module["pauseMainLoop"]=Browser.mainLoop.pause;Module["resumeMainLoop"]=Browser.mainLoop.resume;Module["getUserMedia"]=Browser.getUserMedia;Module["createContext"]=Browser.createContext;var preloadedImages={};var preloadedAudios={};function checkIncomingModuleAPI(){ignoredModuleProp("fetchSettings")}var wasmImports={__assert_fail:___assert_fail,_emscripten_get_now_is_monotonic:__emscripten_get_now_is_monotonic,abort:_abort,emscripten_asm_const_int:_emscripten_asm_const_int,emscripten_create_audio_context:_emscripten_create_audio_context,emscripten_create_wasm_audio_worklet_node:_emscripten_create_wasm_audio_worklet_node,emscripten_create_wasm_audio_worklet_processor_async:_emscripten_create_wasm_audio_worklet_processor_async,emscripten_date_now:_emscripten_date_now,emscripten_destroy_audio_context:_emscripten_destroy_audio_context,emscripten_destroy_web_audio_node:_emscripten_destroy_web_audio_node,emscripten_get_now:_emscripten_get_now,emscripten_resize_heap:_emscripten_resize_heap,emscripten_set_main_loop:_emscripten_set_main_loop,emscripten_sleep:_emscripten_sleep,emscripten_start_wasm_audio_worklet_thread_async:_emscripten_start_wasm_audio_worklet_thread_async,exit:_exit,fd_close:_fd_close,fd_seek:_fd_seek,fd_write:_fd_write,memory:wasmMemory};Asyncify.instrumentWasmImports(wasmImports);var wasmExports=createWasm();var ___wasm_call_ctors=createExportWrapper("__wasm_call_ctors");var _free=Module["_free"]=createExportWrapper("free");var _malloc=Module["_malloc"]=createExportWrapper("malloc");var _amy_start=Module["_amy_start"]=createExportWrapper("amy_start");var _amy_reset_sysclock=Module["_amy_reset_sysclock"]=createExportWrapper("amy_reset_sysclock");var _amy_play_message=Module["_amy_play_message"]=createExportWrapper("amy_play_message");var _sequencer_ticks=Module["_sequencer_ticks"]=createExportWrapper("sequencer_ticks");var ___errno_location=createExportWrapper("__errno_location");var _ma_device__on_notification_unlocked=Module["_ma_device__on_notification_unlocked"]=createExportWrapper("ma_device__on_notification_unlocked");var _ma_malloc_emscripten=Module["_ma_malloc_emscripten"]=createExportWrapper("ma_malloc_emscripten");var _ma_free_emscripten=Module["_ma_free_emscripten"]=createExportWrapper("ma_free_emscripten");var _ma_device_process_pcm_frames_capture__webaudio=Module["_ma_device_process_pcm_frames_capture__webaudio"]=createExportWrapper("ma_device_process_pcm_frames_capture__webaudio");var _ma_device_process_pcm_frames_playback__webaudio=Module["_ma_device_process_pcm_frames_playback__webaudio"]=createExportWrapper("ma_device_process_pcm_frames_playback__webaudio");var _amy_live_start=Module["_amy_live_start"]=createExportWrapper("amy_live_start");var _fflush=Module["_fflush"]=createExportWrapper("fflush");var _emscripten_stack_init=()=>(_emscripten_stack_init=wasmExports["emscripten_stack_init"])();var _emscripten_stack_get_free=()=>(_emscripten_stack_get_free=wasmExports["emscripten_stack_get_free"])();var _emscripten_stack_get_base=()=>(_emscripten_stack_get_base=wasmExports["emscripten_stack_get_base"])();var _emscripten_stack_get_end=()=>(_emscripten_stack_get_end=wasmExports["emscripten_stack_get_end"])();var _emscripten_wasm_worker_initialize=Module["_emscripten_wasm_worker_initialize"]=createExportWrapper("emscripten_wasm_worker_initialize");var stackSave=createExportWrapper("stackSave");var stackRestore=createExportWrapper("stackRestore");var stackAlloc=createExportWrapper("stackAlloc");var _emscripten_stack_get_current=()=>(_emscripten_stack_get_current=wasmExports["emscripten_stack_get_current"])();var dynCall_ii=Module["dynCall_ii"]=createExportWrapper("dynCall_ii");var dynCall_vii=Module["dynCall_vii"]=createExportWrapper("dynCall_vii");var dynCall_iiii=Module["dynCall_iiii"]=createExportWrapper("dynCall_iiii");var dynCall_iii=Module["dynCall_iii"]=createExportWrapper("dynCall_iii");var dynCall_iiiii=Module["dynCall_iiiii"]=createExportWrapper("dynCall_iiiii");var dynCall_viii=Module["dynCall_viii"]=createExportWrapper("dynCall_viii");var dynCall_viiii=Module["dynCall_viiii"]=createExportWrapper("dynCall_viiii");var dynCall_v=Module["dynCall_v"]=createExportWrapper("dynCall_v");var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=createExportWrapper("dynCall_iiiiiiii");var dynCall_iiiji=Module["dynCall_iiiji"]=createExportWrapper("dynCall_iiiji");var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=createExportWrapper("dynCall_iiiiiii");var dynCall_jii=Module["dynCall_jii"]=createExportWrapper("dynCall_jii");var dynCall_jiji=Module["dynCall_jiji"]=createExportWrapper("dynCall_jiji");var dynCall_iidiiii=Module["dynCall_iidiiii"]=createExportWrapper("dynCall_iidiiii");var _asyncify_start_unwind=createExportWrapper("asyncify_start_unwind");var _asyncify_stop_unwind=createExportWrapper("asyncify_stop_unwind");var _asyncify_start_rewind=createExportWrapper("asyncify_start_rewind");var _asyncify_stop_rewind=createExportWrapper("asyncify_stop_rewind");Module["stackAlloc"]=stackAlloc;Module["stackSave"]=stackSave;Module["stackRestore"]=stackRestore;Module["ccall"]=ccall;Module["cwrap"]=cwrap;var missingLibrarySymbols=["writeI53ToI64","writeI53ToI64Clamped","writeI53ToI64Signaling","writeI53ToU64Clamped","writeI53ToU64Signaling","readI53FromI64","readI53FromU64","convertI32PairToI53","convertU32PairToI53","zeroMemory","isLeapYear","ydayFromDate","arraySum","addDays","setErrNo","inetPton4","inetNtop4","inetPton6","inetNtop6","readSockaddr","writeSockaddr","getHostByName","initRandomFill","randomFill","getCallstack","emscriptenLog","convertPCtoSourceLocation","runMainThreadEmAsm","jstoi_q","jstoi_s","getExecutableName","listenOnce","autoResumeAudioContext","dynCallLegacy","getDynCaller","dynCall","asmjsMangle","asyncLoad","alignMemory","mmapAlloc","handleAllocatorInit","HandleAllocator","getNativeTypeSize","STACK_SIZE","STACK_ALIGN","POINTER_SIZE","ASSERTIONS","uleb128Encode","generateFuncType","convertJsFunctionToWasm","getEmptyTableSlot","updateTableMap","getFunctionAddress","addFunction","removeFunction","reallyNegative","unSign","strLen","reSign","formatString","intArrayFromString","intArrayToString","AsciiToString","stringToAscii","UTF16ToString","stringToUTF16","lengthBytesUTF16","UTF32ToString","stringToUTF32","lengthBytesUTF32","stringToNewUTF8","registerKeyEventCallback","maybeCStringToJsString","findEventTarget","findCanvasEventTarget","getBoundingClientRect","fillMouseEventData","registerMouseEventCallback","registerWheelEventCallback","registerUiEventCallback","registerFocusEventCallback","fillDeviceOrientationEventData","registerDeviceOrientationEventCallback","fillDeviceMotionEventData","registerDeviceMotionEventCallback","screenOrientation","fillOrientationChangeEventData","registerOrientationChangeEventCallback","fillFullscreenChangeEventData","registerFullscreenChangeEventCallback","JSEvents_requestFullscreen","JSEvents_resizeCanvasForFullscreen","registerRestoreOldStyle","hideEverythingExceptGivenElement","restoreHiddenElements","setLetterbox","softFullscreenResizeWebGLRenderTarget","doRequestFullscreen","fillPointerlockChangeEventData","registerPointerlockChangeEventCallback","registerPointerlockErrorEventCallback","requestPointerLock","fillVisibilityChangeEventData","registerVisibilityChangeEventCallback","registerTouchEventCallback","fillGamepadEventData","registerGamepadEventCallback","registerBeforeUnloadEventCallback","fillBatteryEventData","battery","registerBatteryEventCallback","setCanvasElementSize","getCanvasElementSize","demangle","demangleAll","jsStackTrace","stackTrace","getEnvStrings","checkWasiClock","wasiRightsToMuslOFlags","wasiOFlagsToMuslOFlags","createDyncallWrapper","setImmediateWrapped","clearImmediateWrapped","polyfillSetImmediate","getPromise","makePromise","idsToPromises","makePromiseCallback","ExceptionInfo","findMatchingCatch","getSocketFromFD","getSocketAddress","FS_createPreloadedFile","FS_modeStringToFlags","FS_getMode","FS_stdin_getChar","FS_createDataFile","FS_unlink","FS_mkdirTree","_setNetworkCallback","heapObjectForWebGLType","heapAccessShiftForWebGLHeap","webgl_enable_ANGLE_instanced_arrays","webgl_enable_OES_vertex_array_object","webgl_enable_WEBGL_draw_buffers","webgl_enable_WEBGL_multi_draw","emscriptenWebGLGet","computeUnpackAlignedImageSize","colorChannelsInGlTextureFormat","emscriptenWebGLGetTexPixelData","__glGenObject","emscriptenWebGLGetUniform","webglGetUniformLocation","webglPrepareUniformLocationsBeforeFirstUse","webglGetLeftBracePos","emscriptenWebGLGetVertexAttrib","__glGetActiveAttribOrUniform","writeGLArray","registerWebGlEventCallback","SDL_unicode","SDL_ttfContext","SDL_audio","ALLOC_NORMAL","ALLOC_STACK","allocate","writeStringToMemory","writeAsciiToMemory","_wasmWorkerPostFunction1","_wasmWorkerPostFunction2","_wasmWorkerPostFunction3","emscripten_audio_worklet_post_function_1","emscripten_audio_worklet_post_function_2","emscripten_audio_worklet_post_function_3"];missingLibrarySymbols.forEach(missingLibrarySymbol);var unexportedSymbols=["run","addOnPreRun","addOnInit","addOnPreMain","addOnExit","addOnPostRun","addRunDependency","removeRunDependency","FS_createFolder","FS_createPath","FS_createLazyFile","FS_createLink","FS_createDevice","FS_readFile","out","err","callMain","abort","wasmMemory","wasmExports","getTempRet0","setTempRet0","writeStackCookie","checkStackCookie","convertI32PairToI53Checked","ptrToString","exitJS","getHeapMax","growMemory","ENV","MONTH_DAYS_REGULAR","MONTH_DAYS_LEAP","MONTH_DAYS_REGULAR_CUMULATIVE","MONTH_DAYS_LEAP_CUMULATIVE","ERRNO_CODES","ERRNO_MESSAGES","DNS","Protocols","Sockets","timers","warnOnce","UNWIND_CACHE","readEmAsmArgsArray","readEmAsmArgs","runEmAsmFunction","handleException","keepRuntimeAlive","runtimeKeepalivePush","runtimeKeepalivePop","callUserCallback","maybeExit","wasmTable","noExitRuntime","getCFunc","sigToWasmTypes","freeTableIndexes","functionsInTableMap","setValue","getValue","PATH","PATH_FS","UTF8Decoder","UTF8ArrayToString","UTF8ToString","stringToUTF8Array","stringToUTF8","lengthBytesUTF8","UTF16Decoder","stringToUTF8OnStack","writeArrayToMemory","JSEvents","specialHTMLTargets","currentFullscreenStrategy","restoreOldWindowedStyle","ExitStatus","flush_NO_FILESYSTEM","safeSetTimeout","promiseMap","uncaughtExceptionCount","exceptionLast","exceptionCaught","Browser","setMainLoop","wget","SYSCALLS","preloadPlugins","FS_stdin_getChar_buffer","FS","MEMFS","TTY","PIPEFS","SOCKFS","tempFixedLengthArray","miniTempWebGLFloatBuffers","miniTempWebGLIntBuffers","GL","emscripten_webgl_power_preferences","AL","GLUT","EGL","GLEW","IDBStore","runAndAbortIfError","Asyncify","Fibers","SDL","SDL_gfx","allocateUTF8","allocateUTF8OnStack","_wasmWorkers","_wasmWorkersID","_wasmWorkerDelayedMessageQueue","_wasmWorkerAppendToQueue","_wasmWorkerRunPostMessage","_wasmWorkerInitializeRuntime","EmAudio","EmAudioCounter","emscriptenRegisterAudioObject","emscriptenDestroyAudioContext","emscriptenGetAudioObject","_EmAudioDispatchProcessorCallback"];unexportedSymbols.forEach(unexportedRuntimeSymbol);var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function stackCheckInit(){_emscripten_stack_init();writeStackCookie()}function run(){if(runDependencies>0){return}stackCheckInit();if(ENVIRONMENT_IS_WASM_WORKER){readyPromiseResolve(Module);return initRuntime()}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();assert(!Module["_main"],'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]');postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}checkStackCookie()}function checkUnflushedContent(){var oldOut=out;var oldErr=err;var has=false;out=err=x=>{has=true};try{flush_NO_FILESYSTEM()}catch(e){}out=oldOut;err=oldErr;if(has){warnOnce("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the Emscripten FAQ), or make sure to emit a newline when you printf etc.");warnOnce("(this may also be due to not including full filesystem support - try building with -sFORCE_FILESYSTEM)")}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}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});["_amy_play_message","_amy_reset_sysclock","_amy_live_start","_amy_start","_sequencer_ticks","_malloc","_free","_emscripten_wasm_worker_initialize","___set_thread_state","___indirect_function_table","_ma_device__on_notification_unlocked","_ma_malloc_emscripten","_ma_free_emscripten","_ma_device_process_pcm_frames_capture__webaudio","_ma_device_process_pcm_frames_playback__webaudio","_fflush","___start_em_asm","___stop_em_asm","onRuntimeInitialized"].forEach(prop=>{if(!Object.getOwnPropertyDescriptor(Module["ready"],prop)){Object.defineProperty(Module["ready"],prop,{get:()=>abort("You are getting "+prop+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js"),set:()=>abort("You are setting "+prop+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")})}});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_AUDIO_WORKLET=typeof AudioWorkletGlobalScope!=="undefined";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_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER&&!ENVIRONMENT_IS_AUDIO_WORKLET;if(Module["ENVIRONMENT"]){throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)")}var ENVIRONMENT_IS_WASM_WORKER=Module["$ww"];var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_NODE){if(typeof process=="undefined"||!process.release||process.release.name!=="node")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");var nodeVersion=process.versions.node;var numericVersion=nodeVersion.split(".").slice(0,3);numericVersion=numericVersion[0]*1e4+numericVersion[1]*100+numericVersion[2].split("-")[0]*1;if(numericVersion<16e4){throw new Error("This emscripten-generated code requires node v16.0.0 (detected v"+nodeVersion+")")}var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}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)}assert(ret.buffer);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};Module["inspect"]=()=>"[Emscripten Module object]";let nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof process=="object"&&typeof require==="function"||typeof window=="object"||typeof importScripts=="function")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");if(typeof read!="undefined"){read_=read}readBinary=f=>{if(typeof readbuffer=="function"){return new Uint8Array(readbuffer(f))}let data=read(f,"binary");assert(typeof data=="object");return data};readAsync=(f,onload,onerror)=>{setTimeout(()=>onload(readBinary(f)))};if(typeof clearTimeout=="undefined"){globalThis.clearTimeout=id=>{}}if(typeof setTimeout=="undefined"){globalThis.setTimeout=f=>typeof f=="function"?f():abort()}if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit=="function"){quit_=(status,toThrow)=>{setTimeout(()=>{if(!(toThrow instanceof ExitStatus)){let toLog=toThrow;if(toThrow&&typeof toThrow=="object"&&toThrow.stack){toLog=[toThrow,toThrow.stack]}err(`exiting due to exception: ${toLog}`)}quit(status)});throw toThrow}}if(typeof print!="undefined"){if(typeof console=="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!="undefined"?printErr:print}}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.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}if(!(typeof window=="object"||typeof importScripts=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");{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_AUDIO_WORKLET){throw new Error("environment detection error")}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;checkIncomingModuleAPI();if(Module["arguments"])arguments_=Module["arguments"];legacyModuleProp("arguments","arguments_");if(Module["thisProgram"])thisProgram=Module["thisProgram"];legacyModuleProp("thisProgram","thisProgram");if(Module["quit"])quit_=Module["quit"];legacyModuleProp("quit","quit_");assert(typeof Module["memoryInitializerPrefixURL"]=="undefined","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["pthreadMainPrefixURL"]=="undefined","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["cdInitializerPrefixURL"]=="undefined","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["filePackagePrefixURL"]=="undefined","Module.filePackagePrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["read"]=="undefined","Module.read option was removed (modify read_ in JS)");assert(typeof Module["readAsync"]=="undefined","Module.readAsync option was removed (modify readAsync in JS)");assert(typeof Module["readBinary"]=="undefined","Module.readBinary option was removed (modify readBinary in JS)");assert(typeof Module["setWindowTitle"]=="undefined","Module.setWindowTitle option was removed (modify emscripten_set_window_title in JS)");assert(typeof Module["TOTAL_MEMORY"]=="undefined","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY");legacyModuleProp("asm","wasmExports");legacyModuleProp("read","read_");legacyModuleProp("readAsync","readAsync");legacyModuleProp("readBinary","readBinary");legacyModuleProp("setWindowTitle","setWindowTitle");assert(!ENVIRONMENT_IS_SHELL,"shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable.");var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];legacyModuleProp("wasmBinary","wasmBinary");if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed"+(text?": "+text:""))}}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)}assert(!Module["STACK_SIZE"],"STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time");assert(typeof Int32Array!="undefined"&&typeof Float64Array!=="undefined"&&Int32Array.prototype.subarray!=undefined&&Int32Array.prototype.set!=undefined,"JS engine does not provide full typed array support");var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||268435456;legacyModuleProp("INITIAL_MEMORY","INITIAL_MEMORY");assert(INITIAL_MEMORY>=134217728,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+INITIAL_MEMORY+"! (STACK_SIZE="+134217728+")");if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/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;assert(INITIAL_MEMORY%65536===0);function writeStackCookie(){var max=_emscripten_stack_get_end();assert((max&3)==0);if(max==0){max+=4}GROWABLE_HEAP_U32()[max>>2]=34821223;GROWABLE_HEAP_U32()[max+4>>2]=2310721022;GROWABLE_HEAP_U32()[0>>2]=1668509029}function checkStackCookie(){if(ABORT)return;var max=_emscripten_stack_get_end();if(max==0){max+=4}var cookie1=GROWABLE_HEAP_U32()[max>>2];var cookie2=GROWABLE_HEAP_U32()[max+4>>2];if(cookie1!=34821223||cookie2!=2310721022){abort(`Stack overflow! Stack cookie has been overwritten at ${ptrToString(max)}, expected hex dwords 0x89BACDFE and 0x2135467, but received ${ptrToString(cookie2)} ${ptrToString(cookie1)}`)}if(GROWABLE_HEAP_U32()[0>>2]!=1668509029){abort("Runtime error: The application has corrupted its heap memory area (address zero)!")}}(function(){var h16=new Int16Array(1);var h8=new Int8Array(h16.buffer);h16[0]=25459;if(h8[0]!==115||h8[1]!==99)throw"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)"})();var __ATPRERUN__=[];var __ATINIT__=[];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(){assert(!runtimeInitialized);runtimeInitialized=true;if(ENVIRONMENT_IS_WASM_WORKER)return _wasmWorkerInitializeRuntime();checkStackCookie();callRuntimeCallbacks(__ATINIT__)}function postRun(){checkStackCookie();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)}assert(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;var runDependencyTracking={};function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(!runDependencyTracking[id]);runDependencyTracking[id]=1;if(runDependencyWatcher===null&&typeof setInterval!="undefined"){runDependencyWatcher=setInterval(()=>{if(ABORT){clearInterval(runDependencyWatcher);runDependencyWatcher=null;return}var shown=false;for(var dep in runDependencyTracking){if(!shown){shown=true;err("still waiting on run dependencies:")}err(`dependency: ${dep}`)}if(shown){err("(end of list)")}},1e4)}}else{err("warning: run dependency added without ID")}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(runDependencyTracking[id]);delete runDependencyTracking[id]}else{err("warning: run dependency removed without ID")}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;if(what.indexOf("RuntimeError: unreachable")>=0){what+='. "unreachable" may be due to ASYNCIFY_STACK_SIZE not being large enough (try increasing it)'}var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var FS={error(){abort("Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -sFORCE_FILESYSTEM")},init(){FS.error()},createDataFile(){FS.error()},createPreloadedFile(){FS.error()},createLazyFile(){FS.error()},open(){FS.error()},mkdev(){FS.error()},registerDevice(){FS.error()},analyzePath(){FS.error()},ErrnoError(){FS.error()}};Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");function createExportWrapper(name){return function(){assert(runtimeInitialized,`native function \`${name}\` called before runtime initialization`);var f=wasmExports[name];assert(f,`exported native function \`${name}\` not found`);return f.apply(null,arguments)}}var wasmBinaryFile;wasmBinaryFile="amy-audioin.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}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(instance=>instance).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);if(isFileURI(wasmBinaryFile)){err(`warning: Loading from a file URI (${wasmBinaryFile}) is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing`)}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={"env":wasmImports,"wasi_snapshot_preview1":wasmImports};function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmTable=wasmExports["__indirect_function_table"];assert(wasmTable,"table not found in wasm exports");Module["wasmTable"]=wasmTable;addOnInit(wasmExports["__wasm_call_ctors"]);wasmModule=module;removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");var trueModule=Module;function receiveInstantiationResult(result){assert(Module===trueModule,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?");trueModule=null;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{}}function legacyModuleProp(prop,newName,incomming=true){if(!Object.getOwnPropertyDescriptor(Module,prop)){Object.defineProperty(Module,prop,{configurable:true,get(){let extra=incomming?" (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)":"";abort(`\`Module.${prop}\` has been replaced by \`${newName}\``+extra)}})}}function ignoredModuleProp(prop){if(Object.getOwnPropertyDescriptor(Module,prop)){abort(`\`Module.${prop}\` was supplied but \`${prop}\` not included in INCOMING_MODULE_JS_API`)}}function isExportedByForceFilesystem(name){return name==="FS_createPath"||name==="FS_createDataFile"||name==="FS_createPreloadedFile"||name==="FS_unlink"||name==="addRunDependency"||name==="FS_createLazyFile"||name==="FS_createDevice"||name==="removeRunDependency"}function missingGlobal(sym,msg){if(typeof globalThis!=="undefined"){Object.defineProperty(globalThis,sym,{configurable:true,get(){warnOnce(`\`${sym}\` is not longer defined by emscripten. ${msg}`);return undefined}})}}missingGlobal("buffer","Please use HEAP8.buffer or wasmMemory.buffer");missingGlobal("asm","Please use wasmExports instead");function missingLibrarySymbol(sym){if(typeof globalThis!=="undefined"&&!Object.getOwnPropertyDescriptor(globalThis,sym)){Object.defineProperty(globalThis,sym,{configurable:true,get(){var msg=`\`${sym}\` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line`;var librarySymbol=sym;if(!librarySymbol.startsWith("_")){librarySymbol="$"+sym}msg+=` (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE='${librarySymbol}')`;if(isExportedByForceFilesystem(sym)){msg+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"}warnOnce(msg);return undefined}})}unexportedRuntimeSymbol(sym)}function unexportedRuntimeSymbol(sym){if(!Object.getOwnPropertyDescriptor(Module,sym)){Object.defineProperty(Module,sym,{configurable:true,get(){var msg=`'${sym}' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the Emscripten FAQ)`;if(isExportedByForceFilesystem(sym)){msg+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"}abort(msg)}})}}var ASM_CONSTS={1130688:$0=>{amy_sequencer_js_hook($0)},1130719:($0,$1,$2,$3,$4)=>{if(typeof window==="undefined"||(window.AudioContext||window.webkitAudioContext)===undefined){return 0}if(typeof window.miniaudio==="undefined"){window.miniaudio={referenceCount:0};window.miniaudio.device_type={};window.miniaudio.device_type.playback=$0;window.miniaudio.device_type.capture=$1;window.miniaudio.device_type.duplex=$2;window.miniaudio.device_state={};window.miniaudio.device_state.stopped=$3;window.miniaudio.device_state.started=$4;miniaudio.devices=[];miniaudio.track_device=function(device){for(var iDevice=0;iDevice0){if(miniaudio.devices[miniaudio.devices.length-1]==null){miniaudio.devices.pop()}else{break}}};miniaudio.untrack_device=function(device){for(var iDevice=0;iDevice{Module._ma_device__on_notification_unlocked(device.pDevice)},error=>{console.error("Failed to resume audiocontext",error)})}}miniaudio.unlock_event_types.map(function(event_type){document.removeEventListener(event_type,miniaudio.unlock,true)})};miniaudio.unlock_event_types.map(function(event_type){document.addEventListener(event_type,miniaudio.unlock,true)})}window.miniaudio.referenceCount+=1;return 1},1132877:()=>{if(typeof window.miniaudio!=="undefined"){window.miniaudio.referenceCount-=1;if(window.miniaudio.referenceCount===0){delete window.miniaudio}}},1133041:()=>navigator.mediaDevices!==undefined&&navigator.mediaDevices.getUserMedia!==undefined,1133145:()=>{try{var temp=new(window.AudioContext||window.webkitAudioContext);var sampleRate=temp.sampleRate;temp.close();return sampleRate}catch(e){return 0}},1133316:$0=>miniaudio.track_device({webaudio:emscriptenGetAudioObject($0),state:1}),1133405:($0,$1)=>{var getUserMediaResult=0;var audioWorklet=emscriptenGetAudioObject($0);var audioContext=emscriptenGetAudioObject($1);navigator.mediaDevices.getUserMedia({audio:true,video:false}).then(function(stream){audioContext.streamNode=audioContext.createMediaStreamSource(stream);audioContext.streamNode.connect(audioWorklet);audioWorklet.connect(audioContext.destination);getUserMediaResult=0}).catch(function(error){console.log("navigator.mediaDevices.getUserMedia Failed: "+error);getUserMediaResult=-1});return getUserMediaResult},1133967:($0,$1)=>{var audioWorklet=emscriptenGetAudioObject($0);var audioContext=emscriptenGetAudioObject($1);audioWorklet.connect(audioContext.destination);return 0},1134127:$0=>emscriptenGetAudioObject($0).sampleRate,1134179:$0=>{var device=miniaudio.get_device_by_index($0);if(device.streamNode!==undefined){device.streamNode.disconnect();device.streamNode=undefined}},1134335:$0=>{miniaudio.untrack_device_by_index($0)},1134378:$0=>{var device=miniaudio.get_device_by_index($0);device.webaudio.resume();device.state=miniaudio.device_state.started},1134503:$0=>{var device=miniaudio.get_device_by_index($0);device.webaudio.suspend();device.state=miniaudio.device_state.stopped}};function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var _wasmWorkerDelayedMessageQueue=[];var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}assert(wasmTable.get(funcPtr)==func,"JavaScript-side Wasm function table mirror is out of date!");return func};var _wasmWorkerRunPostMessage=e=>{let data=ENVIRONMENT_IS_NODE?e:e.data;let wasmCall=data["_wsc"];wasmCall&&getWasmTableEntry(wasmCall)(...data["x"])};var _wasmWorkerAppendToQueue=e=>{_wasmWorkerDelayedMessageQueue.push(e)};var _wasmWorkerInitializeRuntime=()=>{let m=Module;assert(m["sb"]%16==0);assert(m["sz"]%16==0);_emscripten_wasm_worker_initialize(m["sb"],m["sz"]);if(typeof AudioWorkletGlobalScope==="undefined"){removeEventListener("message",_wasmWorkerAppendToQueue);_wasmWorkerDelayedMessageQueue=_wasmWorkerDelayedMessageQueue.forEach(_wasmWorkerRunPostMessage);addEventListener("message",_wasmWorkerRunPostMessage)}};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var noExitRuntime=Module["noExitRuntime"]||true;var ptrToString=ptr=>{assert(typeof ptr==="number");ptr>>>=0;return"0x"+ptr.toString(16).padStart(8,"0")};var warnOnce=text=>{if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;var UTF8ArrayToString=(heapOrArray,idx,maxBytesToRead)=>{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};var UTF8ToString=(ptr,maxBytesToRead)=>{assert(typeof ptr=="number",`UTF8ToString expects a number (got ${typeof ptr})`);return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):""};var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};var nowIsMonotonic=1;var __emscripten_get_now_is_monotonic=()=>nowIsMonotonic;var _abort=()=>{abort("native code called abort()")};var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{assert(Array.isArray(readEmAsmArgsArray));assert(buf%16==0);readEmAsmArgsArray.length=0;var ch;while(ch=GROWABLE_HEAP_U8()[sigPtr++]){var chr=String.fromCharCode(ch);var validChars=["d","f","i","p"];assert(validChars.includes(chr),`Invalid character ${ch}("${chr}") in readEmAsmArgs! Use only [${validChars}], and do not specify "v" for void return argument.`);var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?GROWABLE_HEAP_U32()[buf>>2]:ch==105?GROWABLE_HEAP_I32()[buf>>2]:GROWABLE_HEAP_F64()[buf>>3]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);assert(ASM_CONSTS.hasOwnProperty(code),`No EM_ASM constant found at address ${code}. The loaded WebAssembly file is likely out of sync with the generated JavaScript.`);return ASM_CONSTS[code].apply(null,args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var EmAudio={};var EmAudioCounter=0;var emscriptenRegisterAudioObject=object=>{assert(object,"Called emscriptenRegisterAudioObject() with a null object handle!");EmAudio[++EmAudioCounter]=object;return EmAudioCounter};var emscriptenGetAudioObject=objectHandle=>EmAudio[objectHandle];var _emscripten_create_audio_context=options=>{let ctx=window.AudioContext||window.webkitAudioContext;if(!ctx)console.error("emscripten_create_audio_context failed! Web Audio is not supported.");options>>=2;let opts=options?{latencyHint:GROWABLE_HEAP_U32()[options]?UTF8ToString(GROWABLE_HEAP_U32()[options]):void 0,sampleRate:GROWABLE_HEAP_I32()[options+1]||void 0}:void 0;return ctx&&emscriptenRegisterAudioObject(new ctx(opts))};var _emscripten_create_wasm_audio_worklet_node=(contextHandle,name,options,callback,userData)=>{assert(contextHandle,`Called emscripten_create_wasm_audio_worklet_node() with a null Web Audio Context handle!`);assert(EmAudio[contextHandle],`Called emscripten_create_wasm_audio_worklet_node() with a nonexisting/already freed Web Audio Context handle ${contextHandle}!`);assert(EmAudio[contextHandle]instanceof(window.AudioContext||window.webkitAudioContext),`Called emscripten_create_wasm_audio_worklet_node() on a context handle ${contextHandle} that is not an AudioContext, but of type ${typeof EmAudio[contextHandle]}`);options>>=2;function readChannelCountArray(heapIndex,numOutputs){let channelCounts=[];while(numOutputs--)channelCounts.push(GROWABLE_HEAP_U32()[heapIndex++]);return channelCounts}let opts=options?{numberOfInputs:GROWABLE_HEAP_I32()[options],numberOfOutputs:GROWABLE_HEAP_I32()[options+1],outputChannelCount:GROWABLE_HEAP_U32()[options+2]?readChannelCountArray(GROWABLE_HEAP_U32()[options+2]>>2,GROWABLE_HEAP_I32()[options+1]):void 0,processorOptions:{"cb":callback,"ud":userData}}:void 0;return emscriptenRegisterAudioObject(new AudioWorkletNode(EmAudio[contextHandle],UTF8ToString(name),opts))};var _emscripten_create_wasm_audio_worklet_processor_async=(contextHandle,options,callback,userData)=>{assert(contextHandle,`Called emscripten_create_wasm_audio_worklet_processor_async() with a null Web Audio Context handle!`);assert(EmAudio[contextHandle],`Called emscripten_create_wasm_audio_worklet_processor_async() with a nonexisting/already freed Web Audio Context handle ${contextHandle}!`);assert(EmAudio[contextHandle]instanceof(window.AudioContext||window.webkitAudioContext),`Called emscripten_create_wasm_audio_worklet_processor_async() on a context handle ${contextHandle} that is not an AudioContext, but of type ${typeof EmAudio[contextHandle]}`);options>>=2;let audioParams=[],numAudioParams=GROWABLE_HEAP_U32()[options+1],audioParamDescriptors=GROWABLE_HEAP_U32()[options+2]>>2,i=0;while(numAudioParams--){audioParams.push({name:i++,defaultValue:GROWABLE_HEAP_F32()[audioParamDescriptors++],minValue:GROWABLE_HEAP_F32()[audioParamDescriptors++],maxValue:GROWABLE_HEAP_F32()[audioParamDescriptors++],automationRate:["a","k"][GROWABLE_HEAP_U32()[audioParamDescriptors++]]+"-rate"})}EmAudio[contextHandle].audioWorklet.bootstrapMessage.port.postMessage({_wpn:UTF8ToString(GROWABLE_HEAP_U32()[options]),audioParams:audioParams,contextHandle:contextHandle,callback:callback,userData:userData})};var _emscripten_date_now=()=>Date.now();var _emscripten_destroy_audio_context=contextHandle=>{assert(EmAudio[contextHandle],`Called emscripten_destroy_audio_context() on an already freed context handle ${contextHandle}`);assert(EmAudio[contextHandle]instanceof(window.AudioContext||window.webkitAudioContext),`Called emscripten_destroy_audio_context() on a context handle ${contextHandle} that is not an AudioContext, but of type ${typeof EmAudio[contextHandle]}`);EmAudio[contextHandle].suspend();delete EmAudio[contextHandle]};var _emscripten_destroy_web_audio_node=objectHandle=>{assert(EmAudio[objectHandle],`Called emscripten_destroy_web_audio_node() on a nonexisting/already freed object handle ${objectHandle}`);assert(EmAudio[objectHandle].disconnect,`Called emscripten_destroy_web_audio_node() on a handle ${objectHandle} that is not an Web Audio Node, but of type ${typeof EmAudio[objectHandle]}`);EmAudio[objectHandle].disconnect();delete EmAudio[objectHandle]};var _emscripten_get_now;if(typeof performance!="undefined"&&performance.now){_emscripten_get_now=()=>performance.now()}else{_emscripten_get_now=Date.now}var getHeapMax=()=>2147483648;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){err(`growMemory: Attempted to grow heap from ${b.byteLength} bytes to ${size} bytes, but got error: ${e}`)}};var _emscripten_resize_heap=requestedSize=>{var oldSize=GROWABLE_HEAP_U8().length;requestedSize>>>=0;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){err(`Cannot enlarge memory, requested ${requestedSize} bytes, but the limit is ${maxHeapSize} bytes!`);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}}err(`Failed to grow the heap from ${oldSize} bytes to ${newSize} bytes, not enough memory!`);return false};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}checkStackCookie();if(e instanceof WebAssembly.RuntimeError){if(_emscripten_stack_get_current()<=0){err("Stack overflow detected. You can try increasing -sSTACK_SIZE (currently set to 134217728)")}}quit_(1,e)};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var SYSCALLS={varargs:undefined,get(){assert(SYSCALLS.varargs!=undefined);var ret=GROWABLE_HEAP_I32()[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret},getp(){return SYSCALLS.get()},getStr(ptr){var ret=UTF8ToString(ptr);return ret}};var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;checkUnflushedContent();if(keepRuntimeAlive()&&!implicit){var msg=`program exited (with status: ${status}), but keepRuntimeAlive() is set (counter=${runtimeKeepaliveCounter}) due to an async operation, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)`;readyPromiseReject(msg);err(msg)}_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){err("user callback triggered after runtime exited or application aborted. Ignoring.");return}try{func();maybeExit()}catch(e){handleException(e)}};var safeSetTimeout=(func,timeout)=>setTimeout(()=>{callUserCallback(func)},timeout);var preloadPlugins=Module["preloadPlugins"]||[];var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining{assert(img.complete,`Image ${name} could not be decoded`);var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;URL.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=event=>{err(`Image ${url} could not be decoded`);if(onerror)onerror()};img.src=url};preloadPlugins.push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;preloadedAudios[name]=audio;if(onload)onload(byteArray)}var b=new Blob([byteArray],{type:Browser.getMimetype(name)});var url=URL.createObjectURL(b);assert(typeof url=="string","createObjectURL must return a url as a string");var audio=new Audio;audio.addEventListener("canplaythrough",()=>finish(audio),false);audio.onerror=function audio_onerror(event){if(done)return;err(`warning: browser could not fully decode audio ${name}, trying slower base64 approach`);function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(()=>{finish(audio)},1e4)};preloadPlugins.push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(()=>{});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(()=>{});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",ev=>{if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(callback=>callback());Browser.init()}return ctx},destroyContext(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer=="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas=="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?()=>canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]):null)||(canvasContainer["webkitRequestFullScreen"]?()=>canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]):null);canvasContainer.requestFullscreen()},requestFullScreen(){abort("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||(()=>{});CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame(func){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout(func,timeout){return safeSetTimeout(func,timeout)},safeRequestAnimationFrame(func){return Browser.requestAnimationFrame(()=>{callUserCallback(func)})},getMimetype(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;assert(typeof scrollX!="undefined"&&typeof scrollY!="undefined","Unable to retrieve scroll position, mouse positions likely broken.");if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(listener=>listener(canvas.width,canvas.height))},setCanvasSize(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){if(typeof SDL!="undefined"){var flags=GROWABLE_HEAP_U32()[SDL.screen>>2];flags=flags|8388608;GROWABLE_HEAP_I32()[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){var flags=GROWABLE_HEAP_U32()[SDL.screen>>2];flags=flags&~8388608;GROWABLE_HEAP_I32()[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h{Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){err("emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up.");return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof Browser.setImmediate=="undefined"){if(typeof setImmediate=="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=event=>{if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);Browser.setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}else{Browser.setImmediate=setImmediate}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){Browser.setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0};var setMainLoop=(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming)=>{assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}if(Browser.mainLoop.method==="timeout"&&Module.ctx){warnOnce("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");Browser.mainLoop.method=""}Browser.mainLoop.runIter(browserIterationFunc);checkStackCookie();if(!checkIsRunning())return;if(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0){_emscripten_set_main_loop_timing(0,1e3/fps)}else{_emscripten_set_main_loop_timing(1,1)}Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}};var _emscripten_set_main_loop=(func,fps,simulateInfiniteLoop)=>{var browserIterationFunc=()=>dynCall_v.call(null,func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)};var _emscripten_sleep=ms=>Asyncify.handleSleep(wakeUp=>safeSetTimeout(wakeUp,ms));_emscripten_sleep.isAsync=true;var _wasmWorkersID=1;var _EmAudioDispatchProcessorCallback=e=>{let data=e.data,wasmCall=data["_wsc"];wasmCall&&getWasmTableEntry(wasmCall)(...data["x"])};var _emscripten_start_wasm_audio_worklet_thread_async=(contextHandle,stackLowestAddress,stackSize,callback,userData)=>{assert(contextHandle,`Called emscripten_start_wasm_audio_worklet_thread_async() with a null Web Audio Context handle!`);assert(EmAudio[contextHandle],`Called emscripten_start_wasm_audio_worklet_thread_async() with a nonexisting/already freed Web Audio Context handle ${contextHandle}!`);assert(EmAudio[contextHandle]instanceof(window.AudioContext||window.webkitAudioContext),`Called emscripten_start_wasm_audio_worklet_thread_async() on a context handle ${contextHandle} that is not an AudioContext, but of type ${typeof EmAudio[contextHandle]}`);let audioContext=EmAudio[contextHandle],audioWorklet=audioContext.audioWorklet;assert(stackLowestAddress!=0,"AudioWorklets require a dedicated stack space for audio data marshalling between Wasm and JS!");assert(stackLowestAddress%16==0,`AudioWorklet stack should be aligned to 16 bytes! (was ${stackLowestAddress} == ${stackLowestAddress%16} mod 16) Use e.g. memalign(16, stackSize) to align the stack!`);assert(stackSize!=0,"AudioWorklets require a dedicated stack space for audio data marshalling between Wasm and JS!");assert(stackSize%16==0,`AudioWorklet stack size should be a multiple of 16 bytes! (was ${stackSize} == ${stackSize%16} mod 16)`);assert(!audioContext.audioWorkletInitialized,"emscripten_create_wasm_audio_worklet() was already called for AudioContext "+contextHandle+"! Only call this function once per AudioContext!");audioContext.audioWorkletInitialized=1;let audioWorkletCreationFailed=()=>{((a1,a2,a3)=>dynCall_viii.apply(null,[callback,a1,a2,a3]))(contextHandle,0,userData)};if(!audioWorklet){return audioWorkletCreationFailed()}audioWorklet.addModule("amy-audioin.aw.js").then(()=>{audioWorklet.bootstrapMessage=new AudioWorkletNode(audioContext,"message",{processorOptions:{"$ww":_wasmWorkersID++,"wasm":wasmModule,"wasmMemory":wasmMemory,"sb":stackLowestAddress,"sz":stackSize}});audioWorklet.bootstrapMessage.port.onmessage=_EmAudioDispatchProcessorCallback;return audioWorklet.addModule(Module["mainScriptUrlOrBlob"]||_scriptDir)}).then(()=>{((a1,a2,a3)=>dynCall_viii.apply(null,[callback,a1,a2,a3]))(contextHandle,1,userData)}).catch(audioWorkletCreationFailed)};var _fd_close=fd=>{abort("fd_close called without SYSCALLS_REQUIRE_FILESYSTEM")};var convertI32PairToI53Checked=(lo,hi)=>{assert(lo==lo>>>0||lo==(lo|0));assert(hi===(hi|0));return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN};function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);return 70}var printCharBuffers=[null,[],[]];var printChar=(stream,curr)=>{var buffer=printCharBuffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}};var flush_NO_FILESYSTEM=()=>{_fflush(0);if(printCharBuffers[1].length)printChar(1,10);if(printCharBuffers[2].length)printChar(2,10)};var _fd_write=(fd,iov,iovcnt,pnum)=>{var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_U32()[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0};var runAndAbortIfError=func=>{try{return func()}catch(e){abort(e)}};var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};var runtimeKeepalivePop=()=>{assert(runtimeKeepaliveCounter>0);runtimeKeepaliveCounter-=1};var Asyncify={instrumentWasmImports(imports){var importPattern=/^(invoke_.*|__asyncjs__.*)$/;for(var x in imports){(function(x){var original=imports[x];var sig=original.sig;if(typeof original=="function"){var isAsyncifyImport=original.isAsync||importPattern.test(x);imports[x]=function(){var originalAsyncifyState=Asyncify.state;try{return original.apply(null,arguments)}finally{var changedToDisabled=originalAsyncifyState===Asyncify.State.Normal&&Asyncify.state===Asyncify.State.Disabled;var ignoredInvoke=x.startsWith("invoke_")&&true;if(Asyncify.state!==originalAsyncifyState&&!isAsyncifyImport&&!changedToDisabled&&!ignoredInvoke){throw new Error(`import ${x} was not in ASYNCIFY_IMPORTS, but changed the state`)}}}}})(x)}},instrumentWasmExports(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original=="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:128e3,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},maybeStopUnwind(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_unwind);if(typeof Fibers!="undefined"){Fibers.trampoline()}}},whenDone(){assert(Asyncify.currData,"Tried to wait for an async operation when none is in progress.");assert(!Asyncify.asyncPromiseHandlers,"Cannot have multiple async operations in flight at once");return new Promise((resolve,reject)=>{Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader(ptr,stack,stackSize){GROWABLE_HEAP_U32()[ptr>>2]=stack;GROWABLE_HEAP_U32()[ptr+4>>2]=stack+stackSize},setDataRewindFunc(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);GROWABLE_HEAP_I32()[ptr+8>>2]=rewindId},getDataRewindFunc(ptr){var id=GROWABLE_HEAP_I32()[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=wasmExports[name];return func},doRewind(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep(startAsync){assert(Asyncify.state!==Asyncify.State.Disabled,"Asyncify cannot be done during or after the runtime exits");if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync((handleSleepReturnValue=0)=>{assert(!handleSleepReturnValue||typeof handleSleepReturnValue=="number"||typeof handleSleepReturnValue=="boolean");if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue;reachedCallback=true;if(!reachedAfterCallback){return}assert(!Asyncify.exportCallStack.length,"Waking up (starting to rewind) must be done from JS, without compiled code on the stack.");Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(()=>_asyncify_start_rewind(Asyncify.currData));if(typeof Browser!="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();if(typeof Browser!="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}runAndAbortIfError(()=>_asyncify_start_unwind(Asyncify.currData))}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_rewind);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(func=>callUserCallback(func))}else{abort(`invalid state: ${Asyncify.state}`)}return Asyncify.handleSleepReturnValue},handleAsync(startAsync){return Asyncify.handleSleep(wakeUp=>{startAsync().then(wakeUp)})}};var getCFunc=ident=>{var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func};var writeArrayToMemory=(array,buffer)=>{assert(array.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)");GROWABLE_HEAP_I8().set(array,buffer)};var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{assert(typeof str==="string",`stringToUTF8Array expects a string (got ${typeof str})`);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++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;if(u>1114111)warnOnce("Invalid Unicode code point "+ptrToString(u)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF).");heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>{assert(typeof maxBytesToWrite=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!");return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)};var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};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;assert(returnType!=="array",'Return type should not be "array".');if(args){for(var i=0;ifunction(){return ccall(ident,returnType,argTypes,arguments,opts)};Module["requestFullscreen"]=Browser.requestFullscreen;Module["requestFullScreen"]=Browser.requestFullScreen;Module["requestAnimationFrame"]=Browser.requestAnimationFrame;Module["setCanvasSize"]=Browser.setCanvasSize;Module["pauseMainLoop"]=Browser.mainLoop.pause;Module["resumeMainLoop"]=Browser.mainLoop.resume;Module["getUserMedia"]=Browser.getUserMedia;Module["createContext"]=Browser.createContext;var preloadedImages={};var preloadedAudios={};function checkIncomingModuleAPI(){ignoredModuleProp("fetchSettings")}var wasmImports={__assert_fail:___assert_fail,_emscripten_get_now_is_monotonic:__emscripten_get_now_is_monotonic,abort:_abort,emscripten_asm_const_int:_emscripten_asm_const_int,emscripten_create_audio_context:_emscripten_create_audio_context,emscripten_create_wasm_audio_worklet_node:_emscripten_create_wasm_audio_worklet_node,emscripten_create_wasm_audio_worklet_processor_async:_emscripten_create_wasm_audio_worklet_processor_async,emscripten_date_now:_emscripten_date_now,emscripten_destroy_audio_context:_emscripten_destroy_audio_context,emscripten_destroy_web_audio_node:_emscripten_destroy_web_audio_node,emscripten_get_now:_emscripten_get_now,emscripten_resize_heap:_emscripten_resize_heap,emscripten_set_main_loop:_emscripten_set_main_loop,emscripten_sleep:_emscripten_sleep,emscripten_start_wasm_audio_worklet_thread_async:_emscripten_start_wasm_audio_worklet_thread_async,exit:_exit,fd_close:_fd_close,fd_seek:_fd_seek,fd_write:_fd_write,memory:wasmMemory};Asyncify.instrumentWasmImports(wasmImports);var wasmExports=createWasm();var ___wasm_call_ctors=createExportWrapper("__wasm_call_ctors");var _free=Module["_free"]=createExportWrapper("free");var _malloc=Module["_malloc"]=createExportWrapper("malloc");var _amy_start=Module["_amy_start"]=createExportWrapper("amy_start");var _amy_reset_sysclock=Module["_amy_reset_sysclock"]=createExportWrapper("amy_reset_sysclock");var _amy_play_message=Module["_amy_play_message"]=createExportWrapper("amy_play_message");var _sequencer_ticks=Module["_sequencer_ticks"]=createExportWrapper("sequencer_ticks");var ___errno_location=createExportWrapper("__errno_location");var _ma_device__on_notification_unlocked=Module["_ma_device__on_notification_unlocked"]=createExportWrapper("ma_device__on_notification_unlocked");var _ma_malloc_emscripten=Module["_ma_malloc_emscripten"]=createExportWrapper("ma_malloc_emscripten");var _ma_free_emscripten=Module["_ma_free_emscripten"]=createExportWrapper("ma_free_emscripten");var _ma_device_process_pcm_frames_capture__webaudio=Module["_ma_device_process_pcm_frames_capture__webaudio"]=createExportWrapper("ma_device_process_pcm_frames_capture__webaudio");var _ma_device_process_pcm_frames_playback__webaudio=Module["_ma_device_process_pcm_frames_playback__webaudio"]=createExportWrapper("ma_device_process_pcm_frames_playback__webaudio");var _amy_live_start=Module["_amy_live_start"]=createExportWrapper("amy_live_start");var _fflush=Module["_fflush"]=createExportWrapper("fflush");var _emscripten_stack_init=()=>(_emscripten_stack_init=wasmExports["emscripten_stack_init"])();var _emscripten_stack_get_free=()=>(_emscripten_stack_get_free=wasmExports["emscripten_stack_get_free"])();var _emscripten_stack_get_base=()=>(_emscripten_stack_get_base=wasmExports["emscripten_stack_get_base"])();var _emscripten_stack_get_end=()=>(_emscripten_stack_get_end=wasmExports["emscripten_stack_get_end"])();var _emscripten_wasm_worker_initialize=Module["_emscripten_wasm_worker_initialize"]=createExportWrapper("emscripten_wasm_worker_initialize");var stackSave=createExportWrapper("stackSave");var stackRestore=createExportWrapper("stackRestore");var stackAlloc=createExportWrapper("stackAlloc");var _emscripten_stack_get_current=()=>(_emscripten_stack_get_current=wasmExports["emscripten_stack_get_current"])();var dynCall_ii=Module["dynCall_ii"]=createExportWrapper("dynCall_ii");var dynCall_vii=Module["dynCall_vii"]=createExportWrapper("dynCall_vii");var dynCall_iiii=Module["dynCall_iiii"]=createExportWrapper("dynCall_iiii");var dynCall_iii=Module["dynCall_iii"]=createExportWrapper("dynCall_iii");var dynCall_iiiii=Module["dynCall_iiiii"]=createExportWrapper("dynCall_iiiii");var dynCall_viii=Module["dynCall_viii"]=createExportWrapper("dynCall_viii");var dynCall_viiii=Module["dynCall_viiii"]=createExportWrapper("dynCall_viiii");var dynCall_v=Module["dynCall_v"]=createExportWrapper("dynCall_v");var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=createExportWrapper("dynCall_iiiiiiii");var dynCall_iiiji=Module["dynCall_iiiji"]=createExportWrapper("dynCall_iiiji");var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=createExportWrapper("dynCall_iiiiiii");var dynCall_jii=Module["dynCall_jii"]=createExportWrapper("dynCall_jii");var dynCall_jiji=Module["dynCall_jiji"]=createExportWrapper("dynCall_jiji");var dynCall_iidiiii=Module["dynCall_iidiiii"]=createExportWrapper("dynCall_iidiiii");var _asyncify_start_unwind=createExportWrapper("asyncify_start_unwind");var _asyncify_stop_unwind=createExportWrapper("asyncify_stop_unwind");var _asyncify_start_rewind=createExportWrapper("asyncify_start_rewind");var _asyncify_stop_rewind=createExportWrapper("asyncify_stop_rewind");Module["stackAlloc"]=stackAlloc;Module["stackSave"]=stackSave;Module["stackRestore"]=stackRestore;Module["ccall"]=ccall;Module["cwrap"]=cwrap;var missingLibrarySymbols=["writeI53ToI64","writeI53ToI64Clamped","writeI53ToI64Signaling","writeI53ToU64Clamped","writeI53ToU64Signaling","readI53FromI64","readI53FromU64","convertI32PairToI53","convertU32PairToI53","zeroMemory","isLeapYear","ydayFromDate","arraySum","addDays","setErrNo","inetPton4","inetNtop4","inetPton6","inetNtop6","readSockaddr","writeSockaddr","getHostByName","initRandomFill","randomFill","getCallstack","emscriptenLog","convertPCtoSourceLocation","runMainThreadEmAsm","jstoi_q","jstoi_s","getExecutableName","listenOnce","autoResumeAudioContext","dynCallLegacy","getDynCaller","dynCall","asmjsMangle","asyncLoad","alignMemory","mmapAlloc","handleAllocatorInit","HandleAllocator","getNativeTypeSize","STACK_SIZE","STACK_ALIGN","POINTER_SIZE","ASSERTIONS","uleb128Encode","generateFuncType","convertJsFunctionToWasm","getEmptyTableSlot","updateTableMap","getFunctionAddress","addFunction","removeFunction","reallyNegative","unSign","strLen","reSign","formatString","intArrayFromString","intArrayToString","AsciiToString","stringToAscii","UTF16ToString","stringToUTF16","lengthBytesUTF16","UTF32ToString","stringToUTF32","lengthBytesUTF32","stringToNewUTF8","registerKeyEventCallback","maybeCStringToJsString","findEventTarget","findCanvasEventTarget","getBoundingClientRect","fillMouseEventData","registerMouseEventCallback","registerWheelEventCallback","registerUiEventCallback","registerFocusEventCallback","fillDeviceOrientationEventData","registerDeviceOrientationEventCallback","fillDeviceMotionEventData","registerDeviceMotionEventCallback","screenOrientation","fillOrientationChangeEventData","registerOrientationChangeEventCallback","fillFullscreenChangeEventData","registerFullscreenChangeEventCallback","JSEvents_requestFullscreen","JSEvents_resizeCanvasForFullscreen","registerRestoreOldStyle","hideEverythingExceptGivenElement","restoreHiddenElements","setLetterbox","softFullscreenResizeWebGLRenderTarget","doRequestFullscreen","fillPointerlockChangeEventData","registerPointerlockChangeEventCallback","registerPointerlockErrorEventCallback","requestPointerLock","fillVisibilityChangeEventData","registerVisibilityChangeEventCallback","registerTouchEventCallback","fillGamepadEventData","registerGamepadEventCallback","registerBeforeUnloadEventCallback","fillBatteryEventData","battery","registerBatteryEventCallback","setCanvasElementSize","getCanvasElementSize","demangle","demangleAll","jsStackTrace","stackTrace","getEnvStrings","checkWasiClock","wasiRightsToMuslOFlags","wasiOFlagsToMuslOFlags","createDyncallWrapper","setImmediateWrapped","clearImmediateWrapped","polyfillSetImmediate","getPromise","makePromise","idsToPromises","makePromiseCallback","ExceptionInfo","findMatchingCatch","getSocketFromFD","getSocketAddress","FS_createPreloadedFile","FS_modeStringToFlags","FS_getMode","FS_stdin_getChar","FS_createDataFile","FS_unlink","FS_mkdirTree","_setNetworkCallback","heapObjectForWebGLType","heapAccessShiftForWebGLHeap","webgl_enable_ANGLE_instanced_arrays","webgl_enable_OES_vertex_array_object","webgl_enable_WEBGL_draw_buffers","webgl_enable_WEBGL_multi_draw","emscriptenWebGLGet","computeUnpackAlignedImageSize","colorChannelsInGlTextureFormat","emscriptenWebGLGetTexPixelData","__glGenObject","emscriptenWebGLGetUniform","webglGetUniformLocation","webglPrepareUniformLocationsBeforeFirstUse","webglGetLeftBracePos","emscriptenWebGLGetVertexAttrib","__glGetActiveAttribOrUniform","writeGLArray","registerWebGlEventCallback","SDL_unicode","SDL_ttfContext","SDL_audio","ALLOC_NORMAL","ALLOC_STACK","allocate","writeStringToMemory","writeAsciiToMemory","_wasmWorkerPostFunction1","_wasmWorkerPostFunction2","_wasmWorkerPostFunction3","emscripten_audio_worklet_post_function_1","emscripten_audio_worklet_post_function_2","emscripten_audio_worklet_post_function_3"];missingLibrarySymbols.forEach(missingLibrarySymbol);var unexportedSymbols=["run","addOnPreRun","addOnInit","addOnPreMain","addOnExit","addOnPostRun","addRunDependency","removeRunDependency","FS_createFolder","FS_createPath","FS_createLazyFile","FS_createLink","FS_createDevice","FS_readFile","out","err","callMain","abort","wasmMemory","wasmExports","getTempRet0","setTempRet0","writeStackCookie","checkStackCookie","convertI32PairToI53Checked","ptrToString","exitJS","getHeapMax","growMemory","ENV","MONTH_DAYS_REGULAR","MONTH_DAYS_LEAP","MONTH_DAYS_REGULAR_CUMULATIVE","MONTH_DAYS_LEAP_CUMULATIVE","ERRNO_CODES","ERRNO_MESSAGES","DNS","Protocols","Sockets","timers","warnOnce","UNWIND_CACHE","readEmAsmArgsArray","readEmAsmArgs","runEmAsmFunction","handleException","keepRuntimeAlive","runtimeKeepalivePush","runtimeKeepalivePop","callUserCallback","maybeExit","wasmTable","noExitRuntime","getCFunc","sigToWasmTypes","freeTableIndexes","functionsInTableMap","setValue","getValue","PATH","PATH_FS","UTF8Decoder","UTF8ArrayToString","UTF8ToString","stringToUTF8Array","stringToUTF8","lengthBytesUTF8","UTF16Decoder","stringToUTF8OnStack","writeArrayToMemory","JSEvents","specialHTMLTargets","currentFullscreenStrategy","restoreOldWindowedStyle","ExitStatus","flush_NO_FILESYSTEM","safeSetTimeout","promiseMap","uncaughtExceptionCount","exceptionLast","exceptionCaught","Browser","setMainLoop","wget","SYSCALLS","preloadPlugins","FS_stdin_getChar_buffer","FS","MEMFS","TTY","PIPEFS","SOCKFS","tempFixedLengthArray","miniTempWebGLFloatBuffers","miniTempWebGLIntBuffers","GL","emscripten_webgl_power_preferences","AL","GLUT","EGL","GLEW","IDBStore","runAndAbortIfError","Asyncify","Fibers","SDL","SDL_gfx","allocateUTF8","allocateUTF8OnStack","_wasmWorkers","_wasmWorkersID","_wasmWorkerDelayedMessageQueue","_wasmWorkerAppendToQueue","_wasmWorkerRunPostMessage","_wasmWorkerInitializeRuntime","EmAudio","EmAudioCounter","emscriptenRegisterAudioObject","emscriptenDestroyAudioContext","emscriptenGetAudioObject","_EmAudioDispatchProcessorCallback"];unexportedSymbols.forEach(unexportedRuntimeSymbol);var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function stackCheckInit(){_emscripten_stack_init();writeStackCookie()}function run(){if(runDependencies>0){return}stackCheckInit();if(ENVIRONMENT_IS_WASM_WORKER){readyPromiseResolve(Module);return initRuntime()}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();assert(!Module["_main"],'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]');postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}checkStackCookie()}function checkUnflushedContent(){var oldOut=out;var oldErr=err;var has=false;out=err=x=>{has=true};try{flush_NO_FILESYSTEM()}catch(e){}out=oldOut;err=oldErr;if(has){warnOnce("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the Emscripten FAQ), or make sure to emit a newline when you printf etc.");warnOnce("(this may also be due to not including full filesystem support - try building with -sFORCE_FILESYSTEM)")}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); return moduleArg.ready diff --git a/www/run/amy-audioin.wasm b/www/run/amy-audioin.wasm index ddd295b60ee2be6893c339dd220057e5621cb533..62525ab4b23c36656b03a28ce4524da561edc951 100755 GIT binary patch delta 58922 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 Q_gtVbG^L;Uq#5}C0G%^(EdT%j delta 34274 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 Tzj<9+d*9Vxr!Zqss_*{+LopUa diff --git a/www/run/micropython.data b/www/run/micropython.data index 21c39b6fcf1bbe44bca527401e4e9c59d301e529..f56c45d34107ba672bbb55a7f48b9f7e1cb7da19 100644 GIT binary patch delta 98 zcmZqrp4j(2v7v>rg{g(Pg{6hHg{_6Xg`#3qBLe^c delta 85 zcmeDCp4jv~v7v>rg{g(Pg{6hHg{_6Xg`8$Kr8^n Yfq*~EVkWdo_Nq*07ViXRsaA1 diff --git a/www/run/micropython.mjs b/www/run/micropython.mjs index e2f57735..f9d13531 100644 --- a/www/run/micropython.mjs +++ b/www/run/micropython.mjs @@ -221,7 +221,7 @@ Module['FS_createPath']("/tulip4/sys/im", "tiny_town", true, true); } } - loadPackage({"files": [{"filename": "/tulip4/sys/ex/ansi.py", "start": 0, "end": 211}, {"filename": "/tulip4/sys/ex/bcla3.wav", "start": 211, "end": 585993, "audio": 1}, {"filename": "/tulip4/sys/ex/bunny_bounce/bunny_bounce.py", "start": 585993, "end": 593768}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_l_0.png", "start": 593768, "end": 596178}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_l_1.png", "start": 596178, "end": 598373}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_l_2.png", "start": 598373, "end": 600651}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_l_3.png", "start": 600651, "end": 602949}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_r_0.png", "start": 602949, "end": 605243}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_r_1.png", "start": 605243, "end": 607519}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_r_2.png", "start": 607519, "end": 609727}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_r_3.png", "start": 609727, "end": 612147}, {"filename": "/tulip4/sys/ex/buttons.py", "start": 612147, "end": 613763}, {"filename": "/tulip4/sys/ex/calibrate.py", "start": 613763, "end": 615130}, {"filename": "/tulip4/sys/ex/fonts.py", "start": 615130, "end": 615301}, {"filename": "/tulip4/sys/ex/g/brick.png", "start": 615301, "end": 615594}, {"filename": "/tulip4/sys/ex/g/cave.png", "start": 615594, "end": 616196}, {"filename": "/tulip4/sys/ex/g/clouds.png", "start": 616196, "end": 617026}, {"filename": "/tulip4/sys/ex/g/clouds2.png", "start": 617026, "end": 617823}, {"filename": "/tulip4/sys/ex/g/colorbars.png", "start": 617823, "end": 627664}, {"filename": "/tulip4/sys/ex/g/desert.png", "start": 627664, "end": 628302}, {"filename": "/tulip4/sys/ex/g/earth.png", "start": 628302, "end": 629145}, {"filename": "/tulip4/sys/ex/g/earth2.png", "start": 629145, "end": 629991}, {"filename": "/tulip4/sys/ex/g/fire.png", "start": 629991, "end": 630981}, {"filename": "/tulip4/sys/ex/g/flowers.png", "start": 630981, "end": 631743}, {"filename": "/tulip4/sys/ex/g/grass.png", "start": 631743, "end": 632914}, {"filename": "/tulip4/sys/ex/g/meadow.png", "start": 632914, "end": 633420}, {"filename": "/tulip4/sys/ex/g/mountain-bg.png", "start": 633420, "end": 638023}, {"filename": "/tulip4/sys/ex/g/mountain-far.png", "start": 638023, "end": 640438}, {"filename": "/tulip4/sys/ex/g/mountain.png", "start": 640438, "end": 645320}, {"filename": "/tulip4/sys/ex/g/rabbit_l_0.png", "start": 645320, "end": 647730}, {"filename": "/tulip4/sys/ex/g/rabbit_l_1.png", "start": 647730, "end": 649925}, {"filename": "/tulip4/sys/ex/g/rabbit_l_2.png", "start": 649925, "end": 652203}, {"filename": "/tulip4/sys/ex/g/rabbit_l_3.png", "start": 652203, "end": 654501}, {"filename": "/tulip4/sys/ex/g/rabbit_r_0.png", "start": 654501, "end": 656795}, {"filename": "/tulip4/sys/ex/g/rabbit_r_1.png", "start": 656795, "end": 659071}, {"filename": "/tulip4/sys/ex/g/rabbit_r_2.png", "start": 659071, "end": 661279}, {"filename": "/tulip4/sys/ex/g/rabbit_r_3.png", "start": 661279, "end": 663699}, {"filename": "/tulip4/sys/ex/g/trees-far.png", "start": 663699, "end": 669414}, {"filename": "/tulip4/sys/ex/g/trees.png", "start": 669414, "end": 676340}, {"filename": "/tulip4/sys/ex/g/tulip3.png", "start": 676340, "end": 711458}, {"filename": "/tulip4/sys/ex/g/tulipbw.png", "start": 711458, "end": 714337}, {"filename": "/tulip4/sys/ex/g/water.png", "start": 714337, "end": 714921}, {"filename": "/tulip4/sys/ex/joy.py", "start": 714921, "end": 715922}, {"filename": "/tulip4/sys/ex/my_drums.py", "start": 715922, "end": 725518}, {"filename": "/tulip4/sys/ex/my_juno6.py", "start": 725518, "end": 750298}, {"filename": "/tulip4/sys/ex/my_voices.py", "start": 750298, "end": 763587}, {"filename": "/tulip4/sys/ex/my_worldui.py", "start": 763587, "end": 767598}, {"filename": "/tulip4/sys/ex/parallax.py", "start": 767598, "end": 771803}, {"filename": "/tulip4/sys/ex/planet_boing/pix/bang_texture_03.png", "start": 771803, "end": 773748}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_00.png", "start": 773748, "end": 775588}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_01.png", "start": 775588, "end": 779093}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_02.png", "start": 779093, "end": 781303}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_03.png", "start": 781303, "end": 783383}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_04.png", "start": 783383, "end": 785571}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_05.png", "start": 785571, "end": 787566}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_06.png", "start": 787566, "end": 789682}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_07.png", "start": 789682, "end": 791827}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_08.png", "start": 791827, "end": 793979}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_09.png", "start": 793979, "end": 796092}, {"filename": "/tulip4/sys/ex/planet_boing/pix/wormhole.png", "start": 796092, "end": 796854}, {"filename": "/tulip4/sys/ex/planet_boing/planet_boing.py", "start": 796854, "end": 812760}, {"filename": "/tulip4/sys/ex/rgb332.py", "start": 812760, "end": 813098}, {"filename": "/tulip4/sys/ex/screensaver.py", "start": 813098, "end": 814114}, {"filename": "/tulip4/sys/ex/vlng3.wav", "start": 814114, "end": 1116904, "audio": 1}, {"filename": "/tulip4/sys/ex/vlsa3.wav", "start": 1116904, "end": 1575478, "audio": 1}, {"filename": "/tulip4/sys/ex/woodpiano.txt", "start": 1575478, "end": 1576061}, {"filename": "/tulip4/sys/ex/wordpad.py", "start": 1576061, "end": 1576737}, {"filename": "/tulip4/sys/ex/xanadu.py", "start": 1576737, "end": 1582328}, {"filename": "/tulip4/sys/im/tiny_town/tile_0000.png", "start": 1582328, "end": 1582427}, {"filename": "/tulip4/sys/im/tiny_town/tile_0001.png", "start": 1582427, "end": 1582571}, {"filename": "/tulip4/sys/im/tiny_town/tile_0002.png", "start": 1582571, "end": 1582745}, {"filename": "/tulip4/sys/im/tiny_town/tile_0003.png", "start": 1582745, "end": 1582921}, {"filename": "/tulip4/sys/im/tiny_town/tile_0004.png", "start": 1582921, "end": 1583096}, {"filename": "/tulip4/sys/im/tiny_town/tile_0005.png", "start": 1583096, "end": 1583293}, {"filename": "/tulip4/sys/im/tiny_town/tile_0006.png", "start": 1583293, "end": 1583473}, {"filename": "/tulip4/sys/im/tiny_town/tile_0007.png", "start": 1583473, "end": 1583630}, {"filename": "/tulip4/sys/im/tiny_town/tile_0008.png", "start": 1583630, "end": 1583815}, {"filename": "/tulip4/sys/im/tiny_town/tile_0009.png", "start": 1583815, "end": 1583995}, {"filename": "/tulip4/sys/im/tiny_town/tile_0010.png", "start": 1583995, "end": 1584152}, {"filename": "/tulip4/sys/im/tiny_town/tile_0011.png", "start": 1584152, "end": 1584337}, {"filename": "/tulip4/sys/im/tiny_town/tile_0012.png", "start": 1584337, "end": 1584498}, {"filename": "/tulip4/sys/im/tiny_town/tile_0013.png", "start": 1584498, "end": 1584651}, {"filename": "/tulip4/sys/im/tiny_town/tile_0014.png", "start": 1584651, "end": 1584812}, {"filename": "/tulip4/sys/im/tiny_town/tile_0015.png", "start": 1584812, "end": 1585005}, {"filename": "/tulip4/sys/im/tiny_town/tile_0016.png", "start": 1585005, "end": 1585197}, {"filename": "/tulip4/sys/im/tiny_town/tile_0017.png", "start": 1585197, "end": 1585374}, {"filename": "/tulip4/sys/im/tiny_town/tile_0018.png", "start": 1585374, "end": 1585537}, {"filename": "/tulip4/sys/im/tiny_town/tile_0019.png", "start": 1585537, "end": 1585737}, {"filename": "/tulip4/sys/im/tiny_town/tile_0020.png", "start": 1585737, "end": 1585903}, {"filename": "/tulip4/sys/im/tiny_town/tile_0021.png", "start": 1585903, "end": 1586066}, {"filename": "/tulip4/sys/im/tiny_town/tile_0022.png", "start": 1586066, "end": 1586266}, {"filename": "/tulip4/sys/im/tiny_town/tile_0023.png", "start": 1586266, "end": 1586432}, {"filename": "/tulip4/sys/im/tiny_town/tile_0024.png", "start": 1586432, "end": 1586567}, {"filename": "/tulip4/sys/im/tiny_town/tile_0025.png", "start": 1586567, "end": 1586666}, {"filename": "/tulip4/sys/im/tiny_town/tile_0026.png", "start": 1586666, "end": 1586806}, {"filename": "/tulip4/sys/im/tiny_town/tile_0027.png", "start": 1586806, "end": 1586997}, {"filename": "/tulip4/sys/im/tiny_town/tile_0028.png", "start": 1586997, "end": 1587188}, {"filename": "/tulip4/sys/im/tiny_town/tile_0029.png", "start": 1587188, "end": 1587385}, {"filename": "/tulip4/sys/im/tiny_town/tile_0030.png", "start": 1587385, "end": 1587566}, {"filename": "/tulip4/sys/im/tiny_town/tile_0031.png", "start": 1587566, "end": 1587723}, {"filename": "/tulip4/sys/im/tiny_town/tile_0032.png", "start": 1587723, "end": 1587904}, {"filename": "/tulip4/sys/im/tiny_town/tile_0033.png", "start": 1587904, "end": 1588085}, {"filename": "/tulip4/sys/im/tiny_town/tile_0034.png", "start": 1588085, "end": 1588242}, {"filename": "/tulip4/sys/im/tiny_town/tile_0035.png", "start": 1588242, "end": 1588423}, {"filename": "/tulip4/sys/im/tiny_town/tile_0036.png", "start": 1588423, "end": 1588577}, {"filename": "/tulip4/sys/im/tiny_town/tile_0037.png", "start": 1588577, "end": 1588711}, {"filename": "/tulip4/sys/im/tiny_town/tile_0038.png", "start": 1588711, "end": 1588860}, {"filename": "/tulip4/sys/im/tiny_town/tile_0039.png", "start": 1588860, "end": 1588989}, {"filename": "/tulip4/sys/im/tiny_town/tile_0040.png", "start": 1588989, "end": 1589128}, {"filename": "/tulip4/sys/im/tiny_town/tile_0041.png", "start": 1589128, "end": 1589254}, {"filename": "/tulip4/sys/im/tiny_town/tile_0042.png", "start": 1589254, "end": 1589391}, {"filename": "/tulip4/sys/im/tiny_town/tile_0043.png", "start": 1589391, "end": 1589557}, {"filename": "/tulip4/sys/im/tiny_town/tile_0044.png", "start": 1589557, "end": 1589721}, {"filename": "/tulip4/sys/im/tiny_town/tile_0045.png", "start": 1589721, "end": 1589899}, {"filename": "/tulip4/sys/im/tiny_town/tile_0046.png", "start": 1589899, "end": 1590063}, {"filename": "/tulip4/sys/im/tiny_town/tile_0047.png", "start": 1590063, "end": 1590207}, {"filename": "/tulip4/sys/im/tiny_town/tile_0048.png", "start": 1590207, "end": 1590373}, {"filename": "/tulip4/sys/im/tiny_town/tile_0049.png", "start": 1590373, "end": 1590534}, {"filename": "/tulip4/sys/im/tiny_town/tile_0050.png", "start": 1590534, "end": 1590705}, {"filename": "/tulip4/sys/im/tiny_town/tile_0051.png", "start": 1590705, "end": 1590872}, {"filename": "/tulip4/sys/im/tiny_town/tile_0052.png", "start": 1590872, "end": 1591052}, {"filename": "/tulip4/sys/im/tiny_town/tile_0053.png", "start": 1591052, "end": 1591230}, {"filename": "/tulip4/sys/im/tiny_town/tile_0054.png", "start": 1591230, "end": 1591411}, {"filename": "/tulip4/sys/im/tiny_town/tile_0055.png", "start": 1591411, "end": 1591599}, {"filename": "/tulip4/sys/im/tiny_town/tile_0056.png", "start": 1591599, "end": 1591745}, {"filename": "/tulip4/sys/im/tiny_town/tile_0057.png", "start": 1591745, "end": 1591958}, {"filename": "/tulip4/sys/im/tiny_town/tile_0058.png", "start": 1591958, "end": 1592105}, {"filename": "/tulip4/sys/im/tiny_town/tile_0059.png", "start": 1592105, "end": 1592250}, {"filename": "/tulip4/sys/im/tiny_town/tile_0060.png", "start": 1592250, "end": 1592427}, {"filename": "/tulip4/sys/im/tiny_town/tile_0061.png", "start": 1592427, "end": 1592593}, {"filename": "/tulip4/sys/im/tiny_town/tile_0062.png", "start": 1592593, "end": 1592777}, {"filename": "/tulip4/sys/im/tiny_town/tile_0063.png", "start": 1592777, "end": 1592993}, {"filename": "/tulip4/sys/im/tiny_town/tile_0064.png", "start": 1592993, "end": 1593170}, {"filename": "/tulip4/sys/im/tiny_town/tile_0065.png", "start": 1593170, "end": 1593336}, {"filename": "/tulip4/sys/im/tiny_town/tile_0066.png", "start": 1593336, "end": 1593520}, {"filename": "/tulip4/sys/im/tiny_town/tile_0067.png", "start": 1593520, "end": 1593736}, {"filename": "/tulip4/sys/im/tiny_town/tile_0068.png", "start": 1593736, "end": 1593900}, {"filename": "/tulip4/sys/im/tiny_town/tile_0069.png", "start": 1593900, "end": 1594071}, {"filename": "/tulip4/sys/im/tiny_town/tile_0070.png", "start": 1594071, "end": 1594236}, {"filename": "/tulip4/sys/im/tiny_town/tile_0071.png", "start": 1594236, "end": 1594375}, {"filename": "/tulip4/sys/im/tiny_town/tile_0072.png", "start": 1594375, "end": 1594512}, {"filename": "/tulip4/sys/im/tiny_town/tile_0073.png", "start": 1594512, "end": 1594641}, {"filename": "/tulip4/sys/im/tiny_town/tile_0074.png", "start": 1594641, "end": 1594796}, {"filename": "/tulip4/sys/im/tiny_town/tile_0075.png", "start": 1594796, "end": 1594939}, {"filename": "/tulip4/sys/im/tiny_town/tile_0076.png", "start": 1594939, "end": 1595076}, {"filename": "/tulip4/sys/im/tiny_town/tile_0077.png", "start": 1595076, "end": 1595205}, {"filename": "/tulip4/sys/im/tiny_town/tile_0078.png", "start": 1595205, "end": 1595360}, {"filename": "/tulip4/sys/im/tiny_town/tile_0079.png", "start": 1595360, "end": 1595503}, {"filename": "/tulip4/sys/im/tiny_town/tile_0080.png", "start": 1595503, "end": 1595663}, {"filename": "/tulip4/sys/im/tiny_town/tile_0081.png", "start": 1595663, "end": 1595783}, {"filename": "/tulip4/sys/im/tiny_town/tile_0082.png", "start": 1595783, "end": 1595945}, {"filename": "/tulip4/sys/im/tiny_town/tile_0083.png", "start": 1595945, "end": 1596134}, {"filename": "/tulip4/sys/im/tiny_town/tile_0084.png", "start": 1596134, "end": 1596304}, {"filename": "/tulip4/sys/im/tiny_town/tile_0085.png", "start": 1596304, "end": 1596467}, {"filename": "/tulip4/sys/im/tiny_town/tile_0086.png", "start": 1596467, "end": 1596628}, {"filename": "/tulip4/sys/im/tiny_town/tile_0087.png", "start": 1596628, "end": 1596789}, {"filename": "/tulip4/sys/im/tiny_town/tile_0088.png", "start": 1596789, "end": 1596956}, {"filename": "/tulip4/sys/im/tiny_town/tile_0089.png", "start": 1596956, "end": 1597119}, {"filename": "/tulip4/sys/im/tiny_town/tile_0090.png", "start": 1597119, "end": 1597280}, {"filename": "/tulip4/sys/im/tiny_town/tile_0091.png", "start": 1597280, "end": 1597442}, {"filename": "/tulip4/sys/im/tiny_town/tile_0092.png", "start": 1597442, "end": 1597600}, {"filename": "/tulip4/sys/im/tiny_town/tile_0093.png", "start": 1597600, "end": 1597762}, {"filename": "/tulip4/sys/im/tiny_town/tile_0094.png", "start": 1597762, "end": 1597947}, {"filename": "/tulip4/sys/im/tiny_town/tile_0095.png", "start": 1597947, "end": 1598142}, {"filename": "/tulip4/sys/im/tiny_town/tile_0096.png", "start": 1598142, "end": 1598331}, {"filename": "/tulip4/sys/im/tiny_town/tile_0097.png", "start": 1598331, "end": 1598470}, {"filename": "/tulip4/sys/im/tiny_town/tile_0098.png", "start": 1598470, "end": 1598651}, {"filename": "/tulip4/sys/im/tiny_town/tile_0099.png", "start": 1598651, "end": 1598822}, {"filename": "/tulip4/sys/im/tiny_town/tile_0100.png", "start": 1598822, "end": 1598954}, {"filename": "/tulip4/sys/im/tiny_town/tile_0101.png", "start": 1598954, "end": 1599128}, {"filename": "/tulip4/sys/im/tiny_town/tile_0102.png", "start": 1599128, "end": 1599303}, {"filename": "/tulip4/sys/im/tiny_town/tile_0103.png", "start": 1599303, "end": 1599499}, {"filename": "/tulip4/sys/im/tiny_town/tile_0104.png", "start": 1599499, "end": 1599741}, {"filename": "/tulip4/sys/im/tiny_town/tile_0105.png", "start": 1599741, "end": 1599939}, {"filename": "/tulip4/sys/im/tiny_town/tile_0106.png", "start": 1599939, "end": 1600117}, {"filename": "/tulip4/sys/im/tiny_town/tile_0107.png", "start": 1600117, "end": 1600319}, {"filename": "/tulip4/sys/im/tiny_town/tile_0108.png", "start": 1600319, "end": 1600441}, {"filename": "/tulip4/sys/im/tiny_town/tile_0109.png", "start": 1600441, "end": 1600540}, {"filename": "/tulip4/sys/im/tiny_town/tile_0110.png", "start": 1600540, "end": 1600661}, {"filename": "/tulip4/sys/im/tiny_town/tile_0111.png", "start": 1600661, "end": 1600864}, {"filename": "/tulip4/sys/im/tiny_town/tile_0112.png", "start": 1600864, "end": 1601067}, {"filename": "/tulip4/sys/im/tiny_town/tile_0113.png", "start": 1601067, "end": 1601267}, {"filename": "/tulip4/sys/im/tiny_town/tile_0114.png", "start": 1601267, "end": 1601467}, {"filename": "/tulip4/sys/im/tiny_town/tile_0115.png", "start": 1601467, "end": 1601653}, {"filename": "/tulip4/sys/im/tiny_town/tile_0116.png", "start": 1601653, "end": 1601837}, {"filename": "/tulip4/sys/im/tiny_town/tile_0117.png", "start": 1601837, "end": 1602009}, {"filename": "/tulip4/sys/im/tiny_town/tile_0118.png", "start": 1602009, "end": 1602192}, {"filename": "/tulip4/sys/im/tiny_town/tile_0119.png", "start": 1602192, "end": 1602375}, {"filename": "/tulip4/sys/im/tiny_town/tile_0120.png", "start": 1602375, "end": 1602533}, {"filename": "/tulip4/sys/im/tiny_town/tile_0121.png", "start": 1602533, "end": 1602674}, {"filename": "/tulip4/sys/im/tiny_town/tile_0122.png", "start": 1602674, "end": 1602837}, {"filename": "/tulip4/sys/im/tiny_town/tile_0123.png", "start": 1602837, "end": 1602982}, {"filename": "/tulip4/sys/im/tiny_town/tile_0124.png", "start": 1602982, "end": 1603128}, {"filename": "/tulip4/sys/im/tiny_town/tile_0125.png", "start": 1603128, "end": 1603314}, {"filename": "/tulip4/sys/im/tiny_town/tile_0126.png", "start": 1603314, "end": 1603472}, {"filename": "/tulip4/sys/im/tiny_town/tile_0127.png", "start": 1603472, "end": 1603656}, {"filename": "/tulip4/sys/im/tiny_town/tile_0128.png", "start": 1603656, "end": 1603856}, {"filename": "/tulip4/sys/im/tiny_town/tile_0129.png", "start": 1603856, "end": 1604056}, {"filename": "/tulip4/sys/im/tiny_town/tile_0130.png", "start": 1604056, "end": 1604262}, {"filename": "/tulip4/sys/im/tiny_town/tile_0131.png", "start": 1604262, "end": 1604482}], "remote_package_size": 1604482}); + loadPackage({"files": [{"filename": "/tulip4/sys/ex/ansi.py", "start": 0, "end": 211}, {"filename": "/tulip4/sys/ex/bcla3.wav", "start": 211, "end": 585993, "audio": 1}, {"filename": "/tulip4/sys/ex/bunny_bounce/bunny_bounce.py", "start": 585993, "end": 593768}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_l_0.png", "start": 593768, "end": 596178}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_l_1.png", "start": 596178, "end": 598373}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_l_2.png", "start": 598373, "end": 600651}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_l_3.png", "start": 600651, "end": 602949}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_r_0.png", "start": 602949, "end": 605243}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_r_1.png", "start": 605243, "end": 607519}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_r_2.png", "start": 607519, "end": 609727}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_r_3.png", "start": 609727, "end": 612147}, {"filename": "/tulip4/sys/ex/buttons.py", "start": 612147, "end": 613763}, {"filename": "/tulip4/sys/ex/calibrate.py", "start": 613763, "end": 615130}, {"filename": "/tulip4/sys/ex/fonts.py", "start": 615130, "end": 615301}, {"filename": "/tulip4/sys/ex/g/brick.png", "start": 615301, "end": 615594}, {"filename": "/tulip4/sys/ex/g/cave.png", "start": 615594, "end": 616196}, {"filename": "/tulip4/sys/ex/g/clouds.png", "start": 616196, "end": 617026}, {"filename": "/tulip4/sys/ex/g/clouds2.png", "start": 617026, "end": 617823}, {"filename": "/tulip4/sys/ex/g/colorbars.png", "start": 617823, "end": 627664}, {"filename": "/tulip4/sys/ex/g/desert.png", "start": 627664, "end": 628302}, {"filename": "/tulip4/sys/ex/g/earth.png", "start": 628302, "end": 629145}, {"filename": "/tulip4/sys/ex/g/earth2.png", "start": 629145, "end": 629991}, {"filename": "/tulip4/sys/ex/g/fire.png", "start": 629991, "end": 630981}, {"filename": "/tulip4/sys/ex/g/flowers.png", "start": 630981, "end": 631743}, {"filename": "/tulip4/sys/ex/g/grass.png", "start": 631743, "end": 632914}, {"filename": "/tulip4/sys/ex/g/meadow.png", "start": 632914, "end": 633420}, {"filename": "/tulip4/sys/ex/g/mountain-bg.png", "start": 633420, "end": 638023}, {"filename": "/tulip4/sys/ex/g/mountain-far.png", "start": 638023, "end": 640438}, {"filename": "/tulip4/sys/ex/g/mountain.png", "start": 640438, "end": 645320}, {"filename": "/tulip4/sys/ex/g/rabbit_l_0.png", "start": 645320, "end": 647730}, {"filename": "/tulip4/sys/ex/g/rabbit_l_1.png", "start": 647730, "end": 649925}, {"filename": "/tulip4/sys/ex/g/rabbit_l_2.png", "start": 649925, "end": 652203}, {"filename": "/tulip4/sys/ex/g/rabbit_l_3.png", "start": 652203, "end": 654501}, {"filename": "/tulip4/sys/ex/g/rabbit_r_0.png", "start": 654501, "end": 656795}, {"filename": "/tulip4/sys/ex/g/rabbit_r_1.png", "start": 656795, "end": 659071}, {"filename": "/tulip4/sys/ex/g/rabbit_r_2.png", "start": 659071, "end": 661279}, {"filename": "/tulip4/sys/ex/g/rabbit_r_3.png", "start": 661279, "end": 663699}, {"filename": "/tulip4/sys/ex/g/trees-far.png", "start": 663699, "end": 669414}, {"filename": "/tulip4/sys/ex/g/trees.png", "start": 669414, "end": 676340}, {"filename": "/tulip4/sys/ex/g/tulip3.png", "start": 676340, "end": 711458}, {"filename": "/tulip4/sys/ex/g/tulipbw.png", "start": 711458, "end": 714337}, {"filename": "/tulip4/sys/ex/g/water.png", "start": 714337, "end": 714921}, {"filename": "/tulip4/sys/ex/joy.py", "start": 714921, "end": 715922}, {"filename": "/tulip4/sys/ex/my_drums.py", "start": 715922, "end": 725518}, {"filename": "/tulip4/sys/ex/my_juno6.py", "start": 725518, "end": 750298}, {"filename": "/tulip4/sys/ex/my_voices.py", "start": 750298, "end": 763599}, {"filename": "/tulip4/sys/ex/my_worldui.py", "start": 763599, "end": 767610}, {"filename": "/tulip4/sys/ex/parallax.py", "start": 767610, "end": 771815}, {"filename": "/tulip4/sys/ex/planet_boing/pix/bang_texture_03.png", "start": 771815, "end": 773760}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_00.png", "start": 773760, "end": 775600}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_01.png", "start": 775600, "end": 779105}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_02.png", "start": 779105, "end": 781315}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_03.png", "start": 781315, "end": 783395}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_04.png", "start": 783395, "end": 785583}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_05.png", "start": 785583, "end": 787578}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_06.png", "start": 787578, "end": 789694}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_07.png", "start": 789694, "end": 791839}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_08.png", "start": 791839, "end": 793991}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_09.png", "start": 793991, "end": 796104}, {"filename": "/tulip4/sys/ex/planet_boing/pix/wormhole.png", "start": 796104, "end": 796866}, {"filename": "/tulip4/sys/ex/planet_boing/planet_boing.py", "start": 796866, "end": 812772}, {"filename": "/tulip4/sys/ex/rgb332.py", "start": 812772, "end": 813110}, {"filename": "/tulip4/sys/ex/screensaver.py", "start": 813110, "end": 814126}, {"filename": "/tulip4/sys/ex/vlng3.wav", "start": 814126, "end": 1116916, "audio": 1}, {"filename": "/tulip4/sys/ex/vlsa3.wav", "start": 1116916, "end": 1575490, "audio": 1}, {"filename": "/tulip4/sys/ex/woodpiano.txt", "start": 1575490, "end": 1576073}, {"filename": "/tulip4/sys/ex/wordpad.py", "start": 1576073, "end": 1576749}, {"filename": "/tulip4/sys/ex/xanadu.py", "start": 1576749, "end": 1582340}, {"filename": "/tulip4/sys/im/tiny_town/tile_0000.png", "start": 1582340, "end": 1582439}, {"filename": "/tulip4/sys/im/tiny_town/tile_0001.png", "start": 1582439, "end": 1582583}, {"filename": "/tulip4/sys/im/tiny_town/tile_0002.png", "start": 1582583, "end": 1582757}, {"filename": "/tulip4/sys/im/tiny_town/tile_0003.png", "start": 1582757, "end": 1582933}, {"filename": "/tulip4/sys/im/tiny_town/tile_0004.png", "start": 1582933, "end": 1583108}, {"filename": "/tulip4/sys/im/tiny_town/tile_0005.png", "start": 1583108, "end": 1583305}, {"filename": "/tulip4/sys/im/tiny_town/tile_0006.png", "start": 1583305, "end": 1583485}, {"filename": "/tulip4/sys/im/tiny_town/tile_0007.png", "start": 1583485, "end": 1583642}, {"filename": "/tulip4/sys/im/tiny_town/tile_0008.png", "start": 1583642, "end": 1583827}, {"filename": "/tulip4/sys/im/tiny_town/tile_0009.png", "start": 1583827, "end": 1584007}, {"filename": "/tulip4/sys/im/tiny_town/tile_0010.png", "start": 1584007, "end": 1584164}, {"filename": "/tulip4/sys/im/tiny_town/tile_0011.png", "start": 1584164, "end": 1584349}, {"filename": "/tulip4/sys/im/tiny_town/tile_0012.png", "start": 1584349, "end": 1584510}, {"filename": "/tulip4/sys/im/tiny_town/tile_0013.png", "start": 1584510, "end": 1584663}, {"filename": "/tulip4/sys/im/tiny_town/tile_0014.png", "start": 1584663, "end": 1584824}, {"filename": "/tulip4/sys/im/tiny_town/tile_0015.png", "start": 1584824, "end": 1585017}, {"filename": "/tulip4/sys/im/tiny_town/tile_0016.png", "start": 1585017, "end": 1585209}, {"filename": "/tulip4/sys/im/tiny_town/tile_0017.png", "start": 1585209, "end": 1585386}, {"filename": "/tulip4/sys/im/tiny_town/tile_0018.png", "start": 1585386, "end": 1585549}, {"filename": "/tulip4/sys/im/tiny_town/tile_0019.png", "start": 1585549, "end": 1585749}, {"filename": "/tulip4/sys/im/tiny_town/tile_0020.png", "start": 1585749, "end": 1585915}, {"filename": "/tulip4/sys/im/tiny_town/tile_0021.png", "start": 1585915, "end": 1586078}, {"filename": "/tulip4/sys/im/tiny_town/tile_0022.png", "start": 1586078, "end": 1586278}, {"filename": "/tulip4/sys/im/tiny_town/tile_0023.png", "start": 1586278, "end": 1586444}, {"filename": "/tulip4/sys/im/tiny_town/tile_0024.png", "start": 1586444, "end": 1586579}, {"filename": "/tulip4/sys/im/tiny_town/tile_0025.png", "start": 1586579, "end": 1586678}, {"filename": "/tulip4/sys/im/tiny_town/tile_0026.png", "start": 1586678, "end": 1586818}, {"filename": "/tulip4/sys/im/tiny_town/tile_0027.png", "start": 1586818, "end": 1587009}, {"filename": "/tulip4/sys/im/tiny_town/tile_0028.png", "start": 1587009, "end": 1587200}, {"filename": "/tulip4/sys/im/tiny_town/tile_0029.png", "start": 1587200, "end": 1587397}, {"filename": "/tulip4/sys/im/tiny_town/tile_0030.png", "start": 1587397, "end": 1587578}, {"filename": "/tulip4/sys/im/tiny_town/tile_0031.png", "start": 1587578, "end": 1587735}, {"filename": "/tulip4/sys/im/tiny_town/tile_0032.png", "start": 1587735, "end": 1587916}, {"filename": "/tulip4/sys/im/tiny_town/tile_0033.png", "start": 1587916, "end": 1588097}, {"filename": "/tulip4/sys/im/tiny_town/tile_0034.png", "start": 1588097, "end": 1588254}, {"filename": "/tulip4/sys/im/tiny_town/tile_0035.png", "start": 1588254, "end": 1588435}, {"filename": "/tulip4/sys/im/tiny_town/tile_0036.png", "start": 1588435, "end": 1588589}, {"filename": "/tulip4/sys/im/tiny_town/tile_0037.png", "start": 1588589, "end": 1588723}, {"filename": "/tulip4/sys/im/tiny_town/tile_0038.png", "start": 1588723, "end": 1588872}, {"filename": "/tulip4/sys/im/tiny_town/tile_0039.png", "start": 1588872, "end": 1589001}, {"filename": "/tulip4/sys/im/tiny_town/tile_0040.png", "start": 1589001, "end": 1589140}, {"filename": "/tulip4/sys/im/tiny_town/tile_0041.png", "start": 1589140, "end": 1589266}, {"filename": "/tulip4/sys/im/tiny_town/tile_0042.png", "start": 1589266, "end": 1589403}, {"filename": "/tulip4/sys/im/tiny_town/tile_0043.png", "start": 1589403, "end": 1589569}, {"filename": "/tulip4/sys/im/tiny_town/tile_0044.png", "start": 1589569, "end": 1589733}, {"filename": "/tulip4/sys/im/tiny_town/tile_0045.png", "start": 1589733, "end": 1589911}, {"filename": "/tulip4/sys/im/tiny_town/tile_0046.png", "start": 1589911, "end": 1590075}, {"filename": "/tulip4/sys/im/tiny_town/tile_0047.png", "start": 1590075, "end": 1590219}, {"filename": "/tulip4/sys/im/tiny_town/tile_0048.png", "start": 1590219, "end": 1590385}, {"filename": "/tulip4/sys/im/tiny_town/tile_0049.png", "start": 1590385, "end": 1590546}, {"filename": "/tulip4/sys/im/tiny_town/tile_0050.png", "start": 1590546, "end": 1590717}, {"filename": "/tulip4/sys/im/tiny_town/tile_0051.png", "start": 1590717, "end": 1590884}, {"filename": "/tulip4/sys/im/tiny_town/tile_0052.png", "start": 1590884, "end": 1591064}, {"filename": "/tulip4/sys/im/tiny_town/tile_0053.png", "start": 1591064, "end": 1591242}, {"filename": "/tulip4/sys/im/tiny_town/tile_0054.png", "start": 1591242, "end": 1591423}, {"filename": "/tulip4/sys/im/tiny_town/tile_0055.png", "start": 1591423, "end": 1591611}, {"filename": "/tulip4/sys/im/tiny_town/tile_0056.png", "start": 1591611, "end": 1591757}, {"filename": "/tulip4/sys/im/tiny_town/tile_0057.png", "start": 1591757, "end": 1591970}, {"filename": "/tulip4/sys/im/tiny_town/tile_0058.png", "start": 1591970, "end": 1592117}, {"filename": "/tulip4/sys/im/tiny_town/tile_0059.png", "start": 1592117, "end": 1592262}, {"filename": "/tulip4/sys/im/tiny_town/tile_0060.png", "start": 1592262, "end": 1592439}, {"filename": "/tulip4/sys/im/tiny_town/tile_0061.png", "start": 1592439, "end": 1592605}, {"filename": "/tulip4/sys/im/tiny_town/tile_0062.png", "start": 1592605, "end": 1592789}, {"filename": "/tulip4/sys/im/tiny_town/tile_0063.png", "start": 1592789, "end": 1593005}, {"filename": "/tulip4/sys/im/tiny_town/tile_0064.png", "start": 1593005, "end": 1593182}, {"filename": "/tulip4/sys/im/tiny_town/tile_0065.png", "start": 1593182, "end": 1593348}, {"filename": "/tulip4/sys/im/tiny_town/tile_0066.png", "start": 1593348, "end": 1593532}, {"filename": "/tulip4/sys/im/tiny_town/tile_0067.png", "start": 1593532, "end": 1593748}, {"filename": "/tulip4/sys/im/tiny_town/tile_0068.png", "start": 1593748, "end": 1593912}, {"filename": "/tulip4/sys/im/tiny_town/tile_0069.png", "start": 1593912, "end": 1594083}, {"filename": "/tulip4/sys/im/tiny_town/tile_0070.png", "start": 1594083, "end": 1594248}, {"filename": "/tulip4/sys/im/tiny_town/tile_0071.png", "start": 1594248, "end": 1594387}, {"filename": "/tulip4/sys/im/tiny_town/tile_0072.png", "start": 1594387, "end": 1594524}, {"filename": "/tulip4/sys/im/tiny_town/tile_0073.png", "start": 1594524, "end": 1594653}, {"filename": "/tulip4/sys/im/tiny_town/tile_0074.png", "start": 1594653, "end": 1594808}, {"filename": "/tulip4/sys/im/tiny_town/tile_0075.png", "start": 1594808, "end": 1594951}, {"filename": "/tulip4/sys/im/tiny_town/tile_0076.png", "start": 1594951, "end": 1595088}, {"filename": "/tulip4/sys/im/tiny_town/tile_0077.png", "start": 1595088, "end": 1595217}, {"filename": "/tulip4/sys/im/tiny_town/tile_0078.png", "start": 1595217, "end": 1595372}, {"filename": "/tulip4/sys/im/tiny_town/tile_0079.png", "start": 1595372, "end": 1595515}, {"filename": "/tulip4/sys/im/tiny_town/tile_0080.png", "start": 1595515, "end": 1595675}, {"filename": "/tulip4/sys/im/tiny_town/tile_0081.png", "start": 1595675, "end": 1595795}, {"filename": "/tulip4/sys/im/tiny_town/tile_0082.png", "start": 1595795, "end": 1595957}, {"filename": "/tulip4/sys/im/tiny_town/tile_0083.png", "start": 1595957, "end": 1596146}, {"filename": "/tulip4/sys/im/tiny_town/tile_0084.png", "start": 1596146, "end": 1596316}, {"filename": "/tulip4/sys/im/tiny_town/tile_0085.png", "start": 1596316, "end": 1596479}, {"filename": "/tulip4/sys/im/tiny_town/tile_0086.png", "start": 1596479, "end": 1596640}, {"filename": "/tulip4/sys/im/tiny_town/tile_0087.png", "start": 1596640, "end": 1596801}, {"filename": "/tulip4/sys/im/tiny_town/tile_0088.png", "start": 1596801, "end": 1596968}, {"filename": "/tulip4/sys/im/tiny_town/tile_0089.png", "start": 1596968, "end": 1597131}, {"filename": "/tulip4/sys/im/tiny_town/tile_0090.png", "start": 1597131, "end": 1597292}, {"filename": "/tulip4/sys/im/tiny_town/tile_0091.png", "start": 1597292, "end": 1597454}, {"filename": "/tulip4/sys/im/tiny_town/tile_0092.png", "start": 1597454, "end": 1597612}, {"filename": "/tulip4/sys/im/tiny_town/tile_0093.png", "start": 1597612, "end": 1597774}, {"filename": "/tulip4/sys/im/tiny_town/tile_0094.png", "start": 1597774, "end": 1597959}, {"filename": "/tulip4/sys/im/tiny_town/tile_0095.png", "start": 1597959, "end": 1598154}, {"filename": "/tulip4/sys/im/tiny_town/tile_0096.png", "start": 1598154, "end": 1598343}, {"filename": "/tulip4/sys/im/tiny_town/tile_0097.png", "start": 1598343, "end": 1598482}, {"filename": "/tulip4/sys/im/tiny_town/tile_0098.png", "start": 1598482, "end": 1598663}, {"filename": "/tulip4/sys/im/tiny_town/tile_0099.png", "start": 1598663, "end": 1598834}, {"filename": "/tulip4/sys/im/tiny_town/tile_0100.png", "start": 1598834, "end": 1598966}, {"filename": "/tulip4/sys/im/tiny_town/tile_0101.png", "start": 1598966, "end": 1599140}, {"filename": "/tulip4/sys/im/tiny_town/tile_0102.png", "start": 1599140, "end": 1599315}, {"filename": "/tulip4/sys/im/tiny_town/tile_0103.png", "start": 1599315, "end": 1599511}, {"filename": "/tulip4/sys/im/tiny_town/tile_0104.png", "start": 1599511, "end": 1599753}, {"filename": "/tulip4/sys/im/tiny_town/tile_0105.png", "start": 1599753, "end": 1599951}, {"filename": "/tulip4/sys/im/tiny_town/tile_0106.png", "start": 1599951, "end": 1600129}, {"filename": "/tulip4/sys/im/tiny_town/tile_0107.png", "start": 1600129, "end": 1600331}, {"filename": "/tulip4/sys/im/tiny_town/tile_0108.png", "start": 1600331, "end": 1600453}, {"filename": "/tulip4/sys/im/tiny_town/tile_0109.png", "start": 1600453, "end": 1600552}, {"filename": "/tulip4/sys/im/tiny_town/tile_0110.png", "start": 1600552, "end": 1600673}, {"filename": "/tulip4/sys/im/tiny_town/tile_0111.png", "start": 1600673, "end": 1600876}, {"filename": "/tulip4/sys/im/tiny_town/tile_0112.png", "start": 1600876, "end": 1601079}, {"filename": "/tulip4/sys/im/tiny_town/tile_0113.png", "start": 1601079, "end": 1601279}, {"filename": "/tulip4/sys/im/tiny_town/tile_0114.png", "start": 1601279, "end": 1601479}, {"filename": "/tulip4/sys/im/tiny_town/tile_0115.png", "start": 1601479, "end": 1601665}, {"filename": "/tulip4/sys/im/tiny_town/tile_0116.png", "start": 1601665, "end": 1601849}, {"filename": "/tulip4/sys/im/tiny_town/tile_0117.png", "start": 1601849, "end": 1602021}, {"filename": "/tulip4/sys/im/tiny_town/tile_0118.png", "start": 1602021, "end": 1602204}, {"filename": "/tulip4/sys/im/tiny_town/tile_0119.png", "start": 1602204, "end": 1602387}, {"filename": "/tulip4/sys/im/tiny_town/tile_0120.png", "start": 1602387, "end": 1602545}, {"filename": "/tulip4/sys/im/tiny_town/tile_0121.png", "start": 1602545, "end": 1602686}, {"filename": "/tulip4/sys/im/tiny_town/tile_0122.png", "start": 1602686, "end": 1602849}, {"filename": "/tulip4/sys/im/tiny_town/tile_0123.png", "start": 1602849, "end": 1602994}, {"filename": "/tulip4/sys/im/tiny_town/tile_0124.png", "start": 1602994, "end": 1603140}, {"filename": "/tulip4/sys/im/tiny_town/tile_0125.png", "start": 1603140, "end": 1603326}, {"filename": "/tulip4/sys/im/tiny_town/tile_0126.png", "start": 1603326, "end": 1603484}, {"filename": "/tulip4/sys/im/tiny_town/tile_0127.png", "start": 1603484, "end": 1603668}, {"filename": "/tulip4/sys/im/tiny_town/tile_0128.png", "start": 1603668, "end": 1603868}, {"filename": "/tulip4/sys/im/tiny_town/tile_0129.png", "start": 1603868, "end": 1604068}, {"filename": "/tulip4/sys/im/tiny_town/tile_0130.png", "start": 1604068, "end": 1604274}, {"filename": "/tulip4/sys/im/tiny_town/tile_0131.png", "start": 1604274, "end": 1604494}], "remote_package_size": 1604494}); })();