From 674245fca4947fd1fa41916130a34df60154fdef Mon Sep 17 00:00:00 2001 From: bokuweb Date: Sun, 4 Feb 2018 07:25:14 +0900 Subject: [PATCH] Add wasm --- .gitignore | 1 - src/nes/rom/mod.rs | 1 - wasm/rustynes.js | 4 ++++ wasm/rustynes.wasm | Bin 0 -> 161256 bytes 4 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 wasm/rustynes.js create mode 100644 wasm/rustynes.wasm diff --git a/.gitignore b/.gitignore index 44a2f12..d56f079 100755 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,3 @@ target/ **/*.rs.bk node_modules .DS_Store -wasm \ No newline at end of file diff --git a/src/nes/rom/mod.rs b/src/nes/rom/mod.rs index 732efff..ab29fee 100644 --- a/src/nes/rom/mod.rs +++ b/src/nes/rom/mod.rs @@ -9,7 +9,6 @@ impl Rom { } pub fn read(&self, addr: u16) -> u8 { - // println!("Rom read from {}", addr); self.vec[addr as usize] } diff --git a/wasm/rustynes.js b/wasm/rustynes.js new file mode 100644 index 0000000..f9425b2 --- /dev/null +++ b/wasm/rustynes.js @@ -0,0 +1,4 @@ +var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=console.log;if(!Module["printErr"])Module["printErr"]=console.warn;var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function shell_read(){throw"no read() available"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return xhr.response}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function shell_print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function shell_printErr(x){console.warn(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}if(!Module["quit"]){Module["quit"]=(function(status,toThrow){throw toThrow})}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var Runtime={setTempRet0:(function(value){tempRet0=value;return value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i>2];var end=(ret+size+15|0)&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*4294967296:+(low>>>0)+ +(high|0)*4294967296;return ret}),GLOBAL_BASE:1024,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=Runtime.stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[typeof _malloc==="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];if(__cxa_demangle_func){try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}return func}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}Module["stackTrace"]=stackTrace;var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module["buffer"]=buffer=buf}function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(TOTAL_MEMORY0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}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)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var lastChar,end;if(dontAddNull){end=buffer+lengthBytesUTF8(string);lastChar=HEAP8[end]}stringToUTF8(string,buffer,Infinity);if(dontAddNull)HEAP8[end]=lastChar}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["fround"]){var froundBuffer=new Float32Array(1);Math["fround"]=(function(x){froundBuffer[0]=x;return froundBuffer[0]})}Math.fround=Math["fround"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];if(!Math["trunc"])Math["trunc"]=(function(x){return x<0?Math.ceil(x):Math.floor(x)});Math.trunc=Math["trunc"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;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()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;function integrateWasmJS(Module){var method=Module["wasmJSMethod"]||"native-wasm";Module["wasmJSMethod"]=method;var wasmTextFile=Module["wasmTextFile"]||"rustynes.wast";var wasmBinaryFile=Module["wasmBinaryFile"]||"rustynes.wasm";var asmjsCodeFile=Module["asmjsCodeFile"]||"rustynes.asm.js";if(typeof Module["locateFile"]==="function"){wasmTextFile=Module["locateFile"](wasmTextFile);wasmBinaryFile=Module["locateFile"](wasmBinaryFile);asmjsCodeFile=Module["locateFile"](asmjsCodeFile)}var wasmPageSize=64*1024;var asm2wasmImports={"f64-rem":(function(x,y){return x%y}),"f64-to-int":(function(x){return x|0}),"i32s-div":(function(x,y){return(x|0)/(y|0)|0}),"i32u-div":(function(x,y){return(x>>>0)/(y>>>0)>>>0}),"i32s-rem":(function(x,y){return(x|0)%(y|0)|0}),"i32u-rem":(function(x,y){return(x>>>0)%(y>>>0)>>>0}),"debugger":(function(){debugger})};var info={"global":null,"env":null,"asm2wasm":asm2wasmImports,"parent":Module};var exports=null;function lookupImport(mod,base){var lookup=info;if(mod.indexOf(".")<0){lookup=(lookup||{})[mod]}else{var parts=mod.split(".");lookup=(lookup||{})[parts[0]];lookup=(lookup||{})[parts[1]]}if(base){lookup=(lookup||{})[base]}if(lookup===undefined){abort("bad lookupImport to ("+mod+")."+base)}return lookup}function mergeMemory(newBuffer){var oldBuffer=Module["buffer"];if(newBuffer.byteLength=0||Module["wasmJSMethod"].indexOf("interpret-asm2wasm")>=0?"rustynes.js.mem":null;var STATIC_BUMP=18144;Module["STATIC_BASE"]=STATIC_BASE;Module["STATIC_BUMP"]=STATIC_BUMP;var tempDoublePtr=STATICTOP;STATICTOP+=16;function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted}),addRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++}),decRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module["dynCall_vi"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}throw ptr}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(Runtime.setTempRet0(0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(Runtime.setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(Runtime.setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(Runtime.setTempRet0(throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr}function __Unwind_FindEnclosingFunction(){return 0}Module["_pthread_mutex_lock"]=_pthread_mutex_lock;function _stop_noise(){Module.NES.noise.stop()}function _pthread_condattr_destroy(){return 0}function _pthread_condattr_init(){return 0}var PTHREAD_SPECIFIC={};var PTHREAD_SPECIFIC_NEXT_KEY=1;var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_mutex_init(){}function _pthread_mutexattr_destroy(){}function _start_noise(){Module.NES.noise.start()}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}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(!window["setImmediate"]){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";function Browser_setImmediate_messageHandler(event){if(event.source===window&&event.data===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}}window.addEventListener("message",Browser_setImmediate_messageHandler,true);window["setImmediate"]=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);window.postMessage({target:emscriptenMainLoopMessageId})}else window.postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){window["setImmediate"](Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop,arg,noSetTiming){Module["noExitRuntime"]=true;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=func;Browser.mainLoop.arg=arg;var browserIterationFunc;if(typeof arg!=="undefined"){browserIterationFunc=(function(){Module["dynCall_vi"](func,arg)})}else{browserIterationFunc=(function(){Module["dynCall_v"](func)})}var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;Browser.mainLoop.runner=function Browser_mainLoop_runner(){if(ABORT)return;if(Browser.mainLoop.queue.length>0){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}}console.log('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(thisMainLoopId1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}if(Browser.mainLoop.method==="timeout"&&Module.ctx){Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");Browser.mainLoop.method=""}Browser.mainLoop.runIter(browserIterationFunc);if(thisMainLoopId0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"SimulateInfiniteLoop"}}var Browser={mainLoop:{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;_emscripten_set_main_loop(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=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;Browser.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"]||(function(){});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(function(){});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",(function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}}),false)}}}),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};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}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,vrDevice){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;Browser.vrDevice=vrDevice;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;if(typeof Browser.vrDevice==="undefined")Browser.vrDevice=null;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=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||(function(){});canvas.exitFullscreen=canvas.exitFullscreen.bind(document);if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas)Browser.setFullscreenCanvasSize()}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas)Browser.setWindowedCanvasSize()}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen);Browser.updateCanvasDimensions(canvas)}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"]?(function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}):null)||(canvasContainer["webkitRequestFullScreen"]?(function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}):null);if(vrDevice){canvasContainer.requestFullscreen({vrDisplay:vrDevice})}else{canvasContainer.requestFullscreen()}}),requestFullScreen:(function(lockPointer,resizeCanvas,vrDevice){Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead.");Browser.requestFullScreen=(function(lockPointer,resizeCanvas,vrDevice){return Browser.requestFullscreen(lockPointer,resizeCanvas,vrDevice)});return Browser.requestFullscreen(lockPointer,resizeCanvas,vrDevice)}),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 requestAnimationFrame(func){if(typeof window==="undefined"){Browser.fakeRequestAnimationFrame(func)}else{if(!window.requestAnimationFrame){window.requestAnimationFrame=window["requestAnimationFrame"]||window["mozRequestAnimationFrame"]||window["webkitRequestAnimationFrame"]||window["msRequestAnimationFrame"]||window["oRequestAnimationFrame"]||Browser.fakeRequestAnimationFrame}window.requestAnimationFrame(func)}},safeCallback:(function(func){return(function(){if(!ABORT)return func.apply(null,arguments)})}),allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=false}),resumeAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=true;if(Browser.queuedAsyncCallbacks.length>0){var callbacks=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[];callbacks.forEach((function(func){func()}))}}),safeRequestAnimationFrame:(function(func){return Browser.requestAnimationFrame((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}))}),safeSetTimeout:(function(func,timeout){Module["noExitRuntime"]=true;return setTimeout((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}),timeout)}),safeSetInterval:(function(func,timeout){Module["noExitRuntime"]=true;return setInterval((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}}),timeout)}),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;break;case"mousewheel":delta=event.wheelDelta;break;case"wheel":delta=event["deltaY"];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}}),asyncLoad:(function(url,onload,onerror,noRunDep){var dep=!noRunDep?getUniqueRunDependency("al "+url):"";Module["readAsync"](url,(function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)}),(function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}}));if(dep)addRunDependency(dep)}),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+Runtime.QUANTUM_SIZE*0>>2];flags=flags|8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),setWindowedCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags&~8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}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]=poolPtr;HEAP32[_environ>>2]=envPtr}else{envPtr=HEAP32[_environ>>2];poolPtr=HEAP32[envPtr>>2]}var strings=[];var totalSize=0;for(var key in env){if(typeof env[key]==="string"){var line=key+"="+env[key];strings.push(line);totalSize+=line.length}}if(totalSize>TOTAL_ENV_SIZE){throw new Error("Environment size exceeded TOTAL_ENV_SIZE!")}var ptrSize=4;for(var i=0;i>2]=poolPtr;poolPtr+=line.length+1}HEAP32[envPtr+strings.length*ptrSize>>2]=0}var ENV={};function _getenv(name){if(name===0)return 0;name=Pointer_stringify(name);if(!ENV.hasOwnProperty(name))return 0;if(_getenv.ret)_free(_getenv.ret);_getenv.ret=allocate(intArrayFromString(ENV[name]),"i8",ALLOC_NORMAL);return _getenv.ret}function ___cxa_find_matching_catch_2(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___cxa_find_matching_catch_3(){return ___cxa_find_matching_catch.apply(null,arguments)}Module["_pthread_mutex_unlock"]=_pthread_mutex_unlock;function _pthread_cond_signal(){return 0}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}Module["_sbrk"]=_sbrk;Module["_memmove"]=_memmove;function _dladdr(addr,info){var fname=allocate(intArrayFromString(Module["thisProgram"]||"./this.program"),"i8",ALLOC_NORMAL);HEAP32[addr>>2]=fname;HEAP32[addr+4>>2]=0;HEAP32[addr+8>>2]=0;HEAP32[addr+12>>2]=0;return 1}function ___gxx_personality_v0(){}function _pthread_mutex_destroy(){}var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};var PATH={splitPath:(function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)}),normalizeArray:(function(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:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(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:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),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.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.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){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){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};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(ERRNO_CODES.EPERM)}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}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;inode.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.lengthnewSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+lengthe2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};STATICTOP+=16;STATICTOP+=16;STATICTOP+=16;var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(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:(function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(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:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,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:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=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(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});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})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(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:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(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:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("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(err){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(err)}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}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(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}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:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(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(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdirTree:(function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(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);if(typeof Uint8Array!="undefined")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||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(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;console.log("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((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;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;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}),doMsync:(function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)}),doMkdir:(function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}),doMknod:(function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0}),doReadlink:(function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}),doAccess:(function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0}),doDup:(function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd}),doReadv:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}),varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),getStreamFromFD:(function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream}),getSocketFromFD:(function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket}),getSocketAddress:(function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21506:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};case 21523:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _pthread_cond_wait(){return 0}function _abort(){Module["abort"]()}Module["_llvm_bswap_i32"]=_llvm_bswap_i32;function _canvas_render(ptr,len){Module.NES.buf=new Uint8Array(Module.HEAPU8.buffer,ptr,len);Module.NES.image.data.set(Module.NES.buf);Module.NES.ctx.putImageData(Module.NES.image,0,0)}function _pthread_rwlock_unlock(){return 0}Module["_memset"]=_memset;function _pthread_mutexattr_settype(){}function _set_oscillator_volume(index,volume){Module.NES.oscs[index].setVolume(volume)}function _pthread_cond_destroy(){return 0}function _free(){}Module["_free"]=_free;function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___lock(){}function ___unlock(){}function _pthread_mutexattr_init(){}function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}function _set_oscillator_frequency(index,freq){Module.NES.oscs[index].setFrequency(freq)}function _set_noise_frequency(freq){Module.NES.noise.setFrequency(freq)}function _pthread_key_delete(key){if(key in PTHREAD_SPECIFIC){delete PTHREAD_SPECIFIC[key];return 0}return ERRNO_CODES.EINVAL}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function _malloc(bytes){var ptr=Runtime.dynamicAlloc(bytes+8);return ptr+8&4294967288}Module["_malloc"]=_malloc;function ___cxa_allocate_exception(size){return _malloc(size)}function _llvm_trap(){abort("trap!")}function __emscripten_traverse_stack(args){if(!args||!args.callee||!args.callee.name){return[null,"",""]}var funstr=args.callee.toString();var funcname=args.callee.name;var str="(";var first=true;for(i in args){var a=args[i];if(!first){str+=", "}first=false;if(typeof a==="number"||typeof a==="string"){str+=a}else{str+="("+typeof a+")"}}str+=")";var caller=args.callee.caller;args=caller?caller.arguments:[];if(first)str="";return[args,funcname,str]}function _emscripten_get_callstack_js(flags){var callstack=jsStackTrace();var iThisFunc=callstack.lastIndexOf("_emscripten_log");var iThisFunc2=callstack.lastIndexOf("_emscripten_get_callstack");var iNextLine=callstack.indexOf("\n",Math.max(iThisFunc,iThisFunc2))+1;callstack=callstack.slice(iNextLine);if(flags&8&&typeof emscripten_source_map==="undefined"){Runtime.warnOnce('Source map information is not available, emscripten_log with EM_LOG_C_STACK will be ignored. Build with "--pre-js $EMSCRIPTEN/src/emscripten-source-map.min.js" linker flag to add source map loading to code.');flags^=8;flags|=16}var stack_args=null;if(flags&128){var stack_args=__emscripten_traverse_stack(arguments);while(stack_args[1].indexOf("_emscripten_")>=0)stack_args=__emscripten_traverse_stack(stack_args[0])}lines=callstack.split("\n");callstack="";var newFirefoxRe=new RegExp("\\s*(.*?)@(.*?):([0-9]+):([0-9]+)");var firefoxRe=new RegExp("\\s*(.*?)@(.*):(.*)(:(.*))?");var chromeRe=new RegExp("\\s*at (.*?) \\((.*):(.*):(.*)\\)");for(l in lines){var line=lines[l];var jsSymbolName="";var file="";var lineno=0;var column=0;var parts=chromeRe.exec(line);if(parts&&parts.length==5){jsSymbolName=parts[1];file=parts[2];lineno=parts[3];column=parts[4]}else{parts=newFirefoxRe.exec(line);if(!parts)parts=firefoxRe.exec(line);if(parts&&parts.length>=4){jsSymbolName=parts[1];file=parts[2];lineno=parts[3];column=parts[4]|0}else{callstack+=line+"\n";continue}}var cSymbolName=flags&32?demangle(jsSymbolName):jsSymbolName;if(!cSymbolName){cSymbolName=jsSymbolName}var haveSourceMap=false;if(flags&8){var orig=emscripten_source_map.originalPositionFor({line:lineno,column:column});haveSourceMap=orig&&orig.source;if(haveSourceMap){if(flags&64){orig.source=orig.source.substring(orig.source.replace(/\\/g,"/").lastIndexOf("/")+1)}callstack+=" at "+cSymbolName+" ("+orig.source+":"+orig.line+":"+orig.column+")\n"}}if(flags&16||!haveSourceMap){if(flags&64){file=file.substring(file.replace(/\\/g,"/").lastIndexOf("/")+1)}callstack+=(haveSourceMap?" = "+jsSymbolName:" at "+cSymbolName)+" ("+file+":"+lineno+":"+column+")\n"}if(flags&128&&stack_args[0]){if(stack_args[1]==jsSymbolName&&stack_args[2].length>0){callstack=callstack.replace(/\s+$/,"");callstack+=" with values: "+stack_args[1]+stack_args[2]+"\n"}stack_args=__emscripten_traverse_stack(stack_args[0])}}callstack=callstack.replace(/\s+$/,"");return callstack}function __Unwind_Backtrace(func,arg){var trace=_emscripten_get_callstack_js();var parts=trace.split("\n");for(var i=0;i>1]=2;return 0};case 13:case 14:case 13:case 14:return 0;case 16:case 8:return-ERRNO_CODES.EINVAL;case 9:___setErrNo(ERRNO_CODES.EINVAL);return-1;default:{return-ERRNO_CODES.EINVAL}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_llvm_bswap_i16"]=_llvm_bswap_i16;function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["requestFullScreen"]=function Module_requestFullScreen(lockPointer,resizeCanvas,vrDevice){Module.printErr("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead.");Module["requestFullScreen"]=Module["requestFullscreen"];Browser.requestFullScreen(lockPointer,resizeCanvas,vrDevice)};Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas,vrDevice){Browser.requestFullscreen(lockPointer,resizeCanvas,vrDevice)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function _emscripten_get_now_actual(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else if(typeof self==="object"&&self["performance"]&&typeof self["performance"]["now"]==="function"){_emscripten_get_now=(function(){return self["performance"]["now"]()})}else if(typeof performance==="object"&&typeof performance["now"]==="function"){_emscripten_get_now=(function(){return performance["now"]()})}else{_emscripten_get_now=Date.now}___buildEnvironment(ENV);FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC);STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;Module["wasmTableSize"]=370;Module["wasmMaxTableSize"]=370;function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_i(index){try{return Module["dynCall_i"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vii(index,a1,a2){try{Module["dynCall_vii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_ji(index,a1){try{return Module["dynCall_ji"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_v(index){try{Module["dynCall_v"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){try{Module["dynCall_viiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){try{return Module["dynCall_iiiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viii(index,a1,a2,a3){try{Module["dynCall_viii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_iiii":invoke_iiii,"invoke_i":invoke_i,"invoke_vi":invoke_vi,"invoke_vii":invoke_vii,"invoke_ii":invoke_ii,"invoke_ji":invoke_ji,"invoke_v":invoke_v,"invoke_viiii":invoke_viiii,"invoke_iii":invoke_iii,"invoke_iiiiii":invoke_iiiiii,"invoke_viii":invoke_viii,"___syscall221":___syscall221,"_pthread_cond_wait":_pthread_cond_wait,"_change_oscillator_frequency":_change_oscillator_frequency,"_stop_oscillator":_stop_oscillator,"_set_oscillator_pulse_width":_set_oscillator_pulse_width,"__Unwind_FindEnclosingFunction":__Unwind_FindEnclosingFunction,"_pthread_key_create":_pthread_key_create,"_emscripten_set_main_loop_timing":_emscripten_set_main_loop_timing,"___gxx_personality_v0":___gxx_personality_v0,"_set_oscillator_frequency":_set_oscillator_frequency,"___cxa_free_exception":___cxa_free_exception,"___cxa_find_matching_catch_2":___cxa_find_matching_catch_2,"__ZSt18uncaught_exceptionv":__ZSt18uncaught_exceptionv,"___buildEnvironment":___buildEnvironment,"_pthread_cond_init":_pthread_cond_init,"__Unwind_GetIPInfo":__Unwind_GetIPInfo,"_pthread_mutexattr_destroy":_pthread_mutexattr_destroy,"_pthread_cond_signal":_pthread_cond_signal,"_canvas_render":_canvas_render,"___setErrNo":___setErrNo,"_pthread_rwlock_unlock":_pthread_rwlock_unlock,"_pthread_key_delete":_pthread_key_delete,"___cxa_allocate_exception":___cxa_allocate_exception,"_emscripten_memcpy_big":_emscripten_memcpy_big,"___resumeException":___resumeException,"___cxa_find_matching_catch":___cxa_find_matching_catch,"_pthread_condattr_setclock":_pthread_condattr_setclock,"_set_noise_frequency":_set_noise_frequency,"_pthread_getspecific":_pthread_getspecific,"___cxa_find_matching_catch_3":___cxa_find_matching_catch_3,"_pthread_rwlock_rdlock":_pthread_rwlock_rdlock,"__emscripten_traverse_stack":__emscripten_traverse_stack,"_pthread_condattr_init":_pthread_condattr_init,"_abort":_abort,"_pthread_mutex_destroy":_pthread_mutex_destroy,"_start_noise":_start_noise,"_set_noise_volume":_set_noise_volume,"_start_oscillator":_start_oscillator,"_getenv":_getenv,"_pthread_condattr_destroy":_pthread_condattr_destroy,"___syscall54":___syscall54,"___unlock":___unlock,"___syscall140":___syscall140,"_pthread_mutexattr_settype":_pthread_mutexattr_settype,"_emscripten_set_main_loop":_emscripten_set_main_loop,"_emscripten_get_now":_emscripten_get_now,"_pthread_mutexattr_init":_pthread_mutexattr_init,"_pthread_setspecific":_pthread_setspecific,"_dladdr":_dladdr,"___cxa_throw":___cxa_throw,"___lock":___lock,"___syscall6":___syscall6,"___syscall5":___syscall5,"___syscall4":___syscall4,"___syscall3":___syscall3,"_pthread_cond_destroy":_pthread_cond_destroy,"_emscripten_cancel_main_loop":_emscripten_cancel_main_loop,"_set_oscillator_volume":_set_oscillator_volume,"_llvm_trap":_llvm_trap,"_pthread_mutex_init":_pthread_mutex_init,"__Unwind_Backtrace":__Unwind_Backtrace,"_stop_noise":_stop_noise,"___syscall146":___syscall146,"_emscripten_get_callstack_js":_emscripten_get_callstack_js,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX};var asm=Module["asm"](Module.asmGlobalArg,Module.asmLibraryArg,buffer);Module["asm"]=asm;var ___rdl_dealloc=Module["___rdl_dealloc"]=(function(){return Module["asm"]["___rdl_dealloc"].apply(null,arguments)});var _main=Module["_main"]=(function(){return Module["asm"]["_main"].apply(null,arguments)});var ___rdl_usable_size=Module["___rdl_usable_size"]=(function(){return Module["asm"]["___rdl_usable_size"].apply(null,arguments)});var stackSave=Module["stackSave"]=(function(){return Module["asm"]["stackSave"].apply(null,arguments)});var getTempRet0=Module["getTempRet0"]=(function(){return Module["asm"]["getTempRet0"].apply(null,arguments)});var _rust_eh_personality=Module["_rust_eh_personality"]=(function(){return Module["asm"]["_rust_eh_personality"].apply(null,arguments)});var ___rdl_grow_in_place=Module["___rdl_grow_in_place"]=(function(){return Module["asm"]["___rdl_grow_in_place"].apply(null,arguments)});var setThrew=Module["setThrew"]=(function(){return Module["asm"]["setThrew"].apply(null,arguments)});var ___rdl_alloc_zeroed=Module["___rdl_alloc_zeroed"]=(function(){return Module["asm"]["___rdl_alloc_zeroed"].apply(null,arguments)});var _fflush=Module["_fflush"]=(function(){return Module["asm"]["_fflush"].apply(null,arguments)});var setTempRet0=Module["setTempRet0"]=(function(){return Module["asm"]["setTempRet0"].apply(null,arguments)});var ___rdl_alloc_excess=Module["___rdl_alloc_excess"]=(function(){return Module["asm"]["___rdl_alloc_excess"].apply(null,arguments)});var _memset=Module["_memset"]=(function(){return Module["asm"]["_memset"].apply(null,arguments)});var _sbrk=Module["_sbrk"]=(function(){return Module["asm"]["_sbrk"].apply(null,arguments)});var _memcpy=Module["_memcpy"]=(function(){return Module["asm"]["_memcpy"].apply(null,arguments)});var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=(function(){return Module["asm"]["_llvm_bswap_i32"].apply(null,arguments)});var ___rdl_oom=Module["___rdl_oom"]=(function(){return Module["asm"]["___rdl_oom"].apply(null,arguments)});var stackAlloc=Module["stackAlloc"]=(function(){return Module["asm"]["stackAlloc"].apply(null,arguments)});var _run=Module["_run"]=(function(){return Module["asm"]["_run"].apply(null,arguments)});var _ntohs=Module["_ntohs"]=(function(){return Module["asm"]["_ntohs"].apply(null,arguments)});var _htonl=Module["_htonl"]=(function(){return Module["asm"]["_htonl"].apply(null,arguments)});var _pthread_mutex_unlock=Module["_pthread_mutex_unlock"]=(function(){return Module["asm"]["_pthread_mutex_unlock"].apply(null,arguments)});var _llvm_bswap_i16=Module["_llvm_bswap_i16"]=(function(){return Module["asm"]["_llvm_bswap_i16"].apply(null,arguments)});var ___rdl_realloc_excess=Module["___rdl_realloc_excess"]=(function(){return Module["asm"]["___rdl_realloc_excess"].apply(null,arguments)});var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=(function(){return Module["asm"]["_emscripten_get_global_libc"].apply(null,arguments)});var _htons=Module["_htons"]=(function(){return Module["asm"]["_htons"].apply(null,arguments)});var ___errno_location=Module["___errno_location"]=(function(){return Module["asm"]["___errno_location"].apply(null,arguments)});var _free=Module["_free"]=(function(){return Module["asm"]["_free"].apply(null,arguments)});var runPostSets=Module["runPostSets"]=(function(){return Module["asm"]["runPostSets"].apply(null,arguments)});var establishStackSpace=Module["establishStackSpace"]=(function(){return Module["asm"]["establishStackSpace"].apply(null,arguments)});var _memmove=Module["_memmove"]=(function(){return Module["asm"]["_memmove"].apply(null,arguments)});var ___rdl_realloc=Module["___rdl_realloc"]=(function(){return Module["asm"]["___rdl_realloc"].apply(null,arguments)});var stackRestore=Module["stackRestore"]=(function(){return Module["asm"]["stackRestore"].apply(null,arguments)});var _malloc=Module["_malloc"]=(function(){return Module["asm"]["_malloc"].apply(null,arguments)});var _pthread_mutex_lock=Module["_pthread_mutex_lock"]=(function(){return Module["asm"]["_pthread_mutex_lock"].apply(null,arguments)});var ___rdl_shrink_in_place=Module["___rdl_shrink_in_place"]=(function(){return Module["asm"]["___rdl_shrink_in_place"].apply(null,arguments)});var ___rdl_alloc=Module["___rdl_alloc"]=(function(){return Module["asm"]["___rdl_alloc"].apply(null,arguments)});var dynCall_iiii=Module["dynCall_iiii"]=(function(){return Module["asm"]["dynCall_iiii"].apply(null,arguments)});var dynCall_i=Module["dynCall_i"]=(function(){return Module["asm"]["dynCall_i"].apply(null,arguments)});var dynCall_vi=Module["dynCall_vi"]=(function(){return Module["asm"]["dynCall_vi"].apply(null,arguments)});var dynCall_vii=Module["dynCall_vii"]=(function(){return Module["asm"]["dynCall_vii"].apply(null,arguments)});var dynCall_ii=Module["dynCall_ii"]=(function(){return Module["asm"]["dynCall_ii"].apply(null,arguments)});var dynCall_ji=Module["dynCall_ji"]=(function(){return Module["asm"]["dynCall_ji"].apply(null,arguments)});var dynCall_v=Module["dynCall_v"]=(function(){return Module["asm"]["dynCall_v"].apply(null,arguments)});var dynCall_viiii=Module["dynCall_viiii"]=(function(){return Module["asm"]["dynCall_viiii"].apply(null,arguments)});var dynCall_iii=Module["dynCall_iii"]=(function(){return Module["asm"]["dynCall_iii"].apply(null,arguments)});var dynCall_iiiiii=Module["dynCall_iiiiii"]=(function(){return Module["asm"]["dynCall_iiiiii"].apply(null,arguments)});var dynCall_viii=Module["dynCall_viii"]=(function(){return Module["asm"]["dynCall_viii"].apply(null,arguments)});Runtime.stackAlloc=Module["stackAlloc"];Runtime.stackSave=Module["stackSave"];Runtime.stackRestore=Module["stackRestore"];Runtime.establishStackSpace=Module["establishStackSpace"];Runtime.setTempRet0=Module["setTempRet0"];Runtime.getTempRet0=Module["getTempRet0"];Module["asm"]=asm;if(memoryInitializer){if(typeof Module["locateFile"]==="function"){memoryInitializer=Module["locateFile"](memoryInitializer)}else if(Module["memoryInitializerPrefixURL"]){memoryInitializer=Module["memoryInitializerPrefixURL"]+memoryInitializer}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,Runtime.GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=(function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,Runtime.GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")});function doBrowserLoad(){Module["readAsync"](memoryInitializer,applyMemoryInitializer,(function(){throw"could not load memory initializer "+memoryInitializer}))}if(Module["memoryInitializerRequest"]){function useRequest(){var request=Module["memoryInitializerRequest"];if(request.status!==200&&request.status!==0){console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}applyMemoryInitializer(request.response)}if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;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/wasm/rustynes.wasm b/wasm/rustynes.wasm new file mode 100644 index 0000000000000000000000000000000000000000..d67ff49f86e10833ac85ef61bf3d3bbc3e8c64e8 GIT binary patch literal 161256 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�~cp{ zNnNR zCbj_YYG=(34dJX04-&2_eZRDJPhSCI(p?&;yHeGh9E8KwaScHt#Mwmzv2Xhr;6#{2+8;Ji+Z$9Ed+Kr^VYRMY|mp=b5lVyvW}f zr6*z%S+g(EpM6}Ym5>0gfkU*Ql|&qVbg%{?M}$zxQyqr{lPZBV9a_X=CJ4+mfBxaD z`Tpje`?`~oJaY|sr#3}B$$LEdqS1`+F~WNznNK6ZBxG<%RDij75KP**|AOb)!R^*s zc$d0ExDqu1MYU7f0$Y2T7_}#&1ur0Vwq{-k8xd5Tm@8x#N;(&-$w$1v(1M}2*^9Nc zjc5TBtpNx8#HBL<3tM75RrTggSg&fwxn%y73aQAhofkpCx0*pbiuJxnpy~e0N2BQ) zo=ZS`)6q3wX5z&MIzb#{tYv5!j|xFhDtbj7I~6_TZAj+JOtnUe5+Bmx_`Ja_ySEsR#5s@t*b@1t_r6_1uk$uOH>096|}5nOJ)|O zR>TDYUCGlSYcCVrIZ~-HwoGmj>kVyviAA1aa~{-60V7i^>cSQ4(Rtb+Aw){O3bfeL zH-Fa0!A&2i!;b2htw)xnRpMUlRrNXH7(c>&S3~ zizZ(aTDi*)5su+#iqdGZlvXA(ⅅ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 literal 0 HcmV?d00001