From a7540c87d142470e6514823be5ec7bfe7c67cda6 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Fri, 7 Oct 2022 00:44:55 -0500 Subject: [PATCH] CustomControls configuring example Co-authored-by: sigonasr2 --- C++ProjectTemplate | Bin 539152 -> 548024 bytes C++ProjectTemplate.html | 76 +++++++++++++++++++++++++++++++++- C++ProjectTemplate.js | 2 +- C++ProjectTemplate.wasm | Bin 300705 -> 301913 bytes main.cpp | 89 ++++++++++++++++++++++++++++++++-------- 5 files changed, 147 insertions(+), 20 deletions(-) diff --git a/C++ProjectTemplate b/C++ProjectTemplate index f6108ac4161f08f1fd2cf458bc663bf6fda90bff..66be2a1b3d4b5571266d66a3dd35f1c70a706e4a 100755 GIT binary patch delta 158813 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 diff --git a/C++ProjectTemplate.html b/C++ProjectTemplate.html index 9add032..de51b65 100644 --- a/C++ProjectTemplate.html +++ b/C++ProjectTemplate.html @@ -1 +1,75 @@ -Emscripten-Generated Codeimage/svg+xml

Downloading...
Resize canvasLock/hide mouse pointer    
\ No newline at end of file + + + + + + + + Emscripten-Generated Code + + + + + + + + + + diff --git a/C++ProjectTemplate.js b/C++ProjectTemplate.js index 497bb5a..1b053e0 100644 --- a/C++ProjectTemplate.js +++ b/C++ProjectTemplate.js @@ -1 +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 scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=()=>{if(!nodePath){fs=require("fs");nodePath=require("path")}};read_=function shell_read(filename,binary){requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(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",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}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=""}{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)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var POINTER_SIZE=4;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function 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}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){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;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 stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}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;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="C++ProjectTemplate.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"env":asmLibraryArg,"wasi_snapshot_preview1":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["memory"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["__indirect_function_table"];addOnInit(Module["asm"]["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={38620:()=>{window.onunload=Module._olc_OnPageUnload},38664:($0,$1)=>{Module._olc_EmscriptenShellCss="width: 100%; height: 70vh; margin-left: auto; margin-right: auto;";Module._olc_WindowAspectRatio=$0/$1;Module.canvas.parentNode.addEventListener("resize",function(e){if(e.defaultPrevented){e.stopPropagation();return}var viewWidth=e.detail.width;var viewHeight=e.detail.width/Module._olc_WindowAspectRatio;if(viewHeight>e.detail.height){viewHeight=e.detail.height;viewWidth=e.detail.height*Module._olc_WindowAspectRatio}if(Module.canvas.parentNode.className=="emscripten_border")Module.canvas.parentNode.style.cssText=Module._olc_EmscriptenShellCss+" width: "+viewWidth.toString()+"px; height: "+viewHeight.toString()+"px;";Module.canvas.setAttribute("width",viewWidth);Module.canvas.setAttribute("height",viewHeight);if(document.fullscreenElement!=null){var top=(e.detail.height-viewHeight)/2;var left=(e.detail.width-viewWidth)/2;Module.canvas.style.position="fixed";Module.canvas.style.top=top.toString()+"px";Module.canvas.style.left=left.toString()+"px";Module.canvas.style.width="";Module.canvas.style.height=""}Module._olc_PGE_UpdateWindowSize(viewWidth,viewHeight);Module.canvas.focus();e.stopPropagation()});Module._olc_ResizeCanvas=function(){setTimeout(function(){if(Module.canvas.parentNode.className=="emscripten_border")Module.canvas.parentNode.style.cssText=Module._olc_EmscriptenShellCss;Module.canvas.style.cssText="width: 100%; height: 100%; outline: none;";var resizeEvent=new CustomEvent("resize",{detail:{width:Module.canvas.clientWidth,height:Module.canvas.clientHeight},bubbles:true,cancelable:true});Module.canvas.dispatchEvent(resizeEvent)},50)};document.body.style.cssText+=" overscroll-behavior-y: contain;";if(Module.canvas.parentNode.className=="emscripten_border"){document.body.style.margin="0";Module.canvas.parentNode.style.cssText=Module._olc_EmscriptenShellCss}Module._olc_ResizeCanvas();var resizeObserver=new ResizeObserver(function(entries){Module._olc_ResizeCanvas()}).observe(Module.canvas.parentNode);var mutationObserver=new MutationObserver(function(mutationsList,observer){for(var i=0;i0){callbacks.shift()(Module)}}function demangle(func){return func}function 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+"]"})}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function jsStackTrace(){var error=new Error;if(!error.stack){try{throw new Error}catch(e){error=e}if(!error.stack){return"(no stack trace available)"}}return error.stack.toString()}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}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_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};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_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};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;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}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,0);return PATH.normalize(paths.join("/"))},join2:(l,r)=>{return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){var randomBuffer=new Uint8Array(1);return()=>{crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return()=>crypto_module["randomBytes"](1)[0]}catch(e){}}return()=>abort("randomDevice")}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;i0?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 TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.fsync(stream.tty)},fsync:function(stream){stream.tty.ops.fsync(stream.tty)},read:function(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){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}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(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:function(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:function(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:function(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:function(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:function(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:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(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:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(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:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{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={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(FS.cwd(),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.normalizeArray(path.split("/").filter(p=>!!p),false);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)=>{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},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},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:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get:function(){return this.shared.position},set:function(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);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){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},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)=>{if(!stream||!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 random_device=getRandomDevice();FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);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.getStream(fd);if(!stream)throw new FS.ErrnoError(8);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)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};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}},init:(input,output,error)=>{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;for(var i=0;i{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};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);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},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(Browser.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)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=()=>{out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=()=>{ok++;if(ok+fail==total)finish()};putRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(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+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;tempI64=[Math.floor(stat.atime.getTime()/1e3)>>>0,(tempDouble=Math.floor(stat.atime.getTime()/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAP32[buf+64>>2]=0;tempI64=[Math.floor(stat.mtime.getTime()/1e3)>>>0,(tempDouble=Math.floor(stat.mtime.getTime()/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAP32[buf+80>>2]=0;tempI64=[Math.floor(stat.ctime.getTime()/1e3)>>>0,(tempDouble=Math.floor(stat.ctime.getTime()/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];HEAP32[buf+96>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+104>>2]=tempI64[0],HEAP32[buf+108>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};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}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.get();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 instanceof FS.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:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.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 instanceof FS.ErrnoError))throw e;return-e.errno}}function __emscripten_date_now(){return Date.now()}var nowIsMonotonic=true;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function __emscripten_throw_longjmp(){throw Infinity}function _abort(){abort("")}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){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 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);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,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=()=>{var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=()=>performance.now();function _proc_exit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}function exitJS(status,implicit){EXITSTATUS=status;_proc_exit(status)}function maybeExit(){}function 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}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");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()}Browser.mainLoop.runIter(browserIterationFunc);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"}}function callUserCallback(func){if(ABORT){return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function 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 Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){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:function(){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;Browser.URLObject.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=event=>{out("Image "+url+" could not be decoded");if(onerror)onerror()};img.src=url};Module["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)}function fail(){if(done)return;done=true;preloadedAudios[name]=new Audio;if(onerror)onerror()}if(Browser.hasBlobConstructor){try{var b=new Blob([byteArray],{type:Browser.getMimetype(name)})}catch(e){return fail()}var url=Browser.URLObject.createObjectURL(b);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(function(){finish(audio)},1e4)}else{return fail()}};Module["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)}}},handledByPreloadPlugin:function(byteArray,fullname,finish,onerror){Browser.init();var handled=false;Module["preloadPlugins"].forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled},createContext:function(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:2};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(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(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()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(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:function(func){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(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:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(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:function(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;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:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){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:function(){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:function(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>2];if(param==12321){var alphaSize=HEAP32[attribList+4>>2];EGL.contextAttributes.alpha=alphaSize>0}else if(param==12325){var depthSize=HEAP32[attribList+4>>2];EGL.contextAttributes.depth=depthSize>0}else if(param==12326){var stencilSize=HEAP32[attribList+4>>2];EGL.contextAttributes.stencil=stencilSize>0}else if(param==12337){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples>0}else if(param==12338){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples==1}else if(param==12544){var requestedPriority=HEAP32[attribList+4>>2];EGL.contextAttributes.lowLatency=requestedPriority!=12547}else if(param==12344){break}attribList+=8}}if((!config||!config_size)&&!numConfigs){EGL.setErrorCode(12300);return 0}if(numConfigs){HEAP32[numConfigs>>2]=1}if(config&&config_size>0){HEAP32[config>>2]=62002}EGL.setErrorCode(12288);return 1}};function _eglChooseConfig(display,attrib_list,configs,config_size,numConfigs){return EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs)}function __webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(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:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(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=canvas.getContext("webgl2",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(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:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(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:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.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(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _eglCreateContext(display,config,hmm,contextAttribs){if(display!=62e3){EGL.setErrorCode(12296);return 0}var glesContextVersion=1;for(;;){var param=HEAP32[contextAttribs>>2];if(param==12440){glesContextVersion=HEAP32[contextAttribs+4>>2]}else if(param==12344){break}else{EGL.setErrorCode(12292);return 0}contextAttribs+=8}if(glesContextVersion<2||glesContextVersion>3){EGL.setErrorCode(12293);return 0}EGL.contextAttributes.majorVersion=glesContextVersion-1;EGL.contextAttributes.minorVersion=0;EGL.context=GL.createContext(Module["canvas"],EGL.contextAttributes);if(EGL.context!=0){EGL.setErrorCode(12288);GL.makeContextCurrent(EGL.context);Module.useWebGL=true;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});GL.makeContextCurrent(null);return 62004}else{EGL.setErrorCode(12297);return 0}}function _eglCreateWindowSurface(display,config,win,attrib_list){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}EGL.setErrorCode(12288);return 62006}function _eglDestroyContext(display,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}GL.deleteContext(EGL.context);EGL.setErrorCode(12288);if(EGL.currentContext==context){EGL.currentContext=0}return 1}function _eglDestroySurface(display,surface){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 1}if(EGL.currentReadSurface==surface){EGL.currentReadSurface=0}if(EGL.currentDrawSurface==surface){EGL.currentDrawSurface=0}EGL.setErrorCode(12288);return 1}function _eglGetDisplay(nativeDisplayType){EGL.setErrorCode(12288);return 62e3}function _eglInitialize(display,majorVersion,minorVersion){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(majorVersion){HEAP32[majorVersion>>2]=1}if(minorVersion){HEAP32[minorVersion>>2]=4}EGL.defaultDisplayInitialized=true;EGL.setErrorCode(12288);return 1}function _eglMakeCurrent(display,draw,read,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=0&&context!=62004){EGL.setErrorCode(12294);return 0}if(read!=0&&read!=62006||draw!=0&&draw!=62006){EGL.setErrorCode(12301);return 0}GL.makeContextCurrent(context?EGL.context:null);EGL.currentContext=context;EGL.currentDrawSurface=draw;EGL.currentReadSurface=read;EGL.setErrorCode(12288);return 1}function _eglSwapBuffers(){if(!EGL.defaultDisplayInitialized){EGL.setErrorCode(12289)}else if(!Module.ctx){EGL.setErrorCode(12290)}else if(Module.ctx.isContextLost()){EGL.setErrorCode(12302)}else{EGL.setErrorCode(12288);return 1}return 0}function _eglSwapInterval(display,interval){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval);EGL.setErrorCode(12288);return 1}function _eglTerminate(display){if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.defaultDisplayInitialized=false;EGL.setErrorCode(12288);return 1}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){buf+=ch!=105&buf;readAsmConstArgsArray.push(ch==105?HEAP32[buf]:HEAPF64[buf++>>1]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_cancel_main_loop(){Browser.mainLoop.pause();Browser.mainLoop.func=null}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let 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=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(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(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):undefined);return domElement}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function registerFocusEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.focusEvent)JSEvents.focusEvent=_malloc(256);var focusEventHandlerFunc=function(ev){var e=ev||event;var nodeName=JSEvents.getNodeNameForTarget(e.target);var id=e.target.id?e.target.id:"";var focusEvent=JSEvents.focusEvent;stringToUTF8(nodeName,focusEvent+0,128);stringToUTF8(id,focusEvent+128,128);if(getWasmTableEntry(callbackfunc)(eventTypeId,focusEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:focusEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_blur_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,"blur",targetThread);return 0}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function _emscripten_set_focus_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,"focus",targetThread);return 0}function registerKeyEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(176);var keyEventHandlerFunc=function(e){var keyEventData=JSEvents.keyEvent;HEAPF64[keyEventData>>3]=e.timeStamp;var idx=keyEventData>>2;HEAP32[idx+2]=e.location;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;HEAP32[idx+7]=e.repeat;HEAP32[idx+8]=e.charCode;HEAP32[idx+9]=e.keyCode;HEAP32[idx+10]=e.which;stringToUTF8(e.key||"",keyEventData+44,32);stringToUTF8(e.code||"",keyEventData+76,32);stringToUTF8(e.char||"",keyEventData+108,32);stringToUTF8(e.locale||"",keyEventData+140,32);if(getWasmTableEntry(callbackfunc)(eventTypeId,keyEventData,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:keyEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_keydown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread);return 0}function _emscripten_set_keyup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread);return 0}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop){var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function fillMouseEventData(eventStruct,e,target){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}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(getWasmTableEntry(callbackfunc)(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_mousedown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread);return 0}function _emscripten_set_mousemove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread);return 0}function _emscripten_set_mouseup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(getWasmTableEntry(callbackfunc)(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function registerWheelEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=function(ev){var e=ev||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(getWasmTableEntry(callbackfunc)(eventTypeId,wheelEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:wheelHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_wheel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target=findEventTarget(target);if(typeof target.onwheel!="undefined"){registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread);return 0}else{return-1}}function _emscripten_set_window_title(title){setWindowTitle(UTF8ToString(title))}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function 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}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(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 instanceof FS.ErrnoError))throw e;return e.errno}}function 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 instanceof FS.ErrnoError))throw e;return e.errno}}function convertI32PairToI53Checked(lo,hi){return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var offset=convertI32PairToI53Checked(offset_low,offset_high);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.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>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 instanceof FS.ErrnoError))throw e;return e.errno}}function 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}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 instanceof FS.ErrnoError))throw e;return e.errno}}var tempRet0=0;function getTempRet0(){return tempRet0}var _getTempRet0=getTempRet0;function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindBuffer(target,buffer){if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBindVertexArray(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){if(true){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)}}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _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}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _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}}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _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}function _glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function 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}function __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}function 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}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _glReadPixels(x,y,width,height,format,type,pixels){if(true){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(true){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)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _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 setTempRet0(val){tempRet0=val}var _setTempRet0=setTempRet0;function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __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];function __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}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[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":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(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":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(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":function(date){return date.tm_zone},"%%":function(){return"%"}};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}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function uleb128Encode(n,target){if(n<128){target.push(n)}else{target.push(n%128|128,n>>7)}}function sigToWasmTypes(sig){var typeNames={"i":"i32","j":"i64","f":"f32","d":"f64","p":"i32"};var type={parameters:[],results:sig[0]=="v"?[]:[typeNames[sig[0]]]};for(var i=1;i{var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i0){return}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(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); +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 scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=()=>{if(!nodePath){fs=require("fs");nodePath=require("path")}};read_=function shell_read(filename,binary){requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(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",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}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=""}{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)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var POINTER_SIZE=4;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function 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}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){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;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 stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}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;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="C++ProjectTemplate.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"env":asmLibraryArg,"wasi_snapshot_preview1":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["memory"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["__indirect_function_table"];addOnInit(Module["asm"]["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={38684:()=>{window.onunload=Module._olc_OnPageUnload},38728:($0,$1)=>{Module._olc_EmscriptenShellCss="width: 100%; height: 70vh; margin-left: auto; margin-right: auto;";Module._olc_WindowAspectRatio=$0/$1;Module.canvas.parentNode.addEventListener("resize",function(e){if(e.defaultPrevented){e.stopPropagation();return}var viewWidth=e.detail.width;var viewHeight=e.detail.width/Module._olc_WindowAspectRatio;if(viewHeight>e.detail.height){viewHeight=e.detail.height;viewWidth=e.detail.height*Module._olc_WindowAspectRatio}if(Module.canvas.parentNode.className=="emscripten_border")Module.canvas.parentNode.style.cssText=Module._olc_EmscriptenShellCss+" width: "+viewWidth.toString()+"px; height: "+viewHeight.toString()+"px;";Module.canvas.setAttribute("width",viewWidth);Module.canvas.setAttribute("height",viewHeight);if(document.fullscreenElement!=null){var top=(e.detail.height-viewHeight)/2;var left=(e.detail.width-viewWidth)/2;Module.canvas.style.position="fixed";Module.canvas.style.top=top.toString()+"px";Module.canvas.style.left=left.toString()+"px";Module.canvas.style.width="";Module.canvas.style.height=""}Module._olc_PGE_UpdateWindowSize(viewWidth,viewHeight);Module.canvas.focus();e.stopPropagation()});Module._olc_ResizeCanvas=function(){setTimeout(function(){if(Module.canvas.parentNode.className=="emscripten_border")Module.canvas.parentNode.style.cssText=Module._olc_EmscriptenShellCss;Module.canvas.style.cssText="width: 100%; height: 100%; outline: none;";var resizeEvent=new CustomEvent("resize",{detail:{width:Module.canvas.clientWidth,height:Module.canvas.clientHeight},bubbles:true,cancelable:true});Module.canvas.dispatchEvent(resizeEvent)},50)};document.body.style.cssText+=" overscroll-behavior-y: contain;";if(Module.canvas.parentNode.className=="emscripten_border"){document.body.style.margin="0";Module.canvas.parentNode.style.cssText=Module._olc_EmscriptenShellCss}Module._olc_ResizeCanvas();var resizeObserver=new ResizeObserver(function(entries){Module._olc_ResizeCanvas()}).observe(Module.canvas.parentNode);var mutationObserver=new MutationObserver(function(mutationsList,observer){for(var i=0;i0){callbacks.shift()(Module)}}function demangle(func){return func}function 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+"]"})}function dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function jsStackTrace(){var error=new Error;if(!error.stack){try{throw new Error}catch(e){error=e}if(!error.stack){return"(no stack trace available)"}}return error.stack.toString()}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}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_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};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_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};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;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}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,0);return PATH.normalize(paths.join("/"))},join2:(l,r)=>{return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){var randomBuffer=new Uint8Array(1);return()=>{crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return()=>crypto_module["randomBytes"](1)[0]}catch(e){}}return()=>abort("randomDevice")}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;i0?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 TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.fsync(stream.tty)},fsync:function(stream){stream.tty.ops.fsync(stream.tty)},read:function(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){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}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(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:function(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:function(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:function(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:function(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:function(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:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(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:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(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:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{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={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(FS.cwd(),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.normalizeArray(path.split("/").filter(p=>!!p),false);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)=>{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},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},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:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get:function(){return this.shared.position},set:function(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);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){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},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)=>{if(!stream||!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 random_device=getRandomDevice();FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);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.getStream(fd);if(!stream)throw new FS.ErrnoError(8);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)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};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}},init:(input,output,error)=>{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;for(var i=0;i{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};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);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},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(Browser.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)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=()=>{out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=()=>{ok++;if(ok+fail==total)finish()};putRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(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+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;tempI64=[Math.floor(stat.atime.getTime()/1e3)>>>0,(tempDouble=Math.floor(stat.atime.getTime()/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAP32[buf+64>>2]=0;tempI64=[Math.floor(stat.mtime.getTime()/1e3)>>>0,(tempDouble=Math.floor(stat.mtime.getTime()/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAP32[buf+80>>2]=0;tempI64=[Math.floor(stat.ctime.getTime()/1e3)>>>0,(tempDouble=Math.floor(stat.ctime.getTime()/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];HEAP32[buf+96>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+104>>2]=tempI64[0],HEAP32[buf+108>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};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}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.get();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 instanceof FS.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:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.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 instanceof FS.ErrnoError))throw e;return-e.errno}}function __emscripten_date_now(){return Date.now()}var nowIsMonotonic=true;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function __emscripten_throw_longjmp(){throw Infinity}function _abort(){abort("")}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){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 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);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,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=()=>{var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=()=>performance.now();function _proc_exit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}function exitJS(status,implicit){EXITSTATUS=status;_proc_exit(status)}function maybeExit(){}function 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}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");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()}Browser.mainLoop.runIter(browserIterationFunc);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"}}function callUserCallback(func){if(ABORT){return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function 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 Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){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:function(){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;Browser.URLObject.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=event=>{out("Image "+url+" could not be decoded");if(onerror)onerror()};img.src=url};Module["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)}function fail(){if(done)return;done=true;preloadedAudios[name]=new Audio;if(onerror)onerror()}if(Browser.hasBlobConstructor){try{var b=new Blob([byteArray],{type:Browser.getMimetype(name)})}catch(e){return fail()}var url=Browser.URLObject.createObjectURL(b);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(function(){finish(audio)},1e4)}else{return fail()}};Module["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)}}},handledByPreloadPlugin:function(byteArray,fullname,finish,onerror){Browser.init();var handled=false;Module["preloadPlugins"].forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled},createContext:function(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:2};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(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(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()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(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:function(func){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(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:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(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:function(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;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:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){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:function(){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:function(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>2];if(param==12321){var alphaSize=HEAP32[attribList+4>>2];EGL.contextAttributes.alpha=alphaSize>0}else if(param==12325){var depthSize=HEAP32[attribList+4>>2];EGL.contextAttributes.depth=depthSize>0}else if(param==12326){var stencilSize=HEAP32[attribList+4>>2];EGL.contextAttributes.stencil=stencilSize>0}else if(param==12337){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples>0}else if(param==12338){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples==1}else if(param==12544){var requestedPriority=HEAP32[attribList+4>>2];EGL.contextAttributes.lowLatency=requestedPriority!=12547}else if(param==12344){break}attribList+=8}}if((!config||!config_size)&&!numConfigs){EGL.setErrorCode(12300);return 0}if(numConfigs){HEAP32[numConfigs>>2]=1}if(config&&config_size>0){HEAP32[config>>2]=62002}EGL.setErrorCode(12288);return 1}};function _eglChooseConfig(display,attrib_list,configs,config_size,numConfigs){return EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs)}function __webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(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:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(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=canvas.getContext("webgl2",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(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:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(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:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.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(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _eglCreateContext(display,config,hmm,contextAttribs){if(display!=62e3){EGL.setErrorCode(12296);return 0}var glesContextVersion=1;for(;;){var param=HEAP32[contextAttribs>>2];if(param==12440){glesContextVersion=HEAP32[contextAttribs+4>>2]}else if(param==12344){break}else{EGL.setErrorCode(12292);return 0}contextAttribs+=8}if(glesContextVersion<2||glesContextVersion>3){EGL.setErrorCode(12293);return 0}EGL.contextAttributes.majorVersion=glesContextVersion-1;EGL.contextAttributes.minorVersion=0;EGL.context=GL.createContext(Module["canvas"],EGL.contextAttributes);if(EGL.context!=0){EGL.setErrorCode(12288);GL.makeContextCurrent(EGL.context);Module.useWebGL=true;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});GL.makeContextCurrent(null);return 62004}else{EGL.setErrorCode(12297);return 0}}function _eglCreateWindowSurface(display,config,win,attrib_list){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}EGL.setErrorCode(12288);return 62006}function _eglDestroyContext(display,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}GL.deleteContext(EGL.context);EGL.setErrorCode(12288);if(EGL.currentContext==context){EGL.currentContext=0}return 1}function _eglDestroySurface(display,surface){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 1}if(EGL.currentReadSurface==surface){EGL.currentReadSurface=0}if(EGL.currentDrawSurface==surface){EGL.currentDrawSurface=0}EGL.setErrorCode(12288);return 1}function _eglGetDisplay(nativeDisplayType){EGL.setErrorCode(12288);return 62e3}function _eglInitialize(display,majorVersion,minorVersion){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(majorVersion){HEAP32[majorVersion>>2]=1}if(minorVersion){HEAP32[minorVersion>>2]=4}EGL.defaultDisplayInitialized=true;EGL.setErrorCode(12288);return 1}function _eglMakeCurrent(display,draw,read,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=0&&context!=62004){EGL.setErrorCode(12294);return 0}if(read!=0&&read!=62006||draw!=0&&draw!=62006){EGL.setErrorCode(12301);return 0}GL.makeContextCurrent(context?EGL.context:null);EGL.currentContext=context;EGL.currentDrawSurface=draw;EGL.currentReadSurface=read;EGL.setErrorCode(12288);return 1}function _eglSwapBuffers(){if(!EGL.defaultDisplayInitialized){EGL.setErrorCode(12289)}else if(!Module.ctx){EGL.setErrorCode(12290)}else if(Module.ctx.isContextLost()){EGL.setErrorCode(12302)}else{EGL.setErrorCode(12288);return 1}return 0}function _eglSwapInterval(display,interval){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval);EGL.setErrorCode(12288);return 1}function _eglTerminate(display){if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.defaultDisplayInitialized=false;EGL.setErrorCode(12288);return 1}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){buf+=ch!=105&buf;readAsmConstArgsArray.push(ch==105?HEAP32[buf]:HEAPF64[buf++>>1]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_cancel_main_loop(){Browser.mainLoop.pause();Browser.mainLoop.func=null}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let 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=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(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(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):undefined);return domElement}function registerFocusEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.focusEvent)JSEvents.focusEvent=_malloc(256);var focusEventHandlerFunc=function(ev){var e=ev||event;var nodeName=JSEvents.getNodeNameForTarget(e.target);var id=e.target.id?e.target.id:"";var focusEvent=JSEvents.focusEvent;stringToUTF8(nodeName,focusEvent+0,128);stringToUTF8(id,focusEvent+128,128);if(getWasmTableEntry(callbackfunc)(eventTypeId,focusEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:focusEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_blur_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,"blur",targetThread);return 0}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function _emscripten_set_focus_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,"focus",targetThread);return 0}function registerKeyEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(176);var keyEventHandlerFunc=function(e){var keyEventData=JSEvents.keyEvent;HEAPF64[keyEventData>>3]=e.timeStamp;var idx=keyEventData>>2;HEAP32[idx+2]=e.location;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;HEAP32[idx+7]=e.repeat;HEAP32[idx+8]=e.charCode;HEAP32[idx+9]=e.keyCode;HEAP32[idx+10]=e.which;stringToUTF8(e.key||"",keyEventData+44,32);stringToUTF8(e.code||"",keyEventData+76,32);stringToUTF8(e.char||"",keyEventData+108,32);stringToUTF8(e.locale||"",keyEventData+140,32);if(getWasmTableEntry(callbackfunc)(eventTypeId,keyEventData,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:keyEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_keydown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread);return 0}function _emscripten_set_keyup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread);return 0}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop){var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function fillMouseEventData(eventStruct,e,target){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}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(getWasmTableEntry(callbackfunc)(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_mousedown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread);return 0}function _emscripten_set_mousemove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread);return 0}function _emscripten_set_mouseup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(getWasmTableEntry(callbackfunc)(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function registerWheelEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=function(ev){var e=ev||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(getWasmTableEntry(callbackfunc)(eventTypeId,wheelEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:wheelHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_wheel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target=findEventTarget(target);if(typeof target.onwheel!="undefined"){registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread);return 0}else{return-1}}function _emscripten_set_window_title(title){setWindowTitle(UTF8ToString(title))}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function 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}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(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 instanceof FS.ErrnoError))throw e;return e.errno}}function 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 instanceof FS.ErrnoError))throw e;return e.errno}}function convertI32PairToI53Checked(lo,hi){return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var offset=convertI32PairToI53Checked(offset_low,offset_high);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.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>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 instanceof FS.ErrnoError))throw e;return e.errno}}function 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}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 instanceof FS.ErrnoError))throw e;return e.errno}}var tempRet0=0;function getTempRet0(){return tempRet0}var _getTempRet0=getTempRet0;function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindBuffer(target,buffer){if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBindVertexArray(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){if(true){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)}}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _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}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _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}}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _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}function _glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function 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}function __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}function 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}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _glReadPixels(x,y,width,height,format,type,pixels){if(true){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(true){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)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _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 setTempRet0(val){tempRet0=val}var _setTempRet0=setTempRet0;function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __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];function __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}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[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":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(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":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(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":function(date){return date.tm_zone},"%%":function(){return"%"}};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}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function uleb128Encode(n,target){if(n<128){target.push(n)}else{target.push(n%128|128,n>>7)}}function sigToWasmTypes(sig){var typeNames={"i":"i32","j":"i64","f":"f32","d":"f64","p":"i32"};var type={parameters:[],results:sig[0]=="v"?[]:[typeNames[sig[0]]]};for(var i=1;i{var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i0){return}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(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/C++ProjectTemplate.wasm b/C++ProjectTemplate.wasm index 2263b1dc6918bd2216e3cd3b6a7681ab391a1ada..da925f5a55e76aaf89e2a1d37f70f2d50410cb13 100755 GIT binary patch delta 52912 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 delta 52400 zcmce<31Ae(@;^S^J-gY>=9oYrfdrUc0)+bxx6puipn^VcMMOms374Eh#U$6f*PO5iwcU00)qPgRL|_@kofhzF(;TuCA`Gu0E#b zz}vOvEvc2)GhVyd9aMi<@MeAaMNe_&UAd1R;~l+X_+9tb9e&5Ce&dD@n=t&E5qI4- z=DvU3Gw$|bw+`17Faf|zhm9QG@1AkvhTkd#Hp1Ts`8P_z<7%%veN7}H%ouh29h zbl~?g`s3085yBl5F{sGJT@2t@uO~(zMt?YW=^6uO;n5jqTB44)R$JFK)TL$WUcGtU zx-D8J)&&+#Yo%#PDM>M{V>IDTaA`4Zd})MGa0CuDM?959XfVG368&d za%V7TmakuWjEkXdAXsA>2u0CkJmTWxG#(TB+1D@V%~CacL66{?SL@=Aaq0BmqcN6% zmZ3FV^JuPAZ;U71+|_yV`I@;@FJ0Gp*8Uhy5;<|p8H~U z@?`hu;iJcldw^?6Lxeiuy?ixJoj^S6`HEIlG z>A_Hgg!=5EP}hW}?6uI)gtq)w7J4}$CHSK|Zv2E{w~oAG_;{2ZuKnbWRdG3L)R|W7|CI$WNRmbZlglli0o|bl-s))QZAYAC-FFYoK5_}y^9sFEv%5| z@TKfY_8YtPmJh_o?16nemu=yBY$kh#h1e|S4>Znb(zID-^A;^zwQke4-3j(HyYi~5 z@4tCiFo#Xp#y{X6^08xg@Q?V%d@uh5|65MFW9+!`6Yjb5;mPa~_9$x0Wlyka>N$Qo z8~+r0n$2L(vhm|*v(V>>X7in_nC)PT+3Rd8`-qjWFWJA@SL`tRk^RKZvftSs>`%6k zzs7Sz&5g$1Xq};}jK2EV55=6&3r2f3C-k9l0UH~tlVk>|#$2|?wb%8DYoBYs>wxQ1 z*Fo14u0yWRT%WsgS*fek^^I%%_-|d~bJ;JhUlAEQ_N40+Kow)BUB4;V83ijJqberr zkLXi$3O%Mz)pK<;Q=hHR)kCY2jG?(~r5@Jb(^u&*~EqJSG~*?l&^ltTWi|+dLOy{1D46P0QY0CN@HYzWoUBa=iJ!J z1DZVhInUymre=yPZkn1r^a0D_8Uk8(t&^#R9!hQ>%s;@5y~3}_IS05bTP8Nf^O{RVCaM@^A?^J{EE=T89KMT}RwJSsjWVb)vws;osMWwot^P|1YV}_dBe`D<-CZZZ3PPbe z&4LAAQeCE&$>SuSkga-9I*H5}e11IhQBIA zrI7My&Oep18YzD=35mi3Wr`4oUMox3XcviQD7FizGOEOOB-ph$D0bN;P>++a2MH96 z#P_SXszhNpq~c}ygC&syD5G*5j+8(ll~5Wff>J8ss7g?^sQ7Uw9w~6biAVCELfoOq zMsOAhiliJCv{Q06C}t^kDV$S~peV9`!L3}RP%|AOrbnY1fO8O=y8$Ar(W9@{1%dq= zxh%2M@(^qRps%SW^EOb2`&B?{jn#nF`(BUBKCWp({Jw!tM%%J7nPZP={fl^}LQ# zP0;Gf_Pfj&(@n#~?>2ol)iI#j2dWQuB$gz0lC1Vf*=Ho!8pnL5OPblHZj1`u+Ia>r z{oHvne(%Y;9a#@$9bjxk=(`rU*Ee?8Q#XCB(Kt>k;MY?!Z z=z+6yBn9_Eu|femKRk|o;6Kum^aGGjdt)b1imn8})p{mh?iG86Ir z44kQLCO^EYpO!J9($gMj&KoeX*N7$1c5C{*5*GxV1 z;(5)3!X#LCjrhZ|!L1yALA>SzR;>s7J{|}_+~If-f#)~zR8Rw@OdgL%B`E6WU_K)R zkY~xpch|m;r=Ep)_0WEZN5BO7Z{m^gV?5NSO%;=0$7iE-kPypnRk#fI&sF07F^Zf0 z6v6#1;Xa{oW9dY+9Z~oc>hCI{{wvr`e&M+tTCxAJtCmf=2D3HRA5asL*@t(}SBJ_g(*fERY*JxRx0>nAotxUQw{ z$m0E}H#Z8sPmuS4^qM0BZW7*1zF!d6GWj79h`m7db1{TXK(J7b=3K}Ybm>1Kspopa+2klI$~iwh0|#dPW+X-4J~)A=c1C zrgvZ(f>1nz(z2m8k&!Y$)&UG~<9U}EM`l~18HACMjYwj)@s1#|6+l3_OnoFF1{Q95 zjV*2;GSSqIJjUHLKJ4~m%w&NLH1Vfn^q8?Ucu4qv_mFrKo9v7jS&W9*#c7g3`B4#A z1Kwc8TxtkXf$f4g`mqRrl~FFHAqILbOjG4KF^kE0UP5s`#--{I)T3QO5lJ0~{HV_E z(kM#wK@?>$Z6Mf-Y{qVAlqiZyq^gRZsZ^1gyrM`+e?)paZBT>&@O`)2r;49c3~}gO zEu28Gh?)q>3n6$);7Cfe0A#d?SfuPOQ){i&uE+`EfZayoiG(odN_|kqSep<`MywTB zD7DMb4bX@5KzBFiH2YI1lY4?$+!MzkA5;-!8CIUL!%c$Vq(Gc(`L!vDh4dO9I!*fR zoJ~TDi2bVsB#mfNZP4u&QTN%cq?*vK;6G{@Q2e(IqjrITmD*L-Qm0)(S6YRJ*_s>N z-y?W1!oLeij7fV?Z)fsiHBgYy9o)4$0dqZO0K20Xm&r+M?F3D0ZfSLhbe6HtZQ`#y z*wgq3lQU*&bRBv;i>D%8qs|eAsVNH$a*A|JV42)N5hL4lx7N}i;SoU#=xOL>fRn*k zgoUkE^b8Fmr>iy0k38UW#)qK6??HcJB}A%>7EM8oVwe=6n&dJzR+`LqQ-USAWHgr_rm@B>v%FdXmumpaMW+mkW9Xq+jBL4sw~Xq~Rjt z!q59n(YD!c{M3g{8q{fjdM_wQ*#Y+7F=N?;@Z0R7RXkap| zVJg`jGn5bgZh{9vpdh`gs-k>332Ky0Nx<4q3y2H!hhYG@L?6`~&NAT!A1dYji6fdcaLt$Tonq!WM8#;(OdERE`{=;cmcbn#Y=iWBPadAj44d zybt|_mLYu;@Tq!YO$|ChezJJ)Vn!8m(@sYdCIsRzZarq)MQL(xkTL)_9(%Qm(gGgj zb&3s&=Lp7)!g%z<(!d%G5maA}Dn*}7l?JMSSj&c%@v3sL-9eLYKs<+75eLx-H$B|Z znaVALP?N+-j9$}iD@X8GDM!<%SgM;|0uqDJ1z0rFz@?UAsQ{Bkt$Pi4p`!9RX+fn%4=5%(ZWc(#T;U_FJ`(#1W98=>i5V&hF2az&C>GQ-$xuMe zLB=k}YMMj3kmmR~N}!2^|T z7KYn}@xp}uC;m|llnISO^im}8lq9uqVL?ZjO>|h|#iP2*) zkhn0t<>L+U8@-!0p{;OdFo?E20wX1rq66|&?B`Oxe1;7Mm0#I1=n%5*i?Oe#x7G}k z)~nz>nd<=;ofSEoxYVq6n6g7-2PX$%@8!X|M^YEqZ7i|=(n5u+iHZy=7C&ZFR(is}^DDl!{hT^IXGb_Q`m4mga1nXH2))g=;<|9bS zHgJ&<1A?fvYOZxTmO6DgO?P&0D@Ew^W<)5Gl~CB$J#@nqrWDc?sBbDX9ebNkU#2Ls4_hZ3V+1mmE>sLjf7F&?#B4u%j?A^?h2~wE-qu94rLEwA$|UhE+oX>n4R0$f6ARAzCJP<7 zGH@Lhl28O#YLe2hPYfWNc0MDCwg?SYhQv;fLwfy0pIU^{*1FI494_Mo`NQ&=RM5{1 zUSAfhyz;6#EV=YNuthot71#&Z0GrGDaTKeQE_K==z$s^M%Hf<=sj8eDEo4qTWPx#p zCsrjmY$Q7Z=gUP(=s31C0X&2yOX%3u!xNl?F-8i-Fb??r`0RvbuJ$Cf(OPV;^3bghw%0$G*gm|H9&ItJsM|=1_~q< z$_v#IN}Ey*dnI59w8?ZlVRF*B2c4B63{3}>MXOFIMWl&77=WqS##3}~7#u?ux*e_@ z1O$ev-4p4kkrO5@u3H38fFi@9XbTI}F8NgIqK#)nLi153hT?m3rHrvk9BD5$X zjBFWH=bhku`KrixLsbSTXEaJx1bEUUr(2orfKUN|f%!h`QCyGOt4(rt}ngPnt z@KjZ_LZN!0kB2qv7A>eIxH(LErIXQG5QWhaam-(P0{vV*L7y9$II#(@&l$uzEVKiVnuw0X= zieey)VlPtI3;zr34M?;a4o_FKU55fE0|3E{>f+VE#m(7p*$=wxst660Zexa3m} zjI|6(l1Wa-PRbtJj$<%$9L^ThMy5;tyP2KGW$X)me`j7A>d-Nvi) zW!uD*b>fmvVOp-?fY4aR0`(}5Nj79X7ScHtlsf9s|iiFV!C>>*e=I`)ur-H+uO}Gj$0n$;0}C8% zxPyf_QN_HdV=f}160ur}5U9d$ght)nzmtu0OMM_kHelStjIF>$!)*_v);Uw0TTLZ) zlMdgV$+m{#$JS#zLe0jGZd$H@5`bunK#yI)u6Q)!-LcoHHgW2LO`!(k(w(ScY`<~6 z<{?PhyoqTUn>tI!4$123ex52HBcH>j)MykO^s;Y*oZVufv z{z`{+s+!f~(*~4h9l9M>F>TKiyKIQvl}aFljLDYX2&Ysy(v>S4OsLItsx{Qp&bsc`)CPrEpmVcCY>KRnu})WNI-m=u;70{4!$33~3{ zf#B7<4>iOcl=`6?C#J_m+NPM$=DxQ5wyO4VV>=7rTvpjj7|Ev@_JOdh%i?D-P-$!H z6zm#E447lfGXfC~g!1oujO|$2^!`-V@I#oAFm@rpU)P0bZMFwCiBJx%Qig7PppU+@ zt+6qb|3Cw_J@ozqb z4=W+!32Kk>1a;axVG*8CAj*>;Cf<_r4Xa;?0I5X&&WFxfanq3J;fzb{4sloL5I0p0 zd&P7+9fFQIXNM@0R}DvKUAZ%K|HECACb#kv69sh9Kv-cXn}pUq+|+vz>saiE%c-H` z58sgW4NFs+k93DGfJT!J!de4D{C6CjJn6jhgKF!fK!02QbJ|l;7Ze7>GRJ)>e#PBs zN-)4Am8Z4#nvgiVBU!OW8qOhAaDAw4a1f1pFk9k^jKHX$7VM3_`XJa%4+WsdJvp8H z82*q=U^lk002UatumuZj=mlseK{7BTr>Fj1V`P6Zr|Z>!D&0zoxtwmr2vk!B2<^e@ z0;F=0xO)6xfxr#Tv5LZ@R2s^a#<6J+WBCm9W2oiij)NB6QjsLkc7SP*AtxLW z85+$AW&*6M(7aINmAfZzX1bMvDqeWBg?9x_9HcK+?s(KpU@JpE%9B_obvGe@cW z9_(V|DNHfek%p#z!(zTIySNyXN~}$<)CVcK zSl2|!gcj`L*G~?+Z>9WV-60} zvIxDTwv^Zf@if?!eAc%W90?qn8cXZ81e(Jk<%bv+Q>yA^8PQzW-Zc{-@DI*u-y7MW zno5yG$f2+?j8DRFAxvs-2Zz**kU^Im#b7}$Xbt4USY=r4e>*3D2|WI}R?y7dpX<~D z%&KIOM0=W)nPa&ry*B5$mgSlM;dAL3<(ZEG1vNm%VMSpH#XsLRX!nUuYA=p-F79Z- z7KYlRQI1(b%|mFvt@a=lwp397BIPzAT(tWMev^$z2-MDteU!)T&YGP>^r~?ULx!db zAdKUEFiVHtdp?1^9oqJM%j|u%BDtUiWUd&CEeBgoy%UH)XiCD$7RMd9S*CVSu`gh} zP4+J~Kaq;lKkCU%RpNRJw1kGfa5)QymcJ0_MWTT7XH)O4<s zq4XrIRW%xNPnb7IEoqTHWJ2<+&XeO)SghOC5grh@$)Qb9rS+@FwGIjF1m?M-i94<<352p197N?u*rp?A75^g zpcqkG=6kU~#(b8MKcv>q7PujdR*jT9G@6-zZ4nCPcd2zijqlnr4>yf8oNHoC9?I{} zJ`MTj4Q6kJ#?5Q2hmwuALeI?`s(;xOfwS}c`r-fr{`r^1Kapv?r5c%>sr3o1eJv1r zX?~r0b`p*Q?SX)i4zZox9A&o8@6~i_lSmo4QN#5n%n5PE<8)$y(L~mdJkSwY+rDy5 zhu!TcEBH`Hk_-^;5N-Jw^%a?4LtPGxjZ)kinK^|M>PN$q`Q!6o{WjS={H!Qi^(tR!`^0y<$Ng|2(G z6V%qzul5DIcE5U1|C9K$Y++q}Z3hIlEhIK3z7|N{*v6k67vnQ)W3Xb}xy)q9{Q0j9 zOFXn*qm6GYYs_R>vOe_IYaRIE^`UR@C|w_FuxNU4e_4(M4RKdTVg*fi z_zq^!jH%XRF1fg+nmz}-F6*zNi9@MbAMWRBhFT~=`y1Os^Ij*5yYThyY(?nj*DuHK z`HNe^vKqU%UJDG8WYR*!4Ty9VhM!t_u38*1{AgYcon73x!tz(m&`f%>WsI$+op5wa z4t!&Uy+UCHt^ZEX80XS6Lke2O+S9aJ5SA1)2rVm!ZE6ox+xh^f+|o_=J!q91S+gMU zMyRCVUrowqg|ft!1ntlxZ+WE?x^{`_jD8y_q`oZ2*I1Q1vi_Gvk?HQi@+mjXMWJ_> zbYpLZPAu^oAE+68E_zxmq)vvKygANh!wYY=K__f`vtjwA$WL!x?wBfSHQ=Sb!Bu}H z=+`eztFL%~i_cK3n89(>Mb+7M|BR)|?#DzVah)0BqRBI9q5VtWWRpXWFUw#DLj}to zZ2nEe(2t9>rOY%2TANF1W*@Y?PRwW2tJs(sxxD}2r)cMdPSm#JY&Xs)b+w5D_PFGp zM`mu*Y5yb+*R!BmX(}>41BKunPIIOUTd=-u8`)$m*j_1SA zn%^=%s&B3B!rNGy>S4F>AJu7YxtuZ$Dr~{N4Lw+RHE`@MoZsaLBc*^6$GMEL3*cHj zm-@hXEKb}8;PlMo3NCT&7!$H_B((UQMk#>NysKca8E|S!I}k@gCGRv!1`MOg#*2H0 z)P+Yvwcl;az7F+!_YHP(LT@xetNE_04dlJ9WTG2+_a1qo7G5P9dO9^WZ!3;KU>(c6m6K0Tj?>@j zXsor|Zq}KtwR*bQaK3AE_!T$fu0F63Awym>5#vDg!L8N0WYxfefOg9M2NCOQAIoGX zt%Nu>G4%`8klGkgZnL%w8ecFviZzZ{^Ws?R)T8!NAENmo)@EdpxaFs*#@g_aIK1f_ zT*6FTBQfxRJmYW)XA)~D3Fj=UU9=wn#hHbmos{d2CgtJ^G37c{mg|(0>yRGJb%+j1 zkgKFDsRT)xJlBQuqZ~7ytPhoAmM|7udLrw@wp!g1*~={>buUvWWGQYG(-9(}j*v=- z=AwQ}7#IL#c9WVf#nfcAH`uK9k;aBGXs=YWjp=km}FrAoKzZ&c@ zmS;Vb#5&-yG>O$^UTbp_^CMQ8#5((NDo8se>N)|=2FaSG*W8eV4INBEb1hkyC0ke2 zV(0b3dum805LU|cUL0B0m}ZfJ<*ri%&^CUJOv&E$Sz;cftsv`S6$DW$!u6TCjAfX zu`a1onMseuQ8^(s%A#(lxoxcK}tosQ!JiZZKV0Bm67fP(i-Ckjx?$g z!-9G>SdX{rdM4MeHj^5qRc6xFX*Ec^uWI63rq^ISaaGncyFs;i^iqS$JlYGSH6}<2 zRnl%PZdil$BvxHduu-*{)WEFFq$|xDBtEHX;+y+xu%22~*YgMJsixAO8>q~rj|0_4 zI<|2+q%#|{np669s%FN+8P%pctw}k$VSA)lS2U?M(&K+Y+N@~}ibrbI964K)_0+4n zp54u=&7?7zl{vpKvj&-zRyFYxo7Z4H=~dS=xJ9*@^nHuUOls1y28nN2HSxdIWIc_l zu4iYfYBOnc>&i@8(7FbhG z`c0~4#)s{zP4~zS<>*#ge}0E*Bkj|%GSd4x)}VM~R?U%1IbnkgJ zsMR`GP5i*#HCRtp)%BQts;&Cp?^Bsczx=;Ix=q#~N4i$ck(c|{pm_dGJrDM)wsnCO2o8+KDo9Zamp#iFXVgzFDv)it%= z8(5k8p9iu#{(qr<=Oxvq{_ac5Q9tuiHnGMC-}pCdpL`j+t;Q-||=L>9Ec}oYl5Gm$O@LEE@(D4*lpD(2t{G`>YVR%Fc1k-LBls(x zDwaQ<`|R>+GilNlm6`PR6*b7DZIMQt<8X1tzp71ryDQ64kEyKY2Eq2fAzWTngB<$s zZz`&Pb+tM4-qqzeqz1vyS6ACcoOw-Uq+744_RK!|+R8{@y|xDVy!&tXJn6b>^SROW zm8rkx`WmGEc5arrv#HwUPdHemzuuqz?|MOzDat)uwdtP34e|y@}ml zV^dto-}Ku}L#s{r*`ehKSEIYr%{6F%9rzpSV~5pXMW6mnMJ1@Hns(}>TPm~Z?OSS) z`a^$1{q$R_O?`{oDpP;UZPi6Od$@zsFH`t1+gTG!PgB6QnXeDVC`ru6|m$Au{srEb)&I*$eB_hmResPTEgYBBHRiy>fvQl z+drd#SA#dXTwbJ^*38>k^X86oX?h7@yOwSIf;Z2&x)KGO4R2>T*Q4Oo+FbNVHwG&?T^QT8dV?J6Q`>VBK&hyMYyi!*{X- zR?DuMZgU-uml_;d6j=L4uts&9bhv&d7#N^HzHHVs0)ppe8^jc7KsM_QU9dnsyKBpwINoM(^5*0e_3k3> zr))h~4uJ^;UJaT;;r;MZg=?sU9hZb5_3*oaWLyXAiqt8{S_F2rL->iA^ABx6I1}OH zlK}vzM;Bq*h5Or&OYFy$_TxtTahv@ZMI?0B=mk|g@`ym7%e9|;7CnO?1J|Mnpv}XR z-peVZC&=1mr;`_TRj|Z);teN?v+wbgP4Hq6Jy*lsMZC=0s%{{<Imq#v&Vy5@G2&KYUP!8kVXckm%SF7?YLweAb)pC@V63xgMr5-O}^N1rA#fN3M zUQCQ!WIxFX3SI*S-<&vJhg8j&OV3=qJdI}CJuY$*2t=M(aY5G&Z^c2d2_-3tCw#rC zlFRT^HP91nJ^Lv2J*v#N0dN9qB=kl^oRPs>5#SL38g}972!kv4+eI-F1Fg58idevjSh$Dj|#Y!;9atqQGpl- zFe;Aj$^%V1y!eerD@+8yk;O-u9#X6;sF+oMB7?6nLP=hx@Zw??JotI6YbG*(Q@Cgv zWzst?cHMYMWwfeX1(a)9ew&4ZD%_q!gx}R#She(N0RF|PdV3bsYz}P^AKG7 zT8AgHjNtEG;WnE5?i`1!f>oW$MOK%GoX#o-De7J>Qdk~xrb{`<+nvirekqUo&u$UO z^{Dk^`FxXmL_mPNTOQqs4&@;4M=>DV&m9ROQ^`G(4vzq`opA#=_~k?F!EW$LJTAKx zgd=VObamWF^pH!%Yf(JMJ#rkSNN#6xBQe!ZvSvNZ<|nx1*_eyywSCAuSk`|M>w!Ds zIg>DD=2_28Vi~pQI}x#T#hUk_JO1*sp4QGuY(Oh7q%EM0l;WO19KBMAd+_+f$+<1` z9K6{{eop{y>hRaFWRNv(=pykUQJi1VD8iA|R4c@(_Rr{PIHwXr0JmwSs&7@&hLU4A?`t=ir?QF83h!$9}oh z0m5r8<}!TrNC9^N_(vnT#R0~X6BGba0R+}A+9>j16C zCbL>GPp8YbkzlnF-(KplN3I|wA&9XusQb0KBkp*dT znFFk?T$T!XN&!~^_CxqOuvdu!aq8{>i54-mCEPP82z!M6X2jEW~;O+ zgFlNu1k5=xgc)9G<$EaX5FAjBJmp*kI|bM~9poPly^XWTfvPN2uoHl-=peTPW_|G} zs}o$@LH^`q+@!QLTzjgV@SI7lE^>gI0lX7vrsHiM3=06!>YtpEw*|o409>SiP`}jb z;|{PGz?%WwsDLE^qSfCxKx_OINIshUA17fOa$k$wXH{;v6Ov%T8VC3RfL8)I2QR;3 zSO5qfyypP714uqqS1BMoq7oC{aeyBJ2=A_PmjYrfL|jF;Q1IZ%b|2HV66aKreLkI z<#QdP6@CI(CScnY3?7n;d&n1@a{BT7_J=s=njnjWtwRNkr?!>ros6F&BjyTOtTO7^7)THr zWIR2U^$8j>9j>g&>yytk2BrmEc<~-nRZPH3Z&slwy*3qtM06#5Fl77VO!B(#Pax;r ziGf;<`|CskD+82VUc(NhN1U19c)msmW*E#xdMghYoHd%q2-=_jaFP_Ok-4ntPp}L;mOsJj z*LQ*GF|ag!CJ@5n!qcABUDnr6uzAtqc-76C`D8hKl(6ebwlEc*;$dERVfgMMzquKB z15CDpEnz)9jde`6omFRHuy_LGK9kH#YwtAHsx~?Cv)!4(?969m6k5sC*=SJq$aHp# zi_A@z_04qF4k`7YVv~Y!v=9IJWbKn1{WzRZk<5^6Qk<(eNikf=lTe~~3$BrKY8BGE zLjF|9(-kOGC=PyiDb$u3@nVb@}19yoE`pgIshIiTFl9%#>Kmxd|qNiEYqWg zq2UkGSsDg5w!#5l(GmoV-g3U!@lBmW6G0vZe zmlRDTfd00(6kwP?wcBlQrmvmsg!QXm=Sy@V@{G3soA*<+Ac{jF>0jQW+Ew4225| z?tHz$8Z(pi!w@1h5T42Ybw0)zeT~F%i>;R5i?H@mdWc4l2j8$$U#znOCD==(uc6S6 z9W4uU=*ue}YtS>S?O?Sg1>v-wr7g*_uckyZs*k3S*AD1#YGNQ#hCZaIG&j)E0vGP+ zXIVR*Vd-p^^&KAWcw-X0^jQfZ)~)XGb(qO9QsLzp{KGbbXJDG~xHTli8pDqby*w)L z%|mn!_DC#zN%1^(%-R`ZspLyWdEo{dVUpt=+>;^Jk-Q<$wxFFvMY_*o*EiZq?gg>- zL8qgcO!;#~C>QUyyL`yBau$^3R%`z())kMWXIbkw6hWPtJP)4Dtc#yzouetGgm&7q ztQWFweU>%A<3G=`4!%f<`vK0F&4$&ABw(+}l?_%R-I}fPzcrh+EDzQl@K3YZEj=p` zdp1h!DTi2QG7J^$h>>^udeZv*Io73o zi^Jyg?0)8*-T}-%Wf*T+^Il--QbiZmh9?k=F9F|LM24K!3SO)d={;zyJ;?`zgrh1@ z413|Q25(i^ebD4b%1e~>#|vy~(D4`rvP?L9zYtkbK+S>ZP`SVfL&?hmCrs*Vl@o^I zmZz}u%fU4$Y&fd6!>tg`b;6wx&U3=#&U?;!l4$igJyW;Di>!aji5^A~{3^+vSgpdB zH6n6pPopS&(~Ed{8!@~Mj^U2cWU@44b2$Gc_Az5`hbQDiP}nr9_cwS~YU@09S0p@W zKD#=08t<>+PsyJ@SaLq=W|huowa_hR=CjNCs$L{FL8khM3XQQ+fe8}=3)!UpEu~kh zDgCI3rX3Y_(s3kN(_Ueh+0sxE&j|;Qb>bB^=v*02MKav9fce=rD`x?_hJ9e|Ux0~v zn&o{JM*`|`p7qMB?42fWf|ppIY0gKD{mkAW6R;DoL7?Vo`MfoGAw(z7TD*|;XOCDv zEM!;VasF#;XB;^SP#TyS>n(E;G{su0*CN(8xde88YuY-b%?e$n-z!TtTA@YkU-hF9 zC=JLQ_D#V3#Ib4l<)QFc@9KSTR-I8eX#Y_lVBYeG^e9b5!HQum>u4V0kZ01@F;oa7XwQQokwI1@d zFJf2e2O1bf){_Xue-Ces(7ik;AC%u&M~mRX;d^V`I<|@}x0#ch?uo3KlRkDG#W{0eVjqK+H%xR>lb@aIhGg{&%48B8F z`%SFlg^oO6VFPDr(3a#Z4Nr1(A<3U7JjB3S84wRY8FC|>(vdS0`49k_e8^Z%?ivwd z#&WA*6Kmx|0*noyfs*)Y6ZHFDYu#oR0F8$?v%y|~X>yV4tzKKelh3U&TUa0cXdPpN zwQ>vV+~RWvN3+BR!fHE{@lhPC=OYt1No02|WR z)ln`-uu`GML0!7+?@~aDw^~QHvOxMQkc4rJ?+-KVd#fDeVT#(Y)oQVgJ>DI@^PsRw zad=Bk-iSlwDMyn()CN!KT$3^*Rmlwn-cX!^bDr>b+tAs4b2igp%P0m|>riT)~YU`6^;c(q2)LrbJ0V%7~>WNDdf$ z=MY+mAr$~C$yCqrzkvJ4zP>Z*VgI-&>H)#x}UO-Y8OI!O6(62qL-<+ z3avArvTp1htMftj0DC9A^dOtb6E@Yhd5PV@w&37ppR);i+&koG5Q14EjCZUZ|7K|c zq(CRyDJs}nTSab8VXz>zkn;JyVrf9z>?<~uu{GA?huI6UA1J4dhjGepjVWcbt@U4n z0%Z{lwk|mWW%EIJ^bsh5NZNP*VGm)ly|a{k!ls2`I6TfU1#kJ51(5pfx9n1+cKwd+ zXYBnjwB7_ft*PI$hw;#VV8yo;LTlIrImEte+tJ25%n!M4%ib5z{_x)fp5RlM#(NCw zVI&tp7$_1)k@a?jx(}bZC=!&~T3auC{&=wQ9jo1OmYjynn0!@9MkN(?ltd&v^f=qW zf)QHg!emm6dslgSve^{@;%qVsge-CSc2lQ6s0cjo=Rf6Emly07fX|FPVyP}g7qw+L zqh!Wv9Et3J;&D^D+=%Zr>84fi6Z7I4!P`HvKFugYF{+}!4$YLbEt;e#Uu`w`nWeTO z$oo-f6K2mZsb?6y50A^iiZ^fVjNOilXa^+k;y_^-%2(8kb$2|3ip~bY@qwCOma4AEjq*ANP$|w zX$$5P(hcg1ia0Wag3UgQI}sDL#yZNAC-iJ1&z~#9YiaY}SKa(qFMEl00wC7$T>c2n~tU7z83S9qN1^);B zAmqbtsu}bDq=GX1o^#>9hy?WiEZq!6;ZO*8qBKk=k8kop{C1# z)-n%I2c8e@$G3Pi{0q963MDeUyeCRv=+ba~!K=z+@Fs`1d-)l?!7*hIX>bYp@@(Ei zi!*CO@zo&U&&TkZzl5Y?5OokBK*Q1Y+=nXc#8Fi z!Ea~B!rvHt7{eCMz*>ACqK#|wL`1_KlR4(gqt@M>d0p%EI(%+Q(Jxrw4mLe~pTKGL zE-c-zg;Fhg%(}5I@628aKU0^FVf?qcmPq9zp^3(%0^f_)1@&;$mlxhskHbVgW*Z-% z*JT{F)~4~R*nF!_Iv z@vZC&%k0btSe2l#Q}(qBvF zSMmT>$`h~ThdQoPAMT=8b%$?@6KrHke^NVZ{vLjhhtZ5(V>Rv3dqrK7AH;9=`jv-v+?;-j!<&8p2a9 zIOSwLuAV^8P-&@?SQ1I(YXZL4q&@)`eZ~e7<+3MOHYzZ+{QP{shC{i+@RA{XBJRmD zHVNw{TnyRBalNzel0Wty-t*Y+i}q`i`m%=t>Zn2M>(6~H+-xWx$JwLd=ZEp@-0`d5 zW!O#C{04e;+1q#W9-QqC_sr&(>JZr{@8Y*{$jA?O^OlIFjpcm=qBl-J?-p9Vd-z>Q zeefQrDr|Lrc`tv7m%d|7zK_4imW3PL&wF#06CU~?zutx1?*{p8$lWN1R9IoS?PUIu zfQa$O_(Dj^>yPoT1e+0l>IwcmWBK8Srttxc?Fes}&JPm>i)LUnKNj9QgO8+AGQX6U3A>Z%${CbvST|1BWNME!Gw;i#-mCF!7 zsQ_$3Pe7-kn`14V$1i2M*6;K9R68R_Uq&*b4o^VX8DE~yuk{crIF6iU{W+i42mbo6 z@Sb&NZNkJwn}WFrU?6F6@FhFN8ubbv0p@=43cm+>_>u+uQH-Zu3;45O@$Ikj7~=e0 z3o*QMt&IzLQ{?$>As^iuNQg%IFrfryg#C;|8_*{YxikhLIZ_YkcH+0-pny2%Fee!_gQ~I0rfBSn-Q^kKlf_S%n-WDgYfQ4;S;kL3}z;9zq}| zpRP~o6h&5iH3u`{-DBl`d_UYZo^Ty4c4}Q63FMf*0QO&T?GncvftaxYY&u>V@0EqB zh5$5;TxJKkX>D1=Yo((o*0)k08?W;|ybsZ*ItV$7tX~%Kp8Qa;)$w)SCCUEiQ z@9TU7FDbUZe4USWQT3~>e=X(%djPvrgXvbEx5Re^RfXzX>=dTUfEsq>|61FD#XK{Z z=P(~FfbDuIed|LaO?5A{mLFSAz(Kb;Wf20Z*Ym+s`fjIOfPl?aifwneBG7lZUM-oOhk5)fUs^bPKJ&qW2L#nvZp@YZaO zr59knNB1Ig^8((itqmpqp$K)S-568gNWH8P5C(U)pM$-@0-nW+thWpJ^aSu-IZ-8X z0lvXYcv^j1`0x<`6i3*GL-ZhJfTvhTROC2+0p_R3Y2htP=N!6Jy^aBZHl!MmzReVFN;+`VT>hl(_3!QY$Tl{UP zmV~!?3KUM$xA{lqu#hqX7Iot8qJFSyhxwYu3Jdg_Vy&OhF<7D0MEJXQ8VOxj--<8f zX{2wI&_WVA6!IapY(cvSdq$AyYz&fF*1STV5fKi2W3Q5Md{)R;g2b8c@Omy=5|+Nh z?}Z|4`Ys<3w3UErFewDPDkYeTJd^IQ6BkHRGq~)gkFwg7Uw|nf7m`I_N>Ty5hG9c( zjAg_Fj?Bc{3K*^L-sM?kw5y%ha)RCMJ>DC-`hoZOq;m4Ddgm|lJ#;hgW(``+`}!jE z;UvzQyP9V;QyecR^*FYzDD}2%Sb0ma)eygizYtIZK&i*KY2it2KeFV`AY z#4n7n2QL>;*V=O_>dmp%6)Ej?hr=(e<4I(qFI&(1<9z&=^*j*40{O=E z15>{s9vBpswi|dGF!`np3d?63B3P_58-5jgu7XFr5*2m@594}LINyYpfEIdCb=A9E(y_atK?C{JN#I#nG0Xdhn|m%KW%Mv!YZaN`nsr)hO~_F?`sGoNqh zi^141wh14dRO5*i3SHi)gP1(=zSaK-4{$u6JjOG^(-A@chL`?__vLJL_@{69IKht= zS+^fUuA@a^lA+wCS~}k-yjzJ)Q?vDSzMQ1Wc_*;cI#DMyl@E+@_-Q2%&C}D@D(K92m60a z9TL&S5WJj3%RAFJV`b=KESqZ0)PSPUXn3 zuJ(!xDr7qk^?72&Xuf}=bziLL1kGO%EAlYrd-=q}V8?qtaS0X+o;Yz#NAy=i^k%2S zSxKS~S@HMP5^$OS;|?oWTlAyn#@Zqi>Bnjdk4it8EH0+>esxd>o-68zwh2Gt!Z%i; z{v@;wX+P8v0}0l%t{9R2;|`_{D_oaiBB*VqT&r&O(4jPPtg9=s;+-4=$-*fN>nY+E zI{djKO$@|)a4XZquJhKnGfoIH6zQurn!TSJH%b(WJ6p!zLc z^h_)0V9ew=^fiUt&=x_3jK;;`kF3iZh}sxM!yAaUy$*lGlr=!of$x~pDLZ{IpuP#p zv0Fk{hPYhyCCwAK5l104A<4Mkrt|NMrc z3wq|^hT;~qxTK-zfk%2H^!zd_w~=VY7F%yM60^~l;Y&^N9>eO(8$d^(Q)@LAOHp)v zV=)+y+8H9VxxN1JW5Pgl5RoMt$dJ%vZ~$FSfUtphhE(ge4AB9dYGsHAX!VrT6cra* zmo^pkk$PuSF_ANmHT7aKz-rN4+{aIR6@I0;=%=%M>*?;|dh3VFL<4JSFVWbV(NUy_ zUu+|0U@>NWKUg#rUQ9BHmy3?pn7@0MeRfkYFgSu)VK1p1eTHE z(suZ0Mg;Sqj^e>)P9e8MKuy)gn>thsOfuZf#R-kukLeB=k9QP}fWYV^uAu4_X=^%* z`H@#;r}4Rp@yBif+gu0EnJuau`-6l?*U8J^rv zxT1ODfG6*K@hb9U4WPcYMhp=5BvRGy9wiF`uXq?stn+Rb{le`o5UDH~ANlqjkmMcJr0H^*p_>f5T6+kPo_7Xrws1`}z4FR__q@&HC2g`+hf zTZA4e0eY-!FA}|C(F7Y$p7ruY(0OaDJr{}PwhX@#*n^M7o2o*3L65Ew;u4Y4;Ad?O z{=W5Lb8&xo!$7e}xD?OAcMpQHv}M{vr$M5B@I-o2zh2<5GC$nm2JyS@JFpsA2{L@?-gV0YU^7M-!F2k$LCIn?KYfSKR%8YHJK(p*F9QX zjP>O+BF#E&iQ3`L(?tnyn)^LduPW1vzBx|VK={-#I~{LQ%HzkvJ!XjZdec)!Bbo69 zb|-A0vQj7PLAd0oRT2`7TO`vB@;MHcRD|=KFcrv+Vvm6-Ix{3P!eW*P@|gT%Ot!+| z-V?J$pkB!_T9VQ|(HObET!~#&BF*|@wz#}W8U4T%r9Y+|{UBA6a$fl3xuQ_8o!0bxaXBoW&-2Bt9z6TL4n54aTSFF$F}(QS){e#EJYMwg zaKal<{Sg#l8%5&+aRsll2X78yhBBt>xL}Vf8Mq~9?6KmOLapzyHoqy_|9y@Nmx_G$ z36as#N?r!V_({0OGI5owHsOso=r=+A#sTY{3q`B&&bLG?Ly=G4M#;U_#IQJ;@G-s~ z6r(;ehl>w;ta}Q@BYgkAt<#0#7QXA>){u9^muzvk_qzh-=G5@E_rxZhoeJj_iAf~T ziR;CO0Drb#yv$;#Mh|d2x)CPP9_yObBH%`&Vv*Efljw=0>oQm#S^(o(L3ic`6FsrJzulYM|kvt^>(}@0B5n$(#ZnNYkz$%B_Yzv$2-g zSm*p^8>|v>xhe`RwV?%P94O*)V-$KkQfKL}b}g8H?MeVqR|cL$2NJQRh_v7vMSbfAdKqfuzSf`Tb;?#Hneu1Co^ zCmHRvA%rhgK1B->iA?fDv`C>-r0<*9y)1Hdp-WY==%hkVUq*BaA)BO0!EWGwn~D>W zu0dSp{5t|Iv7x0?>~0OBFR)0Af=g}i>ZwkzBQEoz(Bn3AL9PQuT+WF?PubA3GaM-5 zvM378`9bkLZ>9r9To(U37@;fI22Xj$0V6JVMGNQI&{Gj8;&Oi!I>&|{4LM~ImnBhX zzEknD4is@&8i5AoA{)GFwgX079*=lTCBLNSP#$!fbQ8`5<8>9`H1MBq%iS;1RY9=OL) z;BgloV?_YrdaZ~n-Z8vTf;)a5hWB*haV=q^vJfiUpkfv>xcFG7*I$zHD5g!vo+ z`5iY%nl6b2s|D-d>Wf%iV%;j?WPtMs&g>A1`|hBk^m@`USNRz-bmlssj|4gov{Rr) zpb~*vf${}v2RbfLI=mbbC=VznguE01o$PDKu;|RCfR_gnvl8ff7$FBx#T|ss0DV4y zPySE{f9uttSVfag`%2H2!RE7G~9!fe3w?ZO+zrWOTbqp?s?K&U9l|CgfRSAh_S zqPY0UA3QEuu!PYchkm}hK6&o?R5!cJQ{;BiIZGfDRIza}MjsS6twi+V`5wzzA3 z#%#$DFV3`Ub#C6*d7jsIU#NO@-EP@EGfLF-@`o3ssm8SVj;BVKJ~n zWtRauRaga>zC+m60NPYo4_K!{Ct#}zTL7&^LiZYAjtWzeZ;=Xf0JS6v0n1db4bW1p z;&R|KDy#-{s;~~QRfXpPtvf}GM!*~uqLk`BKq<{A3+)3C+6O4tFZ)2udq=$P%{G&Qn;ssw^lH5vFcLxGY35r?7MW#_pG z0!qfBPsT%bcQ&Q&WGXw8DRNtO&IicEd;rywfsVOIEl4R~sS4p$O$T1hP!aP}O$Vl0 zZ7eufisC>)6lV}-uSkb(5SGL8oFA@I#M6R-r}vRagp+KLelQB&sqcVRHs0z_!*Ske z045oL&<`p-0ysMj>f@nS7)}wu)FRZY1|aSTt(^vq&?-|SfTn2)^SF+#Cj=P@_%W3;|vQoF}YSzcMOt;54l z++#2K*`sejx{V5Hl=RcYKTu|{(>e8;jeq$wZn$3M{x?0iQoV~GxQUxv*D6lj^tdVG zuICAv#Z-*)U^f)Gu41^3y`bPHcht2pBQBQNk{@8B)| zs5{t0AbEGN@gQ|~u!$gE29d`E1Dk?$QVneUAG`eAz%Kl;#;G1`jo&Y6A(4OcfAnM% zkVtM%mJSlsi$&e4v8opfd-&H@C@g&gM#qWzg+q(jS!U_4`fif>KnVSPZ8-h?d4PV5 z`1*teWuj;|~F^k##3_dD6HzW>cs-opYV)l2``y>s5v<58p7Lw(527Vt^F3e<*9Z4fUV z#b)#)v9D1Tw?Y&GEG<}oKax~teVNAj|hzP#djeNN#9+Tr1tOgJr+Ir`gg?J2Oi!JlLGxDsT^JQm!zk3xQTm* zB%K64;)_A|mZT=gI&?V4I4bTM%SOm@Zp9Ph*suVl`iF|OQ`wK+_<~}^)9g_%IfL7u zV}0ck{w0V~Tfp0&V$tpJ8O@Bwp)k8Hbk|pCTRxWfdB}9lt?X+Ku@c%d!7HJrVtRv z`aV#y18!RHN%9OmWjEY3MNc0Ypt>=VaxF=#r!O2Z^Q1jE;rNl<_XembNW#?)o)gCc zbYdfeFNtG;I_LK=E8+X#Td6JLb#XN6BHj#&qI=G!kUQZts;%(ZCu{BhssDie&)Iv_ zkg;ToFKYDxXN>cTEH!rTpDtMJM~A5)BS`An$*r>yQfy@KxY-D4R6}luZ>4q@ubNFE zckwSk5%Mb7GfLioQ|pPuVbdJ;Nvp=iec&6QI<5YWLjIn#h@>u(=JYeRFZsy+m*~)G zX{)|fXMvTZ8GP{^QRt0CYB@-tXN0gT=EvuV6fQ$#EZGe=&I_Y*TkQ7l#=J2zdc|OM z)DkHl-_6Z)nZKvlXcim6NPgB_;d?cRQu`(^m`g)@lUIU1knt8A7LEFB@<)~Sgr`SN zyL*i`cdg&TVF^iNFJ^wy`mX(pWn*f`b8ULWlC<_M9zKr+c!~{|*q~ZXnmi)zMjUbbK#wjc371v!MPuqcG%m&u1Z)J*BWWEWF2Qu{TD1(cScQA8qfD z&Q}mB1Udjbs{fDT?Sp>CiaQNfQ`4~R+ZKLo(2^lx34{UGE&q7hm}C0n>esp%4Fgqa z1WECYuin3Q=-@~5O=EqZ9sOPrroUbs_9S)f{k$gqP2pFumI|`WeR*Z6rl5xNwow(0c5~;yTkO!?ylwY0I}&B77`KGx(^5 z!qapR<@h^1X(8gc-r-pb#ei&J&nS5pE@I>64|kj~xtb^WX9b3;Bd|8XMJ-92LQ^&c zoHd2C?w;c}AWSV}EJfVi>7^sGiy-eXr+H`JUd7paIc4tn@y^UU~G=iiq zlGZHwaO0AC(~8gLd!Gs&sU~M6X$Che65&UHD7ALHo*1lT@`NfDM?8Kpd(d(Xi=>`ltw+Ch^X5&_!Ar&V2J}kU)S)wAY7w&~ zDGl^x^mgb|Ctf5`%LK|oCm-aWc-g=k=~-hN7}SZm3Cvf}17js= zF1A;ZB6<;e1bAWS)RyyE$yhj-@}0@7*Q2F#paJeq^s-nrFUEIHfjrXB~MWYaod3@~>cCT1rX2nw^8rfPNEQ{0_Q*MgHjY7u;In$rbD=@#~{^{4c*g^7yD1 z*x!YxRbANE;(5Uf>`9^S1b?|!>{#9bb#HOF&Ih|<)=G9m4vE5#3_8dk8u7R2M}|+p z4Yf~k^_{x_cP>8V%m2xy=nRQ?>GgcY>D7$My!J(Q!zafH72{GoK6vZYYNp^dhtn^y z@j7RVtY0Vd{p*;KhplCEl-4UecP$I`pKFz*i->Uv{W3Z=hn1gN%ZB5rLPf_~=An2t z{wV9OC}G@l9UG~%Tls`__ziBXh*`({WzUA|vi@fu#@D2T>RY>JZ8~%JRovn=Jgk4eaqgr0ckyE-%`^hFM7LW&M3uk3Y41Oiaw^ zdlMJWiA$U}E+%HdqU6a?r-?BYc2q7+XZ)PSiHUK`=RG=S@?;@T{vG*BO`cXbOI%rz-m6a&NArGd_tF8#SX_9TaK& zt`6GapfXL-e;-XFeu;-=vCwgpUj7C(y$PVy zJkZ?-Ne+1Aw2EZf2_NqgX5q$B8Bg5G`t#4TSb}h~Ax(7?0ZQ$5Zfqpe+(h%`*=+F$ z%3vHW@>Gac&9v(cA$=>_cQi`Ck1RVz+zW-B~At9B~-7pufP?$?d9Y%~i8%Hcd`D;wrRN%qdgwQ3jt*H(54 z9{}WWHcedQCTynDd^2aEVlx4oGkH+HwwW(BAH$}&oYY{m3Y}UuPXSv_=6mwl6mfZt zM3ihzTDOIJZex$#N9U#DF8oP(>fl^B*qiBqN1LnhzQJ~j#v8;lx3T^MMB)%Xwfw%> zadTth5^*{v6LK2{{vduFY9hBtY?60sdHg4^MN+AxrLk-B_^<+Ym*AI!m#6XD^LPyS zVs+J|@ez?u$}tO);ui~_i0JhyPCk3^T`lgfmJ)plj~GCGRzu@Obn7mBy+;BCALxO4 zVc8`bX4zgv?`_0#MLHZsza$*kCj0ZCJ#m#rdq#DVUJT4|a~ALVGqT2u?|>Avp6Frt h2KA$$@1f`0H2r-L;-+pMXg9LM;|Y8Vtydzq{y#t6k1zlL diff --git a/main.cpp b/main.cpp index 74fb6d2..b9afec5 100644 --- a/main.cpp +++ b/main.cpp @@ -1,21 +1,25 @@ #define OLC_PGE_APPLICATION #include "pixelGameEngine.h" -//-------------------------------------------------------------------------------------------------- -// class -//-------------------------------------------------------------------------------------------------- -class PressDetect : public olc::PixelGameEngine +class CustomControls : public olc::PixelGameEngine { public: - PressDetect() + CustomControls() { - sAppName = "Double Press Down Detect"; + sAppName = "Configuring Custom Controls"; } private: - bool bothKeysPressed=false; + olc::Key MOVE_UP=olc::W; + olc::Key MOVE_DOWN=olc::S; + olc::Key MOVE_RIGHT=olc::D; + olc::Key MOVE_LEFT=olc::A; + + olc::vd2d pos = {0,0}; + std::array keysList = {"UP","RIGHT","DOWN","LEFT"}; + int configuringKeyIndex = 0; public: @@ -24,25 +28,74 @@ public: return true; } -//-------------------------------------------------------------------------------------------------- -// Main Game Function -//-------------------------------------------------------------------------------------------------- bool OnUserUpdate(float fElapsedTime) override { + if (GetKey(olc::F1).bPressed) { + TextEntryEnable(true); + configuringKeyIndex=0; + } + + if (TextEntryGetString().size()>0) { + char c = TextEntryGetString()[0]; + olc::Key customKey; + if (c>='a'&&c<='z') { + c-=32; //Capitalize the letter. + customKey=(olc::Key)(c-'A'+1); + } else + if (c>='A'&&c<='Z') { + customKey=(olc::Key)(c-'A'+1); + } else + if (c>='0'&&c<='9') { + customKey=(olc::Key)(c-'0'+olc::Key::K0); + } else + { + return true; + } - if (GetKey(olc::SHIFT).bHeld&&GetKey(olc::A).bHeld&&!bothKeysPressed) { - bothKeysPressed=true; - std::cout<<"Both Keys pressed\n"; + switch (configuringKeyIndex) { + case 0:{ + MOVE_UP=customKey; + }break; + case 1:{ + MOVE_RIGHT=customKey; + }break; + case 2:{ + MOVE_DOWN=customKey; + }break; + case 3:{ + MOVE_LEFT=customKey; + }break; + } + + configuringKeyIndex++; + if (configuringKeyIndex