diff options
author | Ben Smith <binji@chromium.org> | 2016-04-18 00:47:14 -0700 |
---|---|---|
committer | Ben Smith <binji@chromium.org> | 2016-04-18 00:47:14 -0700 |
commit | 36a1f6a90c854523b80fa3166facb08e65dcfdbd (patch) | |
tree | 97527f91120a95c3ec46d38c3e98d42cb91efa54 /demo/libwasm.js | |
parent | 187be92a30fe1e409d019de0dac7954428e64f5f (diff) | |
download | wabt-36a1f6a90c854523b80fa3166facb08e65dcfdbd.tar.gz wabt-36a1f6a90c854523b80fa3166facb08e65dcfdbd.tar.bz2 wabt-36a1f6a90c854523b80fa3166facb08e65dcfdbd.zip |
fix emscripten release build
The emscripten release build loads the module memory asynchronously,
which means you can't call any of the module functions until it has
loaded.
Diffstat (limited to 'demo/libwasm.js')
-rw-r--r-- | demo/libwasm.js | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/demo/libwasm.js b/demo/libwasm.js index f217437e..7f43831d 100644 --- a/demo/libwasm.js +++ b/demo/libwasm.js @@ -1,4 +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 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 read(){throw"no read() available (jsc?)"}}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}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};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 print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function 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"}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}),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:[null,null,null,null,null,null,null,null,null,null],addFunction:(function(func){for(var i=0;i<Runtime.functionPointers.length;i++){if(!Runtime.functionPointers[i]){Runtime.functionPointers[i]=func;return 2*(1+i)}}throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."}),removeFunction:(function(index){Runtime.functionPointers[(index-2)/2]=null}),warnOnce:(function(text){if(!Runtime.warnOnce.shown)Runtime.warnOnce.shown={};if(!Runtime.warnOnce.shown[text]){Runtime.warnOnce.shown[text]=1;Module.printErr(text)}}),funcWrappers:{},getFuncWrapper:(function(func,sig){assert(sig);if(!Runtime.funcWrappers[sig]){Runtime.funcWrappers[sig]={}}var sigCache=Runtime.funcWrappers[sig];if(!sigCache[func]){if(sig.length===1){sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func)}}else if(sig.length===2){sigCache[func]=function dynCall_wrapper(arg){return Runtime.dynCall(sig,func,[arg])}}else{sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func,Array.prototype.slice.call(arguments))}}}return sigCache[func]}),getCompilerSetting:(function(name){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"}),stackAlloc:(function(size){var ret=STACKTOP;STACKTOP=STACKTOP+size|0;STACKTOP=STACKTOP+15&-16;return ret}),staticAlloc:(function(size){var ret=STATICTOP;STATICTOP=STATICTOP+size|0;STATICTOP=STATICTOP+15&-16;return ret}),dynamicAlloc:(function(size){var ret=DYNAMICTOP;DYNAMICTOP=DYNAMICTOP+size|0;DYNAMICTOP=DYNAMICTOP+15&-16;if(DYNAMICTOP>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=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:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=false;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){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}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<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=Runtime.stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);if(returnType==="string")ret=Pointer_stringify(ret);if(stack!==0){if(opts&&opts.async){EmterpreterAsync.asyncFinalizers.push((function(){Runtime.stackRestore(stack)}));return}Runtime.stackRestore(stack)}return ret};var sourceRegex=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(jsfunc){var parsed=jsfunc.toString().match(sourceRegex).slice(1);return{arguments:parsed[0],body:parsed[1],returnValue:parsed[2]}}var JSsource=null;function ensureJSsource(){if(!JSsource){JSsource={};for(var fun in JSfuncs){if(JSfuncs.hasOwnProperty(fun)){JSsource[fun]=parseJSFunc(JSfuncs[fun])}}}}cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident);var numericArgs=argTypes.every((function(type){return type==="number"}));var numericRet=returnType!=="string";if(numericRet&&numericArgs){return cfunc}var argNames=argTypes.map((function(x,i){return"$"+i}));var funcstr="(function("+argNames.join(",")+") {";var nargs=argTypes.length;if(!numericArgs){ensureJSsource();funcstr+="var stack = "+JSsource["stackSave"].body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if(type==="number")continue;var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";";funcstr+=convertCode.body+";";funcstr+=arg+"=("+convertCode.returnValue+");"}}var cfuncname=parseJSFunc((function(){return cfunc})).returnValue;funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");";if(!numericRet){var strgfy=parseJSFunc((function(){return Pointer_stringify})).returnValue;funcstr+="ret = "+strgfy+"(ret);"}if(!numericArgs){ensureJSsource();funcstr+=JSsource["stackRestore"].body.replace("()","(stack)")+";"}funcstr+="return ret})";return eval(funcstr)}}))();Module["ccall"]=ccall;Module["cwrap"]=cwrap;function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>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<stop;ptr+=4){HEAP32[ptr>>2]=0}stop=ret+size;while(ptr<stop){HEAP8[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<size){var curr=slab[i];if(typeof curr==="function"){curr=Runtime.getFunctionIndex(curr)}type=singleType||types[i];if(type===0){i++;continue}if(type=="i64")type="i32";setValue(ret+i,curr,type);if(previousType!==type){typeSize=Runtime.getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}Module["allocate"]=allocate;function getMemory(size){if(!staticSealed)return Runtime.staticAlloc(size);if(typeof _sbrk!=="undefined"&&!_sbrk.called||!runtimeInitialized)return Runtime.dynamicAlloc(size);return _malloc(size)}Module["getMemory"]=getMemory;function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+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;function UTF8ArrayToString(u8Array,idx){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<str.length;++i){var u=str.charCodeAt(i);if(u>=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<str.length;++i){var u=str.charCodeAt(i);if(u>=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;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](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){return text.replace(/__Z[\w\d_]+/g,(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;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var buffer;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;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=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;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 adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or 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;var totalMemory=64*1024;while(totalMemory<TOTAL_MEMORY||totalMemory<2*TOTAL_STACK){if(totalMemory<16*1024*1024){totalMemory*=2}else{totalMemory+=16*1024*1024}}if(totalMemory!==TOTAL_MEMORY){TOTAL_MEMORY=totalMemory}if(Module["buffer"]){buffer=Module["buffer"]}else{buffer=new ArrayBuffer(TOTAL_MEMORY)}updateGlobalBufferViews();HEAP32[0]=255;if(HEAPU8[0]!==255||HEAPU8[3]!==0)throw"Typed arrays 2 must be run on a little-endian system";Module["HEAP"]=HEAP;Module["buffer"]=buffer;Module["HEAP8"]=HEAP8;Module["HEAP16"]=HEAP16;Module["HEAP32"]=HEAP32;Module["HEAPU8"]=HEAPU8;Module["HEAPU16"]=HEAPU16;Module["HEAPU32"]=HEAPU32;Module["HEAPF32"]=HEAPF32;Module["HEAPF64"]=HEAPF64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.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;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i<array.length){var chr=array[i];HEAP8[buffer+i>>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i<array.length;i++){HEAP8[buffer++>>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>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["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_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;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+233744;__ATINIT__.push();memoryInitializer="libwasm.js.mem";var tempDoublePtr=STATICTOP;STATICTOP+=16;Module["_bitshift64Ashr"]=_bitshift64Ashr;Module["_i64Subtract"]=_i64Subtract;Module["_i64Add"]=_i64Add;Module["_memset"]=_memset;function _pthread_cleanup_push(routine,arg){__ATEXIT__.push((function(){Runtime.dynCall("vi",routine,[arg])}));_pthread_cleanup_push.level=__ATEXIT__.length}Module["_bitshift64Lshr"]=_bitshift64Lshr;Module["_bitshift64Shl"]=_bitshift64Shl;function _pthread_cleanup_pop(){assert(_pthread_cleanup_push.level==__ATEXIT__.length,"cannot pop if something else added meanwhile!");__ATEXIT__.pop();_pthread_cleanup_push.level=__ATEXIT__.length}function _abort(){Module["abort"]()}Module["___muldsi3"]=___muldsi3;Module["___muldi3"]=___muldi3;function ___lock(){}function ___unlock(){}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};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"};function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}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<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")})};var TTY={ttys:[],init:(function(){}),shutdown:(function(){}),register:(function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)}),stream_ops:{open:(function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}stream.tty=tty;stream.seekable=false}),close:(function(stream){stream.tty.ops.flush(stream.tty)}),flush:(function(stream){stream.tty.ops.flush(stream.tty)}),read:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead}),write:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}for(var i=0;i<length;i++){try{stream.tty.ops.put_char(stream.tty,buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}if(length){stream.node.timestamp=Date.now()}return i})},default_tty_ops:{get_char:(function(tty){if(!tty.input.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=new Buffer(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;var usingDevice=false;try{fd=fs.openSync("/dev/stdin","r");usingDevice=true}catch(e){}bytesRead=fs.readSync(fd,buf,0,BUFSIZE,null);if(usingDevice){fs.closeSync(fd)}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}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;i<node.usedBytes;++i)arr.push(node.contents[i]);return arr}return node.contents}),getFileDataAsTypedArray:(function(node){if(!node.contents)return new Uint8Array;if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)}),expandFileStorage:(function(node,newCapacity){if(node.contents&&node.contents.subarray&&newCapacity>node.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.buffer.byteLength:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)|0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.length<newCapacity)node.contents.push(0)}),resizeFileStorage:(function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(new ArrayBuffer(newSize));if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length<newSize)node.contents.push(0);node.usedBytes=newSize}),node_ops:{getattr:(function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}}),lookup:(function(parent,name){throw FS.genericErrors[ERRNO_CODES.ENOENT]}),mknod:(function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)}),rename:(function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}}}delete old_node.parent.contents[old_node.name];old_node.name=new_name;new_dir.contents[new_name]=old_node;old_node.parent=new_dir}),unlink:(function(parent,name){delete parent.contents[name]}),rmdir:(function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}delete parent.contents[name]}),readdir:(function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries}),symlink:(function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node}),readlink:(function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return node.link})},stream_ops:{read:(function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size}),write:(function(stream,buffer,offset,length,position,canOwn){if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=new Uint8Array(buffer.subarray(offset,offset+length));node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray)node.contents.set(buffer.subarray(offset,offset+length),position);else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length}),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.usedBytes}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position}),allocate:(function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&(contents.buffer===buffer||contents.buffer===buffer.buffer)){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<stream.node.usedBytes){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=_malloc(length);if(!ptr){throw new FS.ErrnoError(ERRNO_CODES.ENOMEM)}buffer.set(contents,ptr)}return{ptr:ptr,allocated:allocated}}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0})}};var IDBFS={dbs:{},indexedDB:(function(){if(typeof indexedDB!=="undefined")return indexedDB;var ret=null;if(typeof window==="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret}),DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:(function(mount){return MEMFS.mount.apply(null,arguments)}),syncfs:(function(mount,populate,callback){IDBFS.getLocalSet(mount,(function(err,local){if(err)return callback(err);IDBFS.getRemoteSet(mount,(function(err,remote){if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)}))}))}),getDB:(function(name,callback){var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}req.onupgradeneeded=(function(e){var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}});req.onsuccess=(function(){db=req.result;IDBFS.dbs[name]=db;callback(null,db)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),getLocalSet:(function(mount,callback){var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return(function(p){return PATH.join2(root,p)})}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={timestamp:stat.mtime}}return callback(null,{type:"local",entries:entries})}),getRemoteSet:(function(mount,callback){var entries={};IDBFS.getDB(mount.mountpoint,(function(err,db){if(err)return callback(err);var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=(function(e){callback(this.error);e.preventDefault()});var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=(function(event){var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries})}entries[cursor.primaryKey]={timestamp:cursor.key};cursor.continue()})}))}),loadLocalEntry:(function(path,callback){var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{timestamp:stat.mtime,mode:stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{timestamp:stat.mtime,mode:stat.mode,contents:node.contents})}else{return callback(new Error("node type not supported"))}}),storeLocalEntry:(function(path,entry,callback){try{if(FS.isDir(entry.mode)){FS.mkdir(path,entry.mode)}else if(FS.isFile(entry.mode)){FS.writeFile(path,entry.contents,{encoding:"binary",canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry.mode);FS.utime(path,entry.timestamp,entry.timestamp)}catch(e){return callback(e)}callback(null)}),removeLocalEntry:(function(path,callback){try{var lookup=FS.lookupPath(path);var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)}),loadRemoteEntry:(function(store,path,callback){var req=store.get(path);req.onsuccess=(function(event){callback(null,event.target.result)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),storeRemoteEntry:(function(store,path,entry,callback){var req=store.put(entry,path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),removeRemoteEntry:(function(store,path,callback){var req=store.delete(path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),reconcile:(function(src,dst,callback){var total=0;var create=[];Object.keys(src.entries).forEach((function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e.timestamp>e2.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&=~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<res;i++){buffer[offset+i]=nbuffer[i]}}return res}),write:(function(stream,buffer,offset,length,position){var nbuffer=new Buffer(buffer.subarray(offset,offset+length));var res;try{res=fs.writeSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}return res}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:(function(mount){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i<parts.length-1;i++){var curr=parts.slice(0,i+1).join("/");if(!createdParents[curr]){createdParents[curr]=WORKERFS.createNode(parent,curr,WORKERFS.DIR_MODE,0)}parent=createdParents[curr]}return parent}function base(path){var parts=path.split("/");return parts[parts.length-1]}Array.prototype.forEach.call(mount.opts["files"]||[],(function(file){WORKERFS.createNode(ensureParent(file.name),base(file.name),WORKERFS.FILE_MODE,0,file,file.lastModifiedDate)}));(mount.opts["blobs"]||[]).forEach((function(obj){WORKERFS.createNode(ensureParent(obj["name"]),base(obj["name"]),WORKERFS.FILE_MODE,0,obj["data"])}));(mount.opts["packages"]||[]).forEach((function(pack){pack["metadata"].files.forEach((function(file){var name=file.filename.substr(1);WORKERFS.createNode(ensureParent(name),base(name),WORKERFS.FILE_MODE,0,pack["blob"].slice(file.start,file.end))}))}));return root}),createNode:(function(parent,name,mode,dev,contents,mtime){var node=FS.createNode(parent,name,mode);node.mode=mode;node.node_ops=WORKERFS.node_ops;node.stream_ops=WORKERFS.stream_ops;node.timestamp=(mtime||new Date).getTime();assert(WORKERFS.FILE_MODE!==WORKERFS.DIR_MODE);if(mode===WORKERFS.FILE_MODE){node.size=contents.size;node.contents=contents}else{node.size=4096;node.contents={}}if(parent){parent.contents[name]=node}return node}),node_ops:{getattr:(function(node){return{dev:1,ino:undefined,mode:node.mode,nlink:1,uid:0,gid:0,rdev:undefined,size:node.size,atime:new Date(node.timestamp),mtime:new Date(node.timestamp),ctime:new Date(node.timestamp),blksize:4096,blocks:Math.ceil(node.size/4096)}}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}}),lookup:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}),mknod:(function(parent,name,mode,dev){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rename:(function(oldNode,newDir,newName){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),unlink:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rmdir:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readdir:(function(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),symlink:(function(parent,newName,oldPath){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readlink:(function(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM)})},stream_ops:{read:(function(stream,buffer,offset,length,position){if(position>=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;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count});current=lookup.node;if(count++>40){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<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>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)}),mkdev:(function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)}),symlink:(function(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.symlink(parent,newname,oldpath)}),rename:(function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}}),rmdir:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}return node.node_ops.readdir(node)}),unlink:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){if(err===ERRNO_CODES.EISDIR)err=ERRNO_CODES.EPERM;throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readlink:(function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return PATH.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))}),stat:(function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return node.node_ops.getattr(node)}),lstat:(function(path){return FS.stat(path,true)}),chmod:(function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})}),lchmod:(function(path,mode){FS.chmod(path,mode,true)}),fchmod:(function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chmod(stream.node,mode)}),chown:(function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{timestamp:Date.now()})}),lchown:(function(path,uid,gid){FS.chown(path,uid,gid,true)}),fchown:(function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chown(stream.node,uid,gid)}),truncate:(function(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})}),ftruncate:(function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}FS.truncate(stream.node,len)}),utime:(function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})}),open:(function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;Module["printErr"]("read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream}),close:(function(stream){if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}}),llseek:(function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position}),read:(function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead}),write:(function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message)}return bytesWritten}),allocate:(function(stream,offset,length){if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}stream.stream_ops.allocate(stream,offset,length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)}),munmap:(function(stream){return 0}),ioctl:(function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY)}return stream.stream_ops.ioctl(stream,cmd,arg)}),readFile:(function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret}),writeFile:(function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";opts.encoding=opts.encoding||"utf8";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var stream=FS.open(path,opts.flags,opts.mode);if(opts.encoding==="utf8"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,0,opts.canOwn)}else if(opts.encoding==="binary"){FS.write(stream,data,0,data.length,0,opts.canOwn)}FS.close(stream)}),cwd:(function(){return FS.currentPath}),chdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path}),createDefaultDirectories:(function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")}),createDefaultDevices:(function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:(function(){return 0}),write:(function(stream,buffer,offset,length,pos){return length})});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=(function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]})}else if(ENVIRONMENT_IS_NODE){random_device=(function(){return require("crypto").randomBytes(1)[0]})}else{random_device=(function(){return Math.random()*256|0})}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")}),createSpecialDirectories:(function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:(function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:(function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:(function(){return stream.path})}};ret.parent=ret;return ret})};return node})},{},"/proc/self/fd")}),createStandardStreams:(function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")}),ensureErrnoError:(function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=(function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}});this.setErrno(errno);this.message=ERRNO_MESSAGES[errno]};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach((function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack="<generic error, no stack>"}))}),staticInit:(function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS}}),init:(function(input,output,error){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()}),quit:(function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}}),getMode:(function(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode}),joinPath:(function(parts,forceRelative){var path=PATH.join.apply(null,parts);if(forceRelative&&path[0]=="/")path=path.substr(1);return path}),absolutePath:(function(relative,base){return PATH.resolve(base,relative)}),standardizePath:(function(path){return PATH.normalize(path)}),findObject:(function(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{___setErrNo(ret.error);return null}}),analyzePath:(function(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret}),createFolder:(function(parent,name,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.mkdir(path,mode)}),createPath:(function(parent,path,canRead,canWrite){parent=typeof parent==="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current}),createFile:(function(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)}),createDataFile:(function(parent,name,data,canRead,canWrite,canOwn){var path=name?PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name):parent;var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,"w");FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node}),createDevice:(function(parent,name,input,output){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:(function(stream){stream.seekable=false}),close:(function(stream){if(output&&output.buffer&&output.buffer.length){output(10)}}),read:(function(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead}),write:(function(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}if(length){stream.node.timestamp=Date.now()}return i})});return FS.mkdev(path,mode,dev)}),createLink:(function(parent,name,target,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);return FS.symlink(target,path)}),forceLoadFile:(function(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;var success=true;if(typeof XMLHttpRequest!=="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(Module["read"]){try{obj.contents=intArrayFromString(Module["read"](obj.url),true);obj.usedBytes=obj.contents.length}catch(e){success=false}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}if(!success)___setErrNo(ERRNO_CODES.EIO);return success}),createLazyFile:(function(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(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<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size};node.stream_ops=stream_ops;return node}),createPreloadedFile:(function(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}var handled=false;Module["preloadPlugins"].forEach((function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,(function(){if(onerror)onerror();removeRunDependency(dep)}));handled=true}}));if(!handled)finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){Browser.asyncLoad(url,(function(byteArray){processData(byteArray)}),onerror)}else{processData(url)}}),indexedDB:(function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB}),DB_NAME:(function(){return"EM_FS_"+window.location.pathname}),DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){console.log("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish()};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror}),loadFilesFromDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror})};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:(function(dirfd,path){if(path[0]!=="/"){var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);dir=dirstream.path}path=PATH.join2(dir,path)}return path}),doStat:(function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-ERRNO_CODES.ENOTDIR}throw e}HEAP32[buf>>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);ret=ret.slice(0,Math.max(0,bufsize));writeStringToMemory(ret,buf,true);return ret.length}),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<iovcnt;i++){var ptr=HEAP32[iov+i*8>>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<len)break}return ret}),doWritev:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>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 ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_STATIC);Module["_llvm_cttz_i32"]=_llvm_cttz_i32;Module["___udivmoddi4"]=___udivmoddi4;Module["___udivdi3"]=___udivdi3;var _llvm_fabs_f64=Math_abs;function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort("cannot dynamically allocate, sbrk now has control")})}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;Module["_memmove"]=_memmove;Module["___uremdi3"]=___uremdi3;function __exit(status){Module["exit"](status)}function _exit(status){__exit(status)}function _llvm_trap(){abort("trap!")}Module["_pthread_self"]=_pthread_self;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}}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)};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_llvm_ctlz_i64"]=_llvm_ctlz_i64;function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}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()}STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);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;asm["setThrew"](1,0)}}function jsCall_iiii(index,a1,a2,a3){return Runtime.functionPointers[index](a1,a2,a3)}function invoke_viiiii(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function jsCall_viiiii(index,a1,a2,a3,a4,a5){Runtime.functionPointers[index](a1,a2,a3,a4,a5)}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function jsCall_vi(index,a1){Runtime.functionPointers[index](a1)}function invoke_vii(index,a1,a2){try{Module["dynCall_vii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function jsCall_vii(index,a1,a2){Runtime.functionPointers[index](a1,a2)}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){try{return Module["dynCall_iiiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function jsCall_iiiiiii(index,a1,a2,a3,a4,a5,a6){return Runtime.functionPointers[index](a1,a2,a3,a4,a5,a6)}function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function jsCall_ii(index,a1){return Runtime.functionPointers[index](a1)}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;asm["setThrew"](1,0)}}function jsCall_viii(index,a1,a2,a3){Runtime.functionPointers[index](a1,a2,a3)}function invoke_iiiii(index,a1,a2,a3,a4){try{return Module["dynCall_iiiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function jsCall_iiiii(index,a1,a2,a3,a4){return Runtime.functionPointers[index](a1,a2,a3,a4)}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function jsCall_viiiiii(index,a1,a2,a3,a4,a5,a6){Runtime.functionPointers[index](a1,a2,a3,a4,a5,a6)}function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function jsCall_iii(index,a1,a2){return Runtime.functionPointers[index](a1,a2)}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;asm["setThrew"](1,0)}}function jsCall_iiiiii(index,a1,a2,a3,a4,a5){return Runtime.functionPointers[index](a1,a2,a3,a4,a5)}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;asm["setThrew"](1,0)}}function jsCall_viiii(index,a1,a2,a3,a4){Runtime.functionPointers[index](a1,a2,a3,a4)}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,"invoke_iiii":invoke_iiii,"jsCall_iiii":jsCall_iiii,"invoke_viiiii":invoke_viiiii,"jsCall_viiiii":jsCall_viiiii,"invoke_vi":invoke_vi,"jsCall_vi":jsCall_vi,"invoke_vii":invoke_vii,"jsCall_vii":jsCall_vii,"invoke_iiiiiii":invoke_iiiiiii,"jsCall_iiiiiii":jsCall_iiiiiii,"invoke_ii":invoke_ii,"jsCall_ii":jsCall_ii,"invoke_viii":invoke_viii,"jsCall_viii":jsCall_viii,"invoke_iiiii":invoke_iiiii,"jsCall_iiiii":jsCall_iiiii,"invoke_viiiiii":invoke_viiiiii,"jsCall_viiiiii":jsCall_viiiiii,"invoke_iii":invoke_iii,"jsCall_iii":jsCall_iii,"invoke_iiiiii":invoke_iiiiii,"jsCall_iiiiii":jsCall_iiiiii,"invoke_viiii":invoke_viiii,"jsCall_viiii":jsCall_viiii,"_pthread_cleanup_pop":_pthread_cleanup_pop,"___lock":___lock,"___syscall6":___syscall6,"___setErrNo":___setErrNo,"_abort":_abort,"_sbrk":_sbrk,"___unlock":___unlock,"_llvm_fabs_f64":_llvm_fabs_f64,"_pthread_cleanup_push":_pthread_cleanup_push,"_emscripten_memcpy_big":_emscripten_memcpy_big,"___syscall54":___syscall54,"___syscall140":___syscall140,"_llvm_trap":_llvm_trap,"_exit":_exit,"__exit":__exit,"___syscall145":___syscall145,"___syscall146":___syscall146,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"cttz_i8":cttz_i8};// EMSCRIPTEN_START_ASM +var wasm={};wasm.ready=new Promise((function(resolve,reject){wasm.$resolve=resolve;wasm.$reject=reject}));var Module={};Module.onRuntimeInitialized=(function(){var OK=0;var ERROR=1;function malloc(size){var addr=Module._malloc(size);if(addr==0)throw"malloc failed";return addr}function mallocz(size){var addr=malloc(size);HEAP8.fill(0,addr,addr+size);return addr}function free(p){Module._free(p)}function decorateStruct(struct,structName,members){struct.prototype=Object.create(Object.prototype);struct.$size=Module["_wasm_sizeof_"+structName]();struct.$allocate=(function(){return mallocz(this.$size)});struct.prototype.$free=(function(){return free(this.$addr)});struct.prototype.$destroy=(function(){return this.$free()});struct.$newAt=(function(addr){var this_=Object.create(this.prototype);var args=Array.prototype.slice.call(arguments,1);this_.$addr=addr;this_.$init.apply(this_,args);return this_});defineOffsets(struct.prototype,structName,members)}function defineOffsets(proto,structName,members){for(var i=0;i<members.length;++i){var offsetName="$offsetof_"+members[i];var funcName="_wasm_offsetof_"+structName+"_"+members[i];proto[offsetName]=Module[funcName]()}}function loadu32(addr){return HEAPU32[addr>>2]}function storeu8(addr,value){HEAPU8[addr]=value}function storeu32(addr,value){HEAPU32[addr>>2]=value}function storeboolopt(addr,value,defaultValue){storeu8(addr,typeof value==="undefined"?defaultValue:value)}function allocateString(str){var len=str.length+1;var mem=malloc(len);Module.writeAsciiToMemory(str,mem);return mem}function freeString(mem){free(mem)}function WrappedFunction(f){this.$index=Runtime.addFunction(f)}WrappedFunction.prototype=Object.create(Object.prototype);WrappedFunction.prototype.store=(function(addr){storeu32(addr,this.$index)});WrappedFunction.prototype.$destroy=(function(){Runtime.removeFunction(this.$index)});var Allocator=(function(){throw"Allocator is an abstract base class"});decorateStruct(Allocator,"allocator",["alloc","realloc","free","destroy","mark","reset_to_mark","print_stats"]);Allocator.prototype.$init=(function(){});Allocator.prototype.alloc=(function(size,align){var alloc=loadu32(this.$addr+this.$offsetof_alloc);return Runtime.dynCall("iiiiii",alloc,[this.$addr,size,align,0,0])});Allocator.prototype.realloc=(function(p,size,align){var realloc=loadu32(this.$addr+this.$offsetof_realloc);return Runtime.dynCall("iiiiiii",realloc,[this.$addr,p,size,align,0,0])});Allocator.prototype.free=(function(p){var free=loadu32(this.$addr+this.$offsetof_free);Runtime.dynCall("viiii",free,[this.$addr,p,0,0])});Allocator.prototype.destroy=(function(){var destroy=loadu32(this.$addr+this.$offsetof_destroy);Runtime.dynCall("vi",destroy,[this.$addr])});Allocator.prototype.mark=(function(){var mark=loadu32(this.$addr+this.$offsetof_mark);Runtime.dynCall("ii",mark,[this.$addr])});Allocator.prototype.resetToMark=(function(mark){var reset_to_mark=loadu32(this.$addr+this.$offsetof_reset_to_mark);Runtime.dynCall("vii",reset_to_mark,[this.$addr,mark])});Allocator.prototype.printStats=(function(){var print_stats=loadu32(this.$addr+this.$offsetof_print_stats);Runtime.dynCall("vi",print_stats,[this.$addr])});LibcAllocator=Allocator.$newAt(Module._wasm_get_libc_allocator());var Buffer=(function(size){this.$addr=mallocz(size);this.$size=size});Buffer.prototype=Object.create(Object.prototype);Buffer.fromString=(function(str){var this_=Object.create(Buffer.prototype);this_.$size=str.length;this_.$addr=malloc(this_.$size);Module.writeAsciiToMemory(str,this_.$addr,true);return this_});Buffer.$newAt=(function(addr,size){var this_=Object.create(Buffer.prototype);this_.$addr=addr;this_.$size=size;return this_});Buffer.prototype.$free=(function(){free(this.$addr)});Buffer.prototype.$destroy=(function(){this.$free()});var JSWriter=(function(writeData,moveData){var writeDataWrap=(function(offset,data,size,userData){return writeData(offset,new Uint8Array(Module.buffer,data,size))});var moveDataWrap=(function(dstOffset,srcOffset,size,userData){return moveData(dstOffset,srcOffset,size)});this.writer=new Writer;this.$writeData=new WrappedFunction(writeDataWrap);this.$moveData=new WrappedFunction(moveDataWrap);this.$writeData.store(this.writer.$addr+this.writer.$offsetof_write_data);this.$moveData.store(this.writer.$addr+this.writer.$offsetof_move_data)});JSWriter.prototype=Object.create(Object.prototype);JSWriter.prototype.$destroy=(function(){this.$moveData.$destroy();this.$writeData.$destroy();this.writer.$destroy()});var JSStringWriter=(function(){this.string="";var splice=(function(offset,str){var before=this.string.slice(0,offset);var after=this.string.slice(offset+str.length);this.string=before+str+after});var writeData=(function(offset,buf){var str="";for(var i=0;i<buf.length;++i)str+=String.fromCharCode(buf[i]);if(offset==this.string.length){this.string+=str}else{splice(offset,str)}});var moveData=(function(dstOffset,srcOffset,size){splice(dstOffset,this.string.slice(srcOffset,size))});JSWriter.call(this,writeData.bind(this),moveData.bind(this))});JSStringWriter.prototype=Object.create(JSWriter.prototype);var Lexer=(function(){throw"Lexer must be created with $fromBuffer"});Lexer.prototype=Object.create(Object.prototype);Lexer.fromBuffer=(function(allocator,filename,buffer){var $filename=allocateString(filename);var addr=Module._wasm_new_buffer_lexer(allocator.$addr,$filename,buffer.$addr,buffer.$size);if(addr==0)throw"Lexer.fromBuffer failed";var this_=Object.create(Lexer.prototype);this_.$addr=addr;this_.$filename=$filename;return this_});Lexer.prototype.$destroy=(function(){Module._wasm_destroy_lexer(this.$addr);freeString(this.$filename)});var Location=(function(){this.$addr=Location.$allocate();this.$init()});decorateStruct(Location,"location",["filename","line","first_column","last_column"]);Location.prototype.$init=(function(){});Object.defineProperty(Location.prototype,"filename",{get:(function(){return Module.AsciiToString(loadu32(this.$addr+this.$offsetof_filename))})});Object.defineProperty(Location.prototype,"line",{get:(function(){return loadu32(this.$addr+this.$offsetof_line)})});Object.defineProperty(Location.prototype,"firstColumn",{get:(function(){return loadu32(this.$addr+this.$offsetof_first_column)})});Object.defineProperty(Location.prototype,"lastColumn",{get:(function(){return loadu32(this.$addr+this.$offsetof_last_column)})});var MemoryWriter=(function(allocator){this.$addr=MemoryWriter.$allocate();this.$init(allocator)});decorateStruct(MemoryWriter,"memory_writer",["base","buf"]);MemoryWriter.prototype.$init=(function(allocator){var result=Module._wasm_init_mem_writer(allocator.$addr,this.$addr);if(result!=OK)throw"error initializing MemoryWriter";this.base=Writer.$newAt(this.$addr+this.$offsetof_base);this.buf=OutputBuffer.$newAt(this.$addr+this.$offsetof_buf)});MemoryWriter.prototype.$destroy=(function(){Module._wasm_close_mem_writer(this.$addr);this.$free()});var OutputBuffer=(function(){this.$addr=OutputBuffer.$allocate();this.$init()});decorateStruct(OutputBuffer,"output_buffer",["allocator","start","size","capacity"]);OutputBuffer.prototype.$init=(function(){this.$allocator=Allocator.$newAt(loadu32(this.$addr+this.$offsetof_allocator)),this.$buf=Buffer.$newAt(loadu32(this.$addr+this.$offsetof_start),loadu32(this.$addr+this.$offsetof_size))});OutputBuffer.prototype.$destroy=(function(){Module._wasm_destroy_output_buffer(this.$addr);this.$free()});Object.defineProperty(OutputBuffer.prototype,"allocator",{get:(function(){this.$allocator.$addr=loadu32(this.$addr+this.$offsetof_allocator);return this.$allocator})});Object.defineProperty(OutputBuffer.prototype,"buf",{get:(function(){this.$buf.$addr=loadu32(this.$addr+this.$offsetof_start);this.$buf.$size=loadu32(this.$addr+this.$offsetof_size);return this.$buf})});Object.defineProperty(OutputBuffer.prototype,"capacity",{get:(function(){return loadu32(this.$addr+this.$offsetof_capacity)})});var Script=(function(){this.$addr=Script.$allocate();this.$init()});decorateStruct(Script,"script",[]);Script.prototype.$init=(function(){});Script.prototype.$destroy=(function(){Module._wasm_destroy_script(this.$addr);this.$free()});var SourceErrorHandler=(function(callback,sourceLineMaxLength){this.$addr=SourceErrorHandler.$allocate();this.$init(callback,sourceLineMaxLength)});decorateStruct(SourceErrorHandler,"source_error_handler",["on_error","source_line_max_length","user_data"]);SourceErrorHandler.prototype.$init=(function(onError,sourceLineMaxLength){var f;if(onError){f=(function(loc,error,sourceLine,sourceLineLength,sourceLineColumnOffset,userData){loc=Location.$newAt(loc);error=Module.AsciiToString(error);sourceLine=Module.Pointer_stringify(sourceLine,sourceLineLength);onError(loc,error,sourceLine,sourceLineColumnOffset)})}else{f=(function(){Module._wasm_default_source_error_callback.apply(null,arguments)})}this.$onError=new WrappedFunction(f);this.$onError.store(this.$addr+this.$offsetof_on_error);storeu32(this.$addr+this.$offsetof_source_line_max_length,sourceLineMaxLength)});SourceErrorHandler.prototype.$destroy=(function(){this.$onError.$destroy();this.$free()});var StackAllocator=(function(fallback){this.$addr=StackAllocator.$allocate();this.$init(fallback)});decorateStruct(StackAllocator,"stack_allocator",["allocator"]);StackAllocator.prototype.$init=(function(fallback){Module._wasm_init_stack_allocator(this.$addr,fallback.$addr);this.allocator=Allocator.$newAt(this.$addr+this.$offsetof_allocator)});StackAllocator.prototype.$destroy=(function(){Module._wasm_destroy_stack_allocator(this.$addr)});var Stream=(function(writer,logStream){this.$addr=Stream.$allocate();this.$init(writer,logStream)});decorateStruct(Stream,"stream",["writer","result","offset","log_stream"]);Stream.prototype.$init=(function(writer,logStream){var logStreamAddr=logStream?logStream.$addr:0;Module._wasm_init_stream(this.$addr,writer.$addr,logStreamAddr);this.$writer=Writer.$newAt(loadu32(this.$addr+this.$offsetof_writer));logStreamAddr=loadu32(this.$addr+this.$offsetof_log_stream);this.$logStream=logStreamAddr?Stream.$newAt(logStreamAddr):null});Object.defineProperty(Stream.prototype,"writer",{get:(function(){this.$writer.$addr=loadu32(this.$addr+this.$offsetof_writer);return this.$writer})});Object.defineProperty(Stream.prototype,"offset",{get:(function(){return loadu32(this.$addr+this.$offsetof_offset)})});Object.defineProperty(Stream.prototype,"result",{get:(function(){return loadu32(this.$addr+this.$offsetof_result)})});Object.defineProperty(Stream.prototype,"logStream",{get:(function(){if(this.$logStream){this.$logStream.$addr=loadu32(this.$addr+this.$offsetof_log_stream)}return this.$logStream})});var WriteBinaryOptions=(function(options){this.$addr=WriteBinaryOptions.$allocate();this.$init(options)});decorateStruct(WriteBinaryOptions,"write_binary_options",["log_stream","canonicalize_lebs","remap_locals","write_debug_names"]);WriteBinaryOptions.prototype.$init=(function(options){if(!options)options={};storeu32(this.$addr+this.$offsetof_log_stream,options.logStream?options.logStream.$addr:0);storeboolopt(this.$addr+this.$offsetof_canonicalize_lebs,options.canonicalizeLebs,true);storeboolopt(this.$addr+this.$offsetof_remap_locals,options.remapLocals,true);storeboolopt(this.$addr+this.$offsetof_write_debug_names,options.writeDebugNames,false)});var Writer=(function(){this.$addr=Writer.$allocate()});decorateStruct(Writer,"writer",["write_data","move_data"]);Writer.prototype.$init=(function(){});Writer.prototype.$writeData=(function(offset,data,size,userData){var write_data=loadu32(this.$addr+this.$offsetof_write_data);return Runtime.dynCall("iiiii",write_data,[this.$addr,offset,data,size,userData])});Writer.prototype.$moveData=(function(dstOffset,srcOffset,size,userData){var move_data=loadu32(this.$addr+this.$offsetof_move_data);return Runtime.dynCall("iiiii",move_data,[this.$addr,dstOffset,srcOffset,size,userData])});var parse=(function(lexer,errorHandler){var script=new Script;var result=Module._wasm_parse(lexer.$addr,script.$addr,errorHandler.$addr);if(result!=OK)throw"parse failed";return script});var checkAst=(function(lexer,script,errorHandler){var result=Module._wasm_check_ast(lexer.$addr,script.$addr,errorHandler.$addr);if(result!=OK)throw"checkAst failed"});var writeBinaryScript=(function(allocator,writer,script,options){var result=Module._wasm_write_binary_script(allocator.$addr,writer.$addr,script.$addr,options.$addr);if(result!=OK)throw"writeBinaryScript failed"});var resolve=wasm.$resolve;wasm={ready:wasm.ready,OK:OK,ERROR:ERROR,Allocator:Allocator,Buffer:Buffer,JSStringWriter:JSStringWriter,JSWriter:JSWriter,Lexer:Lexer,LibcAllocator:LibcAllocator,Location:Location,MemoryWriter:MemoryWriter,OutputBuffer:OutputBuffer,Script:Script,SourceErrorHandler:SourceErrorHandler,StackAllocator:StackAllocator,Stream:Stream,WriteBinaryOptions:WriteBinaryOptions,Writer:Writer,checkAst:checkAst,parse:parse,writeBinaryScript:writeBinaryScript};resolve()});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 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 read(){throw"no read() available (jsc?)"}}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}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};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 print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function 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"}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}),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:[null,null,null,null,null,null,null,null,null,null],addFunction:(function(func){for(var i=0;i<Runtime.functionPointers.length;i++){if(!Runtime.functionPointers[i]){Runtime.functionPointers[i]=func;return 2*(1+i)}}throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."}),removeFunction:(function(index){Runtime.functionPointers[(index-2)/2]=null}),warnOnce:(function(text){if(!Runtime.warnOnce.shown)Runtime.warnOnce.shown={};if(!Runtime.warnOnce.shown[text]){Runtime.warnOnce.shown[text]=1;Module.printErr(text)}}),funcWrappers:{},getFuncWrapper:(function(func,sig){assert(sig);if(!Runtime.funcWrappers[sig]){Runtime.funcWrappers[sig]={}}var sigCache=Runtime.funcWrappers[sig];if(!sigCache[func]){if(sig.length===1){sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func)}}else if(sig.length===2){sigCache[func]=function dynCall_wrapper(arg){return Runtime.dynCall(sig,func,[arg])}}else{sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func,Array.prototype.slice.call(arguments))}}}return sigCache[func]}),getCompilerSetting:(function(name){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"}),stackAlloc:(function(size){var ret=STACKTOP;STACKTOP=STACKTOP+size|0;STACKTOP=STACKTOP+15&-16;return ret}),staticAlloc:(function(size){var ret=STATICTOP;STATICTOP=STATICTOP+size|0;STATICTOP=STATICTOP+15&-16;return ret}),dynamicAlloc:(function(size){var ret=DYNAMICTOP;DYNAMICTOP=DYNAMICTOP+size|0;DYNAMICTOP=DYNAMICTOP+15&-16;if(DYNAMICTOP>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=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:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=false;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){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}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<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=Runtime.stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);if(returnType==="string")ret=Pointer_stringify(ret);if(stack!==0){if(opts&&opts.async){EmterpreterAsync.asyncFinalizers.push((function(){Runtime.stackRestore(stack)}));return}Runtime.stackRestore(stack)}return ret};var sourceRegex=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(jsfunc){var parsed=jsfunc.toString().match(sourceRegex).slice(1);return{arguments:parsed[0],body:parsed[1],returnValue:parsed[2]}}var JSsource=null;function ensureJSsource(){if(!JSsource){JSsource={};for(var fun in JSfuncs){if(JSfuncs.hasOwnProperty(fun)){JSsource[fun]=parseJSFunc(JSfuncs[fun])}}}}cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident);var numericArgs=argTypes.every((function(type){return type==="number"}));var numericRet=returnType!=="string";if(numericRet&&numericArgs){return cfunc}var argNames=argTypes.map((function(x,i){return"$"+i}));var funcstr="(function("+argNames.join(",")+") {";var nargs=argTypes.length;if(!numericArgs){ensureJSsource();funcstr+="var stack = "+JSsource["stackSave"].body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if(type==="number")continue;var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";";funcstr+=convertCode.body+";";funcstr+=arg+"=("+convertCode.returnValue+");"}}var cfuncname=parseJSFunc((function(){return cfunc})).returnValue;funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");";if(!numericRet){var strgfy=parseJSFunc((function(){return Pointer_stringify})).returnValue;funcstr+="ret = "+strgfy+"(ret);"}if(!numericArgs){ensureJSsource();funcstr+=JSsource["stackRestore"].body.replace("()","(stack)")+";"}funcstr+="return ret})";return eval(funcstr)}}))();Module["ccall"]=ccall;Module["cwrap"]=cwrap;function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>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<stop;ptr+=4){HEAP32[ptr>>2]=0}stop=ret+size;while(ptr<stop){HEAP8[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<size){var curr=slab[i];if(typeof curr==="function"){curr=Runtime.getFunctionIndex(curr)}type=singleType||types[i];if(type===0){i++;continue}if(type=="i64")type="i32";setValue(ret+i,curr,type);if(previousType!==type){typeSize=Runtime.getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}Module["allocate"]=allocate;function getMemory(size){if(!staticSealed)return Runtime.staticAlloc(size);if(typeof _sbrk!=="undefined"&&!_sbrk.called||!runtimeInitialized)return Runtime.dynamicAlloc(size);return _malloc(size)}Module["getMemory"]=getMemory;function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+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;function UTF8ArrayToString(u8Array,idx){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<str.length;++i){var u=str.charCodeAt(i);if(u>=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<str.length;++i){var u=str.charCodeAt(i);if(u>=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;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](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){return text.replace(/__Z[\w\d_]+/g,(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;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var buffer;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;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=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;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 adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or 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;var totalMemory=64*1024;while(totalMemory<TOTAL_MEMORY||totalMemory<2*TOTAL_STACK){if(totalMemory<16*1024*1024){totalMemory*=2}else{totalMemory+=16*1024*1024}}if(totalMemory!==TOTAL_MEMORY){TOTAL_MEMORY=totalMemory}if(Module["buffer"]){buffer=Module["buffer"]}else{buffer=new ArrayBuffer(TOTAL_MEMORY)}updateGlobalBufferViews();HEAP32[0]=255;if(HEAPU8[0]!==255||HEAPU8[3]!==0)throw"Typed arrays 2 must be run on a little-endian system";Module["HEAP"]=HEAP;Module["buffer"]=buffer;Module["HEAP8"]=HEAP8;Module["HEAP16"]=HEAP16;Module["HEAP32"]=HEAP32;Module["HEAPU8"]=HEAPU8;Module["HEAPU16"]=HEAPU16;Module["HEAPU32"]=HEAPU32;Module["HEAPF32"]=HEAPF32;Module["HEAPF64"]=HEAPF64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.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;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i<array.length){var chr=array[i];HEAP8[buffer+i>>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i<array.length;i++){HEAP8[buffer++>>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>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["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_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;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+233744;__ATINIT__.push();memoryInitializer="libwasm.js.mem";var tempDoublePtr=STATICTOP;STATICTOP+=16;Module["_bitshift64Ashr"]=_bitshift64Ashr;Module["_i64Subtract"]=_i64Subtract;Module["_i64Add"]=_i64Add;Module["_memset"]=_memset;function _pthread_cleanup_push(routine,arg){__ATEXIT__.push((function(){Runtime.dynCall("vi",routine,[arg])}));_pthread_cleanup_push.level=__ATEXIT__.length}Module["_bitshift64Lshr"]=_bitshift64Lshr;Module["_bitshift64Shl"]=_bitshift64Shl;function _pthread_cleanup_pop(){assert(_pthread_cleanup_push.level==__ATEXIT__.length,"cannot pop if something else added meanwhile!");__ATEXIT__.pop();_pthread_cleanup_push.level=__ATEXIT__.length}function _abort(){Module["abort"]()}Module["___muldsi3"]=___muldsi3;Module["___muldi3"]=___muldi3;function ___lock(){}function ___unlock(){}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};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"};function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}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<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")})};var TTY={ttys:[],init:(function(){}),shutdown:(function(){}),register:(function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)}),stream_ops:{open:(function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}stream.tty=tty;stream.seekable=false}),close:(function(stream){stream.tty.ops.flush(stream.tty)}),flush:(function(stream){stream.tty.ops.flush(stream.tty)}),read:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead}),write:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}for(var i=0;i<length;i++){try{stream.tty.ops.put_char(stream.tty,buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}if(length){stream.node.timestamp=Date.now()}return i})},default_tty_ops:{get_char:(function(tty){if(!tty.input.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=new Buffer(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;var usingDevice=false;try{fd=fs.openSync("/dev/stdin","r");usingDevice=true}catch(e){}bytesRead=fs.readSync(fd,buf,0,BUFSIZE,null);if(usingDevice){fs.closeSync(fd)}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}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;i<node.usedBytes;++i)arr.push(node.contents[i]);return arr}return node.contents}),getFileDataAsTypedArray:(function(node){if(!node.contents)return new Uint8Array;if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)}),expandFileStorage:(function(node,newCapacity){if(node.contents&&node.contents.subarray&&newCapacity>node.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.buffer.byteLength:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)|0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.length<newCapacity)node.contents.push(0)}),resizeFileStorage:(function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(new ArrayBuffer(newSize));if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length<newSize)node.contents.push(0);node.usedBytes=newSize}),node_ops:{getattr:(function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}}),lookup:(function(parent,name){throw FS.genericErrors[ERRNO_CODES.ENOENT]}),mknod:(function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)}),rename:(function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}}}delete old_node.parent.contents[old_node.name];old_node.name=new_name;new_dir.contents[new_name]=old_node;old_node.parent=new_dir}),unlink:(function(parent,name){delete parent.contents[name]}),rmdir:(function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}delete parent.contents[name]}),readdir:(function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries}),symlink:(function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node}),readlink:(function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return node.link})},stream_ops:{read:(function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size}),write:(function(stream,buffer,offset,length,position,canOwn){if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=new Uint8Array(buffer.subarray(offset,offset+length));node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray)node.contents.set(buffer.subarray(offset,offset+length),position);else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length}),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.usedBytes}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position}),allocate:(function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&(contents.buffer===buffer||contents.buffer===buffer.buffer)){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<stream.node.usedBytes){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=_malloc(length);if(!ptr){throw new FS.ErrnoError(ERRNO_CODES.ENOMEM)}buffer.set(contents,ptr)}return{ptr:ptr,allocated:allocated}}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0})}};var IDBFS={dbs:{},indexedDB:(function(){if(typeof indexedDB!=="undefined")return indexedDB;var ret=null;if(typeof window==="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret}),DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:(function(mount){return MEMFS.mount.apply(null,arguments)}),syncfs:(function(mount,populate,callback){IDBFS.getLocalSet(mount,(function(err,local){if(err)return callback(err);IDBFS.getRemoteSet(mount,(function(err,remote){if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)}))}))}),getDB:(function(name,callback){var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}req.onupgradeneeded=(function(e){var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}});req.onsuccess=(function(){db=req.result;IDBFS.dbs[name]=db;callback(null,db)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),getLocalSet:(function(mount,callback){var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return(function(p){return PATH.join2(root,p)})}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={timestamp:stat.mtime}}return callback(null,{type:"local",entries:entries})}),getRemoteSet:(function(mount,callback){var entries={};IDBFS.getDB(mount.mountpoint,(function(err,db){if(err)return callback(err);var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=(function(e){callback(this.error);e.preventDefault()});var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=(function(event){var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries})}entries[cursor.primaryKey]={timestamp:cursor.key};cursor.continue()})}))}),loadLocalEntry:(function(path,callback){var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{timestamp:stat.mtime,mode:stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{timestamp:stat.mtime,mode:stat.mode,contents:node.contents})}else{return callback(new Error("node type not supported"))}}),storeLocalEntry:(function(path,entry,callback){try{if(FS.isDir(entry.mode)){FS.mkdir(path,entry.mode)}else if(FS.isFile(entry.mode)){FS.writeFile(path,entry.contents,{encoding:"binary",canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry.mode);FS.utime(path,entry.timestamp,entry.timestamp)}catch(e){return callback(e)}callback(null)}),removeLocalEntry:(function(path,callback){try{var lookup=FS.lookupPath(path);var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)}),loadRemoteEntry:(function(store,path,callback){var req=store.get(path);req.onsuccess=(function(event){callback(null,event.target.result)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),storeRemoteEntry:(function(store,path,entry,callback){var req=store.put(entry,path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),removeRemoteEntry:(function(store,path,callback){var req=store.delete(path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),reconcile:(function(src,dst,callback){var total=0;var create=[];Object.keys(src.entries).forEach((function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e.timestamp>e2.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&=~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<res;i++){buffer[offset+i]=nbuffer[i]}}return res}),write:(function(stream,buffer,offset,length,position){var nbuffer=new Buffer(buffer.subarray(offset,offset+length));var res;try{res=fs.writeSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}return res}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:(function(mount){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i<parts.length-1;i++){var curr=parts.slice(0,i+1).join("/");if(!createdParents[curr]){createdParents[curr]=WORKERFS.createNode(parent,curr,WORKERFS.DIR_MODE,0)}parent=createdParents[curr]}return parent}function base(path){var parts=path.split("/");return parts[parts.length-1]}Array.prototype.forEach.call(mount.opts["files"]||[],(function(file){WORKERFS.createNode(ensureParent(file.name),base(file.name),WORKERFS.FILE_MODE,0,file,file.lastModifiedDate)}));(mount.opts["blobs"]||[]).forEach((function(obj){WORKERFS.createNode(ensureParent(obj["name"]),base(obj["name"]),WORKERFS.FILE_MODE,0,obj["data"])}));(mount.opts["packages"]||[]).forEach((function(pack){pack["metadata"].files.forEach((function(file){var name=file.filename.substr(1);WORKERFS.createNode(ensureParent(name),base(name),WORKERFS.FILE_MODE,0,pack["blob"].slice(file.start,file.end))}))}));return root}),createNode:(function(parent,name,mode,dev,contents,mtime){var node=FS.createNode(parent,name,mode);node.mode=mode;node.node_ops=WORKERFS.node_ops;node.stream_ops=WORKERFS.stream_ops;node.timestamp=(mtime||new Date).getTime();assert(WORKERFS.FILE_MODE!==WORKERFS.DIR_MODE);if(mode===WORKERFS.FILE_MODE){node.size=contents.size;node.contents=contents}else{node.size=4096;node.contents={}}if(parent){parent.contents[name]=node}return node}),node_ops:{getattr:(function(node){return{dev:1,ino:undefined,mode:node.mode,nlink:1,uid:0,gid:0,rdev:undefined,size:node.size,atime:new Date(node.timestamp),mtime:new Date(node.timestamp),ctime:new Date(node.timestamp),blksize:4096,blocks:Math.ceil(node.size/4096)}}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}}),lookup:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}),mknod:(function(parent,name,mode,dev){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rename:(function(oldNode,newDir,newName){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),unlink:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rmdir:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readdir:(function(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),symlink:(function(parent,newName,oldPath){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readlink:(function(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM)})},stream_ops:{read:(function(stream,buffer,offset,length,position){if(position>=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;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count});current=lookup.node;if(count++>40){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<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>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)}),mkdev:(function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)}),symlink:(function(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.symlink(parent,newname,oldpath)}),rename:(function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}}),rmdir:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}return node.node_ops.readdir(node)}),unlink:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){if(err===ERRNO_CODES.EISDIR)err=ERRNO_CODES.EPERM;throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readlink:(function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return PATH.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))}),stat:(function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return node.node_ops.getattr(node)}),lstat:(function(path){return FS.stat(path,true)}),chmod:(function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})}),lchmod:(function(path,mode){FS.chmod(path,mode,true)}),fchmod:(function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chmod(stream.node,mode)}),chown:(function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{timestamp:Date.now()})}),lchown:(function(path,uid,gid){FS.chown(path,uid,gid,true)}),fchown:(function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chown(stream.node,uid,gid)}),truncate:(function(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})}),ftruncate:(function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}FS.truncate(stream.node,len)}),utime:(function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})}),open:(function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;Module["printErr"]("read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream}),close:(function(stream){if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}}),llseek:(function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position}),read:(function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead}),write:(function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message)}return bytesWritten}),allocate:(function(stream,offset,length){if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}stream.stream_ops.allocate(stream,offset,length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)}),munmap:(function(stream){return 0}),ioctl:(function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY)}return stream.stream_ops.ioctl(stream,cmd,arg)}),readFile:(function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret}),writeFile:(function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";opts.encoding=opts.encoding||"utf8";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var stream=FS.open(path,opts.flags,opts.mode);if(opts.encoding==="utf8"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,0,opts.canOwn)}else if(opts.encoding==="binary"){FS.write(stream,data,0,data.length,0,opts.canOwn)}FS.close(stream)}),cwd:(function(){return FS.currentPath}),chdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path}),createDefaultDirectories:(function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")}),createDefaultDevices:(function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:(function(){return 0}),write:(function(stream,buffer,offset,length,pos){return length})});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=(function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]})}else if(ENVIRONMENT_IS_NODE){random_device=(function(){return require("crypto").randomBytes(1)[0]})}else{random_device=(function(){return Math.random()*256|0})}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")}),createSpecialDirectories:(function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:(function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:(function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:(function(){return stream.path})}};ret.parent=ret;return ret})};return node})},{},"/proc/self/fd")}),createStandardStreams:(function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")}),ensureErrnoError:(function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=(function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}});this.setErrno(errno);this.message=ERRNO_MESSAGES[errno]};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach((function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack="<generic error, no stack>"}))}),staticInit:(function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS}}),init:(function(input,output,error){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()}),quit:(function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}}),getMode:(function(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode}),joinPath:(function(parts,forceRelative){var path=PATH.join.apply(null,parts);if(forceRelative&&path[0]=="/")path=path.substr(1);return path}),absolutePath:(function(relative,base){return PATH.resolve(base,relative)}),standardizePath:(function(path){return PATH.normalize(path)}),findObject:(function(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{___setErrNo(ret.error);return null}}),analyzePath:(function(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret}),createFolder:(function(parent,name,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.mkdir(path,mode)}),createPath:(function(parent,path,canRead,canWrite){parent=typeof parent==="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current}),createFile:(function(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)}),createDataFile:(function(parent,name,data,canRead,canWrite,canOwn){var path=name?PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name):parent;var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,"w");FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node}),createDevice:(function(parent,name,input,output){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:(function(stream){stream.seekable=false}),close:(function(stream){if(output&&output.buffer&&output.buffer.length){output(10)}}),read:(function(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead}),write:(function(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}if(length){stream.node.timestamp=Date.now()}return i})});return FS.mkdev(path,mode,dev)}),createLink:(function(parent,name,target,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);return FS.symlink(target,path)}),forceLoadFile:(function(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;var success=true;if(typeof XMLHttpRequest!=="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(Module["read"]){try{obj.contents=intArrayFromString(Module["read"](obj.url),true);obj.usedBytes=obj.contents.length}catch(e){success=false}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}if(!success)___setErrNo(ERRNO_CODES.EIO);return success}),createLazyFile:(function(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(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<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size};node.stream_ops=stream_ops;return node}),createPreloadedFile:(function(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}var handled=false;Module["preloadPlugins"].forEach((function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,(function(){if(onerror)onerror();removeRunDependency(dep)}));handled=true}}));if(!handled)finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){Browser.asyncLoad(url,(function(byteArray){processData(byteArray)}),onerror)}else{processData(url)}}),indexedDB:(function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB}),DB_NAME:(function(){return"EM_FS_"+window.location.pathname}),DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){console.log("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish()};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror}),loadFilesFromDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror})};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:(function(dirfd,path){if(path[0]!=="/"){var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);dir=dirstream.path}path=PATH.join2(dir,path)}return path}),doStat:(function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-ERRNO_CODES.ENOTDIR}throw e}HEAP32[buf>>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);ret=ret.slice(0,Math.max(0,bufsize));writeStringToMemory(ret,buf,true);return ret.length}),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<iovcnt;i++){var ptr=HEAP32[iov+i*8>>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<len)break}return ret}),doWritev:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>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 ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_STATIC);Module["_llvm_cttz_i32"]=_llvm_cttz_i32;Module["___udivmoddi4"]=___udivmoddi4;Module["___udivdi3"]=___udivdi3;var _llvm_fabs_f64=Math_abs;function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort("cannot dynamically allocate, sbrk now has control")})}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;Module["_memmove"]=_memmove;Module["___uremdi3"]=___uremdi3;function __exit(status){Module["exit"](status)}function _exit(status){__exit(status)}function _llvm_trap(){abort("trap!")}Module["_pthread_self"]=_pthread_self;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}}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)};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_llvm_ctlz_i64"]=_llvm_ctlz_i64;function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}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()}STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);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;asm["setThrew"](1,0)}}function jsCall_iiii(index,a1,a2,a3){return Runtime.functionPointers[index](a1,a2,a3)}function invoke_viiiii(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function jsCall_viiiii(index,a1,a2,a3,a4,a5){Runtime.functionPointers[index](a1,a2,a3,a4,a5)}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function jsCall_vi(index,a1){Runtime.functionPointers[index](a1)}function invoke_vii(index,a1,a2){try{Module["dynCall_vii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function jsCall_vii(index,a1,a2){Runtime.functionPointers[index](a1,a2)}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){try{return Module["dynCall_iiiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function jsCall_iiiiiii(index,a1,a2,a3,a4,a5,a6){return Runtime.functionPointers[index](a1,a2,a3,a4,a5,a6)}function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function jsCall_ii(index,a1){return Runtime.functionPointers[index](a1)}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;asm["setThrew"](1,0)}}function jsCall_viii(index,a1,a2,a3){Runtime.functionPointers[index](a1,a2,a3)}function invoke_iiiii(index,a1,a2,a3,a4){try{return Module["dynCall_iiiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function jsCall_iiiii(index,a1,a2,a3,a4){return Runtime.functionPointers[index](a1,a2,a3,a4)}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function jsCall_viiiiii(index,a1,a2,a3,a4,a5,a6){Runtime.functionPointers[index](a1,a2,a3,a4,a5,a6)}function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function jsCall_iii(index,a1,a2){return Runtime.functionPointers[index](a1,a2)}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;asm["setThrew"](1,0)}}function jsCall_iiiiii(index,a1,a2,a3,a4,a5){return Runtime.functionPointers[index](a1,a2,a3,a4,a5)}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;asm["setThrew"](1,0)}}function jsCall_viiii(index,a1,a2,a3,a4){Runtime.functionPointers[index](a1,a2,a3,a4)}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,"invoke_iiii":invoke_iiii,"jsCall_iiii":jsCall_iiii,"invoke_viiiii":invoke_viiiii,"jsCall_viiiii":jsCall_viiiii,"invoke_vi":invoke_vi,"jsCall_vi":jsCall_vi,"invoke_vii":invoke_vii,"jsCall_vii":jsCall_vii,"invoke_iiiiiii":invoke_iiiiiii,"jsCall_iiiiiii":jsCall_iiiiiii,"invoke_ii":invoke_ii,"jsCall_ii":jsCall_ii,"invoke_viii":invoke_viii,"jsCall_viii":jsCall_viii,"invoke_iiiii":invoke_iiiii,"jsCall_iiiii":jsCall_iiiii,"invoke_viiiiii":invoke_viiiiii,"jsCall_viiiiii":jsCall_viiiiii,"invoke_iii":invoke_iii,"jsCall_iii":jsCall_iii,"invoke_iiiiii":invoke_iiiiii,"jsCall_iiiiii":jsCall_iiiiii,"invoke_viiii":invoke_viiii,"jsCall_viiii":jsCall_viiii,"_pthread_cleanup_pop":_pthread_cleanup_pop,"___lock":___lock,"___syscall6":___syscall6,"___setErrNo":___setErrNo,"_abort":_abort,"_sbrk":_sbrk,"___unlock":___unlock,"_llvm_fabs_f64":_llvm_fabs_f64,"_pthread_cleanup_push":_pthread_cleanup_push,"_emscripten_memcpy_big":_emscripten_memcpy_big,"___syscall54":___syscall54,"___syscall140":___syscall140,"_llvm_trap":_llvm_trap,"_exit":_exit,"__exit":__exit,"___syscall145":___syscall145,"___syscall146":___syscall146,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"cttz_i8":cttz_i8};// EMSCRIPTEN_START_ASM var asm=(function(global,env,buffer) { "use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=env.cttz_i8|0;var n=0;var o=0;var p=0;var q=0;var r=global.NaN,s=global.Infinity;var t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0.0;var C=0;var D=global.Math.floor;var E=global.Math.abs;var F=global.Math.sqrt;var G=global.Math.pow;var H=global.Math.cos;var I=global.Math.sin;var J=global.Math.tan;var K=global.Math.acos;var L=global.Math.asin;var M=global.Math.atan;var N=global.Math.atan2;var O=global.Math.exp;var P=global.Math.log;var Q=global.Math.ceil;var R=global.Math.imul;var S=global.Math.min;var T=global.Math.clz32;var U=env.abort;var V=env.assert;var W=env.invoke_iiii;var X=env.jsCall_iiii;var Y=env.invoke_viiiii;var Z=env.jsCall_viiiii;var _=env.invoke_vi;var $=env.jsCall_vi;var aa=env.invoke_vii;var ba=env.jsCall_vii;var ca=env.invoke_iiiiiii;var da=env.jsCall_iiiiiii;var ea=env.invoke_ii;var fa=env.jsCall_ii;var ga=env.invoke_viii;var ha=env.jsCall_viii;var ia=env.invoke_iiiii;var ja=env.jsCall_iiiii;var ka=env.invoke_viiiiii;var la=env.jsCall_viiiiii;var ma=env.invoke_iii;var na=env.jsCall_iii;var oa=env.invoke_iiiiii;var pa=env.jsCall_iiiiii;var qa=env.invoke_viiii;var ra=env.jsCall_viiii;var sa=env._pthread_cleanup_pop;var ta=env.___lock;var ua=env.___syscall6;var va=env.___setErrNo;var wa=env._abort;var xa=env._sbrk;var ya=env.___unlock;var za=env._llvm_fabs_f64;var Aa=env._pthread_cleanup_push;var Ba=env._emscripten_memcpy_big;var Ca=env.___syscall54;var Da=env.___syscall140;var Ea=env._llvm_trap;var Fa=env._exit;var Ga=env.__exit;var Ha=env.___syscall145;var Ia=env.___syscall146;var Ja=0.0; // EMSCRIPTEN_START_FUNCS @@ -8,11 +8,11 @@ function cf(e,f,g,j,l){e=e|0;f=f|0;g=g|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0 function Fd(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,db=0,eb=0,fb=0,gb=0,hb=0,jb=0,kb=0,lb=0,mb=0,Lb=0,Mb=0,Nb=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0,pd=0,qd=0,vd=0,wd=0,xd=0,yd=0,zd=0,Ad=0,Bd=0,Cd=0,Ed=0,Fd=0,Jd=0,Ld=0,Md=0,Nd=0,Od=0,Pd=0,Qd=0,Rd=0,Sd=0,Td=0,Ud=0,Vd=0,Wd=0,Xd=0,Yd=0,Zd=0,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0,oe=0,pe=0,qe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0,He=0,Ie=0,Je=0,Ke=0,Le=0,Me=0,Ne=0,Oe=0,Pe=0,Qe=0,Re=0,Se=0,Te=0,Ue=0,Ve=0,We=0,Xe=0,Ye=0,Ze=0,_e=0,$e=0,af=0,bf=0,cf=0,df=0,ef=0,ff=0,gf=0,hf=0,jf=0,kf=0,lf=0,mf=0,nf=0,of=0,pf=0,qf=0,rf=0,sf=0,tf=0,uf=0,vf=0,wf=0,xf=0,yf=0,zf=0,Af=0,Bf=0,Cf=0,Df=0,Ef=0,Ff=0,Gf=0,Hf=0,If=0,Jf=0,Kf=0,Lf=0,Mf=0,Nf=0,Of=0,Pf=0,Qf=0,Rf=0,Sf=0,Tf=0,Uf=0,Vf=0,Wf=0,Xf=0,Zf=0,_f=0,$f=0,ag=0,bg=0,cg=0,dg=0,fg=0,gg=0,hg=0,ig=0,jg=0,kg=0,lg=0,mg=0,ng=0,og=0,pg=0,qg=0,rg=0,sg=0,tg=0,ug=0,vg=0,wg=0,xg=0,yg=0,zg=0,Ag=0,Bg=0,Cg=0,Dg=0,Eg=0,Fg=0,Gg=0,Hg=0,Ig=0,Jg=0,Kg=0,Lg=0,Mg=0,Ng=0,Og=0,Pg=0,Qg=0,Rg=0,Sg=0,Tg=0,Ug=0,Vg=0,Wg=0,Xg=0,Yg=0,Zg=0,_g=0,$g=0,ah=0,bh=0,ch=0,dh=0,eh=0,fh=0,gh=0,hh=0,ih=0,jh=0,kh=0,lh=0,mh=0,nh=0,oh=0,ph=0,qh=0,rh=0,sh=0,th=0,uh=0,vh=0,wh=0,xh=0,yh=0,zh=0,Ah=0,Bh=0,Ch=0,Dh=0,Eh=0,Fh=0,Gh=0,Hh=0,Ih=0,Jh=0,Kh=0,Lh=0,Mh=0,Nh=0,Oh=0,Ph=0,Qh=0,Rh=0,Sh=0,Th=0,Uh=0,Vh=0,Wh=0,Xh=0,Yh=0,Zh=0,_h=0,$h=0,ai=0,bi=0,ci=0,di=0,ei=0,fi=0,gi=0,hi=0,ii=0,ji=0,ki=0,li=0,mi=0,ni=0,oi=0,pi=0,qi=0,ri=0,si=0,ti=0,ui=0,vi=0,wi=0,xi=0,yi=0,zi=0,Ai=0,Bi=0,Ci=0,Di=0,Ei=0,Fi=0,Gi=0,Hi=0,Ii=0,Ji=0,Ki=0,Li=0,Mi=0,Ni=0,Oi=0,Pi=0,Qi=0,Ri=0,Si=0,Ti=0,Ui=0,Vi=0,Wi=0,Xi=0,Yi=0,Zi=0,_i=0,$i=0,aj=0,bj=0,cj=0,dj=0,ej=0,fj=0,gj=0,hj=0,ij=0,jj=0,kj=0,lj=0,mj=0,nj=0,oj=0,pj=0,qj=0,rj=0,sj=0,tj=0,uj=0,vj=0,wj=0,xj=0,yj=0,zj=0,Aj=0,Bj=0,Cj=0,Dj=0,Ej=0,Fj=0,Gj=0,Hj=0,Ij=0,Jj=0,Kj=0,Lj=0,Mj=0,Nj=0,Oj=0,Pj=0,Qj=0,Rj=0,Sj=0,Tj=0,Uj=0,Vj=0,Wj=0,Xj=0,Yj=0,Zj=0,_j=0,$j=0,ak=0,bk=0,ck=0,dk=0,ek=0,fk=0,gk=0,hk=0,ik=0,jk=0,kk=0,lk=0,mk=0,nk=0,ok=0,pk=0,qk=0,rk=0,sk=0,tk=0,uk=0,vk=0,wk=0,xk=0,yk=0,zk=0,Ak=0,Bk=0,Ck=0,Dk=0,Ek=0,Fk=0,Gk=0,Hk=0,Ik=0,Jk=0,Kk=0,Lk=0,Mk=0,Nk=0,Ok=0,Pk=0,Qk=0,Rk=0,Sk=0,Tk=0,Uk=0,Vk=0,Wk=0,Xk=0,Yk=0,Zk=0,_k=0,$k=0,al=0,bl=0,cl=0,dl=0,el=0,fl=0,gl=0,hl=0,il=0,jl=0,kl=0,ll=0,ml=0,nl=0,ol=0,pl=0;h=i;i=i+12544|0;j=h+8744|0;k=h+8736|0;l=h+8728|0;m=h+8720|0;n=h+8712|0;o=h+8704|0;p=h+8696|0;q=h+8688|0;r=h+8680|0;s=h+8672|0;t=h+8664|0;u=h+8656|0;v=h+8648|0;w=h+8640|0;x=h+8632|0;y=h+8624|0;z=h+8616|0;A=h+8608|0;B=h+8600|0;C=h+8592|0;D=h+8584|0;E=h+8576|0;F=h+8568|0;G=h+8560|0;H=h+8552|0;I=h+8544|0;J=h+8536|0;K=h+8528|0;L=h+8520|0;M=h+8512|0;N=h+8504|0;O=h+8496|0;P=h+8488|0;Q=h+8480|0;R=h+8472|0;S=h+8464|0;T=h+8456|0;U=h+8448|0;V=h+8440|0;W=h+8432|0;X=h+8424|0;Y=h+8416|0;Z=h+8408|0;_=h+8400|0;$=h+8392|0;aa=h+8384|0;ba=h+8376|0;ca=h+8368|0;da=h+8360|0;ea=h+8352|0;fa=h+8344|0;ga=h+8336|0;ha=h+8328|0;ia=h+8320|0;ja=h+8312|0;ka=h+8304|0;la=h+8296|0;ma=h+8288|0;na=h+8280|0;oa=h+8272|0;pa=h+8264|0;qa=h+8256|0;ra=h+8248|0;sa=h+8240|0;ta=h+8232|0;ua=h+8224|0;va=h+8216|0;wa=h+8208|0;xa=h+8200|0;ya=h+8192|0;za=h+8184|0;Aa=h+8176|0;Ba=h+8168|0;Ca=h+8160|0;Da=h+8152|0;Ea=h+8144|0;Fa=h+8136|0;Ga=h+8128|0;Ha=h+8120|0;Ia=h+8112|0;Ja=h+8104|0;Ka=h+8096|0;La=h+8088|0;Ma=h+8080|0;Na=h+11992|0;Oa=h+8040|0;Pa=h+11976|0;Qa=h+12008|0;Ra=h+40|0;Sa=h+8776|0;Ta=h;Wa=h+12408|0;Xa=h+8772|0;Ya=h+8768|0;Za=h+8752|0;_a=Oa;$a=_a+40|0;do{c[_a>>2]=0;_a=_a+4|0}while((_a|0)<($a|0));c[Pa>>2]=0;c[Pa+4>>2]=0;c[Pa+8>>2]=0;c[Pa+12>>2]=0;c[Xa>>2]=128;c[Sa>>2]=0;c[Sa+4>>2]=0;c[Sa+8>>2]=0;c[Sa+12>>2]=0;ab=Ta+4|0;bb=Ta+8|0;db=ab+4|0;eb=Ta+16|0;fb=Ta+20|0;gb=Ta+20|0;hb=Ta+24|0;jb=Ta+20|0;kb=Ta+20|0;lb=Ta+24|0;mb=g+4|0;Lb=-2;Mb=Sa;Nb=Sa;Sa=Qa;Pb=Qa;Qb=200;Rb=0;Sb=Ra;Tb=Ra;a:while(1){b[Pb>>1]=Rb;if((Sa+(Qb<<1)+-2|0)>>>0<=Pb>>>0){Ra=(Pb-Sa>>1)+1|0;if(Qb>>>0>9999){Ub=Lb;Vb=Wa;Wb=Sa;Xb=Pb;Yb=Tb;Zb=402;break}_b=Qb<<1;$b=_b>>>0>1e4?1e4:_b;_b=c[g>>2]|0;ac=Ua[c[_b>>2]&31](_b,($b*58|0)+78|0,4,224997,1723)|0;if(!ac){Ub=Lb;Vb=Wa;Wb=Sa;Xb=Pb;Yb=Tb;Zb=402;break}eg(ac|0,Sa|0,Ra<<1|0)|0;_b=ac+((((($b<<1)+39|0)>>>0)/40|0)*40|0)|0;eg(_b|0,Sb|0,Ra*40|0)|0;bc=_b+((((($b*40|0)+39|0)>>>0)/40|0)*40|0)|0;eg(bc|0,Mb|0,Ra<<4|0)|0;if((Sa|0)!=(Qa|0)){cc=c[g>>2]|0;Va[c[cc+8>>2]&31](cc,Sa,224997,1731)}cc=ac+(Ra<<1)+-2|0;dc=_b+(Ra*40|0)+-40|0;if(($b|0)>(Ra|0)){ec=bc;fc=bc+(Ra<<4)+-16|0;gc=ac;hc=cc;ic=$b;jc=_b;kc=dc}else{lc=Lb;mc=Wa;nc=1;oc=ac;pc=cc;qc=dc;break}}else{ec=Mb;fc=Nb;gc=Sa;hc=Pb;ic=Qb;jc=Sb;kc=Tb}if((Rb|0)==7){lc=Lb;mc=Wa;nc=0;oc=gc;pc=hc;qc=kc;break}dc=b[5932+(Rb<<1)>>1]|0;cc=dc<<16>>16;if(dc<<16>>16!=-130){if((Lb|0)==-2)rc=Kd(Oa,Pa,f,g)|0;else rc=Lb;if((rc|0)>=1)if(rc>>>0<312){sc=rc;tc=d[225079+rc>>0]|0}else{sc=rc;tc=2}else{sc=0;tc=0}dc=tc+cc|0;if(dc>>>0<=321?(e[6460+(dc<<1)>>1]|0)==(tc|0):0){cc=e[7104+(dc<<1)>>1]|0;dc=kc+40|0;_a=dc;uc=Oa;$a=_a+40|0;do{c[_a>>2]=c[uc>>2];_a=_a+4|0;uc=uc+4|0}while((_a|0)<($a|0));ac=fc+16|0;c[ac>>2]=c[Pa>>2];c[ac+4>>2]=c[Pa+4>>2];c[ac+8>>2]=c[Pa+8>>2];c[ac+12>>2]=c[Pa+12>>2];vc=-2;wc=ac;xc=hc;yc=cc;zc=dc}else{Ac=sc;Zb=19}}else{Ac=Lb;Zb=19}do if((Zb|0)==19){Zb=0;ac=a[225391+Rb>>0]|0;_b=ac&255;if(!(ac<<24>>24)){Bc=Ac;Cc=gc;Dc=hc;Ec=Rb;Fc=kc;Zb=389;break a}ac=a[225655+_b>>0]|0;$b=ac&255;_a=Ta;uc=kc+((1-$b|0)*40|0)|0;$a=_a+40|0;do{c[_a>>2]=c[uc>>2];_a=_a+4|0;uc=uc+4|0}while((_a|0)<($a|0));Ra=0-$b|0;if(!(ac<<24>>24)){bc=c[fc+(Ra<<4)+12>>2]|0;Gc=0;Hc=bc;Ic=bc;Jc=fc+(Ra<<4)+4|0}else{bc=fc+(Ra<<4)|0;Kc=bc+16|0;Gc=c[Kc>>2]|0;Hc=c[Kc+8>>2]|0;Ic=c[bc+($b<<4)+12>>2]|0;Jc=Kc+4|0}Kc=c[Jc>>2]|0;b:do switch(_b|0){case 2:{c[Ta>>2]=0;c[Ta+4>>2]=0;c[Ta+8>>2]=0;break}case 3:{bc=kc+-40|0;c[Ta>>2]=c[bc>>2];c[Ta+4>>2]=c[bc+4>>2];c[Ta+8>>2]=c[bc+8>>2];bc=ze(c[g>>2]|0,Ta,ab,bb,1)|0;if(!bc){Lc=Ra;Mc=Ac;Nc=gc;Oc=hc;Pc=kc;Zb=27;break a}a[bc>>0]=a[kc>>0]|0;break}case 4:{c[Ta>>2]=0;c[Ta+4>>2]=0;c[Ta+8>>2]=0;c[Ta+12>>2]=0;break}case 5:{a[Ta>>0]=0;bc=kc+-40|0;c[ab>>2]=c[bc>>2];c[ab+4>>2]=c[bc+4>>2];c[ab+8>>2]=c[bc+8>>2];break}case 6:{a[Ta>>0]=a[kc+-40>>0]|0;bc=kc+-200|0;c[ab>>2]=c[bc>>2];c[ab+4>>2]=c[bc+4>>2];c[ab+8>>2]=c[bc+8>>2];break}case 7:{c[Ta>>2]=0;c[Ta+4>>2]=0;c[Ta+8>>2]=0;c[Ta+12>>2]=0;a[Ta>>0]=a[kc+-40>>0]|0;break}case 8:{c[Ta>>2]=c[kc>>2];bc=c[g>>2]|0;Qc=kc+4|0;Rc=c[Qc>>2]|0;Sc=Qc+4|0;Qc=c[Sc>>2]|0;c:do if(!Qc)Tc=0;else{Uc=Rc;Vc=0;while(1){if(!(a[Uc>>0]|0)){Tc=Vc;break c}Wc=Vc+1|0;if(Wc>>>0<Qc>>>0){Uc=Uc+1|0;Vc=Wc}else{Tc=Wc;break}}}while(0);Qc=Ua[c[bc>>2]&31](bc,Tc+1|0,1,225770,216)|0;if(!Qc){Xc=Sc;Yc=Ra;Zc=Ac;_c=gc;$c=hc;ad=kc;Zb=37;break a}eg(Qc|0,Rc|0,Tc|0)|0;a[Qc+Tc>>0]=0;c[ab>>2]=Qc;c[db>>2]=c[Sc>>2];break}case 9:{c[Ta>>2]=c[kc>>2];Qc=c[g>>2]|0;Vc=kc+4|0;Uc=c[Vc>>2]|0;Wc=Vc+4|0;Vc=c[Wc>>2]|0;d:do if(!Vc)bd=0;else{cd=Uc;dd=0;while(1){if(!(a[cd>>0]|0)){bd=dd;break d}ed=dd+1|0;if(ed>>>0<Vc>>>0){cd=cd+1|0;dd=ed}else{bd=ed;break}}}while(0);Vc=Ua[c[Qc>>2]&31](Qc,bd+1|0,1,225770,221)|0;if(!Vc){fd=Wc;gd=Ra;hd=Ac;id=gc;jd=hc;kd=kc;Zb=43;break a}eg(Vc|0,Uc|0,bd|0)|0;a[Vc+bd>>0]=0;c[ab>>2]=Vc;c[db>>2]=c[Wc>>2];break}case 10:{c[Ta>>2]=c[fc>>2];c[Ta+4>>2]=c[fc+4>>2];c[Ta+8>>2]=c[fc+8>>2];c[Ta+12>>2]=c[fc+12>>2];c[eb>>2]=0;Vc=kc+4|0;Sc=c[Vc>>2]|0;Rc=Vc+4|0;if((sd(Sc,Sc+(c[Rc>>2]|0)|0,Na,0)|0)==1){Sc=c[Vc>>2]|0;c[Ja>>2]=c[Rc>>2];c[Ja+4>>2]=Sc;Dd(fc,f,g,225851,Ja)}c[fb>>2]=c[Na>>2];break}case 11:{c[Ta>>2]=c[fc>>2];c[Ta+4>>2]=c[fc+4>>2];c[Ta+8>>2]=c[fc+8>>2];c[Ta+12>>2]=c[fc+12>>2];c[eb>>2]=1;Sc=c[g>>2]|0;Rc=c[kc>>2]|0;Vc=kc+4|0;bc=c[Vc>>2]|0;e:do if(!bc)ld=0;else{dd=Rc;cd=0;while(1){if(!(a[dd>>0]|0)){ld=cd;break e}ed=cd+1|0;if(ed>>>0<bc>>>0){dd=dd+1|0;cd=ed}else{ld=ed;break}}}while(0);bc=Ua[c[Sc>>2]&31](Sc,ld+1|0,1,225770,242)|0;if(!bc){md=Vc;nd=Ra;od=Ac;pd=gc;qd=hc;vd=kc;Zb=52;break a}eg(bc|0,Rc|0,ld|0)|0;a[bc+ld>>0]=0;c[gb>>2]=bc;c[hb>>2]=c[Vc>>2];break}case 12:{c[Ta>>2]=0;c[Ta+4>>2]=0;c[Ta+8>>2]=0;break}case 13:{bc=kc+-40|0;c[Ta>>2]=c[bc>>2];c[Ta+4>>2]=c[bc+4>>2];c[Ta+8>>2]=c[bc+8>>2];bc=ze(c[g>>2]|0,Ta,ab,bb,28)|0;if(!bc){wd=Ra;xd=Ac;yd=gc;zd=hc;Ad=kc;Zb=56;break a};c[bc>>2]=c[kc>>2];c[bc+4>>2]=c[kc+4>>2];c[bc+8>>2]=c[kc+8>>2];c[bc+12>>2]=c[kc+12>>2];c[bc+16>>2]=c[kc+16>>2];c[bc+20>>2]=c[kc+20>>2];c[bc+24>>2]=c[kc+24>>2];break}case 14:{bc=c[g>>2]|0;Wc=c[kc>>2]|0;Uc=kc+4|0;Qc=c[Uc>>2]|0;f:do if(!Qc)Bd=0;else{cd=Wc;dd=0;while(1){if(!(a[cd>>0]|0)){Bd=dd;break f}ed=dd+1|0;if(ed>>>0<Qc>>>0){cd=cd+1|0;dd=ed}else{Bd=ed;break}}}while(0);Qc=Ua[c[bc>>2]&31](bc,Bd+1|0,1,225770,254)|0;if(!Qc){Cd=Uc;Ed=Ra;Fd=Ac;Jd=gc;Ld=hc;Md=kc;Zb=62;break a}eg(Qc|0,Wc|0,Bd|0)|0;a[Qc+Bd>>0]=0;c[Ta>>2]=Qc;c[ab>>2]=c[Uc>>2];break}case 15:{if(Gd(c[g>>2]|0,kc,Na,Ya)|0){Nd=Ra;Od=Ac;Pd=gc;Qd=hc;Rd=kc;Zb=65;break a}c[Ta>>2]=c[Na>>2];c[ab>>2]=c[Ya>>2];break}case 16:{if(Gd(c[g>>2]|0,kc,jb,hb)|0){Sd=Ra;Td=Ac;Ud=gc;Vd=hc;Wd=kc;Zb=67;break a}break}case 17:{Qc=Ta;c[Qc>>2]=0;c[Qc+4>>2]=0;break}case 18:{Qc=kc;Vc=c[Qc+4>>2]|0;Rc=Ta;c[Rc>>2]=c[Qc>>2];c[Rc+4>>2]=Vc;break}case 19:{Vc=Ta;c[Vc>>2]=0;c[Vc+4>>2]=0;break}case 20:{Vc=c[kc>>2]|0;Rc=kc+4|0;if((rd(Vc,Vc+(c[Rc>>2]|0)|0,Ta)|0)==1){Vc=c[kc>>2]|0;c[Da>>2]=c[Rc>>2];c[Da+4>>2]=Vc;Dd(fc,f,g,225868,Da)}break}case 21:{c[Ta>>2]=-1;break}case 22:{Vc=c[kc>>2]|0;Rc=kc+4|0;if((sd(Vc,Vc+(c[Rc>>2]|0)|0,Ta,0)|0)==1){Vc=c[kc>>2]|0;c[Ca>>2]=c[Rc>>2];c[Ca+4>>2]=Vc;Dd(fc,f,g,225890,Ca)}break}case 23:{Vc=c[kc+-40>>2]|0;c[Ta>>2]=Vc;Rc=fc+-32|0;c[Vc>>2]=c[Rc>>2];c[Vc+4>>2]=c[Rc+4>>2];c[Vc+8>>2]=c[Rc+8>>2];c[Vc+12>>2]=c[Rc+12>>2];break}case 24:{Rc=Kb(c[g>>2]|0,18)|0;c[Ta>>2]=Rc;if(!Rc){Xd=Ra;Yd=Ac;Zd=gc;_d=hc;$d=kc;Zb=78;break a}break}case 25:{Rc=pb(c[g>>2]|0)|0;if(!Rc){ae=Ra;be=Ac;ce=gc;de=hc;ee=kc;Zb=81;break a}Vc=kc+-40|0;Qc=c[Vc+4>>2]|0;Sc=Rc+24|0;c[Sc>>2]=c[Vc>>2];c[Sc+4>>2]=Qc;Qc=Rc+32|0;c[Qc>>2]=c[kc>>2];c[Qc+4>>2]=c[kc+4>>2];c[Qc+8>>2]=c[kc+8>>2];c[Ta>>2]=Rc;break}case 26:{Rc=Cb(c[g>>2]|0)|0;c[Ta>>2]=Rc;if(!Rc){fe=Ra;ge=Ac;he=gc;ie=hc;je=kc;Zb=83;break a}c[Rc+24>>2]=c[kc+-40>>2];Rc=c[g>>2]|0;Qc=c[kc>>2]|0;Sc=pb(Rc)|0;c[Na>>2]=Sc;if(!Sc){ke=Ra;le=Ac;me=gc;ne=hc;oe=kc;Zb=87;break a}Vc=Sc+32|0;Sc=ze(Rc,Vc,Vc+4|0,Vc+8|0,4)|0;if(!Sc){pe=Rc;qe=Ra;re=Ac;se=gc;te=hc;ue=kc;Zb=86;break a}c[Sc>>2]=Qc;Qc=c[Na>>2]|0;if(!Qc){ve=Ra;we=Ac;xe=gc;ye=hc;Be=kc;Zb=90;break a}c[(c[Ta>>2]|0)+28>>2]=Qc;break}case 27:{Qc=Cb(c[g>>2]|0)|0;c[Ta>>2]=Qc;if(!Qc){Ce=Ra;De=Ac;Ee=gc;Fe=hc;Ge=kc;Zb=92;break a}c[Qc+24>>2]=c[kc+-200>>2];Qc=pb(c[g>>2]|0)|0;if(!Qc){He=Ra;Ie=Ac;Je=gc;Ke=hc;Le=kc;Zb=95;break a}Sc=kc+-40|0;Rc=kc+-80|0;Vc=c[Rc+4>>2]|0;dd=Qc+24|0;c[dd>>2]=c[Rc>>2];c[dd+4>>2]=Vc;Vc=Qc+32|0;c[Vc>>2]=c[Sc>>2];c[Vc+4>>2]=c[Sc+4>>2];c[Vc+8>>2]=c[Sc+8>>2];c[(c[Ta>>2]|0)+28>>2]=Qc;break}case 28:{Qc=Bb(c[g>>2]|0)|0;c[Ta>>2]=Qc;if(!Qc){Me=Ra;Ne=Ac;Oe=gc;Pe=hc;Qe=kc;Zb=97;break a}c[Qc+24>>2]=c[kc+-80>>2];Qc=c[g>>2]|0;Sc=c[kc+-40>>2]|0;Vc=pb(Qc)|0;c[Na>>2]=Vc;if(!Vc){Re=Ra;Se=Ac;Te=gc;Ue=hc;Ve=kc;Zb=101;break a}dd=Vc+32|0;Vc=ze(Qc,dd,dd+4|0,dd+8|0,4)|0;if(!Vc){We=Qc;Xe=Ra;Ye=Ac;Ze=gc;_e=hc;$e=kc;Zb=100;break a}c[Vc>>2]=Sc;Sc=c[Na>>2]|0;if(!Sc){af=Ra;bf=Ac;cf=gc;df=hc;ef=kc;Zb=103;break a}c[(c[Ta>>2]|0)+28>>2]=Sc;Sc=c[g>>2]|0;Vc=c[kc>>2]|0;Qc=pb(Sc)|0;c[Na>>2]=Qc;if(!Qc){ff=Ra;gf=Ac;hf=gc;jf=hc;kf=kc;Zb=107;break a}dd=Qc+32|0;Qc=ze(Sc,dd,dd+4|0,dd+8|0,4)|0;if(!Qc){lf=Sc;mf=Ra;nf=Ac;of=gc;pf=hc;qf=kc;Zb=106;break a}c[Qc>>2]=Vc;Vc=c[Na>>2]|0;if(!Vc){rf=Ra;sf=Ac;tf=gc;uf=hc;vf=kc;Zb=109;break a}c[(c[Ta>>2]|0)+32>>2]=Vc;break}case 29:{Vc=Bb(c[g>>2]|0)|0;c[Ta>>2]=Vc;if(!Vc){wf=Ra;xf=Ac;yf=gc;zf=hc;Af=kc;Zb=112;break a}c[Vc+24>>2]=c[kc+-400>>2];Vc=pb(c[g>>2]|0)|0;if(!Vc){Bf=Ra;Cf=Ac;Df=gc;Ef=hc;Ff=kc;Zb=114;break a}Qc=kc+-240|0;Sc=kc+-280|0;dd=c[Sc+4>>2]|0;Rc=Vc+24|0;c[Rc>>2]=c[Sc>>2];c[Rc+4>>2]=dd;dd=Vc+32|0;c[dd>>2]=c[Qc>>2];c[dd+4>>2]=c[Qc+4>>2];c[dd+8>>2]=c[Qc+8>>2];c[(c[Ta>>2]|0)+28>>2]=Vc;Vc=pb(c[g>>2]|0)|0;if(!Vc){Gf=Ra;Hf=Ac;If=gc;Jf=hc;Kf=kc;Zb=116;break a}Qc=kc+-40|0;dd=kc+-80|0;Rc=c[dd+4>>2]|0;Sc=Vc+24|0;c[Sc>>2]=c[dd>>2];c[Sc+4>>2]=Rc;Rc=Vc+32|0;c[Rc>>2]=c[Qc>>2];c[Rc+4>>2]=c[Qc+4>>2];c[Rc+8>>2]=c[Qc+8>>2];c[(c[Ta>>2]|0)+32>>2]=Vc;break}case 30:{Vc=rb(c[g>>2]|0)|0;c[Ta>>2]=Vc;if(!Vc){Lf=Ra;Mf=Ac;Nf=gc;Of=hc;Pf=kc;Zb=119;break a}Qc=Vc+24|0;Vc=kc+-40|0;c[Qc>>2]=c[Vc>>2];c[Qc+4>>2]=c[Vc+4>>2];c[Qc+8>>2]=c[Vc+8>>2];c[Qc+12>>2]=c[Vc+12>>2];c[Qc+16>>2]=c[Vc+16>>2];c[Qc+20>>2]=c[Vc+20>>2];c[Qc+24>>2]=c[Vc+24>>2];c[(c[Ta>>2]|0)+24+28>>2]=c[kc>>2];break}case 31:{Vc=rb(c[g>>2]|0)|0;c[Ta>>2]=Vc;if(!Vc){Qf=Ra;Rf=Ac;Sf=gc;Tf=hc;Uf=kc;Zb=122;break a}Qc=Vc+24|0;Vc=kc+-80|0;c[Qc>>2]=c[Vc>>2];c[Qc+4>>2]=c[Vc+4>>2];c[Qc+8>>2]=c[Vc+8>>2];c[Qc+12>>2]=c[Vc+12>>2];c[Qc+16>>2]=c[Vc+16>>2];c[Qc+20>>2]=c[Vc+20>>2];c[Qc+24>>2]=c[Vc+24>>2];c[(c[Ta>>2]|0)+56>>2]=c[kc+-40>>2];c[(c[Ta>>2]|0)+24+28>>2]=c[kc>>2];break}case 32:{Vc=Eb(c[g>>2]|0)|0;c[Ta>>2]=Vc;if(!Vc){Vf=Ra;Wf=Ac;Xf=gc;Zf=hc;_f=kc;Zb=125;break a}Qc=Vc+32|0;c[Qc>>2]=0;c[Qc+4>>2]=0;Qc=kc+-40|0;Vc=c[Qc+4>>2]|0;Rc=(c[Ta>>2]|0)+24|0;c[Rc>>2]=c[Qc>>2];c[Rc+4>>2]=Vc;Vc=(c[Ta>>2]|0)+40|0;c[Vc>>2]=c[kc>>2];c[Vc+4>>2]=c[kc+4>>2];c[Vc+8>>2]=c[kc+8>>2];break}case 33:{Vc=Eb(c[g>>2]|0)|0;c[Ta>>2]=Vc;if(!Vc){$f=Ra;ag=Ac;bg=gc;cg=hc;dg=kc;Zb=128;break a}Rc=kc+-80|0;Qc=c[Rc+4>>2]|0;Sc=Vc+32|0;c[Sc>>2]=c[Rc>>2];c[Sc+4>>2]=Qc;Qc=kc+-40|0;Sc=c[Qc+4>>2]|0;Rc=(c[Ta>>2]|0)+24|0;c[Rc>>2]=c[Qc>>2];c[Rc+4>>2]=Sc;Sc=(c[Ta>>2]|0)+40|0;c[Sc>>2]=c[kc>>2];c[Sc+4>>2]=c[kc+4>>2];c[Sc+8>>2]=c[kc+8>>2];break}case 34:{Sc=qb(c[g>>2]|0)|0;c[Ta>>2]=Sc;if(!Sc){fg=Ra;gg=Ac;hg=gc;ig=hc;jg=kc;Zb=131;break a}Rc=Sc+24|0;Sc=fc+-16|0;c[Rc>>2]=c[Sc>>2];c[Rc+4>>2]=c[Sc+4>>2];c[Rc+8>>2]=c[Sc+8>>2];c[Rc+12>>2]=c[Sc+12>>2];Sc=c[Ta>>2]|0;c[Sc+40>>2]=0;Rc=Sc+24|0;c[Rc+20>>2]=0;c[Rc+28>>2]=c[kc>>2];break}case 35:{Rc=qb(c[g>>2]|0)|0;c[Ta>>2]=Rc;if(!Rc){kg=Ra;lg=Ac;mg=gc;ng=hc;og=kc;Zb=134;break a}Sc=Rc+24|0;Rc=kc+-40|0;c[Sc>>2]=c[Rc>>2];c[Sc+4>>2]=c[Rc+4>>2];c[Sc+8>>2]=c[Rc+8>>2];c[Sc+12>>2]=c[Rc+12>>2];c[Sc+16>>2]=c[Rc+16>>2];c[Sc+20>>2]=c[Rc+20>>2];c[Sc+24>>2]=c[Rc+24>>2];c[(c[Ta>>2]|0)+24+28>>2]=c[kc>>2];break}case 36:{Rc=Fb(c[g>>2]|0)|0;c[Ta>>2]=Rc;if(!Rc){pg=Ra;qg=Ac;rg=gc;sg=hc;tg=kc;Zb=137;break a}c[Rc+24>>2]=c[kc>>2];break}case 37:{Rc=sb(c[g>>2]|0)|0;c[Ta>>2]=Rc;if(!Rc){ug=Ra;vg=Ac;wg=gc;xg=hc;yg=kc;Zb=140;break a}c[Rc+24>>2]=c[kc>>2];Rc=(c[Ta>>2]|0)+28|0;Sc=kc+-80|0;c[Rc>>2]=c[Sc>>2];c[Rc+4>>2]=c[Sc+4>>2];c[Rc+8>>2]=c[Sc+8>>2];Sc=(c[Ta>>2]|0)+40|0;Rc=kc+-40|0;c[Sc>>2]=c[Rc>>2];c[Sc+4>>2]=c[Rc+4>>2];c[Sc+8>>2]=c[Rc+8>>2];c[Sc+12>>2]=c[Rc+12>>2];c[Sc+16>>2]=c[Rc+16>>2];c[Sc+20>>2]=c[Rc+20>>2];c[Sc+24>>2]=c[Rc+24>>2];break}case 38:{Rc=tb(c[g>>2]|0)|0;c[Ta>>2]=Rc;if(!Rc){zg=Ra;Ag=Ac;Bg=gc;Cg=hc;Dg=kc;Zb=143;break a}Sc=Rc+24|0;Rc=kc+-40|0;c[Sc>>2]=c[Rc>>2];c[Sc+4>>2]=c[Rc+4>>2];c[Sc+8>>2]=c[Rc+8>>2];c[Sc+12>>2]=c[Rc+12>>2];c[Sc+16>>2]=c[Rc+16>>2];c[Sc+20>>2]=c[Rc+20>>2];c[Sc+24>>2]=c[Rc+24>>2];Rc=(c[Ta>>2]|0)+24+28|0;c[Rc>>2]=c[kc>>2];c[Rc+4>>2]=c[kc+4>>2];c[Rc+8>>2]=c[kc+8>>2];break}case 39:{Rc=ub(c[g>>2]|0)|0;c[Ta>>2]=Rc;if(!Rc){Eg=Ra;Fg=Ac;Gg=gc;Hg=hc;Ig=kc;Zb=146;break a}Sc=Rc+24|0;Rc=kc+-40|0;c[Sc>>2]=c[Rc>>2];c[Sc+4>>2]=c[Rc+4>>2];c[Sc+8>>2]=c[Rc+8>>2];c[Sc+12>>2]=c[Rc+12>>2];c[Sc+16>>2]=c[Rc+16>>2];c[Sc+20>>2]=c[Rc+20>>2];c[Sc+24>>2]=c[Rc+24>>2];Rc=(c[Ta>>2]|0)+24+28|0;c[Rc>>2]=c[kc>>2];c[Rc+4>>2]=c[kc+4>>2];c[Rc+8>>2]=c[kc+8>>2];break}case 40:{Rc=vb(c[g>>2]|0)|0;c[Ta>>2]=Rc;if(!Rc){Jg=Ra;Kg=Ac;Lg=gc;Mg=hc;Ng=kc;Zb=149;break a}Sc=Rc+24|0;Rc=kc+-80|0;c[Sc>>2]=c[Rc>>2];c[Sc+4>>2]=c[Rc+4>>2];c[Sc+8>>2]=c[Rc+8>>2];c[Sc+12>>2]=c[Rc+12>>2];c[Sc+16>>2]=c[Rc+16>>2];c[Sc+20>>2]=c[Rc+20>>2];c[Sc+24>>2]=c[Rc+24>>2];c[(c[Ta>>2]|0)+24+28>>2]=c[kc+-40>>2];Rc=(c[Ta>>2]|0)+56|0;c[Rc>>2]=c[kc>>2];c[Rc+4>>2]=c[kc+4>>2];c[Rc+8>>2]=c[kc+8>>2];break}case 41:{Rc=zb(c[g>>2]|0)|0;c[Ta>>2]=Rc;if(!Rc){Og=Ra;Pg=Ac;Qg=gc;Rg=hc;Sg=kc;Zb=152;break a}Sc=Rc+24|0;c[Sc>>2]=c[kc>>2];c[Sc+4>>2]=c[kc+4>>2];c[Sc+8>>2]=c[kc+8>>2];c[Sc+12>>2]=c[kc+12>>2];c[Sc+16>>2]=c[kc+16>>2];c[Sc+20>>2]=c[kc+20>>2];c[Sc+24>>2]=c[kc+24>>2];break}case 42:{Sc=Hb(c[g>>2]|0)|0;c[Ta>>2]=Sc;if(!Sc){Tg=Ra;Ug=Ac;Vg=gc;Wg=hc;Xg=kc;Zb=155;break a}Rc=Sc+24|0;Sc=kc+-40|0;c[Rc>>2]=c[Sc>>2];c[Rc+4>>2]=c[Sc+4>>2];c[Rc+8>>2]=c[Sc+8>>2];c[Rc+12>>2]=c[Sc+12>>2];c[Rc+16>>2]=c[Sc+16>>2];c[Rc+20>>2]=c[Sc+20>>2];c[Rc+24>>2]=c[Sc+24>>2];c[(c[Ta>>2]|0)+24+28>>2]=c[kc>>2];break}case 43:{Sc=Db(c[g>>2]|0)|0;c[Ta>>2]=Sc;if(!Sc){Yg=Ra;Zg=Ac;_g=gc;$g=hc;ah=kc;Zb=158;break a}c[Sc+24>>2]=c[kc+-120>>2];Rc=kc+-80|0;Qc=c[Rc+4>>2]|0;Vc=Sc+32|0;c[Vc>>2]=c[Rc>>2];c[Vc+4>>2]=Qc;c[Sc+28>>2]=c[kc+-40>>2];c[Sc+40>>2]=c[kc>>2];break}case 44:{Sc=Ib(c[g>>2]|0)|0;c[Ta>>2]=Sc;if(!Sc){bh=Ra;ch=Ac;dh=gc;eh=hc;fh=kc;Zb=161;break a}c[Sc+24>>2]=c[kc+-160>>2];Qc=kc+-120|0;Vc=c[Qc+4>>2]|0;Rc=Sc+32|0;c[Rc>>2]=c[Qc>>2];c[Rc+4>>2]=Vc;c[Sc+28>>2]=c[kc+-80>>2];c[Sc+40>>2]=c[kc+-40>>2];c[(c[Ta>>2]|0)+24+20>>2]=c[kc>>2];break}case 45:{Sc=xb(c[g>>2]|0)|0;c[Ta>>2]=Sc;if(!Sc){gh=Ra;hh=Ac;ih=gc;jh=hc;kh=kc;Zb=164;break a}Vc=Sc+24|0;Sc=fc+-16|0;c[Vc>>2]=c[Sc>>2];c[Vc+4>>2]=c[Sc+4>>2];c[Vc+8>>2]=c[Sc+8>>2];c[Vc+12>>2]=c[Sc+12>>2];Sc=a[kc+-40>>0]|0;Vc=c[kc>>2]|0;Rc=kc+4|0;Qc=c[Rc>>2]|0;dd=Rc+4|0;cd=c[dd>>2]|0;ed=Qc+cd|0;lh=c[Ta>>2]|0;a[lh+40>>0]=Sc;switch(Sc&255|0){case 1:{mh=sd(Qc,ed,lh+48|0,1)|0;Zb=170;break}case 2:{mh=rd(Qc,ed,lh+48|0)|0;Zb=170;break}case 3:{mh=td(Vc,Qc,ed,lh+48|0)|0;Zb=170;break}case 4:{mh=ud(Vc,Qc,ed,lh+48|0)|0;Zb=170;break}default:{nh=cd;oh=Qc;Zb=172}}if((Zb|0)==170?(Zb=0,(mh|0)==1):0){nh=c[dd>>2]|0;oh=c[Rc>>2]|0;Zb=172}if((Zb|0)==172){Zb=0;c[$>>2]=nh;c[$+4>>2]=oh;Dd(fc,f,g,225915,$)}dd=c[g>>2]|0;Va[c[dd+8>>2]&31](dd,c[Rc>>2]|0,225770,465);break}case 46:{Rc=Jb(c[g>>2]|0)|0;c[Ta>>2]=Rc;if(!Rc){ph=Ra;qh=Ac;rh=gc;sh=hc;th=kc;Zb=175;break a}c[Rc+24>>2]=c[kc+-40>>2];c[Rc+28>>2]=c[kc>>2];break}case 47:{Rc=ob(c[g>>2]|0)|0;c[Ta>>2]=Rc;if(!Rc){uh=Ra;vh=Ac;wh=gc;xh=hc;yh=kc;Zb=178;break a}c[Rc+24>>2]=c[kc+-80>>2];c[Rc+28>>2]=c[kc+-40>>2];c[(c[Ta>>2]|0)+32>>2]=c[kc>>2];break}case 48:{Rc=Gb(c[g>>2]|0)|0;c[Ta>>2]=Rc;if(!Rc){zh=Ra;Ah=Ac;Bh=gc;Ch=hc;Dh=kc;Zb=181;break a}c[Rc+28>>2]=c[kc+-80>>2];c[(c[Ta>>2]|0)+32>>2]=c[kc+-40>>2];c[(c[Ta>>2]|0)+24>>2]=c[kc>>2];break}case 49:{Rc=wb(c[g>>2]|0)|0;c[Ta>>2]=Rc;if(!Rc){Eh=Ra;Fh=Ac;Gh=gc;Hh=hc;Ih=kc;Zb=184;break a}c[Rc+24>>2]=c[kc+-80>>2];c[Rc+28>>2]=c[kc+-40>>2];c[(c[Ta>>2]|0)+32>>2]=c[kc>>2];break}case 50:{Rc=yb(c[g>>2]|0)|0;c[Ta>>2]=Rc;if(!Rc){Jh=Ra;Kh=Ac;Lh=gc;Mh=hc;Nh=kc;Zb=187;break a}c[Rc+24>>2]=c[kc+-40>>2];c[Rc+28>>2]=c[kc>>2];break}case 51:{Rc=Kb(c[g>>2]|0,24)|0;c[Ta>>2]=Rc;if(!Rc){Oh=Ra;Ph=Ac;Qh=gc;Rh=hc;Sh=kc;Zb=190;break a}break}case 52:{Rc=Kb(c[g>>2]|0,17)|0;c[Ta>>2]=Rc;if(!Rc){Th=Ra;Uh=Ac;Vh=gc;Wh=hc;Xh=kc;Zb=192;break a}break}case 53:{Rc=Ab(c[g>>2]|0)|0;c[Ta>>2]=Rc;if(!Rc){Yh=Ra;Zh=Ac;_h=gc;$h=hc;ai=kc;Zb=194;break a}c[Rc+24>>2]=c[kc>>2];break}case 54:{c[Ta>>2]=0;break}case 56:{c[Ta>>2]=0;c[Ta+4>>2]=0;c[Ta+8>>2]=0;Rc=ze(c[g>>2]|0,Ta,ab,bb,4)|0;if(!Rc){bi=Ra;ci=Ac;di=gc;ei=hc;fi=kc;Zb=199;break a}c[Rc>>2]=c[kc>>2];break}case 57:{Rc=kc+-40|0;c[Ta>>2]=c[Rc>>2];c[Ta+4>>2]=c[Rc+4>>2];c[Ta+8>>2]=c[Rc+8>>2];Rc=ze(c[g>>2]|0,Ta,ab,bb,4)|0;if(!Rc){gi=Ra;hi=Ac;ii=gc;ji=hc;ki=kc;Zb=202;break a}c[Rc>>2]=c[kc>>2];break}case 58:{c[Ta>>2]=0;c[Ta+4>>2]=0;c[Ta+8>>2]=0;break}case 60:{Rc=c[g>>2]|0;dd=Ua[c[Rc>>2]&31](Rc,36,4,225770,67)|0;if(!dd){li=Ra;mi=Ac;ni=gc;oi=hc;pi=kc;Zb=205;break a}_a=dd;$a=_a+36|0;do{a[_a>>0]=0;_a=_a+1|0}while((_a|0)<($a|0));c[Ta>>2]=dd;c[dd>>2]=0;Uc=dd+4|0;c[Uc>>2]=c[kc>>2];c[Uc+4>>2]=c[kc+4>>2];c[Uc+8>>2]=c[kc+8>>2];c[(c[Ta>>2]|0)+32>>2]=0;break}case 61:{Uc=c[g>>2]|0;Wc=Ua[c[Uc>>2]&31](Uc,36,4,225770,67)|0;if(!Wc)qi=0;else{_a=Wc;$a=_a+36|0;do{a[_a>>0]=0;_a=_a+1|0}while((_a|0)<($a|0));qi=Wc}c[Ta>>2]=qi;c[qi>>2]=1;dd=qi+4|0;Uc=kc+-80|0;c[dd>>2]=c[Uc>>2];c[dd+4>>2]=c[Uc+4>>2];c[dd+8>>2]=c[Uc+8>>2];c[(c[Ta>>2]|0)+32>>2]=c[kc>>2];break}case 62:{Uc=c[g>>2]|0;dd=Ua[c[Uc>>2]&31](Uc,36,4,225770,67)|0;if(!dd)ri=0;else{_a=dd;$a=_a+36|0;do{a[_a>>0]=0;_a=_a+1|0}while((_a|0)<($a|0));ri=dd}c[Ta>>2]=ri;c[ri>>2]=2;Wc=ri+4|0;Uc=fc+-64|0;c[Wc>>2]=c[Uc>>2];c[Wc+4>>2]=c[Uc+4>>2];c[Wc+8>>2]=c[Uc+8>>2];c[Wc+12>>2]=c[Uc+12>>2];Uc=kc+-120|0;Wc=c[Uc+4>>2]|0;bc=(c[Ta>>2]|0)+20|0;c[bc>>2]=c[Uc>>2];c[bc+4>>2]=Wc;Wc=c[Ta>>2]|0;a[Wc+28>>0]=a[kc+-80>>0]|0;c[Wc+32>>2]=c[kc>>2];break}case 63:{Wc=c[g>>2]|0;bc=Ua[c[Wc>>2]&31](Wc,36,4,225770,67)|0;if(!bc)si=0;else{_a=bc;$a=_a+36|0;do{a[_a>>0]=0;_a=_a+1|0}while((_a|0)<($a|0));si=bc}c[Ta>>2]=si;c[si>>2]=3;a[si+4>>0]=a[kc+-80>>0]|0;c[(c[Ta>>2]|0)+32>>2]=c[kc>>2];break}case 64:{dd=c[g>>2]|0;Wc=Ua[c[dd>>2]&31](dd,36,4,225770,67)|0;if(!Wc)ti=0;else{_a=Wc;$a=_a+36|0;do{a[_a>>0]=0;_a=_a+1|0}while((_a|0)<($a|0));ti=Wc}c[Ta>>2]=ti;c[ti>>2]=4;bc=ti+4|0;dd=kc+-80|0;c[bc>>2]=c[dd>>2];c[bc+4>>2]=c[dd+4>>2];c[bc+8>>2]=c[dd+8>>2];c[(c[Ta>>2]|0)+32>>2]=c[kc>>2];break}case 65:{dd=c[g>>2]|0;bc=Ua[c[dd>>2]&31](dd,36,4,225770,67)|0;if(!bc)ui=0;else{_a=bc;$a=_a+36|0;do{a[_a>>0]=0;_a=_a+1|0}while((_a|0)<($a|0));ui=bc}c[Ta>>2]=ui;c[ui>>2]=5;Wc=ui+4|0;dd=fc+-64|0;c[Wc>>2]=c[dd>>2];c[Wc+4>>2]=c[dd+4>>2];c[Wc+8>>2]=c[dd+8>>2];c[Wc+12>>2]=c[dd+12>>2];dd=kc+-120|0;Wc=c[dd+4>>2]|0;Uc=(c[Ta>>2]|0)+20|0;c[Uc>>2]=c[dd>>2];c[Uc+4>>2]=Wc;Wc=c[Ta>>2]|0;a[Wc+28>>0]=a[kc+-80>>0]|0;c[Wc+32>>2]=c[kc>>2];break}case 66:{Wc=kc+-40|0;c[Ta>>2]=c[Wc>>2];c[Ta+4>>2]=c[Wc+4>>2];c[Ta+8>>2]=c[Wc+8>>2];c[Ta+12>>2]=c[Wc+12>>2];c[Ta+16>>2]=c[Wc+16>>2];c[Ta+20>>2]=c[Wc+20>>2];c[Ta+24>>2]=c[Wc+24>>2];break}case 67:{Wc=c[g>>2]|0;Uc=Ua[c[Wc>>2]&31](Wc,128,4,225770,71)|0;if(!Uc){vi=Ra;wi=Ac;xi=gc;yi=hc;zi=kc;Zb=224;break a}_a=Uc;$a=_a+128|0;do{a[_a>>0]=0;_a=_a+1|0}while((_a|0)<($a|0));c[Ta>>2]=Uc;bc=c[kc>>2]|0;if(bc|0){Wc=bc;while(1){bc=Wc;Wc=c[Wc+32>>2]|0;dd=c[bc>>2]|0;if((dd+-1|0)>>>0<3)c[(c[Ta>>2]|0)+24>>2]=2;switch(dd|0){case 0:{Rc=(c[Ta>>2]|0)+116|0;Qc=bc+4|0;c[Rc>>2]=c[Qc>>2];c[Rc+4>>2]=c[Qc+4>>2];c[Rc+8>>2]=c[Qc+8>>2];break}case 4:case 1:{Qc=c[Ta>>2]|0;Rc=(dd|0)==1?Qc+60|0:Qc+72|0;Qc=bc+4|0;cd=bc+8|0;if(Ae(c[g>>2]|0,Rc,Rc+4|0,Rc+8|0,Qc,c[cd>>2]|0,1)|0){Ai=Ra;Bi=Ac;Ci=gc;Di=hc;Ei=kc;Zb=232;break a}Rc=c[g>>2]|0;Va[c[Rc+8>>2]&31](Rc,c[Qc>>2]|0,225938,27);c[Qc>>2]=0;c[cd>>2]=0;c[bc+12>>2]=0;break}case 5:case 2:{cd=(dd|0)==2;dd=c[Ta>>2]|0;Qc=cd?dd+60|0:dd+72|0;Rc=Qc+4|0;lh=ze(c[g>>2]|0,Qc,Rc,Qc+8|0,1)|0;if(!lh){Fi=Ra;Gi=Ac;Hi=gc;Ii=hc;Ji=kc;Zb=234;break a}a[lh>>0]=a[bc+28>>0]|0;lh=cb(c[g>>2]|0,cd?dd+84|0:dd+100|0,bc+20|0)|0;if(!lh){Ki=Ra;Li=Ac;Mi=gc;Ni=hc;Oi=kc;Zb=236;break a}dd=bc+4|0;c[lh>>2]=c[dd>>2];c[lh+4>>2]=c[dd+4>>2];c[lh+8>>2]=c[dd+8>>2];c[lh+12>>2]=c[dd+12>>2];c[lh+24>>2]=(c[Rc>>2]|0)+-1;break}case 3:{a[(c[Ta>>2]|0)+56>>0]=a[bc+4>>0]|0;break}default:{}}Rc=c[g>>2]|0;Va[c[Rc+8>>2]&31](Rc,bc,225770,639);if(!Wc)break b}}break}case 68:{Wc=c[kc+-40>>2]|0;c[Ta>>2]=Wc;Uc=fc+-48|0;c[Wc>>2]=c[Uc>>2];c[Wc+4>>2]=c[Uc+4>>2];c[Wc+8>>2]=c[Uc+8>>2];c[Wc+12>>2]=c[Uc+12>>2];Uc=c[Ta>>2]|0;Wc=Uc+24|0;c[Wc>>2]=c[Wc>>2]|1;Wc=Uc+28|0;Uc=kc+-80|0;c[Wc>>2]=c[Uc>>2];c[Wc+4>>2]=c[Uc+4>>2];c[Wc+8>>2]=c[Uc+8>>2];c[Wc+12>>2]=c[Uc+12>>2];c[Wc+16>>2]=c[Uc+16>>2];c[Wc+20>>2]=c[Uc+20>>2];c[Wc+24>>2]=c[Uc+24>>2];break}case 69:{Uc=c[kc+-40>>2]|0;c[Ta>>2]=Uc;Wc=fc+-64|0;c[Uc>>2]=c[Wc>>2];c[Uc+4>>2]=c[Wc+4>>2];c[Uc+8>>2]=c[Wc+8>>2];c[Uc+12>>2]=c[Wc+12>>2];Wc=c[Ta>>2]|0;Uc=Wc+24|0;c[Uc>>2]=c[Uc>>2]|1;Uc=Wc+28|0;Wc=kc+-80|0;c[Uc>>2]=c[Wc>>2];c[Uc+4>>2]=c[Wc+4>>2];c[Uc+8>>2]=c[Wc+8>>2];c[Uc+12>>2]=c[Wc+12>>2];c[Uc+16>>2]=c[Wc+16>>2];c[Uc+20>>2]=c[Wc+20>>2];c[Uc+24>>2]=c[Wc+24>>2];Wc=kc+-120|0;Uc=c[Wc+4>>2]|0;bc=(c[Ta>>2]|0)+16|0;c[bc>>2]=c[Wc>>2];c[bc+4>>2]=Uc;break}case 70:{Uc=c[kc+-40>>2]|0;c[Ta>>2]=Uc;bc=fc+-32|0;c[Uc>>2]=c[bc>>2];c[Uc+4>>2]=c[bc+4>>2];c[Uc+8>>2]=c[bc+8>>2];c[Uc+12>>2]=c[bc+12>>2];c[(c[Ta>>2]|0)+24>>2]=2;break}case 71:{bc=c[kc+-40>>2]|0;c[Ta>>2]=bc;Uc=fc+-48|0;c[bc>>2]=c[Uc>>2];c[bc+4>>2]=c[Uc+4>>2];c[bc+8>>2]=c[Uc+8>>2];c[bc+12>>2]=c[Uc+12>>2];Uc=c[Ta>>2]|0;c[Uc+24>>2]=2;bc=kc+-80|0;Wc=c[bc+4>>2]|0;Rc=Uc+16|0;c[Rc>>2]=c[bc>>2];c[Rc+4>>2]=Wc;break}case 72:{Wc=kc+-40|0;c[Ta>>2]=c[Wc>>2];c[Ta+4>>2]=c[Wc+4>>2];c[Ta+8>>2]=c[Wc+8>>2];c[Ta+12>>2]=c[Wc+12>>2];c[Ta+16>>2]=c[Wc+16>>2];c[Ta+20>>2]=c[Wc+20>>2];c[Ta+24>>2]=c[Wc+24>>2];break}case 73:{Wc=kc+4|0;Rc=c[Wc>>2]|0;bc=Wc+4|0;if((sd(Rc,Rc+(c[bc>>2]|0)|0,Ta,0)|0)==1){Rc=c[Wc>>2]|0;c[L>>2]=c[bc>>2];c[L+4>>2]=Rc;Dd(fc,f,g,225992,L)}break}case 74:{Rc=fc+-48|0;c[Ta>>2]=c[Rc>>2];c[Ta+4>>2]=c[Rc+4>>2];c[Ta+8>>2]=c[Rc+8>>2];c[Ta+12>>2]=c[Rc+12>>2];c[jb>>2]=c[kc+-40+20>>2];c[hb>>2]=c[kc+-16>>2];c[eb>>2]=c[kc+-80>>2];break}case 75:{c[Ta>>2]=0;c[Ta+4>>2]=0;c[Ta+8>>2]=0;break}case 76:{Rc=kc+-40|0;c[Ta>>2]=c[Rc>>2];c[Ta+4>>2]=c[Rc+4>>2];c[Ta+8>>2]=c[Rc+8>>2];Rc=ze(c[g>>2]|0,Ta,ab,bb,28)|0;if(!Rc){Pi=Ra;Qi=Ac;Ri=gc;Si=hc;Ti=kc;Zb=251;break a};c[Rc>>2]=c[kc>>2];c[Rc+4>>2]=c[kc+4>>2];c[Rc+8>>2]=c[kc+8>>2];c[Rc+12>>2]=c[kc+12>>2];c[Rc+16>>2]=c[kc+16>>2];c[Rc+20>>2]=c[kc+20>>2];c[Rc+24>>2]=c[kc+24>>2];break}case 77:{Rc=kc+4|0;bc=c[Rc>>2]|0;Wc=Rc+4|0;if((sd(bc,bc+(c[Wc>>2]|0)|0,Ta,0)|0)==1){bc=c[Rc>>2]|0;c[J>>2]=c[Wc>>2];c[J+4>>2]=bc;Dd(fc,f,g,226030,J)}break}case 78:{bc=kc+4|0;Wc=c[bc>>2]|0;Rc=bc+4|0;if((sd(Wc,Wc+(c[Rc>>2]|0)|0,Ta,0)|0)==1){Wc=c[bc>>2]|0;c[I>>2]=c[Rc>>2];c[I+4>>2]=Wc;Dd(fc,f,g,226066,I)}break}case 79:{Wc=fc+-64|0;c[Ta>>2]=c[Wc>>2];c[Ta+4>>2]=c[Wc+4>>2];c[Ta+8>>2]=c[Wc+8>>2];c[Ta+12>>2]=c[Wc+12>>2];c[eb>>2]=c[kc+-120>>2];c[kb>>2]=c[kc+-80>>2];Wc=kc+-40|0;c[hb>>2]=c[Wc>>2];c[hb+4>>2]=c[Wc+4>>2];c[hb+8>>2]=c[Wc+8>>2];break}case 80:{Wc=fc+-48|0;c[Ta>>2]=c[Wc>>2];c[Ta+4>>2]=c[Wc+4>>2];c[Ta+8>>2]=c[Wc+8>>2];c[Ta+12>>2]=c[Wc+12>>2];Wc=c[kc+-80>>2]|0;c[eb>>2]=Wc;c[kb>>2]=Wc;Wc=kc+-40|0;c[hb>>2]=c[Wc>>2];c[hb+4>>2]=c[Wc+4>>2];c[hb+8>>2]=c[Wc+8>>2];break}case 81:{c[Ta>>2]=0;c[Ta+4>>2]=0;c[Ta+8>>2]=0;c[Ta+12>>2]=0;c[Ta+16>>2]=0;c[Ta+20>>2]=0;Wc=kc+-80|0;c[bb>>2]=c[Wc>>2];c[bb+4>>2]=c[Wc+4>>2];c[bb+8>>2]=c[Wc+8>>2];c[bb+12>>2]=c[Wc+12>>2];break}case 82:{Wc=kc+-200|0;Rc=c[Wc+4>>2]|0;bc=Ta;c[bc>>2]=c[Wc>>2];c[bc+4>>2]=Rc;Rc=kc+-80|0;c[bb>>2]=c[Rc>>2];c[bb+4>>2]=c[Rc+4>>2];c[bb+8>>2]=c[Rc+8>>2];c[bb+12>>2]=c[Rc+12>>2];break}case 83:{Rc=kc+-40|0;c[Ta>>2]=c[Rc>>2];c[Ta+4>>2]=c[Rc+4>>2];c[Ta+8>>2]=c[Rc+8>>2];break}case 84:{Rc=c[g>>2]|0;bc=Ua[c[Rc>>2]&31](Rc,88,4,225770,83)|0;if(!bc)Ui=0;else{_a=bc;$a=_a+88|0;do{a[_a>>0]=0;_a=_a+1|0}while((_a|0)<($a|0));Ui=bc}c[Ta>>2]=Ui;Rc=kc+-120|0;Wc=c[Rc+4>>2]|0;Uc=Ui+24|0;c[Uc>>2]=c[Rc>>2];c[Uc+4>>2]=Wc;Wc=kc+-80|0;Uc=c[Wc+4>>2]|0;Rc=(c[Ta>>2]|0)+32|0;c[Rc>>2]=c[Wc>>2];c[Rc+4>>2]=Uc;Uc=c[Ta>>2]|0;c[Uc+40>>2]=1;Rc=Uc+44|0;Uc=kc+-40|0;c[Rc>>2]=c[Uc>>2];c[Rc+4>>2]=c[Uc+4>>2];c[Rc+8>>2]=c[Uc+8>>2];c[Rc+12>>2]=c[Uc+12>>2];c[Rc+16>>2]=c[Uc+16>>2];c[Rc+20>>2]=c[Uc+20>>2];c[Rc+24>>2]=c[Uc+24>>2];break}case 85:{Uc=c[g>>2]|0;Rc=Ua[c[Uc>>2]&31](Uc,88,4,225770,83)|0;if(!Rc)Vi=0;else{_a=Rc;$a=_a+88|0;do{a[_a>>0]=0;_a=_a+1|0}while((_a|0)<($a|0));Vi=Rc}c[Ta>>2]=Vi;bc=kc+-160|0;Uc=c[bc+4>>2]|0;Wc=Vi+16|0;c[Wc>>2]=c[bc>>2];c[Wc+4>>2]=Uc;Uc=kc+-120|0;Wc=c[Uc+4>>2]|0;bc=(c[Ta>>2]|0)+24|0;c[bc>>2]=c[Uc>>2];c[bc+4>>2]=Wc;Wc=kc+-80|0;bc=c[Wc+4>>2]|0;Uc=(c[Ta>>2]|0)+32|0;c[Uc>>2]=c[Wc>>2];c[Uc+4>>2]=bc;bc=c[Ta>>2]|0;c[bc+40>>2]=1;Uc=bc+44|0;bc=kc+-40|0;c[Uc>>2]=c[bc>>2];c[Uc+4>>2]=c[bc+4>>2];c[Uc+8>>2]=c[bc+8>>2];c[Uc+12>>2]=c[bc+12>>2];c[Uc+16>>2]=c[bc+16>>2];c[Uc+20>>2]=c[bc+20>>2];c[Uc+24>>2]=c[bc+24>>2];break}case 86:{bc=c[g>>2]|0;Uc=Ua[c[bc>>2]&31](bc,88,4,225770,83)|0;if(!Uc)Wi=0;else{_a=Uc;$a=_a+88|0;do{a[_a>>0]=0;_a=_a+1|0}while((_a|0)<($a|0));Wi=Uc}c[Ta>>2]=Wi;Rc=kc+-120|0;bc=c[Rc+4>>2]|0;Wc=Wi+24|0;c[Wc>>2]=c[Rc>>2];c[Wc+4>>2]=bc;bc=kc+-80|0;Wc=c[bc+4>>2]|0;Rc=(c[Ta>>2]|0)+32|0;c[Rc>>2]=c[bc>>2];c[Rc+4>>2]=Wc;Wc=c[Ta>>2]|0;c[Wc+40>>2]=2;Rc=kc+-40|0;bc=Wc+72|0;c[bc>>2]=c[Rc>>2];c[bc+4>>2]=c[Rc+4>>2];c[bc+8>>2]=c[Rc+8>>2];c[bc+12>>2]=c[Rc+12>>2];break}case 87:{Rc=c[g>>2]|0;bc=Ua[c[Rc>>2]&31](Rc,88,4,225770,83)|0;if(!bc)Xi=0;else{_a=bc;$a=_a+88|0;do{a[_a>>0]=0;_a=_a+1|0}while((_a|0)<($a|0));Xi=bc}c[Ta>>2]=Xi;Uc=kc+-160|0;Rc=c[Uc+4>>2]|0;Wc=Xi+16|0;c[Wc>>2]=c[Uc>>2];c[Wc+4>>2]=Rc;Rc=kc+-120|0;Wc=c[Rc+4>>2]|0;Uc=(c[Ta>>2]|0)+24|0;c[Uc>>2]=c[Rc>>2];c[Uc+4>>2]=Wc;Wc=kc+-80|0;Uc=c[Wc+4>>2]|0;Rc=(c[Ta>>2]|0)+32|0;c[Rc>>2]=c[Wc>>2];c[Rc+4>>2]=Uc;Uc=c[Ta>>2]|0;c[Uc+40>>2]=2;Rc=kc+-40|0;Wc=Uc+72|0;c[Wc>>2]=c[Rc>>2];c[Wc+4>>2]=c[Rc+4>>2];c[Wc+8>>2]=c[Rc+8>>2];c[Wc+12>>2]=c[Rc+12>>2];break}case 88:{Rc=kc+-80|0;Wc=c[Rc+4>>2]|0;Uc=Ta;c[Uc>>2]=c[Rc>>2];c[Uc+4>>2]=Wc;Wc=kc+-40|0;c[bb>>2]=c[Wc>>2];c[bb+4>>2]=c[Wc+4>>2];c[bb+8>>2]=c[Wc+8>>2];c[bb+12>>2]=c[Wc+12>>2];c[bb+16>>2]=c[Wc+16>>2];c[bb+20>>2]=c[Wc+20>>2];c[bb+24>>2]=c[Wc+24>>2];break}case 89:{Wc=kc+-80|0;Uc=c[Wc+4>>2]|0;Rc=Ta;c[Rc>>2]=c[Wc>>2];c[Rc+4>>2]=Uc;break}case 90:{Uc=c[g>>2]|0;Rc=Ua[c[Uc>>2]&31](Uc,152,4,225770,79)|0;if(!Rc)Yi=0;else{Yf(Rc|0,0,152)|0;Yi=Rc}c[Ta>>2]=Yi;break}case 91:{Rc=c[kc+-40>>2]|0;c[Ta>>2]=Rc;Uc=nb(c[g>>2]|0,Rc)|0;if(!Uc){Zi=Ra;_i=Ac;$i=gc;aj=hc;bj=kc;Zb=280;break a};c[Uc>>2]=c[fc>>2];c[Uc+4>>2]=c[fc+4>>2];c[Uc+8>>2]=c[fc+8>>2];c[Uc+12>>2]=c[fc+12>>2];c[Uc+16>>2]=0;_a=Uc+24|0;uc=c[kc>>2]|0;$a=_a+128|0;do{c[_a>>2]=c[uc>>2];_a=_a+4|0;uc=uc+4|0}while((_a|0)<($a|0));bc=c[g>>2]|0;Va[c[bc+8>>2]&31](bc,c[kc>>2]|0,225770,817);break}case 92:{bc=c[kc+-40>>2]|0;c[Ta>>2]=bc;Uc=nb(c[g>>2]|0,bc)|0;if(!Uc){cj=Ra;dj=Ac;ej=gc;fj=hc;gj=kc;Zb=283;break a};c[Uc>>2]=c[fc>>2];c[Uc+4>>2]=c[fc+4>>2];c[Uc+8>>2]=c[fc+8>>2];c[Uc+12>>2]=c[fc+12>>2];c[Uc+16>>2]=1;_a=Uc+24|0;uc=c[kc>>2]|0;$a=_a+88|0;do{c[_a>>2]=c[uc>>2];_a=_a+4|0;uc=uc+4|0}while((_a|0)<($a|0));Uc=c[g>>2]|0;Va[c[Uc+8>>2]&31](Uc,c[kc>>2]|0,225770,826);break}case 93:{Uc=c[kc+-40>>2]|0;c[Ta>>2]=Uc;bc=nb(c[g>>2]|0,Uc)|0;if(!bc){hj=Ra;ij=Ac;jj=gc;kj=hc;lj=kc;Zb=286;break a};c[bc>>2]=c[fc>>2];c[bc+4>>2]=c[fc+4>>2];c[bc+8>>2]=c[fc+8>>2];c[bc+12>>2]=c[fc+12>>2];c[bc+16>>2]=2;_a=bc+24|0;uc=kc;$a=_a+36|0;do{c[_a>>2]=c[uc>>2];_a=_a+4|0;uc=uc+4|0}while((_a|0)<($a|0));break}case 94:{bc=c[kc+-40>>2]|0;c[Ta>>2]=bc;Uc=nb(c[g>>2]|0,bc)|0;if(!Uc){mj=Ra;nj=Ac;oj=gc;pj=hc;qj=kc;Zb=289;break a};c[Uc>>2]=c[fc>>2];c[Uc+4>>2]=c[fc+4>>2];c[Uc+8>>2]=c[fc+8>>2];c[Uc+12>>2]=c[fc+12>>2];c[Uc+16>>2]=3;bc=kc;Rc=c[bc+4>>2]|0;Wc=Uc+24|0;c[Wc>>2]=c[bc>>2];c[Wc+4>>2]=Rc;break}case 95:{Rc=c[kc+-40>>2]|0;c[Ta>>2]=Rc;Wc=nb(c[g>>2]|0,Rc)|0;if(!Wc){rj=Ra;sj=Ac;tj=gc;uj=hc;vj=kc;Zb=292;break a};c[Wc>>2]=c[fc>>2];c[Wc+4>>2]=c[fc+4>>2];c[Wc+8>>2]=c[fc+8>>2];c[Wc+12>>2]=c[fc+12>>2];c[Wc+16>>2]=4;Rc=Wc+24|0;c[Rc>>2]=c[kc>>2];c[Rc+4>>2]=c[kc+4>>2];c[Rc+8>>2]=c[kc+8>>2];break}case 96:{Rc=c[kc+-40>>2]|0;c[Ta>>2]=Rc;Wc=nb(c[g>>2]|0,Rc)|0;if(!Wc){wj=Ra;xj=Ac;yj=gc;zj=hc;Aj=kc;Zb=295;break a};c[Wc>>2]=c[fc>>2];c[Wc+4>>2]=c[fc+4>>2];c[Wc+8>>2]=c[fc+8>>2];c[Wc+12>>2]=c[fc+12>>2];c[Wc+16>>2]=5;Rc=Wc+24|0;c[Rc>>2]=c[kc>>2];c[Rc+4>>2]=c[kc+4>>2];c[Rc+8>>2]=c[kc+8>>2];c[Rc+12>>2]=c[kc+12>>2];c[Rc+16>>2]=c[kc+16>>2];c[Rc+20>>2]=c[kc+20>>2];break}case 97:{Rc=c[kc+-40>>2]|0;c[Ta>>2]=Rc;Wc=nb(c[g>>2]|0,Rc)|0;if(!Wc){Bj=Ra;Cj=Ac;Dj=gc;Ej=hc;Fj=kc;Zb=298;break a};c[Wc>>2]=c[fc>>2];c[Wc+4>>2]=c[fc+4>>2];c[Wc+8>>2]=c[fc+8>>2];c[Wc+12>>2]=c[fc+12>>2];c[Wc+16>>2]=6;_a=Wc+24|0;uc=kc;$a=_a+36|0;do{c[_a>>2]=c[uc>>2];_a=_a+4|0;uc=uc+4|0}while((_a|0)<($a|0));break}case 98:{Wc=c[kc+-40>>2]|0;c[Ta>>2]=Wc;Rc=nb(c[g>>2]|0,Wc)|0;if(!Rc){Gj=Ra;Hj=Ac;Ij=gc;Jj=hc;Kj=kc;Zb=301;break a};c[Rc>>2]=c[fc>>2];c[Rc+4>>2]=c[fc+4>>2];c[Rc+8>>2]=c[fc+8>>2];c[Rc+12>>2]=c[fc+12>>2];c[Rc+16>>2]=7;Wc=Rc+24|0;c[Wc>>2]=c[kc>>2];c[Wc+4>>2]=c[kc+4>>2];c[Wc+8>>2]=c[kc+8>>2];c[Wc+12>>2]=c[kc+12>>2];c[Wc+16>>2]=c[kc+16>>2];c[Wc+20>>2]=c[kc+20>>2];c[Wc+24>>2]=c[kc+24>>2];break}case 99:{Wc=c[kc+-40>>2]|0;c[Ta>>2]=Wc;Rc=fc+-32|0;c[Wc>>2]=c[Rc>>2];c[Wc+4>>2]=c[Rc+4>>2];c[Wc+8>>2]=c[Rc+8>>2];c[Wc+12>>2]=c[Rc+12>>2];Rc=c[Ta>>2]|0;Wc=c[Rc+16>>2]|0;if(!Wc)Lj=Rc;else{Rc=Wc;do{switch(c[Rc+16>>2]|0){case 0:{Wc=c[Ta>>2]|0;bc=ze(c[g>>2]|0,Wc+24|0,Wc+28|0,Wc+32|0,4)|0;if(!bc){Mj=Ra;Nj=Ac;Oj=gc;Pj=hc;Qj=kc;Zb=307;break a}c[bc>>2]=Rc+24;bc=Rc+40|0;if(c[bc>>2]|0){Wc=cb(c[g>>2]|0,(c[Ta>>2]|0)+88|0,bc)|0;if(!Wc){Rj=Ra;Sj=Ac;Tj=gc;Uj=hc;Vj=kc;Zb=311;break a};c[Wc>>2]=c[Rc>>2];c[Wc+4>>2]=c[Rc+4>>2];c[Wc+8>>2]=c[Rc+8>>2];c[Wc+12>>2]=c[Rc+12>>2];c[Wc+24>>2]=(c[(c[Ta>>2]|0)+28>>2]|0)+-1}break}case 1:{Wc=c[Ta>>2]|0;bc=ze(c[g>>2]|0,Wc+36|0,Wc+40|0,Wc+44|0,4)|0;if(!bc){Wj=Ra;Xj=Ac;Yj=gc;Zj=hc;_j=kc;Zb=313;break a}c[bc>>2]=Rc+24;bc=Rc+40|0;if(c[bc>>2]|0){Wc=cb(c[g>>2]|0,(c[Ta>>2]|0)+104|0,bc)|0;if(!Wc){$j=Ra;ak=Ac;bk=gc;ck=hc;dk=kc;Zb=317;break a};c[Wc>>2]=c[Rc>>2];c[Wc+4>>2]=c[Rc+4>>2];c[Wc+8>>2]=c[Rc+8>>2];c[Wc+12>>2]=c[Rc+12>>2];c[Wc+24>>2]=(c[(c[Ta>>2]|0)+40>>2]|0)+-1}break}case 2:{Wc=Rc+24|0;bc=c[Ta>>2]|0;Uc=ze(c[g>>2]|0,bc+48|0,bc+52|0,bc+56|0,4)|0;if(!Uc){ek=Ra;fk=Ac;gk=gc;hk=hc;ik=kc;Zb=319;break a}c[Uc>>2]=Wc;if(c[Wc>>2]|0){Uc=cb(c[g>>2]|0,(c[Ta>>2]|0)+120|0,Wc)|0;if(!Uc){jk=Ra;kk=Ac;lk=gc;mk=hc;nk=kc;Zb=323;break a};c[Uc>>2]=c[Rc>>2];c[Uc+4>>2]=c[Rc+4>>2];c[Uc+8>>2]=c[Rc+8>>2];c[Uc+12>>2]=c[Rc+12>>2];c[Uc+24>>2]=(c[(c[Ta>>2]|0)+52>>2]|0)+-1}break}case 3:{c[(c[Ta>>2]|0)+84>>2]=Rc+24;break}case 4:{c[(c[Ta>>2]|0)+72>>2]=Rc+24;break}case 5:{Uc=Rc+24|0;Wc=c[Ta>>2]|0;bc=ze(c[g>>2]|0,Wc+60|0,Wc+64|0,Wc+68|0,4)|0;if(!bc){ok=Ra;pk=Ac;qk=gc;rk=hc;sk=kc;Zb=327;break a}c[bc>>2]=Uc;if(c[Uc>>2]|0){bc=cb(c[g>>2]|0,(c[Ta>>2]|0)+136|0,Uc)|0;if(!bc){tk=Ra;uk=Ac;vk=gc;wk=hc;xk=kc;Zb=331;break a};c[bc>>2]=c[Rc>>2];c[bc+4>>2]=c[Rc+4>>2];c[bc+8>>2]=c[Rc+8>>2];c[bc+12>>2]=c[Rc+12>>2];c[bc+24>>2]=(c[(c[Ta>>2]|0)+64>>2]|0)+-1}break}case 6:{c[(c[Ta>>2]|0)+76>>2]=Rc+24;break}case 7:{c[(c[Ta>>2]|0)+80>>2]=Rc+24;break}default:{}}Rc=c[Rc+20>>2]|0}while((Rc|0)!=0);Lj=c[Ta>>2]|0}if(!(c[Lj+28>>2]|0))yk=Lj;else{Rc=Lj;bc=0;while(1){Uc=c[(c[Rc+24>>2]|0)+(bc<<2)>>2]|0;Wc=c[g>>2]|0;if((((c[Uc+24>>2]&3|0)==1?(lh=ib(Rc,Uc+28|0)|0,(lh|0)>-1):0)?lh>>>0<(c[Rc+64>>2]|0)>>>0:0)?(dd=c[(c[Rc+60>>2]|0)+(lh<<2)>>2]|0,a[Uc+56>>0]=a[dd+8>>0]|0,Ae(Wc,Uc+60|0,Uc+64|0,Uc+68|0,dd+12|0,c[dd+16>>2]|0,1)|0):0){zk=Ra;Ak=Ac;Bk=gc;Ck=hc;Dk=kc;Zb=340;break a}bc=bc+1|0;dd=c[Ta>>2]|0;if(bc>>>0>=(c[dd+28>>2]|0)>>>0){yk=dd;break}else Rc=dd}}if(c[yk+40>>2]|0){Rc=yk;bc=0;do{dd=c[(c[Rc+36>>2]|0)+(bc<<2)>>2]|0;Uc=c[g>>2]|0;if((((c[dd+40>>2]&3|0)==1?(Wc=ib(Rc,dd+44|0)|0,(Wc|0)>-1):0)?Wc>>>0<(c[Rc+64>>2]|0)>>>0:0)?(lh=c[(c[Rc+60>>2]|0)+(Wc<<2)>>2]|0,a[dd+72>>0]=a[lh+8>>0]|0,Ae(Uc,dd+76|0,dd+80|0,dd+84|0,lh+12|0,c[lh+16>>2]|0,1)|0):0){Ek=Ra;Fk=Ac;Gk=gc;Hk=hc;Ik=kc;Zb=346;break a}bc=bc+1|0;Rc=c[Ta>>2]|0}while(bc>>>0<(c[Rc+40>>2]|0)>>>0)}break}case 100:{Rc=c[g>>2]|0;bc=Ua[c[Rc>>2]&31](Rc,168,4,225770,75)|0;if(!bc)Jk=0;else{Yf(bc|0,0,168)|0;Jk=bc}c[Ta>>2]=Jk;c[Jk>>2]=0;eg(Jk+8|0,c[kc>>2]|0,152)|0;bc=c[g>>2]|0;Va[c[bc+8>>2]&31](bc,c[kc>>2]|0,225770,978);break}case 101:{bc=c[g>>2]|0;Rc=Ua[c[bc>>2]&31](bc,168,4,225770,75)|0;if(!Rc)Kk=0;else{Yf(Rc|0,0,168)|0;Kk=Rc}c[Ta>>2]=Kk;c[Kk>>2]=1;Rc=Kk+8|0;bc=fc+-48|0;c[Rc>>2]=c[bc>>2];c[Rc+4>>2]=c[bc+4>>2];c[Rc+8>>2]=c[bc+8>>2];c[Rc+12>>2]=c[bc+12>>2];bc=kc+-80|0;Rc=c[bc+4>>2]|0;lh=(c[Ta>>2]|0)+24|0;c[lh>>2]=c[bc>>2];c[lh+4>>2]=Rc;Rc=(c[Ta>>2]|0)+32|0;lh=kc+-40|0;c[Rc>>2]=c[lh>>2];c[Rc+4>>2]=c[lh+4>>2];c[Rc+8>>2]=c[lh+8>>2];break}case 102:{lh=c[g>>2]|0;Rc=Ua[c[lh>>2]&31](lh,168,4,225770,75)|0;if(!Rc)Lk=0;else{Yf(Rc|0,0,168)|0;Lk=Rc}c[Ta>>2]=Lk;c[Lk>>2]=2;Rc=kc+-80|0;eg(Lk+8|0,c[Rc>>2]|0,152)|0;lh=kc+-40|0;bc=c[lh+4>>2]|0;dd=Lk+160|0;c[dd>>2]=c[lh>>2];c[dd+4>>2]=bc;bc=c[g>>2]|0;Va[c[bc+8>>2]&31](bc,c[Rc>>2]|0,225770,992);break}case 103:{Rc=c[g>>2]|0;bc=Ua[c[Rc>>2]&31](Rc,168,4,225770,75)|0;if(!bc)Mk=0;else{Yf(bc|0,0,168)|0;Mk=bc}c[Ta>>2]=Mk;c[Mk>>2]=3;bc=Mk+8|0;Rc=fc+-80|0;c[bc>>2]=c[Rc>>2];c[bc+4>>2]=c[Rc+4>>2];c[bc+8>>2]=c[Rc+8>>2];c[bc+12>>2]=c[Rc+12>>2];Rc=kc+-160|0;bc=c[Rc+4>>2]|0;dd=(c[Ta>>2]|0)+24|0;c[dd>>2]=c[Rc>>2];c[dd+4>>2]=bc;bc=(c[Ta>>2]|0)+32|0;dd=kc+-120|0;c[bc>>2]=c[dd>>2];c[bc+4>>2]=c[dd+4>>2];c[bc+8>>2]=c[dd+8>>2];dd=(c[Ta>>2]|0)+48|0;bc=kc+-40|0;c[dd>>2]=c[bc>>2];c[dd+4>>2]=c[bc+4>>2];c[dd+8>>2]=c[bc+8>>2];c[dd+12>>2]=c[bc+12>>2];c[dd+16>>2]=c[bc+16>>2];c[dd+20>>2]=c[bc+20>>2];c[dd+24>>2]=c[bc+24>>2];c[dd+28>>2]=c[bc+28>>2];break}case 104:{bc=c[g>>2]|0;dd=Ua[c[bc>>2]&31](bc,168,4,225770,75)|0;if(!dd)Nk=0;else{Yf(dd|0,0,168)|0;Nk=dd}c[Ta>>2]=Nk;c[Nk>>2]=4;dd=Nk+8|0;bc=fc+-64|0;c[dd>>2]=c[bc>>2];c[dd+4>>2]=c[bc+4>>2];c[dd+8>>2]=c[bc+8>>2];c[dd+12>>2]=c[bc+12>>2];bc=kc+-120|0;dd=c[bc+4>>2]|0;Rc=(c[Ta>>2]|0)+24|0;c[Rc>>2]=c[bc>>2];c[Rc+4>>2]=dd;dd=(c[Ta>>2]|0)+32|0;Rc=kc+-80|0;c[dd>>2]=c[Rc>>2];c[dd+4>>2]=c[Rc+4>>2];c[dd+8>>2]=c[Rc+8>>2];break}case 105:{Rc=c[g>>2]|0;dd=Ua[c[Rc>>2]&31](Rc,168,4,225770,75)|0;if(!dd)Ok=0;else{Yf(dd|0,0,168)|0;Ok=dd}c[Ta>>2]=Ok;c[Ok>>2]=5;dd=Ok+8|0;Rc=fc+-80|0;c[dd>>2]=c[Rc>>2];c[dd+4>>2]=c[Rc+4>>2];c[dd+8>>2]=c[Rc+8>>2];c[dd+12>>2]=c[Rc+12>>2];Rc=kc+-160|0;dd=c[Rc+4>>2]|0;bc=(c[Ta>>2]|0)+24|0;c[bc>>2]=c[Rc>>2];c[bc+4>>2]=dd;dd=(c[Ta>>2]|0)+32|0;bc=kc+-120|0;c[dd>>2]=c[bc>>2];c[dd+4>>2]=c[bc+4>>2];c[dd+8>>2]=c[bc+8>>2];bc=kc+-40|0;dd=c[bc+4>>2]|0;Rc=(c[Ta>>2]|0)+8+36|0;c[Rc>>2]=c[bc>>2];c[Rc+4>>2]=dd;break}case 106:{c[Ta>>2]=0;c[Ta+4>>2]=0;c[Ta+8>>2]=0;break}case 107:{dd=kc+-40|0;c[Ta>>2]=c[dd>>2];c[Ta+4>>2]=c[dd+4>>2];c[Ta+8>>2]=c[dd+8>>2];dd=c[kc>>2]|0;Rc=ze(c[g>>2]|0,Ta,ab,bb,168)|0;if(!Rc){Pk=Ra;Qk=Ac;Rk=gc;Sk=hc;Tk=kc;Zb=368;break a}eg(Rc|0,dd|0,168)|0;dd=c[g>>2]|0;Va[c[dd+8>>2]&31](dd,c[kc>>2]|0,225770,1023);break}case 108:{dd=fc+-32|0;c[Ta>>2]=c[dd>>2];c[Ta+4>>2]=c[dd+4>>2];c[Ta+8>>2]=c[dd+8>>2];c[Ta+12>>2]=c[dd+12>>2];dd=a[kc+-80>>0]|0;Rc=c[kc+-40>>2]|0;bc=kc+-36|0;lh=c[bc>>2]|0;Uc=bc+4|0;Wc=c[Uc>>2]|0;cd=lh+Wc|0;a[eb>>0]=dd;switch(dd&255|0){case 1:{Uk=sd(lh,cd,hb,1)|0;Zb=375;break}case 2:{Uk=rd(lh,cd,lb)|0;Zb=375;break}case 3:{Uk=td(Rc,lh,cd,hb)|0;Zb=375;break}case 4:{Uk=ud(Rc,lh,cd,lb)|0;Zb=375;break}default:{Vk=Wc;Wk=lh;Zb=377}}if((Zb|0)==375?(Zb=0,(Uk|0)==1):0){Vk=c[Uc>>2]|0;Wk=c[bc>>2]|0;Zb=377}if((Zb|0)==377){Zb=0;c[o>>2]=Vk;c[o+4>>2]=Wk;Dd(fc+-16|0,f,g,225915,o)}Uc=c[g>>2]|0;Va[c[Uc+8>>2]&31](Uc,c[bc>>2]|0,225770,1036);break}case 109:{a[eb>>0]=0;break}case 111:{c[Ta>>2]=0;c[Ta+4>>2]=0;c[Ta+8>>2]=0;break}case 112:{bc=kc+-40|0;c[Ta>>2]=c[bc>>2];c[Ta+4>>2]=c[bc+4>>2];c[Ta+8>>2]=c[bc+8>>2];bc=ze(c[g>>2]|0,Ta,ab,bb,32)|0;if(!bc){Xk=Ra;Yk=Ac;Zk=gc;_k=hc;$k=kc;Zb=383;break a};c[bc>>2]=c[kc>>2];c[bc+4>>2]=c[kc+4>>2];c[bc+8>>2]=c[kc+8>>2];c[bc+12>>2]=c[kc+12>>2];c[bc+16>>2]=c[kc+16>>2];c[bc+20>>2]=c[kc+20>>2];c[bc+24>>2]=c[kc+24>>2];c[bc+28>>2]=c[kc+28>>2];break}case 113:{c[ab>>2]=c[kc>>2];c[ab+4>>2]=c[kc+4>>2];c[ab+8>>2]=c[kc+8>>2];c[mb>>2]=c[Ta>>2];c[mb+4>>2]=c[Ta+4>>2];c[mb+8>>2]=c[Ta+8>>2];c[mb+12>>2]=c[Ta+12>>2];break}default:{}}while(0);$b=hc+(Ra<<1)|0;ac=fc+(Ra<<4)|0;bc=kc+(Ra*40|0)+40|0;_a=bc;uc=Ta;$a=_a+40|0;do{c[_a>>2]=c[uc>>2];_a=_a+4|0;uc=uc+4|0}while((_a|0)<($a|0));Ra=ac+16|0;c[ac+16>>2]=Gc;c[ac+20>>2]=Kc;c[ac+24>>2]=Hc;c[ac+28>>2]=Ic;Uc=(d[226098+_b>>0]|0)+-57|0;lh=b[$b>>1]|0;Wc=lh+(b[7748+(Uc<<1)>>1]|0)|0;if(Wc>>>0<322?(e[6460+(Wc<<1)>>1]|0)==(lh|0):0){vc=Ac;wc=Ra;xc=$b;yc=e[7104+(Wc<<1)>>1]|0;zc=bc;break}vc=Ac;wc=Ra;xc=$b;yc=b[7832+(Uc<<1)>>1]|0;zc=bc}while(0);Lb=vc;Mb=ec;Nb=wc;Sa=gc;Pb=xc+2|0;Qb=ic;Rb=yc;Sb=jc;Tb=zc}g:switch(Zb|0){case 27:{c[Na>>2]=225770;c[Na+4>>2]=194;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,Ma);al=Lc;bl=Mc;cl=Nc;dl=Oc;el=Pc;Zb=398;break}case 37:{c[ab>>2]=0;c[db>>2]=c[Xc>>2];c[Na>>2]=225770;c[Na+4>>2]=217;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,La);al=Yc;bl=Zc;cl=_c;dl=$c;el=ad;Zb=398;break}case 43:{c[ab>>2]=0;c[db>>2]=c[fd>>2];c[Na>>2]=225770;c[Na+4>>2]=222;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,Ka);al=gd;bl=hd;cl=id;dl=jd;el=kd;Zb=398;break}case 52:{c[gb>>2]=0;c[hb>>2]=c[md>>2];c[Na>>2]=225770;c[Na+4>>2]=243;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,Ia);al=nd;bl=od;cl=pd;dl=qd;el=vd;Zb=398;break}case 56:{c[Na>>2]=225770;c[Na+4>>2]=250;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,Ha);al=wd;bl=xd;cl=yd;dl=zd;el=Ad;Zb=398;break}case 62:{c[Ta>>2]=0;c[ab>>2]=c[Cd>>2];c[Na>>2]=225770;c[Na+4>>2]=254;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,Ga);al=Ed;bl=Fd;cl=Jd;dl=Ld;el=Md;Zb=398;break}case 65:{c[Za>>2]=225770;c[Za+4>>2]=261;c[Za+12>>2]=0;c[Za+8>>2]=0;Dd(Za,f,g,225833,Fa);al=Nd;bl=Od;cl=Pd;dl=Qd;el=Rd;Zb=398;break}case 67:{c[Na>>2]=225770;c[Na+4>>2]=270;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,Ea);al=Sd;bl=Td;cl=Ud;dl=Vd;el=Wd;Zb=398;break}case 78:{c[Na>>2]=225770;c[Na+4>>2]=307;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,Ba);al=Xd;bl=Yd;cl=Zd;dl=_d;el=$d;Zb=398;break}case 81:{c[Ta>>2]=0;c[Na>>2]=225770;c[Na+4>>2]=311;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,Aa);al=ae;bl=be;cl=ce;dl=de;el=ee;Zb=398;break}case 83:{c[Na>>2]=225770;c[Na+4>>2]=315;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,za);al=fe;bl=ge;cl=he;dl=ie;el=je;Zb=398;break}case 86:{Ob(pe,Na);ke=qe;le=re;me=se;ne=te;oe=ue;Zb=87;break}case 92:{c[Na>>2]=225770;c[Na+4>>2]=323;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,xa);al=Ce;bl=De;cl=Ee;dl=Fe;el=Ge;Zb=398;break}case 95:{c[Na>>2]=225770;c[Na+4>>2]=327;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,wa);al=He;bl=Ie;cl=Je;dl=Ke;el=Le;Zb=398;break}case 97:{c[Na>>2]=225770;c[Na+4>>2]=332;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,va);al=Me;bl=Ne;cl=Oe;dl=Pe;el=Qe;Zb=398;break}case 100:{Ob(We,Na);Re=Xe;Se=Ye;Te=Ze;Ue=_e;Ve=$e;Zb=101;break}case 106:{Ob(lf,Na);ff=mf;gf=nf;hf=of;jf=pf;kf=qf;Zb=107;break}case 112:{c[Na>>2]=225770;c[Na+4>>2]=343;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,sa);al=wf;bl=xf;cl=yf;dl=zf;el=Af;Zb=398;break}case 114:{c[Na>>2]=225770;c[Na+4>>2]=347;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,ra);al=Bf;bl=Cf;cl=Df;dl=Ef;el=Ff;Zb=398;break}case 116:{c[Na>>2]=225770;c[Na+4>>2]=351;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,qa);al=Gf;bl=Hf;cl=If;dl=Jf;el=Kf;Zb=398;break}case 119:{c[Na>>2]=225770;c[Na+4>>2]=356;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,pa);al=Lf;bl=Mf;cl=Nf;dl=Of;el=Pf;Zb=398;break}case 122:{c[Na>>2]=225770;c[Na+4>>2]=362;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,oa);al=Qf;bl=Rf;cl=Sf;dl=Tf;el=Uf;Zb=398;break}case 125:{c[Na>>2]=225770;c[Na+4>>2]=369;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,na);al=Vf;bl=Wf;cl=Xf;dl=Zf;el=_f;Zb=398;break}case 128:{c[Na>>2]=225770;c[Na+4>>2]=376;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,ma);al=$f;bl=ag;cl=bg;dl=cg;el=dg;Zb=398;break}case 131:{c[Na>>2]=225770;c[Na+4>>2]=383;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,la);al=fg;bl=gg;cl=hg;dl=ig;el=jg;Zb=398;break}case 134:{c[Na>>2]=225770;c[Na+4>>2]=391;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,ka);al=kg;bl=lg;cl=mg;dl=ng;el=og;Zb=398;break}case 137:{c[Na>>2]=225770;c[Na+4>>2]=397;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,ja);al=pg;bl=qg;cl=rg;dl=sg;el=tg;Zb=398;break}case 140:{c[Na>>2]=225770;c[Na+4>>2]=402;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,ia);al=ug;bl=vg;cl=wg;dl=xg;el=yg;Zb=398;break}case 143:{c[Na>>2]=225770;c[Na+4>>2]=409;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,ha);al=zg;bl=Ag;cl=Bg;dl=Cg;el=Dg;Zb=398;break}case 146:{c[Na>>2]=225770;c[Na+4>>2]=415;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,ga);al=Eg;bl=Fg;cl=Gg;dl=Hg;el=Ig;Zb=398;break}case 149:{c[Na>>2]=225770;c[Na+4>>2]=421;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,fa);al=Jg;bl=Kg;cl=Lg;dl=Mg;el=Ng;Zb=398;break}case 152:{c[Na>>2]=225770;c[Na+4>>2]=428;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,ea);al=Og;bl=Pg;cl=Qg;dl=Rg;el=Sg;Zb=398;break}case 155:{c[Na>>2]=225770;c[Na+4>>2]=433;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,da);al=Tg;bl=Ug;cl=Vg;dl=Wg;el=Xg;Zb=398;break}case 158:{c[Na>>2]=225770;c[Na+4>>2]=439;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,ca);al=Yg;bl=Zg;cl=_g;dl=$g;el=ah;Zb=398;break}case 161:{c[Na>>2]=225770;c[Na+4>>2]=447;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,ba);al=bh;bl=ch;cl=dh;dl=eh;el=fh;Zb=398;break}case 164:{c[Na>>2]=225770;c[Na+4>>2]=456;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,aa);al=gh;bl=hh;cl=ih;dl=jh;el=kh;Zb=398;break}case 175:{c[Na>>2]=225770;c[Na+4>>2]=469;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,_);al=ph;bl=qh;cl=rh;dl=sh;el=th;Zb=398;break}case 178:{c[Na>>2]=225770;c[Na+4>>2]=475;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,Z);al=uh;bl=vh;cl=wh;dl=xh;el=yh;Zb=398;break}case 181:{c[Na>>2]=225770;c[Na+4>>2]=482;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,Y);al=zh;bl=Ah;cl=Bh;dl=Ch;el=Dh;Zb=398;break}case 184:{c[Na>>2]=225770;c[Na+4>>2]=489;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,X);al=Eh;bl=Fh;cl=Gh;dl=Hh;el=Ih;Zb=398;break}case 187:{c[Na>>2]=225770;c[Na+4>>2]=496;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,W);al=Jh;bl=Kh;cl=Lh;dl=Mh;el=Nh;Zb=398;break}case 190:{c[Na>>2]=225770;c[Na+4>>2]=502;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,V);al=Oh;bl=Ph;cl=Qh;dl=Rh;el=Sh;Zb=398;break}case 192:{c[Na>>2]=225770;c[Na+4>>2]=506;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,U);al=Th;bl=Uh;cl=Vh;dl=Wh;el=Xh;Zb=398;break}case 194:{c[Na>>2]=225770;c[Na+4>>2]=510;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,T);al=Yh;bl=Zh;cl=_h;dl=$h;el=ai;Zb=398;break}case 199:{c[Na>>2]=225770;c[Na+4>>2]=521;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,S);al=bi;bl=ci;cl=di;dl=ei;el=fi;Zb=398;break}case 202:{c[Na>>2]=225770;c[Na+4>>2]=525;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,R);al=gi;bl=hi;cl=ii;dl=ji;el=ki;Zb=398;break}case 205:{c[Ta>>2]=0;c[Na>>2]=225770;c[Na+4>>2]=537;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,Q);al=li;bl=mi;cl=ni;dl=oi;el=pi;Zb=398;break}case 224:{c[Ta>>2]=0;c[Na>>2]=225770;c[Na+4>>2]=583;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,P);al=vi;bl=wi;cl=xi;dl=yi;el=zi;Zb=398;break}case 232:{c[Na>>2]=225770;c[Na+4>>2]=606;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,O);al=Ai;bl=Bi;cl=Ci;dl=Di;el=Ei;Zb=398;break}case 234:{c[Na>>2]=225770;c[Na+4>>2]=624;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,N);al=Fi;bl=Gi;cl=Hi;dl=Ii;el=Ji;Zb=398;break}case 236:{c[Na>>2]=225770;c[Na+4>>2]=627;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,M);al=Ki;bl=Li;cl=Mi;dl=Ni;el=Oi;Zb=398;break}case 251:{c[Na>>2]=225770;c[Na+4>>2]=702;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,K);al=Pi;bl=Qi;cl=Ri;dl=Si;el=Ti;Zb=398;break}case 280:{c[Na>>2]=225770;c[Na+4>>2]=813;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,H);al=Zi;bl=_i;cl=$i;dl=aj;el=bj;Zb=398;break}case 283:{c[Na>>2]=225770;c[Na+4>>2]=822;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,G);al=cj;bl=dj;cl=ej;dl=fj;el=gj;Zb=398;break}case 286:{c[Na>>2]=225770;c[Na+4>>2]=831;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,F);al=hj;bl=ij;cl=jj;dl=kj;el=lj;Zb=398;break}case 289:{c[Na>>2]=225770;c[Na+4>>2]=839;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,E);al=mj;bl=nj;cl=oj;dl=pj;el=qj;Zb=398;break}case 292:{c[Na>>2]=225770;c[Na+4>>2]=847;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,D);al=rj;bl=sj;cl=tj;dl=uj;el=vj;Zb=398;break}case 295:{c[Na>>2]=225770;c[Na+4>>2]=855;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,C);al=wj;bl=xj;cl=yj;dl=zj;el=Aj;Zb=398;break}case 298:{c[Na>>2]=225770;c[Na+4>>2]=863;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,B);al=Bj;bl=Cj;cl=Dj;dl=Ej;el=Fj;Zb=398;break}case 301:{c[Na>>2]=225770;c[Na+4>>2]=871;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,A);al=Gj;bl=Hj;cl=Ij;dl=Jj;el=Kj;Zb=398;break}case 307:{c[Na>>2]=225770;c[Na+4>>2]=889;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,z);al=Mj;bl=Nj;cl=Oj;dl=Pj;el=Qj;Zb=398;break}case 311:{c[Na>>2]=225770;c[Na+4>>2]=893;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,y);al=Rj;bl=Sj;cl=Tj;dl=Uj;el=Vj;Zb=398;break}case 313:{c[Na>>2]=225770;c[Na+4>>2]=902;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,x);al=Wj;bl=Xj;cl=Yj;dl=Zj;el=_j;Zb=398;break}case 317:{c[Na>>2]=225770;c[Na+4>>2]=906;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,w);al=$j;bl=ak;cl=bk;dl=ck;el=dk;Zb=398;break}case 319:{c[Na>>2]=225770;c[Na+4>>2]=915;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,v);al=ek;bl=fk;cl=gk;dl=hk;el=ik;Zb=398;break}case 323:{c[Na>>2]=225770;c[Na+4>>2]=920;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,u);al=jk;bl=kk;cl=lk;dl=mk;el=nk;Zb=398;break}case 327:{c[Na>>2]=225770;c[Na+4>>2]=935;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,t);al=ok;bl=pk;cl=qk;dl=rk;el=sk;Zb=398;break}case 331:{c[Na>>2]=225770;c[Na+4>>2]=940;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,s);al=tk;bl=uk;cl=vk;dl=wk;el=xk;Zb=398;break}case 340:{c[Na>>2]=225770;c[Na+4>>2]=959;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,r);al=zk;bl=Ak;cl=Bk;dl=Ck;el=Dk;Zb=398;break}case 346:{c[Na>>2]=225770;c[Na+4>>2]=965;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,q);al=Ek;bl=Fk;cl=Gk;dl=Hk;el=Ik;Zb=398;break}case 368:{c[Na>>2]=225770;c[Na+4>>2]=1022;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,p);al=Pk;bl=Qk;cl=Rk;dl=Sk;el=Tk;Zb=398;break}case 383:{c[Na>>2]=225770;c[Na+4>>2]=1047;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,n);al=Xk;bl=Yk;cl=Zk;dl=_k;el=$k;Zb=398;break}case 389:{if((Bc|0)!=-2)if(Bc>>>0<312)fl=d[225079+Bc>>0]|0;else fl=2;else fl=-2;$k=Hd(Xa,Wa,Dc,fl)|0;switch($k|0){case 0:{Dd(Pa,f,g,Wa,m);gl=Bc;hl=Wa;il=Cc;jl=Dc;kl=Ec;ll=Fc;Zb=399;break g;break}case 1:{Zb=394;break}default:{ml=Wa;nl=226213;ol=$k}}do if((Zb|0)==394){$k=c[g>>2]|0;m=Ua[c[$k>>2]&31]($k,c[Xa>>2]|0,4,224997,3215)|0;if(!m){c[Xa>>2]=128;Dd(Pa,f,g,226213,l);Ub=Bc;Vb=Wa;Wb=Cc;Xb=Dc;Yb=Fc;Zb=402;break g}else{ml=m;nl=m;ol=Hd(Xa,m,Dc,fl)|0;break}}while(0);Dd(Pa,f,g,nl,k);if((ol|0)==2){Ub=Bc;Vb=ml;Wb=Cc;Xb=Dc;Yb=Fc;Zb=402}else{gl=Bc;hl=ml;il=Cc;jl=Dc;kl=Ec;ll=Fc;Zb=399}break}}if((Zb|0)==87){ve=ke;we=le;xe=me;ye=ne;Be=oe;Zb=90}else if((Zb|0)==101){af=Re;bf=Se;cf=Te;df=Ue;ef=Ve;Zb=103}else if((Zb|0)==107){rf=ff;sf=gf;tf=hf;uf=jf;vf=kf;Zb=109}else if((Zb|0)==402){Dd(Pa,f,g,227554,j);lc=Ub;mc=Vb;nc=2;oc=Wb;pc=Xb;qc=Yb}if((Zb|0)==90){c[Na>>2]=225770;c[Na+4>>2]=318;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,ya);al=ve;bl=we;cl=xe;dl=ye;el=Be;Zb=398}else if((Zb|0)==103){c[Na>>2]=225770;c[Na+4>>2]=335;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,ua);al=af;bl=bf;cl=cf;dl=df;el=ef;Zb=398}else if((Zb|0)==109){c[Na>>2]=225770;c[Na+4>>2]=338;c[Na+12>>2]=0;c[Na+8>>2]=0;Dd(Na,f,g,225833,ta);al=rf;bl=sf;cl=tf;dl=uf;el=vf;Zb=398}if((Zb|0)==398){vf=dl+(al<<1)|0;gl=bl;hl=Wa;il=cl;jl=vf;kl=b[vf>>1]|0;ll=el+(al*40|0)|0;Zb=399}if((Zb|0)==399)if((jl|0)==(il|0)){lc=gl;mc=hl;nc=1;oc=il;pc=il;qc=ll}else{Zb=~((jl+-2-il|0)>>>1);al=jl;el=kl;kl=ll;while(1){Id(227539,d[227275+el>>0]|0,kl,g);vf=al+-2|0;if((vf|0)==(il|0))break;else{al=vf;el=b[vf>>1]|0;kl=kl+-40|0}}lc=gl;mc=hl;nc=1;oc=il;pc=jl+(Zb<<1)|0;qc=ll+(Zb*40|0)|0}if((lc|0)!=-2){if(lc>>>0<312)pl=d[225079+lc>>0]|0;else pl=2;Id(227571,pl,Oa,g)}if((pc|0)!=(oc|0)){Oa=pc;pc=qc;while(1){Id(227601,d[227275+(b[Oa>>1]|0)>>0]|0,pc,g);Oa=Oa+-2|0;if((Oa|0)==(oc|0))break;else pc=pc+-40|0}}if((oc|0)!=(Qa|0)){Qa=c[g>>2]|0;Va[c[Qa+8>>2]&31](Qa,oc,224997,3377)}if((mc|0)==(Wa|0)){i=h;return nc|0}Wa=c[g>>2]|0;Va[c[Wa+8>>2]&31](Wa,mc,224997,3381);i=h;return nc|0}function Gd(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;g=i;i=i+16|0;h=g+4|0;j=g;k=c[d>>2]|0;l=d+4|0;m=Ua[c[b>>2]&31](b,k+(c[l>>2]|0)+-1-(k+1)|0,1,225770,1150)|0;if(!m){n=1;i=g;return n|0}k=c[d>>2]|0;d=k+1|0;b=k+(c[l>>2]|0)+-1|0;if(d>>>0<b>>>0){l=m;k=d;while(1){d=a[k>>0]|0;o=k+1|0;if(d<<24>>24==92){p=a[o>>0]|0;switch(p<<24>>24|0){case 110:{a[l>>0]=10;q=l+1|0;r=o;break}case 116:{a[l>>0]=9;q=l+1|0;r=o;break}case 92:{a[l>>0]=92;q=l+1|0;r=o;break}case 39:{a[l>>0]=39;q=l+1|0;r=o;break}case 34:{a[l>>0]=34;q=l+1|0;r=o;break}default:{s=k+2|0;if((qd(p,h)|0)==0?(qd(a[s>>0]|0,j)|0)==0:0){a[l>>0]=c[h>>2]<<4|c[j>>2];t=l+1|0}else t=l;q=t;r=s}}u=q;v=r+1|0}else{a[l>>0]=d;u=l+1|0;v=o}if(v>>>0<b>>>0){l=u;k=v}else{w=u;break}}}else w=m;c[e>>2]=m;c[f>>2]=w-m;n=0;i=g;return n|0}function Hd(d,f,g,h){d=d|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0;j=i;i=i+32|0;k=j;l=c[860+(h<<2)>>2]|0;m=a[l>>0]|0;n=l;a:do switch(m<<24>>24){case 34:{o=0;p=l;b:while(1){q=p+1|0;switch(a[q>>0]|0){case 34:{r=o;break a;break}case 44:case 39:{break b;break}case 92:{s=p+2|0;if((a[s>>0]|0)==92)t=s;else break b;break}default:t=q}o=o+1|0;p=t}if(!(m<<24>>24))r=0;else{u=1;v=6}break}case 0:{r=0;break}default:{u=1;v=6}}while(0);if((v|0)==6)while(1){v=0;if(!(a[l+u>>0]|0)){r=u;break}else{u=u+1|0;v=6}}c:do if((h|0)==-2){w=r;v=21}else{u=b[5932+(b[g>>1]<<1)>>1]|0;l=u<<16>>16;c[k>>2]=n;d:do if(u<<16>>16!=-130?(m=u<<16>>16<0?0-l|0:0,t=321-l+1|0,p=(t|0)<57?t:57,(m|0)<(p|0)):0){t=1;o=r;q=m;while(1){if((q|0)!=1?(e[6460+(q+l<<1)>>1]|0)==(q|0):0){if((t|0)==5){x=r;break d}m=c[860+(q<<2)>>2]|0;s=t+1|0;c[k+(t<<2)>>2]=m;y=m;m=a[y>>0]|0;e:do switch(m<<24>>24){case 34:{z=0;A=y;f:while(1){B=A+1|0;switch(a[B>>0]|0){case 34:{C=z;break e;break}case 44:case 39:{break f;break}case 92:{D=A+2|0;if((a[D>>0]|0)==92)E=D;else break f;break}default:E=B}z=z+1|0;A=E}if(!(m<<24>>24))C=0;else{F=1;v=17}break}case 0:{C=0;break}default:{F=1;v=17}}while(0);if((v|0)==17)while(1){v=0;if(!(a[y+F>>0]|0)){C=F;break}else{F=F+1|0;v=17}}y=C+o|0;if(o>>>0>y>>>0){G=2;v=56;break}else{H=s;I=y}}else{H=t;I=o}q=q+1|0;if((q|0)>=(p|0)){J=H;K=I;break}else{t=H;o=I}}if((v|0)==56){i=j;return G|0}switch(J|0){case 0:{w=K;v=21;break c;break}case 1:{x=K;break d;break}case 2:{L=J;M=227071;N=K;break c;break}case 3:{L=J;M=227113;N=K;break c;break}case 4:{L=J;M=227161;N=K;break c;break}case 5:{L=J;M=227215;N=K;break c;break}default:{L=J;M=0;N=K;break c}}}else x=r;while(0);L=1;M=227043;N=x}while(0);if((v|0)==21){L=0;M=226213;N=w}w=0;while(1)if(!(a[M+w>>0]|0)){O=w;break}else w=w+1|0;w=O+N|0;O=N>>>0>w>>>0;x=O?N:w;if(O){G=2;i=j;return G|0}if((c[d>>2]|0)>>>0<x>>>0){O=x<<1;c[d>>2]=x>>>0>O>>>0?-1:O;G=1;i=j;return G|0}g:do if((L|0)>0){O=M;x=0;d=f;h:while(1){w=O;N=d;i:while(1){r=a[w>>0]|0;a[N>>0]=r;switch(r<<24>>24){case 0:{G=0;break h;break}case 37:{r=w+1|0;if((a[r>>0]|0)==115){P=w;Q=N;break i}else R=r;break}default:R=w+1|0}w=R;N=N+1|0}N=c[k+(x<<2)>>2]|0;x=x+1|0;w=a[N>>0]|0;j:do if(w<<24>>24==34){r=(Q|0)==0;k:do if(r){K=0;J=N;while(1){I=J+1|0;switch(a[I>>0]|0){case 44:case 39:{v=42;break j;break}case 34:{S=K;T=0;break k;break}case 92:{H=J+2|0;if((a[H>>0]|0)==92)U=H;else{v=42;break j}break}default:U=I}K=K+1|0;J=U}}else{J=0;K=N;while(1){I=K+1|0;H=a[I>>0]|0;switch(H<<24>>24|0){case 44:case 39:{V=Q;W=N;v=45;break j;break}case 34:{S=J;T=Q;break k;break}case 92:{C=K+2|0;if((a[C>>0]|0)==92){X=92;Y=C}else{V=Q;W=N;v=45;break j}break}default:{X=H;Y=I}}a[Q+J>>0]=X;J=J+1|0;K=Y}}while(0);if(r){Z=S;_=T}else{a[T+S>>0]=0;Z=S;_=T}}else v=42;while(0);if((v|0)==42){v=0;if(!Q)if(!(w<<24>>24)){Z=0;_=0}else{s=1;while(1)if(!(a[N+s>>0]|0)){Z=s;_=0;break}else s=s+1|0}else{V=Q;W=N;v=45}}if((v|0)==45){while(1){v=0;s=a[W>>0]|0;a[V>>0]=s;if(!(s<<24>>24)){$=V;break}else{V=V+1|0;W=W+1|0;v=45}}Z=$-Q|0;_=Q}N=_+Z|0;s=P+2|0;if((x|0)>=(L|0)){aa=s;ba=N;break g}else{O=s;d=N}}i=j;return G|0}else{aa=M;ba=f}while(0);f=a[aa>>0]|0;a[ba>>0]=f;if(!(f<<24>>24)){G=0;i=j;return G|0}else{ca=aa;da=ba}do{da=da+1|0;ca=ca+1|0;ba=a[ca>>0]|0;a[da>>0]=ba}while(ba<<24>>24!=0);G=0;i=j;return G|0}function Id(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;do switch(b|0){case 58:{a=c[e>>2]|0;Va[c[a+8>>2]&31](a,c[d>>2]|0,225938,27);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;return}case 59:{Nb(c[e>>2]|0,d);return}case 60:{ce(c[e>>2]|0,d+4|0);return}case 61:{Lb(c[e>>2]|0,d);return}case 62:{Mb(c[e>>2]|0,d);return}case 63:{ce(c[e>>2]|0,d);return}case 64:{ce(c[e>>2]|0,d);return}case 65:{Wb(c[e>>2]|0,d);return}case 66:{ce(c[e>>2]|0,d);return}case 69:{Ob(c[e>>2]|0,d);return}case 70:{Ob(c[e>>2]|0,d);return}case 71:{Ob(c[e>>2]|0,d);return}case 72:{Qb(c[e>>2]|0,d);return}case 73:{Qb(c[e>>2]|0,d);return}case 74:{Vb(c[e>>2]|0,c[d>>2]|0);return}case 76:{Rb(c[e>>2]|0,c[d>>2]|0);a=c[e>>2]|0;Va[c[a+8>>2]&31](a,c[d>>2]|0,225770,167);return}case 77:{Rb(c[e>>2]|0,c[d>>2]|0);a=c[e>>2]|0;Va[c[a+8>>2]&31](a,c[d>>2]|0,225770,167);return}case 80:{Wb(c[e>>2]|0,d);return}case 81:{Xb(c[e>>2]|0,d);return}case 84:{Yb(c[e>>2]|0,d);return}case 85:{Ub(c[e>>2]|0,d);return}case 86:{Mb(c[e>>2]|0,d);return}case 87:{Sb(c[e>>2]|0,c[d>>2]|0);a=c[e>>2]|0;Va[c[a+8>>2]&31](a,c[d>>2]|0,225770,173);return}case 88:{Tb(c[e>>2]|0,d);return}case 90:{Zb(c[e>>2]|0,c[d>>2]|0);a=c[e>>2]|0;Va[c[a+8>>2]&31](a,c[d>>2]|0,225770,175);return}case 91:{Zb(c[e>>2]|0,c[d>>2]|0);a=c[e>>2]|0;Va[c[a+8>>2]&31](a,c[d>>2]|0,225770,175);return}case 92:{_b(c[e>>2]|0,c[d>>2]|0);a=c[e>>2]|0;Va[c[a+8>>2]&31](a,c[d>>2]|0,225770,177);return}case 93:{$b(c[e>>2]|0,d);return}case 96:{a=c[e>>2]|0;Va[c[a+8>>2]&31](a,c[d>>2]|0,225938,60);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;return}case 97:{ac(d);return}default:return}while(0)}function Jd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+32|0;f=e;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;g=Sd(a)|0;c[f>>2]=g;c[f+20>>2]=d;c[b>>2]=g;g=Fd(a,f)|0;a=b+4|0;b=f+8|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];i=e;return (c[f+24>>2]|g|0)!=0|0} // EMSCRIPTEN_END_FUNCS -var Ka=[Hi,Hi,kg,Hi,lg,Hi,mg,Hi,ng,Hi,og,Hi,pg,Hi,qg,Hi,rg,Hi,sg,Hi,tg,Hi,Je,Ne,Oe,Ke,af,Hi,Hi,Hi,Hi,Hi];var La=[Ii,Ii,vg,Ii,wg,Ii,xg,Ii,yg,Ii,zg,Ii,Ag,Ii,Bg,Ii,Cg,Ii,Dg,Ii,Eg,Ii,Ii,Ii,Ii,Ii,Ii,Ii,Ii,Ii,Ii,Ii];var Ma=[Ji,Ji,Gg,Ji,Hg,Ji,Ig,Ji,Jg,Ji,Kg,Ji,Lg,Ji,Mg,Ji,Ng,Ji,Og,Ji,Pg,Ji,Xd,_d,ge,ne,Le,Pe,Ji,Ji,Ji,Ji];var Na=[Ki,Ki,Rg,Ki,Sg,Ki,Tg,Ki,Ug,Ki,Vg,Ki,Wg,Ki,Xg,Ki,Yg,Ki,Zg,Ki,_g,Ki,Zd,ie,Ki,Ki,Ki,Ki,Ki,Ki,Ki,Ki];var Oa=[Li,Li,ah,Li,bh,Li,ch,Li,dh,Li,eh,Li,fh,Li,gh,Li,hh,Li,ih,Li,jh,Li,Vd,le,Li,Li,Li,Li,Li,Li,Li,Li];var Pa=[Mi,Mi,lh,Mi,mh,Mi,nh,Mi,oh,Mi,ph,Mi,qh,Mi,rh,Mi,sh,Mi,th,Mi,uh,Mi,Yd,Ge,he,Mi,Mi,Mi,Mi,Mi,Mi,Mi];var Qa=[Ni,Ni,wh,Ni,xh,Ni,yh,Ni,zh,Ni,Ah,Ni,Bh,Ni,Ch,Ni,Dh,Ni,Eh,Ni,Fh,Ni,Ni,Ni,Ni,Ni,Ni,Ni,Ni,Ni,Ni,Ni];var Ra=[Oi,Oi,Hh,Oi,Ih,Oi,Jh,Oi,Kh,Oi,Lh,Oi,Mh,Oi,Nh,Oi,Oh,Oi,Ph,Oi,Qh,Oi,Ce,De,Oi,Oi,Oi,Oi,Oi,Oi,Oi,Oi];var Sa=[Pi,Pi,Sh,Pi,Th,Pi,Uh,Pi,Vh,Pi,Wh,Pi,Xh,Pi,Yh,Pi,Zh,Pi,_h,Pi,$h,Pi,Pi,Pi,Pi,Pi,Pi,Pi,Pi,Pi,Pi,Pi];var Ta=[Qi,Qi,bi,Qi,ci,Qi,di,Qi,ei,Qi,fi,Qi,gi,Qi,hi,Qi,ii,Qi,ji,Qi,ki,Qi,wd,xd,yd,zd,Ad,Bd,Cd,Qi,Qi,Qi];var Ua=[Ri,Ri,mi,Ri,ni,Ri,oi,Ri,pi,Ri,qi,Ri,ri,Ri,si,Ri,ti,Ri,ui,Ri,vi,Ri,Ud,ke,Ri,Ri,Ri,Ri,Ri,Ri,Ri,Ri];var Va=[Si,Si,xi,Si,yi,Si,zi,Si,Ai,Si,Bi,Si,Ci,Si,Di,Si,Ei,Si,Fi,Si,Gi,Si,Wd,me,Si,Si,Si,Si,Si,Si,Si,Si];return{_wasm_write_binary_spec_script:uc,_wasm_sizeof_stack_allocator:_c,_bitshift64Lshr:Zf,_wasm_offsetof_stream_result:dd,_wasm_check_ast:dc,_wasm_offsetof_output_buffer_start:Sc,_bitshift64Ashr:Vf,_memcpy:eg,_wasm_init_mem_writer:Be,_wasm_sizeof_memory_writer:Nc,_wasm_sizeof_binary_error_handler:Fc,_wasm_offsetof_allocator_mark:Cc,_wasm_offsetof_allocator_alloc:yc,_wasm_offsetof_stream_offset:cd,_free:Qf,_wasm_offsetof_memory_writer_buf:Pc,_wasm_offsetof_memory_writer_base:Oc,_wasm_write_binary_script:tc,_wasm_sizeof_stream:ad,_wasm_init_stream:pe,_wasm_offsetof_write_binary_options_remap_locals:od,_wasm_default_assert_invalid_source_error_callback:fe,_wasm_parse:Jd,_wasm_sizeof_script:Vc,_wasm_close_mem_writer:Ee,_wasm_offsetof_output_buffer_allocator:Rc,_wasm_offsetof_location_filename:Jc,_llvm_ctlz_i64:ig,_wasm_offsetof_write_binary_options_write_debug_names:pd,_llvm_cttz_i32:bg,_wasm_default_source_error_callback:de,_wasm_sizeof_allocator:xc,_wasm_sizeof_writer:id,_wasm_offsetof_string_slice_length:hd,_wasm_get_libc_allocator:$d,_wasm_offsetof_stream_log_stream:ed,_wasm_offsetof_allocator_reset_to_mark:Dc,_wasm_offsetof_write_binary_options_canonicalize_lebs:nd,_wasm_offsetof_binary_error_handler_on_error:Gc,_wasm_offsetof_allocator_realloc:zc,_bitshift64Shl:_f,_wasm_offsetof_writer_write_data:jd,_wasm_destroy_script:ac,_wasm_offsetof_output_buffer_capacity:Uc,_wasm_offsetof_allocator_free:Ac,_wasm_destroy_output_buffer:Fe,_wasm_offsetof_source_error_handler_on_error:Xc,_wasm_offsetof_writer_move_data:kd,_memset:Yf,_wasm_sizeof_write_binary_options:ld,_wasm_offsetof_stack_allocator_allocator:$c,_wasm_offsetof_source_error_handler_source_line_max_length:Yc,_i64Subtract:Wf,_wasm_offsetof_location_last_column:Mc,_wasm_sizeof_output_buffer:Qc,_wasm_init_stack_allocator:je,_wasm_offsetof_stream_writer:bd,___muldsi3:$f,___udivmoddi4:cg,_malloc:Pf,_wasm_sizeof_string_slice:fd,_wasm_offsetof_location_line:Kc,_wasm_offsetof_allocator_destroy:Bc,_wasm_new_buffer_lexer:Rd,_wasm_check_assert_invalid:lc,_wasm_sizeof_source_error_handler:Wc,_wasm_offsetof_output_buffer_size:Tc,___udivdi3:dg,_wasm_offsetof_allocator_print_stats:Ec,_wasm_sizeof_location:Ic,_wasm_destroy_lexer:Qd,_fflush:yf,_wasm_offsetof_source_error_handler_user_data:Zc,_wasm_mark_used_blocks:vd,___muldi3:ag,_wasm_offsetof_write_binary_options_log_stream:md,_wasm_offsetof_string_slice_start:gd,___uremdi3:gg,_wasm_offsetof_binary_error_handler_user_data:Hc,_realloc:Rf,_i64Add:Xf,_pthread_self:hg,___errno_location:Ie,_memmove:fg,_wasm_destroy_stack_allocator:oe,_wasm_offsetof_location_first_column:Lc,runPostSets:Uf,stackAlloc:Wa,stackSave:Xa,stackRestore:Ya,establishStackSpace:Za,setThrew:_a,setTempRet0:$a,getTempRet0:ab,dynCall_iiii:jg,dynCall_viiiii:ug,dynCall_vi:Fg,dynCall_vii:Qg,dynCall_iiiiiii:$g,dynCall_ii:kh,dynCall_viii:vh,dynCall_iiiii:Gh,dynCall_viiiiii:Rh,dynCall_iii:ai,dynCall_iiiiii:li,dynCall_viiii:wi}}) +var Ka=[Hi,Hi,kg,Hi,lg,Hi,mg,Hi,ng,Hi,og,Hi,pg,Hi,qg,Hi,rg,Hi,sg,Hi,tg,Hi,Je,Ne,Oe,Ke,af,Hi,Hi,Hi,Hi,Hi];var La=[Ii,Ii,vg,Ii,wg,Ii,xg,Ii,yg,Ii,zg,Ii,Ag,Ii,Bg,Ii,Cg,Ii,Dg,Ii,Eg,Ii,Ii,Ii,Ii,Ii,Ii,Ii,Ii,Ii,Ii,Ii];var Ma=[Ji,Ji,Gg,Ji,Hg,Ji,Ig,Ji,Jg,Ji,Kg,Ji,Lg,Ji,Mg,Ji,Ng,Ji,Og,Ji,Pg,Ji,Xd,_d,ge,ne,Le,Pe,Ji,Ji,Ji,Ji];var Na=[Ki,Ki,Rg,Ki,Sg,Ki,Tg,Ki,Ug,Ki,Vg,Ki,Wg,Ki,Xg,Ki,Yg,Ki,Zg,Ki,_g,Ki,Zd,ie,Ki,Ki,Ki,Ki,Ki,Ki,Ki,Ki];var Oa=[Li,Li,ah,Li,bh,Li,ch,Li,dh,Li,eh,Li,fh,Li,gh,Li,hh,Li,ih,Li,jh,Li,Vd,le,Li,Li,Li,Li,Li,Li,Li,Li];var Pa=[Mi,Mi,lh,Mi,mh,Mi,nh,Mi,oh,Mi,ph,Mi,qh,Mi,rh,Mi,sh,Mi,th,Mi,uh,Mi,Yd,Ge,he,Mi,Mi,Mi,Mi,Mi,Mi,Mi];var Qa=[Ni,Ni,wh,Ni,xh,Ni,yh,Ni,zh,Ni,Ah,Ni,Bh,Ni,Ch,Ni,Dh,Ni,Eh,Ni,Fh,Ni,Ni,Ni,Ni,Ni,Ni,Ni,Ni,Ni,Ni,Ni];var Ra=[Oi,Oi,Hh,Oi,Ih,Oi,Jh,Oi,Kh,Oi,Lh,Oi,Mh,Oi,Nh,Oi,Oh,Oi,Ph,Oi,Qh,Oi,Ce,De,Oi,Oi,Oi,Oi,Oi,Oi,Oi,Oi];var Sa=[Pi,Pi,Sh,Pi,Th,Pi,Uh,Pi,Vh,Pi,Wh,Pi,Xh,Pi,Yh,Pi,Zh,Pi,_h,Pi,$h,Pi,Pi,Pi,Pi,Pi,Pi,Pi,Pi,Pi,Pi,Pi];var Ta=[Qi,Qi,bi,Qi,ci,Qi,di,Qi,ei,Qi,fi,Qi,gi,Qi,hi,Qi,ii,Qi,ji,Qi,ki,Qi,wd,xd,yd,zd,Ad,Bd,Cd,Qi,Qi,Qi];var Ua=[Ri,Ri,mi,Ri,ni,Ri,oi,Ri,pi,Ri,qi,Ri,ri,Ri,si,Ri,ti,Ri,ui,Ri,vi,Ri,Ud,ke,Ri,Ri,Ri,Ri,Ri,Ri,Ri,Ri];var Va=[Si,Si,xi,Si,yi,Si,zi,Si,Ai,Si,Bi,Si,Ci,Si,Di,Si,Ei,Si,Fi,Si,Gi,Si,Wd,me,Si,Si,Si,Si,Si,Si,Si,Si];return{___uremdi3:gg,_wasm_offsetof_allocator_destroy:Bc,_bitshift64Ashr:Vf,_wasm_new_buffer_lexer:Rd,_wasm_check_assert_invalid:lc,_wasm_init_stream:pe,_wasm_write_binary_spec_script:uc,_wasm_offsetof_writer_write_data:jd,___udivdi3:dg,_wasm_offsetof_memory_writer_buf:Pc,_wasm_offsetof_output_buffer_size:Tc,_memset:Yf,_bitshift64Lshr:Zf,_wasm_offsetof_allocator_print_stats:Ec,_wasm_offsetof_output_buffer_capacity:Uc,_wasm_offsetof_allocator_free:Ac,_wasm_offsetof_write_binary_options_remap_locals:od,_wasm_default_assert_invalid_source_error_callback:fe,_wasm_offsetof_stream_result:dd,_wasm_offsetof_stream_log_stream:ed,_wasm_offsetof_location_last_column:Mc,_wasm_destroy_lexer:Qd,_malloc:Pf,_wasm_sizeof_script:Vc,_wasm_check_ast:dc,_wasm_offsetof_output_buffer_allocator:Rc,_wasm_offsetof_location_filename:Jc,_wasm_mark_used_blocks:vd,___errno_location:Ie,_wasm_offsetof_output_buffer_start:Sc,_realloc:Rf,_wasm_destroy_stack_allocator:oe,_wasm_sizeof_binary_error_handler:Fc,_wasm_default_source_error_callback:de,_wasm_sizeof_write_binary_options:ld,_wasm_offsetof_stack_allocator_allocator:$c,_memcpy:eg,_wasm_offsetof_string_slice_length:hd,_wasm_init_mem_writer:Be,_wasm_sizeof_allocator:xc,___muldi3:ag,_wasm_offsetof_write_binary_options_log_stream:md,_wasm_offsetof_string_slice_start:gd,_wasm_sizeof_memory_writer:Nc,_wasm_destroy_output_buffer:Fe,_wasm_get_libc_allocator:$d,_wasm_offsetof_source_error_handler_source_line_max_length:Yc,_i64Subtract:Wf,_wasm_sizeof_location:Ic,_wasm_offsetof_binary_error_handler_user_data:Hc,_wasm_offsetof_write_binary_options_write_debug_names:pd,_wasm_offsetof_source_error_handler_on_error:Xc,_i64Add:Xf,_pthread_self:hg,_wasm_sizeof_output_buffer:Qc,_wasm_sizeof_source_error_handler:Wc,_wasm_init_stack_allocator:je,_llvm_cttz_i32:bg,_wasm_offsetof_allocator_mark:Cc,_wasm_offsetof_allocator_reset_to_mark:Dc,_wasm_close_mem_writer:Ee,_wasm_offsetof_stream_writer:bd,_wasm_offsetof_allocator_alloc:yc,_wasm_offsetof_write_binary_options_canonicalize_lebs:nd,_wasm_offsetof_binary_error_handler_on_error:Gc,___muldsi3:$f,_wasm_offsetof_stream_offset:cd,_free:Qf,_bitshift64Shl:_f,_wasm_offsetof_allocator_realloc:zc,_wasm_destroy_script:ac,___udivmoddi4:cg,_wasm_parse:Jd,_llvm_ctlz_i64:ig,_wasm_offsetof_source_error_handler_user_data:Zc,_wasm_sizeof_string_slice:fd,_wasm_sizeof_writer:id,_wasm_offsetof_location_first_column:Lc,_memmove:fg,_wasm_offsetof_memory_writer_base:Oc,_wasm_offsetof_location_line:Kc,_wasm_write_binary_script:tc,_wasm_offsetof_writer_move_data:kd,_wasm_sizeof_stream:ad,_wasm_sizeof_stack_allocator:_c,runPostSets:Uf,stackAlloc:Wa,stackSave:Xa,stackRestore:Ya,establishStackSpace:Za,setThrew:_a,setTempRet0:$a,getTempRet0:ab,dynCall_iiii:jg,dynCall_viiiii:ug,dynCall_vi:Fg,dynCall_vii:Qg,dynCall_iiiiiii:$g,dynCall_ii:kh,dynCall_viii:vh,dynCall_iiiii:Gh,dynCall_viiiiii:Rh,dynCall_iii:ai,dynCall_iiiiii:li,dynCall_viiii:wi}}) // EMSCRIPTEN_END_ASM -(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _wasm_write_binary_spec_script=Module["_wasm_write_binary_spec_script"]=asm["_wasm_write_binary_spec_script"];var _wasm_sizeof_stack_allocator=Module["_wasm_sizeof_stack_allocator"]=asm["_wasm_sizeof_stack_allocator"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _wasm_offsetof_stream_result=Module["_wasm_offsetof_stream_result"]=asm["_wasm_offsetof_stream_result"];var _wasm_check_ast=Module["_wasm_check_ast"]=asm["_wasm_check_ast"];var _wasm_offsetof_output_buffer_start=Module["_wasm_offsetof_output_buffer_start"]=asm["_wasm_offsetof_output_buffer_start"];var _bitshift64Ashr=Module["_bitshift64Ashr"]=asm["_bitshift64Ashr"];var _wasm_sizeof_binary_error_handler=Module["_wasm_sizeof_binary_error_handler"]=asm["_wasm_sizeof_binary_error_handler"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _wasm_init_mem_writer=Module["_wasm_init_mem_writer"]=asm["_wasm_init_mem_writer"];var _wasm_sizeof_memory_writer=Module["_wasm_sizeof_memory_writer"]=asm["_wasm_sizeof_memory_writer"];var _wasm_sizeof_location=Module["_wasm_sizeof_location"]=asm["_wasm_sizeof_location"];var _wasm_offsetof_allocator_mark=Module["_wasm_offsetof_allocator_mark"]=asm["_wasm_offsetof_allocator_mark"];var _wasm_offsetof_allocator_alloc=Module["_wasm_offsetof_allocator_alloc"]=asm["_wasm_offsetof_allocator_alloc"];var _wasm_offsetof_stream_offset=Module["_wasm_offsetof_stream_offset"]=asm["_wasm_offsetof_stream_offset"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _wasm_offsetof_memory_writer_buf=Module["_wasm_offsetof_memory_writer_buf"]=asm["_wasm_offsetof_memory_writer_buf"];var _wasm_offsetof_memory_writer_base=Module["_wasm_offsetof_memory_writer_base"]=asm["_wasm_offsetof_memory_writer_base"];var _wasm_write_binary_script=Module["_wasm_write_binary_script"]=asm["_wasm_write_binary_script"];var _wasm_sizeof_stream=Module["_wasm_sizeof_stream"]=asm["_wasm_sizeof_stream"];var _wasm_init_stream=Module["_wasm_init_stream"]=asm["_wasm_init_stream"];var _wasm_offsetof_write_binary_options_remap_locals=Module["_wasm_offsetof_write_binary_options_remap_locals"]=asm["_wasm_offsetof_write_binary_options_remap_locals"];var _wasm_default_assert_invalid_source_error_callback=Module["_wasm_default_assert_invalid_source_error_callback"]=asm["_wasm_default_assert_invalid_source_error_callback"];var _wasm_parse=Module["_wasm_parse"]=asm["_wasm_parse"];var _wasm_sizeof_script=Module["_wasm_sizeof_script"]=asm["_wasm_sizeof_script"];var _wasm_close_mem_writer=Module["_wasm_close_mem_writer"]=asm["_wasm_close_mem_writer"];var _wasm_offsetof_output_buffer_allocator=Module["_wasm_offsetof_output_buffer_allocator"]=asm["_wasm_offsetof_output_buffer_allocator"];var _wasm_offsetof_location_filename=Module["_wasm_offsetof_location_filename"]=asm["_wasm_offsetof_location_filename"];var _llvm_ctlz_i64=Module["_llvm_ctlz_i64"]=asm["_llvm_ctlz_i64"];var _realloc=Module["_realloc"]=asm["_realloc"];var _llvm_cttz_i32=Module["_llvm_cttz_i32"]=asm["_llvm_cttz_i32"];var _wasm_default_source_error_callback=Module["_wasm_default_source_error_callback"]=asm["_wasm_default_source_error_callback"];var _wasm_sizeof_allocator=Module["_wasm_sizeof_allocator"]=asm["_wasm_sizeof_allocator"];var _wasm_sizeof_writer=Module["_wasm_sizeof_writer"]=asm["_wasm_sizeof_writer"];var _wasm_offsetof_string_slice_length=Module["_wasm_offsetof_string_slice_length"]=asm["_wasm_offsetof_string_slice_length"];var _wasm_get_libc_allocator=Module["_wasm_get_libc_allocator"]=asm["_wasm_get_libc_allocator"];var _wasm_offsetof_stream_log_stream=Module["_wasm_offsetof_stream_log_stream"]=asm["_wasm_offsetof_stream_log_stream"];var _wasm_offsetof_allocator_reset_to_mark=Module["_wasm_offsetof_allocator_reset_to_mark"]=asm["_wasm_offsetof_allocator_reset_to_mark"];var _wasm_offsetof_write_binary_options_canonicalize_lebs=Module["_wasm_offsetof_write_binary_options_canonicalize_lebs"]=asm["_wasm_offsetof_write_binary_options_canonicalize_lebs"];var _wasm_offsetof_binary_error_handler_on_error=Module["_wasm_offsetof_binary_error_handler_on_error"]=asm["_wasm_offsetof_binary_error_handler_on_error"];var _wasm_offsetof_allocator_realloc=Module["_wasm_offsetof_allocator_realloc"]=asm["_wasm_offsetof_allocator_realloc"];var _wasm_offsetof_writer_write_data=Module["_wasm_offsetof_writer_write_data"]=asm["_wasm_offsetof_writer_write_data"];var _wasm_destroy_script=Module["_wasm_destroy_script"]=asm["_wasm_destroy_script"];var _wasm_offsetof_output_buffer_capacity=Module["_wasm_offsetof_output_buffer_capacity"]=asm["_wasm_offsetof_output_buffer_capacity"];var _wasm_offsetof_allocator_free=Module["_wasm_offsetof_allocator_free"]=asm["_wasm_offsetof_allocator_free"];var _wasm_destroy_output_buffer=Module["_wasm_destroy_output_buffer"]=asm["_wasm_destroy_output_buffer"];var _wasm_check_assert_invalid=Module["_wasm_check_assert_invalid"]=asm["_wasm_check_assert_invalid"];var _wasm_offsetof_writer_move_data=Module["_wasm_offsetof_writer_move_data"]=asm["_wasm_offsetof_writer_move_data"];var _memset=Module["_memset"]=asm["_memset"];var _wasm_sizeof_write_binary_options=Module["_wasm_sizeof_write_binary_options"]=asm["_wasm_sizeof_write_binary_options"];var _wasm_offsetof_stack_allocator_allocator=Module["_wasm_offsetof_stack_allocator_allocator"]=asm["_wasm_offsetof_stack_allocator_allocator"];var _wasm_offsetof_source_error_handler_source_line_max_length=Module["_wasm_offsetof_source_error_handler_source_line_max_length"]=asm["_wasm_offsetof_source_error_handler_source_line_max_length"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _wasm_offsetof_location_last_column=Module["_wasm_offsetof_location_last_column"]=asm["_wasm_offsetof_location_last_column"];var _wasm_sizeof_output_buffer=Module["_wasm_sizeof_output_buffer"]=asm["_wasm_sizeof_output_buffer"];var _wasm_init_stack_allocator=Module["_wasm_init_stack_allocator"]=asm["_wasm_init_stack_allocator"];var _wasm_offsetof_stream_writer=Module["_wasm_offsetof_stream_writer"]=asm["_wasm_offsetof_stream_writer"];var ___muldsi3=Module["___muldsi3"]=asm["___muldsi3"];var ___udivmoddi4=Module["___udivmoddi4"]=asm["___udivmoddi4"];var _malloc=Module["_malloc"]=asm["_malloc"];var _wasm_sizeof_string_slice=Module["_wasm_sizeof_string_slice"]=asm["_wasm_sizeof_string_slice"];var _wasm_offsetof_location_line=Module["_wasm_offsetof_location_line"]=asm["_wasm_offsetof_location_line"];var _wasm_offsetof_allocator_destroy=Module["_wasm_offsetof_allocator_destroy"]=asm["_wasm_offsetof_allocator_destroy"];var _wasm_new_buffer_lexer=Module["_wasm_new_buffer_lexer"]=asm["_wasm_new_buffer_lexer"];var _wasm_offsetof_source_error_handler_on_error=Module["_wasm_offsetof_source_error_handler_on_error"]=asm["_wasm_offsetof_source_error_handler_on_error"];var _wasm_sizeof_source_error_handler=Module["_wasm_sizeof_source_error_handler"]=asm["_wasm_sizeof_source_error_handler"];var _wasm_offsetof_output_buffer_size=Module["_wasm_offsetof_output_buffer_size"]=asm["_wasm_offsetof_output_buffer_size"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var _wasm_offsetof_allocator_print_stats=Module["_wasm_offsetof_allocator_print_stats"]=asm["_wasm_offsetof_allocator_print_stats"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _wasm_destroy_lexer=Module["_wasm_destroy_lexer"]=asm["_wasm_destroy_lexer"];var _fflush=Module["_fflush"]=asm["_fflush"];var _wasm_offsetof_source_error_handler_user_data=Module["_wasm_offsetof_source_error_handler_user_data"]=asm["_wasm_offsetof_source_error_handler_user_data"];var _wasm_mark_used_blocks=Module["_wasm_mark_used_blocks"]=asm["_wasm_mark_used_blocks"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var _wasm_offsetof_write_binary_options_log_stream=Module["_wasm_offsetof_write_binary_options_log_stream"]=asm["_wasm_offsetof_write_binary_options_log_stream"];var _wasm_offsetof_string_slice_start=Module["_wasm_offsetof_string_slice_start"]=asm["_wasm_offsetof_string_slice_start"];var ___uremdi3=Module["___uremdi3"]=asm["___uremdi3"];var _wasm_offsetof_binary_error_handler_user_data=Module["_wasm_offsetof_binary_error_handler_user_data"]=asm["_wasm_offsetof_binary_error_handler_user_data"];var _wasm_offsetof_write_binary_options_write_debug_names=Module["_wasm_offsetof_write_binary_options_write_debug_names"]=asm["_wasm_offsetof_write_binary_options_write_debug_names"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _pthread_self=Module["_pthread_self"]=asm["_pthread_self"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var _memmove=Module["_memmove"]=asm["_memmove"];var _wasm_destroy_stack_allocator=Module["_wasm_destroy_stack_allocator"]=asm["_wasm_destroy_stack_allocator"];var _wasm_offsetof_location_first_column=Module["_wasm_offsetof_location_first_column"]=asm["_wasm_offsetof_location_first_column"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=asm["dynCall_iiiiiii"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];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;i<argc-1;i=i+1){argv.push(allocate(intArrayFromString(args[i]),"i8",ALLOC_NORMAL));pad()}argv.push(0);argv=allocate(argv,"i32",ALLOC_NORMAL);try{var ret=Module["_main"](argc,argv,0);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="SimulateInfiniteLoop"){Module["noExitRuntime"]=true;return}else{if(e&&typeof e==="object"&&e.stack)Module.printErr("exception thrown: "+[e,e.stack]);throw e}}finally{calledMain=true}};function run(args){args=args||Module["arguments"];if(preloadStartTime===null)preloadStartTime=Date.now();if(runDependencies>0){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)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw 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();var wasm=(function(){var OK=0;var ERROR=1;function malloc(size){var addr=Module._malloc(size);if(addr==0)throw"malloc failed";return addr}function mallocz(size){var addr=malloc(size);HEAP8.fill(0,addr,addr+size);return addr}function free(p){Module._free(p)}function decorateStruct(struct,structName,members){struct.prototype=Object.create(Object.prototype);struct.$size=Module["_wasm_sizeof_"+structName]();struct.$allocate=(function(){return mallocz(this.$size)});struct.prototype.$free=(function(){return free(this.$addr)});struct.prototype.$destroy=(function(){return this.$free()});struct.$newAt=(function(addr){var this_=Object.create(this.prototype);var args=Array.prototype.slice.call(arguments,1);this_.$addr=addr;this_.$init.apply(this_,args);return this_});defineOffsets(struct.prototype,structName,members)}function defineOffsets(proto,structName,members){for(var i=0;i<members.length;++i){var offsetName="$offsetof_"+members[i];var funcName="_wasm_offsetof_"+structName+"_"+members[i];proto[offsetName]=Module[funcName]()}}function loadu32(addr){return HEAPU32[addr>>2]}function storeu8(addr,value){HEAPU8[addr]=value}function storeu32(addr,value){HEAPU32[addr>>2]=value}function storeboolopt(addr,value,defaultValue){storeu8(addr,typeof value==="undefined"?defaultValue:value)}function allocateString(str){var len=str.length+1;var mem=malloc(len);Module.writeAsciiToMemory(str,mem);return mem}function freeString(mem){free(mem)}function WrappedFunction(f){this.$index=Runtime.addFunction(f)}WrappedFunction.prototype=Object.create(Object.prototype);WrappedFunction.prototype.store=(function(addr){storeu32(addr,this.$index)});WrappedFunction.prototype.$destroy=(function(){Runtime.removeFunction(this.$index)});var Allocator=(function(){throw"Allocator is an abstract base class"});decorateStruct(Allocator,"allocator",["alloc","realloc","free","destroy","mark","reset_to_mark","print_stats"]);Allocator.prototype.$init=(function(){});Allocator.prototype.alloc=(function(size,align){var alloc=loadu32(this.$addr+this.$offsetof_alloc);return Runtime.dynCall("iiiiii",alloc,[this.$addr,size,align,0,0])});Allocator.prototype.realloc=(function(p,size,align){var realloc=loadu32(this.$addr+this.$offsetof_realloc);return Runtime.dynCall("iiiiiii",realloc,[this.$addr,p,size,align,0,0])});Allocator.prototype.free=(function(p){var free=loadu32(this.$addr+this.$offsetof_free);Runtime.dynCall("viiii",free,[this.$addr,p,0,0])});Allocator.prototype.destroy=(function(){var destroy=loadu32(this.$addr+this.$offsetof_destroy);Runtime.dynCall("vi",destroy,[this.$addr])});Allocator.prototype.mark=(function(){var mark=loadu32(this.$addr+this.$offsetof_mark);Runtime.dynCall("ii",mark,[this.$addr])});Allocator.prototype.resetToMark=(function(mark){var reset_to_mark=loadu32(this.$addr+this.$offsetof_reset_to_mark);Runtime.dynCall("vii",reset_to_mark,[this.$addr,mark])});Allocator.prototype.printStats=(function(){var print_stats=loadu32(this.$addr+this.$offsetof_print_stats);Runtime.dynCall("vi",print_stats,[this.$addr])});LibcAllocator=Allocator.$newAt(Module._wasm_get_libc_allocator());var Buffer=(function(size){this.$addr=mallocz(size);this.$size=size});Buffer.prototype=Object.create(Object.prototype);Buffer.fromString=(function(str){var this_=Object.create(Buffer.prototype);this_.$size=str.length;this_.$addr=malloc(this_.$size);Module.writeAsciiToMemory(str,this_.$addr,true);return this_});Buffer.$newAt=(function(addr,size){var this_=Object.create(Buffer.prototype);this_.$addr=addr;this_.$size=size;return this_});Buffer.prototype.$free=(function(){free(this.$addr)});Buffer.prototype.$destroy=(function(){this.$free()});var JSWriter=(function(writeData,moveData){var writeDataWrap=(function(offset,data,size,userData){return writeData(offset,new Uint8Array(Module.buffer,data,size))});var moveDataWrap=(function(dstOffset,srcOffset,size,userData){return moveData(dstOffset,srcOffset,size)});this.writer=new Writer;this.$writeData=new WrappedFunction(writeDataWrap);this.$moveData=new WrappedFunction(moveDataWrap);this.$writeData.store(this.writer.$addr+this.writer.$offsetof_write_data);this.$moveData.store(this.writer.$addr+this.writer.$offsetof_move_data)});JSWriter.prototype=Object.create(Object.prototype);JSWriter.prototype.$destroy=(function(){this.$moveData.$destroy();this.$writeData.$destroy();this.writer.$destroy()});var JSStringWriter=(function(){this.string="";var splice=(function(offset,str){var before=this.string.slice(0,offset);var after=this.string.slice(offset+str.length);this.string=before+str+after});var writeData=(function(offset,buf){var str="";for(var i=0;i<buf.length;++i)str+=String.fromCharCode(buf[i]);if(offset==this.string.length){this.string+=str}else{splice(offset,str)}});var moveData=(function(dstOffset,srcOffset,size){splice(dstOffset,this.string.slice(srcOffset,size))});JSWriter.call(this,writeData.bind(this),moveData.bind(this))});JSStringWriter.prototype=Object.create(JSWriter.prototype);var Lexer=(function(){throw"Lexer must be created with $fromBuffer"});Lexer.prototype=Object.create(Object.prototype);Lexer.fromBuffer=(function(allocator,filename,buffer){var $filename=allocateString(filename);var addr=Module._wasm_new_buffer_lexer(allocator.$addr,$filename,buffer.$addr,buffer.$size);if(addr==0)throw"Lexer.fromBuffer failed";var this_=Object.create(Lexer.prototype);this_.$addr=addr;this_.$filename=$filename;return this_});Lexer.prototype.$destroy=(function(){Module._wasm_destroy_lexer(this.$addr);freeString(this.$filename)});var Location=(function(){this.$addr=Location.$allocate();this.$init()});decorateStruct(Location,"location",["filename","line","first_column","last_column"]);Location.prototype.$init=(function(){});Object.defineProperty(Location.prototype,"filename",{get:(function(){return Module.AsciiToString(loadu32(this.$addr+this.$offsetof_filename))})});Object.defineProperty(Location.prototype,"line",{get:(function(){return loadu32(this.$addr+this.$offsetof_line)})});Object.defineProperty(Location.prototype,"firstColumn",{get:(function(){return loadu32(this.$addr+this.$offsetof_first_column)})});Object.defineProperty(Location.prototype,"lastColumn",{get:(function(){return loadu32(this.$addr+this.$offsetof_last_column)})});var MemoryWriter=(function(allocator){this.$addr=MemoryWriter.$allocate();this.$init(allocator)});decorateStruct(MemoryWriter,"memory_writer",["base","buf"]);MemoryWriter.prototype.$init=(function(allocator){var result=Module._wasm_init_mem_writer(allocator.$addr,this.$addr);if(result!=OK)throw"error initializing MemoryWriter";this.base=Writer.$newAt(this.$addr+this.$offsetof_base);this.buf=OutputBuffer.$newAt(this.$addr+this.$offsetof_buf)});MemoryWriter.prototype.$destroy=(function(){Module._wasm_close_mem_writer(this.$addr);this.$free()});var OutputBuffer=(function(){this.$addr=OutputBuffer.$allocate();this.$init()});decorateStruct(OutputBuffer,"output_buffer",["allocator","start","size","capacity"]);OutputBuffer.prototype.$init=(function(){this.$allocator=Allocator.$newAt(loadu32(this.$addr+this.$offsetof_allocator)),this.$buf=Buffer.$newAt(loadu32(this.$addr+this.$offsetof_start),loadu32(this.$addr+this.$offsetof_size))});OutputBuffer.prototype.$destroy=(function(){Module._wasm_destroy_output_buffer(this.$addr);this.$free()});Object.defineProperty(OutputBuffer.prototype,"allocator",{get:(function(){this.$allocator.$addr=loadu32(this.$addr+this.$offsetof_allocator);return this.$allocator})});Object.defineProperty(OutputBuffer.prototype,"buf",{get:(function(){this.$buf.$addr=loadu32(this.$addr+this.$offsetof_start);this.$buf.$size=loadu32(this.$addr+this.$offsetof_size);return this.$buf})});Object.defineProperty(OutputBuffer.prototype,"capacity",{get:(function(){return loadu32(this.$addr+this.$offsetof_capacity)})});var Script=(function(){this.$addr=Script.$allocate();this.$init()});decorateStruct(Script,"script",[]);Script.prototype.$init=(function(){});var SourceErrorHandler=(function(callback,sourceLineMaxLength){this.$addr=SourceErrorHandler.$allocate();this.$init(callback,sourceLineMaxLength)});decorateStruct(SourceErrorHandler,"source_error_handler",["on_error","source_line_max_length","user_data"]);SourceErrorHandler.prototype.$init=(function(onError,sourceLineMaxLength){var f;if(onError){f=(function(loc,error,sourceLine,sourceLineLength,sourceLineColumnOffset,userData){loc=Location.$newAt(loc);error=Module.AsciiToString(error);sourceLine=Module.Pointer_stringify(sourceLine,sourceLineLength);onError(loc,error,sourceLine,sourceLineColumnOffset)})}else{f=(function(){Module._wasm_default_source_error_callback.apply(null,arguments)})}this.$onError=new WrappedFunction(f);this.$onError.store(this.$addr+this.$offsetof_on_error);storeu32(this.$addr+this.$offsetof_source_line_max_length,sourceLineMaxLength)});SourceErrorHandler.prototype.$destroy=(function(){this.$onError.$destroy();this.$free()});var StackAllocator=(function(fallback){this.$addr=StackAllocator.$allocate();this.$init(fallback)});decorateStruct(StackAllocator,"stack_allocator",["allocator"]);StackAllocator.prototype.$init=(function(fallback){Module._wasm_init_stack_allocator(this.$addr,fallback.$addr);this.allocator=Allocator.$newAt(this.$addr+this.$offsetof_allocator)});StackAllocator.prototype.$destroy=(function(){Module._wasm_destroy_stack_allocator(this.$addr)});var Stream=(function(writer,logStream){this.$addr=Stream.$allocate();this.$init(writer,logStream)});decorateStruct(Stream,"stream",["writer","result","offset","log_stream"]);Stream.prototype.$init=(function(writer,logStream){var logStreamAddr=logStream?logStream.$addr:0;Module._wasm_init_stream(this.$addr,writer.$addr,logStreamAddr);this.$writer=Writer.$newAt(loadu32(this.$addr+this.$offsetof_writer));logStreamAddr=loadu32(this.$addr+this.$offsetof_log_stream);this.$logStream=logStreamAddr?Stream.$newAt(logStreamAddr):null});Object.defineProperty(Stream.prototype,"writer",{get:(function(){this.$writer.$addr=loadu32(this.$addr+this.$offsetof_writer);return this.$writer})});Object.defineProperty(Stream.prototype,"offset",{get:(function(){return loadu32(this.$addr+this.$offsetof_offset)})});Object.defineProperty(Stream.prototype,"result",{get:(function(){return loadu32(this.$addr+this.$offsetof_result)})});Object.defineProperty(Stream.prototype,"logStream",{get:(function(){if(this.$logStream){this.$logStream.$addr=loadu32(this.$addr+this.$offsetof_log_stream)}return this.$logStream})});var WriteBinaryOptions=(function(options){this.$addr=WriteBinaryOptions.$allocate();this.$init(options)});decorateStruct(WriteBinaryOptions,"write_binary_options",["log_stream","canonicalize_lebs","remap_locals","write_debug_names"]);WriteBinaryOptions.prototype.$init=(function(options){if(!options)options={};storeu32(this.$addr+this.$offsetof_log_stream,options.logStream?options.logStream.$addr:0);storeboolopt(this.$addr+this.$offsetof_canonicalize_lebs,options.canonicalizeLebs,true);storeboolopt(this.$addr+this.$offsetof_remap_locals,options.remapLocals,true);storeboolopt(this.$addr+this.$offsetof_write_debug_names,options.writeDebugNames,false)});var Writer=(function(){this.$addr=Writer.$allocate()});decorateStruct(Writer,"writer",["write_data","move_data"]);Writer.prototype.$init=(function(){});Writer.prototype.$writeData=(function(offset,data,size,userData){var write_data=loadu32(this.$addr+this.$offsetof_write_data);return Runtime.dynCall("iiiii",write_data,[this.$addr,offset,data,size,userData])});Writer.prototype.$moveData=(function(dstOffset,srcOffset,size,userData){var move_data=loadu32(this.$addr+this.$offsetof_move_data);return Runtime.dynCall("iiiii",move_data,[this.$addr,dstOffset,srcOffset,size,userData])});var parse=(function(lexer,errorHandler){var script=new Script;var result=Module._wasm_parse(lexer.$addr,script.$addr,errorHandler.$addr);if(result!=OK)throw"parse failed";return script});var checkAst=(function(lexer,script,errorHandler){var result=Module._wasm_check_ast(lexer.$addr,script.$addr,errorHandler.$addr);if(result!=OK)throw"checkAst failed"});var writeBinaryScript=(function(allocator,writer,script,options){var result=Module._wasm_write_binary_script(allocator.$addr,writer.$addr,script.$addr,options.$addr);if(result!=OK)throw"writeBinaryScript failed"});return{OK:OK,ERROR:ERROR,Allocator:Allocator,Buffer:Buffer,JSStringWriter:JSStringWriter,JSWriter:JSWriter,Lexer:Lexer,LibcAllocator:LibcAllocator,Location:Location,MemoryWriter:MemoryWriter,OutputBuffer:OutputBuffer,Script:Script,SourceErrorHandler:SourceErrorHandler,StackAllocator:StackAllocator,Stream:Stream,WriteBinaryOptions:WriteBinaryOptions,Writer:Writer,checkAst:checkAst,parse:parse,writeBinaryScript:writeBinaryScript}})() +(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _wasm_write_binary_spec_script=Module["_wasm_write_binary_spec_script"]=asm["_wasm_write_binary_spec_script"];var _wasm_sizeof_stack_allocator=Module["_wasm_sizeof_stack_allocator"]=asm["_wasm_sizeof_stack_allocator"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _wasm_offsetof_stream_result=Module["_wasm_offsetof_stream_result"]=asm["_wasm_offsetof_stream_result"];var _wasm_check_ast=Module["_wasm_check_ast"]=asm["_wasm_check_ast"];var _wasm_offsetof_output_buffer_start=Module["_wasm_offsetof_output_buffer_start"]=asm["_wasm_offsetof_output_buffer_start"];var _bitshift64Ashr=Module["_bitshift64Ashr"]=asm["_bitshift64Ashr"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _wasm_init_mem_writer=Module["_wasm_init_mem_writer"]=asm["_wasm_init_mem_writer"];var _wasm_sizeof_memory_writer=Module["_wasm_sizeof_memory_writer"]=asm["_wasm_sizeof_memory_writer"];var _wasm_sizeof_binary_error_handler=Module["_wasm_sizeof_binary_error_handler"]=asm["_wasm_sizeof_binary_error_handler"];var _wasm_offsetof_allocator_mark=Module["_wasm_offsetof_allocator_mark"]=asm["_wasm_offsetof_allocator_mark"];var _wasm_offsetof_allocator_alloc=Module["_wasm_offsetof_allocator_alloc"]=asm["_wasm_offsetof_allocator_alloc"];var _wasm_offsetof_stream_offset=Module["_wasm_offsetof_stream_offset"]=asm["_wasm_offsetof_stream_offset"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _wasm_offsetof_memory_writer_buf=Module["_wasm_offsetof_memory_writer_buf"]=asm["_wasm_offsetof_memory_writer_buf"];var _wasm_offsetof_memory_writer_base=Module["_wasm_offsetof_memory_writer_base"]=asm["_wasm_offsetof_memory_writer_base"];var _wasm_write_binary_script=Module["_wasm_write_binary_script"]=asm["_wasm_write_binary_script"];var _wasm_sizeof_stream=Module["_wasm_sizeof_stream"]=asm["_wasm_sizeof_stream"];var _wasm_init_stream=Module["_wasm_init_stream"]=asm["_wasm_init_stream"];var _wasm_offsetof_write_binary_options_remap_locals=Module["_wasm_offsetof_write_binary_options_remap_locals"]=asm["_wasm_offsetof_write_binary_options_remap_locals"];var _wasm_default_assert_invalid_source_error_callback=Module["_wasm_default_assert_invalid_source_error_callback"]=asm["_wasm_default_assert_invalid_source_error_callback"];var _malloc=Module["_malloc"]=asm["_malloc"];var _wasm_sizeof_script=Module["_wasm_sizeof_script"]=asm["_wasm_sizeof_script"];var _wasm_close_mem_writer=Module["_wasm_close_mem_writer"]=asm["_wasm_close_mem_writer"];var _wasm_offsetof_output_buffer_allocator=Module["_wasm_offsetof_output_buffer_allocator"]=asm["_wasm_offsetof_output_buffer_allocator"];var _wasm_offsetof_location_filename=Module["_wasm_offsetof_location_filename"]=asm["_wasm_offsetof_location_filename"];var _llvm_ctlz_i64=Module["_llvm_ctlz_i64"]=asm["_llvm_ctlz_i64"];var _wasm_offsetof_write_binary_options_write_debug_names=Module["_wasm_offsetof_write_binary_options_write_debug_names"]=asm["_wasm_offsetof_write_binary_options_write_debug_names"];var _llvm_cttz_i32=Module["_llvm_cttz_i32"]=asm["_llvm_cttz_i32"];var _wasm_default_source_error_callback=Module["_wasm_default_source_error_callback"]=asm["_wasm_default_source_error_callback"];var _wasm_sizeof_allocator=Module["_wasm_sizeof_allocator"]=asm["_wasm_sizeof_allocator"];var _wasm_sizeof_writer=Module["_wasm_sizeof_writer"]=asm["_wasm_sizeof_writer"];var _wasm_offsetof_string_slice_length=Module["_wasm_offsetof_string_slice_length"]=asm["_wasm_offsetof_string_slice_length"];var _wasm_get_libc_allocator=Module["_wasm_get_libc_allocator"]=asm["_wasm_get_libc_allocator"];var _wasm_offsetof_stream_log_stream=Module["_wasm_offsetof_stream_log_stream"]=asm["_wasm_offsetof_stream_log_stream"];var _wasm_offsetof_allocator_reset_to_mark=Module["_wasm_offsetof_allocator_reset_to_mark"]=asm["_wasm_offsetof_allocator_reset_to_mark"];var _wasm_offsetof_write_binary_options_canonicalize_lebs=Module["_wasm_offsetof_write_binary_options_canonicalize_lebs"]=asm["_wasm_offsetof_write_binary_options_canonicalize_lebs"];var _wasm_offsetof_binary_error_handler_on_error=Module["_wasm_offsetof_binary_error_handler_on_error"]=asm["_wasm_offsetof_binary_error_handler_on_error"];var _wasm_offsetof_allocator_realloc=Module["_wasm_offsetof_allocator_realloc"]=asm["_wasm_offsetof_allocator_realloc"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _wasm_offsetof_writer_write_data=Module["_wasm_offsetof_writer_write_data"]=asm["_wasm_offsetof_writer_write_data"];var _wasm_destroy_script=Module["_wasm_destroy_script"]=asm["_wasm_destroy_script"];var _wasm_offsetof_output_buffer_capacity=Module["_wasm_offsetof_output_buffer_capacity"]=asm["_wasm_offsetof_output_buffer_capacity"];var _wasm_offsetof_allocator_free=Module["_wasm_offsetof_allocator_free"]=asm["_wasm_offsetof_allocator_free"];var _wasm_destroy_output_buffer=Module["_wasm_destroy_output_buffer"]=asm["_wasm_destroy_output_buffer"];var _wasm_offsetof_source_error_handler_on_error=Module["_wasm_offsetof_source_error_handler_on_error"]=asm["_wasm_offsetof_source_error_handler_on_error"];var _wasm_offsetof_writer_move_data=Module["_wasm_offsetof_writer_move_data"]=asm["_wasm_offsetof_writer_move_data"];var _memset=Module["_memset"]=asm["_memset"];var _wasm_sizeof_write_binary_options=Module["_wasm_sizeof_write_binary_options"]=asm["_wasm_sizeof_write_binary_options"];var _wasm_offsetof_stack_allocator_allocator=Module["_wasm_offsetof_stack_allocator_allocator"]=asm["_wasm_offsetof_stack_allocator_allocator"];var _wasm_offsetof_source_error_handler_source_line_max_length=Module["_wasm_offsetof_source_error_handler_source_line_max_length"]=asm["_wasm_offsetof_source_error_handler_source_line_max_length"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _wasm_offsetof_location_last_column=Module["_wasm_offsetof_location_last_column"]=asm["_wasm_offsetof_location_last_column"];var _wasm_sizeof_output_buffer=Module["_wasm_sizeof_output_buffer"]=asm["_wasm_sizeof_output_buffer"];var _wasm_init_stack_allocator=Module["_wasm_init_stack_allocator"]=asm["_wasm_init_stack_allocator"];var _wasm_offsetof_stream_writer=Module["_wasm_offsetof_stream_writer"]=asm["_wasm_offsetof_stream_writer"];var ___muldsi3=Module["___muldsi3"]=asm["___muldsi3"];var ___udivmoddi4=Module["___udivmoddi4"]=asm["___udivmoddi4"];var _wasm_parse=Module["_wasm_parse"]=asm["_wasm_parse"];var _wasm_sizeof_string_slice=Module["_wasm_sizeof_string_slice"]=asm["_wasm_sizeof_string_slice"];var _wasm_offsetof_location_line=Module["_wasm_offsetof_location_line"]=asm["_wasm_offsetof_location_line"];var _wasm_offsetof_allocator_destroy=Module["_wasm_offsetof_allocator_destroy"]=asm["_wasm_offsetof_allocator_destroy"];var _wasm_new_buffer_lexer=Module["_wasm_new_buffer_lexer"]=asm["_wasm_new_buffer_lexer"];var _wasm_check_assert_invalid=Module["_wasm_check_assert_invalid"]=asm["_wasm_check_assert_invalid"];var _wasm_sizeof_source_error_handler=Module["_wasm_sizeof_source_error_handler"]=asm["_wasm_sizeof_source_error_handler"];var _wasm_offsetof_output_buffer_size=Module["_wasm_offsetof_output_buffer_size"]=asm["_wasm_offsetof_output_buffer_size"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var _wasm_offsetof_allocator_print_stats=Module["_wasm_offsetof_allocator_print_stats"]=asm["_wasm_offsetof_allocator_print_stats"];var _wasm_sizeof_location=Module["_wasm_sizeof_location"]=asm["_wasm_sizeof_location"];var _wasm_destroy_lexer=Module["_wasm_destroy_lexer"]=asm["_wasm_destroy_lexer"];var _wasm_destroy_stack_allocator=Module["_wasm_destroy_stack_allocator"]=asm["_wasm_destroy_stack_allocator"];var _wasm_mark_used_blocks=Module["_wasm_mark_used_blocks"]=asm["_wasm_mark_used_blocks"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var _wasm_offsetof_write_binary_options_log_stream=Module["_wasm_offsetof_write_binary_options_log_stream"]=asm["_wasm_offsetof_write_binary_options_log_stream"];var _wasm_offsetof_string_slice_start=Module["_wasm_offsetof_string_slice_start"]=asm["_wasm_offsetof_string_slice_start"];var ___uremdi3=Module["___uremdi3"]=asm["___uremdi3"];var _wasm_offsetof_binary_error_handler_user_data=Module["_wasm_offsetof_binary_error_handler_user_data"]=asm["_wasm_offsetof_binary_error_handler_user_data"];var _realloc=Module["_realloc"]=asm["_realloc"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _pthread_self=Module["_pthread_self"]=asm["_pthread_self"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var _memmove=Module["_memmove"]=asm["_memmove"];var _wasm_offsetof_source_error_handler_user_data=Module["_wasm_offsetof_source_error_handler_user_data"]=asm["_wasm_offsetof_source_error_handler_user_data"];var _wasm_offsetof_location_first_column=Module["_wasm_offsetof_location_first_column"]=asm["_wasm_offsetof_location_first_column"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=asm["dynCall_iiiiiii"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];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;i<argc-1;i=i+1){argv.push(allocate(intArrayFromString(args[i]),"i8",ALLOC_NORMAL));pad()}argv.push(0);argv=allocate(argv,"i32",ALLOC_NORMAL);try{var ret=Module["_main"](argc,argv,0);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="SimulateInfiniteLoop"){Module["noExitRuntime"]=true;return}else{if(e&&typeof e==="object"&&e.stack)Module.printErr("exception thrown: "+[e,e.stack]);throw e}}finally{calledMain=true}};function run(args){args=args||Module["arguments"];if(preloadStartTime===null)preloadStartTime=Date.now();if(runDependencies>0){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)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw 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}Module["noExitRuntime"]=true;run() |