From 75db58afc5fdeece463640d57b2e1f6e347441cf Mon Sep 17 00:00:00 2001 From: 98ahni <60541902+98ahni@users.noreply.github.com> Date: Wed, 11 Dec 2024 11:04:46 +0100 Subject: [PATCH] Release of Resonate 0.8.0-beta --- 0.8.0-beta/Resonate.js | 1 + 0.8.0-beta/Resonate.wasm | Bin 0 -> 5359127 bytes 0.8.0-beta/ResonateInstallWPA.js | 72 + 0.8.0-beta/icons/ResonateIcon.png | Bin 0 -> 8937 bytes 0.8.0-beta/icons/ResonateIconLarge.png | Bin 0 -> 98523 bytes 0.8.0-beta/icons/ResonateIconLarger.png | Bin 0 -> 263161 bytes 0.8.0-beta/icons/ResonateIconUnsaved.png | Bin 0 -> 8937 bytes 0.8.0-beta/index.html | 1 + 0.8.0-beta/manifest.json | 21 + 0.8.0-beta/plugins/Dropbox-sdk.min.js | 1 + 0.8.0-beta/plugins/LoadingScreenWorker.js | 184 ++ 0.8.0-beta/plugins/RubberBand.js | 17 + 0.8.0-beta/plugins/RubberBand.js.mem | Bin 0 -> 46744 bytes 0.8.0-beta/plugins/VexWarp/dsp.js | 2302 ++++++++++++++++++++ 0.8.0-beta/plugins/VexWarp/jquery-2.0.3.js | 6 + 0.8.0-beta/plugins/VexWarp/main.js | 24 + 0.8.0-beta/plugins/VexWarp/require.js | 36 + 0.8.0-beta/plugins/VexWarp/stretch.js | 196 ++ 0.8.0-beta/plugins/VexWarp/tools.js | 102 + 0.8.0-beta/plugins/audiostretchworker.js | 179 ++ 0.8.0-beta/plugins/paulstretch.js | 664 ++++++ 0.8.0-beta/plugins/rubberbandworklet.js | 23 + 0.8.0-beta/plugins/timestretch.js | 196 ++ 0.8.0-beta/plugins/zip.js | 122 ++ Resonate.js | 2 +- Resonate.wasm | Bin 5336466 -> 5359127 bytes 26 files changed, 4148 insertions(+), 1 deletion(-) create mode 100644 0.8.0-beta/Resonate.js create mode 100644 0.8.0-beta/Resonate.wasm create mode 100644 0.8.0-beta/ResonateInstallWPA.js create mode 100644 0.8.0-beta/icons/ResonateIcon.png create mode 100644 0.8.0-beta/icons/ResonateIconLarge.png create mode 100644 0.8.0-beta/icons/ResonateIconLarger.png create mode 100644 0.8.0-beta/icons/ResonateIconUnsaved.png create mode 100644 0.8.0-beta/index.html create mode 100644 0.8.0-beta/manifest.json create mode 100644 0.8.0-beta/plugins/Dropbox-sdk.min.js create mode 100644 0.8.0-beta/plugins/LoadingScreenWorker.js create mode 100644 0.8.0-beta/plugins/RubberBand.js create mode 100644 0.8.0-beta/plugins/RubberBand.js.mem create mode 100644 0.8.0-beta/plugins/VexWarp/dsp.js create mode 100644 0.8.0-beta/plugins/VexWarp/jquery-2.0.3.js create mode 100644 0.8.0-beta/plugins/VexWarp/main.js create mode 100644 0.8.0-beta/plugins/VexWarp/require.js create mode 100644 0.8.0-beta/plugins/VexWarp/stretch.js create mode 100644 0.8.0-beta/plugins/VexWarp/tools.js create mode 100644 0.8.0-beta/plugins/audiostretchworker.js create mode 100644 0.8.0-beta/plugins/paulstretch.js create mode 100644 0.8.0-beta/plugins/rubberbandworklet.js create mode 100644 0.8.0-beta/plugins/timestretch.js create mode 100644 0.8.0-beta/plugins/zip.js diff --git a/0.8.0-beta/Resonate.js b/0.8.0-beta/Resonate.js new file mode 100644 index 0000000..5d92bf3 --- /dev/null +++ b/0.8.0-beta/Resonate.js @@ -0,0 +1 @@ +var Module=typeof Module!="undefined"?Module:{};var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;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 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);if(typeof module!="undefined"){module["exports"]=Module}process.on("uncaughtException",ex=>{if(ex!=="unwind"&&!(ex instanceof ExitStatus)&&!(ex.context instanceof ExitStatus)){throw ex}});quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow};Module["inspect"]=()=>"[Emscripten Module object]"}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(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{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")}function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE!="undefined"&&ENVIRONMENT_IS_NODE){var buf=Buffer.from(s,"base64");return new Uint8Array(buf.buffer,buf.byteOffset,buf.length)}var decoded=atob(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i>2]=34821223;HEAPU32[max+4>>2]=2310721022;HEAPU32[0>>2]=1668509029}function checkStackCookie(){if(ABORT)return;var max=_emscripten_stack_get_end();if(max==0){max+=4}var cookie1=HEAPU32[max>>2];var cookie2=HEAPU32[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(HEAPU32[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 __ATMAIN__=[];var __ATEXIT__=[];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;checkStackCookie();if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){checkStackCookie();callRuntimeCallbacks(__ATMAIN__)}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 getUniqueRunDependency(id){var orig=id;while(1){if(!runDependencyTracking[id])return id;id=orig+Math.random()}}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);throw e}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="Resonate.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);wasmMemory=wasmExports["memory"];assert(wasmMemory,"memory not found in wasm exports");updateMemoryViews();addOnInit(wasmExports["__wasm_call_ctors"]);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"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);return false}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult);return{}}var tempDouble;var tempI64;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={3985601:$0=>{init_gapi_with_key($0)},3985627:($0,$1,$2)=>{Module.show_loading_screen($0,$1,$2)},3985667:()=>{Module.hide_loading_screen()},3985697:()=>{if(document.getElementById("temp-text-input")){document.getElementById("temp-text-input").focus({preventScroll:true})}},3985820:()=>{if(document.getElementById("temp-file-input")){document.getElementById("temp-file-input").click()}},3985922:()=>Date.now(),3985943:()=>Date.now(),3985964:()=>Date.now(),3985985:()=>{location.reload()},3986004:()=>{if(global_audio_context!==null)global_audio_context.close()},3986067:($0,$1)=>{global_audio_element.addEventListener(Emval.toValue($0),window[Emval.toValue($1)],true)},3986160:($0,$1)=>{global_audio_element.removeEventListener(Emval.toValue($0),window[Emval.toValue($1)],true)},3986256:()=>global_audio_element.paused?1:0,3986300:()=>global_audio_element.paused?1:0,3986344:$0=>global_audio_completion[$0-1]?1:0,3986394:$0=>{if(!document.querySelector("link[rel='icon']")){let link=document.createElement("link");link.rel="icon";link.type="image/png";document.head.appendChild(link)}document.querySelector("link[rel='icon']").href="icons/"+Emval.toValue($0)},3986650:()=>{let errString="Undefined";if(error_type===1)errString="Validation";else if(error_type===2)errString="Out of memory";else if(error_type===4)errString="Unknown";else if(error_type===5)errString="Device lost";alert("WebGPU Error "+errString)},3986919:()=>{audio_element_pause()},3986942:()=>{audio_element_play()},3986964:()=>{const dbname="/local";var req=indexedDB.deleteDatabase(dbname);req.onsuccess=function(){console.log("Deleted IndexedDB /local!");location.reload()};req.onerror=function(){console.error("Failed to delete IndexedDB /local!")};req.onblocked=function(){console.error("Failed to delete IndexedDB /local, DB was blocked!")}}};function db_open_auth_popup(token_callback){const callback_func=Module[Emval.toValue(token_callback)];global_db_auth.getAuthenticationUrl(window.location.href,undefined,"code","offline",["account_info.read","files.content.write","files.content.read"],undefined,true).then(authUrl=>{const popup=window.open(authUrl,"Log In with Dropbox","width=520,height=600");const message_func=function(msg){popup.close();global_db_auth.getAccessTokenFromCode(window.location.href,msg.data.code).then(res=>{global_db_auth.setAccessToken(res.result.access_token);global_db_auth.setRefreshToken(res.result.refresh_token);global_db_auth.setAccessTokenExpiresAt(res.result.expires_in);global_db_api=new Dropbox.Dropbox({auth:global_db_auth});global_db_api.usersGetCurrentAccount().then(user_res=>{callback_func(Emval.toHandle(Date.now()+global_db_auth.getAccessTokenExpiresAt()*1e3),Emval.toHandle(user_res.result.name.display_name),Emval.toHandle(user_res.result.profile_photo_url||""))})})};window.addEventListener("message",message_func);const checkWindow=setInterval(()=>{if(!popup||!popup.closed)return;window.removeEventListener("message",message_func);clearInterval(checkWindow)},100)})}if(new URLSearchParams(window.location.search).has("code")){window.opener.postMessage({code:new URLSearchParams(window.location.search).get("code")})}var global_db_auth=new Dropbox.DropboxAuth({clientId:"pzgv8lp5thkigx4"});var global_db_api=null;function db_refresh_token(token_callback){const callback_func=Module[Emval.toValue(token_callback)];global_db_auth.refreshAccessToken().then(()=>{callback_func(Emval.toHandle(global_db_auth.getAccessTokenExpiresAt()))})}function revoke_db_token(){return Emval.toHandle(global_db_api.authTokenRevoke())}function has_db_token(){return global_db_auth.getAccessToken()!==undefined}function db_open_chooser(file_callback_name,done_callback_name,cancel_callback_name,use_iframe,excluded_extensions){const callback_func=Module[Emval.toValue(file_callback_name)];const done_callback_func=Module[Emval.toValue(done_callback_name)];const cancel_callback_func=Module[Emval.toValue(cancel_callback_name)];const ex_extensions=Emval.toValue(excluded_extensions).split(/, \.|, |,\.|,| \.| |\./);const options={success:files=>{if(!FS.analyzePath("/Dropbox").exists){FS.mkdir("/Dropbox")}let loadPromises=[];files.forEach(function(file){loadPromises.push(new Promise(async resolve=>{if(ex_extensions.includes(file.name.split(".").pop())){console.log("File has excluded file type:",file.name,", Skipping");resolve();return}console.log('Loading file "'+file.name+'" from Dropbox.');fetch(file.link).then(res=>res.blob()).then(blob=>blob.arrayBuffer()).then(buffer=>{FS.writeFile("/Dropbox/"+file.name,new Uint8Array(buffer));callback_func(Emval.toHandle("/Dropbox/"+file.name),Emval.toHandle(file.id));resolve()})}))});Promise.all(loadPromises).then(()=>{console.log("Done loading from Dropbox!");done_callback_func()})},cancel:cancel_callback_func,extensions:[""],linkType:"direct",multiselect:true};if(use_iframe){options.iframe=true}Dropbox.choose(options)}function __asyncjs__db_update_file(file_id,fs_path){return Asyncify.handleAsync(async()=>{const fileData=FS.readFile(Emval.toValue(fs_path),{encoding:"utf8"});const response=await global_db_api.filesUpload({path:Emval.toValue(file_id),"mode":"overwrite",contents:fileData});console.log(JSON.stringify(response))})}function __asyncjs__open_directory(mode){return Asyncify.handleAsync(async()=>Emval.toHandle(new Promise(resolve=>{const input=document.createElement("input");input.type="file";if(typeof input.webkitdirectory!=="boolean"){input.multiple=true}else{input.webkitdirectory=true}input.addEventListener("cancel",()=>{resolve("")});input.addEventListener("change",()=>{let files=Array.from(input.files);let promisedFiles=[];let exDir="";if(files[0].webkitRelativePath.toString().includes("/")){if(!FS.analyzePath("/"+files[0].webkitRelativePath.split("/")[0]).exists){FS.mkdir("/"+files[0].webkitRelativePath.split("/")[0])}}else{exDir="/WorkDir";if(!FS.analyzePath("/WorkDir").exists){FS.mkdir("/WorkDir")}}for(const file of files){promisedFiles.push(new Promise(resolve=>{console.log("Loading file "+file.webkitRelativePath);let reader=new FileReader;reader.onload=event=>{const uint8_view=new Uint8Array(event.target.result);FS.writeFile(exDir.length!=0?exDir+"/"+file.name:file.webkitRelativePath,uint8_view);resolve()};reader.readAsArrayBuffer(file)}))}input.remove();Promise.all(promisedFiles).then(()=>{resolve(exDir.length!=0?exDir:files[0].webkitRelativePath.split("/")[0])})});if("showPicker"in HTMLInputElement.prototype){input.showPicker()}else{input.click()}})))}function __asyncjs__open_document(save_folder,mime_type,mode){return Asyncify.handleAsync(async()=>Emval.toHandle(new Promise(resolve=>{const input=document.createElement("input");input.type="file";input.accept=Emval.toValue(mime_type);input.addEventListener("cancel",()=>{resolve("")});input.addEventListener("change",()=>{let files=Array.from(input.files);let exDir=Emval.toValue(save_folder);if(!FS.analyzePath(exDir).exists){FS.mkdir(exDir)}new Promise(resolveLoad=>{console.log("Loading file "+files[0].webkitRelativePath+"/"+files[0].name);let reader=new FileReader;reader.onload=event=>{const uint8_view=new Uint8Array(event.target.result);FS.writeFile(exDir.length!=0?exDir+"/"+files[0].name:files[0].webkitRelativePath,uint8_view);resolveLoad()};reader.readAsArrayBuffer(files[0])}).then(()=>{resolve(exDir+"/"+files[0].name)});input.remove()});if("showPicker"in HTMLInputElement.prototype){input.showPicker()}else{input.click()}})))}function download_document(path,mime_type){const docPath=Emval.toValue(path);const mime=Emval.toValue(mime_type);const docData=FS.readFile(docPath);const docBlob=new Blob([docData.buffer],{type:"application/octet-binary"});const docURL=URL.createObjectURL(docBlob);const link=document.createElement("a");link.href=docURL;link.type=mime;link.download=docPath.split("/").pop();document.body.appendChild(link);link.click();document.body.removeChild(link)}function download_project_zip(zip_name,path_list){const zipName=Emval.toValue(zip_name);const pathList=Emval.toValue(path_list);var fileBlobs=[];for(let i=0;i{const zip=new Zip(zipName);zip.files2zip(fileBlobs).then(()=>{zip.makeZip();resolve()})}))}function wait_for_sync_fs(){return Emval.toHandle(new Promise(resolve=>{FS.syncfs(false,function(err){if(err){console.error("Unable to sync IndexDB!\n"+err)}resolve()})}))}function set_local_value(key,value_to_store){localStorage.setItem(Emval.toValue(key),Emval.toValue(value_to_store))}function get_local_value(key){const keyname=Emval.toValue(key);if(!localStorage.getItem(keyname)){return Emval.toHandle("")}return Emval.toHandle(localStorage.getItem(keyname))}function clear_local_storage(){localStorage.clear()}function initialize_gamepad_events(){navigator.getGamepads().forEach(gp=>{if(gp!==null)_jsGamepadConnected(Emval.toHandle({index:gp.index,name:gp.id,standardMap:gp.mapping=="standard",buttonCount:gp.buttons.length,axesCount:gp.axes.length,timeStamp:performance.now()}))});window.addEventListener("gamepadconnected",e=>{_jsGamepadConnected(Emval.toHandle({index:e.gamepad.index,name:e.gamepad.id,standardMap:e.gamepad.mapping=="standard",buttonCount:e.gamepad.buttons.length,axesCount:e.gamepad.axes.length,timeStamp:performance.now()}))});window.addEventListener("gamepaddisconnected",e=>{_jsGamepadDisconnected(e.gamepad.index)})}function update_gamepad_state(index){const gp=navigator.getGamepads()[index];let output={buttons:[],axes:[],timeStamp:performance.now()};if(gp===null){return Emval.toHandle(null)}gp.buttons.forEach(b=>output.buttons.push({digital:b.pressed,analog:b.value}));gp.axes.forEach(v=>output.axes.push(v));return Emval.toHandle(output)}function gapi_loaded(){if(global_gis_inited){return true}if(!Object.hasOwn(window,"gapi")){console.log("GAPI is slow to load.");return false}gapi.load("client",()=>{gapi.load("client:picker",_GAPI_Init_Client)});return true}function gapi_ready(){return global_gapi_inited&&global_gis_inited}var global_gapi_inited=false;var global_gis_inited=false;function gis_loaded(){if(global_gis_inited){return true}if(!Object.hasOwn(window,"google")){console.log("GSI is slow to load.");return false}global_client_token=google.accounts.oauth2.initTokenClient({client_id:"824603127976-vjf2sbqo99s9kulm1jp847c453ctmv65.apps.googleusercontent.com",scope:"https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/userinfo.profile",prompt:"",callback:""});global_gis_inited=true;return true}var global_client_token;function init_gapi_with_key(APIKey){gapi.client.init({apiKey:Emval.toValue(APIKey),discoveryDocs:["https://www.googleapis.com/discovery/v1/apis/drive/v3/rest","https://people.googleapis.com/$discovery/rest?version=v1"]}).then(()=>{global_gapi_inited=true})}function has_gapi_token(){return gapi.client.getToken()!==null}function request_client_token(prompt,token_callback){var client_token_callback=Module[Emval.toValue(token_callback)];global_client_token.callback=token_data=>{gapi.client.people.people.get({"resourceName":"people/me","requestMask.includeField":"person.names,person.photos","sources":["READ_SOURCE_TYPE_PROFILE"]}).then(user_data=>{client_token_callback(Emval.toHandle(Date.now()+token_data.expires_in*1e3),Emval.toHandle(user_data.result.names.length!=0?user_data.result.names[0].displayName:"(Anon)"),Emval.toHandle(user_data.result.photos.length!=0?user_data.result.photos[0].url:""))})};global_client_token.requestAccessToken({prompt:Emval.toValue(prompt)})}function revoke_client_token(){const token=gapi.client.getToken();if(token!==null){google.accounts.oauth2.revoke(token.access_token);gapi.client.setToken("")}}function create_picker(APIKey,mime_types,file_callback_name,done_callback_name,cancel_callback_name,excluded_extensions){const view=(new google.picker.DocsView).setIncludeFolders(true).setMimeTypes(Emval.toValue(mime_types)).setSelectFolderEnabled(true);const callback_func=Module[Emval.toValue(file_callback_name)];const done_callback_func=Module[Emval.toValue(done_callback_name)];const cancel_callback_func=Module[Emval.toValue(cancel_callback_name)];const ex_extensions=Emval.toValue(excluded_extensions).split(/, \.|, |,\.|,| \.| |\./);const picker=(new google.picker.PickerBuilder).setDeveloperKey(Emval.toValue(APIKey)).setAppId(824603127976).setOAuthToken(gapi.client.getToken().access_token).setTitle("Choose a folder").addView(view).addView(new google.picker.DocsUploadView).setCallback(async data=>{if(data.action===google.picker.Action.CANCEL){cancel_callback_func()}if(data.action===google.picker.Action.PICKED){const documents=data[google.picker.Response.DOCUMENTS];if(!FS.analyzePath("/GoogleDrive").exists){FS.mkdir("/GoogleDrive")}let loadPromises=[];for(const document of documents){const fileId=document[google.picker.Document.ID];console.log(fileId);const files=[];const res=await gapi.client.drive.files.list({q:"'"+fileId+"' in parents",fields:"nextPageToken, files(id, name, fileExtension, trashed)",spaces:"drive"});console.log(JSON.stringify(res.result.files));Array.prototype.push.apply(files,res.result.files);console.log(files);files.forEach(function(file){loadPromises.push(new Promise(async resolve=>{if(file.trashed){console.log("Found trashed file:",file.name,file.id,", Skipping");resolve();return}if(ex_extensions.includes(file.fileExtension)){console.log("Found excluded file type:",file.name,file.id,", Skipping");resolve();return}console.log("Found file:",file.name,file.id);const fres=await gapi.client.drive.files.get({"fileId":file.id,"alt":"media"});var bytes=[];for(var i=0;i{console.log("Done loading from Google Drive!");done_callback_func()})}}).build();picker.setVisible(true)}function __asyncjs__save_to_drive(file_id,fs_path){return Asyncify.handleAsync(async()=>{const fileData=FS.readFile(Emval.toValue(fs_path),{encoding:"utf8"});await gapi.client.request({path:"https://www.googleapis.com/upload/drive/v3/files/"+Emval.toValue(file_id),method:"PATCH",body:fileData,params:{uploadType:"media",fields:"id,version,name"}})})}function create_button(id,event,callback,pos_x,pos_y,width,height){let imid=Emval.toValue(id);let btn=document.getElementById(imid);if(btn===null){btn=document.createElement("button");btn.id=imid;document.body.insertBefore(btn,document.getElementById("canvas").nextSibling)}btn.addEventListener(Emval.toValue(event),window[Emval.toValue(callback)],false);btn.style.position="fixed";btn.style.left=pos_x+"px";btn.style.top=pos_y+"px";btn.style.width=width+"px";btn.style.height=height+"px";btn.style.opacity=.1}function load_video(id,fs_path){return Emval.toHandle(new Promise(async(resolve,reject)=>{var imid=Emval.toValue(id);var vid=document.getElementById(imid);const fsPath=Emval.toValue(fs_path);if(vid===null){if(!FS.analyzePath(fsPath,false).exists){console.error("File not found: ",fsPath);reject()}vid=document.createElement("video");vid.id=imid;vid.volume=0;vid.defaultMuted=true;document.body.insertBefore(vid,document.getElementById("canvas"))}vid.style.position="fixed";vid.style.width=160+"px";vid.style.height=90+"px";const vidData=FS.readFile(fsPath);const vidBlob=new Blob([vidData.buffer],{type:"video/mp4"});vid.src=URL.createObjectURL(vidBlob);vid.disablePictureInPicture=true;vid.volume=0;vid.defaultMuted=true;vid.load();vid.oncanplaythrough=()=>{vid.play().then(()=>{vid.pause()});resolve()}}))}function play_video(id){let imid=Emval.toValue(id);let vid=document.getElementById(imid);if(vid===null){return}vid.play()}function pause_video(id){let imid=Emval.toValue(id);let vid=document.getElementById(imid);if(vid===null){return}vid.pause()}function set_video_playback_progress(id,seconds){let imid=Emval.toValue(id);let vid=document.getElementById(imid);if(vid===null){return}vid.currentTime=seconds}function set_video_playback_rate(id,rate){let imid=Emval.toValue(id);let vid=document.getElementById(imid);if(vid===null){return}vid.playbackRate=rate}function is_video_paused(id){let imid=Emval.toValue(id);let vid=document.getElementById(imid);if(vid===null){return true}return vid.paused}function load_image_from_url(id,url){return Emval.toHandle(new Promise(async resolve=>{let imid=Emval.toValue(id);let img=document.getElementById(imid);const imgURL=Emval.toValue(url);if(img===null){img=document.createElement("img");img.id=imid;img.crossOrigin="anonymous";img.referrerPolicy="origin";document.body.insertBefore(img,document.getElementById("canvas"))}img.style.position="fixed";img.style.width=1+"px";img.style.height=1+"px";img.src=imgURL;try{await img.decode();resolve()}catch(e){console.error("Image failed to decode!");resolve()}}))}function load_image(id,fs_path){return Emval.toHandle(new Promise(async(resolve,reject)=>{let imid=Emval.toValue(id);let img=document.getElementById(imid);const fsPath=Emval.toValue(fs_path);if(img===null){if(!FS.analyzePath(fsPath,false).exists){console.error("File not found: ",fsPath);reject()}}const imgData=FS.readFile(fsPath);const imgBlob=new Blob([imgData.buffer],{type:"application/octet-binary"});Emval.toValue(load_image_from_url(Emval.toHandle(imid),Emval.toHandle(URL.createObjectURL(imgBlob)))).then(resolve,reject)}))}function render_image(id,texture){var imid=Emval.toValue(id);var img=document.getElementById(imid);if(img===null){return Emval.toHandle(0)}var canvas=document.getElementById(imid+"canvas");if(canvas===null){canvas=document.createElement("canvas");canvas.id=imid+"canvas";document.body.insertBefore(canvas,document.getElementById("canvas"));if(img.nodeName=="IMG"){canvas.width=img.naturalWidth;canvas.height=img.naturalHeight}else if(img.nodeName=="VIDEO"){canvas.width=img.videoWidth;canvas.height=img.videoHeight}canvas.style.position="fixed";canvas.style.top=100+"px";canvas.style.width=160+"px";canvas.style.height=90+"px"}var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);var pixels=ctx.getImageData(0,0,canvas.width,canvas.height);var output=_CreateTexture(texture,Emval.toHandle(pixels.data),canvas.width,canvas.height);ctx=null;pixels=null;return output}function destroy_element(id){let input=document.getElementById(Emval.toValue(id));if(input!==null){input.remove()}}function __asyncjs__destroy_element_async(id,delay_ms){return Asyncify.handleAsync(async()=>{let input=document.getElementById(Emval.toValue(id));setTimeout(()=>{if(input!==null){input.remove()}},delay_ms)})}function add_window_event(event,callback){window.addEventListener(Emval.toValue(event),window[Emval.toValue(callback)],true)}function __asyncjs__get_clipboard_content(){return Asyncify.handleAsync(async()=>{var output="";const clipboardContents=await navigator.clipboard.read();for(const item of clipboardContents){if(item.types.includes("text/plain")){let blob=await item.getType("text/plain");output=await blob.text()}}return Emval.toHandle(output)})}function __asyncjs__set_clipboard_content(content){return Asyncify.handleAsync(async()=>{const type="text/plain";const blob=new Blob([Emval.toValue(content)],{type:type});const data=[new ClipboardItem({[type]:blob})];await navigator.clipboard.write(data)})}function has_physical_touch(){return window.matchMedia("(any-pointer: coarse)").matches}function __asyncjs__show_touch_keyboard(is_num_board,pos_y){return Asyncify.handleAsync(async()=>{let input=document.createElement("input");input.id="temp-text-input";if(is_num_board){input.type="number"}else{input.type="text"}input.addEventListener("input",evt=>{if(evt.inputType=="deleteContentBackward"){_TouchExtraKeyEvents(0,true);evt.stopPropagation();setTimeout(()=>{_TouchExtraKeyEvents(0,false)},60)}if(evt.inputType=="deleteContentForeward"){_TouchExtraKeyEvents(1,true);evt.stopPropagation();setTimeout(()=>{_TouchExtraKeyEvents(1,false)},60)}});input.style.position="fixed";input.style.left="-1000px";input.style.top=pos_y+"px";document.body.insertBefore(input,document.getElementById("canvas"))})}function hide_touch_keyboard(){let input=document.getElementById("temp-text-input");input.remove()}function touch_input_handler(){const el=document.getElementById("canvas");el.addEventListener("touchstart",evt=>{for(var i=0;i{_jsPrepPlayback();for(var i=0;i{for(var i=0;i{for(var i=0;i{FS.syncfs(false,function(err){if(err){console.error("Unable to sync IndexDB!\n"+err)}resolve()})}))}function get_preference_value(key){return Emval.toHandle(global_preferences[Emval.toValue(key)])}function has_preference_key(key){return Emval.toHandle(global_preferences.hasOwnProperty(Emval.toValue(key)))}function language_code_to_name(language_code){let names=new Intl.DisplayNames(["en-GB"],{type:"language"});return Emval.toHandle(names.of(Emval.toValue(language_code).replace("_","-")))}var global_audio_element=null;var global_audio_context=null;var global_audio_blobs=[];var global_audio_completion=[];var global_audio_worker_setup_data=[];if(false){}function set_audio_playback_buffer(rate_index){if(global_audio_blobs.length==0){return}const audio=global_audio_element;try{audio.srcObject=global_audio_blobs[Emval.toValue(rate_index)-1]}catch(e){audio.src=URL.createObjectURL(global_audio_blobs[Emval.toValue(rate_index)-1])}}function is_audio_stretched(rate_index){return Emval.toHandle(global_audio_completion[Emval.toValue(rate_index)-1])}function create_audio_playback(){global_audio_element=new Audio;const audio=global_audio_element;const AudioContext=window.AudioContext||window.webkitAudioContext;global_audio_context=new AudioContext;const track=global_audio_context.createMediaElementSource(global_audio_element);track.connect(global_audio_context.destination);audio.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA";if(audio.hasAttribute("webkitPreservesPitch")){audio.webkitPreservesPitch=true}else{audio.preservesPitch=true}default_console_log(global_audio_context.state);global_audio_context.resume();audio.play().then(()=>{audio.pause()});audio.onplay=e=>{_AudioOnPlay()};audio.onpause=e=>{_AudioOnPause()};audio.onended=e=>{_AudioOnEnded()};audio.ondurationchange=e=>{_AudioOnDurationChange()};window.onpagehide=e=>{}}function get_audio_playback_progress(){const audio=global_audio_element;return Emval.toHandle(audio.currentTime)}function get_audio_duration(){const audio=global_audio_element;return Emval.toHandle(audio.duration)}function set_audio_playback_progress(progress){const audio=global_audio_element;audio.currentTime=Emval.toValue(progress)}function set_audio_playback_speed(play_rate){const audio=global_audio_element;audio.playbackRate=Emval.toValue(play_rate)}function audio_element_play(){global_audio_element.play()}function audio_element_pause(){global_audio_element.pause()}function get_audio_samples_hybrid(stretch_index,crude_engine,fine_engine){const crudeEngine=Emval.toValue(crude_engine);const fineEngine=Emval.toValue(fine_engine);const stretchIndex=Emval.toValue(stretch_index);var useCrude=crudeEngine!=="";var audioWorker=new Worker("plugins/audiostretchworker.js");audioWorker.postMessage(global_audio_worker_setup_data);audioWorker.postMessage(["Work",useCrude?crudeEngine:fineEngine,stretchIndex,useCrude]);audioWorker.onmessage=result=>{if(useCrude){get_audio_samples_hybrid(Emval.toHandle(stretchIndex),Emval.toHandle(""),Emval.toHandle(fineEngine))}global_audio_blobs[result.data[1]-1]=result.data[0];global_audio_completion[result.data[1]-1]=true;_jsUpdateAudioBuffer(Emval.toHandle(result.data[1]));audioWorker.postMessage(["Revive"]);audioWorker.onmessage=result=>{audioWorker.terminate();if(useCrude){console.log("Resetting corse engine "+result.data[0])}else{console.log("Resetting fine engine "+result.data[0])}}}}function __asyncjs__get_audio_samples_setup(fs_path){return Asyncify.handleAsync(async()=>{const audioData=FS.readFile(Emval.toValue(fs_path));const audioBlob=new Blob([audioData.buffer],{type:"audio/mp3"});global_audio_blobs.length=10;global_audio_completion=[false,false,false,false,false,false,false,false,false,false];global_audio_context.decodeAudioData(await audioBlob.arrayBuffer(),buffer=>{const isSafari=!!window["safari"]&&safari!=="undefined";global_audio_blobs[9]=Module.audioBufferToBlob(buffer,buffer.sampleRate);global_audio_completion[9]=true;set_audio_playback_buffer(Emval.toHandle(10));if(_IsWaitingToPlay()){audio_element_play()}var audioDatas=[];audioDatas.length=buffer.numberOfChannels;for(var i=0;iEmval.toHandle(new Promise(resolve=>{FS.mount(MEMFS,{root:"."},".");FS.mkdir("/local");FS.mount(IDBFS,{},"/local");FS.syncfs(true,function(err){if(err){alert("Unable to sync IndexDB!\n"+err)}resolve()})})))}function get_runtime_platform(){const userAgent=window.navigator.userAgent;const platform=window.navigator?.userAgentData?.platform||window.navigator.platform;const macosPlatforms=["Macintosh","MacIntel","MacPPC","Mac68K"];const windowsPlatforms=["Win32","Win64","Windows","WinCE"];const iosPlatforms=["iPhone","iPad","iPod"];if(macosPlatforms.indexOf(platform)!==-1){return MAINWINDOW_PLATFORM_MAC}else if(iosPlatforms.indexOf(platform)!==-1){return MAINWINDOW_PLATFORM_IOS}else if(windowsPlatforms.indexOf(platform)!==-1){return MAINWINDOW_PLATFORM_WINDOWS}else if(/Android/.test(userAgent)){return MAINWINDOW_PLATFORM_ANDROID}else if(/Linux/.test(platform)){return MAINWINDOW_PLATFORM_LINUX}return MAINWINDOW_PLATFORM_UNSPECIFIED}const MAINWINDOW_PLATFORM_UNSPECIFIED=0;const MAINWINDOW_PLATFORM_WINDOWS=1;const MAINWINDOW_PLATFORM_MAC=2;const MAINWINDOW_PLATFORM_IOS=4;const MAINWINDOW_PLATFORM_ANDROID=8;const MAINWINDOW_PLATFORM_LINUX=16;function get_has_web_gpu(){return navigator.gpu!==undefined}function __asyncjs__webgpu_create_device(){return Asyncify.handleAsync(async()=>{WebGPU.initManagers();console.log("Create Start!");const adapter=await navigator.gpu.requestAdapter();const device=await adapter.requestDevice();Module.preinitializedWebGPUDevice=device;console.log("Create End!")})}function auto_resize_canvas(){window.addEventListener("resize",resize_canvas,false)}function resize_canvas(){document.getElementById("canvas").width=window.innerWidth*window.devicePixelRatio;document.getElementById("canvas").height=window.innerHeight*window.devicePixelRatio}function canvas_get_width(){return Module.canvas.width}function canvas_get_height(){return Module.canvas.height}function canvas_get_device_pixel_ratio(){return window.devicePixelRatio}function setup_latency_metronome(){return Emval.toHandle(new Promise(async resolve=>{if(global_metronome_buffer!==null){resolve()}const audioData=FS.readFile("/Sound/Metronome.mp3");const audioBlob=new Blob([audioData.buffer],{type:"audio/mp3"});global_audio_context.decodeAudioData(await audioBlob.arrayBuffer(),buffer=>{global_metronome_buffer=buffer;resolve()})}))}function play_latency_metronome(){global_metronome_source=global_audio_context.createBufferSource();global_metronome_source.buffer=global_metronome_buffer;global_metronome_source.loop=true;global_metronome_source.connect(global_audio_context.destination);global_metronome_source.start()}var global_metronome_buffer=null;var global_metronome_source=null;function stop_latency_metronome(){global_metronome_source.stop();global_metronome_source.disconnect();global_metronome_source=null}function get_audio_context_time(){return Emval.toHandle(global_audio_context.currentTime)}function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}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.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(HEAPU8,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"])};function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;assert(false,"Exception thrown, but exception catching is not enabled. Compile with -sNO_DISABLE_EXCEPTION_CATCHING or -sEXCEPTION_CATCHING_ALLOWED=[..] to catch.")};var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments);return PATH.normalize(paths.join("/"))},join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");var randomFillSync=crypto_module["randomFillSync"];if(randomFillSync){return view=>crypto_module["randomFillSync"](view)}var randomBytes=crypto_module["randomBytes"];return view=>(view.set(randomBytes(view.byteLength)),view)}catch(e){}}abort("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: (array) => { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{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};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var mmapAlloc=size=>{abort("internal error: mmapAlloc called but `emscripten_builtin_memalign` native symbol not exported")};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url,arrayBuffer=>{assert(arrayBuffer,`Loading data file "${url}" failed (no arrayBuffer).`);onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module["preloadPlugins"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={"r":0,"r+":2,"w":512|64|1,"w+":512|64|2,"a":1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var IDBFS={dbs:{},indexedDB:()=>{if(typeof indexedDB!="undefined")return indexedDB;var ret=null;if(typeof window=="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function(mount){return MEMFS.mount.apply(null,arguments)},syncfs:(mount,populate,callback)=>{IDBFS.getLocalSet(mount,(err,local)=>{if(err)return callback(err);IDBFS.getRemoteSet(mount,(err,remote)=>{if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)})})},quit:()=>{Object.values(IDBFS.dbs).forEach(value=>value.close());IDBFS.dbs={}},getDB:(name,callback)=>{var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}if(!req){return callback("Unable to connect to IndexedDB")}req.onupgradeneeded=e=>{var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}};req.onsuccess=()=>{db=req.result;IDBFS.dbs[name]=db;callback(null,db)};req.onerror=e=>{callback(e.target.error);e.preventDefault()}},getLocalSet:(mount,callback)=>{var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return p=>PATH.join2(root,p)}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={"timestamp":stat.mtime}}return callback(null,{type:"local",entries:entries})},getRemoteSet:(mount,callback)=>{var entries={};IDBFS.getDB(mount.mountpoint,(err,db)=>{if(err)return callback(err);try{var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=e=>{callback(e.target.error);e.preventDefault()};var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=event=>{var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries})}entries[cursor.primaryKey]={"timestamp":cursor.key};cursor.continue()}}catch(e){return callback(e)}})},loadLocalEntry:(path,callback)=>{var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{"timestamp":stat.mtime,"mode":stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{"timestamp":stat.mtime,"mode":stat.mode,"contents":node.contents})}else{return callback(new Error("node type not supported"))}},storeLocalEntry:(path,entry,callback)=>{try{if(FS.isDir(entry["mode"])){FS.mkdirTree(path,entry["mode"])}else if(FS.isFile(entry["mode"])){FS.writeFile(path,entry["contents"],{canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry["mode"]);FS.utime(path,entry["timestamp"],entry["timestamp"])}catch(e){return callback(e)}callback(null)},removeLocalEntry:(path,callback)=>{try{var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)},loadRemoteEntry:(store,path,callback)=>{var req=store.get(path);req.onsuccess=event=>callback(null,event.target.result);req.onerror=e=>{callback(e.target.error);e.preventDefault()}},storeRemoteEntry:(store,path,entry,callback)=>{try{var req=store.put(entry,path)}catch(e){callback(e);return}req.onsuccess=event=>callback();req.onerror=e=>{callback(e.target.error);e.preventDefault()}},removeRemoteEntry:(store,path,callback)=>{var req=store.delete(path);req.onsuccess=event=>callback();req.onerror=e=>{callback(e.target.error);e.preventDefault()}},reconcile:(src,dst,callback)=>{var total=0;var create=[];Object.keys(src.entries).forEach(function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e["timestamp"].getTime()!=e2["timestamp"].getTime()){create.push(key);total++}});var remove=[];Object.keys(dst.entries).forEach(function(key){if(!src.entries[key]){remove.push(key);total++}});if(!total){return callback(null)}var errored=false;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err&&!errored){errored=true;return callback(err)}}transaction.onerror=e=>{done(this.error);e.preventDefault()};transaction.oncomplete=e=>{if(!errored){callback(null)}};create.sort().forEach(path=>{if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(err,entry)=>{if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)})}else{IDBFS.loadLocalEntry(path,(err,entry)=>{if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)})}});remove.sort().reverse().forEach(path=>{if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}})}};var ERRNO_MESSAGES={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"};var ERRNO_CODES={"EPERM":63,"ENOENT":44,"ESRCH":71,"EINTR":27,"EIO":29,"ENXIO":60,"E2BIG":1,"ENOEXEC":45,"EBADF":8,"ECHILD":12,"EAGAIN":6,"EWOULDBLOCK":6,"ENOMEM":48,"EACCES":2,"EFAULT":21,"ENOTBLK":105,"EBUSY":10,"EEXIST":20,"EXDEV":75,"ENODEV":43,"ENOTDIR":54,"EISDIR":31,"EINVAL":28,"ENFILE":41,"EMFILE":33,"ENOTTY":59,"ETXTBSY":74,"EFBIG":22,"ENOSPC":51,"ESPIPE":70,"EROFS":69,"EMLINK":34,"EPIPE":64,"EDOM":18,"ERANGE":68,"ENOMSG":49,"EIDRM":24,"ECHRNG":106,"EL2NSYNC":156,"EL3HLT":107,"EL3RST":108,"ELNRNG":109,"EUNATCH":110,"ENOCSI":111,"EL2HLT":112,"EDEADLK":16,"ENOLCK":46,"EBADE":113,"EBADR":114,"EXFULL":115,"ENOANO":104,"EBADRQC":103,"EBADSLT":102,"EDEADLOCK":16,"EBFONT":101,"ENOSTR":100,"ENODATA":116,"ETIME":117,"ENOSR":118,"ENONET":119,"ENOPKG":120,"EREMOTE":121,"ENOLINK":47,"EADV":122,"ESRMNT":123,"ECOMM":124,"EPROTO":65,"EMULTIHOP":36,"EDOTDOT":125,"EBADMSG":9,"ENOTUNIQ":126,"EBADFD":127,"EREMCHG":128,"ELIBACC":129,"ELIBBAD":130,"ELIBSCN":131,"ELIBMAX":132,"ELIBEXEC":133,"ENOSYS":52,"ENOTEMPTY":55,"ENAMETOOLONG":37,"ELOOP":32,"EOPNOTSUPP":138,"EPFNOSUPPORT":139,"ECONNRESET":15,"ENOBUFS":42,"EAFNOSUPPORT":5,"EPROTOTYPE":67,"ENOTSOCK":57,"ENOPROTOOPT":50,"ESHUTDOWN":140,"ECONNREFUSED":14,"EADDRINUSE":3,"ECONNABORTED":13,"ENETUNREACH":40,"ENETDOWN":38,"ETIMEDOUT":73,"EHOSTDOWN":142,"EHOSTUNREACH":23,"EINPROGRESS":26,"EALREADY":7,"EDESTADDRREQ":17,"EMSGSIZE":35,"EPROTONOSUPPORT":66,"ESOCKTNOSUPPORT":137,"EADDRNOTAVAIL":4,"ENETRESET":39,"EISCONN":30,"ENOTCONN":53,"ETOOMANYREFS":141,"EUSERS":136,"EDQUOT":19,"ESTALE":72,"ENOTSUP":138,"ENOMEDIUM":148,"EILSEQ":25,"EOVERFLOW":61,"ECANCELED":11,"ENOTRECOVERABLE":56,"EOWNERDEAD":62,"ESTRPIPE":135};var demangle=func=>{warnOnce("warning: build with -sDEMANGLE_SUPPORT to link in libcxxabi demangling");return func};var demangleAll=text=>{var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){assert(typeof parent=="object");var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get(){return this.node},set(val){this.node=val}},isRead:{get(){return(this.flags&2097155)!==1}},isWrite:{get(){return(this.flags&2097155)!==0}},isAppend:{get(){return this.flags&1024}},flags:{get(){return this.shared.flags},set(val){this.shared.flags=val}},position:{get(){return this.shared.position},set(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){if(typeof type=="string"){throw type}var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;i=0);if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){assert(offset>=0);if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate(stream,offset,length){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){assert(offset>=0);if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error(`Invalid encoding type "${opts.encoding}"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1);assert(stdin.fd===0,`invalid handle for stdin (${stdin.fd})`);assert(stdout.fd===1,`invalid handle for stdout (${stdout.fd})`);assert(stderr.fd===2,`invalid handle for stderr (${stderr.fd})`)},ensureErrnoError(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.name="ErrnoError";this.node=node;this.setErrno=function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}};this.setErrno(errno);this.message=ERRNO_MESSAGES[errno];if(this.stack){Object.defineProperty(this,"stack",{value:(new Error).stack,writable:true});this.stack=demangleAll(this.stack)}};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS}},init(input,output,error){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit(){FS.init.initialized=false;_fflush(0);for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node},absolutePath(){abort("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder(){abort("FS.createFolder has been removed; use FS.mkdir instead")},createLink(){abort("FS.createLink has been removed; use FS.symlink instead")},joinPath(){abort("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc(){abort("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath(){abort("FS.standardizePath has been removed; use PATH.normalize instead")}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get(){assert(SYSCALLS.varargs!=undefined);var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret},getp(){return SYSCALLS.get()},getStr(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream}};function ___syscall_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fchmod(fd,mode){try{FS.fchmod(fd,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var setErrNo=value=>{HEAP32[___errno_location()>>2]=value;return value};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.createStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 5:{var arg=SYSCALLS.getp();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}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 ___syscall_ftruncate64(fd,length_low,length_high){var length=convertI32PairToI53Checked(length_low,length_high);try{if(isNaN(length))return 61;FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}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,HEAPU8,outPtr,maxBytesToWrite)};function ___syscall_getdents64(fd,dirp,count){try{var stream=SYSCALLS.getStreamFromFD(fd);if(!stream.getdents){stream.getdents=FS.readdir(stream.path)}var struct_size=280;var pos=0;var off=FS.llseek(stream,0,1);var idx=Math.floor(off/struct_size);while(idx>>0,(tempDouble=id,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos>>2]=tempI64[0],HEAP32[dirp+pos+4>>2]=tempI64[1];tempI64=[(idx+1)*struct_size>>>0,(tempDouble=(idx+1)*struct_size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos+8>>2]=tempI64[0],HEAP32[dirp+pos+12>>2]=tempI64[1];HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18>>0]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size;idx+=1}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=SYSCALLS.getp();HEAP32[argp>>2]=termios.c_iflag||0;HEAP32[argp+4>>2]=termios.c_oflag||0;HEAP32[argp+8>>2]=termios.c_cflag||0;HEAP32[argp+12>>2]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17>>0]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=SYSCALLS.getp();var c_iflag=HEAP32[argp>>2];var c_oflag=HEAP32[argp+4>>2];var c_cflag=HEAP32[argp+8>>2];var c_lflag=HEAP32[argp+12>>2];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17>>0])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag:c_iflag,c_oflag:c_oflag,c_cflag:c_cflag,c_lflag:c_lflag,c_cc:c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.getp();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.getp();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=SYSCALLS.getp();HEAP16[argp>>1]=winsize[0];HEAP16[argp+2>>1]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.lstat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_mkdirat(dirfd,path,mode){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;assert(!flags,`unknown flags in __syscall_newfstatat: ${flags}`);path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.doStat(nofollow?FS.lstat:FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_readlinkat(dirfd,path,buf,bufsize){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_symlink(target,linkpath){try{target=SYSCALLS.getStr(target);linkpath=SYSCALLS.getStr(linkpath);FS.symlink(target,linkpath);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(flags===0){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{abort("Invalid flags passed to unlinkat")}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __embind_register_bigint=(primitiveType,name,size,minRange,maxRange)=>{};var embind_init_charCodes=()=>{var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes};var embind_charCodes;var readLatin1String=ptr=>{var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret};var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var BindingError;var throwBindingError=message=>{throw new BindingError(message)};var InternalError;var throwInternalError=message=>{throw new InternalError(message)};function sharedRegisterType(rawType,registeredInstance,options={}){var name=registeredInstance.name;if(!rawType){throwBindingError(`type "${name}" must have a positive integer typeid pointer`)}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(`Cannot register type '${name}' twice`)}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function registerType(rawType,registeredInstance,options={}){if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}return sharedRegisterType(rawType,registeredInstance,options)}var GenericWireTypeSize=8;var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(wt){return!!wt},"toWireType":function(destructors,o){return o?trueValue:falseValue},"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":function(pointer){return this["fromWireType"](HEAPU8[pointer])},destructorFunction:null})};function handleAllocatorInit(){Object.assign(HandleAllocator.prototype,{get(id){assert(this.allocated[id]!==undefined,`invalid handle: ${id}`);return this.allocated[id]},has(id){return this.allocated[id]!==undefined},allocate(handle){var id=this.freelist.pop()||this.allocated.length;this.allocated[id]=handle;return id},free(id){assert(this.allocated[id]!==undefined);this.allocated[id]=undefined;this.freelist.push(id)}})}function HandleAllocator(){this.allocated=[undefined];this.freelist=[]}var emval_handles=new HandleAllocator;var __emval_decref=handle=>{if(handle>=emval_handles.reserved&&0===--emval_handles.get(handle).refcount){emval_handles.free(handle)}};var count_emval_handles=()=>{var count=0;for(var i=emval_handles.reserved;i{emval_handles.allocated.push({value:undefined},{value:null},{value:true},{value:false});emval_handles.reserved=emval_handles.allocated.length;Module["count_emval_handles"]=count_emval_handles};var Emval={toValue:handle=>{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handles.get(handle).value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{return emval_handles.allocate({refcount:1,value:value})}}}};function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAP32[pointer>>2])}var __embind_register_emval=(rawType,name)=>{name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":handle=>{var rv=Emval.toValue(handle);__emval_decref(handle);return rv},"toWireType":(destructors,value)=>Emval.toHandle(value),"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})};var embindRepr=v=>{if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}};var floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 8:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":value=>value,"toWireType":(destructors,value)=>{if(typeof value!="number"&&typeof value!="boolean"){throw new TypeError(`Cannot convert ${embindRepr(value)} to ${this.name}`)}return value},"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":floatReadValueFromPointer(name,size),destructorFunction:null})};var integerReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?pointer=>HEAP8[pointer>>0]:pointer=>HEAPU8[pointer>>0];case 2:return signed?pointer=>HEAP16[pointer>>1]:pointer=>HEAPU16[pointer>>1];case 4:return signed?pointer=>HEAP32[pointer>>2]:pointer=>HEAPU32[pointer>>2];default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_integer=(primitiveType,name,size,minRange,maxRange)=>{name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{if(typeof value!="number"&&typeof value!="boolean"){throw new TypeError(`Cannot convert "${embindRepr(value)}" to ${toTypeName}`)}if(valuemaxRange){throw new TypeError(`Passing a number "${embindRepr(value)}" from JS side to C/C++ side to an argument of type "${name}", which is outside the valid range [${minRange}, ${maxRange}]!`)}};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":toWireType,"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":integerReadValueFromPointer(name,size,minRange!==0),destructorFunction:null})};var __embind_register_memory_view=(rawType,dataTypeIndex,name)=>{var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=HEAPU32[handle>>2];var data=HEAPU32[handle+4>>2];return new TA(HEAP8.buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})};function readPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}var __embind_register_std_string=(rawType,name)=>{name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType"(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+i]=charCode}}else{for(var i=0;i{assert(ptr%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str};var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{assert(outPtr%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!");assert(typeof maxBytesToWrite=="number","stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!");if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var lengthBytesUTF16=str=>str.length*2;var UTF32ToString=(ptr,maxBytesToRead)=>{assert(ptr%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{assert(outPtr%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!");assert(typeof maxBytesToWrite=="number","stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!");if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=()=>HEAPU16;shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=()=>HEAPU32;shift=2}registerType(rawType,{name:name,"fromWireType":value=>{var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":(destructors,value)=>{if(!(typeof value=="string")){throwBindingError(`Cannot pass non-string to C++ string type ${name}`)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction(ptr){_free(ptr)}})};var __embind_register_void=(rawType,name)=>{name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":()=>undefined,"toWireType":(destructors,o)=>undefined})};var __emscripten_fs_load_embedded_files=ptr=>{do{var name_addr=HEAPU32[ptr>>2];ptr+=4;var len=HEAPU32[ptr>>2];ptr+=4;var content=HEAPU32[ptr>>2];ptr+=4;var name=UTF8ToString(name_addr);FS.createPath("/",PATH.dirname(name),true,true);FS.createDataFile(name,null,HEAP8.subarray(content,content+len),true,true,true)}while(HEAPU32[ptr>>2])};var getTypeName=type=>{var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv};var requireRegisteredType=(rawType,humanName)=>{var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl};var emval_returnValue=(returnType,destructorsRef,handle)=>{var destructors=[];var result=returnType["toWireType"](destructors,handle);if(destructors.length){HEAPU32[destructorsRef>>2]=Emval.toHandle(destructors)}return result};var __emval_as=(handle,returnType,destructorsRef)=>{handle=Emval.toValue(handle);returnType=requireRegisteredType(returnType,"emval::as");return emval_returnValue(returnType,destructorsRef,handle)};var runAndAbortIfError=func=>{try{return func()}catch(e){abort(e)}};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 65536)")}}quit_(1,e)};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;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)`;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 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:8192,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){HEAPU32[ptr>>2]=stack;HEAPU32[ptr+4>>2]=stack+stackSize},setDataRewindFunc(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc(ptr){var id=HEAP32[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 __emval_await=promise=>Asyncify.handleAsync(()=>{promise=Emval.toValue(promise);return promise.then(Emval.toHandle)});__emval_await.isAsync=true;var emval_symbols={};var getStringOrSymbol=address=>{var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}return symbol};var emval_methodCallers=[];var __emval_call_method=(caller,objHandle,methodName,destructorsRef,args)=>{caller=emval_methodCallers[caller];objHandle=Emval.toValue(objHandle);methodName=getStringOrSymbol(methodName);return caller(objHandle,objHandle[methodName],destructorsRef,args)};var emval_addMethodCaller=caller=>{var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id};var emval_lookupTypes=(argCount,argTypes)=>{var a=new Array(argCount);for(var i=0;i>2],"parameter "+i)}return a};var createNamedFunction=(name,body)=>Object.defineProperty(body,"name",{value:name});var reflectConstruct=Reflect.construct;function newFunc(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError(`new_ called with constructor type ${typeof constructor} which is not a function`)}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}var __emval_get_method_caller=(argCount,argTypes,kind)=>{var types=emval_lookupTypes(argCount,argTypes);var retType=types.shift();argCount--;var functionBody=`return function (obj, func, destructorsRef, args) {\n`;var offset=0;var argsList=[];if(kind===0){argsList.push("obj")}var params=["retType"];var args=[retType];for(var i=0;it.name).join(", ")}) => ${retType.name}>`;return emval_addMethodCaller(createNamedFunction(functionName,invokerFunction))};var __emval_get_property=(handle,key)=>{handle=Emval.toValue(handle);key=Emval.toValue(key);return Emval.toHandle(handle[key])};var __emval_incref=handle=>{if(handle>4){emval_handles.get(handle).refcount+=1}};var __emval_new_array=()=>Emval.toHandle([]);var __emval_new_cstring=v=>Emval.toHandle(getStringOrSymbol(v));var runDestructors=destructors=>{while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}};var __emval_run_destructors=handle=>{var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)};var __emval_take_value=(type,arg)=>{type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](arg);return Emval.toHandle(v)};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=HEAPU8[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?HEAPU32[buf>>2]:ch==105?HEAP32[buf>>2]:HEAPF64[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_double=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var _emscripten_memcpy_js=(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num);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=HEAPU8.length;requestedSize>>>=0;assert(requestedSize>oldSize);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 safeSetTimeout=(func,timeout)=>setTimeout(()=>{callUserCallback(func)},timeout);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:typeof WebGL2RenderingContext!="undefined"?2: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=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[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_arg=(func,arg,fps,simulateInfiniteLoop)=>{var browserIterationFunc=()=>(a1=>dynCall_vi.apply(null,[func,a1]))(arg);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg)};var withStackSave=f=>{var stack=stackSave();var ret=f();stackRestore(stack);return ret};var JSEvents={inEventHandler:0,removeAllEventListeners(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort((x,y)=>x.precedence{for(var i=0;ispecialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0};var fillMouseEventData=(eventStruct,e,target)=>{assert(eventStruct%4==0);HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top};var maybeCStringToJsString=cString=>cString>2?UTF8ToString(cString):cString;var findEventTarget=target=>{target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):undefined);return domElement};var registerWheelEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=(e=event)=>{var wheelEvent=JSEvents.wheelEvent;fillMouseEventData(wheelEvent,e,target);HEAPF64[wheelEvent+72>>3]=e["deltaX"];HEAPF64[wheelEvent+80>>3]=e["deltaY"];HEAPF64[wheelEvent+88>>3]=e["deltaZ"];HEAP32[wheelEvent+96>>2]=e["deltaMode"];if(((a1,a2,a3)=>dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3]))(eventTypeId,wheelEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:wheelHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_wheel_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>{target=findEventTarget(target);if(!target)return-4;if(typeof target.onwheel!="undefined"){return registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread)}else{return-1}};var _emscripten_set_window_title=title=>document.title=UTF8ToString(title);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var WebGPU={errorCallback:(callback,type,message,userdata)=>{withStackSave(()=>{var messagePtr=stringToUTF8OnStack(message);((a1,a2,a3)=>dynCall_viii.apply(null,[callback,a1,a2,a3]))(type,messagePtr,userdata)})},initManagers:()=>{if(WebGPU.mgrDevice)return;function Manager(){this.objects={};this.nextId=1;this.create=function(object,wrapper={}){var id=this.nextId++;assert(typeof this.objects[id]=="undefined");wrapper.refcount=1;wrapper.object=object;this.objects[id]=wrapper;return id};this.get=function(id){if(!id)return undefined;var o=this.objects[id];assert(typeof o!="undefined");return o.object};this.reference=function(id){var o=this.objects[id];assert(typeof o!="undefined");o.refcount++};this.release=function(id){var o=this.objects[id];assert(typeof o!="undefined");assert(o.refcount>0);o.refcount--;if(o.refcount<=0){delete this.objects[id]}}}WebGPU.mgrSurface=WebGPU.mgrSurface||new Manager;WebGPU.mgrSwapChain=WebGPU.mgrSwapChain||new Manager;WebGPU.mgrAdapter=WebGPU.mgrAdapter||new Manager;WebGPU.mgrDevice=WebGPU.mgrDevice||new Manager;WebGPU.mgrQueue=WebGPU.mgrQueue||new Manager;WebGPU.mgrCommandBuffer=WebGPU.mgrCommandBuffer||new Manager;WebGPU.mgrCommandEncoder=WebGPU.mgrCommandEncoder||new Manager;WebGPU.mgrRenderPassEncoder=WebGPU.mgrRenderPassEncoder||new Manager;WebGPU.mgrComputePassEncoder=WebGPU.mgrComputePassEncoder||new Manager;WebGPU.mgrBindGroup=WebGPU.mgrBindGroup||new Manager;WebGPU.mgrBuffer=WebGPU.mgrBuffer||new Manager;WebGPU.mgrSampler=WebGPU.mgrSampler||new Manager;WebGPU.mgrTexture=WebGPU.mgrTexture||new Manager;WebGPU.mgrTextureView=WebGPU.mgrTextureView||new Manager;WebGPU.mgrQuerySet=WebGPU.mgrQuerySet||new Manager;WebGPU.mgrBindGroupLayout=WebGPU.mgrBindGroupLayout||new Manager;WebGPU.mgrPipelineLayout=WebGPU.mgrPipelineLayout||new Manager;WebGPU.mgrRenderPipeline=WebGPU.mgrRenderPipeline||new Manager;WebGPU.mgrComputePipeline=WebGPU.mgrComputePipeline||new Manager;WebGPU.mgrShaderModule=WebGPU.mgrShaderModule||new Manager;WebGPU.mgrRenderBundleEncoder=WebGPU.mgrRenderBundleEncoder||new Manager;WebGPU.mgrRenderBundle=WebGPU.mgrRenderBundle||new Manager},makeColor:ptr=>({"r":HEAPF64[ptr>>3],"g":HEAPF64[ptr+8>>3],"b":HEAPF64[ptr+16>>3],"a":HEAPF64[ptr+24>>3]}),makeExtent3D:ptr=>({"width":HEAPU32[ptr>>2],"height":HEAPU32[ptr+4>>2],"depthOrArrayLayers":HEAPU32[ptr+8>>2]}),makeOrigin3D:ptr=>({"x":HEAPU32[ptr>>2],"y":HEAPU32[ptr+4>>2],"z":HEAPU32[ptr+8>>2]}),makeImageCopyTexture:ptr=>{assert(ptr);assert(HEAPU32[ptr>>2]===0);return{"texture":WebGPU.mgrTexture.get(HEAPU32[ptr+4>>2]),"mipLevel":HEAPU32[ptr+8>>2],"origin":WebGPU.makeOrigin3D(ptr+12),"aspect":WebGPU.TextureAspect[HEAPU32[ptr+24>>2]]}},makeTextureDataLayout:ptr=>{assert(ptr);assert(HEAPU32[ptr>>2]===0);var bytesPerRow=HEAPU32[ptr+16>>2];var rowsPerImage=HEAPU32[ptr+20>>2];return{"offset":HEAPU32[ptr+4+8>>2]*4294967296+HEAPU32[ptr+8>>2],"bytesPerRow":bytesPerRow===4294967295?undefined:bytesPerRow,"rowsPerImage":rowsPerImage===4294967295?undefined:rowsPerImage}},makeImageCopyBuffer:ptr=>{assert(ptr);assert(HEAPU32[ptr>>2]===0);var layoutPtr=ptr+8;var bufferCopyView=WebGPU.makeTextureDataLayout(layoutPtr);bufferCopyView["buffer"]=WebGPU.mgrBuffer.get(HEAPU32[ptr+32>>2]);return bufferCopyView},makePipelineConstants:(constantCount,constantsPtr)=>{if(!constantCount)return;var constants={};for(var i=0;i>2]);constants[key]=HEAPF64[entryPtr+8>>3]}return constants},makePipelineLayout:layoutPtr=>{if(!layoutPtr)return"auto";return WebGPU.mgrPipelineLayout.get(layoutPtr)},makeProgrammableStageDescriptor:ptr=>{if(!ptr)return undefined;assert(ptr);assert(HEAPU32[ptr>>2]===0);var desc={"module":WebGPU.mgrShaderModule.get(HEAPU32[ptr+4>>2]),"constants":WebGPU.makePipelineConstants(HEAPU32[ptr+12>>2],HEAPU32[ptr+16>>2])};var entryPointPtr=HEAPU32[ptr+8>>2];if(entryPointPtr)desc["entryPoint"]=UTF8ToString(entryPointPtr);return desc},DeviceLostReason:{undefined:0,destroyed:1},PreferredFormat:{rgba8unorm:18,bgra8unorm:23},BufferMapState:["unmapped","pending","mapped"],AddressMode:["repeat","mirror-repeat","clamp-to-edge"],BlendFactor:["zero","one","src","one-minus-src","src-alpha","one-minus-src-alpha","dst","one-minus-dst","dst-alpha","one-minus-dst-alpha","src-alpha-saturated","constant","one-minus-constant"],BlendOperation:["add","subtract","reverse-subtract","min","max"],BufferBindingType:[,"uniform","storage","read-only-storage"],CompareFunction:[,"never","less","less-equal","greater","greater-equal","equal","not-equal","always"],CompilationInfoRequestStatus:["success","error","device-lost","unknown"],CullMode:["none","front","back"],ErrorFilter:["validation","out-of-memory","internal"],FeatureName:[,"depth-clip-control","depth32float-stencil8","timestamp-query","texture-compression-bc","texture-compression-etc2","texture-compression-astc","indirect-first-instance","shader-f16","rg11b10ufloat-renderable","bgra8unorm-storage","float32filterable"],FilterMode:["nearest","linear"],FrontFace:["ccw","cw"],IndexFormat:[,"uint16","uint32"],LoadOp:[,"clear","load"],MipmapFilterMode:["nearest","linear"],PowerPreference:[,"low-power","high-performance"],PrimitiveTopology:["point-list","line-list","line-strip","triangle-list","triangle-strip"],QueryType:["occlusion","timestamp"],SamplerBindingType:[,"filtering","non-filtering","comparison"],StencilOperation:["keep","zero","replace","invert","increment-clamp","decrement-clamp","increment-wrap","decrement-wrap"],StorageTextureAccess:[,"write-only"],StoreOp:[,"store","discard"],TextureAspect:["all","stencil-only","depth-only"],TextureDimension:["1d","2d","3d"],TextureFormat:[,"r8unorm","r8snorm","r8uint","r8sint","r16uint","r16sint","r16float","rg8unorm","rg8snorm","rg8uint","rg8sint","r32float","r32uint","r32sint","rg16uint","rg16sint","rg16float","rgba8unorm","rgba8unorm-srgb","rgba8snorm","rgba8uint","rgba8sint","bgra8unorm","bgra8unorm-srgb","rgb10a2unorm","rg11b10ufloat","rgb9e5ufloat","rg32float","rg32uint","rg32sint","rgba16uint","rgba16sint","rgba16float","rgba32float","rgba32uint","rgba32sint","stencil8","depth16unorm","depth24plus","depth24plus-stencil8","depth32float","depth32float-stencil8","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb","bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm","bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb","etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm","astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"],TextureSampleType:[,"float","unfilterable-float","depth","sint","uint"],TextureViewDimension:[,"1d","2d","2d-array","cube","cube-array","3d"],VertexFormat:[,"uint8x2","uint8x4","sint8x2","sint8x4","unorm8x2","unorm8x4","snorm8x2","snorm8x4","uint16x2","uint16x4","sint16x2","sint16x4","unorm16x2","unorm16x4","snorm16x2","snorm16x4","float16x2","float16x4","float32","float32x2","float32x3","float32x4","uint32","uint32x2","uint32x3","uint32x4","sint32","sint32x2","sint32x3","sint32x4"],VertexStepMode:["vertex","instance"],FeatureNameString2Enum:{undefined:"0","depth-clip-control":"1","depth32float-stencil8":"2","timestamp-query":"3","texture-compression-bc":"4","texture-compression-etc2":"5","texture-compression-astc":"6","indirect-first-instance":"7","shader-f16":"8","rg11b10ufloat-renderable":"9","bgra8unorm-storage":"10",float32filterable:"11"}};var _emscripten_webgpu_get_device=()=>{assert(Module["preinitializedWebGPUDevice"]);if(WebGPU.preinitializedDeviceId===undefined){var device=Module["preinitializedWebGPUDevice"];var deviceWrapper={queueId:WebGPU.mgrQueue.create(device["queue"])};WebGPU.preinitializedDeviceId=WebGPU.mgrDevice.create(device,deviceWrapper)}WebGPU.mgrDevice.reference(WebGPU.preinitializedDeviceId);return WebGPU.preinitializedDeviceId};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i>0]=str.charCodeAt(i)}HEAP8[buffer>>0]=0};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>2]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var rightsBase=0;var rightsInheriting=0;var flags=0;{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4}HEAP8[pbuf>>0]=type;HEAP16[pbuf+2>>1]=flags;tempI64=[rightsBase>>>0,(tempDouble=rightsBase,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+8>>2]=tempI64[0],HEAP32[pbuf+12>>2]=tempI64[1];tempI64=[rightsInheriting>>>0,(tempDouble=rightsInheriting,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+16>>2]=tempI64[0],HEAP32[pbuf+20>>2]=tempI64[1];return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!=="undefined"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var webgl_enable_ANGLE_instanced_arrays=ctx=>{var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=(index,divisor)=>ext["vertexAttribDivisorANGLE"](index,divisor);ctx["drawArraysInstanced"]=(mode,first,count,primcount)=>ext["drawArraysInstancedANGLE"](mode,first,count,primcount);ctx["drawElementsInstanced"]=(mode,count,type,indices,primcount)=>ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount);return 1}};var webgl_enable_OES_vertex_array_object=ctx=>{var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=()=>ext["createVertexArrayOES"]();ctx["deleteVertexArray"]=vao=>ext["deleteVertexArrayOES"](vao);ctx["bindVertexArray"]=vao=>ext["bindVertexArrayOES"](vao);ctx["isVertexArray"]=vao=>ext["isVertexArrayOES"](vao);return 1}};var webgl_enable_WEBGL_draw_buffers=ctx=>{var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=(n,bufs)=>ext["drawBuffersWEBGL"](n,bufs);return 1}};var webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw=ctx=>!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"));var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:table=>{var ret=GL.counter++;for(var i=table.length;i{var source="";for(var i=0;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:(canvas,webGLContextAttributes)=>{if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;function fixedGetContext(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}canvas.getContext=fixedGetContext}var ctx=webGLContextAttributes.majorVersion>1?canvas.getContext("webgl2",webGLContextAttributes):canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:(ctx,webGLContextAttributes)=>{var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:contextHandle=>{GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:contextHandle=>GL.contexts[contextHandle],deleteContext:contextHandle=>{if(GL.currentContext===GL.contexts[contextHandle]){GL.currentContext=null}if(typeof JSEvents=="object"){JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas)}if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas){GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined}GL.contexts[contextHandle]=null},initExtensions:context=>{if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;webgl_enable_ANGLE_instanced_arrays(GLctx);webgl_enable_OES_vertex_array_object(GLctx);webgl_enable_WEBGL_draw_buffers(GLctx);webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(ext=>{if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})},getExtensions(){var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(e=>"GL_"+e));return exts}};function _glActiveTexture(x0){GLctx.activeTexture(x0)}var _glAttachShader=(program,shader)=>{GLctx.attachShader(GL.programs[program],GL.shaders[shader])};var _glBindBuffer=(target,buffer)=>{if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])};var _glBindTexture=(target,texture)=>{GLctx.bindTexture(target,GL.textures[texture])};var _glBindVertexArray=vao=>{GLctx.bindVertexArray(GL.vaos[vao])};var _glBindVertexArrayOES=_glBindVertexArray;function _glBlendEquation(x0){GLctx.blendEquation(x0)}function _glBlendEquationSeparate(x0,x1){GLctx.blendEquationSeparate(x0,x1)}function _glBlendFuncSeparate(x0,x1,x2,x3){GLctx.blendFuncSeparate(x0,x1,x2,x3)}var _glBufferData=(target,size,data,usage)=>{if(GL.currentContext.version>=2){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}};var _glBufferSubData=(target,offset,size,data)=>{if(GL.currentContext.version>=2){size&&GLctx.bufferSubData(target,offset,HEAPU8,data,size);return}GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))};function _glClear(x0){GLctx.clear(x0)}function _glClearColor(x0,x1,x2,x3){GLctx.clearColor(x0,x1,x2,x3)}var _glCompileShader=shader=>{GLctx.compileShader(GL.shaders[shader])};var _glCreateProgram=()=>{var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id};var _glCreateShader=shaderType=>{var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id};var _glDeleteShader=id=>{if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null};var _glDeleteTextures=(n,textures)=>{for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}};var _glDeleteVertexArrays=(n,vaos)=>{for(var i=0;i>2];GLctx.deleteVertexArray(GL.vaos[id]);GL.vaos[id]=null}};var _glDeleteVertexArraysOES=_glDeleteVertexArrays;var _glDetachShader=(program,shader)=>{GLctx.detachShader(GL.programs[program],GL.shaders[shader])};function _glDisable(x0){GLctx.disable(x0)}var _glDrawElements=(mode,count,type,indices)=>{GLctx.drawElements(mode,count,type,indices)};function _glEnable(x0){GLctx.enable(x0)}var _glEnableVertexAttribArray=index=>{GLctx.enableVertexAttribArray(index)};var __glGenObject=(n,buffers,createFunction,objectTable)=>{for(var i=0;i>2]=id}};var _glGenBuffers=(n,buffers)=>{__glGenObject(n,buffers,"createBuffer",GL.buffers)};var _glGenTextures=(n,textures)=>{__glGenObject(n,textures,"createTexture",GL.textures)};function _glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}var _glGenVertexArraysOES=_glGenVertexArrays;var _glGetAttribLocation=(program,name)=>GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name));var readI53FromI64=ptr=>HEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296;var readI53FromU64=ptr=>HEAPU32[ptr>>2]+HEAPU32[ptr+4>>2]*4294967296;var writeI53ToI64=(ptr,num)=>{HEAPU32[ptr>>2]=num;var lower=HEAPU32[ptr>>2];HEAPU32[ptr+4>>2]=(num-lower)/4294967296;var deserialized=num>=0?readI53FromU64(ptr):readI53FromI64(ptr);var offset=ptr>>2;if(deserialized!=num)warnOnce(`writeI53ToI64() out of range: serialized JS Number ${num} to Wasm heap as bytes lo=${ptrToString(HEAPU32[offset])}, hi=${ptrToString(HEAPU32[offset+1])}, which deserializes back to ${deserialized} instead!`)};var emscriptenWebGLGet=(name_,p,type)=>{if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 34814:case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break;case 33309:if(GL.currentContext.version<2){GL.recordError(1282);return}var exts=GLctx.getSupportedExtensions()||[];ret=2*exts.length;break;case 33307:case 33308:if(GL.currentContext.version<2){GL.recordError(1280);return}ret=name_==33307?3:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err(`GL_INVALID_ENUM in glGet${type}v: Unknown object returned from WebGL getParameter(${name_})! (error: ${e})`);return}}break;default:GL.recordError(1280);err(`GL_INVALID_ENUM in glGet${type}v: Native code calling glGet${type}v(${name_}) and it returns ${result} of type ${typeof result}!`);return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}};var _glGetIntegerv=(name_,p)=>emscriptenWebGLGet(name_,p,0);var _glGetProgramInfoLog=(program,maxLength,length,infoLog)=>{var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _glGetProgramiv=(program,pname,p)=>{if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}};var _glGetShaderInfoLog=(shader,maxLength,length,infoLog)=>{var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _glGetShaderiv=(shader,pname,p)=>{if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}};var jstoi_q=str=>parseInt(str);var webglGetLeftBracePos=name=>name.slice(-1)=="]"&&name.lastIndexOf("[");var webglPrepareUniformLocationsBeforeFirstUse=program=>{var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j{name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex{program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)};var _glLinkProgram=program=>{program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}};var _glPixelStorei=(pname,param)=>{if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)};function _glScissor(x0,x1,x2,x3){GLctx.scissor(x0,x1,x2,x3)}var _glShaderSource=(shader,count,string,length)=>{var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)};var computeUnpackAlignedImageSize=(width,height,sizePerPixel,alignment)=>{function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize};var colorChannelsInGlTextureFormat=format=>{var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1};var heapObjectForWebGLType=type=>{type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16};var heapAccessShiftForWebGLHeap=heap=>31-Math.clz32(heap.BYTES_PER_ELEMENT);var emscriptenWebGLGetTexPixelData=(type,format,width,height,pixels,internalFormat)=>{var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)};var _glTexImage2D=(target,level,internalFormat,width,height,border,format,type,pixels)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)};function _glTexParameteri(x0,x1,x2){GLctx.texParameteri(x0,x1,x2)}var webglGetUniformLocation=location=>{var p=GLctx.currentProgram;if(p){var webglLoc=p.uniformLocsById[location];if(typeof webglLoc=="number"){p.uniformLocsById[location]=webglLoc=GLctx.getUniformLocation(p,p.uniformArrayNamesById[location]+(webglLoc>0?`[${webglLoc}]`:""))}return webglLoc}else{GL.recordError(1282)}};var _glUniform1i=(location,v0)=>{GLctx.uniform1i(webglGetUniformLocation(location),v0)};var miniTempWebGLFloatBuffers=[];var _glUniformMatrix4fv=(location,count,transpose,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*16);return}if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)};var _glUseProgram=program=>{program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program};var _glVertexAttribPointer=(index,size,type,normalized,stride,ptr)=>{GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)};function _glViewport(x0,x1,x2,x3){GLctx.viewport(x0,x1,x2,x3)}function GLFW_Window(id,width,height,title,monitor,share){this.id=id;this.x=0;this.y=0;this.fullscreen=false;this.storedX=0;this.storedY=0;this.width=width;this.height=height;this.storedWidth=width;this.storedHeight=height;this.title=title;this.monitor=monitor;this.share=share;this.attributes=GLFW.hints;this.inputModes={208897:212993,208898:0,208899:0};this.buttons=0;this.keys=new Array;this.domKeys=new Array;this.shouldClose=0;this.title=null;this.windowPosFunc=0;this.windowSizeFunc=0;this.windowCloseFunc=0;this.windowRefreshFunc=0;this.windowFocusFunc=0;this.windowIconifyFunc=0;this.windowMaximizeFunc=0;this.framebufferSizeFunc=0;this.windowContentScaleFunc=0;this.mouseButtonFunc=0;this.cursorPosFunc=0;this.cursorEnterFunc=0;this.scrollFunc=0;this.dropFunc=0;this.keyFunc=0;this.charFunc=0;this.userptr=0}var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var GLFW={WindowFromId:id=>{if(id<=0||!GLFW.windows)return null;return GLFW.windows[id-1]},joystickFunc:0,errorFunc:0,monitorFunc:0,active:null,scale:null,windows:null,monitors:null,monitorString:null,versionString:null,initialTime:null,extensions:null,hints:null,defaultHints:{131073:0,131074:0,131075:1,131076:1,131077:1,131082:0,135169:8,135170:8,135171:8,135172:8,135173:24,135174:8,135175:0,135176:0,135177:0,135178:0,135179:0,135180:0,135181:0,135182:0,135183:0,139265:196609,139266:1,139267:0,139268:0,139269:0,139270:0,139271:0,139272:0,139276:0},DOMToGLFWKeyCode:keycode=>{switch(keycode){case 32:return 32;case 222:return 39;case 188:return 44;case 173:return 45;case 189:return 45;case 190:return 46;case 191:return 47;case 48:return 48;case 49:return 49;case 50:return 50;case 51:return 51;case 52:return 52;case 53:return 53;case 54:return 54;case 55:return 55;case 56:return 56;case 57:return 57;case 59:return 59;case 61:return 61;case 187:return 61;case 65:return 65;case 66:return 66;case 67:return 67;case 68:return 68;case 69:return 69;case 70:return 70;case 71:return 71;case 72:return 72;case 73:return 73;case 74:return 74;case 75:return 75;case 76:return 76;case 77:return 77;case 78:return 78;case 79:return 79;case 80:return 80;case 81:return 81;case 82:return 82;case 83:return 83;case 84:return 84;case 85:return 85;case 86:return 86;case 87:return 87;case 88:return 88;case 89:return 89;case 90:return 90;case 219:return 91;case 220:return 92;case 221:return 93;case 192:return 96;case 27:return 256;case 13:return 257;case 9:return 258;case 8:return 259;case 45:return 260;case 46:return 261;case 39:return 262;case 37:return 263;case 40:return 264;case 38:return 265;case 33:return 266;case 34:return 267;case 36:return 268;case 35:return 269;case 20:return 280;case 145:return 281;case 144:return 282;case 44:return 283;case 19:return 284;case 112:return 290;case 113:return 291;case 114:return 292;case 115:return 293;case 116:return 294;case 117:return 295;case 118:return 296;case 119:return 297;case 120:return 298;case 121:return 299;case 122:return 300;case 123:return 301;case 124:return 302;case 125:return 303;case 126:return 304;case 127:return 305;case 128:return 306;case 129:return 307;case 130:return 308;case 131:return 309;case 132:return 310;case 133:return 311;case 134:return 312;case 135:return 313;case 136:return 314;case 96:return 320;case 97:return 321;case 98:return 322;case 99:return 323;case 100:return 324;case 101:return 325;case 102:return 326;case 103:return 327;case 104:return 328;case 105:return 329;case 110:return 330;case 111:return 331;case 106:return 332;case 109:return 333;case 107:return 334;case 16:return 340;case 17:return 341;case 18:return 342;case 91:return 343;case 93:return 348;default:return-1}},getModBits:win=>{var mod=0;if(win.keys[340])mod|=1;if(win.keys[341])mod|=2;if(win.keys[342])mod|=4;if(win.keys[343])mod|=8;return mod},onKeyPress:event=>{if(!GLFW.active||!GLFW.active.charFunc)return;if(event.ctrlKey||event.metaKey)return;var charCode=event.charCode;if(charCode==0||charCode>=0&&charCode<=31)return;((a1,a2)=>dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2]))(GLFW.active.id,charCode)},onKeyChanged:(keyCode,status)=>{if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(GLFW.active.keyFunc){if(repeat)status=2;((a1,a2,a3,a4,a5)=>dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5]))(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))}},onGamepadConnected:event=>{GLFW.refreshJoysticks()},onGamepadDisconnected:event=>{GLFW.refreshJoysticks()},onKeydown:event=>{GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:event=>{GLFW.onKeyChanged(event.keyCode,0)},onBlur:event=>{if(!GLFW.active)return;for(var i=0;i{if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"]||!GLFW.active.cursorPosFunc)return;if(GLFW.active.cursorPosFunc){((a1,a2,a3)=>dynCall_vidd.apply(null,[GLFW.active.cursorPosFunc,a1,a2,a3]))(GLFW.active.id,Browser.mouseX,Browser.mouseY)}},DOMToGLFWMouseButton:event=>{var eventButton=event["button"];if(eventButton>0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:event=>{if(!GLFW.active)return;if(event.target!=Module["canvas"])return;if(GLFW.active.cursorEnterFunc){((a1,a2)=>dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2]))(GLFW.active.id,1)}},onMouseleave:event=>{if(!GLFW.active)return;if(event.target!=Module["canvas"])return;if(GLFW.active.cursorEnterFunc){((a1,a2)=>dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2]))(GLFW.active.id,0)}},onMouseButtonChanged:(event,status)=>{if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<dynCall_viiii.apply(null,[GLFW.active.mouseButtonFunc,a1,a2,a3,a4]))(GLFW.active.id,eventButton,status,GLFW.getModBits(GLFW.active))}},onMouseButtonDown:event=>{if(!GLFW.active)return;GLFW.onMouseButtonChanged(event,1)},onMouseButtonUp:event=>{if(!GLFW.active)return;GLFW.onMouseButtonChanged(event,0)},onMouseWheel:event=>{var delta=-Browser.getMouseWheelDelta(event);delta=delta==0?0:delta>0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=delta;if(event.type=="mousewheel"){sx=event.wheelDeltaX}else{sx=event.deltaX}((a1,a2,a3)=>dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3]))(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:(width,height)=>{if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:()=>{if(!GLFW.active)return;if(GLFW.active.windowSizeFunc){((a1,a2,a3)=>dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3]))(GLFW.active.id,GLFW.active.width,GLFW.active.height)}},onFramebufferSizeChanged:()=>{if(!GLFW.active)return;if(GLFW.active.framebufferSizeFunc){((a1,a2,a3)=>dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3]))(GLFW.active.id,GLFW.active.width,GLFW.active.height)}},onWindowContentScaleChanged:scale=>{GLFW.scale=scale;if(!GLFW.active)return;if(GLFW.active.windowContentScaleFunc){((a1,a2,a3)=>{throw'Internal Error! Attempted to invoke wasm function pointer with signature "viff", but no such functions have gotten exported!'})(GLFW.active.id,GLFW.scale,GLFW.scale)}},getTime:()=>_emscripten_get_now()/1e3,setWindowTitle:(winid,title)=>{var win=GLFW.WindowFromId(winid);if(!win)return;win.title=title;if(GLFW.active.id==win.id){_emscripten_set_window_title(title)}},setJoystickCallback:cbfun=>{var prevcbfun=GLFW.joystickFunc;GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks();return prevcbfun},joys:{},lastGamepadState:[],lastGamepadStateFrame:null,refreshJoysticks:()=>{if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:[];GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joydynCall_vii.apply(null,[GLFW.joystickFunc,a1,a2]))(joy,262145)}}var data=GLFW.joys[joy];for(var i=0;i>0]=gamepad.buttons[i].pressed}for(var i=0;i>2]=gamepad.axes[i]}}else{if(GLFW.joys[joy]){out("glfw joystick disconnected",joy);if(GLFW.joystickFunc){((a1,a2)=>dynCall_vii.apply(null,[GLFW.joystickFunc,a1,a2]))(joy,262146)}_free(GLFW.joys[joy].id);_free(GLFW.joys[joy].buttons);_free(GLFW.joys[joy].axes);delete GLFW.joys[joy]}}}}},setKeyCallback:(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.keyFunc;win.keyFunc=cbfun;return prevcbfun},setCharCallback:(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.charFunc;win.charFunc=cbfun;return prevcbfun},setMouseButtonCallback:(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.mouseButtonFunc;win.mouseButtonFunc=cbfun;return prevcbfun},setCursorPosCallback:(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.cursorPosFunc;win.cursorPosFunc=cbfun;return prevcbfun},setScrollCallback:(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.scrollFunc;win.scrollFunc=cbfun;return prevcbfun},setDropCallback:(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.dropFunc;win.dropFunc=cbfun;return prevcbfun},onDrop:event=>{if(!GLFW.active||!GLFW.active.dropFunc)return;if(!event.dataTransfer||!event.dataTransfer.files||event.dataTransfer.files.length==0)return;event.preventDefault();var filenames=_malloc(event.dataTransfer.files.length*4);var filenamesArray=[];var count=event.dataTransfer.files.length;var written=0;var drop_dir=".glfw_dropped_files";FS.createPath("/",drop_dir);function save(file){var path="/"+drop_dir+"/"+file.name.replace(/\//g,"_");var reader=new FileReader;reader.onloadend=e=>{if(reader.readyState!=2){++written;out("failed to read dropped file: "+file.name+": "+reader.error);return}var data=e.target.result;FS.writeFile(path,new Uint8Array(data));if(++written===count){((a1,a2,a3)=>dynCall_viii.apply(null,[GLFW.active.dropFunc,a1,a2,a3]))(GLFW.active.id,count,filenames);for(var i=0;i>2]=filename}for(var i=0;i{if(!GLFW.active||!GLFW.active.dropFunc)return;event.preventDefault();return false},setWindowSizeCallback:(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.windowSizeFunc;win.windowSizeFunc=cbfun;return prevcbfun},setWindowCloseCallback:(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.windowCloseFunc;win.windowCloseFunc=cbfun;return prevcbfun},setWindowRefreshCallback:(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.windowRefreshFunc;win.windowRefreshFunc=cbfun;return prevcbfun},onClickRequestPointerLock:e=>{if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();e.preventDefault()}},setInputMode:(winid,mode,value)=>{var win=GLFW.WindowFromId(winid);if(!win)return;switch(mode){case 208897:{switch(value){case 212993:{win.inputModes[mode]=value;Module["canvas"].removeEventListener("click",GLFW.onClickRequestPointerLock,true);Module["canvas"].exitPointerLock();break}case 212994:{err("glfwSetInputMode called with GLFW_CURSOR_HIDDEN value not implemented");break}case 212995:{win.inputModes[mode]=value;Module["canvas"].addEventListener("click",GLFW.onClickRequestPointerLock,true);Module["canvas"].requestPointerLock();break}default:{err(`glfwSetInputMode called with unknown value parameter value: ${value}`);break}}break}case 208898:{err("glfwSetInputMode called with GLFW_STICKY_KEYS mode not implemented");break}case 208899:{err("glfwSetInputMode called with GLFW_STICKY_MOUSE_BUTTONS mode not implemented");break}case 208900:{err("glfwSetInputMode called with GLFW_LOCK_KEY_MODS mode not implemented");break}case 3342341:{err("glfwSetInputMode called with GLFW_RAW_MOUSE_MOTION mode not implemented");break}default:{err(`glfwSetInputMode called with unknown mode parameter value: ${mode}`);break}}},getKey:(winid,key)=>{var win=GLFW.WindowFromId(winid);if(!win)return 0;return win.keys[key]},getMouseButton:(winid,button)=>{var win=GLFW.WindowFromId(winid);if(!win)return 0;return(win.buttons&1<0},getCursorPos:(winid,x,y)=>{HEAPF64[x>>3]=Browser.mouseX;HEAPF64[y>>3]=Browser.mouseY},getMousePos:(winid,x,y)=>{HEAP32[x>>2]=Browser.mouseX;HEAP32[y>>2]=Browser.mouseY},setCursorPos:(winid,x,y)=>{},getWindowPos:(winid,x,y)=>{var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){HEAP32[x>>2]=wx}if(y){HEAP32[y>>2]=wy}},setWindowPos:(winid,x,y)=>{var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:(winid,width,height)=>{var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){HEAP32[width>>2]=ww}if(height){HEAP32[height>>2]=wh}},setWindowSize:(winid,width,height)=>{var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){Browser.setCanvasSize(width,height);win.width=width;win.height=height}if(win.windowSizeFunc){((a1,a2,a3)=>dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3]))(win.id,width,height)}},createWindow:(width,height,title,monitor,share)=>{var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:winid=>{var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc){(a1=>dynCall_vi.apply(null,[win.windowCloseFunc,a1]))(win.id)}GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i{},GLFW2ParamToGLFW3Param:param=>{var table={196609:0,196610:0,196611:0,196612:0,196613:0,196614:0,131073:0,131074:0,131075:0,131076:0,131077:135169,131078:135170,131079:135171,131080:135172,131081:135173,131082:135174,131083:135183,131084:135175,131085:135176,131086:135177,131087:135178,131088:135179,131089:135180,131090:0,131091:135181,131092:139266,131093:139267,131094:139270,131095:139271,131096:139272};return table[param]}};var _glfwCreateStandardCursor=shape=>{};var _glfwCreateWindow=(width,height,title,monitor,share)=>GLFW.createWindow(width,height,title,monitor,share);var _glfwDestroyWindow=winid=>GLFW.destroyWindow(winid);var _glfwFocusWindow=winid=>{};var _glfwGetClipboardString=win=>{};var _glfwGetFramebufferSize=(winid,width,height)=>{var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){HEAP32[width>>2]=ww}if(height){HEAP32[height>>2]=wh}};var _glfwGetInputMode=(winid,mode)=>{var win=GLFW.WindowFromId(winid);if(!win)return;switch(mode){case 208897:{if(Browser.pointerLock){win.inputModes[mode]=212995}else{win.inputModes[mode]=212993}}}return win.inputModes[mode]};var _glfwGetJoystickAxes=(joy,count)=>{GLFW.refreshJoysticks();var state=GLFW.joys[joy];if(!state||!state.axes){HEAP32[count>>2]=0;return}HEAP32[count>>2]=state.axesCount;return state.axes};var _glfwGetJoystickButtons=(joy,count)=>{GLFW.refreshJoysticks();var state=GLFW.joys[joy];if(!state||!state.buttons){HEAP32[count>>2]=0;return}HEAP32[count>>2]=state.buttonsCount;return state.buttons};var _glfwGetKey=(winid,key)=>GLFW.getKey(winid,key);var _glfwGetMonitorContentScale=(monitor,x,y)=>{HEAPF32[x>>2]=GLFW.scale;HEAPF32[y>>2]=GLFW.scale};var _glfwGetMonitorPos=(monitor,x,y)=>{HEAP32[x>>2]=0;HEAP32[y>>2]=0};var _glfwGetMonitorWorkarea=(monitor,x,y,w,h)=>{HEAP32[x>>2]=0;HEAP32[y>>2]=0;HEAP32[w>>2]=screen.availWidth;HEAP32[h>>2]=screen.availHeight};var _glfwGetMonitors=count=>{HEAP32[count>>2]=1;if(!GLFW.monitors){GLFW.monitors=_malloc(4);HEAP32[GLFW.monitors>>2]=1}return GLFW.monitors};var _glfwGetTime=()=>GLFW.getTime()-GLFW.initialTime;var _glfwGetVideoMode=monitor=>0;var _glfwGetWindowAttrib=(winid,attrib)=>{var win=GLFW.WindowFromId(winid);if(!win)return 0;return win.attributes[attrib]};var _glfwGetWindowPos=(winid,x,y)=>GLFW.getWindowPos(winid,x,y);var _glfwGetWindowSize=(winid,width,height)=>GLFW.getWindowSize(winid,width,height);var _emscripten_get_device_pixel_ratio=()=>typeof devicePixelRatio=="number"&&devicePixelRatio||1;var _glfwInit=()=>{if(GLFW.windows)return 1;GLFW.initialTime=GLFW.getTime();GLFW.hints=GLFW.defaultHints;GLFW.windows=new Array;GLFW.active=null;GLFW.scale=_emscripten_get_device_pixel_ratio();window.addEventListener("gamepadconnected",GLFW.onGamepadConnected,true);window.addEventListener("gamepaddisconnected",GLFW.onGamepadDisconnected,true);window.addEventListener("keydown",GLFW.onKeydown,true);window.addEventListener("keypress",GLFW.onKeyPress,true);window.addEventListener("keyup",GLFW.onKeyup,true);window.addEventListener("blur",GLFW.onBlur,true);(function updatePixelRatio(){window.matchMedia("(resolution: "+window.devicePixelRatio+"dppx)").addEventListener("change",updatePixelRatio,{once:true});GLFW.onWindowContentScaleChanged(_emscripten_get_device_pixel_ratio())})();Module["canvas"].addEventListener("touchmove",GLFW.onMousemove,true);Module["canvas"].addEventListener("touchstart",GLFW.onMouseButtonDown,true);Module["canvas"].addEventListener("touchcancel",GLFW.onMouseButtonUp,true);Module["canvas"].addEventListener("touchend",GLFW.onMouseButtonUp,true);Module["canvas"].addEventListener("mousemove",GLFW.onMousemove,true);Module["canvas"].addEventListener("mousedown",GLFW.onMouseButtonDown,true);Module["canvas"].addEventListener("mouseup",GLFW.onMouseButtonUp,true);Module["canvas"].addEventListener("wheel",GLFW.onMouseWheel,true);Module["canvas"].addEventListener("mousewheel",GLFW.onMouseWheel,true);Module["canvas"].addEventListener("mouseenter",GLFW.onMouseenter,true);Module["canvas"].addEventListener("mouseleave",GLFW.onMouseleave,true);Module["canvas"].addEventListener("drop",GLFW.onDrop,true);Module["canvas"].addEventListener("dragover",GLFW.onDragover,true);Browser.resizeListeners.push((width,height)=>{GLFW.onCanvasResize(width,height)});return 1};var _glfwMakeContextCurrent=winid=>{};var _glfwPollEvents=()=>{};var _glfwSetCharCallback=(winid,cbfun)=>GLFW.setCharCallback(winid,cbfun);var _glfwSetClipboardString=(win,string)=>{};var _glfwSetCursor=(winid,cursor)=>{};var _glfwSetCursorEnterCallback=(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.cursorEnterFunc;win.cursorEnterFunc=cbfun;return prevcbfun};var _glfwSetCursorPos=(winid,x,y)=>GLFW.setCursorPos(winid,x,y);var _glfwSetCursorPosCallback=(winid,cbfun)=>GLFW.setCursorPosCallback(winid,cbfun);var _glfwSetErrorCallback=cbfun=>{var prevcbfun=GLFW.errorFunc;GLFW.errorFunc=cbfun;return prevcbfun};var _glfwSetInputMode=(winid,mode,value)=>{GLFW.setInputMode(winid,mode,value)};var _glfwSetKeyCallback=(winid,cbfun)=>GLFW.setKeyCallback(winid,cbfun);var _glfwSetMonitorCallback=cbfun=>{var prevcbfun=GLFW.monitorFunc;GLFW.monitorFunc=cbfun;return prevcbfun};var _glfwSetMouseButtonCallback=(winid,cbfun)=>GLFW.setMouseButtonCallback(winid,cbfun);var _glfwSetScrollCallback=(winid,cbfun)=>GLFW.setScrollCallback(winid,cbfun);var _glfwSetWindowCloseCallback=(winid,cbfun)=>GLFW.setWindowCloseCallback(winid,cbfun);var _glfwSetWindowFocusCallback=(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.windowFocusFunc;win.windowFocusFunc=cbfun;return prevcbfun};var _glfwSetWindowOpacity=(winid,opacity)=>{};var _glfwSetWindowPos=(winid,x,y)=>GLFW.setWindowPos(winid,x,y);var _glfwSetWindowPosCallback=(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.windowPosFunc;win.windowPosFunc=cbfun;return prevcbfun};var _glfwSetWindowSize=(winid,width,height)=>GLFW.setWindowSize(winid,width,height);var _glfwSetWindowSizeCallback=(winid,cbfun)=>GLFW.setWindowSizeCallback(winid,cbfun);var _glfwSetWindowTitle=(winid,title)=>GLFW.setWindowTitle(winid,title);var _glfwShowWindow=winid=>{};var _glfwSwapBuffers=winid=>GLFW.swapBuffers(winid);var _glfwSwapInterval=interval=>{interval=Math.abs(interval);if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval)};var _glfwTerminate=()=>{window.removeEventListener("gamepadconnected",GLFW.onGamepadConnected,true);window.removeEventListener("gamepaddisconnected",GLFW.onGamepadDisconnected,true);window.removeEventListener("keydown",GLFW.onKeydown,true);window.removeEventListener("keypress",GLFW.onKeyPress,true);window.removeEventListener("keyup",GLFW.onKeyup,true);window.removeEventListener("blur",GLFW.onBlur,true);Module["canvas"].removeEventListener("touchmove",GLFW.onMousemove,true);Module["canvas"].removeEventListener("touchstart",GLFW.onMouseButtonDown,true);Module["canvas"].removeEventListener("touchcancel",GLFW.onMouseButtonUp,true);Module["canvas"].removeEventListener("touchend",GLFW.onMouseButtonUp,true);Module["canvas"].removeEventListener("mousemove",GLFW.onMousemove,true);Module["canvas"].removeEventListener("mousedown",GLFW.onMouseButtonDown,true);Module["canvas"].removeEventListener("mouseup",GLFW.onMouseButtonUp,true);Module["canvas"].removeEventListener("wheel",GLFW.onMouseWheel,true);Module["canvas"].removeEventListener("mousewheel",GLFW.onMouseWheel,true);Module["canvas"].removeEventListener("mouseenter",GLFW.onMouseenter,true);Module["canvas"].removeEventListener("mouseleave",GLFW.onMouseleave,true);Module["canvas"].removeEventListener("drop",GLFW.onDrop,true);Module["canvas"].removeEventListener("dragover",GLFW.onDragover,true);Module["canvas"].width=Module["canvas"].height=1;GLFW.windows=null;GLFW.active=null};var _glfwWindowHint=(target,hint)=>{GLFW.hints[target]=hint};var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var arraySum=(array,index)=>{var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum};var MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];var addDays=(date,days)=>{var newDate=new Date(date.getTime());while(days>0){var leap=isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate};var writeArrayToMemory=(array,buffer)=>{assert(array.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)");HEAP8.set(array,buffer)};var _strftime=(s,maxsize,format,tm)=>{var tm_zone=HEAPU32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}return thisDate.getFullYear()}return thisDate.getFullYear()-1}var EXPANSION_RULES_2={"%a":date=>WEEKDAYS[date.tm_wday].substring(0,3),"%A":date=>WEEKDAYS[date.tm_wday],"%b":date=>MONTHS[date.tm_mon].substring(0,3),"%B":date=>MONTHS[date.tm_mon],"%C":date=>{var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":date=>leadingNulls(date.tm_mday,2),"%e":date=>leadingSomething(date.tm_mday,2," "),"%g":date=>getWeekBasedYear(date).toString().substring(2),"%G":date=>getWeekBasedYear(date),"%H":date=>leadingNulls(date.tm_hour,2),"%I":date=>{var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":date=>leadingNulls(date.tm_mday+arraySum(isLeapYear(date.tm_year+1900)?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR,date.tm_mon-1),3),"%m":date=>leadingNulls(date.tm_mon+1,2),"%M":date=>leadingNulls(date.tm_min,2),"%n":()=>"\n","%p":date=>{if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":date=>leadingNulls(date.tm_sec,2),"%t":()=>"\t","%u":date=>date.tm_wday||7,"%U":date=>{var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":date=>{var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":date=>date.tm_wday,"%W":date=>{var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":date=>(date.tm_year+1900).toString().substring(2),"%Y":date=>date.tm_year+1900,"%z":date=>{var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":date=>date.tm_zone,"%%":()=>"%"};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1};var _strftime_l=(s,maxsize,format,tm,loc)=>_strftime(s,maxsize,format,tm);var _wgpuAdapterRelease=id=>WebGPU.mgrAdapter.release(id);var _wgpuBindGroupLayoutRelease=id=>WebGPU.mgrBindGroupLayout.release(id);var _wgpuBindGroupRelease=id=>WebGPU.mgrBindGroup.release(id);var _wgpuBufferDestroy=bufferId=>{var bufferWrapper=WebGPU.mgrBuffer.objects[bufferId];assert(typeof bufferWrapper!="undefined");if(bufferWrapper.onUnmap){for(var i=0;iWebGPU.mgrBuffer.release(id);var _wgpuCommandEncoderBeginRenderPass=(encoderId,descriptor)=>{assert(descriptor);function makeColorAttachment(caPtr){var viewPtr=HEAPU32[caPtr+4>>2];if(viewPtr===0){return undefined}var loadOpInt=HEAPU32[caPtr+12>>2];assert(loadOpInt!==0);var storeOpInt=HEAPU32[caPtr+16>>2];assert(storeOpInt!==0);var clearValue=WebGPU.makeColor(caPtr+24);return{"view":WebGPU.mgrTextureView.get(viewPtr),"resolveTarget":WebGPU.mgrTextureView.get(HEAPU32[caPtr+8>>2]),"clearValue":clearValue,"loadOp":WebGPU.LoadOp[loadOpInt],"storeOp":WebGPU.StoreOp[storeOpInt]}}function makeColorAttachments(count,caPtr){var attachments=[];for(var i=0;i>2]),"depthClearValue":HEAPF32[dsaPtr+12>>2],"depthLoadOp":WebGPU.LoadOp[HEAPU32[dsaPtr+4>>2]],"depthStoreOp":WebGPU.StoreOp[HEAPU32[dsaPtr+8>>2]],"depthReadOnly":HEAP8[dsaPtr+16>>0]!==0,"stencilClearValue":HEAPU32[dsaPtr+28>>2],"stencilLoadOp":WebGPU.LoadOp[HEAPU32[dsaPtr+20>>2]],"stencilStoreOp":WebGPU.StoreOp[HEAPU32[dsaPtr+24>>2]],"stencilReadOnly":HEAP8[dsaPtr+32>>0]!==0}}function makeRenderPassTimestampWrites(twPtr){if(twPtr===0)return undefined;return{"querySet":WebGPU.mgrQuerySet.get(HEAPU32[twPtr>>2]),"beginningOfPassWriteIndex":HEAPU32[twPtr+4>>2],"endOfPassWriteIndex":HEAPU32[twPtr+8>>2]}}function makeRenderPassDescriptor(descriptor){assert(descriptor);var nextInChainPtr=HEAPU32[descriptor>>2];var maxDrawCount=undefined;if(nextInChainPtr!==0){var sType=HEAPU32[nextInChainPtr+4>>2];assert(sType===15);assert(0===HEAPU32[nextInChainPtr>>2]);var renderPassDescriptorMaxDrawCount=nextInChainPtr;assert(renderPassDescriptorMaxDrawCount);assert(HEAPU32[renderPassDescriptorMaxDrawCount>>2]===0);maxDrawCount=HEAPU32[renderPassDescriptorMaxDrawCount+4+8>>2]*4294967296+HEAPU32[renderPassDescriptorMaxDrawCount+8>>2]}var desc={"label":undefined,"colorAttachments":makeColorAttachments(HEAPU32[descriptor+8>>2],HEAPU32[descriptor+12>>2]),"depthStencilAttachment":makeDepthStencilAttachment(HEAPU32[descriptor+16>>2]),"occlusionQuerySet":WebGPU.mgrQuerySet.get(HEAPU32[descriptor+20>>2]),"timestampWrites":makeRenderPassTimestampWrites(HEAPU32[descriptor+24>>2]),"maxDrawCount":maxDrawCount};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);return desc}var desc=makeRenderPassDescriptor(descriptor);var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);return WebGPU.mgrRenderPassEncoder.create(commandEncoder["beginRenderPass"](desc))};var _wgpuCommandEncoderFinish=(encoderId,descriptor)=>{var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);return WebGPU.mgrCommandBuffer.create(commandEncoder["finish"]())};var _wgpuCreateInstance=descriptor=>1;var _wgpuDeviceCreateBindGroup=(deviceId,descriptor)=>{assert(descriptor);assert(HEAPU32[descriptor>>2]===0);function makeEntry(entryPtr){assert(entryPtr);var bufferId=HEAPU32[entryPtr+8>>2];var samplerId=HEAPU32[entryPtr+32>>2];var textureViewId=HEAPU32[entryPtr+36>>2];assert((bufferId!==0)+(samplerId!==0)+(textureViewId!==0)===1);var binding=HEAPU32[entryPtr+4>>2];if(bufferId){var size=readI53FromI64(entryPtr+24);if(size==-1)size=undefined;return{"binding":binding,"resource":{"buffer":WebGPU.mgrBuffer.get(bufferId),"offset":HEAPU32[entryPtr+4+16>>2]*4294967296+HEAPU32[entryPtr+16>>2],"size":size}}}else if(samplerId){return{"binding":binding,"resource":WebGPU.mgrSampler.get(samplerId)}}else{return{"binding":binding,"resource":WebGPU.mgrTextureView.get(textureViewId)}}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i>2]),"entries":makeEntries(HEAPU32[descriptor+12>>2],HEAPU32[descriptor+16>>2])};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrBindGroup.create(device["createBindGroup"](desc))};var _wgpuDeviceCreateBindGroupLayout=(deviceId,descriptor)=>{assert(descriptor);assert(HEAPU32[descriptor>>2]===0);function makeBufferEntry(entryPtr){assert(entryPtr);var typeInt=HEAPU32[entryPtr+4>>2];if(!typeInt)return undefined;return{"type":WebGPU.BufferBindingType[typeInt],"hasDynamicOffset":HEAP8[entryPtr+8>>0]!==0,"minBindingSize":HEAPU32[entryPtr+4+16>>2]*4294967296+HEAPU32[entryPtr+16>>2]}}function makeSamplerEntry(entryPtr){assert(entryPtr);var typeInt=HEAPU32[entryPtr+4>>2];if(!typeInt)return undefined;return{"type":WebGPU.SamplerBindingType[typeInt]}}function makeTextureEntry(entryPtr){assert(entryPtr);var sampleTypeInt=HEAPU32[entryPtr+4>>2];if(!sampleTypeInt)return undefined;return{"sampleType":WebGPU.TextureSampleType[sampleTypeInt],"viewDimension":WebGPU.TextureViewDimension[HEAPU32[entryPtr+8>>2]],"multisampled":HEAP8[entryPtr+12>>0]!==0}}function makeStorageTextureEntry(entryPtr){assert(entryPtr);var accessInt=HEAPU32[entryPtr+4>>2];if(!accessInt)return undefined;return{"access":WebGPU.StorageTextureAccess[accessInt],"format":WebGPU.TextureFormat[HEAPU32[entryPtr+8>>2]],"viewDimension":WebGPU.TextureViewDimension[HEAPU32[entryPtr+12>>2]]}}function makeEntry(entryPtr){assert(entryPtr);return{"binding":HEAPU32[entryPtr+4>>2],"visibility":HEAPU32[entryPtr+8>>2],"buffer":makeBufferEntry(entryPtr+16),"sampler":makeSamplerEntry(entryPtr+40),"texture":makeTextureEntry(entryPtr+48),"storageTexture":makeStorageTextureEntry(entryPtr+64)}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i>2],HEAPU32[descriptor+12>>2])};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrBindGroupLayout.create(device["createBindGroupLayout"](desc))};var _wgpuDeviceCreateBuffer=(deviceId,descriptor)=>{assert(descriptor);assert(HEAPU32[descriptor>>2]===0);var mappedAtCreation=HEAP8[descriptor+24>>0]!==0;var desc={"label":undefined,"usage":HEAPU32[descriptor+8>>2],"size":HEAPU32[descriptor+4+16>>2]*4294967296+HEAPU32[descriptor+16>>2],"mappedAtCreation":mappedAtCreation};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);var bufferWrapper={};var id=WebGPU.mgrBuffer.create(device["createBuffer"](desc),bufferWrapper);if(mappedAtCreation){bufferWrapper.mapMode=2;bufferWrapper.onUnmap=[]}return id};var _wgpuDeviceCreateCommandEncoder=(deviceId,descriptor)=>{var desc;if(descriptor){assert(descriptor);assert(HEAPU32[descriptor>>2]===0);desc={"label":undefined};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr)}var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrCommandEncoder.create(device["createCommandEncoder"](desc))};var _wgpuDeviceCreatePipelineLayout=(deviceId,descriptor)=>{assert(descriptor);assert(HEAPU32[descriptor>>2]===0);var bglCount=HEAPU32[descriptor+8>>2];var bglPtr=HEAPU32[descriptor+12>>2];var bgls=[];for(var i=0;i>2]))}var desc={"label":undefined,"bindGroupLayouts":bgls};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrPipelineLayout.create(device["createPipelineLayout"](desc))};var generateRenderPipelineDesc=descriptor=>{assert(descriptor);assert(HEAPU32[descriptor>>2]===0);function makePrimitiveState(rsPtr){if(!rsPtr)return undefined;assert(rsPtr);assert(HEAPU32[rsPtr>>2]===0);return{"topology":WebGPU.PrimitiveTopology[HEAPU32[rsPtr+4>>2]],"stripIndexFormat":WebGPU.IndexFormat[HEAPU32[rsPtr+8>>2]],"frontFace":WebGPU.FrontFace[HEAPU32[rsPtr+12>>2]],"cullMode":WebGPU.CullMode[HEAPU32[rsPtr+16>>2]]}}function makeBlendComponent(bdPtr){if(!bdPtr)return undefined;return{"operation":WebGPU.BlendOperation[HEAPU32[bdPtr>>2]],"srcFactor":WebGPU.BlendFactor[HEAPU32[bdPtr+4>>2]],"dstFactor":WebGPU.BlendFactor[HEAPU32[bdPtr+8>>2]]}}function makeBlendState(bsPtr){if(!bsPtr)return undefined;assert(bsPtr);assert(HEAPU32[bsPtr>>2]===0);return{"alpha":makeBlendComponent(bsPtr+12),"color":makeBlendComponent(bsPtr+0)}}function makeColorState(csPtr){assert(csPtr);assert(HEAPU32[csPtr>>2]===0);var formatInt=HEAPU32[csPtr+4>>2];return formatInt===0?undefined:{"format":WebGPU.TextureFormat[formatInt],"blend":makeBlendState(HEAPU32[csPtr+8>>2]),"writeMask":HEAPU32[csPtr+12>>2]}}function makeColorStates(count,csArrayPtr){var states=[];for(var i=0;i>2]],"failOp":WebGPU.StencilOperation[HEAPU32[ssfPtr+4>>2]],"depthFailOp":WebGPU.StencilOperation[HEAPU32[ssfPtr+8>>2]],"passOp":WebGPU.StencilOperation[HEAPU32[ssfPtr+12>>2]]}}function makeDepthStencilState(dssPtr){if(!dssPtr)return undefined;assert(dssPtr);return{"format":WebGPU.TextureFormat[HEAPU32[dssPtr+4>>2]],"depthWriteEnabled":HEAP8[dssPtr+8>>0]!==0,"depthCompare":WebGPU.CompareFunction[HEAPU32[dssPtr+12>>2]],"stencilFront":makeStencilStateFace(dssPtr+16),"stencilBack":makeStencilStateFace(dssPtr+32),"stencilReadMask":HEAPU32[dssPtr+48>>2],"stencilWriteMask":HEAPU32[dssPtr+52>>2],"depthBias":HEAP32[dssPtr+56>>2],"depthBiasSlopeScale":HEAPF32[dssPtr+60>>2],"depthBiasClamp":HEAPF32[dssPtr+64>>2]}}function makeVertexAttribute(vaPtr){assert(vaPtr);return{"format":WebGPU.VertexFormat[HEAPU32[vaPtr>>2]],"offset":HEAPU32[vaPtr+4+8>>2]*4294967296+HEAPU32[vaPtr+8>>2],"shaderLocation":HEAPU32[vaPtr+16>>2]}}function makeVertexAttributes(count,vaArrayPtr){var vas=[];for(var i=0;i>2];return stepModeInt===2?null:{"arrayStride":HEAPU32[vbPtr+4>>2]*4294967296+HEAPU32[vbPtr>>2],"stepMode":WebGPU.VertexStepMode[stepModeInt],"attributes":makeVertexAttributes(HEAPU32[vbPtr+12>>2],HEAPU32[vbPtr+16>>2])}}function makeVertexBuffers(count,vbArrayPtr){if(!count)return undefined;var vbs=[];for(var i=0;i>2]===0);var desc={"module":WebGPU.mgrShaderModule.get(HEAPU32[viPtr+4>>2]),"constants":WebGPU.makePipelineConstants(HEAPU32[viPtr+12>>2],HEAPU32[viPtr+16>>2]),"buffers":makeVertexBuffers(HEAPU32[viPtr+20>>2],HEAPU32[viPtr+24>>2])};var entryPointPtr=HEAPU32[viPtr+8>>2];if(entryPointPtr)desc["entryPoint"]=UTF8ToString(entryPointPtr);return desc}function makeMultisampleState(msPtr){if(!msPtr)return undefined;assert(msPtr);assert(HEAPU32[msPtr>>2]===0);return{"count":HEAPU32[msPtr+4>>2],"mask":HEAPU32[msPtr+8>>2],"alphaToCoverageEnabled":HEAP8[msPtr+12>>0]!==0}}function makeFragmentState(fsPtr){if(!fsPtr)return undefined;assert(fsPtr);assert(HEAPU32[fsPtr>>2]===0);var desc={"module":WebGPU.mgrShaderModule.get(HEAPU32[fsPtr+4>>2]),"constants":WebGPU.makePipelineConstants(HEAPU32[fsPtr+12>>2],HEAPU32[fsPtr+16>>2]),"targets":makeColorStates(HEAPU32[fsPtr+20>>2],HEAPU32[fsPtr+24>>2])};var entryPointPtr=HEAPU32[fsPtr+8>>2];if(entryPointPtr)desc["entryPoint"]=UTF8ToString(entryPointPtr);return desc}var desc={"label":undefined,"layout":WebGPU.makePipelineLayout(HEAPU32[descriptor+8>>2]),"vertex":makeVertexState(descriptor+12),"primitive":makePrimitiveState(descriptor+40),"depthStencil":makeDepthStencilState(HEAPU32[descriptor+60>>2]),"multisample":makeMultisampleState(descriptor+64),"fragment":makeFragmentState(HEAPU32[descriptor+80>>2])};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);return desc};var _wgpuDeviceCreateRenderPipeline=(deviceId,descriptor)=>{var desc=generateRenderPipelineDesc(descriptor);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrRenderPipeline.create(device["createRenderPipeline"](desc))};var _wgpuDeviceCreateSampler=(deviceId,descriptor)=>{var desc;if(descriptor){assert(descriptor);assert(HEAPU32[descriptor>>2]===0);desc={"label":undefined,"addressModeU":WebGPU.AddressMode[HEAPU32[descriptor+8>>2]],"addressModeV":WebGPU.AddressMode[HEAPU32[descriptor+12>>2]],"addressModeW":WebGPU.AddressMode[HEAPU32[descriptor+16>>2]],"magFilter":WebGPU.FilterMode[HEAPU32[descriptor+20>>2]],"minFilter":WebGPU.FilterMode[HEAPU32[descriptor+24>>2]],"mipmapFilter":WebGPU.MipmapFilterMode[HEAPU32[descriptor+28>>2]],"lodMinClamp":HEAPF32[descriptor+32>>2],"lodMaxClamp":HEAPF32[descriptor+36>>2],"compare":WebGPU.CompareFunction[HEAPU32[descriptor+40>>2]]};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr)}var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrSampler.create(device["createSampler"](desc))};var _wgpuDeviceCreateShaderModule=(deviceId,descriptor)=>{assert(descriptor);var nextInChainPtr=HEAPU32[descriptor>>2];assert(nextInChainPtr!==0);var sType=HEAPU32[nextInChainPtr+4>>2];var desc={"label":undefined,"code":""};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);switch(sType){case 5:{var count=HEAPU32[nextInChainPtr+8>>2];var start=HEAPU32[nextInChainPtr+12>>2];var offset=start>>2;desc["code"]=HEAPU32.subarray(offset,offset+count);break}case 6:{var sourcePtr=HEAPU32[nextInChainPtr+8>>2];if(sourcePtr){desc["code"]=UTF8ToString(sourcePtr)}break}default:abort("unrecognized ShaderModule sType")}var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrShaderModule.create(device["createShaderModule"](desc))};var _wgpuDeviceCreateSwapChain=(deviceId,surfaceId,descriptor)=>{assert(descriptor);assert(HEAPU32[descriptor>>2]===0);var device=WebGPU.mgrDevice.get(deviceId);var context=WebGPU.mgrSurface.get(surfaceId);assert(2===HEAPU32[descriptor+24>>2]);var canvasSize=[HEAPU32[descriptor+16>>2],HEAPU32[descriptor+20>>2]];if(canvasSize[0]!==0){context["canvas"]["width"]=canvasSize[0]}if(canvasSize[1]!==0){context["canvas"]["height"]=canvasSize[1]}var configuration={"device":device,"format":WebGPU.TextureFormat[HEAPU32[descriptor+12>>2]],"usage":HEAPU32[descriptor+8>>2],"alphaMode":"opaque"};context["configure"](configuration);return WebGPU.mgrSwapChain.create(context)};var _wgpuDeviceCreateTexture=(deviceId,descriptor)=>{assert(descriptor);assert(HEAPU32[descriptor>>2]===0);var desc={"label":undefined,"size":WebGPU.makeExtent3D(descriptor+16),"mipLevelCount":HEAPU32[descriptor+32>>2],"sampleCount":HEAPU32[descriptor+36>>2],"dimension":WebGPU.TextureDimension[HEAPU32[descriptor+12>>2]],"format":WebGPU.TextureFormat[HEAPU32[descriptor+28>>2]],"usage":HEAPU32[descriptor+8>>2]};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var viewFormatCount=HEAPU32[descriptor+40>>2];if(viewFormatCount){var viewFormatsPtr=HEAPU32[descriptor+44>>2];desc["viewFormats"]=Array.from(HEAP32.subarray(viewFormatsPtr>>2,viewFormatsPtr+viewFormatCount*4>>2),function(format){return WebGPU.TextureFormat[format]})}var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrTexture.create(device["createTexture"](desc))};var _wgpuDeviceGetQueue=deviceId=>{var queueId=WebGPU.mgrDevice.objects[deviceId].queueId;assert(queueId,"wgpuDeviceGetQueue: queue was missing or null");WebGPU.mgrQueue.reference(queueId);return queueId};var _wgpuDeviceSetUncapturedErrorCallback=(deviceId,callback,userdata)=>{var device=WebGPU.mgrDevice.get(deviceId);device["onuncapturederror"]=function(ev){callUserCallback(()=>{var Validation=1;var OutOfMemory=2;var type;assert(typeof GPUValidationError!="undefined");assert(typeof GPUOutOfMemoryError!="undefined");if(ev.error instanceof GPUValidationError)type=Validation;else if(ev.error instanceof GPUOutOfMemoryError)type=OutOfMemory;WebGPU.errorCallback(callback,type,ev.error.message,userdata)})}};var findCanvasEventTarget=target=>findEventTarget(target);var _wgpuInstanceCreateSurface=(instanceId,descriptor)=>{assert(descriptor);assert(instanceId===1,"WGPUInstance must be created by wgpuCreateInstance");var nextInChainPtr=HEAPU32[descriptor>>2];assert(nextInChainPtr!==0);assert(4===HEAPU32[nextInChainPtr+4>>2]);var descriptorFromCanvasHTMLSelector=nextInChainPtr;assert(descriptorFromCanvasHTMLSelector);assert(HEAPU32[descriptorFromCanvasHTMLSelector>>2]===0);var selectorPtr=HEAPU32[descriptorFromCanvasHTMLSelector+8>>2];assert(selectorPtr);var canvas=findCanvasEventTarget(selectorPtr);var context=canvas.getContext("webgpu");assert(context);if(!context)return 0;var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)context.surfaceLabelWebGPU=UTF8ToString(labelPtr);return WebGPU.mgrSurface.create(context)};var _wgpuInstanceReference=instance=>{};var _wgpuInstanceRelease=instance=>{};var _wgpuPipelineLayoutRelease=id=>WebGPU.mgrPipelineLayout.release(id);var _wgpuQueueRelease=id=>WebGPU.mgrQueue.release(id);var _wgpuQueueSubmit=(queueId,commandCount,commands)=>{assert(commands%4===0);var queue=WebGPU.mgrQueue.get(queueId);var cmds=Array.from(HEAP32.subarray(commands>>2,commands+commandCount*4>>2),function(id){return WebGPU.mgrCommandBuffer.get(id)});queue["submit"](cmds)};function _wgpuQueueWriteBuffer(queueId,bufferId,bufferOffset_low,bufferOffset_high,data,size){var bufferOffset=convertI32PairToI53Checked(bufferOffset_low,bufferOffset_high);var queue=WebGPU.mgrQueue.get(queueId);var buffer=WebGPU.mgrBuffer.get(bufferId);var subarray=HEAPU8.subarray(data,data+size);queue["writeBuffer"](buffer,bufferOffset,subarray,0,size)}var _wgpuQueueWriteTexture=(queueId,destinationPtr,data,dataSize,dataLayoutPtr,writeSizePtr)=>{var queue=WebGPU.mgrQueue.get(queueId);var destination=WebGPU.makeImageCopyTexture(destinationPtr);var dataLayout=WebGPU.makeTextureDataLayout(dataLayoutPtr);var writeSize=WebGPU.makeExtent3D(writeSizePtr);var subarray=HEAPU8.subarray(data,data+dataSize);queue["writeTexture"](destination,subarray,dataLayout,writeSize)};var _wgpuRenderPassEncoderDrawIndexed=(passId,indexCount,instanceCount,firstIndex,baseVertex,firstInstance)=>{var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["drawIndexed"](indexCount,instanceCount,firstIndex,baseVertex,firstInstance)};var _wgpuRenderPassEncoderEnd=encoderId=>{var encoder=WebGPU.mgrRenderPassEncoder.get(encoderId);encoder["end"]()};var _wgpuRenderPassEncoderSetBindGroup=(passId,groupIndex,groupId,dynamicOffsetCount,dynamicOffsetsPtr)=>{var pass=WebGPU.mgrRenderPassEncoder.get(passId);var group=WebGPU.mgrBindGroup.get(groupId);if(dynamicOffsetCount==0){pass["setBindGroup"](groupIndex,group)}else{var offsets=[];for(var i=0;i>2])}pass["setBindGroup"](groupIndex,group,offsets)}};var _wgpuRenderPassEncoderSetBlendConstant=(passId,colorPtr)=>{var pass=WebGPU.mgrRenderPassEncoder.get(passId);var color=WebGPU.makeColor(colorPtr);pass["setBlendConstant"](color)};function _wgpuRenderPassEncoderSetIndexBuffer(passId,bufferId,format,offset_low,offset_high,size_low,size_high){var offset=convertI32PairToI53Checked(offset_low,offset_high);var size=convertI32PairToI53Checked(size_low,size_high);var pass=WebGPU.mgrRenderPassEncoder.get(passId);var buffer=WebGPU.mgrBuffer.get(bufferId);if(size==-1)size=undefined;pass["setIndexBuffer"](buffer,WebGPU.IndexFormat[format],offset,size)}var _wgpuRenderPassEncoderSetPipeline=(passId,pipelineId)=>{var pass=WebGPU.mgrRenderPassEncoder.get(passId);var pipeline=WebGPU.mgrRenderPipeline.get(pipelineId);pass["setPipeline"](pipeline)};var _wgpuRenderPassEncoderSetScissorRect=(passId,x,y,w,h)=>{var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["setScissorRect"](x,y,w,h)};function _wgpuRenderPassEncoderSetVertexBuffer(passId,slot,bufferId,offset_low,offset_high,size_low,size_high){var offset=convertI32PairToI53Checked(offset_low,offset_high);var size=convertI32PairToI53Checked(size_low,size_high);var pass=WebGPU.mgrRenderPassEncoder.get(passId);var buffer=WebGPU.mgrBuffer.get(bufferId);if(size==-1)size=undefined;pass["setVertexBuffer"](slot,buffer,offset,size)}var _wgpuRenderPassEncoderSetViewport=(passId,x,y,w,h,minDepth,maxDepth)=>{var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["setViewport"](x,y,w,h,minDepth,maxDepth)};var _wgpuRenderPipelineRelease=id=>WebGPU.mgrRenderPipeline.release(id);var _wgpuSamplerRelease=id=>WebGPU.mgrSampler.release(id);var _wgpuShaderModuleRelease=id=>WebGPU.mgrShaderModule.release(id);var _wgpuSurfaceGetPreferredFormat=(surfaceId,adapterId)=>{var format=navigator["gpu"]["getPreferredCanvasFormat"]();return WebGPU.PreferredFormat[format]};var _wgpuSurfaceRelease=id=>WebGPU.mgrSurface.release(id);var _wgpuSwapChainGetCurrentTextureView=swapChainId=>{var context=WebGPU.mgrSwapChain.get(swapChainId);return WebGPU.mgrTextureView.create(context["getCurrentTexture"]()["createView"]())};var _wgpuSwapChainRelease=id=>WebGPU.mgrSwapChain.release(id);var _wgpuTextureCreateView=(textureId,descriptor)=>{var desc;if(descriptor){assert(descriptor);assert(HEAPU32[descriptor>>2]===0);var mipLevelCount=HEAPU32[descriptor+20>>2];var arrayLayerCount=HEAPU32[descriptor+28>>2];desc={"format":WebGPU.TextureFormat[HEAPU32[descriptor+8>>2]],"dimension":WebGPU.TextureViewDimension[HEAPU32[descriptor+12>>2]],"baseMipLevel":HEAPU32[descriptor+16>>2],"mipLevelCount":mipLevelCount===4294967295?undefined:mipLevelCount,"baseArrayLayer":HEAPU32[descriptor+24>>2],"arrayLayerCount":arrayLayerCount===4294967295?undefined:arrayLayerCount,"aspect":WebGPU.TextureAspect[HEAPU32[descriptor+32>>2]]};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr)}var texture=WebGPU.mgrTexture.get(textureId);return WebGPU.mgrTextureView.create(texture["createView"](desc))};var _wgpuTextureRelease=id=>WebGPU.mgrTexture.release(id);var _wgpuTextureViewRelease=id=>WebGPU.mgrTextureView.release(id);var allocateUTF8=stringToNewUTF8;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;embind_init_charCodes();BindingError=Module["BindingError"]=class BindingError extends Error{constructor(message){super(message);this.name="BindingError"}};InternalError=Module["InternalError"]=class InternalError extends Error{constructor(message){super(message);this.name="InternalError"}};handleAllocatorInit();init_emval();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={};WebGPU.initManagers();var GLctx;var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}function checkIncomingModuleAPI(){ignoredModuleProp("fetchSettings")}var wasmImports={__assert_fail:___assert_fail,__asyncjs__db_update_file:__asyncjs__db_update_file,__asyncjs__destroy_element_async:__asyncjs__destroy_element_async,__asyncjs__get_audio_samples_setup:__asyncjs__get_audio_samples_setup,__asyncjs__get_clipboard_content:__asyncjs__get_clipboard_content,__asyncjs__init_file_system:__asyncjs__init_file_system,__asyncjs__open_directory:__asyncjs__open_directory,__asyncjs__open_document:__asyncjs__open_document,__asyncjs__save_to_drive:__asyncjs__save_to_drive,__asyncjs__set_clipboard_content:__asyncjs__set_clipboard_content,__asyncjs__show_touch_keyboard:__asyncjs__show_touch_keyboard,__asyncjs__webgpu_create_device:__asyncjs__webgpu_create_device,__cxa_throw:___cxa_throw,__syscall_chmod:___syscall_chmod,__syscall_fchmod:___syscall_fchmod,__syscall_fcntl64:___syscall_fcntl64,__syscall_fstat64:___syscall_fstat64,__syscall_ftruncate64:___syscall_ftruncate64,__syscall_getdents64:___syscall_getdents64,__syscall_ioctl:___syscall_ioctl,__syscall_lstat64:___syscall_lstat64,__syscall_mkdirat:___syscall_mkdirat,__syscall_newfstatat:___syscall_newfstatat,__syscall_openat:___syscall_openat,__syscall_readlinkat:___syscall_readlinkat,__syscall_rmdir:___syscall_rmdir,__syscall_stat64:___syscall_stat64,__syscall_symlink:___syscall_symlink,__syscall_unlinkat:___syscall_unlinkat,_embind_register_bigint:__embind_register_bigint,_embind_register_bool:__embind_register_bool,_embind_register_emval:__embind_register_emval,_embind_register_float:__embind_register_float,_embind_register_integer:__embind_register_integer,_embind_register_memory_view:__embind_register_memory_view,_embind_register_std_string:__embind_register_std_string,_embind_register_std_wstring:__embind_register_std_wstring,_embind_register_void:__embind_register_void,_emscripten_fs_load_embedded_files:__emscripten_fs_load_embedded_files,_emval_as:__emval_as,_emval_await:__emval_await,_emval_call_method:__emval_call_method,_emval_decref:__emval_decref,_emval_get_method_caller:__emval_get_method_caller,_emval_get_property:__emval_get_property,_emval_incref:__emval_incref,_emval_new_array:__emval_new_array,_emval_new_cstring:__emval_new_cstring,_emval_run_destructors:__emval_run_destructors,_emval_take_value:__emval_take_value,abort:_abort,add_window_event:add_window_event,audio_element_pause:audio_element_pause,audio_element_play:audio_element_play,auto_resize_canvas:auto_resize_canvas,canvas_get_device_pixel_ratio:canvas_get_device_pixel_ratio,canvas_get_height:canvas_get_height,canvas_get_width:canvas_get_width,clear_local_storage:clear_local_storage,create_audio_playback:create_audio_playback,create_button:create_button,create_picker:create_picker,db_open_auth_popup:db_open_auth_popup,db_open_chooser:db_open_chooser,db_refresh_token:db_refresh_token,destroy_element:destroy_element,download_document:download_document,download_project_zip:download_project_zip,emscripten_asm_const_double:_emscripten_asm_const_double,emscripten_asm_const_int:_emscripten_asm_const_int,emscripten_get_now:_emscripten_get_now,emscripten_memcpy_js:_emscripten_memcpy_js,emscripten_resize_heap:_emscripten_resize_heap,emscripten_set_main_loop_arg:_emscripten_set_main_loop_arg,emscripten_set_wheel_callback_on_thread:_emscripten_set_wheel_callback_on_thread,emscripten_set_window_title:_emscripten_set_window_title,emscripten_webgpu_get_device:_emscripten_webgpu_get_device,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,fd_close:_fd_close,fd_fdstat_get:_fd_fdstat_get,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,gapi_loaded:gapi_loaded,gapi_ready:gapi_ready,get_audio_context_time:get_audio_context_time,get_audio_duration:get_audio_duration,get_audio_playback_progress:get_audio_playback_progress,get_audio_samples_hybrid:get_audio_samples_hybrid,get_has_web_gpu:get_has_web_gpu,get_local_value:get_local_value,get_preference_value:get_preference_value,get_runtime_platform:get_runtime_platform,gis_loaded:gis_loaded,glActiveTexture:_glActiveTexture,glAttachShader:_glAttachShader,glBindBuffer:_glBindBuffer,glBindTexture:_glBindTexture,glBindVertexArrayOES:_glBindVertexArrayOES,glBlendEquation:_glBlendEquation,glBlendEquationSeparate:_glBlendEquationSeparate,glBlendFuncSeparate:_glBlendFuncSeparate,glBufferData:_glBufferData,glBufferSubData:_glBufferSubData,glClear:_glClear,glClearColor:_glClearColor,glCompileShader:_glCompileShader,glCreateProgram:_glCreateProgram,glCreateShader:_glCreateShader,glDeleteShader:_glDeleteShader,glDeleteTextures:_glDeleteTextures,glDeleteVertexArraysOES:_glDeleteVertexArraysOES,glDetachShader:_glDetachShader,glDisable:_glDisable,glDrawElements:_glDrawElements,glEnable:_glEnable,glEnableVertexAttribArray:_glEnableVertexAttribArray,glGenBuffers:_glGenBuffers,glGenTextures:_glGenTextures,glGenVertexArraysOES:_glGenVertexArraysOES,glGetAttribLocation:_glGetAttribLocation,glGetIntegerv:_glGetIntegerv,glGetProgramInfoLog:_glGetProgramInfoLog,glGetProgramiv:_glGetProgramiv,glGetShaderInfoLog:_glGetShaderInfoLog,glGetShaderiv:_glGetShaderiv,glGetUniformLocation:_glGetUniformLocation,glIsEnabled:_glIsEnabled,glIsProgram:_glIsProgram,glLinkProgram:_glLinkProgram,glPixelStorei:_glPixelStorei,glScissor:_glScissor,glShaderSource:_glShaderSource,glTexImage2D:_glTexImage2D,glTexParameteri:_glTexParameteri,glUniform1i:_glUniform1i,glUniformMatrix4fv:_glUniformMatrix4fv,glUseProgram:_glUseProgram,glVertexAttribPointer:_glVertexAttribPointer,glViewport:_glViewport,glfwCreateStandardCursor:_glfwCreateStandardCursor,glfwCreateWindow:_glfwCreateWindow,glfwDestroyWindow:_glfwDestroyWindow,glfwFocusWindow:_glfwFocusWindow,glfwGetClipboardString:_glfwGetClipboardString,glfwGetFramebufferSize:_glfwGetFramebufferSize,glfwGetInputMode:_glfwGetInputMode,glfwGetJoystickAxes:_glfwGetJoystickAxes,glfwGetJoystickButtons:_glfwGetJoystickButtons,glfwGetKey:_glfwGetKey,glfwGetMonitorContentScale:_glfwGetMonitorContentScale,glfwGetMonitorPos:_glfwGetMonitorPos,glfwGetMonitorWorkarea:_glfwGetMonitorWorkarea,glfwGetMonitors:_glfwGetMonitors,glfwGetTime:_glfwGetTime,glfwGetVideoMode:_glfwGetVideoMode,glfwGetWindowAttrib:_glfwGetWindowAttrib,glfwGetWindowPos:_glfwGetWindowPos,glfwGetWindowSize:_glfwGetWindowSize,glfwInit:_glfwInit,glfwMakeContextCurrent:_glfwMakeContextCurrent,glfwPollEvents:_glfwPollEvents,glfwSetCharCallback:_glfwSetCharCallback,glfwSetClipboardString:_glfwSetClipboardString,glfwSetCursor:_glfwSetCursor,glfwSetCursorEnterCallback:_glfwSetCursorEnterCallback,glfwSetCursorPos:_glfwSetCursorPos,glfwSetCursorPosCallback:_glfwSetCursorPosCallback,glfwSetErrorCallback:_glfwSetErrorCallback,glfwSetInputMode:_glfwSetInputMode,glfwSetKeyCallback:_glfwSetKeyCallback,glfwSetMonitorCallback:_glfwSetMonitorCallback,glfwSetMouseButtonCallback:_glfwSetMouseButtonCallback,glfwSetScrollCallback:_glfwSetScrollCallback,glfwSetWindowCloseCallback:_glfwSetWindowCloseCallback,glfwSetWindowFocusCallback:_glfwSetWindowFocusCallback,glfwSetWindowOpacity:_glfwSetWindowOpacity,glfwSetWindowPos:_glfwSetWindowPos,glfwSetWindowPosCallback:_glfwSetWindowPosCallback,glfwSetWindowSize:_glfwSetWindowSize,glfwSetWindowSizeCallback:_glfwSetWindowSizeCallback,glfwSetWindowTitle:_glfwSetWindowTitle,glfwShowWindow:_glfwShowWindow,glfwSwapBuffers:_glfwSwapBuffers,glfwSwapInterval:_glfwSwapInterval,glfwTerminate:_glfwTerminate,glfwWindowHint:_glfwWindowHint,has_db_token:has_db_token,has_gapi_token:has_gapi_token,has_physical_touch:has_physical_touch,has_preference_key:has_preference_key,hide_touch_keyboard:hide_touch_keyboard,initialize_gamepad_events:initialize_gamepad_events,is_audio_stretched:is_audio_stretched,is_video_paused:is_video_paused,language_code_to_name:language_code_to_name,load_image:load_image,load_image_from_url:load_image_from_url,load_preferences_json:load_preferences_json,load_video:load_video,pause_video:pause_video,play_latency_metronome:play_latency_metronome,play_video:play_video,render_image:render_image,request_client_token:request_client_token,resize_canvas:resize_canvas,revoke_client_token:revoke_client_token,revoke_db_token:revoke_db_token,set_audio_playback_buffer:set_audio_playback_buffer,set_audio_playback_progress:set_audio_playback_progress,set_audio_playback_speed:set_audio_playback_speed,set_local_value:set_local_value,set_preference_value:set_preference_value,set_video_playback_progress:set_video_playback_progress,set_video_playback_rate:set_video_playback_rate,setup_latency_metronome:setup_latency_metronome,stop_latency_metronome:stop_latency_metronome,strftime_l:_strftime_l,touch_input_handler:touch_input_handler,update_gamepad_state:update_gamepad_state,wait_for_sync_fs:wait_for_sync_fs,wgpuAdapterRelease:_wgpuAdapterRelease,wgpuBindGroupLayoutRelease:_wgpuBindGroupLayoutRelease,wgpuBindGroupRelease:_wgpuBindGroupRelease,wgpuBufferDestroy:_wgpuBufferDestroy,wgpuBufferRelease:_wgpuBufferRelease,wgpuCommandEncoderBeginRenderPass:_wgpuCommandEncoderBeginRenderPass,wgpuCommandEncoderFinish:_wgpuCommandEncoderFinish,wgpuCreateInstance:_wgpuCreateInstance,wgpuDeviceCreateBindGroup:_wgpuDeviceCreateBindGroup,wgpuDeviceCreateBindGroupLayout:_wgpuDeviceCreateBindGroupLayout,wgpuDeviceCreateBuffer:_wgpuDeviceCreateBuffer,wgpuDeviceCreateCommandEncoder:_wgpuDeviceCreateCommandEncoder,wgpuDeviceCreatePipelineLayout:_wgpuDeviceCreatePipelineLayout,wgpuDeviceCreateRenderPipeline:_wgpuDeviceCreateRenderPipeline,wgpuDeviceCreateSampler:_wgpuDeviceCreateSampler,wgpuDeviceCreateShaderModule:_wgpuDeviceCreateShaderModule,wgpuDeviceCreateSwapChain:_wgpuDeviceCreateSwapChain,wgpuDeviceCreateTexture:_wgpuDeviceCreateTexture,wgpuDeviceGetQueue:_wgpuDeviceGetQueue,wgpuDeviceSetUncapturedErrorCallback:_wgpuDeviceSetUncapturedErrorCallback,wgpuInstanceCreateSurface:_wgpuInstanceCreateSurface,wgpuInstanceReference:_wgpuInstanceReference,wgpuInstanceRelease:_wgpuInstanceRelease,wgpuPipelineLayoutRelease:_wgpuPipelineLayoutRelease,wgpuQueueRelease:_wgpuQueueRelease,wgpuQueueSubmit:_wgpuQueueSubmit,wgpuQueueWriteBuffer:_wgpuQueueWriteBuffer,wgpuQueueWriteTexture:_wgpuQueueWriteTexture,wgpuRenderPassEncoderDrawIndexed:_wgpuRenderPassEncoderDrawIndexed,wgpuRenderPassEncoderEnd:_wgpuRenderPassEncoderEnd,wgpuRenderPassEncoderSetBindGroup:_wgpuRenderPassEncoderSetBindGroup,wgpuRenderPassEncoderSetBlendConstant:_wgpuRenderPassEncoderSetBlendConstant,wgpuRenderPassEncoderSetIndexBuffer:_wgpuRenderPassEncoderSetIndexBuffer,wgpuRenderPassEncoderSetPipeline:_wgpuRenderPassEncoderSetPipeline,wgpuRenderPassEncoderSetScissorRect:_wgpuRenderPassEncoderSetScissorRect,wgpuRenderPassEncoderSetVertexBuffer:_wgpuRenderPassEncoderSetVertexBuffer,wgpuRenderPassEncoderSetViewport:_wgpuRenderPassEncoderSetViewport,wgpuRenderPipelineRelease:_wgpuRenderPipelineRelease,wgpuSamplerRelease:_wgpuSamplerRelease,wgpuShaderModuleRelease:_wgpuShaderModuleRelease,wgpuSurfaceGetPreferredFormat:_wgpuSurfaceGetPreferredFormat,wgpuSurfaceRelease:_wgpuSurfaceRelease,wgpuSwapChainGetCurrentTextureView:_wgpuSwapChainGetCurrentTextureView,wgpuSwapChainRelease:_wgpuSwapChainRelease,wgpuTextureCreateView:_wgpuTextureCreateView,wgpuTextureRelease:_wgpuTextureRelease,wgpuTextureViewRelease:_wgpuTextureViewRelease};Asyncify.instrumentWasmImports(wasmImports);var wasmExports=createWasm();var ___wasm_call_ctors=createExportWrapper("__wasm_call_ctors");var _fflush=Module["_fflush"]=createExportWrapper("fflush");var _malloc=Module["_malloc"]=createExportWrapper("malloc");var _free=Module["_free"]=createExportWrapper("free");var _main=Module["_main"]=createExportWrapper("__main_argc_argv");var _jsGamepadConnected=Module["_jsGamepadConnected"]=createExportWrapper("jsGamepadConnected");var _jsGamepadDisconnected=Module["_jsGamepadDisconnected"]=createExportWrapper("jsGamepadDisconnected");var _GAPI_Init_Client=Module["_GAPI_Init_Client"]=createExportWrapper("GAPI_Init_Client");var _CreateTexture=Module["_CreateTexture"]=createExportWrapper("CreateTexture");var _GetClipboardContent=Module["_GetClipboardContent"]=createExportWrapper("GetClipboardContent");var _CopyClipboardContent=Module["_CopyClipboardContent"]=createExportWrapper("CopyClipboardContent");var _CutClipboardContent=Module["_CutClipboardContent"]=createExportWrapper("CutClipboardContent");var _TouchStart=Module["_TouchStart"]=createExportWrapper("TouchStart");var _TouchEnd=Module["_TouchEnd"]=createExportWrapper("TouchEnd");var _TouchCancel=Module["_TouchCancel"]=createExportWrapper("TouchCancel");var _TouchMove=Module["_TouchMove"]=createExportWrapper("TouchMove");var _TouchExtraKeyEvents=Module["_TouchExtraKeyEvents"]=createExportWrapper("TouchExtraKeyEvents");var _ShowInputDebugger=Module["_ShowInputDebugger"]=createExportWrapper("ShowInputDebugger");var _LoadProject=Module["_LoadProject"]=createExportWrapper("LoadProject");var _SaveProject=Module["_SaveProject"]=createExportWrapper("SaveProject");var _ExportZip=Module["_ExportZip"]=createExportWrapper("ExportZip");var _GoogleTokenExpirationCallback=Module["_GoogleTokenExpirationCallback"]=createExportWrapper("GoogleTokenExpirationCallback");var _LogInToGoogle=Module["_LogInToGoogle"]=createExportWrapper("LogInToGoogle");var _DropboxTokenExpirationCallback=Module["_DropboxTokenExpirationCallback"]=createExportWrapper("DropboxTokenExpirationCallback");var _LogInToDropbox=Module["_LogInToDropbox"]=createExportWrapper("LogInToDropbox");var _OpenDropboxChooser=Module["_OpenDropboxChooser"]=createExportWrapper("OpenDropboxChooser");var _LoadFileFromCloudDrive=Module["_LoadFileFromCloudDrive"]=createExportWrapper("LoadFileFromCloudDrive");var _LoadCompletedFromCloudDrive=Module["_LoadCompletedFromCloudDrive"]=createExportWrapper("LoadCompletedFromCloudDrive");var _LoadCanceledFromCloudDrive=Module["_LoadCanceledFromCloudDrive"]=createExportWrapper("LoadCanceledFromCloudDrive");var _main=Module["_main"]=createExportWrapper("main");var _AudioOnEnded=Module["_AudioOnEnded"]=createExportWrapper("AudioOnEnded");var _AudioOnPause=Module["_AudioOnPause"]=createExportWrapper("AudioOnPause");var _AudioOnPlay=Module["_AudioOnPlay"]=createExportWrapper("AudioOnPlay");var _AudioOnDurationChange=Module["_AudioOnDurationChange"]=createExportWrapper("AudioOnDurationChange");var _IsWaitingToPlay=Module["_IsWaitingToPlay"]=createExportWrapper("IsWaitingToPlay");var _jsPrepPlayback=Module["_jsPrepPlayback"]=createExportWrapper("jsPrepPlayback");var _jsUpdateAudioBuffer=Module["_jsUpdateAudioBuffer"]=createExportWrapper("jsUpdateAudioBuffer");var _jsPlayPreviewVideo=Module["_jsPlayPreviewVideo"]=createExportWrapper("jsPlayPreviewVideo");var _jsPausePreviewVideo=Module["_jsPausePreviewVideo"]=createExportWrapper("jsPausePreviewVideo");var _jsSetPreviewVideoProgress=Module["_jsSetPreviewVideoProgress"]=createExportWrapper("jsSetPreviewVideoProgress");var _LoadPreferences=Module["_LoadPreferences"]=createExportWrapper("LoadPreferences");var _SavePreferences=Module["_SavePreferences"]=createExportWrapper("SavePreferences");var _LoadLayout=Module["_LoadLayout"]=createExportWrapper("LoadLayout");var _SaveLayout=Module["_SaveLayout"]=createExportWrapper("SaveLayout");var ___getTypeName=createExportWrapper("__getTypeName");var ___errno_location=createExportWrapper("__errno_location");var _memalign=createExportWrapper("memalign");var setTempRet0=createExportWrapper("setTempRet0");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 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 ___cxa_is_pointer_type=createExportWrapper("__cxa_is_pointer_type");var dynCall_vii=Module["dynCall_vii"]=createExportWrapper("dynCall_vii");var dynCall_vidd=Module["dynCall_vidd"]=createExportWrapper("dynCall_vidd");var dynCall_viiii=Module["dynCall_viiii"]=createExportWrapper("dynCall_viiii");var dynCall_viiiii=Module["dynCall_viiiii"]=createExportWrapper("dynCall_viiiii");var dynCall_ii=Module["dynCall_ii"]=createExportWrapper("dynCall_ii");var dynCall_iiii=Module["dynCall_iiii"]=createExportWrapper("dynCall_iiii");var dynCall_vi=Module["dynCall_vi"]=createExportWrapper("dynCall_vi");var dynCall_vif=Module["dynCall_vif"]=createExportWrapper("dynCall_vif");var dynCall_viii=Module["dynCall_viii"]=createExportWrapper("dynCall_viii");var dynCall_iii=Module["dynCall_iii"]=createExportWrapper("dynCall_iii");var dynCall_v=Module["dynCall_v"]=createExportWrapper("dynCall_v");var dynCall_jiji=Module["dynCall_jiji"]=createExportWrapper("dynCall_jiji");var dynCall_iidiiii=Module["dynCall_iidiiii"]=createExportWrapper("dynCall_iidiiii");var dynCall_viijii=Module["dynCall_viijii"]=createExportWrapper("dynCall_viijii");var dynCall_iiiii=Module["dynCall_iiiii"]=createExportWrapper("dynCall_iiiii");var dynCall_iiiiii=Module["dynCall_iiiiii"]=createExportWrapper("dynCall_iiiiii");var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=createExportWrapper("dynCall_iiiiiiiii");var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=createExportWrapper("dynCall_iiiiiii");var dynCall_iiiiij=Module["dynCall_iiiiij"]=createExportWrapper("dynCall_iiiiij");var dynCall_iiiiid=Module["dynCall_iiiiid"]=createExportWrapper("dynCall_iiiiid");var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=createExportWrapper("dynCall_iiiiijj");var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=createExportWrapper("dynCall_iiiiiiii");var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=createExportWrapper("dynCall_iiiiiijj");var dynCall_viiiiii=Module["dynCall_viiiiii"]=createExportWrapper("dynCall_viiiiii");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");var ___emscripten_embedded_file_data=Module["___emscripten_embedded_file_data"]=3918232;var ___start_em_js=Module["___start_em_js"]=3953600;var ___stop_em_js=Module["___stop_em_js"]=3985601;Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_unlink"]=FS.unlink;Module["allocateUTF8"]=allocateUTF8;var missingLibrarySymbols=["writeI53ToI64Clamped","writeI53ToI64Signaling","writeI53ToU64Clamped","writeI53ToU64Signaling","convertI32PairToI53","convertU32PairToI53","ydayFromDate","inetPton4","inetNtop4","inetPton6","inetNtop6","readSockaddr","writeSockaddr","getHostByName","getCallstack","emscriptenLog","convertPCtoSourceLocation","runMainThreadEmAsm","jstoi_s","listenOnce","autoResumeAudioContext","dynCallLegacy","getDynCaller","dynCall","asmjsMangle","getNativeTypeSize","STACK_SIZE","STACK_ALIGN","POINTER_SIZE","ASSERTIONS","getCFunc","ccall","cwrap","uleb128Encode","generateFuncType","convertJsFunctionToWasm","getEmptyTableSlot","updateTableMap","getFunctionAddress","addFunction","removeFunction","reallyNegative","unSign","strLen","reSign","formatString","intArrayToString","AsciiToString","registerKeyEventCallback","registerMouseEventCallback","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","jsStackTrace","stackTrace","checkWasiClock","wasiRightsToMuslOFlags","wasiOFlagsToMuslOFlags","createDyncallWrapper","setImmediateWrapped","clearImmediateWrapped","polyfillSetImmediate","getPromise","makePromise","idsToPromises","makePromiseCallback","findMatchingCatch","getSocketFromFD","getSocketAddress","FS_mkdirTree","_setNetworkCallback","emscriptenWebGLGetUniform","emscriptenWebGLGetVertexAttrib","__glGetActiveAttribOrUniform","writeGLArray","registerWebGlEventCallback","SDL_unicode","SDL_ttfContext","SDL_audio","emscriptenWebGLGetIndexed","ALLOC_NORMAL","ALLOC_STACK","allocate","writeStringToMemory","writeAsciiToMemory","getFunctionName","getFunctionArgsName","heap32VectorToArray","init_embind","throwUnboundTypeError","ensureOverloadTable","exposePublicSymbol","replacePublicSymbol","extendError","getBasestPointer","registerInheritedInstance","unregisterInheritedInstance","getInheritedInstance","getInheritedInstanceCount","getLiveInheritedInstances","enumReadValueFromPointer","craftInvokerFunction","embind__requireFunction","genericPointerToWireType","constNoSmartPtrRawPointerToWireType","nonConstNoSmartPtrRawPointerToWireType","init_RegisteredPointer","RegisteredPointer","RegisteredPointer_fromWireType","runDestructor","releaseClassHandle","detachFinalizer","attachFinalizer","makeClassHandle","init_ClassHandle","ClassHandle","throwInstanceAlreadyDeleted","flushPendingDeletes","setDelayFunction","RegisteredClass","shallowCopyInternalPointer","downcastPointer","upcastPointer","validateThis","char_0","char_9","makeLegalFunctionName","emval_get_global"];missingLibrarySymbols.forEach(missingLibrarySymbol);var unexportedSymbols=["run","addOnPreRun","addOnInit","addOnPreMain","addOnExit","addOnPostRun","FS_createFolder","FS_createLink","FS_readFile","out","err","callMain","abort","wasmMemory","wasmExports","stackAlloc","stackSave","stackRestore","getTempRet0","setTempRet0","writeStackCookie","checkStackCookie","writeI53ToI64","readI53FromI64","readI53FromU64","convertI32PairToI53Checked","ptrToString","zeroMemory","exitJS","getHeapMax","growMemory","ENV","MONTH_DAYS_REGULAR","MONTH_DAYS_LEAP","MONTH_DAYS_REGULAR_CUMULATIVE","MONTH_DAYS_LEAP_CUMULATIVE","isLeapYear","arraySum","addDays","ERRNO_CODES","ERRNO_MESSAGES","setErrNo","DNS","Protocols","Sockets","initRandomFill","randomFill","timers","warnOnce","UNWIND_CACHE","readEmAsmArgsArray","readEmAsmArgs","runEmAsmFunction","jstoi_q","getExecutableName","handleException","keepRuntimeAlive","runtimeKeepalivePush","runtimeKeepalivePop","callUserCallback","maybeExit","asyncLoad","alignMemory","mmapAlloc","handleAllocatorInit","HandleAllocator","wasmTable","noExitRuntime","sigToWasmTypes","freeTableIndexes","functionsInTableMap","setValue","getValue","PATH","PATH_FS","UTF8Decoder","UTF8ArrayToString","UTF8ToString","stringToUTF8Array","stringToUTF8","lengthBytesUTF8","intArrayFromString","stringToAscii","UTF16Decoder","UTF16ToString","stringToUTF16","lengthBytesUTF16","UTF32ToString","stringToUTF32","lengthBytesUTF32","stringToNewUTF8","stringToUTF8OnStack","writeArrayToMemory","JSEvents","specialHTMLTargets","maybeCStringToJsString","findEventTarget","findCanvasEventTarget","getBoundingClientRect","fillMouseEventData","registerWheelEventCallback","currentFullscreenStrategy","restoreOldWindowedStyle","demangle","demangleAll","ExitStatus","getEnvStrings","doReadv","doWritev","safeSetTimeout","promiseMap","uncaughtExceptionCount","exceptionLast","exceptionCaught","ExceptionInfo","Browser","setMainLoop","wget","SYSCALLS","preloadPlugins","FS_modeStringToFlags","FS_getMode","FS_stdin_getChar_buffer","FS_stdin_getChar","FS","MEMFS","TTY","PIPEFS","SOCKFS","tempFixedLengthArray","miniTempWebGLFloatBuffers","miniTempWebGLIntBuffers","heapObjectForWebGLType","heapAccessShiftForWebGLHeap","webgl_enable_ANGLE_instanced_arrays","webgl_enable_OES_vertex_array_object","webgl_enable_WEBGL_draw_buffers","webgl_enable_WEBGL_multi_draw","GL","emscriptenWebGLGet","computeUnpackAlignedImageSize","colorChannelsInGlTextureFormat","emscriptenWebGLGetTexPixelData","__glGenObject","webglGetUniformLocation","webglPrepareUniformLocationsBeforeFirstUse","webglGetLeftBracePos","emscripten_webgl_power_preferences","AL","GLUT","EGL","GLEW","IDBStore","runAndAbortIfError","Asyncify","Fibers","SDL","SDL_gfx","GLFW_Window","GLFW","webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance","webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance","WebGPU","JsValStore","allocateUTF8OnStack","InternalError","BindingError","throwInternalError","throwBindingError","registeredTypes","awaitingDependencies","typeDependencies","tupleRegistrations","structRegistrations","sharedRegisterType","whenDependentTypesAreResolved","embind_charCodes","embind_init_charCodes","readLatin1String","getTypeName","requireRegisteredType","UnboundTypeError","PureVirtualError","GenericWireTypeSize","createNamedFunction","embindRepr","registeredInstances","registeredPointers","registerType","integerReadValueFromPointer","floatReadValueFromPointer","simpleReadValueFromPointer","readPointer","runDestructors","newFunc","finalizationRegistry","detachFinalizer_deps","deletionQueue","delayFunction","emval_handles","emval_symbols","init_emval","count_emval_handles","getStringOrSymbol","Emval","emval_returnValue","emval_lookupTypes","emval_methodCallers","emval_addMethodCaller","reflectConstruct","IDBFS"];unexportedSymbols.forEach(unexportedRuntimeSymbol);var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(){assert(runDependencies==0,'cannot call main when async dependencies remain! (listen on Module["onRuntimeInitialized"])');assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function stackCheckInit(){_emscripten_stack_init();writeStackCookie()}function run(){if(runDependencies>0){return}stackCheckInit();preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}checkStackCookie()}function checkUnflushedContent(){var oldOut=out;var oldErr=err;var has=false;out=err=x=>{has=true};try{_fflush(0);["stdout","stderr"].forEach(function(name){var info=FS.analyzePath("/dev/"+name);if(!info)return;var stream=info.object;var rdev=stream.rdev;var tty=TTY.ttys[rdev];if(tty&&tty.output&&tty.output.length){has=true}})}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.")}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/0.8.0-beta/Resonate.wasm b/0.8.0-beta/Resonate.wasm new file mode 100644 index 0000000000000000000000000000000000000000..6234b32c5d1853856a34d17379f4957bdb8e921a GIT binary patch literal 5359127 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 uR#iml`Pq)@x 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

#{lhtsY|9jvTK9c-#{ zLNs;wuz1>4B!7t8c$WfmroPl1PLN)6FvGB?ElIJw$x5JWcB8rB@q6=YX+gHLJMWw{>n45D&%jxbTnAd1hQ-eRZ7a*ZZYmTRmva{30z z%0-o3EEg`$dk_Q0b{%q$dB?1U8G?IsaAD^p*|DGpF~<@M=={Xfw=ON6AhqC=>^AWf zcW0DuebeW^_N^b>dq4N@tgb(E>c9TPw(NFY!-gm&q261nT`zHcTJ7*WwtFhHdz^aZ zi42Mz-&So9dwD-MvrE4FnN#2WyWe>8*MHJ(Uh?J-y!9VK4?d_b==$A{f9Esw;9gzR z(}zR(Xn6jOqhI=sKjrnubj=99ck}~qeG}g}sq6bcdhFYuedyzF;rdBkKm75p{qVEz z_|R9Ve`?_Q>G=Fx?|%F)>M!9>Ro*UBnR@Z}^x|#wf}Y!Dn1(y4r0dv;yLGKjgy+X~ zO{ecw$@DCp_}aVQK;s|O_51Gs=&7S``us1`nfv2)c<+R+Y4^(-{0;^kum9-dU%Qp} zAJz4rpZdYK-~Hwfd|HE#*Wvw>x_;B=ANuZRPyOIYoQK`-MVJpC$G_80IjBamn zU7rbE|Lu1^bNbdd{PqW^zQo46n1LPwBeW-jnfp0K1a| z&mW7=nVI*{-lGH0AJ#R1^@A`oCv^SEcYNsUVJ7d7&zY%r^ZgGFJinJ~1r!0K$Mw^X zy}4UI{Y0BP8BpG|3b$))pZO2}*Qw8bf9Hws#=h#hHWv@;T64=>y@U22)iq=JW*GZp@jASJQrBRR z(_oNaqyCfeIy_f~KSN3Z!<^PNZGR^`UqWoWgipoq-L7lxQvMT?yE9xr{q7HaHWH{egA~6|Iasn;9IQyf98Gp1?&6Y4(~t8 zwK=z3`p6^uK6d2NPd@UAKpTUUhy`ypIZD0FL^_1Uw`VkG4H9e^&DIcRO zA8j8{_kKVZ1eyZ(hr=z+FeB8h6SZ5R*8R0xq1FevMOU8=OQjd@4Yxw?b?Z2{YMVv3 z?&el)&2{Tee{ty~uo9ZTeYmZq&{nVa^>$8&xqJFsPOwhJ>(HAg$EW^mdf3~tmbV=i zrY;M)lNUEblF${1FCj2d{Ojv+B<)kR!})-55_5ou`3+(Ay4(3|#g6yFI%$Htd-|HN zx11w^iT=ZkG=r6ZnX7w&Gjrj6K(yvd;CO~ea^ueJ6P$Z&GN0aoZ8i}cL&3)@pOwm& zkZ!}4fG@?Cv?I4>H(5KTXLL8s$02qz_%{%Y($~#3!y16tO|oU(9J{HEQ{GK?aIkI$ zuk(R!cD$ROF9JT#x{0VL{rSk*H0Oud%__LIznl5;-JCDiRI`~^-Skj8>t--n4s;X! zhh{VHn@zMy767o=1t_#<_j|2Peial^sF(C?s}D`;rCrK!FnV-m=ZvEZVQ+(raM|*s z+d(?SxCob3qjQ_1jV>4(2S&%VYjl_OjSgiOBEslynvp4XGgy`eyLt8U-P{Am9lLpT z)lD}bSvP~tXrP<>yqj0|b#srpdF|+Kn#w$O6NqFh5{TUoE7vXG&1+CF#cp0#bpOpUF^>dx05MS2%*I;6)iZpQa6IMZG63eLct61SGcp;~S>lGM9D+ z6K~Wa;1SA$6hFdaSmHafo5XiJ$U})YxKgrw3MI>@SOLAM<=I2(yo%M6@~bb3DV%`K ztO2;6s|ZcZnnP__5Q_|pC*YEKc1fwsgHu;#Gv6$yg=9hvpb7h0{|)5&5-S-q4+~kQ zdr=!SLg!}xkE_8{LC4Z3g{Rcf)eDoqIBJ7)tuJbEU zU5k38>;9P>G5>(V6ReZWD;Y}h=fyWrq0W5M7?;U}RhgCi-N#5LpGdMHls+=m%3P}vI zp6@WH+O#TNkMEHok74O;cq9Z^j2pHO6~(|z1U_r5#%J|TG6xNN!~*kC@mcIEZ7CY* z01!4#a<{UGSIPN5=;Gv-Ne$R3VfsNYWk#nFg5m*(o0$^tiaVh;e1w5Pvk^uVZ!HcV ztk%G}ghv&FX4PEN922pOYkYx0tB;SNC_N>^Tw{|2!U`xJ1)^!W=wJcnkUNT&7Nlm$ zbohoelk5ic$Jeqa&?3W4bakyTG*n&Vt{SgRJ?8OqtjN$ z@QV@%>dVv-@Ilv@D#4M#m-5I32ooWd)_1$jeaY%9$Ry16+vnLqv~8`Uj#Vy4ZRx7S zDw9j+FDeh)c-lpn3>7lF#W^WY;<6@eXM0-s5k#=j0~%OEzDqcRmez#x#DBpUFb}%d zh9C+axG=O8&D9gZu`X3l0)N_5!-AWD!qA5*4sdv9dnZR&prN$SgPoZ z9*Db-6^8HVfOL5XAc^ucf=Y#JC~un^JQHVQb<~POs;ZG+KvsuTu3iFNi_s0+p8m|= z2psCQ14Y6@7vtiAOq63*zznRfKSgshU9jkC3_w|<+#vqE{a&CO(zHE8>;K*mzglf6 z!np)mqIIc(95m1Aqk(p=uj-rZh6}O)Ui=bxDKR}`7g6L?90Qu%HT?!$LC0Tlc@;Q4 zl$U?Pxliw#Ek9qK+lNM+L7EDDST`>2uwP|9_5RkV^NP0ga-XrAk}hLn@gOX=x0q$g z^Mp6LZIeQ_O$ymIDP-HE$|mp+#UcoUVl(U+1*Xxnfl$Sey(HW3X3HCjsaN%-{SvUe zBzv`J*GuqVpTQZ)zzTOPLDx-ul46=q8mu`A+Fb`X_B@Y36t=m+Q?T{RokKVL`9(36PDb27(iFxI%7|V{RA6S1sjo18K$Ar# z#(g7TWEKrO2XGBnY%Ydy;&6|^p( z?NCox?#1k~<(l3Rnhw!58g!+1s`s;}mrz{gGX2~W8gq@4^)oOu{WI9p9+>HR^kQ5S z8Vebi)U!&}RPPxwz5qI^30bnsfpga;C7sV#)Ecul5Pc5rBo)LNEdFY1SP!~P8hEIS zP>m6k>Ld{?lL8l{%`+3!I$A-!knF{-obAdm>qdZ$R%T=0EZYnVjP2csV_n?u3Ha)c z)+}%C!<}0-olSH4i`Y8ElKVLxwgi6Gp0VFyKh(|`u@f;3?Y8j;3hQFu5zsF1MlJ6%CK?RR#DOitoUeW#f;rB#|Oxr+sSE$L?IqRqPTGjiGuZEZz4F(8#w-l z#xOY6)be%I*bp5SI2t*IjEkC|6TZ}>gKi;Z@MPk9;GIaJcRA}B`8m$L62TKIRCbKB zaSlG5nkKG!0GUR@!vdIE1ilFw3Jaezfu?)+(y@H{(kVe%1pUr;u`#qVhUK8W(47zJ&5^;%enNw4(V9$NnZNB8o%|yslv8 zbTz@Yl*|l|%|T?v*ekp8Dx(fr{!wcfV?K7h-Q)iynMKcv)%%pk(0W4Bd-I7 z`J_kztFl9M$c-_(1^xkaQ>}qCEaN?d67y&C%(d`rJ^pc6L_!>BN^IJfg$j>n+`a_FN2a_FN2a_FN21DS>XAsyz?`&9(!h0o0L)L8Q! zVtG)iS1OXP&y|lnZvOs^Tc}-$pfHOWcyL3f(RB=^Y$oUhNGseeL({}BRp60Pk~P<{{K{ zLu4C*A+k+xBr8j07U_m_R^LyDPq=;-01dKgmX1Y$6evPAuU)F0Up#H5<(4VdnU zO=5lgEbKb#!zLXQknad5Jrqtk&Wj*Tm zx3GPV4a%jSmPlGp>WS@1CnJ9g_DoNyAUcP?1w$R9ckE9z3}85h8`b`pTlNi;ag-#6 zrL-lq;j7auMZq&ePidsyF}Y%(-$55)gRRkTm>rB-{ewl1WZi+giVC+ij?`puGs)5h z8#EGig&U(B@`2G{rx`5vG*NK$z|~%h5(LL<-@Z9$%AO0QHB@AN@uIZMyiwXAC*_Z9 zY|M>Hz4f`IrxLTQ;&2VlBw9{vj5pe%G%O|&>wvZ>{F}BYW>$k7JyYr}ibdkYxvA7! z6kE{nj+1?gn0>Bxpy;L8g|U_5GU8Pzlyi$hIkza3bBkgH6iy~?M}`2PPNZvCto4=r z5>E`JCya(vqs8}8-fOm;KlU5I&&g=M!6P6DAS&a1X-ys8XUVnFewk(q`@lm@{O zKwFG5B$hA0Hga(2xP6Yj+Qc3%?5FSybhEbEIejVm?d$8sxCTs48~GWGHFjyYNFS5! z2DBI>2LmcVjC;h@YcDl!c5I<+4$NuZI;QY@_)7keUm#z5>_{=s>Lkf4nOz0-BXP~Y z?XF_}7?}o$dORka4)kK<&RchgV;)mZ9Hv#&C!dv7U6e!r@@d&(l;MfbVshvB5_m#!F)pMjmtO%@_$E0Nn(RMC`oPiBQ!?d{+C`$A zCv#)8+*?NyG5f6U>orwql6pantBP`8wBF68b2uQ&stW*UjV#G5CV})Q2K>{V4IpF){DV$->iC^Tx z6V%vm6MS?;o>h=EL-2;fd3j0%U(OAg5y#4m8^FJaERg^5RFFx*q_QdI zS#$;Tj1F-dH`W(rcpKj!wpGj7ht+3_LBDVUq#WA!M)~7&X)pG%dB-1E^z7RU3dsudkjB)(+jF!bYpzqHQkl_Nx%h z21hjOc|KXT4AFoyjur5dv}pTgjN~i?p!+r=%**FM2#I^^4c|~t*k(i6VO+9?v7R9$ z<>OJn)dt&OY#co$Q;fZCJ8&ZxWG_?yG_mta)xrW+m}epo6z(nJ0>nvVMp}^EuFx67 zFels)=27+;Fb{cA77CchTsH6GRLz^2#tm(c@p2e-{iRU;9 zPd3;pTLL%Rjs@EhOw4x7`8B~WonH7t-?s|E#Ea@cG4t}2l@=-zhiRysT0&x=E+M-K zM|KoKb{w1qu6Nu&}}C{0av8ANHuZ=p;*`77+;Jylj&v)*6~1%CwOJ%9K-B zI*@TC0Aad39mu%yfNbH4N!Ut30+1aP&^$4>WCgj50_fdCVR=BtEe}ZS-RC^>#~0@s zQ@1pKVdwy|9X;Vuu0&mCz=cN&Sr{m)1IS=FUB5#i;gKQ-A}Qp4&AKfjzKmUf@OYkX zDq%B)5;jw;KqOQOxhN7g`b9!u%H+TETocqhM8W{Z-=9**ITS#Yng0NDQ}U zhbXezjyx%ZDJcYe6aqektDD(v<3OOm4bG2W!j>$2iD&90m&Q!y`ekYW9v~m+Qn;9e zYWxzH2_`=rni4R3Q~1aUJ0P(sr4{gusKeV+LS5)yf{e)sY(6G^K7yo}C});tq^G)# zi-3^rm;yA!oLY{e@)r+vCmI4hF{cHrOCNiBUd5go*h{a1E{lyM&?R@-;aESQ@MY@D zp8Hj2Mb6qzXn$oAzrI$ zuH$l9-bLS1mZAq{>ViocA|>7!UvR*X(>w||eVvT3fu@Nfi?(TMh6vlVeL;)e`+@)& z-5UdNK%U|k+VsAUOar819qJ#^F4`=|fi0NqMtEfKWb5Eo8|PvBJHLLUW5|x!e+Jug;Ew#tca#-;~BJG zkMgmo+}NDPFtyhJ^Ay+aHlvT|vz_1Gj7VTp$q5(lh7w+yUnluZr2YZRr zd5h5?La0Io<8^Dvb%Use@8L_LZz|%j7>gzZRdfvFYE{ETfl$^>2(0C`Knmb|oizex z2}D;t%Nv-cqY}qIB9p>3l?cIiahS$m1s8|lqB7T0O3&4m(k*vUL6|fb6)F4J@N2+2 z+4UUCTz6IBR^D33GjmbFD`lA`K`+58g~OJJks0GJ6OGslQ?ZXrzXDq_Lydz7A}{)R zZ~`Fvn!J6`!b&De5UUZ8pW~(JS9Hg+T_uQ9jlf&e3vOrdP9jV2RMu-YckAb1Wm-3) z>zC3^R6`ASC-ht*D_11NJ9wh}#h*Qqx5%(srrlY?I@hAq(Q2XpW7oH@>P}b8BV

Fe743E=aln@PeU!&ae3OYdXzoX*Va)1FKC+d6C)Z0ApqvO})MWff@V;n$x~-ur=jnPqJt}B~Y+0K)j~3x_l8x$`yzP|2c6m ze(`{PkYgD9P?#Udev||V0ocSd2!JF&U}Q4|!rqpM^0ykw|9(3gyQOgkly9f9Vu5j#Pa$cJ zLMWeSLirRj1uA?H-k1U-vI?PmYA%B7DK=yEqY%pH*$Pm81>tN9nh(f-gvr)+FnE8+ zKzydH?Os{f7u)r)<>}%@UUToVY9K^u!i=p z3yjf})~cD(>Nua}6V69+4>*4;j-37pu+EJ0wIdjy&AV2 z!CD7?I+yVklRXUOv4>GlHNFgns*NxXja?%Ofm9&*Zy>BNRD)f{R~67=<>o}0D zoC52F@E!4RCB#D^#6z(Llt8fpJi=zJu!mU30dUiV!TM92fpwJZ#OE!5Sxi7P=ByLz z*xXaVpGZy$tfM=}h49`U5^43bj>Az5sL6%_#m)YRkV8=obtHl?+Rr$~FjAA>&dNBV zA;Gf`8cpHuLY2E5LK)sfY_Go^aGN{FNK-)(thQ8`COdaT%ZJ?N-m@xeo4Yk4dvjL= znC;7oAWn}ENR}5t6j_LvA=ec1G+BfemTd{R~bPVjDL1*a&9)B+nK?lET4 zBoW|Ol8C^m<>17GXj1kTh{q<0)LlLTPuT;f0iJRiOLjjZMbaAvCv%fStvBr6Q3t0W zhp;|_atJ*<6HU?x%4F~0KI4O~g2B7N!6|Qb{;mS37}wP&$cUf1zd`=iY(FF*+ciWd zkOp^MatxpPKiPE`E8OV2hPPx#!_#ViBM$+=vSZ9igiQ8x@(HqqDNIqtFwb2uf00kC!Fcyv*F{* zRhm}s`##^-#@N9rfCvQ2ax5G`l zfi}!HBN7>?u9HZ1Pn(@4vLoCFIlC^OfVyFojy()&fIe1XjwGmcR>5?)*C0T)cbhf9 z-sgdYQwgD!!mx&!QKK^K{H`KPhzt?+Az#RMb{AnYhJ3OSOtjZ@H|9T z!GjTvRS2mAdI=u-XF)IzXBAjh^-K~F`Z2KzM#^if0*nGU%>)_Sw{_JDL-F%^eBXjm zLqc_(@^9X7qb*@NNjON+R7hURQM2q2+N!-g@dqr?jj#pfJ zIE=^m_VIWIj{#m#&FXVV@!D_}{2Z0f1oIf~0jVX|}ofJEFZ=MJ$$6`N(QKOlE#;m-JHX(y1z;jyVs zYd_UEB$oCBCr+M7uUO#DmP6&1D;ADXn@sQpQKheBe>Pw-V5xCAm!pZijYc$D9;cP# z-pZpK0{>`IYX@axXa&a8KU^+lyKxB>Jx_LCe>umv%hG?maY8aqjd{Xkdqa?_@ECTn!voYf&It3t?qG<49GjaX%16g2ve0!vZkBUK zj&;&%Oy@KFl0qCUbKC%)Y!eEPi||-E(Rrd7Ig85O-r`*Qn$8EC)_D>`P5aSq-tHqG2FDFRzrsB`ckS7(4x9Mvh7Gp)$OEgsO>;VtF~=M)IfjRClcCjgtkHLy(#gS z*okm*mB=(|^>R#YGsz;-v>m2fN6Kv?aNaM=4}Y&|f%2c4EKh9@VJ^=u7r({~HzZRp zQl?0GW%aa#FsPv2>S+onEGm%lNVPW`)m|D`uBt(8_oij3cJN(t?EW8yw%YK z(tyZ|<5JfV3zIU1WzzWye|&-1GAvLPOM33#-t+hmK307@T=aiCY}CH5_uTdZ9v5o` ze_((W`W$#dy{EudByj;&Wk!lG2EcMKS@R&Rh%;P0OuX}M7-4jUVN0Bx5d!mHHO20BdAwYdF3L)U4-yHC0Wf$X9Fe4I zH^1eU+>*@k0!(2pcJ9c`s&4HG7P=r6qA5$aLTDhMYlJ%7S00ggUSME#Hrg+#He}@i z4$L2Av3eeYfh?!o4&2P}wT5FCD&mFhRkh2!8N0g=K3>USSV$b|^k5PHME9QNV!Jz3 zIYS{|IwLX;gN#f&C%|r0BddusgKp>X<-zv(!-o+>JtM&P4E6n@VV0h0qsDw-7MIF^ zLa<3;rgpb@aaA|9UjXxgaovFVYyd0m0FXH@IlFl{Z*d0uVaI`WsC0^Nz~%Zz7lxAo zD6LQNc7$|;KU_uO#1s%B4^Rl5L8E@T)2cid%tKzc91N)#{NxOg`;0GS8Z2hr@3`+ZldSY@?bb7W z8xzWMjXWEz*2qABKCKobsB)_~&AqpM#zW7rg$e8^1a=exJBsBkYAXaga1ip!5(i(8 zV0N`dE04YB$4=%Ddp0{+o$dz;g&?Hvz-0B9Hn)>S!qBq(cAc=g;dIk7H(Z;AB|&=nIciskfhz&C>whpyN(4;grdgRi9a41du((#W8{dH z@3HHZrzZU~wOwP-Q?pukR#>bO#m3DhHz` zQ$K2~kUMv$3^?$*Ry(le%IgasydoqaJzbCa&YW{XNA3L8m9i({s9w=2*52woa0HCf zh3~vPGE>Z8hPGpi%u{`Qw4ln?SX=L)=}mi@q0m?tK$o+s)ZfacM$xzuZRmZ4DxmH* z%f~T1U;#|J@vvHiwE4LH&P9KI95g}qev2#oFg_EuPJn^fR=8LdR`PHn~&BZP!_sY+6Ud5K~`MRmo zh$(a$F@;Verr1Sx7YYRYv+=H$(iLWz9PbBWC>qtJ< zP4t#}S-$O4iO#bLw_32rWL42R`OuhhhL*4EW(~-T4K2~o3iZoADTbOaX3U9wkvHs% zIXZs<=A<^*YF&~2OA+6z=x*hFH*JQ)yX^b#mSQdR;$x}ELPBOX?3kT-v z%A|~SY%rDDw>asyHnTPeT$qA!f!C}ucn@jSz`L0~WDA0VBHxW}!dK7NE>CRrk_(dr z7YF1xMMyUDf)0;g^CDX@ui*)+qRaa z0lJQ9Ja(oqqscfU*|vOJc4{^^J0M>;Qmomp``qY+8*2qMNwFc`U!(i$j&xtBO4H$@ ztBXzD7pcg*xr&WlIweNx1$?xv)mcOKkF`urm)trp?5<@HJXw=(xIR4OhIo~oAfydP z`LpKeT}Sggf5FjX`3sJ8U!dAu-<@mh722s@c_Fp)7v^2P@}hhruWUTh-KbZ_^R-r+ zFKgPyz3mN0@9H(3tKJKJcdUJ-dgI-*KJb8!^csDUq0Ift-8zx4k$!X{-yrmfOQx8T ziTnj(SnO)ipY5QaCPXFQD5Wd81LRR`S2;y4Rr7@OOqRfDB7c$20Jr-}4#3qO3Yxu) z;yj`Uq3AMmi6fqHEtVDA{c0b!z}cX|&@VI?4e8VPEiDJYE`6GwxFW;u6NCeBvIA!o zK0Ql!&}PZColSG3yC89n9qAaz5s8ojFs-~j?ArWbx#nl3MIfJ$uGbta)1UXf#Z>~t zS>79d!^{apl{63zJL!T~*rKcQ)dvpd7NM^uq-djMsnaGE^RXBi&pFe@R{ZaXL!)9% zQe4%Icpo_K*{&a-E|1SYDzMa3Wh)@BhO!lq07=;jc2KM)lR;!>AM|Vm|I~o(Q8wi6Y|S~whz>3* z#TY~era!$)`Kq*l|!ci;f|QKYPVcZ>xOKPuVGIE;e+}GjiBn?FFvU<>bNH zW|kx=Ex?z+Rzn>QfTK-tCgMoehK|m2v#v~B!AJ8oLo?XEy+Cp#zOci^@?aC}P?o?Osr*Y+>17z0z&EI#>{L_W<>kn|^NHz1x)V)*b z)SxoI=A!j%6kiH$;=TT8))g_btdllxr4Or&PnAq~lPs9S>M53gPhlD=a`#RELH@!7 z>%*g~yOWwqb5KPiEGw3@MU{gp_wq?%oVa^4Z}Tqs>`imZB-_mU9cl9gHnjYZJFzr4)=Uenj{db#yD5RLkems_ZSWxY6FiLtG*D zfI67}V0f{|T9VdT4KMIzrXeJutjG`?884;mcxy92A*{b)sM4|yO9D&O0Z%+khCLU6 zwR}N6=gZgJ70f!*!7Hk=Hw4e9$}0B%FXMAu#<1Zkznr6gk(Rf9IVpRo(Vwe{b~zm* zSRP&^rvUz9P->*q?wIq<4A+bS%h+_!DZs2PAO~$wgc%p+&tj*I2}ToXP^Y2q$;Amf zQ75*TsJ{lGMS@ISC5#{hYQ!3kBDoRuh=fNrs92%KdFc#f^RA)B6nexy?9@=BstMbo z3^d@+YN)a2EM>ie`w-%rk2ujf$=+AbF&>5EmsD)_n_Fd0U*Ul;XsAIPYM-z_3;csm zk+S#Otzom!2vwgZo6YU2UW#WCf9F%@=DNTEiEpvn#=taYvqr*NP=!Mrk;o)P!4@Na z+0A)VO7Ikv%54NR5=ZYw#?$3=(F6(cgP3brXHEFcJVbWoa?vxg$g87$s2HOn>8{1m zAlL4m!GWg%MMlEKWgoPUq$n68g<3^s)wTg#Q)CuF(bC^QW|e^&3AI(WkrRcR^QMI* zm>3^2+8dz_2bl&!JAN()nFc~@-(NlsuwA*{A^U2z;kLwWYedM^0dnb~5nA8@XtRe5 z#;Go#%dBz1&JY}v9}!(2*X$cz<0!~Yt|Qs5u*k1`FEQ`F&(D@0n~`APUn`#u_a7U$ z|H`vCYkYC<(+lt}6{ItuL^BXR?p&};0RiEgTmR6d<_-aH{Y z0-TpI>lw->R0c0kA&olg`{`SkmQL(c);QgN=7+d4;KOjq8+k-}KuHbh#YubWO|7go z>{nPjNXd8#gJ~f!B>QP-DmS&6D5RS_3pxvKd5AGf(B2HKAF7ki<%1Z^$?-L#?h`$A zpz|&A(WuXPo?Y?=9|cDhD~4pu`1x09E3qX`yqOtX!>y}J5%cWAheABh$kbSI}VpT zBsB==1`v-JU5*XO)NgJ`X9uZh?NCnRc46L@#pq_dk&2%xI+T+lcP?3>vs_8nNU<6A zn7E@Ah&`Qv4(@!0JjEq{(a^IRW$S0bMPONhMP~$-B*ADaiX(dMLdo5L!lbfPmDiQm z=dBa4qhBPnQT-%KQ+L{Kw>Kwgd_b3VZuMMzki`cKBA-Q16CX6<0~8aUFGU)jIXebh z-=fiGsDkFP{EGwyO#h#k!CF|JO~UIgOj;->+a)?mCe%dNgz3w=(_!<@uz4pJlQy_! z{$^0f(vNTxYu|hr%m5crwqI*^_%;99!$opfs$sI#*i;4ZT_pwuuyxS2$%=u6G%Stz zK*JfkXs~HH0iF7&vf-&W&Ec0uyyA7+-K4zZKYc5;3BWcEg1bTZwVO2%Ut^0@e^=yl!|6}CQ+W2?7)=}^F}w( z+sMAuPKoxlSON41*h*&5W($d8^;L%GOggl3{7{iKccJ!S9ckZKMfFO{Y9t>$&p~kZ zI9KR=Lo(NiavZIG|66(=1esgD=c~zT)F%sdetoj=hblWa<1{BI3bXb%|2(G6@_cIAi0EdJ)pTGe0$4TJ`n(W4 zbGCWe`OgBH%(7HXOS_tuux&s*&&>4zY@)pNrT}5m1pO2nP!J};1kJvuf3rQuANDjj zejM;~#Kx>QrQ~g;iDd()if>SxdqXtZz=C69;KNriiB(^bgj4@Y?`^(97Yr3N>#K+W z6IM}c>`)!RJJVNdi1NR4q)=Z*n+NR2VBSHn{{PN|kOt1NBt8XwPy_O>lNCfKn4s|k zY-U6v;nkd&!fCX@0%7PScK~33S4LXn9(a(JKTs}MTAsRMX1e^wU%Hg{oxJ?Dt&$4M z?>z2W`X5$z{`4-t^P743-Y4v6zVZyWek(5@{1?{J87hrvYWTh3J0o7}-O`XS6EQ`f z_c1*aN5CW~Mc@qlELvzp$=fH+mu5jXkh9Fl%t@+=W=q0EeW#LkT7>8=*Ne z!9*ELSLI?JW;@?+R#HW!2Ay%K0wfYR>!Tm?Y5eA@^4))6VnyH-ha+wMsKS*>)iTan zuG?X$8g2d>p273UZ3A=TMhf)LIR(n=O%$>^QlR7>IE?-D7t_X1-ZDR&LHv=dr|;`o zW{@#f=#p%f8QIZy=H&WW>;j^aR6>#;XdF@@vI50+WEzSc2s6~&)h%^3cnp=DKXo;> zDym%5y+p;e-Ah&TI;@3U?eAWu;?-Sz5Eru>$S+TEBQ6pYH~Fa=H+Qel)$8zxqIkU@ z0`JC#dW_kU7(Th_fs7=PCN zF_p)%?!Q)fch>zkD&LuP$^Fgvv+j?pyeI3vOy#{>IW#~mYN*&}%i24*oxZaIyUl+%no^PcRP}0@VPpgRgynj^Y^*40 zg41&2jkGI~e3fZ0EK;;e6FebfYR&chYB^HL?o}fJOriCXmU?M|RnZy^a(=UBGnlNj zyk;!e2Z=zH8_cPFv7#F}x-u=lgDxy7<$EH6zxi6AHR{UhV$;c& z`$sL%(b^1*I!t9S<(j1=m~khDM~&XAK5A6)nV1%>iN>92*bLg-!&%r=b`zB0*RGrh~r+~SuY@4$_YIO$a61+7J751A!$y#g& z?21A1YR?I>g4Hz4aH2G`-U2XPa>zS0=8=3xoYu&04Kapyigvg2U9>7R@IsA%eoUm6y#);Z1G7@g^ zzH9^++k#$G%nQYX8Tx^_#Op7gFWdVT%7@bm9attRK+?S{JS&N2J3Y(o%5W&fg zV#9LHZpb%Sv-3C7f5!((7y-8RRzs=?Zx#QVXq;@62_2#{vTAUqJeM2F`5TK&*DumX zAy)fY3vf^s{cdzxyG1(D3-CdY%ILZUMGJ@R4BMh3)FWDNzzQVz|95f z@nH^!(muN1K9$HRG`$?kk@Be@+s()^ z4{tw%u6UTFZaQT2ML?dwI%h>7o(7 zp@!_0&)GBlom8=Q(Xg+iGv|rkSWW0#I>QNp(%pq0jm!C!POlE%`Hr=P8P5X7tsI*+yTnIm+Z9Ysj;`Ow$THB?i=5C=k z+LO9^xCtFKJlx1t{z~4Ey>T&_9`R!RHEgc-?J4RddswVlprZr8>^dk60q6)rY{&Oa zHf#zAK$9w~^O;P;$Bu&@*@gR@vUON+nsC&fT>9`?>B3G4$dO0vr1t`AR#Gxm5?Hme z{}6v><>T>ZLkp`4qeosFK#)#a z)#20eV&xqk?yjcwJk$o~KCNGipAT>vJC=c^YrXt>yjXcJyX%MhDQI0Uy#|mPw~}IA z4A;mkX_#giIDIJgL0x^ccaa$ls3!EY@yW`&Dl#*$t(Z|MURH~Au*1A)dvTr>%=J2Y zOw80Y=k83D$PhPDfM{><;?-X4x8cRn9!7+v$yu=S_5&d29%>bKqs@p~4Tt;@V`;~& z`NzGBtgKx$%A7Me<)$oL8c{ELP!3Yjhhsic5~4ve{m14j*u{&rIhZSX|Sijws~tWvu7c3 zHyr?9D)aA9z}U2C-R94vhCX%1UkqG zlfR1x@ICvXUK(hl?~*XP@)5c(rxL}VbA3T}**2siYo}aQ;*AQjIna4pP0@7uOPSq! zs($YtzxPD_-hcFaC&N9tQt%0dSuiWt%BM!1Zrrr3p?C~Fd$q#kVs|-{7}YX1%c9-+ zCl2%!tH|rGu6js*UUXz7Y6`&;zi$Z32Ly5T>cV6ze!UKrGmycr{erwUEC_^r54KF3 z`q%B{7omP5=6gm17dL62mhRFghZUAyjsaNf05UxTGGHLka-xU<3|o7ZZ8~os=2M52 zgc}n2daDAY9N^F@z9;>Fbwr?Gy#RcMRy_`VUp4g0rsP&JIY;uYJXWveI&)Gk*2gXpP&M`PAC`8xoNVN@fPvDej_cSv1 zYIq%Z0&NVq1Plx|t6Rjmo27-NYk-FsjGyh^i9Cnl3{9od$Sz?Va?Q` zqCMM8Gn7p9|01~Jp$a8_Q0>{tBn|(`fsm0BJ1ADS(PMSRGp?pjfmeVKmA|ak?yxES*bk!iDr2ePv19Alt1_zx3oO#TX+62F|Xmr=E{G1 zuZd#i?f1HL_E7aj;=QJjJDE8~18SF`C}kDHz|jzcP-NMFEf@AQ!c95GDBotE|;FiWnY^BeXYLLoF_DHzNL89QnDHQF-A z>*?o_o4NWhV>i8IO-nQ-4YcPdMbO7uiF;|xc>xIJ%6XCXoTgS0>Zm9Vb1of^2_E}0 zUR#UxbnUK^Vw2`PN@&ZXIILP!J5K%I+`W60UDsXbc^>ywb#GN&NhP_YDqH&=D^A(S zv51YVI7(E<*2{|gXfSlv!j}C9f3T#`6RF)E)`Fl4q*;MD-Jw)&m?1PYj}FibP0QiY zkm<vTvv3;_U(Pp0$ycE_$z*ujy*g@_$ zhERcAHwuik0q)?yj;LJ~fGkquo4>R$;#taAvaE&IiQV7@)_2i8v*koO9K28i& zwgQXighC)wHlJV^&ICKMuAHZqB=oQ!eZHX@lhBvwqqV73xjk$j{V?2UVk^*A4>U)n z0ADcALv{gWjQ}@&65G{VauW(#a9!RiF!3sqjh^bgIW2z#O-Xp-4>qWfz5&ieI*jr| z|EW=a=!K+YL4LyByVadPCkOQwcT|h~DCRzeyO=)7213z}mPCun8qVtF2x>QZrQJNP zw#Bf^m+_ABeb%WRa-IRp9px2j5GWu_pj?F@CZJ|^%mMc>`IobGB%5`Nu(em&_jZ&Y zpehmbO%6K%W3(uSsAjKKs5Uo3H8v5BuRzO|rs)!DRmN$0kBg7fF^$?x2Y&wyqbVl_ z;fvq;h5NHJ(1u2>*a8rYNE~>XY_juB!9jv-ib;SkL-Y*N4IM>Kmj864Xb2vFARen)TY`xMIWZciAAj)s(Rx zN?fjWZ-uKsfs-t>z1NPf5Gq0jj2VrRR62C0rRR9ez_xO`b>EUxiJU=~s%=#SQzGA1 z;riA$Q3lNk%<4P#8pr(fkpE%H-lgTUD=weNK@(P4v{H-ajFv>TmiB@}GBBGmLV`M& z1O2GExpH_wk=OgY!}{Em$$p3Td6?HAAM5jOBO31c^A!yU9SD1+jCu$Jt8w0H+^ZVr zy++a}4M!jw92GN?xlPwZsbgd3WN$CTwuTn>omOkKxbLj$g^`%Xn&WLUAEM*YE?yoQ z{dbLChBA(f{;WwFs_gN%g82HqWY+puiB66D$bz>1^WmmU8KjJV%<5o=RBjCJJDiF^ zdZAvK1b5z$)Wio`Y#&PDWaBsaJ7Vjx(70yTLmXz4Xks z{5?z~_^J`)Zpls(SRtSEU_~82Nc;j{^VPdl(uwyW)Ep#=LBEXpiIyBByn!3|uGfou z4rQzQ0TRyNm8{3hg}aicQg$4#$SG~-8dDd^50D3NCftTN-<9m$2=~BxxP0QmGtmE} z1=mMm;Lj69=fX2Z>zvXx9eGMxBj3(@1-B*J?L9s}5>}pEFLcC#eM1UFW2lX%i}I;1 zW6HEmn-k2#uCtb|1V2dzNb~ahL?DIcCdQIN5b~KD=fJszXj2jwj219RbGUS9-Vb|4 z)o|K6FGin;1H*Vx0eFU$0Nx0D=jLT~h^GCrM0Lh!;2Qf-r#^JHxUT;aF~GcJi%rU{ zK86CL${yu?^xAW#$%qr%U6~wkz!tOTig~LZ4ldg{4u;TwljIC1Ov)gMx&gV3JamVM zzz&(O@w97}N!FuLb^v2?3baVd)i975Z2RT!DOTQ5*y#}#ov>1iPJsPf-gQaEk%d{p?4sM7-+;v)elF?0&XOHJLZo^v@XWA>j z_51)LHE4oLdjL|8m6zF7dcl5R+*48_Jq+XxEo+KjO z)FAn2xyVl<`$DI=Df`?qj!;_FsA9yBkLP+Dk0r9azCM-J=KIHfRV1WN3FyzNTvP!@( z2f2kBR+xE1oPWTs`M<$oHk2;C4zTky6N1`l-&R~uOGIcWK5V<_xUjSesEE1GTJt0< zS(aC~Z!v39TYc8dKj_d$EZwfV+sDLGs{-PbcmxjlO=KNF=cWc+^rX&lgOj}3S?#(} zyYAGk`_;AfA&K@7rGPZDioA3ADQzr_zreSBMSl4yMW*d%)#W4Zv)8~Cg~h!NEVgAy zSacB%-Yseg?NINj#s=Y`8GB4e<<)9B&|vj=X>c>QvK7gDUdt`I{gA}71_IzMKA+cV zJ|&e7r`%t@u6)X9_;uwvWsZz>9nqI*u`-mj__7iBvjk(1q?Ng(r5%%!v!umK(vszs z>5`0ugdvHmg~Zih7wTn`w^p81C05h?S&3Zwz+Y@cF)MR1>y)gg!qS|g=srF0z6|cO zE)ieah3%)Id+su=t*jxM4erNM^E9I8c6+j&!x&3sxg%@Ev8M+2SvcUs#D!jGQHx)N zG*c#$qBp|gZNT6l@4cP!PRe&t-ll$kUphGCvwh^L!B_hg=ShA|I2Bgbi#JdpyFPG+ z)Hk=^{`Bj^1K|w;%kGh<3VOIs2BcT6(au zU~5yAX8pG|2kkQW`kbjp(v8~0)mFIMu0UVHA4g+C$-->YH%Smg!wK8Z6$eBvg5Sv8 z%4C@{--MwnlaL4VALRVo!M~JSjRy)H$(2=dp3HnEx6Qr@j&^H83&#=IcW|?I2P;E~ z{5Nq2`LBNGERpI_)ay&o>xa227MKhMv@=<$z0b5DJXA7Xj2$*Vu?^%9k>b)Z2t?n( zv@uf-(LtTs4QkNb6{+1W2MP`kBp1Ylo6nvd90mvo#-_ryxE|V)QjO0HNkak#z;(cr ziCNxcQE#&FCg(JPafh+{Y^n^qRL=k;r@on`Ip@?R(wZY8r`3PrK)}(kSeo2yBT2Iy zGm?}lXdcqIl6>vr0<;BGEv*vB%d1jO1XGa+-{>uT6{- zNNz=~Wco3WR~lCQoEwXA)bC~rVt@V>ol%ZZ)d8l&$JR$ut1fE*4eCTmHF{h(S#H`a0b#@aIK7$2x` zbiACf2iicFgq+2+`c6cZ0u=gWB9v>j8Ro%i7&||-VSj~=q+x!L^BoQZK;#dKBM699W*DRxzW*Yyg0>VM#Zaf>|om?f%=ae)2lX zH0zbY;YqcjV6kG4x-|0)ulbBZjoOVH!j~t`z zlo6%nJXx<|R(DK2(q1fm7uTu=Z96Yh#19q5-smy_XE+Q*0ky-r$JRdtL?IPY)|Jx~ zW)9$`$7CAiaH~1g>_K1KgF(2dd?rym`bf~>nCHur&Ih{kS6+2<&>WWmUT z?qCq9b)5DP!YgU+vWY-z5^@{iK>2ynp0wXUOO*^N;q)f0tgj4%v&HKqj=Va2rHa>w zn=Z5G=laWRsOhkDUpcs*(Fgu1&QI$=k)0z)%%DudS4yvKhSzcVdR^|&=l3v7qE<8| z!QEp{vjdcdq^QM_#}J7CXF3!rfSTr0_DMHMC0~!wq)9V7Ln>B4xWD#cpp4*j^T>$u zPd<#_7}xka_LR@xC9N+^gD}NPxF&m13#Pl zgucQjw5S9blBXPDwaU!66O>~Q9;8W_kIVt=|LYu8s%PE75vE=SYc}f9I`&_Uh#B&2 z6Fh0ymI`II<%6UsFNq{vDo#FC+^qzyI^$^dNVxkc$|MPQTk$Z7uoV?jhP#=ml}qcz zv9<7Z9481XUouvhFeS zx#FbVzGF=MSL2f-W6OCXc52C+gcQOyej*LhG@i=5fk3*gnGl3Sp8 zMl?V^E;_}%HaO)BUkU$!%+_hNRX@g^W_B@L#R>}fQspb*c>kX^O#~x7bp4(fHqznv zJJYU?+aMhuEQHBOb>Cn9bE%|v@)~J-rGZ;||+aZ=%is5?&BY%FB%j1s}L{=QL z0Zn18yc*KYZ0l}ncY!gGE5k8MKYC2C2F1tB z!^zPcovhCSBHz7L&2TX$|2XZlS@5{w0Wd{^MWH_W)Zm0b#FP7F1PsT*2|N?t7F{IY z?zs}Bwhi@$t1C%B>ufQH7*;IV^3hbW+Hi?tmz&d4I{~^f??*K$ru{J$yaXXy3X!W7 zbH>oy9JQfFS%p@OWD-d;k{VP==9S!S-!n&ijxeT1YE9IiVr06?(_X|H>tL)q_Dt4H zs;=yYzOH}z#9N&zbiu;%p6TDY@qMtyGg_9@h6JmaB94T6$Iy9-&YlE`1VPp%?{8NF-F@OGS^V~810<~D~1SN7@|j%P9;}lp%>Y+fsc(Nc)*~$;ohe}CQY@; z50?u7TirY+X;QE}Q_Kk??hZ#IIgrfer0GZ~MXvk?KX~cb=mtN+Q6p%q9joi;nS!i3 zT77o|80GF8)wSW%4VBmHnu8P`p-08iqR<1_=(j}CMUgC8Q-6y&HT4J^W@Dq=;QkrE zF={*342d1x+t8n3^R<_@=p({b=(%sqga|WKR&$`OM#LM3fO{>Im}8SaSOKq*g$Ya{ zUqYt9F4IbKq;UZZZAMqD{537&i}&~n2c_QOWPQWN-vZ+URoxFrl%$9r9Uq9*neL%| zFX$)6*$|G{!>acALX4b04UotMyV?M**SFV)5DuK+lb~Oru6E4|fk#r?ERqYdj;rN2 znF=#2SJ+K1j9gzGQjj91>pOW&!oUSrZM!XoTE18DN~>a^DqiVTEV=g{)6KFyv-pN( zf3`S$cC$U(rSER`XM3z^KD)&p_4VkM`lFdSmw3y!ek3)q@2v~vGe1_3CHyO52_+A% zPCoeKPr0D@1G~$gp0BwFJ{a%6d*c4TjTQaw!ub2|j`yFRxc`Os=;z5tp|1Y&L{0Df zHNXFp6Zd~O-v8c-`+xhZ{{FwLMBoUckN&KK;_|NYslT_VQGWnxoe(5Fu??Y+|)y zJTt6k$-)=_`?5+b1qw_u<+q(5uqSvh%>pxnONmF`!XF!>?TAKf_bQG#!KlRBId5V3 zI!Rb1zcT*G{?~?d#iL?}7JmzovUe`9Jw7k9 zCv>NJKfQptvhB4HDQ^a$jEr=;M~u4?<`unRJw57ajn$K}?*aaT^v{J@BBYjuJRg?m z`LMp&0QzfefNrV*$uRQJsezulB|RRiGf@h$qZq>&`w$u=I{8ANVdQiOj~!}emzvpu zRi}bSx+Oez47;0;!K2nqA$swm8PZ?Yt)cHSh;P;P%W)iy?Ln;=5NW8JV?5gbzapx-SHMeZfslASi!GM8a{wIU?SRdZ>idk0yneL=|SE^IJ**CHTI=G~m?3A!-U@ioEeCvi>8 z@f1w4ARyL+Fjx6axrHI17z@^GpZteJjGLhnL& z1s>9Ui-T9h*be%|7^(*c%(8G$(FV96R1oW*`f^pfFyWy0^Y~LS2XdFU-dIa&2Ba= zZZ*UJr3gHr9T4Oe1+d1d%T@QSDDaTQZP7wVhr`N{R#QN$(@8HD(1dWE|Og9CHRChIMFsq?;jAO z+in{d8qr3yZd3Vvro^W9NgQSMq3%T?!z<%0-P2}6LBrk?`qY}u{Vs?i)25njo}-hw zJkG$e{5GhxsV2C%aqoJkC{8IZ&i3puwHVKEZyP=el7KNJHxxO-_Xq5yTO}JG@Rt-LE%_95u)R;G#&k0oXSt#5`FRXJX$UVK zBCQe%U9EEPS_h{7ijsdQib1ws0!lJPjO8>LU^`BHg5k`BZ2fPQu z@NNjwc1rf@urWBbpl(HZ=EKMxI3<+RW97A>1=O=FQ`l3~uLLu^47b>lvF`Rpx3C|d z)UEl^E#5k=TMMIGymgdcV6-SMSble4pJ(#)`arg3zrD=uQnxd1pTf??WrNGp*yXrv z6&-$*44JC?>sV{GuZwPCL!~OV_W1h0!zNwiyM_JkB$nf&7@kiBRdaX$JDcSljtWDK z88R(Luy%uu^G4h^dPHpIII-KDbfMI5^&l+Du#}^VM9hHTS|pr#X)3CtG)B;txW(iH z>Es?0XxmrW*qT~uU*)41ZCb?q!0xDt<;6D#M~mR#x?zAr!)ykdz zMSYivg|IHMnJ-cfr>rmk*VcsCrcl7oJK^FJ9pVQ1NpJ4H%SevT679TB~n^~whX4w~5DyZh8@xN}a2|2m~h763@T3jlzy zqfYkFfa&uRQBwqH4m((~6!I1RZraJ`lgVCo#(Ft=zEw9jc2cfAgCQq6(z9Z_f$|i- zBf1xgoeY6BYGBmG21sfNOQf_6Pa|lVPuGB1dtQU4Ki{gGz}RYKrELz-SvC`B%1@DT zVJEij&AK=S%gwqea833TY}H7ro{nDGs;irJRPMTn(nyYT;}~ssuyY$0Gxdlf;4wc% z$V@oDD*-7SJrJEGlp2yPNuJiT`Y&_OYpQ4vC=`6D^6rbC@J@xL*w%W~s-fPHz{9i} z8&8YKA6Y|(xx;TC2zk6GAs-&eF)~^n4O^u&^C=U=Ps;nO4zlF8seCYUoOvqs<-Q$< zJrXS^ylOFCPl2h9P=ui}lCqv($$|*!eWW`h+DD6nHGR%>{epupwr56emMms}r(UI{ zec^gtWoO^S683neOhHw7nUpDE0vvdH-=Yi@ptXT@*0d1imgClR*sh~@WnP)(>r^+e ztMHAc!KzTGw_es9(q0&E)G$qb(S=8TxFv=2Ox;SsUJ7ahZJ8!KqfIncv%p%w7j0My z`)2t!3RpQmkbz5^BWRTx@fHKUmpHx$un;06DmD7unfTqC_}!oQJwNe#VeB`!RxVu_ z)gKRW5b@O>X%Vn4XZo7Dv?G@ZnZsM? zATA#${tQW`gP#@k)D&`dC7hVqWotReZBlu<0d2?yF1uZ@n1q?Ev}xH>N8 z3&lU6NilSWDQUH|4K`RI){u=2M2s5Q^0Xf7{~}tB0jk^NDD57okFh|S!Q_W z@E9N+K;~3URm0IDX9bM}c;r`wsH@^yD3-$&^k=5Tjc0*2zp|(iOKuxMo;Q|(9|RDT zpddFp)46yrhnU9KazgtQRD(yJ!Dc$4nRfBX6s=POHi05^&+DKfvI`06*v2G(imI{A zVO%gr4I^feB{qS7rvEB19&Fr>1jttzY3!MjG4-L+X| zLv@guTU&pbruqBbOsPx-mj~N+Cr&*Qt|1)CA01_lMSzfBCm=9r=wt<&X7h))DFr zb_~2m&mhVE*fuN{Wm2O9`$Y;NdKyVkVY|EG`H&&KliaU8q7ng`Br_u##G?>q$BlnD zy;du&fu$~zqJ>D#NBd}}b$XL^Hc9a0K!?LZ@YIG=7)%gHY)N#S;2rTraia*Hoet;Y zTITJEJp!;Dqg6peo32QnUZk&7dnJkWLi4U5mB=KxZ;a>><-QMewL?7^2WK-5Nvx8j zgo@vYzX20S-ZGmGGMz;p6d1)f`z7|PbZ)UESZi>o3jor<+$~y!jTHY-3KpZkISbkq zZdVI;;=Zvf3m~y83%Jk1KYS1LwcJNaHUy1wA1s=HDw)sNorfGJLu8_clX6OQA=hyI1dzfh(i{?ePM|cd z5MH{%0amogOW#(#a-@0z!(68vRL@uZc~S;F=Og`={E~_!-KC}hV&`7lMYrj&u$lo} z4Mmad!%;xZESDQ6!~v!N99YRMsG-DvdrJrlYX>5>1qGT(gKBu%qUOw{C}{$bZID4? zsRkrfB}jx+Aqzo7yd=?K9gcW10TG~QeH9T45Gl_}@aZ*_WhxaLm0nJxn37TZ9FNKwn;g z&LypI+yeT5xZEUJiQXRKUR4|SS8BYdI_&)8bLDd%uY2OY5YA$hz5GI|a>)>d9JeEy z=LziHHC0CLm4)7}ieLV_fA8Gy&vunB{BgaHKl8H1 z-&wx!BXtJ*oxkW!e0K7|i+|)|$47UTKlX`w+n;@fWg7VX$@^dQ2mja3@`IbT@TZga zs}`>LgU|fB5AN;2Z*0_GH2i*GSNUCIsV2YQ^Dew+^8OFK&Y<+ylQZ|-zvW%}SKG@g z|E4|>|2fXk504%M`E@HN7F_um=gO~=miJ8L%0rI>p6=Bqrwf* z5m=wo(u@DB#!~3O3Jh9F{iE^eH5YQo!jstjgqSiYa(I1%?fdmeQsj zPKc5Q#DPzNTr`~5q|?7RmPt8$IDJVH0*5Tw>Z4!-A!lSMSu7`91ya>;&{QDd_k$E{ zBjWfcZSHv^1v^|HreMFoV-&|^NNI{f!_ zb~s_FrP|6!^R|@VCl4v_R6AgWCLvWjELobWcDVi^$7=EW21|$44tp)>RXYUB)7lP& zj;`SOjR&(ISGn&X&Pd8rhsdc%`G!N}?xcLhLA*+oHytGH73C`rW>-`W4sxs(<>^Bl zt3|ndFnd;86A%mA4(_SS`x0KE$zFlwZU6IjS@~bckcMD8H8Rt31H?RdRCmyHviK z@vFR@@vFRp@vHnQ#;@`q<5zhn<5ziz@vD5zL5|g;yz3yxYEizH@vA({_*K4+@vD42 z<5&50j6bU|@!3qMi16^^&9psvJoP^9r*Le5oPvO%SMcY56wxJ8tjBxNfp6`1TGC@>kr}&si49)|6rgm&|rZcW9IU4m-YmE;{ zKBBJ+wy$#t3cPyC><3bNwNtXgW^ov8yhIY=Ok!zg3y;H2Uuv5eOlKAA(vqLRk1Pgg z?g@44>aT2C$%l_MrWRE~fjQ8{ejqH=&l zRF2~sm2LFgk89~gk1nu*afi?c0u^SuIk%`Nc7g{ zHlot<2$d`_FHwA+h#rMdi9)DEAylGRfZ9H%24#wCK(k2uK(kdQvNJ?8 z(LCl^$6!^0hcu9&b!V1BqyvJpWHAuU(JedJ6uVLbtjfsDq9nlpLeN0x6l~;x#kfQU zMkbAnj%*5M$*D$x=?<@kK{}>Gw`pvS#GFaz->IU_wkFYg&pA`k`^;O9NKd*FEJ6|Ct!gZItK)G7fiu{C-r4OJ5WiSZUNH1omXG2V4p5jj=Hb-nhGfWyfT zn?Q!m?biYsZTM1v-w-r@E^P#jBIsDiq~aL^&BK#XK8!EM!aQWrf^D;6(KEg2uxS{J zZ3;H=sJz*6*u2qU^RSI;95#yZ9iqAeh>@Eu{vcv1mJfF9=(~qy8dML?+5sXQ8;Vgy zteIz0;=$0iPvKFP2Ox*}**oGYup0lCs_~U+&&IJ$tm5L8)&l2)LIr$NDwPZ&=;!xE z2rA!h9fDveq}A9T`nyz2Q7tVavsoD2)NKe}g&f!)OcggE69IG@om&fvF+IfSAon)% zR7}pG??;#FnxjiCfB{p+Hx~`;Vkzs9dZ^_P;1kurpvJN|p=Rn$qBDVL*zM6$;tIF%-E5>(21yOfQ>4A-=`}XcPLz`-B$X zKa)~hDtg@5R{Gb-~U?N{yJ5DuG^o! z5vq)hG{M@k;XIXVeD-(Ev@4vOacL(aoF^C)l39KQ+anGr(5({97xMzEqGL_P=%hZ+ zZ377_f=TO2Y}Py};K_0?Jpc>HwaLd{lkrinNml6^V%5-02t`~ODKw`;Rw3IEriNc* zl_A`DWkA-x1GR|HkU~IbQCVfy7HYu>U|q2bRZqdEFlC2G7@8YaWdj@3@OyRBzK4r} zdNxw-S*xnM_I*UB(f65wz>w);Xi*M9ARnBA093?5hM)aB;xoq&l!^H5=aci+dvMCk z`+3=aT-?l837oGqr-A?ukmI;;Pq0|otYm=?ng;8*rOxq=b1ycmEfBnYLHeTh>9BQ0 zUU=?y9w%{4=%JRd7S!TN0ndBREW)1nXbZenM)dS7fwwz?q>M+_a6*fI@^z^tdH5)ij!st>pGmQlQbFEv7^>8|4yq4Bl;&H;B5h zvFEg+mbr*DmTy=ek@7%&ns}&rZUhhRfl^H9oT{2C=gyaNI)s+ykOMx=x0=k6y557}yG?Sz|bAZRrR$YJ>QJL!J%sk})o3^nq!YO(UuM*+&d-e&l zXoODzeS9^T!q#JWwwkfVMG3kZOIz@geFN%-&SmqijlWPgR&8jBB+@bM%Q6$MEWNx8 zb(0WhYFon!I?@0{!c=JpvfXH;oIO&F6f1577oXmbgA^GC`!T92nAMdds)2e6jP(<> z9XboVtb;w3eYA22>Q%7gYR`TlOPj)+HkcD2`uiZ>8aqb>XuCdYcgdDp?qT705lJqz z4TmF*C1`Hmc`qt8X|Xhs4moEK%q+_sjv@eR338)^9XN3YiU~W@0c+;#Xb(e$tVtrs zpeIIdC5Kp#Eb>_Jm9wWLlRg(qW1UhA-x861%->`$)CZ`70nZu_B#Td(ZIeM*x11$7 z9Gu8T*b=G^fTa6mC!H4LSV^P*3|qk%aN|IsfIXePCQd_-$oY#5f>ZANY&&UWjl7ZC zHhl(*rB8n{QM-~<0e0*UodZQ%%xy9dW#I)3U)<4K1@=YzhW(|tCL-?_7-7Jk#9dx) zoHGwQ`ogqYr|e#!roaBUv)#Y!mcN0oiy?O_nq-Zrd#3=*SX+p3*dT6AX3Ec}=XKGu z9spyOR94QOE!t-bgnl3Atx0-;0W6+XTH7RB(Ff{-T$1#n$k~c1r3cWEc3hp~&l8eh zSYXh4fS+nNClp5dStc*|c_MFl_w(YUInA>87%dW2Y?M-so?IjXbzrMRU^cldrvoJ+ zIyql+P!sD1eA6Q3d>yL~qyS=GA04zoP!8)W*a2yqd9ACp2LmmYm#CDkW8qOuuv%r6 zinzjJsFZVkKJ!xhEG@DB7uus33XO+AWuIwF>g3 zs^Cy46>y&t)l5q*4W0g4bHJ%7? z?=B%Jk1CqMW@4#$#ce^EBGKx^jsjw6bv{Go+-kwaxy2vdLJrVgQzJ0^(XDCSs$=Lg zXyb4NcQr6}nQ1hef`b++*DOh0(?483dt~&ow}ITnkX#Pgx|t)_irLZL(%E_*Hlk1L zjmMNZZI(|SK2O%QE#4mWK=som8QMbr919)eVjYg2wMqqtv6VO9GiOoQqq2?i|p|O1V}l(Q+y97&ha6s>!x_Ub53<`cjHGJaCNW{@$r=Aca~fg zbduw8#0bRM1P)K?zeG4M-di1s2lbL4my51iUgXyTTOOfHp({0s0}`sq;YC{ zF=8=jxMwg0)Te}=3`h5iZJ~#9Cn44r90ZtCuhcNc2>Izdc95jCZNJgqPR{WDU@lG$ z8V!@<(2n>h7Z(wUW|yO|$>DIJ3g)JIw5ypLY}e$luFi2aF*&8A-PmXEx0pI`SZB0I@v&z>&a_#gWz-zXF-n$Z50Mu^ zmsgoT>$LTZm7;r=Z=CrxCNVFgYo9z}bh)Pqn7^B-gqJ?6KN1m(pp#f6bSH7a zSJ*F^6WJD8DytyIfreCdNxXmw#58$UQt|1cDaU{d{A^Ky&Xv=wF;krkhtb%8sm?1% z&v9MoK)y^@R7Rq}vz&l|l8jy|L1IS?d%|&^S26@i?sC`_kLfCMipcpcotr_Iu{E+7 zs7Mybf$Y~kXDh6b0fLK`nKp}=ifLAAJxKJB^@#*6>z3+G)irAJAJUCbM%=|r#b{Y* zpQXB*NeVf(U`h-cf61Uw)+R&~CF32yQ8o&H_lzt}FY#do&} zZ`2A__+mzQ07H|t2(u17$WYjnrHxGnA1o|xN0 zUNxD2x=MLNbu6Ltb}&OS1SvCgFx84Sn2-RDft5x<6i3kGV5V+mv=ixI#(Y&?&?k)m+B0B!R?WWRtwj&VVUhg>3%Ra2>@Fjq|_J0eF@sc}}g zz-Et<*;`aiN)PYXQb{_RT|7L#D3}=Dq7ECCcU0J@x~Ab9?C%hL(MCuOLi-NP$ep1D zF(Xd?Z1y0o-tpAuT~hZD|F}28zqH=zQI|QBRQNXrYbc2ZSRWa*MR{552rkAZI%!Zy z_|ni1v0P(|-IyI1?qX>Z0*<}HIJZ%ckZ{ic@!r_Wt$b~AumpQ zany^$UfhAX1q09l`;{+y5xiLNg0qBB9dnZRsbF^K+7#vitVPZcowGD&xD5*iF<_I% zjG{Q$R3ueiiGs$C?7(!uf#F=75>>+v?o-XGwn)4(?Ke}MMDLcraM-+BpWIgd+^^Td z6+&jr7Oa$e1rVJaPlYBdn?5V;8Hv(+YOpzAwlh4nDJCWnaSxJZVIcb7nuwoI3;XFv zTc#;lrD27#LtRF$;1vW-5paIqP%4UeX#RV8w)_jVrB9<3f)FZK);4fV?_N&Gs)qc-^(ViNtA zuWiE(6J){L=A!<2obE)K};6uT=EJdL__;p`%2M)Zalu*4k~x$WE8Ok)pcNv2myJ#w=TYiHws7BFBTwL&IA_X1x(G9o8P~ z;rpUf9YVh&MvYlNW7JqwSm~#Shgm;kco+%F%mAm90s~lPceoK?x(w$D!X$Jvl3}7Y zq*}*cb`B!yM9231>?FnR zL)mGHJxU0e2f~3LqF}?%8!6c0^DqTld>*5?Ui*IXaDyjdLA88SH7c@vG8BZTC$p^a zmQ-#{cA~PH`T z#thKt8Z;QW`qjFGEw;A~Uu^r;+V{|hEZ)VMGrS9Jig&TeRd?6c{BwX9AEJL(5AD&V z%^}3I5sV6kH#YJJJAbJLrs{rtKXj@aBcN4xtbQcFsp`fE*wq~{*M!lc+y4&DiwCb5 zq`MQ4Mq@HacO#^y9MYW#X^FH3>7Q<7(--r~eMTUHHfyBi3}#mVPKKNYTD9)rwY4Mk zbf@W+GoaIa=nW~go7W|OIRocVsBO&|8i}tM?lZ66BwR*L6!#2y}DCp=^ z1;i)j(XPw_r{@Sb_A;gtITYG@%D3Qdyqc1g%U;3OeRFP4p#(SQY@!FHtS{24sf(Q} zqlQ65RcMFaS;I+e7_t(p29@kE2Wt)^j@D@^NeMiN4RD3+l3Fpz=&U=Mr!jyr=Qh^px>6WdH@)>m8rs=UAVWRY1Zg zW~HtB44IeR9ezumG(!3fD>BX%9Qhzyt|*{=kKNA1#}Lq=L@=C&MP_vWxRGVPG70mk z{?k(UdZSk@J4cL-%=6d>DagO_sJ1x}vBt=FuXD!C%7}80Nak-0+Tuf6wo-aH7f7r2 zDUmwcD}>Hur(3mPd%UORZ!hb;Ht#jpWK)zLcv&u>z)3+sLuZ>@8i#T+{K?? zSN_v~j%>`Rr;M5bX68|EV&>7C@18Xw`cs>}*m~4oe3Tb|)L;CIOL#V82%ZJ3WL@x53rySZnKkVWXHn?bB%P|mBF4{eqlW0_kE)hOWx=2d ztCf*amGs21R=~8XO4VldieDH|TbGQ?yk9O^cA$@%Qq<_%KImZl=*FRxe>7!)`~6KG zeI!EQuQqx1AL6sW-T3U&ZG8IKq^Wg96w9|%Dhc=?2^6xl_LQm%3Ja8wQ7PsTFew(W z22ijEQbj-tqSyx$qELDniv2JvYLTUtLY7tvSz0M%X{ERZtLU~U#9+{o@oI@`n5RR< zj?jICnkmA}q7Ej$CA$N^O!o{ow{v?&UYf2>C?!_`R*M-VRBk8-K*HhN-H{yJt;xZc ztva~5ke_Q?E3pP^IH(${V{Pj?wujk8ST%eCBQ)k#C>1VzEYY%}p62-B(62;SR}E(f z-^6D0O&lG8r=`nlvm)=O7K=V93@wf9Y$6xtGCpxtTqr^ zc3Q*BAI9cWiYB!lUbO9{G9N1$LmH;FF&ug1kZK7qO-=-tu%gsV2rKgxO;6)bt|6=# zAy)=}WNzcK3PB^5t|x$6s%hp!;!5D=zRT-j_VPVH`sTNgne9l)}U`D|Biu}oX-M9+^e@M@zYUJI`q-yw(_%frBRNZr_8lgl3MA*@A zag1p2>`xFV2)z_w2$vCAe18$;<2085W!WDDFW6>-u?J{a0l(*0 z`f7VKIp)8wgEsV`P*!P@ z8CN1QUaMFtAH0uP|EC~YW-*(K_wyCrB%wHeb=oMq62(Af)DB22@(+4tTgfcl$q=4R(xrxC#zEzG!EPTSGuX+|COj{6T{pBW&!%%f;$iTBQ88>$>~)TZEI<=a*8 z>&Zo6vA)Jv`D4l#BgJ{PTQuJwwbcL>I(FV<1uIXMeuin61UzLeJZyd*8SV^(*dzfi z8i>%GaVl!Kdj+ZcEy8$c;3#^iwi8=X2QWAa*pCG$KnnOJK1b1qLs85_rtS3IdMynt zC|l{OBeEut5ZQhXBxG^zFZyuIqIJ)2Jp1hH*F$4n_83X65I_I`z;jKE4BbZhD=`n~ zr?ahAmM3WoTWj-4$zIKSZoT}-k#%^iUA=!@#s&bf!abyO1IfCaAG-H`nA)HxGkNV} zJ{eU5p2Sc5V^uTyxUKMoIT%k%FTo;PP*C(xk)t`d5$MkJVW;BG5_h0uT+MTZ{evqV zz{}nOuAoKSYjf2Jb4&_wol{5vZzyQUO+3!cARw>{0aqX?(*C5r%q3f(a6G7~-AHlE(+yQe=V^i>1c*Nq*#j2a` zVg+9IB)R8f|LxzdlZ-g6Y_z=Px#lsQU5EYA%5V%nU`ya=RQ3((gvllgf$Z{rp zDHbBQ*Mx8XSEsVZ#pa~IxqrBlEG7kLD&~ZR$UzHQhzhV^3>22bLjotbFM$)>mB0z& zO5g;$C2)e;*Cb6={^%SW|DlzqjI694d5o4&GP$=(qF!RJd<9_h;bMi?;zOndNkm!# zVghOv&B|<|^}U7(Y50{MLHz4mp{0fRgj?{Orlz5_YQiBd9qr#4+axYGPvcZU(rO$$ z+CwNLXd4nVBmy=^%O$|vt65aVaz%}cfXHFi9crpXK)q&FM$|A%<0c{?OGlfaF#t|( zf~JRN05Ks>-R;2$#2hqk`N_0b{2~2(V@OZXTm^xaIN}fj>>;s`fNO*RYf@=ZA`GJO z-O{3bDKKzzv%w%5o9klmwZH(;OfWz+yBZ8a{v>4f%L53vaz{YK?dxAMAU2xEzfeFR z6v%w(;9y(en(>4RD0Q@82}Bh1?bFg1kVZ@Rd;en`8{rhn&nyzkIEDIRgO5zuwkWMy zQWwNBC3Qi(wxli+wh^u*Y@_8OY*&)>ezWNPL=%0XF-gj5i~%Af#^AI_g;6vQR^k`I zN-rlNc{%XVS@~R z9H^xem9YjRaT(=gYr4=1QhzC27Xf&J>wa!Jo4VMUMAZ+}BI-uCIz-YD+m)RMJwp+7 zL=Y&V&SGz6=i!&^JQT9?zx-jI(Xmt)jbzy3gF37*-!`Eam3;2yRp}J4kB3QVOyW?2deq5coLcq!5 z1(3@6SM{Y@Xwt|dIC|0a~e#DgxX_Ye*2Gzm=VncZ9g zVfl@G;#>vffRUP3;uBY{rm8=>yhn6WE-kp>7tQ=V@)#*r%pWK#qZ@8)F@N0HV*Z55 zi}~Zm7W1E$X$tSGENw)G9m0Q&SxHCpG__I>QDEykOtGD;v6Yzc0dqNb-;6kq#jOP` z0cqX1p?Sb+@o14R#(Re4fQWky_IQH&Miy|MK8AOzY4+2_3)l-kXxg{lwU$W}+OVplUqW1g>;0?t-hy^#7 zAwvAx4>6`V05PVx11ik3LvR9q9flZFtYD6(I7$R0#Yu%4-jbarIGQ&fWbN|nA)=!B z^@TD71x0In>P!FYeYDtStG)i@=ZUgHPzvJ|w|w@0d-~f*bN64f{tGghufFx$ztw&g zxo%85AsedII)?)yA?!+B21eFc<3vx^bEDYy$T2&-Q1gnXfoH@>uQ4p1 zLSC`cWw;`p)L?7izinq00VumY9znm=Emd}Apuj&Y6pNhhh1VkFi^Z--%|Yki=By(n zi%!p9#sCwpTPtSHsO5B6yIciS)juQq74K3*A6JKNW0^m*$lvXcEEe;R9#c*T(Zrf_ zU@Ghq3z%}&I2Cq^4owNuVJYGPO|Vr6t4*I5b-{t@_`xt2J92Zh)MFebD`q1P8zDMn zxWI;J#C%QbS5v)uo^MvO`IqNT(t>?9q|F0iTw>fhAQW2aB0VPDe9vfC5@` z2L4Q3|H)Bn9($ngXiyAjNfr%v61S-l@|6yg9qhh{Rw4@#?ue zCPt7d{te2Sn+F{A58s(TrmN-bv@-D8y`y*LD@@UI91xzfBLP?T=ag4q!Hn!uNlf8a z@ka9DV?d^Mwybl|Q27Z;tZ?NaKQxo+AjiRAK3~yi@B+obU?hl24z~6$=0COkAn`eN zI$+Vp^*_5e-I3@CSS8sBDdw{(M_Cuhj}4_H2}NH23K6G(7Qw7yj~ zRQ8`zG=Rg3GgGt zRH-+Xn?tlnb$AC^`H#~Ud9d5Od)ec;TvCb>N=u(%QNl~2&<)+&H~tK!yid>Uy9N0!#=ct^eiz1{@g2T} zOmW0k?f&S?fmNvnf_RC*^Bw7_Xj(%-k@yM~>o}!gXQDM>h2Wrq)PN0s7wz!HScW@H z`!8BOz^im9OxmfL?Mz?w>-5ZSE*ri1>P~~R_eO8CL-D#Y>22$lBq7l^dYM|Nco!2y zY#1|9DDsAxqFK#}PZ9YtFW3}u52_)4&mUr748w@gwF&J1ixE;$S67iR2xYRPLCq9Y zLW8XySPnKCE|(cwPpv2P$hsh87q67J(4-56vYilVB@ogl z;0gHd*E+HhR47=($_i1xD6G_pzguA?(VId9$4ZiJY`{v0vSB4jJT_n@i{7x(zMH^G zzB8<}?i@Uusjs8o524ntQ2JgD{U6H$64Gi1R|=* zW|2kDEILdp02)l25I`mtMsK+F#jf_|Rp6>%pdnms=}oM5R;Iz#U^lVaft|tCzMFt6 z-x*x(y9v1R-2`0Sb326V#A>$?Xj}A~t#$>wSF3&6P_+&HC$0)q#h@^OtP^mi9}Zld z-a#fosHgrA3%lhawTaxOiG(z0+l{uk(1D!w!ci{OW1`ePojPYgRb`8zRal!}zoA70 zoszP=q_vqS)E}XAaD&Jw=iQ2i68C*Q(cep6-JUwhaF_S>yutIZ$GJ+4q|i@k7vp^+ zC-()*x;fFQs+YF1)hThDQQsPa>%CLjl?Ai$?p#m1iyPXte#QRM`PlWvde`yy&@t#7 z-O*ONIlBE9q=#8beSr?J zS)8kB>lN+8C;7QEjP-$^RUgDhx9CHapU(Sndb}Ug!+s!LHekNeFtuRWUu zd%mzsFuZQqsaU7H{1wm~MH$^wf-;(b1y^2C&cJPUQ{mv-?B)Spe{U{9^T65AuM3*I zf(g+=M)+_!dmjQeOOE)={7Qaj9_%uEFPCCfA2VS!s3MYl{ryN@)l~K>u8kRVifqyZJYcvV;IBz|FbU=@m%Q@JO*hHF<=KEKd$7g{A8#6 zq|BPldzn0!u}2@cjEt_2(Fo35{?61J7Qy3BzCEL418_uMYxsRMqG+7=TE^1cj&+x6 zGX%NDZF7aopr#SX?q~B;jhzTuP0NG$usMF&>V622Dk`qW-Z^yT(=({8JRxLX56*FV zka8(8-(ZYl{ymuZ!5&84tpB|u;fH}Yd&Fc(NJE42dZ3pu&q}FSp*z!Bg=Jy!ELm<0 zwJkafy?uM8S-yocFd$o$s~I#E1~8(;TylU0fBz;eY-jh2PNM5%i7zTb8?JwH6VgTx zTN-SuoU!woZ{ZLPZ}|IS!|Q68R^F9C%_*PEw1M0@xVP$%eph|bH3xa{ch$Q4wrrw9 zd!g>4vwOlA1+|_4$5x4q#&lSVHgrH?JpdF{4^UL}26h(yl0(^g#4#fLdNCyv3*~CI zfsXUh^-jj2@@k)+>|I-Xvfe@K1`>FyBnbwye@g}+Y$gD}Sa$$S)twuv?s(I5h-GgR zGl*R(yi3K6D&LkB`|54-wX&J)0W9j)Qn)ef4TClQSL}T@8fqq&z4LPgw$mllB9NSOh7e?G zj4Jj^kzw4YPp#hcrr8`_FQ%uPWP1F6^ce(Gdneh&FFD%MD@x{(JmwSD(m`}4WROx~ zLJTw9X2_W%xj!DsKPHQr2n3Q*>p3=^HQo|ysZ_XTSnQ7BW?P95Y!9?aU-h1V6xI_D ziBrR|GHjmjxz%B_63IA1~kqQ^3R3x0*cwO4# zSO;Wa>w;Mo=INkW6)-YjRp?)Z+ldoyWpVibg;fFMAI@tHjJbpfnQ3eaYhd(qDz-At zY^Ca6GZ?R?u9*R5LS4gB`LgPoeK(=5@!c1su3?ptaRwXBX6hOc6c|T{$>lu%h;%~I zAlgU;#z$q5HL5HmeJ;m*8=BqEr|ynvVuxJO$qIzIkOtm$T zYm1&Eaxv471;{Iu8BEO;{j0nwI_NXGHQ@tNN8Xxbb)RJAsTO1ww_yy5Xz0TTW zkJL3Jd87{BONy7vN!cZVXGlVdwHy^DLjwBU|B={Mk!O45Z|%3eI8C$9Cf!fvcAAVO zcGA!a`YFj2lNDptU}6?`?viCBq~aaypbF>263UOHI%_m5-;tiP1ejACWX$c{?;?F- z90N`;2qmFbeUiSI5#o!f2wff~f3{rzZ@GWp9DQG||20zImLD>^8Qkjv-${Gp$I`jk zEJ0~gi<*wm5c|sqsk1+CTw!O!=A}~wJdsu3WLClPHtHJ*WUsv@OFU0)YBe25$Eg75 zY5%=iL(8DFukEBpC*^&ktfiPS47Y9yOPkH;yRQVem0Rc0v zGWh;dmHRj(E-3p0`iTdzAJVlVm8Tt0$@*(|A=hg~CZA{$D3laui=>V=nsj6YPU}Ws znT3Qx4b7D;ATtXIG4xJ0?XuaFR1djlU6yHUuiOJ!EaLNO-S-rA?^CkOWq2+MV0u} z{4Msz;HSZk;y>9jvk!%{s)MHs`hLd0=jjA4d5+;BE=?IOVXb*>s<>a0(8$q8o*1Q{ z;j9{D<0clB^mGqtPGM#p|EiZ zWrU+p*f@nU!cizA9ECE%Q7CL23*|E53j9(=I124kq|iP^3hh&*&^|?q6`Yt9*AT8? zQ3Y%}@zeQQ2p~!M{C`N#8f%pUUYu;?*>|xXIood$5|NO>(^gh=LeCJTB&I#ZNdq3y zBh$NV*OoOCTGoDm+>)KHjK;99ov2 zUhZ)o@foKRB0SZ;;xd9;uMt8e9cd|d zPcD}cO;#poP}y*S!VsW`EQDco@JTao+`CAQNLkf+s^g z!y}c27S~xFw!+oD-mKBB@`pGY`$J?d{mo|i6MtAciX6DSOXrUbGorq0!;3@|Haxrs zF*B(`W@_O*NV0-3N`ojFv`mx?4yN!P%;lO`q(g=GV0w{D0x3We3?T=?8@9wrcxfnh zXPE-IXFrAQ-6axPdw0qAtneQ4AuFPgoWW$osX7uP3V(UpPBa0pMq3(}Mq8-hP1nQ= zjR{@@7mM4ZA{R@Hiva~rl1=22fJ|HYwpc=@6Yg-vtj^m`jJA4+r*Bxw%Rl`q6psFt zsS)2v#dna@Qz@XwMN-m=q@+Sv2|-UvRnaaf)&4fs{tb5dc3nQkJ<-6}5S0kg^YX8M zci7Z09NL;PR8eb6vkZ>CJyj-DotTobvSbE;-su4?^*=!BI2uUqN>GNN+#p}|Ndsjb zEm^|fuwQI*;%zvUqOUyssoGxUEGsWR_c66W$wzR8sXx|7%fet~s zJvU%G=KrEYz^Lid5&0W?r*tNhqlt(X=rleZSbA1v%z?!ZVPrk}oKESQ>{DX`NK&sO zj-X!}6;)%Q9mA~i@{a&g?9(v7`sMl*=Sn?Y1t&R@&8H}vXx)+ZC4~Y)(Yzz(po@KQ z-k6tf1x*u&%PsSvXyd^KkXv;4jIff1|RD^VifhXPnRM`Se&|;y!+eLE@5l1dTA-R7h%T@%;=id!o z(EdgV-zi)dfy~GS&|A(vz*9TVi0fzHopL@Ck6{rQ{jlqh{{VUprMWBl?*ux zT#ZI7w>LJscYQ7?zvE9(5a!Cie~%~7sf>14d-kDeJBV_O8Ptx4#uO@MKq1A5LZ@R; zTzjhQYv2%(efvJ06b1oo#1X9kC%Nbe;&w%5C75diG1${Z`#zei{5L<$d&0H6(njD4 zxmh%URi>1hGSgOkAp`Ny7J7r}Y^D74PyY{T4n#YR)GNu%3JYOlhQ7;*2xm??_KjKM z2y#s*;WubZCSWK-)@go8OGzpjBO`DUbESj~A}=itaHDV$60++SOt;La=7CG(DA%e2 z2rO>>>VQWK*^J8){T1|Q`Q{tSH?OF`79Gqa;A_QXUIR%sBwyGsol|B{aY*a-0$s|q ztaQp;!H(=m^>Fi6C#r|(2!|Pv3}$3p zQEJ>C#WXXkL)>h<%&|>McQ_|W`QfPYMi?=T0iT}>U&8;)Nj%q|T5kaezVOo=;)H_pcik4(r z?R{~+-Iih-`86_ZMXe+SGDZRBpyb)n10+F4N8OCiW>MNNk|03W3^UQf5lpT^)Ts>B z%y9&U;|I`?Awg(tsKUvFoI?{)g+$_xDnn#5RIy)TC=peZeFanj8OKp25vnw5sDia5 zSW@als3IO)M-`ncQ&q~8SNQEsPSkCb?XE;_Kf>-5KS!a^V(kikN>=P67cM~9F+K9-@f;tJK-zTcmlk7$gfc1H5GC=C#zxCYWV+=p)5rLb>> z<~2lTM$>#Hq=B;$(WEPWWBcjFZ=~e`{@h*g;HdabE@H*C_>CPlm&0wKZq99l$Z#2X zgT#5@LcZij3qZp5_yVw51zT+~HOx4a3f~jg*?b?aElW^#gyo~zo8Vv7Ja1rLws9+S zHH(##RN$|vSci={oBbQu%+8<>*vx!M(CFZuf5DK7O zaQpA1BFSh!)ht+ahqA|bgYD7ZK!Jzh8!7N7ys3I)IXj9bl564*ODI>uBm0bHq!&ew z`Ap4Fi9`_Xxu7jI5S1gJTJRVB{=`09r zoQJma&&r_2r`+G2KyJ~+t~WF^{if!?S&$WV-Qg)LMY(h`Ng8gH>X_!-Kd$s}&Z&Rf?ddBzvNzG(3g`1cEq zft||W-?M+OB_WJWk^1xA^pev3PHXQteMvm+%qm%FV4yU#dL(3vU7a$JvyV#SE=j`I z|0}sq*g>{mg`(XKuW7Fsxt3&TqR_oVq~z5`GJR=%?*AFYq+G7>aLVv7D-q_k^Y+tA?OFqkMRCzFhP@)|O&4X&^ULR3vX=1~f?)n(A6L9!3`CmCq#F;$pL~ zdgP3vVXbdIR)9b#s@-@*A>tSBS=SFz`c03_ywf!^uL9h(-rx7-tv2AmhfbFtn5Y)3 zvvrO?%*-@+_l5PAP(CdF$eu=^%~kU&-@>{96Q2DR)>c;jinpjcAHG0#X=~{WuEJ|= zxR_B7A5gO8F+eToyjnGG3?B=wNzVik;-i%`$ZQ3oar=M4>SGCDwjGK9=pEnp{`6RZ z4i-Ol`54B83ip>o8JQ3C+}~=f^#8TeHRO^W4}}@x=5aq+O zdbJ(Tlqe2B9WJ~~(y|2OM$U>a6~3RG>;E59xW3pD%ywY5_A`26IvqsW5)9w3HNz^x z^H)qi2KmFx&IBfl1sPus$+g0`k&zY9-quy}1|57G8kg}Iud~0Dz;O-tUS)n>7|Poxp$zOyQ@!m1p$USSP-z+D@NKA$J9wAG0<4fK}GcyM$JCj zuoQWU@beqbHL5ofzwta-j-h;5?wBr}9Y!=nnc!^F&V-5XN^lWTSrClsKoo~04OXKD zHX|#2hu%WbdyEw)=&@y*AWwzwlmAE(H=+)dL80sH9d;w&ROxm}5pAmM|3y|MW*9mJ zw0)Rq*$;$7&g{n>2Eth*jp~n2NYTIvCKMx}vWqy(Y;ctc9Wv0NJ%J8B60KuHhp`dY zhi6z}<8rJ(s?xYn8EIB@t!iKR(7x<>^b9LRxsB3xakn~^Q!4QpsJJ%kiZ&}5k_dAo z)#*f%q}hn`p31E^N{f&q<$T%FBG?pSSC#sRkwi*UQ^}A51(>~$ zf*~wZjHg9Fy}F~4Kn|Ii?S*WkI#o-P1iMIBeiW!vDs+4zMNdMU3{|L0*CZyo`AKPF zm}ps;>Wo-Ea+4vjk9;cCnK40@-kMb3(D_W_;^3-V6kIMdix6b(zkpIs2Z4CxU?#;X z7@!x8S$QO*pkkT!e~?CppH$zN)+<^28YMgPG(nJM2_nEqb~POESe7a%&l{9~|Nm7e zlZ=BCrt2S2L+3%R7Pbd{mlS9+%h})L#~~hdS|ytfm<3%0;Mq5Y)J>wS6_`^KlW5)H ziniVVgCU}r5U1~qx?*6nR}qhB=tUy2JUkie-wX5sebo#xzQ@TnaOl0yunr+Q6k{Zo zURnQBC$UH#!kkGGEABa@0dQ1990)%`MBLhi9{ zp{#!fvkn3zZ*0ulEoHs}01g0|3uH%OP-x1Z(PF?n^FodXI#Tkn;iAhJ1DP0|3p=&Z z4PCGmJJ@7&Re~uR5DOW)NUMfD{Sl~Fr6g&(F^%<+R7{~}OhYh|G0o`-g{>xLU#rO& zyf(SAs3sEM{_U=;yV1~AGaFa{7f{g%Mp=YJ?67yoEJAKJ;Fo0)TFw-6$1k12N}*F& zDfVMMpg4eXKyin13SE=gpyx2GW?LtoNLKE~`6hAH`D17}u>PQ=Y3=fbOPm#P33+}w z`xpfQ^9sdd^aKKypKhO*lsokVpp=YlDFLJ3YE*;?LvV#MqbI_j%5>i6T4Kd)cqDyc$pdoTn;OMwbM^;SrSILME_HHGl-?F?21*6xq< z09%RuLKDk>=B?-iDWFG>;JWDFbNlVLA9>8%>g(>pCA;-#Y+jYV`29{`Fk;zCM62lk zAVk53gM38r4?j3>Jfe9M0>id4g9k602)(+xnv$%Ev_um}_^}^jihq*DbdDvjbK++xA#7Uf#BRpW97QuiM3~>@5PR2uQ9>JL~ z69S|@>I;d#-+!%r&ONtV@`Er_m8p?R+V{NnbM5tBYfB{&#yTf?LJA9{7#52+g!o#h z$rZjzthT+)fnEF_#!X1~k#Ft0S^vt8EQO*}UuCtg6nj#B#eG_fUoEmYrhdxitJTrK zihJfPOkx1V$YAm7^^4!AE)+m^;y}OlN}%;C+_50>)}1AsW_|AQw{#+nmhQ^rv(&9hf!MQrUm~Y==Yznze~+J+Dxh}9 zLUCmy4(cUZ0taaq&{OKqY(rS)3I)RyAI6_@XPOk5b^=BSbpe0C5s|=pS}s~K|H964 zqfBAver8dxFdCg9;t-=7ggPPZn2$^Dg)8cG?*)CtxT4=eujl2 _MkUL0oh+{4v# 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