From a056d1c36379c5b118b5da5f7eb10fd1ca0d10ce Mon Sep 17 00:00:00 2001 From: Ingvar Stepanyan Date: Tue, 25 Feb 2020 18:20:05 +0000 Subject: [PATCH] Switch to `make` to build optipng Mostly a build config simplification for now, no noticeable changes in time or output size. --- codecs/optipng/build.sh | 43 ++++++++++++++---------------------- codecs/optipng/optipng.js | 2 +- codecs/optipng/optipng.wasm | Bin 238270 -> 238950 bytes 3 files changed, 17 insertions(+), 28 deletions(-) diff --git a/codecs/optipng/build.sh b/codecs/optipng/build.sh index 1563b987..d66711ab 100755 --- a/codecs/optipng/build.sh +++ b/codecs/optipng/build.sh @@ -42,43 +42,32 @@ echo "=============================================" echo "Compiling optipng" echo "=============================================" ( - emcc \ - ${OPTIMIZE} \ - -Wno-implicit-function-declaration \ - -I ${PREFIX}/include \ - -I node_modules/optipng/src/opngreduc \ - -I node_modules/optipng/src/pngxtern \ - -I node_modules/optipng/src/cexcept \ - -I node_modules/optipng/src/gifread \ - -I node_modules/optipng/src/pnmio \ - -I node_modules/optipng/src/minitiff \ - --std=c99 -c \ - node_modules/optipng/src/opngreduc/*.c \ - node_modules/optipng/src/pngxtern/*.c \ - node_modules/optipng/src/gifread/*.c \ - node_modules/optipng/src/minitiff/*.c \ - node_modules/optipng/src/pnmio/*.c \ - node_modules/optipng/src/optipng/*.c + cd node_modules/optipng + emconfigure ./configure --prefix=${PREFIX} --with-system-libs + emmake make + emmake make install + mkdir -p ${PREFIX}/lib + mv ${PREFIX}/bin/optipng ${PREFIX}/lib/liboptipng.so +) +echo "=============================================" +echo "Compiling optipng done" +echo "=============================================" +echo "=============================================" +echo "Compiling optipng wrapper" +echo "=============================================" +( emcc \ --bind \ ${OPTIMIZE} \ -s ALLOW_MEMORY_GROWTH=1 -s MODULARIZE=1 -s 'EXPORT_NAME="optipng"' \ - -I ${PREFIX}/include \ - -I node_modules/optipng/src/opngreduc \ - -I node_modules/optipng/src/pngxtern \ - -I node_modules/optipng/src/cexcept \ - -I node_modules/optipng/src/gifread \ - -I node_modules/optipng/src/pnmio \ - -I node_modules/optipng/src/minitiff \ -o "optipng.js" \ --std=c++11 \ optipng.cpp \ - *.o \ - ${PREFIX}/lib/libz.so ${PREFIX}/lib/libpng.a + ${PREFIX}/lib/liboptipng.so ) echo "=============================================" -echo "Compiling optipng done" +echo "Compiling optipng wrapper done" echo "=============================================" echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" diff --git a/codecs/optipng/optipng.js b/codecs/optipng/optipng.js index 87cf2aed..714a10e8 100644 --- a/codecs/optipng/optipng.js +++ b/codecs/optipng/optipng.js @@ -6,7 +6,7 @@ var optipng = (function() { function(optipng) { optipng = optipng || {}; -var Module=typeof optipng!=="undefined"?optipng:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}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);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;if(end>_emscripten_get_heap_size()){abort()}HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(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 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(typeof WebAssembly!=="object"){err("no native wasm support detected")}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)}}var wasmMemory;var wasmTable=new WebAssembly.Table({"initial":144,"maximum":144+0,"element":"anyfunc"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NONE=3;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=[_malloc,stackAlloc,dynamicAlloc][allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var stop;ptr=ret;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&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(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}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&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 len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr){var endPtr=ptr;var idx=endPtr>>1;while(HEAP16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function allocateUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8Array(str,HEAP8,ret,size);return ret}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var DYNAMIC_BASE=5354128,DYNAMICTOP_PTR=111088;var INITIAL_TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_TOTAL_MEMORY/WASM_PAGE_SIZE})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_TOTAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;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){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __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 initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){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)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";throw new WebAssembly.RuntimeError(what)}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var wasmBinaryFile="optipng.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch==="function"){fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function demangle(func){return func}function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error}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)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___lock(){}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)}};function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(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(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return},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(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=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode: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 2}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return 2}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}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 errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd: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(33)},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(70)}},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){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(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(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(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);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(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}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(29)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>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;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},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-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},getStreamFromFD:function(fd){if(fd===undefined)fd=SYSCALLS.get();var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};function ___syscall10(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr();FS.unlink(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall15(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),mode=SYSCALLS.get();FS.chmod(path,mode);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall195(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),buf=SYSCALLS.get();return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall197(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get();return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall212(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),owner=SYSCALLS.get(),group=SYSCALLS.get();FS.chown(path,owner,group);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:___setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall320(which,varargs){SYSCALLS.varargs=varargs;try{var dirfd=SYSCALLS.get(),path=SYSCALLS.getStr(),times=SYSCALLS.get(),flags=SYSCALLS.get();path=SYSCALLS.calculateAt(dirfd,path);var seconds=HEAP32[times>>2];var nanoseconds=HEAP32[times+4>>2];var atime=seconds*1e3+nanoseconds/(1e3*1e3);times+=8;seconds=HEAP32[times>>2];nanoseconds=HEAP32[times+4>>2];var mtime=seconds*1e3+nanoseconds/(1e3*1e3);FS.utime(path,atime,mtime);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall33(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),amode=SYSCALLS.get();return SYSCALLS.doAccess(path,amode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall38(which,varargs){SYSCALLS.varargs=varargs;try{var old_path=SYSCALLS.getStr(),new_path=SYSCALLS.getStr();FS.rename(old_path,new_path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall39(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),mode=SYSCALLS.get();return SYSCALLS.doMkdir(path,mode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall40(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr();FS.rmdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}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 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___unlock(){}var structRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>shift])},destructorFunction:null})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2)+i])}return array}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap["buffer"],data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var endChar=HEAPU8[value+4+length];var endCharSwap=0;if(endChar!=0){endCharSwap=endChar;HEAPU8[value+4+length]=0}var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(HEAPU8[currentBytePtr]==0){var stringSegment=UTF8ToString(decodeStartPtr);if(str===undefined)str=stringSegment;else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}if(endCharSwap!=0)HEAPU8[value+4+length]=endCharSwap}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i>2];var HEAP=getHeap();var str;var endChar=HEAP[value+4+length*charSize>>shift];var endCharSwap=0;if(endChar!=0){endCharSwap=endChar;HEAP[value+4+length*charSize>>shift]=0}var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(HEAP[currentBytePtr>>shift]==0){var stringSegment=decodeString(decodeStartPtr);if(str===undefined)str=stringSegment;else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}if(endCharSwap!=0)HEAP[value+4+length*charSize>>shift]=endCharSwap;_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value==="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1}}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return __emval_register(v)}function _abort(){abort()}function _emscripten_get_heap_size(){return HEAPU8.length}var setjmpId=0;function _saveSetjmp(env,label,table,size){env=env|0;label=label|0;table=table|0;size=size|0;var i=0;setjmpId=setjmpId+1|0;HEAP32[env>>2]=setjmpId;while((i|0)<(size|0)){if((HEAP32[table+(i<<3)>>2]|0)==0){HEAP32[table+(i<<3)>>2]=setjmpId;HEAP32[table+((i<<3)+4)>>2]=label;HEAP32[table+((i<<3)+8)>>2]=0;setTempRet0(size|0);return table|0}i=i+1|0}size=size*2|0;table=_realloc(table|0,8*(size+1|0)|0)|0;table=_saveSetjmp(env|0,label|0,table|0,size|0)|0;setTempRet0(size|0);return table|0}function _testSetjmp(id,table,size){id=id|0;table=table|0;size=size|0;var i=0,curr=0;while((i|0)<(size|0)){curr=HEAP32[table+(i<<3)>>2]|0;if((curr|0)==0)break;if((curr|0)==(id|0)){return HEAP32[table+((i<<3)+4)>>2]|0}i=i+1|0}return 0}function _longjmp(env,value){_setThrew(env,value||1);throw"longjmp"}function _emscripten_longjmp(env,value){_longjmp(env,value)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648-PAGE_MULTIPLE;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function _exit(status){exit(status)}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _getTempRet0(){return getTempRet0()|0}function _setTempRet0($i){setTempRet0($i|0)}FS.staticInit();InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_emval();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"e":___assert_fail,"_":___lock,"y":___syscall10,"X":___syscall15,"B":___syscall195,"W":___syscall197,"O":___syscall212,"A":___syscall221,"U":___syscall320,"P":___syscall33,"Q":___syscall38,"V":___syscall39,"R":___syscall40,"$":___syscall5,"T":___syscall54,"u":___unlock,"Y":__embind_finalize_value_object,"M":__embind_register_bool,"L":__embind_register_emval,"w":__embind_register_float,"t":__embind_register_function,"l":__embind_register_integer,"i":__embind_register_memory_view,"x":__embind_register_std_string,"s":__embind_register_std_wstring,"ca":__embind_register_value_object,"aa":__embind_register_value_object_field,"N":__embind_register_void,"D":__emval_decref,"K":__emval_incref,"da":__emval_take_value,"q":_abort,"f":_emscripten_longjmp,"I":_emscripten_memcpy_big,"J":_emscripten_resize_heap,"p":_exit,"C":_fd_close,"Z":_fd_fdstat_get,"S":_fd_read,"E":_fd_seek,"z":_fd_write,"a":_getTempRet0,"m":invoke_ii,"h":invoke_iii,"r":invoke_iiii,"n":invoke_iiiii,"H":invoke_iiji,"v":invoke_v,"g":invoke_vi,"d":invoke_vii,"o":invoke_viii,"j":invoke_viiii,"ba":invoke_viiiii,"F":invoke_vj,"G":invoke_vjji,"memory":wasmMemory,"k":_saveSetjmp,"b":_setTempRet0,"table":wasmTable,"c":_testSetjmp};var asm=createWasm();Module["asm"]=asm;var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["ea"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["fa"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["ga"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ha"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["ia"]).apply(null,arguments)};var _realloc=Module["_realloc"]=function(){return(_realloc=Module["_realloc"]=Module["asm"]["ja"]).apply(null,arguments)};var _setThrew=Module["_setThrew"]=function(){return(_setThrew=Module["_setThrew"]=Module["asm"]["ka"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["la"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["ma"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["na"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["oa"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["pa"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["qa"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["ra"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["sa"]).apply(null,arguments)};var dynCall_vj=Module["dynCall_vj"]=function(){return(dynCall_vj=Module["dynCall_vj"]=Module["asm"]["ta"]).apply(null,arguments)};var dynCall_vjji=Module["dynCall_vjji"]=function(){return(dynCall_vjji=Module["dynCall_vjji"]=Module["asm"]["ua"]).apply(null,arguments)};var dynCall_ii=Module["dynCall_ii"]=function(){return(dynCall_ii=Module["dynCall_ii"]=Module["asm"]["va"]).apply(null,arguments)};var dynCall_iii=Module["dynCall_iii"]=function(){return(dynCall_iii=Module["dynCall_iii"]=Module["asm"]["wa"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["xa"]).apply(null,arguments)};var dynCall_iiiii=Module["dynCall_iiiii"]=function(){return(dynCall_iiiii=Module["dynCall_iiiii"]=Module["asm"]["ya"]).apply(null,arguments)};var dynCall_iiji=Module["dynCall_iiji"]=function(){return(dynCall_iiji=Module["dynCall_iiji"]=Module["asm"]["za"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["Aa"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["Ba"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["Ca"]).apply(null,arguments)};var dynCall_i=Module["dynCall_i"]=function(){return(dynCall_i=Module["dynCall_i"]=Module["asm"]["Da"]).apply(null,arguments)};var dynCall_iidiiii=Module["dynCall_iidiiii"]=function(){return(dynCall_iidiiii=Module["dynCall_iidiiii"]=Module["asm"]["Ea"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["Fa"]).apply(null,arguments)};var dynCall_viiiiii=Module["dynCall_viiiiii"]=function(){return(dynCall_viiiiii=Module["dynCall_viiiiii"]=Module["asm"]["Ga"]).apply(null,arguments)};function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiji(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiji(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vjji(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_vjji(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vj(index,a1,a2){var sp=stackSave();try{dynCall_vj(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}Module["asm"]=asm;var calledRun;Module["then"]=function(func){if(calledRun){func(Module)}else{var old=Module["onRuntimeInitialized"];Module["onRuntimeInitialized"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];args=args||[];var argc=args.length+1;var argv=stackAlloc((argc+1)*4);HEAP32[argv>>2]=allocateUTF8OnStack(thisProgram);for(var i=1;i>2)+i]=allocateUTF8OnStack(args[i-1])}HEAP32[(argv>>2)+argc]=0;try{var ret=entryFunction(argc,argv);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="unwind"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e==="object"&&e.stack){toLog=[e,e.stack]}err("exception thrown: "+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module["onExit"])Module["onExit"](status)}quit_(status,new ExitStatus(status))}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;noExitRuntime=true;run(); +var Module=typeof optipng!=="undefined"?optipng:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}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);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;if(end>_emscripten_get_heap_size()){abort()}HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(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 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(typeof WebAssembly!=="object"){err("no native wasm support detected")}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)}}var wasmMemory;var wasmTable=new WebAssembly.Table({"initial":144,"maximum":144+0,"element":"anyfunc"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NONE=3;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=[_malloc,stackAlloc,dynamicAlloc][allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var stop;ptr=ret;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&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(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}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&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 len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr){var endPtr=ptr;var idx=endPtr>>1;while(HEAP16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function allocateUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8Array(str,HEAP8,ret,size);return ret}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var DYNAMIC_BASE=5354832,DYNAMICTOP_PTR=111792;var INITIAL_TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_TOTAL_MEMORY/WASM_PAGE_SIZE})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_TOTAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;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){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __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 initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){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)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";throw new WebAssembly.RuntimeError(what)}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var wasmBinaryFile="optipng.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch==="function"){fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function demangle(func){return func}function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error}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)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___lock(){}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)}};function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(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(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return},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(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=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode: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 2}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return 2}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}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 errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd: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(33)},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(70)}},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){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(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(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(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);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(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}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(29)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>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;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},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-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},getStreamFromFD:function(fd){if(fd===undefined)fd=SYSCALLS.get();var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};function ___syscall10(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr();FS.unlink(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall15(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),mode=SYSCALLS.get();FS.chmod(path,mode);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall195(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),buf=SYSCALLS.get();return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall197(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get();return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall212(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),owner=SYSCALLS.get(),group=SYSCALLS.get();FS.chown(path,owner,group);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:___setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall320(which,varargs){SYSCALLS.varargs=varargs;try{var dirfd=SYSCALLS.get(),path=SYSCALLS.getStr(),times=SYSCALLS.get(),flags=SYSCALLS.get();path=SYSCALLS.calculateAt(dirfd,path);var seconds=HEAP32[times>>2];var nanoseconds=HEAP32[times+4>>2];var atime=seconds*1e3+nanoseconds/(1e3*1e3);times+=8;seconds=HEAP32[times>>2];nanoseconds=HEAP32[times+4>>2];var mtime=seconds*1e3+nanoseconds/(1e3*1e3);FS.utime(path,atime,mtime);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall33(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),amode=SYSCALLS.get();return SYSCALLS.doAccess(path,amode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall38(which,varargs){SYSCALLS.varargs=varargs;try{var old_path=SYSCALLS.getStr(),new_path=SYSCALLS.getStr();FS.rename(old_path,new_path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall39(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),mode=SYSCALLS.get();return SYSCALLS.doMkdir(path,mode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall40(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr();FS.rmdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}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 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___unlock(){}var structRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>shift])},destructorFunction:null})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2)+i])}return array}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap["buffer"],data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var endChar=HEAPU8[value+4+length];var endCharSwap=0;if(endChar!=0){endCharSwap=endChar;HEAPU8[value+4+length]=0}var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(HEAPU8[currentBytePtr]==0){var stringSegment=UTF8ToString(decodeStartPtr);if(str===undefined)str=stringSegment;else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}if(endCharSwap!=0)HEAPU8[value+4+length]=endCharSwap}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i>2];var HEAP=getHeap();var str;var endChar=HEAP[value+4+length*charSize>>shift];var endCharSwap=0;if(endChar!=0){endCharSwap=endChar;HEAP[value+4+length*charSize>>shift]=0}var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(HEAP[currentBytePtr>>shift]==0){var stringSegment=decodeString(decodeStartPtr);if(str===undefined)str=stringSegment;else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}if(endCharSwap!=0)HEAP[value+4+length*charSize>>shift]=endCharSwap;_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value==="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1}}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return __emval_register(v)}function _abort(){abort()}function _emscripten_get_heap_size(){return HEAPU8.length}var setjmpId=0;function _saveSetjmp(env,label,table,size){env=env|0;label=label|0;table=table|0;size=size|0;var i=0;setjmpId=setjmpId+1|0;HEAP32[env>>2]=setjmpId;while((i|0)<(size|0)){if((HEAP32[table+(i<<3)>>2]|0)==0){HEAP32[table+(i<<3)>>2]=setjmpId;HEAP32[table+((i<<3)+4)>>2]=label;HEAP32[table+((i<<3)+8)>>2]=0;setTempRet0(size|0);return table|0}i=i+1|0}size=size*2|0;table=_realloc(table|0,8*(size+1|0)|0)|0;table=_saveSetjmp(env|0,label|0,table|0,size|0)|0;setTempRet0(size|0);return table|0}function _testSetjmp(id,table,size){id=id|0;table=table|0;size=size|0;var i=0,curr=0;while((i|0)<(size|0)){curr=HEAP32[table+(i<<3)>>2]|0;if((curr|0)==0)break;if((curr|0)==(id|0)){return HEAP32[table+((i<<3)+4)>>2]|0}i=i+1|0}return 0}function _longjmp(env,value){_setThrew(env,value||1);throw"longjmp"}function _emscripten_longjmp(env,value){_longjmp(env,value)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648-PAGE_MULTIPLE;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function _exit(status){exit(status)}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _getTempRet0(){return getTempRet0()|0}function _setTempRet0($i){setTempRet0($i|0)}FS.staticInit();InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_emval();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"e":___assert_fail,"T":___lock,"y":___syscall10,"$":___syscall15,"C":___syscall195,"_":___syscall197,"P":___syscall212,"B":___syscall221,"Y":___syscall320,"Q":___syscall33,"R":___syscall38,"Z":___syscall39,"S":___syscall40,"W":___syscall5,"V":___syscall54,"u":___unlock,"X":__embind_finalize_value_object,"M":__embind_register_bool,"L":__embind_register_emval,"w":__embind_register_float,"t":__embind_register_function,"k":__embind_register_integer,"i":__embind_register_memory_view,"x":__embind_register_std_string,"s":__embind_register_std_wstring,"ca":__embind_register_value_object,"aa":__embind_register_value_object_field,"N":__embind_register_void,"D":__emval_decref,"K":__emval_incref,"da":__emval_take_value,"p":_abort,"f":_emscripten_longjmp,"I":_emscripten_memcpy_big,"J":_emscripten_resize_heap,"q":_exit,"z":_fd_close,"O":_fd_fdstat_get,"U":_fd_read,"E":_fd_seek,"A":_fd_write,"a":_getTempRet0,"l":invoke_ii,"h":invoke_iii,"r":invoke_iiii,"n":invoke_iiiii,"H":invoke_iiji,"v":invoke_v,"g":invoke_vi,"d":invoke_vii,"o":invoke_viii,"m":invoke_viiii,"ba":invoke_viiiii,"F":invoke_vj,"G":invoke_vjji,"memory":wasmMemory,"j":_saveSetjmp,"b":_setTempRet0,"table":wasmTable,"c":_testSetjmp};var asm=createWasm();Module["asm"]=asm;var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["ea"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["fa"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["ga"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ha"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["ia"]).apply(null,arguments)};var _realloc=Module["_realloc"]=function(){return(_realloc=Module["_realloc"]=Module["asm"]["ja"]).apply(null,arguments)};var _setThrew=Module["_setThrew"]=function(){return(_setThrew=Module["_setThrew"]=Module["asm"]["ka"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["la"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["ma"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["na"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["oa"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["pa"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["qa"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["ra"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["sa"]).apply(null,arguments)};var dynCall_vj=Module["dynCall_vj"]=function(){return(dynCall_vj=Module["dynCall_vj"]=Module["asm"]["ta"]).apply(null,arguments)};var dynCall_vjji=Module["dynCall_vjji"]=function(){return(dynCall_vjji=Module["dynCall_vjji"]=Module["asm"]["ua"]).apply(null,arguments)};var dynCall_ii=Module["dynCall_ii"]=function(){return(dynCall_ii=Module["dynCall_ii"]=Module["asm"]["va"]).apply(null,arguments)};var dynCall_iii=Module["dynCall_iii"]=function(){return(dynCall_iii=Module["dynCall_iii"]=Module["asm"]["wa"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["xa"]).apply(null,arguments)};var dynCall_iiiii=Module["dynCall_iiiii"]=function(){return(dynCall_iiiii=Module["dynCall_iiiii"]=Module["asm"]["ya"]).apply(null,arguments)};var dynCall_iiji=Module["dynCall_iiji"]=function(){return(dynCall_iiji=Module["dynCall_iiji"]=Module["asm"]["za"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["Aa"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["Ba"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["Ca"]).apply(null,arguments)};var dynCall_i=Module["dynCall_i"]=function(){return(dynCall_i=Module["dynCall_i"]=Module["asm"]["Da"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["Ea"]).apply(null,arguments)};var dynCall_iidiiii=Module["dynCall_iidiiii"]=function(){return(dynCall_iidiiii=Module["dynCall_iidiiii"]=Module["asm"]["Fa"]).apply(null,arguments)};var dynCall_viiiiii=Module["dynCall_viiiiii"]=function(){return(dynCall_viiiiii=Module["dynCall_viiiiii"]=Module["asm"]["Ga"]).apply(null,arguments)};function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiji(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiji(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vjji(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_vjji(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vj(index,a1,a2){var sp=stackSave();try{dynCall_vj(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}Module["asm"]=asm;var calledRun;Module["then"]=function(func){if(calledRun){func(Module)}else{var old=Module["onRuntimeInitialized"];Module["onRuntimeInitialized"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];args=args||[];var argc=args.length+1;var argv=stackAlloc((argc+1)*4);HEAP32[argv>>2]=allocateUTF8OnStack(thisProgram);for(var i=1;i>2)+i]=allocateUTF8OnStack(args[i-1])}HEAP32[(argv>>2)+argc]=0;try{var ret=entryFunction(argc,argv);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="unwind"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e==="object"&&e.stack){toLog=[e,e.stack]}err("exception thrown: "+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module["onExit"])Module["onExit"](status)}quit_(status,new ExitStatus(status))}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;noExitRuntime=true;run(); return optipng diff --git a/codecs/optipng/optipng.wasm b/codecs/optipng/optipng.wasm index e66fe04fbd6dadab7a135ce4f52b9446c2e69318..dc1bd12122d2b26773c4cba2191f503357781499 100644 GIT binary patch delta 60501 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 Z+>S_e&U^~LF>w~wFF1gA2EYBw{{uW9(KG-6 delta 58081 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 l1>ZK5?FKw2kPV