From be2c2e60c95757fb8317623c77a591aa7bbb1ede Mon Sep 17 00:00:00 2001 From: blankhex Date: Sat, 19 Jul 2025 07:29:06 +0000 Subject: [PATCH] deploy: 6b9ccea80e7b83089bede5c9ae4286763333c168 --- data.pak | Bin 368195 -> 368411 bytes eulamadness.js | 2 +- eulamadness.wasm | Bin 1274497 -> 1283778 bytes 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/data.pak b/data.pak index 6268256e67febd65266b95a2cbe14d52461afbf4..2091b81b3a89e56d49aa07acb8c9eefdb660f7f0 100644 GIT binary patch delta 2376 zcmZ{kUufG^6vuOK8&jMtY}&ZBc50ig$trF#rZP=St>R|YOg5=9bYiUxrRqTO!G=Ak zY)m2Oq-V1mI(?`hSY)vKU^9^^6BPTPPx`Q~K8+!EKKZavzn>(xM$y8z=l;$;=X?I% zoSn@~oyjD34h{|f@_F*B`KzB<{yTDLzW@I}PaT^7d0%HDkyrw4LRwfUqy*{g@|e5T zZtQby;nWT{?fRlEHeEtixTOi`GJ^c^-56$u<+dfdakXC9Cfp!bK`6OZT~(Z0--&W~txY=J0FLz3A?Oib_d^ zG)9CMgbCqr1FuWIEI>~vQd?I~t0PQ5;y!f+Xo$iUCS-xzG2s(oTKG_SSAcr2K;~4C z3gunytSivymKMAJ= zxL*+{nJ$TA1P+EzUUUx*V!=TU7lcKjnS**FM^`969ywSDS_%ifpnmeFjvod1sEwY) zJm{bD*aJuGsb*B;X9SD{p3ekoz@Iv(lQ`Q2a!-fy6On`Q#(L;$(14;EzXvnuxYFaIY$s1-#F8iRvvYmZD~;}cYZ|w4!oqjTN-g|?1NEvP3V2v zZK}TorXJbjF2h7enQq)+D$twZEo6c?zNo)I+~ZTCd4Pr?anYXgikDySo#E1$d)0N) zTn4SXntyvks#(jnN5jxQcmAWAZHw-S)ePzC>FiqJ&$-*6Y!y}rs|C_pD|9r@=(xj1 zwp$WmIPJfy_ZJ;=!uDn%E94sBj1Df+t@$^6Iiur_w?oO4en$hGHwkdSO^ntsyh{1r zO}^xVFZb9ndv^A|1~|udVuLL{_CvjUND-Mj#R=IR1MC77Vb!=-{SEnuJd(6t9Paq=I^nxtU}593#?`{M zR+tr6`=`RpT0dGRLdhk8Fs2Bc?)tA5_sg2dc+(=l869`Dm{!uB)=*rfjQ%lmBGG1SiH;xOjE*~Oc%5k>Je>C5 zx~*~2sJSK#4PtcwMKrrI;Z)PA^McSZCDMa~#sSXg;I8>e>Y1$fbM@Cw?D%5w#}3eR z%H&S`%P;s(dp_rbEb5P)gfs z9Po!1tg27{tmdtS}||MVpus{SCcV(Wf8l zwJP#tuN96<4&|(bd^=|qt8PDt*~TM2n0Zxv+kMypD;y>q`$Jn&#k;x7gH B?y&#> delta 2314 zcmb_bPe>GD6rcCmU{ouijk_(HqnkUMAPTh|f^CY#!>**sZiPjLEN!s`dkZ2l@DLOg zq2trEj0l#9=r4Q)VuXf7ke5b-Al6eIyM-rvFFY)BXlHjl{O0%GH}Czv?|a{Sle4vR zGqq~Z;Ulq%m+FVy$cx<8*H2dNp076*Wo?YGL|9!1+q`CCcN^@JH=~e+RzEF_5Y`HS zWBi;L!l4XQ%G+J=5W<|DEs&Y7%&~s#&wwFs9EHaacC&T90NW#c3|$WQ(D@@~5xYBu z{uRO}hkD^DM7T1}0Jr`arhB1I4#)XKTxPe4&bTF+Iu3IX;U{zcbL+3l)X5Fd=wppC z?{bLEKyxK;ohXQOg=!L$^83xU@8UtikW${O8sml!ku;H0n0sF1uKx%$ioShF(TJ=xwX0 zKT7Q_?#oC?J*_Bv6$Z8iMY}u|6j<~?g=h%>Kd9HeErL)%*p&6QsF%bcfjdz>AgmlF zP(28{aTHZkyjnq{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)onerror(err);else onload(binary?data.buffer:data)})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module}process.on("uncaughtException",ex=>{if(ex!=="unwind"&&!(ex instanceof ExitStatus)&&!(ex.context instanceof ExitStatus)){throw ex}});quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");var wasmBinaryFile;wasmBinaryFile="eulamadness.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(binaryFile)){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(!response["ok"]){throw`failed to load wasm binary file at '${binaryFile}'`}return response["arrayBuffer"]()}).catch(()=>getBinarySync(binaryFile))}else if(readAsync){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),reject)})}}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function createWasm(){var info={"a":wasmImports};function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["bg"];updateMemoryViews();wasmTable=wasmExports["dg"];addOnInit(wasmExports["cg"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);return false}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult);return{}}var tempDouble;var tempI64;var ASM_CONSTS={454944:$0=>{var str=UTF8ToString($0)+"\n\n"+"Abort/Retry/Ignore/AlwaysIgnore? [ariA] :";var reply=window.prompt(str,"i");if(reply===null){reply="i"}return allocate(intArrayFromString(reply),"i8",ALLOC_NORMAL)},455169:()=>{if(typeof AudioContext!=="undefined"){return true}else if(typeof webkitAudioContext!=="undefined"){return true}return false},455316:()=>{if(typeof navigator.mediaDevices!=="undefined"&&typeof navigator.mediaDevices.getUserMedia!=="undefined"){return true}else if(typeof navigator.webkitGetUserMedia!=="undefined"){return true}return false},455550:$0=>{if(typeof Module["SDL2"]==="undefined"){Module["SDL2"]={}}var SDL2=Module["SDL2"];if(!$0){SDL2.audio={}}else{SDL2.capture={}}if(!SDL2.audioContext){if(typeof AudioContext!=="undefined"){SDL2.audioContext=new AudioContext}else if(typeof webkitAudioContext!=="undefined"){SDL2.audioContext=new webkitAudioContext}if(SDL2.audioContext){autoResumeAudioContext(SDL2.audioContext)}}return SDL2.audioContext===undefined?-1:0},456043:()=>{var SDL2=Module["SDL2"];return SDL2.audioContext.sampleRate},456111:($0,$1,$2,$3)=>{var SDL2=Module["SDL2"];var have_microphone=function(stream){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer);SDL2.capture.silenceTimer=undefined}SDL2.capture.mediaStreamNode=SDL2.audioContext.createMediaStreamSource(stream);SDL2.capture.scriptProcessorNode=SDL2.audioContext.createScriptProcessor($1,$0,1);SDL2.capture.scriptProcessorNode.onaudioprocess=function(audioProcessingEvent){if(SDL2===undefined||SDL2.capture===undefined){return}audioProcessingEvent.outputBuffer.getChannelData(0).fill(0);SDL2.capture.currentCaptureBuffer=audioProcessingEvent.inputBuffer;dynCall("vi",$2,[$3])};SDL2.capture.mediaStreamNode.connect(SDL2.capture.scriptProcessorNode);SDL2.capture.scriptProcessorNode.connect(SDL2.audioContext.destination);SDL2.capture.stream=stream};var no_microphone=function(error){};SDL2.capture.silenceBuffer=SDL2.audioContext.createBuffer($0,$1,SDL2.audioContext.sampleRate);SDL2.capture.silenceBuffer.getChannelData(0).fill(0);var silence_callback=function(){SDL2.capture.currentCaptureBuffer=SDL2.capture.silenceBuffer;dynCall("vi",$2,[$3])};SDL2.capture.silenceTimer=setTimeout(silence_callback,$1/SDL2.audioContext.sampleRate*1e3);if(navigator.mediaDevices!==undefined&&navigator.mediaDevices.getUserMedia!==undefined){navigator.mediaDevices.getUserMedia({audio:true,video:false}).then(have_microphone).catch(no_microphone)}else if(navigator.webkitGetUserMedia!==undefined){navigator.webkitGetUserMedia({audio:true,video:false},have_microphone,no_microphone)}},457763:($0,$1,$2,$3)=>{var SDL2=Module["SDL2"];SDL2.audio.scriptProcessorNode=SDL2.audioContext["createScriptProcessor"]($1,0,$0);SDL2.audio.scriptProcessorNode["onaudioprocess"]=function(e){if(SDL2===undefined||SDL2.audio===undefined){return}SDL2.audio.currentOutputBuffer=e["outputBuffer"];dynCall("vi",$2,[$3])};SDL2.audio.scriptProcessorNode["connect"](SDL2.audioContext["destination"])},458173:($0,$1)=>{var SDL2=Module["SDL2"];var numChannels=SDL2.capture.currentCaptureBuffer.numberOfChannels;for(var c=0;c{var SDL2=Module["SDL2"];var numChannels=SDL2.audio.currentOutputBuffer["numberOfChannels"];for(var c=0;c>2]}}},459258:$0=>{var SDL2=Module["SDL2"];if($0){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer)}if(SDL2.capture.stream!==undefined){var tracks=SDL2.capture.stream.getAudioTracks();for(var i=0;i{var w=$0;var h=$1;var pixels=$2;if(!Module["SDL2"])Module["SDL2"]={};var SDL2=Module["SDL2"];if(SDL2.ctxCanvas!==Module["canvas"]){SDL2.ctx=Module["createContext"](Module["canvas"],false,true);SDL2.ctxCanvas=Module["canvas"]}if(SDL2.w!==w||SDL2.h!==h||SDL2.imageCtx!==SDL2.ctx){SDL2.image=SDL2.ctx.createImageData(w,h);SDL2.w=w;SDL2.h=h;SDL2.imageCtx=SDL2.ctx}var data=SDL2.image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!=="undefined"&&data instanceof CanvasPixelArray){num=data.length;while(dst>8&255;data[dst+2]=val>>16&255;data[dst+3]=255;src++;dst+=4}}else{if(SDL2.data32Data!==data){SDL2.data32=new Int32Array(data.buffer);SDL2.data8=new Uint8Array(data.buffer);SDL2.data32Data=data}var data32=SDL2.data32;num=data32.length;data32.set(HEAP32.subarray(src,src+num));var data8=SDL2.data8;var i=3;var j=i+4*num;if(num%8==0){while(i{var w=$0;var h=$1;var hot_x=$2;var hot_y=$3;var pixels=$4;var canvas=document.createElement("canvas");canvas.width=w;canvas.height=h;var ctx=canvas.getContext("2d");var image=ctx.createImageData(w,h);var data=image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!=="undefined"&&data instanceof CanvasPixelArray){num=data.length;while(dst>8&255;data[dst+2]=val>>16&255;data[dst+3]=val>>24&255;src++;dst+=4}}else{var data32=new Int32Array(data.buffer);num=data32.length;data32.set(HEAP32.subarray(src,src+num))}ctx.putImageData(image,0,0);var url=hot_x===0&&hot_y===0?"url("+canvas.toDataURL()+"), auto":"url("+canvas.toDataURL()+") "+hot_x+" "+hot_y+", auto";var urlBuf=_malloc(url.length+1);stringToUTF8(url,urlBuf,url.length+1);return urlBuf},462888:$0=>{if(Module["canvas"]){Module["canvas"].style["cursor"]=UTF8ToString($0)}},462971:()=>{if(Module["canvas"]){Module["canvas"].style["cursor"]="none"}},463040:()=>window.innerWidth,463070:()=>window.innerHeight};function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var noExitRuntime=Module["noExitRuntime"]||true;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr]=value;break;case"i8":HEAP8[ptr]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var exceptionCaught=[];var uncaughtExceptionCount=0;var ___cxa_begin_catch=ptr=>{var info=new ExceptionInfo(ptr);if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(info);___cxa_increment_exception_refcount(info.excPtr);return info.get_exception_ptr()};var exceptionLast=0;var ___cxa_end_catch=()=>{_setThrew(0,0);var info=exceptionCaught.pop();___cxa_decrement_exception_refcount(info.excPtr);exceptionLast=0};class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){HEAPU32[this.ptr+4>>2]=type}get_type(){return HEAPU32[this.ptr+4>>2]}set_destructor(destructor){HEAPU32[this.ptr+8>>2]=destructor}get_destructor(){return HEAPU32[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12]=caught}get_caught(){return HEAP8[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13]=rethrown}get_rethrown(){return HEAP8[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return HEAPU32[this.ptr+16>>2]}get_exception_ptr(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var ___resumeException=ptr=>{if(!exceptionLast){exceptionLast=ptr}throw exceptionLast};var findMatchingCatch=args=>{var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0}var info=new ExceptionInfo(thrown);info.set_adjusted_ptr(thrown);var thrownType=info.get_type();if(!thrownType){setTempRet0(0);return thrown}for(var arg in args){var caughtType=args[arg];if(caughtType===0||caughtType===thrownType){break}var adjusted_ptr_addr=info.ptr+16;if(___cxa_can_catch(caughtType,thrownType,adjusted_ptr_addr)){setTempRet0(caughtType);return thrown}}setTempRet0(thrownType);return thrown};var ___cxa_find_matching_catch_2=()=>findMatchingCatch([]);var ___cxa_find_matching_catch_3=arg0=>findMatchingCatch([arg0]);var ___cxa_rethrow=()=>{var info=exceptionCaught.pop();if(!info){abort("no exception to throw")}var ptr=info.excPtr;if(!info.get_rethrown()){exceptionCaught.push(info);info.set_rethrown(true);info.set_caught(false);uncaughtExceptionCount++}exceptionLast=ptr;throw exceptionLast};var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast};var ___cxa_uncaught_exceptions=()=>uncaughtExceptionCount;var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");var randomFillSync=crypto_module["randomFillSync"];if(randomFillSync){return view=>crypto_module["randomFillSync"](view)}var randomBytes=crypto_module["randomBytes"];return view=>(view.set(randomBytes(view.byteLength)),view)}catch(e){}}abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var mmapAlloc=size=>{abort()};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[".",".."];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url,arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module["preloadPlugins"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={"r":0,"r+":2,"w":512|64|1,"w+":512|64|2,"a":1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:class{constructor(errno){this.name="ErrnoError";this.errno=errno}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{constructor(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;this.readMode=292|73;this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;iFS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""});FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init(input,output,error){FS.init.initialized=true;Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit(){FS.init.initialized=false;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}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;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get(){var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret},getp(){return SYSCALLS.get()},getStr(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.getp();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=SYSCALLS.getp();HEAP32[argp>>2]=termios.c_iflag||0;HEAP32[argp+4>>2]=termios.c_oflag||0;HEAP32[argp+8>>2]=termios.c_cflag||0;HEAP32[argp+12>>2]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=SYSCALLS.getp();var c_iflag=HEAP32[argp>>2];var c_oflag=HEAP32[argp+4>>2];var c_cflag=HEAP32[argp+8>>2];var c_lflag=HEAP32[argp+12>>2];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag:c_iflag,c_oflag:c_oflag,c_cflag:c_cflag,c_lflag:c_lflag,c_cc:c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.getp();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.getp();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=SYSCALLS.getp();HEAP16[argp>>1]=winsize[0];HEAP16[argp+2>>1]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __emscripten_fs_load_embedded_files=ptr=>{do{var name_addr=HEAPU32[ptr>>2];ptr+=4;var len=HEAPU32[ptr>>2];ptr+=4;var content=HEAPU32[ptr>>2];ptr+=4;var name=UTF8ToString(name_addr);FS.createPath("/",PATH.dirname(name),true,true);FS.createDataFile(name,null,HEAP8.subarray(content,content+len),true,true,true)}while(HEAPU32[ptr>>2])};var nowIsMonotonic=1;var __emscripten_get_now_is_monotonic=()=>nowIsMonotonic;var _abort=()=>{abort("")};var _emscripten_set_main_loop_timing=(mode,value)=>{Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof Browser.setImmediate=="undefined"){if(typeof setImmediate=="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=event=>{if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);Browser.setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}else{Browser.setImmediate=setImmediate}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){Browser.setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0};var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var setMainLoop=(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming)=>{Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL=="object")SDL.audio?.queueNewAudioData?.();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0){_emscripten_set_main_loop_timing(0,1e3/fps)}else{_emscripten_set_main_loop_timing(1,1)}Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var safeSetTimeout=(func,timeout)=>setTimeout(()=>{callUserCallback(func)},timeout);var warnOnce=text=>{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining{var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;URL.revokeObjectURL(url);onload?.(byteArray)};img.onerror=event=>{err(`Image ${url} could not be decoded`);onerror?.()};img.src=url};preloadPlugins.push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;preloadedAudios[name]=audio;onload?.(byteArray)}var b=new Blob([byteArray],{type:Browser.getMimetype(name)});var url=URL.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",()=>finish(audio),false);audio.onerror=function audio_onerror(event){if(done)return;err(`warning: browser could not fully decode audio ${name}, trying slower base64 approach`);function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(()=>{finish(audio)},1e4)};preloadPlugins.push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(()=>{});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(()=>{});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",ev=>{if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:typeof WebGL2RenderingContext!="undefined"?2:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(callback=>callback());Browser.init()}return ctx},destroyContext(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer=="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas=="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}Module["onFullScreen"]?.(Browser.isFullscreen);Module["onFullscreen"]?.(Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?()=>canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]):null)||(canvasContainer["webkitRequestFullScreen"]?()=>canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]):null);canvasContainer.requestFullscreen()},exitFullscreen(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||(()=>{});CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame(func){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout(func,timeout){return safeSetTimeout(func,timeout)},safeRequestAnimationFrame(func){return Browser.requestAnimationFrame(()=>{callUserCallback(func)})},getMimetype(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia(func){window.getUserMedia||=navigator["getUserMedia"]||navigator["mozGetUserMedia"];window.getUserMedia(func)},getMovementX(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseCoords(pageX,pageY){var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;var adjustedX=pageX-(scrollX+rect.left);var adjustedY=pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);return{x:adjustedX,y:adjustedY}},setMouseCoords(pageX,pageY){const{x:x,y:y}=Browser.calculateMouseCoords(pageX,pageY);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y},calculateMouseEvent(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var coords=Browser.calculateMouseCoords(touch.pageX,touch.pageY);if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];last||=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}Browser.setMouseCoords(event.pageX,event.pageY)}},resizeListeners:[],updateResizeListeners(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(listener=>listener(canvas.width,canvas.height))},setCanvasSize(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h>2];if(param==12321){var alphaSize=HEAP32[attribList+4>>2];EGL.contextAttributes.alpha=alphaSize>0}else if(param==12325){var depthSize=HEAP32[attribList+4>>2];EGL.contextAttributes.depth=depthSize>0}else if(param==12326){var stencilSize=HEAP32[attribList+4>>2];EGL.contextAttributes.stencil=stencilSize>0}else if(param==12337){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples>0}else if(param==12338){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples==1}else if(param==12544){var requestedPriority=HEAP32[attribList+4>>2];EGL.contextAttributes.lowLatency=requestedPriority!=12547}else if(param==12344){break}attribList+=8}}if((!config||!config_size)&&!numConfigs){EGL.setErrorCode(12300);return 0}if(numConfigs){HEAP32[numConfigs>>2]=1}if(config&&config_size>0){HEAPU32[config>>2]=62002}EGL.setErrorCode(12288);return 1}};var _eglBindAPI=api=>{if(api==12448){EGL.setErrorCode(12288);return 1}EGL.setErrorCode(12300);return 0};var _eglChooseConfig=(display,attrib_list,configs,config_size,numConfigs)=>EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs);var webgl_enable_ANGLE_instanced_arrays=ctx=>{var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=(index,divisor)=>ext["vertexAttribDivisorANGLE"](index,divisor);ctx["drawArraysInstanced"]=(mode,first,count,primcount)=>ext["drawArraysInstancedANGLE"](mode,first,count,primcount);ctx["drawElementsInstanced"]=(mode,count,type,indices,primcount)=>ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount);return 1}};var webgl_enable_OES_vertex_array_object=ctx=>{var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=()=>ext["createVertexArrayOES"]();ctx["deleteVertexArray"]=vao=>ext["deleteVertexArrayOES"](vao);ctx["bindVertexArray"]=vao=>ext["bindVertexArrayOES"](vao);ctx["isVertexArray"]=vao=>ext["isVertexArrayOES"](vao);return 1}};var webgl_enable_WEBGL_draw_buffers=ctx=>{var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=(n,bufs)=>ext["drawBuffersWEBGL"](n,bufs);return 1}};var webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw=ctx=>!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"));var getEmscriptenSupportedExtensions=ctx=>{var supportedExtensions=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_disjoint_timer_query","EXT_frag_depth","EXT_shader_texture_lod","EXT_sRGB","OES_element_index_uint","OES_fbo_render_mipmap","OES_standard_derivatives","OES_texture_float","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_depth_texture","WEBGL_draw_buffers","EXT_color_buffer_float","EXT_conservative_depth","EXT_disjoint_timer_query_webgl2","EXT_texture_norm16","NV_shader_noperspective_interpolation","WEBGL_clip_cull_distance","EXT_color_buffer_half_float","EXT_depth_clamp","EXT_float_blend","EXT_texture_compression_bptc","EXT_texture_compression_rgtc","EXT_texture_filter_anisotropic","KHR_parallel_shader_compile","OES_texture_float_linear","WEBGL_blend_func_extended","WEBGL_compressed_texture_astc","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_debug_renderer_info","WEBGL_debug_shaders","WEBGL_lose_context","WEBGL_multi_draw"];return(ctx.getSupportedExtensions()||[]).filter(ext=>supportedExtensions.includes(ext))};var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:errorCode=>{if(!GL.lastError){GL.lastError=errorCode}},getNewId:table=>{var ret=GL.counter++;for(var i=table.length;i{for(var i=0;i>2]=id}},getSource:(shader,count,string,length)=>{var source="";for(var i=0;i>2]:undefined;source+=UTF8ToString(HEAPU32[string+i*4>>2],len)}return source},createContext:(canvas,webGLContextAttributes)=>{if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;function fixedGetContext(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}canvas.getContext=fixedGetContext}var ctx=webGLContextAttributes.majorVersion>1?canvas.getContext("webgl2",webGLContextAttributes):canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:(ctx,webGLContextAttributes)=>{var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:contextHandle=>{GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext?.GLctx;return!(contextHandle&&!GLctx)},getContext:contextHandle=>GL.contexts[contextHandle],deleteContext:contextHandle=>{if(GL.currentContext===GL.contexts[contextHandle]){GL.currentContext=null}if(typeof JSEvents=="object"){JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas)}if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas){GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined}GL.contexts[contextHandle]=null},initExtensions:context=>{context||=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;webgl_enable_ANGLE_instanced_arrays(GLctx);webgl_enable_OES_vertex_array_object(GLctx);webgl_enable_WEBGL_draw_buffers(GLctx);webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}webgl_enable_WEBGL_multi_draw(GLctx);getEmscriptenSupportedExtensions(GLctx).forEach(ext=>{if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var _eglCreateContext=(display,config,hmm,contextAttribs)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}var glesContextVersion=1;for(;;){var param=HEAP32[contextAttribs>>2];if(param==12440){glesContextVersion=HEAP32[contextAttribs+4>>2]}else if(param==12344){break}else{EGL.setErrorCode(12292);return 0}contextAttribs+=8}if(glesContextVersion<2||glesContextVersion>3){EGL.setErrorCode(12293);return 0}EGL.contextAttributes.majorVersion=glesContextVersion-1;EGL.contextAttributes.minorVersion=0;EGL.context=GL.createContext(Module["canvas"],EGL.contextAttributes);if(EGL.context!=0){EGL.setErrorCode(12288);GL.makeContextCurrent(EGL.context);Module.useWebGL=true;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});GL.makeContextCurrent(null);return 62004}else{EGL.setErrorCode(12297);return 0}};var _eglCreateWindowSurface=(display,config,win,attrib_list)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}EGL.setErrorCode(12288);return 62006};var _eglDestroyContext=(display,context)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}GL.deleteContext(EGL.context);EGL.setErrorCode(12288);if(EGL.currentContext==context){EGL.currentContext=0}return 1};var _eglDestroySurface=(display,surface)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 1}if(EGL.currentReadSurface==surface){EGL.currentReadSurface=0}if(EGL.currentDrawSurface==surface){EGL.currentDrawSurface=0}EGL.setErrorCode(12288);return 1};var _eglGetConfigAttrib=(display,config,attribute,value)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}if(!value){EGL.setErrorCode(12300);return 0}EGL.setErrorCode(12288);switch(attribute){case 12320:HEAP32[value>>2]=EGL.contextAttributes.alpha?32:24;return 1;case 12321:HEAP32[value>>2]=EGL.contextAttributes.alpha?8:0;return 1;case 12322:HEAP32[value>>2]=8;return 1;case 12323:HEAP32[value>>2]=8;return 1;case 12324:HEAP32[value>>2]=8;return 1;case 12325:HEAP32[value>>2]=EGL.contextAttributes.depth?24:0;return 1;case 12326:HEAP32[value>>2]=EGL.contextAttributes.stencil?8:0;return 1;case 12327:HEAP32[value>>2]=12344;return 1;case 12328:HEAP32[value>>2]=62002;return 1;case 12329:HEAP32[value>>2]=0;return 1;case 12330:HEAP32[value>>2]=4096;return 1;case 12331:HEAP32[value>>2]=16777216;return 1;case 12332:HEAP32[value>>2]=4096;return 1;case 12333:HEAP32[value>>2]=0;return 1;case 12334:HEAP32[value>>2]=0;return 1;case 12335:HEAP32[value>>2]=12344;return 1;case 12337:HEAP32[value>>2]=EGL.contextAttributes.antialias?4:0;return 1;case 12338:HEAP32[value>>2]=EGL.contextAttributes.antialias?1:0;return 1;case 12339:HEAP32[value>>2]=4;return 1;case 12340:HEAP32[value>>2]=12344;return 1;case 12341:case 12342:case 12343:HEAP32[value>>2]=-1;return 1;case 12345:case 12346:HEAP32[value>>2]=0;return 1;case 12347:HEAP32[value>>2]=0;return 1;case 12348:HEAP32[value>>2]=1;return 1;case 12349:case 12350:HEAP32[value>>2]=0;return 1;case 12351:HEAP32[value>>2]=12430;return 1;case 12352:HEAP32[value>>2]=4;return 1;case 12354:HEAP32[value>>2]=0;return 1;default:EGL.setErrorCode(12292);return 0}};var _eglGetDisplay=nativeDisplayType=>{EGL.setErrorCode(12288);if(nativeDisplayType!=0&&nativeDisplayType!=1){return 0}return 62e3};var _eglGetError=()=>EGL.errorCode;var _eglInitialize=(display,majorVersion,minorVersion)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(majorVersion){HEAP32[majorVersion>>2]=1}if(minorVersion){HEAP32[minorVersion>>2]=4}EGL.defaultDisplayInitialized=true;EGL.setErrorCode(12288);return 1};var _eglMakeCurrent=(display,draw,read,context)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=0&&context!=62004){EGL.setErrorCode(12294);return 0}if(read!=0&&read!=62006||draw!=0&&draw!=62006){EGL.setErrorCode(12301);return 0}GL.makeContextCurrent(context?EGL.context:null);EGL.currentContext=context;EGL.currentDrawSurface=draw;EGL.currentReadSurface=read;EGL.setErrorCode(12288);return 1};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var _eglQueryString=(display,name)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.setErrorCode(12288);if(EGL.stringCache[name])return EGL.stringCache[name];var ret;switch(name){case 12371:ret=stringToNewUTF8("Emscripten");break;case 12372:ret=stringToNewUTF8("1.4 Emscripten EGL");break;case 12373:ret=stringToNewUTF8("");break;case 12429:ret=stringToNewUTF8("OpenGL_ES");break;default:EGL.setErrorCode(12300);return 0}EGL.stringCache[name]=ret;return ret};var _eglSwapBuffers=(dpy,surface)=>{if(!EGL.defaultDisplayInitialized){EGL.setErrorCode(12289)}else if(!Module.ctx){EGL.setErrorCode(12290)}else if(Module.ctx.isContextLost()){EGL.setErrorCode(12302)}else{EGL.setErrorCode(12288);return 1}return 0};var _eglSwapInterval=(display,interval)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval);EGL.setErrorCode(12288);return 1};var _eglTerminate=display=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.defaultDisplayInitialized=false;EGL.setErrorCode(12288);return 1};var _eglWaitClient=()=>{EGL.setErrorCode(12288);return 1};var _eglWaitGL=_eglWaitClient;var _eglWaitNative=nativeEngineId=>{EGL.setErrorCode(12288);return 1};var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>2]:ch==105?HEAP32[buf>>2]:HEAPF64[buf>>3]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var runMainThreadEmAsm=(emAsmAddr,sigPtr,argbuf,sync)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[emAsmAddr](...args)};var _emscripten_asm_const_int_sync_on_main_thread=(emAsmAddr,sigPtr,argbuf)=>runMainThreadEmAsm(emAsmAddr,sigPtr,argbuf,1);var _emscripten_asm_const_ptr_sync_on_main_thread=(emAsmAddr,sigPtr,argbuf)=>runMainThreadEmAsm(emAsmAddr,sigPtr,argbuf,1);var _emscripten_cancel_main_loop=()=>{Browser.mainLoop.pause();Browser.mainLoop.func=null};var _emscripten_date_now=()=>Date.now();var withStackSave=f=>{var stack=stackSave();var ret=f();stackRestore(stack);return ret};var JSEvents={removeAllEventListeners(){while(JSEvents.eventHandlers.length){JSEvents._removeHandler(JSEvents.eventHandlers.length-1)}JSEvents.deferredCalls=[]},inEventHandler:0,deferredCalls:[],deferCall(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort((x,y)=>x.precedence{for(var i=0;icString>2?UTF8ToString(cString):cString;var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];var findEventTarget=target=>{target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):undefined);return domElement};var findCanvasEventTarget=findEventTarget;var _emscripten_get_canvas_element_size=(target,width,height)=>{var canvas=findCanvasEventTarget(target);if(!canvas)return-4;HEAP32[width>>2]=canvas.width;HEAP32[height>>2]=canvas.height};var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var getCanvasElementSize=target=>withStackSave(()=>{var w=stackAlloc(8);var h=w+4;var targetInt=stringToUTF8OnStack(target.id);var ret=_emscripten_get_canvas_element_size(targetInt,w,h);var size=[HEAP32[w>>2],HEAP32[h>>2]];return size});var _emscripten_set_canvas_element_size=(target,width,height)=>{var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0};var setCanvasElementSize=(target,width,height)=>{if(!target.controlTransferredOffscreen){target.width=width;target.height=height}else{withStackSave(()=>{var targetInt=stringToUTF8OnStack(target.id);_emscripten_set_canvas_element_size(targetInt,width,height)})}};var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var registerRestoreOldStyle=canvas=>{var canvasSize=getCanvasElementSize(canvas);var oldWidth=canvasSize[0];var oldHeight=canvasSize[1];var oldCssWidth=canvas.style.width;var oldCssHeight=canvas.style.height;var oldBackgroundColor=canvas.style.backgroundColor;var oldDocumentBackgroundColor=document.body.style.backgroundColor;var oldPaddingLeft=canvas.style.paddingLeft;var oldPaddingRight=canvas.style.paddingRight;var oldPaddingTop=canvas.style.paddingTop;var oldPaddingBottom=canvas.style.paddingBottom;var oldMarginLeft=canvas.style.marginLeft;var oldMarginRight=canvas.style.marginRight;var oldMarginTop=canvas.style.marginTop;var oldMarginBottom=canvas.style.marginBottom;var oldDocumentBodyMargin=document.body.style.margin;var oldDocumentOverflow=document.documentElement.style.overflow;var oldDocumentScroll=document.body.scroll;var oldImageRendering=canvas.style.imageRendering;function restoreOldStyle(){var fullscreenElement=document.fullscreenElement||document.webkitFullscreenElement;if(!fullscreenElement){document.removeEventListener("fullscreenchange",restoreOldStyle);document.removeEventListener("webkitfullscreenchange",restoreOldStyle);setCanvasElementSize(canvas,oldWidth,oldHeight);canvas.style.width=oldCssWidth;canvas.style.height=oldCssHeight;canvas.style.backgroundColor=oldBackgroundColor;if(!oldDocumentBackgroundColor)document.body.style.backgroundColor="white";document.body.style.backgroundColor=oldDocumentBackgroundColor;canvas.style.paddingLeft=oldPaddingLeft;canvas.style.paddingRight=oldPaddingRight;canvas.style.paddingTop=oldPaddingTop;canvas.style.paddingBottom=oldPaddingBottom;canvas.style.marginLeft=oldMarginLeft;canvas.style.marginRight=oldMarginRight;canvas.style.marginTop=oldMarginTop;canvas.style.marginBottom=oldMarginBottom;document.body.style.margin=oldDocumentBodyMargin;document.documentElement.style.overflow=oldDocumentOverflow;document.body.scroll=oldDocumentScroll;canvas.style.imageRendering=oldImageRendering;if(canvas.GLctxObject)canvas.GLctxObject.GLctx.viewport(0,0,oldWidth,oldHeight);if(currentFullscreenStrategy.canvasResizedCallback){getWasmTableEntry(currentFullscreenStrategy.canvasResizedCallback)(37,0,currentFullscreenStrategy.canvasResizedCallbackUserData)}}}document.addEventListener("fullscreenchange",restoreOldStyle);document.addEventListener("webkitfullscreenchange",restoreOldStyle);return restoreOldStyle};var setLetterbox=(element,topBottom,leftRight)=>{element.style.paddingLeft=element.style.paddingRight=leftRight+"px";element.style.paddingTop=element.style.paddingBottom=topBottom+"px"};var getBoundingClientRect=e=>specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0};var JSEvents_resizeCanvasForFullscreen=(target,strategy)=>{var restoreOldStyle=registerRestoreOldStyle(target);var cssWidth=strategy.softFullscreen?innerWidth:screen.width;var cssHeight=strategy.softFullscreen?innerHeight:screen.height;var rect=getBoundingClientRect(target);var windowedCssWidth=rect.width;var windowedCssHeight=rect.height;var canvasSize=getCanvasElementSize(target);var windowedRttWidth=canvasSize[0];var windowedRttHeight=canvasSize[1];if(strategy.scaleMode==3){setLetterbox(target,(cssHeight-windowedCssHeight)/2,(cssWidth-windowedCssWidth)/2);cssWidth=windowedCssWidth;cssHeight=windowedCssHeight}else if(strategy.scaleMode==2){if(cssWidth*windowedRttHeight{if(strategy.scaleMode!=0||strategy.canvasResolutionScaleMode!=0){JSEvents_resizeCanvasForFullscreen(target,strategy)}if(target.requestFullscreen){target.requestFullscreen()}else if(target.webkitRequestFullscreen){target.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}else{return JSEvents.fullscreenEnabled()?-3:-1}currentFullscreenStrategy=strategy;if(strategy.canvasResizedCallback){getWasmTableEntry(strategy.canvasResizedCallback)(37,0,strategy.canvasResizedCallbackUserData)}return 0};var _emscripten_exit_fullscreen=()=>{if(!JSEvents.fullscreenEnabled())return-1;JSEvents.removeDeferredCalls(JSEvents_requestFullscreen);var d=specialHTMLTargets[1];if(d.exitFullscreen){d.fullscreenElement&&d.exitFullscreen()}else if(d.webkitExitFullscreen){d.webkitFullscreenElement&&d.webkitExitFullscreen()}else{return-1}return 0};var requestPointerLock=target=>{if(target.requestPointerLock){target.requestPointerLock()}else{if(document.body.requestPointerLock){return-3}return-1}return 0};var _emscripten_exit_pointerlock=()=>{JSEvents.removeDeferredCalls(requestPointerLock);if(document.exitPointerLock){document.exitPointerLock()}else{return-1}return 0};var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};var _emscripten_force_exit=status=>{__emscripten_runtime_keepalive_clear();_exit(status)};var _emscripten_get_device_pixel_ratio=()=>typeof devicePixelRatio=="number"&&devicePixelRatio||1;var _emscripten_get_element_css_size=(target,width,height)=>{target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0};var fillGamepadEventData=(eventStruct,e)=>{HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)};var _emscripten_get_gamepad_status=(index,gamepadState)=>{if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0};var _emscripten_get_num_gamepads=()=>JSEvents.lastGamepadState.length;var _emscripten_get_screen_size=(width,height)=>{HEAP32[width>>2]=screen.width;HEAP32[height>>2]=screen.height};var _glActiveTexture=x0=>GLctx.activeTexture(x0);var _emscripten_glActiveTexture=_glActiveTexture;var _glAttachShader=(program,shader)=>{GLctx.attachShader(GL.programs[program],GL.shaders[shader])};var _emscripten_glAttachShader=_glAttachShader;var _glBeginQuery=(target,id)=>{GLctx.beginQuery(target,GL.queries[id])};var _emscripten_glBeginQuery=_glBeginQuery;var _glBeginQueryEXT=(target,id)=>{GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])};var _emscripten_glBeginQueryEXT=_glBeginQueryEXT;var _glBeginTransformFeedback=x0=>GLctx.beginTransformFeedback(x0);var _emscripten_glBeginTransformFeedback=_glBeginTransformFeedback;var _glBindAttribLocation=(program,index,name)=>{GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))};var _emscripten_glBindAttribLocation=_glBindAttribLocation;var _glBindBuffer=(target,buffer)=>{if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])};var _emscripten_glBindBuffer=_glBindBuffer;var _glBindBufferBase=(target,index,buffer)=>{GLctx.bindBufferBase(target,index,GL.buffers[buffer])};var _emscripten_glBindBufferBase=_glBindBufferBase;var _glBindBufferRange=(target,index,buffer,offset,ptrsize)=>{GLctx.bindBufferRange(target,index,GL.buffers[buffer],offset,ptrsize)};var _emscripten_glBindBufferRange=_glBindBufferRange;var _glBindFramebuffer=(target,framebuffer)=>{GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])};var _emscripten_glBindFramebuffer=_glBindFramebuffer;var _glBindRenderbuffer=(target,renderbuffer)=>{GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])};var _emscripten_glBindRenderbuffer=_glBindRenderbuffer;var _glBindSampler=(unit,sampler)=>{GLctx.bindSampler(unit,GL.samplers[sampler])};var _emscripten_glBindSampler=_glBindSampler;var _glBindTexture=(target,texture)=>{GLctx.bindTexture(target,GL.textures[texture])};var _emscripten_glBindTexture=_glBindTexture;var _glBindTransformFeedback=(target,id)=>{GLctx.bindTransformFeedback(target,GL.transformFeedbacks[id])};var _emscripten_glBindTransformFeedback=_glBindTransformFeedback;var _glBindVertexArray=vao=>{GLctx.bindVertexArray(GL.vaos[vao])};var _emscripten_glBindVertexArray=_glBindVertexArray;var _glBindVertexArrayOES=_glBindVertexArray;var _emscripten_glBindVertexArrayOES=_glBindVertexArrayOES;var _glBlendColor=(x0,x1,x2,x3)=>GLctx.blendColor(x0,x1,x2,x3);var _emscripten_glBlendColor=_glBlendColor;var _glBlendEquation=x0=>GLctx.blendEquation(x0);var _emscripten_glBlendEquation=_glBlendEquation;var _glBlendEquationSeparate=(x0,x1)=>GLctx.blendEquationSeparate(x0,x1);var _emscripten_glBlendEquationSeparate=_glBlendEquationSeparate;var _glBlendFunc=(x0,x1)=>GLctx.blendFunc(x0,x1);var _emscripten_glBlendFunc=_glBlendFunc;var _glBlendFuncSeparate=(x0,x1,x2,x3)=>GLctx.blendFuncSeparate(x0,x1,x2,x3);var _emscripten_glBlendFuncSeparate=_glBlendFuncSeparate;var _glBlitFramebuffer=(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)=>GLctx.blitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9);var _emscripten_glBlitFramebuffer=_glBlitFramebuffer;var _glBufferData=(target,size,data,usage)=>{if(GL.currentContext.version>=2){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}return}GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)};var _emscripten_glBufferData=_glBufferData;var _glBufferSubData=(target,offset,size,data)=>{if(GL.currentContext.version>=2){size&&GLctx.bufferSubData(target,offset,HEAPU8,data,size);return}GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))};var _emscripten_glBufferSubData=_glBufferSubData;var _glCheckFramebufferStatus=x0=>GLctx.checkFramebufferStatus(x0);var _emscripten_glCheckFramebufferStatus=_glCheckFramebufferStatus;var _glClear=x0=>GLctx.clear(x0);var _emscripten_glClear=_glClear;var _glClearBufferfi=(x0,x1,x2,x3)=>GLctx.clearBufferfi(x0,x1,x2,x3);var _emscripten_glClearBufferfi=_glClearBufferfi;var _glClearBufferfv=(buffer,drawbuffer,value)=>{GLctx.clearBufferfv(buffer,drawbuffer,HEAPF32,value>>2)};var _emscripten_glClearBufferfv=_glClearBufferfv;var _glClearBufferiv=(buffer,drawbuffer,value)=>{GLctx.clearBufferiv(buffer,drawbuffer,HEAP32,value>>2)};var _emscripten_glClearBufferiv=_glClearBufferiv;var _glClearBufferuiv=(buffer,drawbuffer,value)=>{GLctx.clearBufferuiv(buffer,drawbuffer,HEAPU32,value>>2)};var _emscripten_glClearBufferuiv=_glClearBufferuiv;var _glClearColor=(x0,x1,x2,x3)=>GLctx.clearColor(x0,x1,x2,x3);var _emscripten_glClearColor=_glClearColor;var _glClearDepthf=x0=>GLctx.clearDepth(x0);var _emscripten_glClearDepthf=_glClearDepthf;var _glClearStencil=x0=>GLctx.clearStencil(x0);var _emscripten_glClearStencil=_glClearStencil;var convertI32PairToI53=(lo,hi)=>(lo>>>0)+hi*4294967296;var _glClientWaitSync=(sync,flags,timeout_low,timeout_high)=>{var timeout=convertI32PairToI53(timeout_low,timeout_high);return GLctx.clientWaitSync(GL.syncs[sync],flags,timeout)};var _emscripten_glClientWaitSync=_glClientWaitSync;var _glColorMask=(red,green,blue,alpha)=>{GLctx.colorMask(!!red,!!green,!!blue,!!alpha)};var _emscripten_glColorMask=_glColorMask;var _glCompileShader=shader=>{GLctx.compileShader(GL.shaders[shader])};var _emscripten_glCompileShader=_glCompileShader;var _glCompressedTexImage2D=(target,level,internalFormat,width,height,border,imageSize,data)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data)}else{GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,HEAPU8,data,imageSize)}return}GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)};var _emscripten_glCompressedTexImage2D=_glCompressedTexImage2D;var _glCompressedTexImage3D=(target,level,internalFormat,width,height,depth,border,imageSize,data)=>{if(GLctx.currentPixelUnpackBufferBinding){GLctx.compressedTexImage3D(target,level,internalFormat,width,height,depth,border,imageSize,data)}else{GLctx.compressedTexImage3D(target,level,internalFormat,width,height,depth,border,HEAPU8,data,imageSize)}};var _emscripten_glCompressedTexImage3D=_glCompressedTexImage3D;var _glCompressedTexSubImage2D=(target,level,xoffset,yoffset,width,height,format,imageSize,data)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data)}else{GLctx.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,HEAPU8,data,imageSize)}return}GLctx.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)};var _emscripten_glCompressedTexSubImage2D=_glCompressedTexSubImage2D;var _glCompressedTexSubImage3D=(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)=>{if(GLctx.currentPixelUnpackBufferBinding){GLctx.compressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)}else{GLctx.compressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,HEAPU8,data,imageSize)}};var _emscripten_glCompressedTexSubImage3D=_glCompressedTexSubImage3D;var _glCopyBufferSubData=(x0,x1,x2,x3,x4)=>GLctx.copyBufferSubData(x0,x1,x2,x3,x4);var _emscripten_glCopyBufferSubData=_glCopyBufferSubData;var _glCopyTexImage2D=(x0,x1,x2,x3,x4,x5,x6,x7)=>GLctx.copyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7);var _emscripten_glCopyTexImage2D=_glCopyTexImage2D;var _glCopyTexSubImage2D=(x0,x1,x2,x3,x4,x5,x6,x7)=>GLctx.copyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7);var _emscripten_glCopyTexSubImage2D=_glCopyTexSubImage2D;var _glCopyTexSubImage3D=(x0,x1,x2,x3,x4,x5,x6,x7,x8)=>GLctx.copyTexSubImage3D(x0,x1,x2,x3,x4,x5,x6,x7,x8);var _emscripten_glCopyTexSubImage3D=_glCopyTexSubImage3D;var _glCreateProgram=()=>{var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id};var _emscripten_glCreateProgram=_glCreateProgram;var _glCreateShader=shaderType=>{var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id};var _emscripten_glCreateShader=_glCreateShader;var _glCullFace=x0=>GLctx.cullFace(x0);var _emscripten_glCullFace=_glCullFace;var _glDeleteBuffers=(n,buffers)=>{for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}};var _emscripten_glDeleteBuffers=_glDeleteBuffers;var _glDeleteFramebuffers=(n,framebuffers)=>{for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}};var _emscripten_glDeleteFramebuffers=_glDeleteFramebuffers;var _glDeleteProgram=id=>{if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null};var _emscripten_glDeleteProgram=_glDeleteProgram;var _glDeleteQueries=(n,ids)=>{for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.deleteQuery(query);GL.queries[id]=null}};var _emscripten_glDeleteQueries=_glDeleteQueries;var _glDeleteQueriesEXT=(n,ids)=>{for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}};var _emscripten_glDeleteQueriesEXT=_glDeleteQueriesEXT;var _glDeleteRenderbuffers=(n,renderbuffers)=>{for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}};var _emscripten_glDeleteRenderbuffers=_glDeleteRenderbuffers;var _glDeleteSamplers=(n,samplers)=>{for(var i=0;i>2];var sampler=GL.samplers[id];if(!sampler)continue;GLctx.deleteSampler(sampler);sampler.name=0;GL.samplers[id]=null}};var _emscripten_glDeleteSamplers=_glDeleteSamplers;var _glDeleteShader=id=>{if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null};var _emscripten_glDeleteShader=_glDeleteShader;var _glDeleteSync=id=>{if(!id)return;var sync=GL.syncs[id];if(!sync){GL.recordError(1281);return}GLctx.deleteSync(sync);sync.name=0;GL.syncs[id]=null};var _emscripten_glDeleteSync=_glDeleteSync;var _glDeleteTextures=(n,textures)=>{for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}};var _emscripten_glDeleteTextures=_glDeleteTextures;var _glDeleteTransformFeedbacks=(n,ids)=>{for(var i=0;i>2];var transformFeedback=GL.transformFeedbacks[id];if(!transformFeedback)continue;GLctx.deleteTransformFeedback(transformFeedback);transformFeedback.name=0;GL.transformFeedbacks[id]=null}};var _emscripten_glDeleteTransformFeedbacks=_glDeleteTransformFeedbacks;var _glDeleteVertexArrays=(n,vaos)=>{for(var i=0;i>2];GLctx.deleteVertexArray(GL.vaos[id]);GL.vaos[id]=null}};var _emscripten_glDeleteVertexArrays=_glDeleteVertexArrays;var _glDeleteVertexArraysOES=_glDeleteVertexArrays;var _emscripten_glDeleteVertexArraysOES=_glDeleteVertexArraysOES;var _glDepthFunc=x0=>GLctx.depthFunc(x0);var _emscripten_glDepthFunc=_glDepthFunc;var _glDepthMask=flag=>{GLctx.depthMask(!!flag)};var _emscripten_glDepthMask=_glDepthMask;var _glDepthRangef=(x0,x1)=>GLctx.depthRange(x0,x1);var _emscripten_glDepthRangef=_glDepthRangef;var _glDetachShader=(program,shader)=>{GLctx.detachShader(GL.programs[program],GL.shaders[shader])};var _emscripten_glDetachShader=_glDetachShader;var _glDisable=x0=>GLctx.disable(x0);var _emscripten_glDisable=_glDisable;var _glDisableVertexAttribArray=index=>{GLctx.disableVertexAttribArray(index)};var _emscripten_glDisableVertexAttribArray=_glDisableVertexAttribArray;var _glDrawArrays=(mode,first,count)=>{GLctx.drawArrays(mode,first,count)};var _emscripten_glDrawArrays=_glDrawArrays;var _glDrawArraysInstanced=(mode,first,count,primcount)=>{GLctx.drawArraysInstanced(mode,first,count,primcount)};var _emscripten_glDrawArraysInstanced=_glDrawArraysInstanced;var _glDrawArraysInstancedANGLE=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedANGLE=_glDrawArraysInstancedANGLE;var _glDrawArraysInstancedARB=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedARB=_glDrawArraysInstancedARB;var _glDrawArraysInstancedEXT=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedEXT=_glDrawArraysInstancedEXT;var _glDrawArraysInstancedNV=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedNV=_glDrawArraysInstancedNV;var tempFixedLengthArray=[];var _glDrawBuffers=(n,bufs)=>{var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx.drawBuffers(bufArray)};var _emscripten_glDrawBuffers=_glDrawBuffers;var _glDrawBuffersEXT=_glDrawBuffers;var _emscripten_glDrawBuffersEXT=_glDrawBuffersEXT;var _glDrawBuffersWEBGL=_glDrawBuffers;var _emscripten_glDrawBuffersWEBGL=_glDrawBuffersWEBGL;var _glDrawElements=(mode,count,type,indices)=>{GLctx.drawElements(mode,count,type,indices)};var _emscripten_glDrawElements=_glDrawElements;var _glDrawElementsInstanced=(mode,count,type,indices,primcount)=>{GLctx.drawElementsInstanced(mode,count,type,indices,primcount)};var _emscripten_glDrawElementsInstanced=_glDrawElementsInstanced;var _glDrawElementsInstancedANGLE=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedANGLE=_glDrawElementsInstancedANGLE;var _glDrawElementsInstancedARB=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedARB=_glDrawElementsInstancedARB;var _glDrawElementsInstancedEXT=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedEXT=_glDrawElementsInstancedEXT;var _glDrawElementsInstancedNV=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedNV=_glDrawElementsInstancedNV;var _glDrawRangeElements=(mode,start,end,count,type,indices)=>{_glDrawElements(mode,count,type,indices)};var _emscripten_glDrawRangeElements=_glDrawRangeElements;var _glEnable=x0=>GLctx.enable(x0);var _emscripten_glEnable=_glEnable;var _glEnableVertexAttribArray=index=>{GLctx.enableVertexAttribArray(index)};var _emscripten_glEnableVertexAttribArray=_glEnableVertexAttribArray;var _glEndQuery=x0=>GLctx.endQuery(x0);var _emscripten_glEndQuery=_glEndQuery;var _glEndQueryEXT=target=>{GLctx.disjointTimerQueryExt["endQueryEXT"](target)};var _emscripten_glEndQueryEXT=_glEndQueryEXT;var _glEndTransformFeedback=()=>GLctx.endTransformFeedback();var _emscripten_glEndTransformFeedback=_glEndTransformFeedback;var _glFenceSync=(condition,flags)=>{var sync=GLctx.fenceSync(condition,flags);if(sync){var id=GL.getNewId(GL.syncs);sync.name=id;GL.syncs[id]=sync;return id}return 0};var _emscripten_glFenceSync=_glFenceSync;var _glFinish=()=>GLctx.finish();var _emscripten_glFinish=_glFinish;var _glFlush=()=>GLctx.flush();var _emscripten_glFlush=_glFlush;var _glFramebufferRenderbuffer=(target,attachment,renderbuffertarget,renderbuffer)=>{GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])};var _emscripten_glFramebufferRenderbuffer=_glFramebufferRenderbuffer;var _glFramebufferTexture2D=(target,attachment,textarget,texture,level)=>{GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)};var _emscripten_glFramebufferTexture2D=_glFramebufferTexture2D;var _glFramebufferTextureLayer=(target,attachment,texture,level,layer)=>{GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)};var _emscripten_glFramebufferTextureLayer=_glFramebufferTextureLayer;var _glFrontFace=x0=>GLctx.frontFace(x0);var _emscripten_glFrontFace=_glFrontFace;var _glGenBuffers=(n,buffers)=>{GL.genObject(n,buffers,"createBuffer",GL.buffers)};var _emscripten_glGenBuffers=_glGenBuffers;var _glGenFramebuffers=(n,ids)=>{GL.genObject(n,ids,"createFramebuffer",GL.framebuffers)};var _emscripten_glGenFramebuffers=_glGenFramebuffers;var _glGenQueries=(n,ids)=>{GL.genObject(n,ids,"createQuery",GL.queries)};var _emscripten_glGenQueries=_glGenQueries;var _glGenQueriesEXT=(n,ids)=>{for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}};var _emscripten_glGenQueriesEXT=_glGenQueriesEXT;var _glGenRenderbuffers=(n,renderbuffers)=>{GL.genObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)};var _emscripten_glGenRenderbuffers=_glGenRenderbuffers;var _glGenSamplers=(n,samplers)=>{GL.genObject(n,samplers,"createSampler",GL.samplers)};var _emscripten_glGenSamplers=_glGenSamplers;var _glGenTextures=(n,textures)=>{GL.genObject(n,textures,"createTexture",GL.textures)};var _emscripten_glGenTextures=_glGenTextures;var _glGenTransformFeedbacks=(n,ids)=>{GL.genObject(n,ids,"createTransformFeedback",GL.transformFeedbacks)};var _emscripten_glGenTransformFeedbacks=_glGenTransformFeedbacks;var _glGenVertexArrays=(n,arrays)=>{GL.genObject(n,arrays,"createVertexArray",GL.vaos)};var _emscripten_glGenVertexArrays=_glGenVertexArrays;var _glGenVertexArraysOES=_glGenVertexArrays;var _emscripten_glGenVertexArraysOES=_glGenVertexArraysOES;var _glGenerateMipmap=x0=>GLctx.generateMipmap(x0);var _emscripten_glGenerateMipmap=_glGenerateMipmap;var __glGetActiveAttribOrUniform=(funcName,program,index,bufSize,length,size,type,name)=>{program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}};var _glGetActiveAttrib=(program,index,bufSize,length,size,type,name)=>{__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)};var _emscripten_glGetActiveAttrib=_glGetActiveAttrib;var _glGetActiveUniform=(program,index,bufSize,length,size,type,name)=>{__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)};var _emscripten_glGetActiveUniform=_glGetActiveUniform;var _glGetActiveUniformBlockName=(program,uniformBlockIndex,bufSize,length,uniformBlockName)=>{program=GL.programs[program];var result=GLctx.getActiveUniformBlockName(program,uniformBlockIndex);if(!result)return;if(uniformBlockName&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(result,uniformBlockName,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}};var _emscripten_glGetActiveUniformBlockName=_glGetActiveUniformBlockName;var _glGetActiveUniformBlockiv=(program,uniformBlockIndex,pname,params)=>{if(!params){GL.recordError(1281);return}program=GL.programs[program];if(pname==35393){var name=GLctx.getActiveUniformBlockName(program,uniformBlockIndex);HEAP32[params>>2]=name.length+1;return}var result=GLctx.getActiveUniformBlockParameter(program,uniformBlockIndex,pname);if(result===null)return;if(pname==35395){for(var i=0;i>2]=result[i]}}else{HEAP32[params>>2]=result}};var _emscripten_glGetActiveUniformBlockiv=_glGetActiveUniformBlockiv;var _glGetActiveUniformsiv=(program,uniformCount,uniformIndices,pname,params)=>{if(!params){GL.recordError(1281);return}if(uniformCount>0&&uniformIndices==0){GL.recordError(1281);return}program=GL.programs[program];var ids=[];for(var i=0;i>2])}var result=GLctx.getActiveUniforms(program,ids,pname);if(!result)return;var len=result.length;for(var i=0;i>2]=result[i]}};var _emscripten_glGetActiveUniformsiv=_glGetActiveUniformsiv;var _glGetAttachedShaders=(program,maxCount,count,shaders)=>{var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}};var _emscripten_glGetAttachedShaders=_glGetAttachedShaders;var _glGetAttribLocation=(program,name)=>GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name));var _emscripten_glGetAttribLocation=_glGetAttribLocation;var writeI53ToI64=(ptr,num)=>{HEAPU32[ptr>>2]=num;var lower=HEAPU32[ptr>>2];HEAPU32[ptr+4>>2]=(num-lower)/4294967296};var webglGetExtensions=function $webglGetExtensions(){var exts=getEmscriptenSupportedExtensions(GLctx);exts=exts.concat(exts.map(e=>"GL_"+e));return exts};var emscriptenWebGLGet=(name_,p,type)=>{if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 34814:case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break;case 33309:if(GL.currentContext.version<2){GL.recordError(1282);return}ret=webglGetExtensions().length;break;case 33307:case 33308:if(GL.currentContext.version<2){GL.recordError(1280);return}ret=name_==33307?3:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err(`GL_INVALID_ENUM in glGet${type}v: Unknown object returned from WebGL getParameter(${name_})! (error: ${e})`);return}}break;default:GL.recordError(1280);err(`GL_INVALID_ENUM in glGet${type}v: Native code calling glGet${type}v(${name_}) and it returns ${result} of type ${typeof result}!`);return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p]=ret?1:0;break}};var _glGetBooleanv=(name_,p)=>emscriptenWebGLGet(name_,p,4);var _emscripten_glGetBooleanv=_glGetBooleanv;var _glGetBufferParameteri64v=(target,value,data)=>{if(!data){GL.recordError(1281);return}writeI53ToI64(data,GLctx.getBufferParameter(target,value))};var _emscripten_glGetBufferParameteri64v=_glGetBufferParameteri64v;var _glGetBufferParameteriv=(target,value,data)=>{if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)};var _emscripten_glGetBufferParameteriv=_glGetBufferParameteriv;var _glGetError=()=>{var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error};var _emscripten_glGetError=_glGetError;var _glGetFloatv=(name_,p)=>emscriptenWebGLGet(name_,p,2);var _emscripten_glGetFloatv=_glGetFloatv;var _glGetFragDataLocation=(program,name)=>GLctx.getFragDataLocation(GL.programs[program],UTF8ToString(name));var _emscripten_glGetFragDataLocation=_glGetFragDataLocation;var _glGetFramebufferAttachmentParameteriv=(target,attachment,pname,params)=>{var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result};var _emscripten_glGetFramebufferAttachmentParameteriv=_glGetFramebufferAttachmentParameteriv;var emscriptenWebGLGetIndexed=(target,index,data,type)=>{if(!data){GL.recordError(1281);return}var result=GLctx.getIndexedParameter(target,index);var ret;switch(typeof result){case"boolean":ret=result?1:0;break;case"number":ret=result;break;case"object":if(result===null){switch(target){case 35983:case 35368:ret=0;break;default:{GL.recordError(1280);return}}}else if(result instanceof WebGLBuffer){ret=result.name|0}else{GL.recordError(1280);return}break;default:GL.recordError(1280);return}switch(type){case 1:writeI53ToI64(data,ret);break;case 0:HEAP32[data>>2]=ret;break;case 2:HEAPF32[data>>2]=ret;break;case 4:HEAP8[data]=ret?1:0;break;default:throw"internal emscriptenWebGLGetIndexed() error, bad type: "+type}};var _glGetInteger64i_v=(target,index,data)=>emscriptenWebGLGetIndexed(target,index,data,1);var _emscripten_glGetInteger64i_v=_glGetInteger64i_v;var _glGetInteger64v=(name_,p)=>{emscriptenWebGLGet(name_,p,1)};var _emscripten_glGetInteger64v=_glGetInteger64v;var _glGetIntegeri_v=(target,index,data)=>emscriptenWebGLGetIndexed(target,index,data,0);var _emscripten_glGetIntegeri_v=_glGetIntegeri_v;var _glGetIntegerv=(name_,p)=>emscriptenWebGLGet(name_,p,0);var _emscripten_glGetIntegerv=_glGetIntegerv;var _glGetInternalformativ=(target,internalformat,pname,bufSize,params)=>{if(bufSize<0){GL.recordError(1281);return}if(!params){GL.recordError(1281);return}var ret=GLctx.getInternalformatParameter(target,internalformat,pname);if(ret===null)return;for(var i=0;i>2]=ret[i]}};var _emscripten_glGetInternalformativ=_glGetInternalformativ;var _glGetProgramBinary=(program,bufSize,length,binaryFormat,binary)=>{GL.recordError(1282)};var _emscripten_glGetProgramBinary=_glGetProgramBinary;var _glGetProgramInfoLog=(program,maxLength,length,infoLog)=>{var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _emscripten_glGetProgramInfoLog=_glGetProgramInfoLog;var _glGetProgramiv=(program,pname,p)=>{if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}};var _emscripten_glGetProgramiv=_glGetProgramiv;var _glGetQueryObjecti64vEXT=(id,pname,params)=>{if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;if(GL.currentContext.version<2){param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}else{param=GLctx.getQueryParameter(query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)};var _emscripten_glGetQueryObjecti64vEXT=_glGetQueryObjecti64vEXT;var _glGetQueryObjectivEXT=(id,pname,params)=>{if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret};var _emscripten_glGetQueryObjectivEXT=_glGetQueryObjectivEXT;var _glGetQueryObjectui64vEXT=_glGetQueryObjecti64vEXT;var _emscripten_glGetQueryObjectui64vEXT=_glGetQueryObjectui64vEXT;var _glGetQueryObjectuiv=(id,pname,params)=>{if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.getQueryParameter(query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret};var _emscripten_glGetQueryObjectuiv=_glGetQueryObjectuiv;var _glGetQueryObjectuivEXT=_glGetQueryObjectivEXT;var _emscripten_glGetQueryObjectuivEXT=_glGetQueryObjectuivEXT;var _glGetQueryiv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getQuery(target,pname)};var _emscripten_glGetQueryiv=_glGetQueryiv;var _glGetQueryivEXT=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)};var _emscripten_glGetQueryivEXT=_glGetQueryivEXT;var _glGetRenderbufferParameteriv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)};var _emscripten_glGetRenderbufferParameteriv=_glGetRenderbufferParameteriv;var _glGetSamplerParameterfv=(sampler,pname,params)=>{if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getSamplerParameter(GL.samplers[sampler],pname)};var _emscripten_glGetSamplerParameterfv=_glGetSamplerParameterfv;var _glGetSamplerParameteriv=(sampler,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getSamplerParameter(GL.samplers[sampler],pname)};var _emscripten_glGetSamplerParameteriv=_glGetSamplerParameteriv;var _glGetShaderInfoLog=(shader,maxLength,length,infoLog)=>{var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _emscripten_glGetShaderInfoLog=_glGetShaderInfoLog;var _glGetShaderPrecisionFormat=(shaderType,precisionType,range,precision)=>{var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision};var _emscripten_glGetShaderPrecisionFormat=_glGetShaderPrecisionFormat;var _glGetShaderSource=(shader,bufSize,length,source)=>{var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _emscripten_glGetShaderSource=_glGetShaderSource;var _glGetShaderiv=(shader,pname,p)=>{if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}};var _emscripten_glGetShaderiv=_glGetShaderiv;var _glGetString=name_=>{var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:ret=stringToNewUTF8(webglGetExtensions().join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s?stringToNewUTF8(s):0;break;case 7938:var glVersion=GLctx.getParameter(7938);if(GL.currentContext.version>=2)glVersion=`OpenGL ES 3.0 (${glVersion})`;else{glVersion=`OpenGL ES 2.0 (${glVersion})`}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion=`OpenGL ES GLSL ES ${ver_num[1]} (${glslVersion})`}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret};var _emscripten_glGetString=_glGetString;var _glGetStringi=(name,index)=>{if(GL.currentContext.version<2){GL.recordError(1282);return 0}var stringiCache=GL.stringiCache[name];if(stringiCache){if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index]}switch(name){case 7939:var exts=webglGetExtensions().map(stringToNewUTF8);stringiCache=GL.stringiCache[name]=exts;if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index];default:GL.recordError(1280);return 0}};var _emscripten_glGetStringi=_glGetStringi;var _glGetSynciv=(sync,pname,bufSize,length,values)=>{if(bufSize<0){GL.recordError(1281);return}if(!values){GL.recordError(1281);return}var ret=GLctx.getSyncParameter(GL.syncs[sync],pname);if(ret!==null){HEAP32[values>>2]=ret;if(length)HEAP32[length>>2]=1}};var _emscripten_glGetSynciv=_glGetSynciv;var _glGetTexParameterfv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)};var _emscripten_glGetTexParameterfv=_glGetTexParameterfv;var _glGetTexParameteriv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)};var _emscripten_glGetTexParameteriv=_glGetTexParameteriv;var _glGetTransformFeedbackVarying=(program,index,bufSize,length,size,type,name)=>{program=GL.programs[program];var info=GLctx.getTransformFeedbackVarying(program,index);if(!info)return;if(name&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type};var _emscripten_glGetTransformFeedbackVarying=_glGetTransformFeedbackVarying;var _glGetUniformBlockIndex=(program,uniformBlockName)=>GLctx.getUniformBlockIndex(GL.programs[program],UTF8ToString(uniformBlockName));var _emscripten_glGetUniformBlockIndex=_glGetUniformBlockIndex;var _glGetUniformIndices=(program,uniformCount,uniformNames,uniformIndices)=>{if(!uniformIndices){GL.recordError(1281);return}if(uniformCount>0&&(uniformNames==0||uniformIndices==0)){GL.recordError(1281);return}program=GL.programs[program];var names=[];for(var i=0;i>2]));var result=GLctx.getUniformIndices(program,names);if(!result)return;var len=result.length;for(var i=0;i>2]=result[i]}};var _emscripten_glGetUniformIndices=_glGetUniformIndices;var jstoi_q=str=>parseInt(str);var webglGetLeftBracePos=name=>name.slice(-1)=="]"&&name.lastIndexOf("[");var webglPrepareUniformLocationsBeforeFirstUse=program=>{var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j{name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex{var p=GLctx.currentProgram;if(p){var webglLoc=p.uniformLocsById[location];if(typeof webglLoc=="number"){p.uniformLocsById[location]=webglLoc=GLctx.getUniformLocation(p,p.uniformArrayNamesById[location]+(webglLoc>0?`[${webglLoc}]`:""))}return webglLoc}else{GL.recordError(1282)}};var emscriptenWebGLGetUniform=(program,location,params,type)=>{if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}};var _glGetUniformfv=(program,location,params)=>{emscriptenWebGLGetUniform(program,location,params,2)};var _emscripten_glGetUniformfv=_glGetUniformfv;var _glGetUniformiv=(program,location,params)=>{emscriptenWebGLGetUniform(program,location,params,0)};var _emscripten_glGetUniformiv=_glGetUniformiv;var _glGetUniformuiv=(program,location,params)=>emscriptenWebGLGetUniform(program,location,params,0);var _emscripten_glGetUniformuiv=_glGetUniformuiv;var emscriptenWebGLGetVertexAttrib=(index,pname,params,type)=>{if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}};var _glGetVertexAttribIiv=(index,pname,params)=>{emscriptenWebGLGetVertexAttrib(index,pname,params,0)};var _emscripten_glGetVertexAttribIiv=_glGetVertexAttribIiv;var _glGetVertexAttribIuiv=_glGetVertexAttribIiv;var _emscripten_glGetVertexAttribIuiv=_glGetVertexAttribIuiv;var _glGetVertexAttribPointerv=(index,pname,pointer)=>{if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)};var _emscripten_glGetVertexAttribPointerv=_glGetVertexAttribPointerv;var _glGetVertexAttribfv=(index,pname,params)=>{emscriptenWebGLGetVertexAttrib(index,pname,params,2)};var _emscripten_glGetVertexAttribfv=_glGetVertexAttribfv;var _glGetVertexAttribiv=(index,pname,params)=>{emscriptenWebGLGetVertexAttrib(index,pname,params,5)};var _emscripten_glGetVertexAttribiv=_glGetVertexAttribiv;var _glHint=(x0,x1)=>GLctx.hint(x0,x1);var _emscripten_glHint=_glHint;var _glInvalidateFramebuffer=(target,numAttachments,attachments)=>{var list=tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx.invalidateFramebuffer(target,list)};var _emscripten_glInvalidateFramebuffer=_glInvalidateFramebuffer;var _glInvalidateSubFramebuffer=(target,numAttachments,attachments,x,y,width,height)=>{var list=tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx.invalidateSubFramebuffer(target,list,x,y,width,height)};var _emscripten_glInvalidateSubFramebuffer=_glInvalidateSubFramebuffer;var _glIsBuffer=buffer=>{var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)};var _emscripten_glIsBuffer=_glIsBuffer;var _glIsEnabled=x0=>GLctx.isEnabled(x0);var _emscripten_glIsEnabled=_glIsEnabled;var _glIsFramebuffer=framebuffer=>{var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)};var _emscripten_glIsFramebuffer=_glIsFramebuffer;var _glIsProgram=program=>{program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)};var _emscripten_glIsProgram=_glIsProgram;var _glIsQuery=id=>{var query=GL.queries[id];if(!query)return 0;return GLctx.isQuery(query)};var _emscripten_glIsQuery=_glIsQuery;var _glIsQueryEXT=id=>{var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)};var _emscripten_glIsQueryEXT=_glIsQueryEXT;var _glIsRenderbuffer=renderbuffer=>{var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)};var _emscripten_glIsRenderbuffer=_glIsRenderbuffer;var _glIsSampler=id=>{var sampler=GL.samplers[id];if(!sampler)return 0;return GLctx.isSampler(sampler)};var _emscripten_glIsSampler=_glIsSampler;var _glIsShader=shader=>{var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)};var _emscripten_glIsShader=_glIsShader;var _glIsSync=sync=>GLctx.isSync(GL.syncs[sync]);var _emscripten_glIsSync=_glIsSync;var _glIsTexture=id=>{var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)};var _emscripten_glIsTexture=_glIsTexture;var _glIsTransformFeedback=id=>GLctx.isTransformFeedback(GL.transformFeedbacks[id]);var _emscripten_glIsTransformFeedback=_glIsTransformFeedback;var _glIsVertexArray=array=>{var vao=GL.vaos[array];if(!vao)return 0;return GLctx.isVertexArray(vao)};var _emscripten_glIsVertexArray=_glIsVertexArray;var _glIsVertexArrayOES=_glIsVertexArray;var _emscripten_glIsVertexArrayOES=_glIsVertexArrayOES;var _glLineWidth=x0=>GLctx.lineWidth(x0);var _emscripten_glLineWidth=_glLineWidth;var _glLinkProgram=program=>{program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}};var _emscripten_glLinkProgram=_glLinkProgram;var _glPauseTransformFeedback=()=>GLctx.pauseTransformFeedback();var _emscripten_glPauseTransformFeedback=_glPauseTransformFeedback;var _glPixelStorei=(pname,param)=>{if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)};var _emscripten_glPixelStorei=_glPixelStorei;var _glPolygonOffset=(x0,x1)=>GLctx.polygonOffset(x0,x1);var _emscripten_glPolygonOffset=_glPolygonOffset;var _glProgramBinary=(program,binaryFormat,binary,length)=>{GL.recordError(1280)};var _emscripten_glProgramBinary=_glProgramBinary;var _glProgramParameteri=(program,pname,value)=>{GL.recordError(1280)};var _emscripten_glProgramParameteri=_glProgramParameteri;var _glQueryCounterEXT=(id,target)=>{GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)};var _emscripten_glQueryCounterEXT=_glQueryCounterEXT;var _glReadBuffer=x0=>GLctx.readBuffer(x0);var _emscripten_glReadBuffer=_glReadBuffer;var computeUnpackAlignedImageSize=(width,height,sizePerPixel,alignment)=>{function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize};var colorChannelsInGlTextureFormat=format=>{var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1};var heapObjectForWebGLType=type=>{type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16};var toTypedArrayIndex=(pointer,heap)=>pointer>>>31-Math.clz32(heap.BYTES_PER_ELEMENT);var emscriptenWebGLGetTexPixelData=(type,format,width,height,pixels,internalFormat)=>{var heap=heapObjectForWebGLType(type);var sizePerPixel=colorChannelsInGlTextureFormat(format)*heap.BYTES_PER_ELEMENT;var bytes=computeUnpackAlignedImageSize(width,height,sizePerPixel,GL.unpackAlignment);return heap.subarray(toTypedArrayIndex(pixels,heap),toTypedArrayIndex(pixels+bytes,heap))};var _glReadPixels=(x,y,width,height,format,type,pixels)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);var target=toTypedArrayIndex(pixels,heap);GLctx.readPixels(x,y,width,height,format,type,heap,target)}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)};var _emscripten_glReadPixels=_glReadPixels;var _glReleaseShaderCompiler=()=>{};var _emscripten_glReleaseShaderCompiler=_glReleaseShaderCompiler;var _glRenderbufferStorage=(x0,x1,x2,x3)=>GLctx.renderbufferStorage(x0,x1,x2,x3);var _emscripten_glRenderbufferStorage=_glRenderbufferStorage;var _glRenderbufferStorageMultisample=(x0,x1,x2,x3,x4)=>GLctx.renderbufferStorageMultisample(x0,x1,x2,x3,x4);var _emscripten_glRenderbufferStorageMultisample=_glRenderbufferStorageMultisample;var _glResumeTransformFeedback=()=>GLctx.resumeTransformFeedback();var _emscripten_glResumeTransformFeedback=_glResumeTransformFeedback;var _glSampleCoverage=(value,invert)=>{GLctx.sampleCoverage(value,!!invert)};var _emscripten_glSampleCoverage=_glSampleCoverage;var _glSamplerParameterf=(sampler,pname,param)=>{GLctx.samplerParameterf(GL.samplers[sampler],pname,param)};var _emscripten_glSamplerParameterf=_glSamplerParameterf;var _glSamplerParameterfv=(sampler,pname,params)=>{var param=HEAPF32[params>>2];GLctx.samplerParameterf(GL.samplers[sampler],pname,param)};var _emscripten_glSamplerParameterfv=_glSamplerParameterfv;var _glSamplerParameteri=(sampler,pname,param)=>{GLctx.samplerParameteri(GL.samplers[sampler],pname,param)};var _emscripten_glSamplerParameteri=_glSamplerParameteri;var _glSamplerParameteriv=(sampler,pname,params)=>{var param=HEAP32[params>>2];GLctx.samplerParameteri(GL.samplers[sampler],pname,param)};var _emscripten_glSamplerParameteriv=_glSamplerParameteriv;var _glScissor=(x0,x1,x2,x3)=>GLctx.scissor(x0,x1,x2,x3);var _emscripten_glScissor=_glScissor;var _glShaderBinary=(count,shaders,binaryformat,binary,length)=>{GL.recordError(1280)};var _emscripten_glShaderBinary=_glShaderBinary;var _glShaderSource=(shader,count,string,length)=>{var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)};var _emscripten_glShaderSource=_glShaderSource;var _glStencilFunc=(x0,x1,x2)=>GLctx.stencilFunc(x0,x1,x2);var _emscripten_glStencilFunc=_glStencilFunc;var _glStencilFuncSeparate=(x0,x1,x2,x3)=>GLctx.stencilFuncSeparate(x0,x1,x2,x3);var _emscripten_glStencilFuncSeparate=_glStencilFuncSeparate;var _glStencilMask=x0=>GLctx.stencilMask(x0);var _emscripten_glStencilMask=_glStencilMask;var _glStencilMaskSeparate=(x0,x1)=>GLctx.stencilMaskSeparate(x0,x1);var _emscripten_glStencilMaskSeparate=_glStencilMaskSeparate;var _glStencilOp=(x0,x1,x2)=>GLctx.stencilOp(x0,x1,x2);var _emscripten_glStencilOp=_glStencilOp;var _glStencilOpSeparate=(x0,x1,x2,x3)=>GLctx.stencilOpSeparate(x0,x1,x2,x3);var _emscripten_glStencilOpSeparate=_glStencilOpSeparate;var _glTexImage2D=(target,level,internalFormat,width,height,border,format,type,pixels)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,toTypedArrayIndex(pixels,heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)};var _emscripten_glTexImage2D=_glTexImage2D;var _glTexImage3D=(target,level,internalFormat,width,height,depth,border,format,type,pixels)=>{if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,heap,toTypedArrayIndex(pixels,heap))}else{GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,null)}};var _emscripten_glTexImage3D=_glTexImage3D;var _glTexParameterf=(x0,x1,x2)=>GLctx.texParameterf(x0,x1,x2);var _emscripten_glTexParameterf=_glTexParameterf;var _glTexParameterfv=(target,pname,params)=>{var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)};var _emscripten_glTexParameterfv=_glTexParameterfv;var _glTexParameteri=(x0,x1,x2)=>GLctx.texParameteri(x0,x1,x2);var _emscripten_glTexParameteri=_glTexParameteri;var _glTexParameteriv=(target,pname,params)=>{var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)};var _emscripten_glTexParameteriv=_glTexParameteriv;var _glTexStorage2D=(x0,x1,x2,x3,x4)=>GLctx.texStorage2D(x0,x1,x2,x3,x4);var _emscripten_glTexStorage2D=_glTexStorage2D;var _glTexStorage3D=(x0,x1,x2,x3,x4,x5)=>GLctx.texStorage3D(x0,x1,x2,x3,x4,x5);var _emscripten_glTexStorage3D=_glTexStorage3D;var _glTexSubImage2D=(target,level,xoffset,yoffset,width,height,format,type,pixels)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,heap,toTypedArrayIndex(pixels,heap));return}}var pixelData=pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0):null;GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)};var _emscripten_glTexSubImage2D=_glTexSubImage2D;var _glTexSubImage3D=(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)=>{if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,heap,toTypedArrayIndex(pixels,heap))}else{GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}};var _emscripten_glTexSubImage3D=_glTexSubImage3D;var _glTransformFeedbackVaryings=(program,count,varyings,bufferMode)=>{program=GL.programs[program];var vars=[];for(var i=0;i>2]));GLctx.transformFeedbackVaryings(program,vars,bufferMode)};var _emscripten_glTransformFeedbackVaryings=_glTransformFeedbackVaryings;var _glUniform1f=(location,v0)=>{GLctx.uniform1f(webglGetUniformLocation(location),v0)};var _emscripten_glUniform1f=_glUniform1f;var miniTempWebGLFloatBuffers=[];var _glUniform1fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform1fv(webglGetUniformLocation(location),HEAPF32,value>>2,count);return}if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform1fv=_glUniform1fv;var _glUniform1i=(location,v0)=>{GLctx.uniform1i(webglGetUniformLocation(location),v0)};var _emscripten_glUniform1i=_glUniform1i;var miniTempWebGLIntBuffers=[];var _glUniform1iv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform1iv(webglGetUniformLocation(location),HEAP32,value>>2,count);return}if(count<=288){var view=miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform1iv=_glUniform1iv;var _glUniform1ui=(location,v0)=>{GLctx.uniform1ui(webglGetUniformLocation(location),v0)};var _emscripten_glUniform1ui=_glUniform1ui;var _glUniform1uiv=(location,count,value)=>{count&&GLctx.uniform1uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count)};var _emscripten_glUniform1uiv=_glUniform1uiv;var _glUniform2f=(location,v0,v1)=>{GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)};var _emscripten_glUniform2f=_glUniform2f;var _glUniform2fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform2fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*2);return}if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform2fv=_glUniform2fv;var _glUniform2i=(location,v0,v1)=>{GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)};var _emscripten_glUniform2i=_glUniform2i;var _glUniform2iv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform2iv(webglGetUniformLocation(location),HEAP32,value>>2,count*2);return}if(count<=144){var view=miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform2iv=_glUniform2iv;var _glUniform2ui=(location,v0,v1)=>{GLctx.uniform2ui(webglGetUniformLocation(location),v0,v1)};var _emscripten_glUniform2ui=_glUniform2ui;var _glUniform2uiv=(location,count,value)=>{count&&GLctx.uniform2uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*2)};var _emscripten_glUniform2uiv=_glUniform2uiv;var _glUniform3f=(location,v0,v1,v2)=>{GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)};var _emscripten_glUniform3f=_glUniform3f;var _glUniform3fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform3fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*3);return}if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform3fv=_glUniform3fv;var _glUniform3i=(location,v0,v1,v2)=>{GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)};var _emscripten_glUniform3i=_glUniform3i;var _glUniform3iv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform3iv(webglGetUniformLocation(location),HEAP32,value>>2,count*3);return}if(count<=96){var view=miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform3iv=_glUniform3iv;var _glUniform3ui=(location,v0,v1,v2)=>{GLctx.uniform3ui(webglGetUniformLocation(location),v0,v1,v2)};var _emscripten_glUniform3ui=_glUniform3ui;var _glUniform3uiv=(location,count,value)=>{count&&GLctx.uniform3uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*3)};var _emscripten_glUniform3uiv=_glUniform3uiv;var _glUniform4f=(location,v0,v1,v2,v3)=>{GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)};var _emscripten_glUniform4f=_glUniform4f;var _glUniform4fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform4fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value=value>>2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform4fv=_glUniform4fv;var _glUniform4i=(location,v0,v1,v2,v3)=>{GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)};var _emscripten_glUniform4i=_glUniform4i;var _glUniform4iv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform4iv(webglGetUniformLocation(location),HEAP32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform4iv=_glUniform4iv;var _glUniform4ui=(location,v0,v1,v2,v3)=>{GLctx.uniform4ui(webglGetUniformLocation(location),v0,v1,v2,v3)};var _emscripten_glUniform4ui=_glUniform4ui;var _glUniform4uiv=(location,count,value)=>{count&&GLctx.uniform4uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*4)};var _emscripten_glUniform4uiv=_glUniform4uiv;var _glUniformBlockBinding=(program,uniformBlockIndex,uniformBlockBinding)=>{program=GL.programs[program];GLctx.uniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding)};var _emscripten_glUniformBlockBinding=_glUniformBlockBinding;var _glUniformMatrix2fv=(location,count,transpose,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)};var _emscripten_glUniformMatrix2fv=_glUniformMatrix2fv;var _glUniformMatrix2x3fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix2x3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*6)};var _emscripten_glUniformMatrix2x3fv=_glUniformMatrix2x3fv;var _glUniformMatrix2x4fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix2x4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*8)};var _emscripten_glUniformMatrix2x4fv=_glUniformMatrix2x4fv;var _glUniformMatrix3fv=(location,count,transpose,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*9);return}if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)};var _emscripten_glUniformMatrix3fv=_glUniformMatrix3fv;var _glUniformMatrix3x2fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix3x2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*6)};var _emscripten_glUniformMatrix3x2fv=_glUniformMatrix3x2fv;var _glUniformMatrix3x4fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix3x4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*12)};var _emscripten_glUniformMatrix3x4fv=_glUniformMatrix3x4fv;var _glUniformMatrix4fv=(location,count,transpose,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*16);return}if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value=value>>2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)};var _emscripten_glUniformMatrix4fv=_glUniformMatrix4fv;var _glUniformMatrix4x2fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix4x2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*8)};var _emscripten_glUniformMatrix4x2fv=_glUniformMatrix4x2fv;var _glUniformMatrix4x3fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix4x3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*12)};var _emscripten_glUniformMatrix4x3fv=_glUniformMatrix4x3fv;var _glUseProgram=program=>{program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program};var _emscripten_glUseProgram=_glUseProgram;var _glValidateProgram=program=>{GLctx.validateProgram(GL.programs[program])};var _emscripten_glValidateProgram=_glValidateProgram;var _glVertexAttrib1f=(x0,x1)=>GLctx.vertexAttrib1f(x0,x1);var _emscripten_glVertexAttrib1f=_glVertexAttrib1f;var _glVertexAttrib1fv=(index,v)=>{GLctx.vertexAttrib1f(index,HEAPF32[v>>2])};var _emscripten_glVertexAttrib1fv=_glVertexAttrib1fv;var _glVertexAttrib2f=(x0,x1,x2)=>GLctx.vertexAttrib2f(x0,x1,x2);var _emscripten_glVertexAttrib2f=_glVertexAttrib2f;var _glVertexAttrib2fv=(index,v)=>{GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])};var _emscripten_glVertexAttrib2fv=_glVertexAttrib2fv;var _glVertexAttrib3f=(x0,x1,x2,x3)=>GLctx.vertexAttrib3f(x0,x1,x2,x3);var _emscripten_glVertexAttrib3f=_glVertexAttrib3f;var _glVertexAttrib3fv=(index,v)=>{GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])};var _emscripten_glVertexAttrib3fv=_glVertexAttrib3fv;var _glVertexAttrib4f=(x0,x1,x2,x3,x4)=>GLctx.vertexAttrib4f(x0,x1,x2,x3,x4);var _emscripten_glVertexAttrib4f=_glVertexAttrib4f;var _glVertexAttrib4fv=(index,v)=>{GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])};var _emscripten_glVertexAttrib4fv=_glVertexAttrib4fv;var _glVertexAttribDivisor=(index,divisor)=>{GLctx.vertexAttribDivisor(index,divisor)};var _emscripten_glVertexAttribDivisor=_glVertexAttribDivisor;var _glVertexAttribDivisorANGLE=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorANGLE=_glVertexAttribDivisorANGLE;var _glVertexAttribDivisorARB=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorARB=_glVertexAttribDivisorARB;var _glVertexAttribDivisorEXT=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorEXT=_glVertexAttribDivisorEXT;var _glVertexAttribDivisorNV=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorNV=_glVertexAttribDivisorNV;var _glVertexAttribI4i=(x0,x1,x2,x3,x4)=>GLctx.vertexAttribI4i(x0,x1,x2,x3,x4);var _emscripten_glVertexAttribI4i=_glVertexAttribI4i;var _glVertexAttribI4iv=(index,v)=>{GLctx.vertexAttribI4i(index,HEAP32[v>>2],HEAP32[v+4>>2],HEAP32[v+8>>2],HEAP32[v+12>>2])};var _emscripten_glVertexAttribI4iv=_glVertexAttribI4iv;var _glVertexAttribI4ui=(x0,x1,x2,x3,x4)=>GLctx.vertexAttribI4ui(x0,x1,x2,x3,x4);var _emscripten_glVertexAttribI4ui=_glVertexAttribI4ui;var _glVertexAttribI4uiv=(index,v)=>{GLctx.vertexAttribI4ui(index,HEAPU32[v>>2],HEAPU32[v+4>>2],HEAPU32[v+8>>2],HEAPU32[v+12>>2])};var _emscripten_glVertexAttribI4uiv=_glVertexAttribI4uiv;var _glVertexAttribIPointer=(index,size,type,stride,ptr)=>{GLctx.vertexAttribIPointer(index,size,type,stride,ptr)};var _emscripten_glVertexAttribIPointer=_glVertexAttribIPointer;var _glVertexAttribPointer=(index,size,type,normalized,stride,ptr)=>{GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)};var _emscripten_glVertexAttribPointer=_glVertexAttribPointer;var _glViewport=(x0,x1,x2,x3)=>GLctx.viewport(x0,x1,x2,x3);var _emscripten_glViewport=_glViewport;var _glWaitSync=(sync,flags,timeout_low,timeout_high)=>{var timeout=convertI32PairToI53(timeout_low,timeout_high);GLctx.waitSync(GL.syncs[sync],flags,timeout)};var _emscripten_glWaitSync=_glWaitSync;var _emscripten_has_asyncify=()=>0;var _emscripten_memcpy_js=(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num);var doRequestFullscreen=(target,strategy)=>{if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;if(!target.requestFullscreen&&!target.webkitRequestFullscreen){return-3}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(strategy.deferUntilInEventHandler){JSEvents.deferCall(JSEvents_requestFullscreen,1,[target,strategy]);return 1}return-2}return JSEvents_requestFullscreen(target,strategy)};var _emscripten_request_fullscreen_strategy=(target,deferUntilInEventHandler,fullscreenStrategy)=>{var strategy={scaleMode:HEAP32[fullscreenStrategy>>2],canvasResolutionScaleMode:HEAP32[fullscreenStrategy+4>>2],filteringMode:HEAP32[fullscreenStrategy+8>>2],deferUntilInEventHandler:deferUntilInEventHandler,canvasResizedCallback:HEAP32[fullscreenStrategy+12>>2],canvasResizedCallbackUserData:HEAP32[fullscreenStrategy+16>>2]};return doRequestFullscreen(target,strategy)};var _emscripten_request_pointerlock=(target,deferUntilInEventHandler)=>{target=findEventTarget(target);if(!target)return-4;if(!target.requestPointerLock){return-1}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(deferUntilInEventHandler){JSEvents.deferCall(requestPointerLock,2,[target]);return 1}return-2}return requestPointerLock(target)};var abortOnCannotGrowMemory=requestedSize=>{abort("OOM")};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;abortOnCannotGrowMemory(requestedSize)};var _emscripten_sample_gamepad_data=()=>{try{if(navigator.getGamepads)return(JSEvents.lastGamepadState=navigator.getGamepads())?0:-1}catch(e){navigator.getGamepads=null}return-1};var registerBeforeUnloadEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString)=>{var beforeUnloadEventHandlerFunc=(e=event)=>{var confirmationMessage=getWasmTableEntry(callbackfunc)(eventTypeId,0,userData);if(confirmationMessage){confirmationMessage=UTF8ToString(confirmationMessage)}if(confirmationMessage){e.preventDefault();e.returnValue=confirmationMessage;return confirmationMessage}};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:beforeUnloadEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_beforeunload_callback_on_thread=(userData,callbackfunc,targetThread)=>{if(typeof onbeforeunload=="undefined")return-1;if(targetThread!==1)return-5;return registerBeforeUnloadEventCallback(2,userData,true,callbackfunc,28,"beforeunload")};var registerFocusEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.focusEvent)JSEvents.focusEvent=_malloc(256);var focusEventHandlerFunc=(e=event)=>{var nodeName=JSEvents.getNodeNameForTarget(e.target);var id=e.target.id?e.target.id:"";var focusEvent=JSEvents.focusEvent;stringToUTF8(nodeName,focusEvent+0,128);stringToUTF8(id,focusEvent+128,128);if(getWasmTableEntry(callbackfunc)(eventTypeId,focusEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:focusEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_blur_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,"blur",targetThread);var _emscripten_set_element_css_size=(target,width,height)=>{target=findEventTarget(target);if(!target)return-4;target.style.width=width+"px";target.style.height=height+"px";return 0};var _emscripten_set_focus_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,"focus",targetThread);var fillFullscreenChangeEventData=eventStruct=>{var fullscreenElement=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;var isFullscreen=!!fullscreenElement;HEAP32[eventStruct>>2]=isFullscreen;HEAP32[eventStruct+4>>2]=JSEvents.fullscreenEnabled();var reportedElement=isFullscreen?fullscreenElement:JSEvents.previousFullscreenElement;var nodeName=JSEvents.getNodeNameForTarget(reportedElement);var id=reportedElement?.id||"";stringToUTF8(nodeName,eventStruct+8,128);stringToUTF8(id,eventStruct+136,128);HEAP32[eventStruct+264>>2]=reportedElement?reportedElement.clientWidth:0;HEAP32[eventStruct+268>>2]=reportedElement?reportedElement.clientHeight:0;HEAP32[eventStruct+272>>2]=screen.width;HEAP32[eventStruct+276>>2]=screen.height;if(isFullscreen){JSEvents.previousFullscreenElement=fullscreenElement}};var registerFullscreenChangeEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.fullscreenChangeEvent)JSEvents.fullscreenChangeEvent=_malloc(280);var fullscreenChangeEventhandlerFunc=(e=event)=>{var fullscreenChangeEvent=JSEvents.fullscreenChangeEvent;fillFullscreenChangeEventData(fullscreenChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,fullscreenChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:fullscreenChangeEventhandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_fullscreenchange_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>{if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"webkitfullscreenchange",targetThread);return registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"fullscreenchange",targetThread)};var registerGamepadEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=(e=event)=>{var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(getWasmTableEntry(callbackfunc)(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_gamepadconnected_callback_on_thread=(userData,useCapture,callbackfunc,targetThread)=>{if(_emscripten_sample_gamepad_data())return-1;return registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread)};var _emscripten_set_gamepaddisconnected_callback_on_thread=(userData,useCapture,callbackfunc,targetThread)=>{if(_emscripten_sample_gamepad_data())return-1;return registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread)};var registerKeyEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(176);var keyEventHandlerFunc=e=>{var keyEventData=JSEvents.keyEvent;HEAPF64[keyEventData>>3]=e.timeStamp;var idx=keyEventData>>2;HEAP32[idx+2]=e.location;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;HEAP32[idx+7]=e.repeat;HEAP32[idx+8]=e.charCode;HEAP32[idx+9]=e.keyCode;HEAP32[idx+10]=e.which;stringToUTF8(e.key||"",keyEventData+44,32);stringToUTF8(e.code||"",keyEventData+76,32);stringToUTF8(e.char||"",keyEventData+108,32);stringToUTF8(e.locale||"",keyEventData+140,32);if(getWasmTableEntry(callbackfunc)(eventTypeId,keyEventData,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:keyEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_keydown_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread);var _emscripten_set_keypress_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerKeyEventCallback(target,userData,useCapture,callbackfunc,1,"keypress",targetThread);var _emscripten_set_keyup_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread);var _emscripten_set_main_loop=(func,fps,simulateInfiniteLoop)=>{var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)};var fillMouseEventData=(eventStruct,e,target)=>{HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-(rect.left|0);HEAP32[idx+14]=e.clientY-(rect.top|0)};var registerMouseEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=(e=event)=>{fillMouseEventData(JSEvents.mouseEvent,e,target);if(getWasmTableEntry(callbackfunc)(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_mousedown_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread);var _emscripten_set_mouseenter_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,33,"mouseenter",targetThread);var _emscripten_set_mouseleave_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,34,"mouseleave",targetThread);var _emscripten_set_mousemove_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread);var _emscripten_set_mouseup_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",targetThread);var fillPointerlockChangeEventData=eventStruct=>{var pointerLockElement=document.pointerLockElement||document.mozPointerLockElement||document.webkitPointerLockElement||document.msPointerLockElement;var isPointerlocked=!!pointerLockElement;HEAP32[eventStruct>>2]=isPointerlocked;var nodeName=JSEvents.getNodeNameForTarget(pointerLockElement);var id=pointerLockElement?.id||"";stringToUTF8(nodeName,eventStruct+4,128);stringToUTF8(id,eventStruct+132,128)};var registerPointerlockChangeEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.pointerlockChangeEvent)JSEvents.pointerlockChangeEvent=_malloc(260);var pointerlockChangeEventHandlerFunc=(e=event)=>{var pointerlockChangeEvent=JSEvents.pointerlockChangeEvent;fillPointerlockChangeEventData(pointerlockChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,pointerlockChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:pointerlockChangeEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_pointerlockchange_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>{if(!document||!document.body||!document.body.requestPointerLock&&!document.body.mozRequestPointerLock&&!document.body.webkitRequestPointerLock&&!document.body.msRequestPointerLock){return-1}target=findEventTarget(target);if(!target)return-4;registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"mozpointerlockchange",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"webkitpointerlockchange",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"mspointerlockchange",targetThread);return registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"pointerlockchange",targetThread)};var registerUiEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=(e=event)=>{if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=0;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset|0;HEAP32[uiEvent+32>>2]=pageYOffset|0;if(getWasmTableEntry(callbackfunc)(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_resize_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);var registerTouchEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=e=>{var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-(targetRect.left|0);HEAP32[idx+10]=t.clientY-(targetRect.top|0);idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(getWasmTableEntry(callbackfunc)(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_touchcancel_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);var _emscripten_set_touchend_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);var _emscripten_set_touchmove_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);var _emscripten_set_touchstart_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);var fillVisibilityChangeEventData=eventStruct=>{var visibilityStates=["hidden","visible","prerender","unloaded"];var visibilityState=visibilityStates.indexOf(document.visibilityState);HEAP32[eventStruct>>2]=document.hidden;HEAP32[eventStruct+4>>2]=visibilityState};var registerVisibilityChangeEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.visibilityChangeEvent)JSEvents.visibilityChangeEvent=_malloc(8);var visibilityChangeEventHandlerFunc=(e=event)=>{var visibilityChangeEvent=JSEvents.visibilityChangeEvent;fillVisibilityChangeEventData(visibilityChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,visibilityChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:visibilityChangeEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_visibilitychange_callback_on_thread=(userData,useCapture,callbackfunc,targetThread)=>{if(!specialHTMLTargets[1]){return-4}return registerVisibilityChangeEventCallback(specialHTMLTargets[1],userData,useCapture,callbackfunc,21,"visibilitychange",targetThread)};var registerWheelEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=(e=event)=>{var wheelEvent=JSEvents.wheelEvent;fillMouseEventData(wheelEvent,e,target);HEAPF64[wheelEvent+72>>3]=e["deltaX"];HEAPF64[wheelEvent+80>>3]=e["deltaY"];HEAPF64[wheelEvent+88>>3]=e["deltaZ"];HEAP32[wheelEvent+96>>2]=e["deltaMode"];if(getWasmTableEntry(callbackfunc)(eventTypeId,wheelEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:wheelHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_wheel_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>{target=findEventTarget(target);if(!target)return-4;if(typeof target.onwheel!="undefined"){return registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread)}else{return-1}};var _emscripten_set_window_title=title=>document.title=UTF8ToString(title);var _emscripten_sleep=()=>{throw"Please compile your program with async support in order to use asynchronous operations like emscripten_sleep"};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>2]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!=="undefined"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var arraySum=(array,index)=>{var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum};var MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];var addDays=(date,days)=>{var newDate=new Date(date.getTime());while(days>0){var leap=isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var _strftime=(s,maxsize,format,tm)=>{var tm_zone=HEAPU32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}return thisDate.getFullYear()}return thisDate.getFullYear()-1}var EXPANSION_RULES_2={"%a":date=>WEEKDAYS[date.tm_wday].substring(0,3),"%A":date=>WEEKDAYS[date.tm_wday],"%b":date=>MONTHS[date.tm_mon].substring(0,3),"%B":date=>MONTHS[date.tm_mon],"%C":date=>{var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":date=>leadingNulls(date.tm_mday,2),"%e":date=>leadingSomething(date.tm_mday,2," "),"%g":date=>getWeekBasedYear(date).toString().substring(2),"%G":getWeekBasedYear,"%H":date=>leadingNulls(date.tm_hour,2),"%I":date=>{var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":date=>leadingNulls(date.tm_mday+arraySum(isLeapYear(date.tm_year+1900)?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR,date.tm_mon-1),3),"%m":date=>leadingNulls(date.tm_mon+1,2),"%M":date=>leadingNulls(date.tm_min,2),"%n":()=>"\n","%p":date=>{if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":date=>leadingNulls(date.tm_sec,2),"%t":()=>"\t","%u":date=>date.tm_wday||7,"%U":date=>{var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":date=>{var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":date=>date.tm_wday,"%W":date=>{var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":date=>(date.tm_year+1900).toString().substring(2),"%Y":date=>date.tm_year+1900,"%z":date=>{var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":date=>date.tm_zone,"%%":()=>"%"};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1};var _strftime_l=(s,maxsize,format,tm,loc)=>_strftime(s,maxsize,format,tm);var listenOnce=(object,event,func)=>{object.addEventListener(event,func,{"once":true})};var autoResumeAudioContext=(ctx,elements)=>{if(!elements){elements=[document,document.getElementById("canvas")]}["keydown","mousedown","touchstart"].forEach(event=>{elements.forEach(element=>{if(element){listenOnce(element,event,()=>{if(ctx.state==="suspended")ctx.resume()})}})})};var dynCallLegacy=(sig,ptr,args)=>{var f=Module["dynCall_"+sig];return f(ptr,...args)};var dynCall=(sig,ptr,args=[])=>{if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr)(...args);return rtn};FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["requestFullscreen"]=Browser.requestFullscreen;Module["requestAnimationFrame"]=Browser.requestAnimationFrame;Module["setCanvasSize"]=Browser.setCanvasSize;Module["pauseMainLoop"]=Browser.mainLoop.pause;Module["resumeMainLoop"]=Browser.mainLoop.resume;Module["getUserMedia"]=Browser.getUserMedia;Module["createContext"]=Browser.createContext;var preloadedImages={};var preloadedAudios={};var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){miniTempWebGLIntBuffers[i]=miniTempWebGLIntBuffersStorage.subarray(0,i+1)}var wasmImports={p:___cxa_begin_catch,u:___cxa_end_catch,a:___cxa_find_matching_catch_2,g:___cxa_find_matching_catch_3,G:___cxa_rethrow,n:___cxa_throw,ab:___cxa_uncaught_exceptions,b:___resumeException,ga:___syscall_fcntl64,gb:___syscall_ioctl,hb:___syscall_openat,Dd:__emscripten_fs_load_embedded_files,ib:__emscripten_get_now_is_monotonic,B:_abort,Wa:_eglBindAPI,fb:_eglChooseConfig,Na:_eglCreateContext,Pa:_eglCreateWindowSurface,Oa:_eglDestroyContext,Qa:_eglDestroySurface,nb:_eglGetConfigAttrib,aa:_eglGetDisplay,Ma:_eglGetError,Xa:_eglInitialize,Ra:_eglMakeCurrent,La:_eglQueryString,Sa:_eglSwapBuffers,Ta:_eglSwapInterval,$a:_eglTerminate,Va:_eglWaitGL,Ua:_eglWaitNative,Pc:_emscripten_asm_const_int,o:_emscripten_asm_const_int_sync_on_main_thread,ma:_emscripten_asm_const_ptr_sync_on_main_thread,na:_emscripten_cancel_main_loop,ha:_emscripten_date_now,Ga:_emscripten_exit_fullscreen,Ja:_emscripten_exit_pointerlock,sd:_emscripten_force_exit,x:_emscripten_get_device_pixel_ratio,t:_emscripten_get_element_css_size,ka:_emscripten_get_gamepad_status,C:_emscripten_get_now,uc:_emscripten_get_num_gamepads,Ka:_emscripten_get_screen_size,$f:_emscripten_glActiveTexture,_f:_emscripten_glAttachShader,ad:_emscripten_glBeginQuery,Ca:_emscripten_glBeginQueryEXT,Ic:_emscripten_glBeginTransformFeedback,Zf:_emscripten_glBindAttribLocation,Yf:_emscripten_glBindBuffer,Fc:_emscripten_glBindBufferBase,Gc:_emscripten_glBindBufferRange,Xf:_emscripten_glBindFramebuffer,Wf:_emscripten_glBindRenderbuffer,Mb:_emscripten_glBindSampler,Vf:_emscripten_glBindTexture,Eb:_emscripten_glBindTransformFeedback,Nc:_emscripten_glBindVertexArray,ua:_emscripten_glBindVertexArrayOES,Uf:_emscripten_glBlendColor,Tf:_emscripten_glBlendEquation,Sf:_emscripten_glBlendEquationSeparate,Rf:_emscripten_glBlendFunc,Qf:_emscripten_glBlendFuncSeparate,Rc:_emscripten_glBlitFramebuffer,Pf:_emscripten_glBufferData,Of:_emscripten_glBufferSubData,Nf:_emscripten_glCheckFramebufferStatus,Mf:_emscripten_glClear,hc:_emscripten_glClearBufferfi,ic:_emscripten_glClearBufferfv,kc:_emscripten_glClearBufferiv,jc:_emscripten_glClearBufferuiv,Lf:_emscripten_glClearColor,Kf:_emscripten_glClearDepthf,Jf:_emscripten_glClearStencil,Vb:_emscripten_glClientWaitSync,If:_emscripten_glColorMask,Hf:_emscripten_glCompileShader,Gf:_emscripten_glCompressedTexImage2D,fd:_emscripten_glCompressedTexImage3D,Ff:_emscripten_glCompressedTexSubImage2D,ed:_emscripten_glCompressedTexSubImage3D,fc:_emscripten_glCopyBufferSubData,Ef:_emscripten_glCopyTexImage2D,Df:_emscripten_glCopyTexSubImage2D,gd:_emscripten_glCopyTexSubImage3D,Cf:_emscripten_glCreateProgram,Bf:_emscripten_glCreateShader,Af:_emscripten_glCullFace,zf:_emscripten_glDeleteBuffers,yf:_emscripten_glDeleteFramebuffers,xf:_emscripten_glDeleteProgram,cd:_emscripten_glDeleteQueries,Ea:_emscripten_glDeleteQueriesEXT,wf:_emscripten_glDeleteRenderbuffers,Ob:_emscripten_glDeleteSamplers,vf:_emscripten_glDeleteShader,Wb:_emscripten_glDeleteSync,uf:_emscripten_glDeleteTextures,Db:_emscripten_glDeleteTransformFeedbacks,Mc:_emscripten_glDeleteVertexArrays,ta:_emscripten_glDeleteVertexArraysOES,tf:_emscripten_glDepthFunc,sf:_emscripten_glDepthMask,rf:_emscripten_glDepthRangef,qf:_emscripten_glDetachShader,pf:_emscripten_glDisable,of:_emscripten_glDisableVertexAttribArray,nf:_emscripten_glDrawArrays,_b:_emscripten_glDrawArraysInstanced,pa:_emscripten_glDrawArraysInstancedANGLE,mb:_emscripten_glDrawArraysInstancedARB,nd:_emscripten_glDrawArraysInstancedEXT,ob:_emscripten_glDrawArraysInstancedNV,Yc:_emscripten_glDrawBuffers,ld:_emscripten_glDrawBuffersEXT,qa:_emscripten_glDrawBuffersWEBGL,mf:_emscripten_glDrawElements,Zb:_emscripten_glDrawElementsInstanced,oa:_emscripten_glDrawElementsInstancedANGLE,kb:_emscripten_glDrawElementsInstancedARB,lb:_emscripten_glDrawElementsInstancedEXT,md:_emscripten_glDrawElementsInstancedNV,jd:_emscripten_glDrawRangeElements,lf:_emscripten_glEnable,kf:_emscripten_glEnableVertexAttribArray,$c:_emscripten_glEndQuery,Ba:_emscripten_glEndQueryEXT,Hc:_emscripten_glEndTransformFeedback,Yb:_emscripten_glFenceSync,jf:_emscripten_glFinish,hf:_emscripten_glFlush,gf:_emscripten_glFramebufferRenderbuffer,ff:_emscripten_glFramebufferTexture2D,Oc:_emscripten_glFramebufferTextureLayer,ef:_emscripten_glFrontFace,df:_emscripten_glGenBuffers,bf:_emscripten_glGenFramebuffers,dd:_emscripten_glGenQueries,Fa:_emscripten_glGenQueriesEXT,af:_emscripten_glGenRenderbuffers,Pb:_emscripten_glGenSamplers,$e:_emscripten_glGenTextures,Cb:_emscripten_glGenTransformFeedbacks,Lc:_emscripten_glGenVertexArrays,sa:_emscripten_glGenVertexArraysOES,cf:_emscripten_glGenerateMipmap,_e:_emscripten_glGetActiveAttrib,Ze:_emscripten_glGetActiveUniform,ac:_emscripten_glGetActiveUniformBlockName,bc:_emscripten_glGetActiveUniformBlockiv,dc:_emscripten_glGetActiveUniformsiv,Ye:_emscripten_glGetAttachedShaders,Xe:_emscripten_glGetAttribLocation,We:_emscripten_glGetBooleanv,Qb:_emscripten_glGetBufferParameteri64v,Ue:_emscripten_glGetBufferParameteriv,Te:_emscripten_glGetError,Se:_emscripten_glGetFloatv,tc:_emscripten_glGetFragDataLocation,Re:_emscripten_glGetFramebufferAttachmentParameteriv,Rb:_emscripten_glGetInteger64i_v,Tb:_emscripten_glGetInteger64v,Jc:_emscripten_glGetIntegeri_v,Qe:_emscripten_glGetIntegerv,rb:_emscripten_glGetInternalformativ,yb:_emscripten_glGetProgramBinary,Oe:_emscripten_glGetProgramInfoLog,Pe:_emscripten_glGetProgramiv,wa:_emscripten_glGetQueryObjecti64vEXT,ya:_emscripten_glGetQueryObjectivEXT,va:_emscripten_glGetQueryObjectui64vEXT,Zc:_emscripten_glGetQueryObjectuiv,xa:_emscripten_glGetQueryObjectuivEXT,_c:_emscripten_glGetQueryiv,za:_emscripten_glGetQueryivEXT,Ne:_emscripten_glGetRenderbufferParameteriv,Gb:_emscripten_glGetSamplerParameterfv,Hb:_emscripten_glGetSamplerParameteriv,Le:_emscripten_glGetShaderInfoLog,Je:_emscripten_glGetShaderPrecisionFormat,Ie:_emscripten_glGetShaderSource,Me:_emscripten_glGetShaderiv,He:_emscripten_glGetString,gc:_emscripten_glGetStringi,Sb:_emscripten_glGetSynciv,Ge:_emscripten_glGetTexParameterfv,Fe:_emscripten_glGetTexParameteriv,Dc:_emscripten_glGetTransformFeedbackVarying,cc:_emscripten_glGetUniformBlockIndex,ec:_emscripten_glGetUniformIndices,Ce:_emscripten_glGetUniformLocation,Ee:_emscripten_glGetUniformfv,De:_emscripten_glGetUniformiv,vc:_emscripten_glGetUniformuiv,Bc:_emscripten_glGetVertexAttribIiv,Ac:_emscripten_glGetVertexAttribIuiv,ze:_emscripten_glGetVertexAttribPointerv,Be:_emscripten_glGetVertexAttribfv,Ae:_emscripten_glGetVertexAttribiv,ye:_emscripten_glHint,vb:_emscripten_glInvalidateFramebuffer,ub:_emscripten_glInvalidateSubFramebuffer,xe:_emscripten_glIsBuffer,we:_emscripten_glIsEnabled,ve:_emscripten_glIsFramebuffer,ue:_emscripten_glIsProgram,bd:_emscripten_glIsQuery,Da:_emscripten_glIsQueryEXT,te:_emscripten_glIsRenderbuffer,Nb:_emscripten_glIsSampler,se:_emscripten_glIsShader,Xb:_emscripten_glIsSync,re:_emscripten_glIsTexture,Bb:_emscripten_glIsTransformFeedback,Kc:_emscripten_glIsVertexArray,ra:_emscripten_glIsVertexArrayOES,qe:_emscripten_glLineWidth,pe:_emscripten_glLinkProgram,Ab:_emscripten_glPauseTransformFeedback,oe:_emscripten_glPixelStorei,ne:_emscripten_glPolygonOffset,xb:_emscripten_glProgramBinary,wb:_emscripten_glProgramParameteri,Aa:_emscripten_glQueryCounterEXT,kd:_emscripten_glReadBuffer,me:_emscripten_glReadPixels,le:_emscripten_glReleaseShaderCompiler,ke:_emscripten_glRenderbufferStorage,Qc:_emscripten_glRenderbufferStorageMultisample,zb:_emscripten_glResumeTransformFeedback,je:_emscripten_glSampleCoverage,Jb:_emscripten_glSamplerParameterf,Ib:_emscripten_glSamplerParameterfv,Lb:_emscripten_glSamplerParameteri,Kb:_emscripten_glSamplerParameteriv,ie:_emscripten_glScissor,he:_emscripten_glShaderBinary,ge:_emscripten_glShaderSource,fe:_emscripten_glStencilFunc,ee:_emscripten_glStencilFuncSeparate,de:_emscripten_glStencilMask,ce:_emscripten_glStencilMaskSeparate,be:_emscripten_glStencilOp,ae:_emscripten_glStencilOpSeparate,$d:_emscripten_glTexImage2D,id:_emscripten_glTexImage3D,_d:_emscripten_glTexParameterf,Zd:_emscripten_glTexParameterfv,Yd:_emscripten_glTexParameteri,Xd:_emscripten_glTexParameteriv,tb:_emscripten_glTexStorage2D,sb:_emscripten_glTexStorage3D,Wd:_emscripten_glTexSubImage2D,hd:_emscripten_glTexSubImage3D,Ec:_emscripten_glTransformFeedbackVaryings,Vd:_emscripten_glUniform1f,Ud:_emscripten_glUniform1fv,Td:_emscripten_glUniform1i,Sd:_emscripten_glUniform1iv,sc:_emscripten_glUniform1ui,oc:_emscripten_glUniform1uiv,Rd:_emscripten_glUniform2f,Qd:_emscripten_glUniform2fv,Pd:_emscripten_glUniform2i,Od:_emscripten_glUniform2iv,rc:_emscripten_glUniform2ui,nc:_emscripten_glUniform2uiv,Nd:_emscripten_glUniform3f,Md:_emscripten_glUniform3fv,Ld:_emscripten_glUniform3i,Kd:_emscripten_glUniform3iv,qc:_emscripten_glUniform3ui,mc:_emscripten_glUniform3uiv,Jd:_emscripten_glUniform4f,Id:_emscripten_glUniform4fv,Hd:_emscripten_glUniform4i,Gd:_emscripten_glUniform4iv,pc:_emscripten_glUniform4ui,lc:_emscripten_glUniform4uiv,$b:_emscripten_glUniformBlockBinding,Fd:_emscripten_glUniformMatrix2fv,Xc:_emscripten_glUniformMatrix2x3fv,Vc:_emscripten_glUniformMatrix2x4fv,Ed:_emscripten_glUniformMatrix3fv,Wc:_emscripten_glUniformMatrix3x2fv,Tc:_emscripten_glUniformMatrix3x4fv,Cd:_emscripten_glUniformMatrix4fv,Uc:_emscripten_glUniformMatrix4x2fv,Sc:_emscripten_glUniformMatrix4x3fv,Bd:_emscripten_glUseProgram,Ad:_emscripten_glValidateProgram,zd:_emscripten_glVertexAttrib1f,yd:_emscripten_glVertexAttrib1fv,xd:_emscripten_glVertexAttrib2f,wd:_emscripten_glVertexAttrib2fv,vd:_emscripten_glVertexAttrib3f,ud:_emscripten_glVertexAttrib3fv,td:_emscripten_glVertexAttrib4f,rd:_emscripten_glVertexAttrib4fv,Fb:_emscripten_glVertexAttribDivisor,ag:_emscripten_glVertexAttribDivisorANGLE,pb:_emscripten_glVertexAttribDivisorARB,od:_emscripten_glVertexAttribDivisorEXT,qb:_emscripten_glVertexAttribDivisorNV,zc:_emscripten_glVertexAttribI4i,xc:_emscripten_glVertexAttribI4iv,yc:_emscripten_glVertexAttribI4ui,wc:_emscripten_glVertexAttribI4uiv,Cc:_emscripten_glVertexAttribIPointer,qd:_emscripten_glVertexAttribPointer,pd:_emscripten_glViewport,Ub:_emscripten_glWaitSync,E:_emscripten_has_asyncify,jb:_emscripten_memcpy_js,Ha:_emscripten_request_fullscreen_strategy,$:_emscripten_request_pointerlock,bb:_emscripten_resize_heap,la:_emscripten_sample_gamepad_data,H:_emscripten_set_beforeunload_callback_on_thread,T:_emscripten_set_blur_callback_on_thread,w:_emscripten_set_canvas_element_size,A:_emscripten_set_element_css_size,U:_emscripten_set_focus_callback_on_thread,K:_emscripten_set_fullscreenchange_callback_on_thread,ja:_emscripten_set_gamepadconnected_callback_on_thread,ia:_emscripten_set_gamepaddisconnected_callback_on_thread,N:_emscripten_set_keydown_callback_on_thread,L:_emscripten_set_keypress_callback_on_thread,M:_emscripten_set_keyup_callback_on_thread,Ke:_emscripten_set_main_loop,Z:_emscripten_set_mousedown_callback_on_thread,X:_emscripten_set_mouseenter_callback_on_thread,W:_emscripten_set_mouseleave_callback_on_thread,_:_emscripten_set_mousemove_callback_on_thread,Y:_emscripten_set_mouseup_callback_on_thread,O:_emscripten_set_pointerlockchange_callback_on_thread,J:_emscripten_set_resize_callback_on_thread,P:_emscripten_set_touchcancel_callback_on_thread,R:_emscripten_set_touchend_callback_on_thread,Q:_emscripten_set_touchmove_callback_on_thread,S:_emscripten_set_touchstart_callback_on_thread,I:_emscripten_set_visibilitychange_callback_on_thread,V:_emscripten_set_wheel_callback_on_thread,Ia:_emscripten_set_window_title,D:_emscripten_sleep,cb:_environ_get,db:_environ_sizes_get,ea:_fd_close,eb:_fd_read,Za:_fd_seek,fa:_fd_write,ba:invoke_diii,ca:invoke_fiii,h:invoke_i,c:invoke_ii,d:invoke_iii,i:invoke_iiii,k:invoke_iiiii,m:invoke_iiiiii,s:invoke_iiiiiii,da:invoke_iiiiiiii,z:invoke_iiiiiiiiiiii,Ya:invoke_jiiii,j:invoke_v,l:invoke_vi,e:invoke_vii,f:invoke_viii,r:invoke_viiii,F:invoke_viiiii,Ve:invoke_viiiiii,q:invoke_viiiiiii,v:invoke_viiiiiiiiii,y:invoke_viiiiiiiiiiiiiii,_a:_strftime_l};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["cg"])();var ___cxa_free_exception=a0=>(___cxa_free_exception=wasmExports["__cxa_free_exception"])(a0);var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["eg"])(a0,a1);var _malloc=a0=>(_malloc=wasmExports["fg"])(a0);var _setThrew=(a0,a1)=>(_setThrew=wasmExports["gg"])(a0,a1);var setTempRet0=a0=>(setTempRet0=wasmExports["hg"])(a0);var stackSave=()=>(stackSave=wasmExports["ig"])();var stackRestore=a0=>(stackRestore=wasmExports["jg"])(a0);var stackAlloc=a0=>(stackAlloc=wasmExports["kg"])(a0);var ___cxa_decrement_exception_refcount=a0=>(___cxa_decrement_exception_refcount=wasmExports["lg"])(a0);var ___cxa_increment_exception_refcount=a0=>(___cxa_increment_exception_refcount=wasmExports["mg"])(a0);var ___cxa_can_catch=(a0,a1,a2)=>(___cxa_can_catch=wasmExports["ng"])(a0,a1,a2);var ___cxa_is_pointer_type=a0=>(___cxa_is_pointer_type=wasmExports["og"])(a0);var dynCall_jiji=Module["dynCall_jiji"]=(a0,a1,a2,a3,a4)=>(dynCall_jiji=Module["dynCall_jiji"]=wasmExports["pg"])(a0,a1,a2,a3,a4);var dynCall_ji=Module["dynCall_ji"]=(a0,a1)=>(dynCall_ji=Module["dynCall_ji"]=wasmExports["qg"])(a0,a1);var dynCall_viijii=Module["dynCall_viijii"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_viijii=Module["dynCall_viijii"]=wasmExports["rg"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_jiiii=Module["dynCall_jiiii"]=(a0,a1,a2,a3,a4)=>(dynCall_jiiii=Module["dynCall_jiiii"]=wasmExports["sg"])(a0,a1,a2,a3,a4);var dynCall_iiiiij=Module["dynCall_iiiiij"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_iiiiij=Module["dynCall_iiiiij"]=wasmExports["tg"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=wasmExports["ug"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=wasmExports["vg"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);var ___emscripten_embedded_file_data=Module["___emscripten_embedded_file_data"]=399384;function invoke_ii(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{getWasmTableEntry(index)()}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return getWasmTableEntry(index)()}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_fiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_unlink"]=FS.unlink;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args=[]){var entryFunction=_main;args.unshift(thisProgram);var argc=args.length;var argv=stackAlloc((argc+1)*4);var argv_ptr=argv;args.forEach(arg=>{HEAPU32[argv_ptr>>2]=stringToUTF8OnStack(arg);argv_ptr+=4});HEAPU32[argv_ptr>>2]=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(args=arguments_){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); +var Module=typeof Module!="undefined"?Module:{};var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)onerror(err);else onload(binary?data.buffer:data)})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module}process.on("uncaughtException",ex=>{if(ex!=="unwind"&&!(ex instanceof ExitStatus)&&!(ex.context instanceof ExitStatus)){throw ex}});quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");var wasmBinaryFile;wasmBinaryFile="eulamadness.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(binaryFile)){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(!response["ok"]){throw`failed to load wasm binary file at '${binaryFile}'`}return response["arrayBuffer"]()}).catch(()=>getBinarySync(binaryFile))}else if(readAsync){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),reject)})}}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function createWasm(){var info={"a":wasmImports};function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["bg"];updateMemoryViews();wasmTable=wasmExports["dg"];addOnInit(wasmExports["cg"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);return false}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult);return{}}var tempDouble;var tempI64;var ASM_CONSTS={455392:$0=>{var str=UTF8ToString($0)+"\n\n"+"Abort/Retry/Ignore/AlwaysIgnore? [ariA] :";var reply=window.prompt(str,"i");if(reply===null){reply="i"}return allocate(intArrayFromString(reply),"i8",ALLOC_NORMAL)},455617:()=>{if(typeof AudioContext!=="undefined"){return true}else if(typeof webkitAudioContext!=="undefined"){return true}return false},455764:()=>{if(typeof navigator.mediaDevices!=="undefined"&&typeof navigator.mediaDevices.getUserMedia!=="undefined"){return true}else if(typeof navigator.webkitGetUserMedia!=="undefined"){return true}return false},455998:$0=>{if(typeof Module["SDL2"]==="undefined"){Module["SDL2"]={}}var SDL2=Module["SDL2"];if(!$0){SDL2.audio={}}else{SDL2.capture={}}if(!SDL2.audioContext){if(typeof AudioContext!=="undefined"){SDL2.audioContext=new AudioContext}else if(typeof webkitAudioContext!=="undefined"){SDL2.audioContext=new webkitAudioContext}if(SDL2.audioContext){autoResumeAudioContext(SDL2.audioContext)}}return SDL2.audioContext===undefined?-1:0},456491:()=>{var SDL2=Module["SDL2"];return SDL2.audioContext.sampleRate},456559:($0,$1,$2,$3)=>{var SDL2=Module["SDL2"];var have_microphone=function(stream){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer);SDL2.capture.silenceTimer=undefined}SDL2.capture.mediaStreamNode=SDL2.audioContext.createMediaStreamSource(stream);SDL2.capture.scriptProcessorNode=SDL2.audioContext.createScriptProcessor($1,$0,1);SDL2.capture.scriptProcessorNode.onaudioprocess=function(audioProcessingEvent){if(SDL2===undefined||SDL2.capture===undefined){return}audioProcessingEvent.outputBuffer.getChannelData(0).fill(0);SDL2.capture.currentCaptureBuffer=audioProcessingEvent.inputBuffer;dynCall("vi",$2,[$3])};SDL2.capture.mediaStreamNode.connect(SDL2.capture.scriptProcessorNode);SDL2.capture.scriptProcessorNode.connect(SDL2.audioContext.destination);SDL2.capture.stream=stream};var no_microphone=function(error){};SDL2.capture.silenceBuffer=SDL2.audioContext.createBuffer($0,$1,SDL2.audioContext.sampleRate);SDL2.capture.silenceBuffer.getChannelData(0).fill(0);var silence_callback=function(){SDL2.capture.currentCaptureBuffer=SDL2.capture.silenceBuffer;dynCall("vi",$2,[$3])};SDL2.capture.silenceTimer=setTimeout(silence_callback,$1/SDL2.audioContext.sampleRate*1e3);if(navigator.mediaDevices!==undefined&&navigator.mediaDevices.getUserMedia!==undefined){navigator.mediaDevices.getUserMedia({audio:true,video:false}).then(have_microphone).catch(no_microphone)}else if(navigator.webkitGetUserMedia!==undefined){navigator.webkitGetUserMedia({audio:true,video:false},have_microphone,no_microphone)}},458211:($0,$1,$2,$3)=>{var SDL2=Module["SDL2"];SDL2.audio.scriptProcessorNode=SDL2.audioContext["createScriptProcessor"]($1,0,$0);SDL2.audio.scriptProcessorNode["onaudioprocess"]=function(e){if(SDL2===undefined||SDL2.audio===undefined){return}SDL2.audio.currentOutputBuffer=e["outputBuffer"];dynCall("vi",$2,[$3])};SDL2.audio.scriptProcessorNode["connect"](SDL2.audioContext["destination"])},458621:($0,$1)=>{var SDL2=Module["SDL2"];var numChannels=SDL2.capture.currentCaptureBuffer.numberOfChannels;for(var c=0;c{var SDL2=Module["SDL2"];var numChannels=SDL2.audio.currentOutputBuffer["numberOfChannels"];for(var c=0;c>2]}}},459706:$0=>{var SDL2=Module["SDL2"];if($0){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer)}if(SDL2.capture.stream!==undefined){var tracks=SDL2.capture.stream.getAudioTracks();for(var i=0;i{var w=$0;var h=$1;var pixels=$2;if(!Module["SDL2"])Module["SDL2"]={};var SDL2=Module["SDL2"];if(SDL2.ctxCanvas!==Module["canvas"]){SDL2.ctx=Module["createContext"](Module["canvas"],false,true);SDL2.ctxCanvas=Module["canvas"]}if(SDL2.w!==w||SDL2.h!==h||SDL2.imageCtx!==SDL2.ctx){SDL2.image=SDL2.ctx.createImageData(w,h);SDL2.w=w;SDL2.h=h;SDL2.imageCtx=SDL2.ctx}var data=SDL2.image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!=="undefined"&&data instanceof CanvasPixelArray){num=data.length;while(dst>8&255;data[dst+2]=val>>16&255;data[dst+3]=255;src++;dst+=4}}else{if(SDL2.data32Data!==data){SDL2.data32=new Int32Array(data.buffer);SDL2.data8=new Uint8Array(data.buffer);SDL2.data32Data=data}var data32=SDL2.data32;num=data32.length;data32.set(HEAP32.subarray(src,src+num));var data8=SDL2.data8;var i=3;var j=i+4*num;if(num%8==0){while(i{var w=$0;var h=$1;var hot_x=$2;var hot_y=$3;var pixels=$4;var canvas=document.createElement("canvas");canvas.width=w;canvas.height=h;var ctx=canvas.getContext("2d");var image=ctx.createImageData(w,h);var data=image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!=="undefined"&&data instanceof CanvasPixelArray){num=data.length;while(dst>8&255;data[dst+2]=val>>16&255;data[dst+3]=val>>24&255;src++;dst+=4}}else{var data32=new Int32Array(data.buffer);num=data32.length;data32.set(HEAP32.subarray(src,src+num))}ctx.putImageData(image,0,0);var url=hot_x===0&&hot_y===0?"url("+canvas.toDataURL()+"), auto":"url("+canvas.toDataURL()+") "+hot_x+" "+hot_y+", auto";var urlBuf=_malloc(url.length+1);stringToUTF8(url,urlBuf,url.length+1);return urlBuf},463336:$0=>{if(Module["canvas"]){Module["canvas"].style["cursor"]=UTF8ToString($0)}},463419:()=>{if(Module["canvas"]){Module["canvas"].style["cursor"]="none"}},463488:()=>window.innerWidth,463518:()=>window.innerHeight};function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var noExitRuntime=Module["noExitRuntime"]||true;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr]=value;break;case"i8":HEAP8[ptr]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var exceptionCaught=[];var uncaughtExceptionCount=0;var ___cxa_begin_catch=ptr=>{var info=new ExceptionInfo(ptr);if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(info);___cxa_increment_exception_refcount(info.excPtr);return info.get_exception_ptr()};var exceptionLast=0;var ___cxa_end_catch=()=>{_setThrew(0,0);var info=exceptionCaught.pop();___cxa_decrement_exception_refcount(info.excPtr);exceptionLast=0};class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){HEAPU32[this.ptr+4>>2]=type}get_type(){return HEAPU32[this.ptr+4>>2]}set_destructor(destructor){HEAPU32[this.ptr+8>>2]=destructor}get_destructor(){return HEAPU32[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12]=caught}get_caught(){return HEAP8[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13]=rethrown}get_rethrown(){return HEAP8[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return HEAPU32[this.ptr+16>>2]}get_exception_ptr(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var ___resumeException=ptr=>{if(!exceptionLast){exceptionLast=ptr}throw exceptionLast};var findMatchingCatch=args=>{var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0}var info=new ExceptionInfo(thrown);info.set_adjusted_ptr(thrown);var thrownType=info.get_type();if(!thrownType){setTempRet0(0);return thrown}for(var arg in args){var caughtType=args[arg];if(caughtType===0||caughtType===thrownType){break}var adjusted_ptr_addr=info.ptr+16;if(___cxa_can_catch(caughtType,thrownType,adjusted_ptr_addr)){setTempRet0(caughtType);return thrown}}setTempRet0(thrownType);return thrown};var ___cxa_find_matching_catch_2=()=>findMatchingCatch([]);var ___cxa_find_matching_catch_3=arg0=>findMatchingCatch([arg0]);var ___cxa_rethrow=()=>{var info=exceptionCaught.pop();if(!info){abort("no exception to throw")}var ptr=info.excPtr;if(!info.get_rethrown()){exceptionCaught.push(info);info.set_rethrown(true);info.set_caught(false);uncaughtExceptionCount++}exceptionLast=ptr;throw exceptionLast};var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast};var ___cxa_uncaught_exceptions=()=>uncaughtExceptionCount;var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");var randomFillSync=crypto_module["randomFillSync"];if(randomFillSync){return view=>crypto_module["randomFillSync"](view)}var randomBytes=crypto_module["randomBytes"];return view=>(view.set(randomBytes(view.byteLength)),view)}catch(e){}}abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var mmapAlloc=size=>{abort()};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[".",".."];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url,arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module["preloadPlugins"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={"r":0,"r+":2,"w":512|64|1,"w+":512|64|2,"a":1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:class{constructor(errno){this.name="ErrnoError";this.errno=errno}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{constructor(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;this.readMode=292|73;this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;iFS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""});FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init(input,output,error){FS.init.initialized=true;Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit(){FS.init.initialized=false;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}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;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get(){var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret},getp(){return SYSCALLS.get()},getStr(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.getp();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=SYSCALLS.getp();HEAP32[argp>>2]=termios.c_iflag||0;HEAP32[argp+4>>2]=termios.c_oflag||0;HEAP32[argp+8>>2]=termios.c_cflag||0;HEAP32[argp+12>>2]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=SYSCALLS.getp();var c_iflag=HEAP32[argp>>2];var c_oflag=HEAP32[argp+4>>2];var c_cflag=HEAP32[argp+8>>2];var c_lflag=HEAP32[argp+12>>2];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag:c_iflag,c_oflag:c_oflag,c_cflag:c_cflag,c_lflag:c_lflag,c_cc:c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.getp();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.getp();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=SYSCALLS.getp();HEAP16[argp>>1]=winsize[0];HEAP16[argp+2>>1]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __emscripten_fs_load_embedded_files=ptr=>{do{var name_addr=HEAPU32[ptr>>2];ptr+=4;var len=HEAPU32[ptr>>2];ptr+=4;var content=HEAPU32[ptr>>2];ptr+=4;var name=UTF8ToString(name_addr);FS.createPath("/",PATH.dirname(name),true,true);FS.createDataFile(name,null,HEAP8.subarray(content,content+len),true,true,true)}while(HEAPU32[ptr>>2])};var nowIsMonotonic=1;var __emscripten_get_now_is_monotonic=()=>nowIsMonotonic;var _abort=()=>{abort("")};var _emscripten_set_main_loop_timing=(mode,value)=>{Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof Browser.setImmediate=="undefined"){if(typeof setImmediate=="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=event=>{if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);Browser.setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}else{Browser.setImmediate=setImmediate}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){Browser.setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0};var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var setMainLoop=(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming)=>{Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL=="object")SDL.audio?.queueNewAudioData?.();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0){_emscripten_set_main_loop_timing(0,1e3/fps)}else{_emscripten_set_main_loop_timing(1,1)}Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var safeSetTimeout=(func,timeout)=>setTimeout(()=>{callUserCallback(func)},timeout);var warnOnce=text=>{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining{var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;URL.revokeObjectURL(url);onload?.(byteArray)};img.onerror=event=>{err(`Image ${url} could not be decoded`);onerror?.()};img.src=url};preloadPlugins.push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;preloadedAudios[name]=audio;onload?.(byteArray)}var b=new Blob([byteArray],{type:Browser.getMimetype(name)});var url=URL.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",()=>finish(audio),false);audio.onerror=function audio_onerror(event){if(done)return;err(`warning: browser could not fully decode audio ${name}, trying slower base64 approach`);function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(()=>{finish(audio)},1e4)};preloadPlugins.push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(()=>{});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(()=>{});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",ev=>{if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:typeof WebGL2RenderingContext!="undefined"?2:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(callback=>callback());Browser.init()}return ctx},destroyContext(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer=="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas=="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}Module["onFullScreen"]?.(Browser.isFullscreen);Module["onFullscreen"]?.(Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?()=>canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]):null)||(canvasContainer["webkitRequestFullScreen"]?()=>canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]):null);canvasContainer.requestFullscreen()},exitFullscreen(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||(()=>{});CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame(func){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout(func,timeout){return safeSetTimeout(func,timeout)},safeRequestAnimationFrame(func){return Browser.requestAnimationFrame(()=>{callUserCallback(func)})},getMimetype(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia(func){window.getUserMedia||=navigator["getUserMedia"]||navigator["mozGetUserMedia"];window.getUserMedia(func)},getMovementX(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseCoords(pageX,pageY){var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;var adjustedX=pageX-(scrollX+rect.left);var adjustedY=pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);return{x:adjustedX,y:adjustedY}},setMouseCoords(pageX,pageY){const{x:x,y:y}=Browser.calculateMouseCoords(pageX,pageY);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y},calculateMouseEvent(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var coords=Browser.calculateMouseCoords(touch.pageX,touch.pageY);if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];last||=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}Browser.setMouseCoords(event.pageX,event.pageY)}},resizeListeners:[],updateResizeListeners(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(listener=>listener(canvas.width,canvas.height))},setCanvasSize(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h>2];if(param==12321){var alphaSize=HEAP32[attribList+4>>2];EGL.contextAttributes.alpha=alphaSize>0}else if(param==12325){var depthSize=HEAP32[attribList+4>>2];EGL.contextAttributes.depth=depthSize>0}else if(param==12326){var stencilSize=HEAP32[attribList+4>>2];EGL.contextAttributes.stencil=stencilSize>0}else if(param==12337){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples>0}else if(param==12338){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples==1}else if(param==12544){var requestedPriority=HEAP32[attribList+4>>2];EGL.contextAttributes.lowLatency=requestedPriority!=12547}else if(param==12344){break}attribList+=8}}if((!config||!config_size)&&!numConfigs){EGL.setErrorCode(12300);return 0}if(numConfigs){HEAP32[numConfigs>>2]=1}if(config&&config_size>0){HEAPU32[config>>2]=62002}EGL.setErrorCode(12288);return 1}};var _eglBindAPI=api=>{if(api==12448){EGL.setErrorCode(12288);return 1}EGL.setErrorCode(12300);return 0};var _eglChooseConfig=(display,attrib_list,configs,config_size,numConfigs)=>EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs);var webgl_enable_ANGLE_instanced_arrays=ctx=>{var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=(index,divisor)=>ext["vertexAttribDivisorANGLE"](index,divisor);ctx["drawArraysInstanced"]=(mode,first,count,primcount)=>ext["drawArraysInstancedANGLE"](mode,first,count,primcount);ctx["drawElementsInstanced"]=(mode,count,type,indices,primcount)=>ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount);return 1}};var webgl_enable_OES_vertex_array_object=ctx=>{var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=()=>ext["createVertexArrayOES"]();ctx["deleteVertexArray"]=vao=>ext["deleteVertexArrayOES"](vao);ctx["bindVertexArray"]=vao=>ext["bindVertexArrayOES"](vao);ctx["isVertexArray"]=vao=>ext["isVertexArrayOES"](vao);return 1}};var webgl_enable_WEBGL_draw_buffers=ctx=>{var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=(n,bufs)=>ext["drawBuffersWEBGL"](n,bufs);return 1}};var webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw=ctx=>!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"));var getEmscriptenSupportedExtensions=ctx=>{var supportedExtensions=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_disjoint_timer_query","EXT_frag_depth","EXT_shader_texture_lod","EXT_sRGB","OES_element_index_uint","OES_fbo_render_mipmap","OES_standard_derivatives","OES_texture_float","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_depth_texture","WEBGL_draw_buffers","EXT_color_buffer_float","EXT_conservative_depth","EXT_disjoint_timer_query_webgl2","EXT_texture_norm16","NV_shader_noperspective_interpolation","WEBGL_clip_cull_distance","EXT_color_buffer_half_float","EXT_depth_clamp","EXT_float_blend","EXT_texture_compression_bptc","EXT_texture_compression_rgtc","EXT_texture_filter_anisotropic","KHR_parallel_shader_compile","OES_texture_float_linear","WEBGL_blend_func_extended","WEBGL_compressed_texture_astc","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_debug_renderer_info","WEBGL_debug_shaders","WEBGL_lose_context","WEBGL_multi_draw"];return(ctx.getSupportedExtensions()||[]).filter(ext=>supportedExtensions.includes(ext))};var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:errorCode=>{if(!GL.lastError){GL.lastError=errorCode}},getNewId:table=>{var ret=GL.counter++;for(var i=table.length;i{for(var i=0;i>2]=id}},getSource:(shader,count,string,length)=>{var source="";for(var i=0;i>2]:undefined;source+=UTF8ToString(HEAPU32[string+i*4>>2],len)}return source},createContext:(canvas,webGLContextAttributes)=>{if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;function fixedGetContext(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}canvas.getContext=fixedGetContext}var ctx=webGLContextAttributes.majorVersion>1?canvas.getContext("webgl2",webGLContextAttributes):canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:(ctx,webGLContextAttributes)=>{var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:contextHandle=>{GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext?.GLctx;return!(contextHandle&&!GLctx)},getContext:contextHandle=>GL.contexts[contextHandle],deleteContext:contextHandle=>{if(GL.currentContext===GL.contexts[contextHandle]){GL.currentContext=null}if(typeof JSEvents=="object"){JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas)}if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas){GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined}GL.contexts[contextHandle]=null},initExtensions:context=>{context||=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;webgl_enable_ANGLE_instanced_arrays(GLctx);webgl_enable_OES_vertex_array_object(GLctx);webgl_enable_WEBGL_draw_buffers(GLctx);webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}webgl_enable_WEBGL_multi_draw(GLctx);getEmscriptenSupportedExtensions(GLctx).forEach(ext=>{if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var _eglCreateContext=(display,config,hmm,contextAttribs)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}var glesContextVersion=1;for(;;){var param=HEAP32[contextAttribs>>2];if(param==12440){glesContextVersion=HEAP32[contextAttribs+4>>2]}else if(param==12344){break}else{EGL.setErrorCode(12292);return 0}contextAttribs+=8}if(glesContextVersion<2||glesContextVersion>3){EGL.setErrorCode(12293);return 0}EGL.contextAttributes.majorVersion=glesContextVersion-1;EGL.contextAttributes.minorVersion=0;EGL.context=GL.createContext(Module["canvas"],EGL.contextAttributes);if(EGL.context!=0){EGL.setErrorCode(12288);GL.makeContextCurrent(EGL.context);Module.useWebGL=true;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});GL.makeContextCurrent(null);return 62004}else{EGL.setErrorCode(12297);return 0}};var _eglCreateWindowSurface=(display,config,win,attrib_list)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}EGL.setErrorCode(12288);return 62006};var _eglDestroyContext=(display,context)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}GL.deleteContext(EGL.context);EGL.setErrorCode(12288);if(EGL.currentContext==context){EGL.currentContext=0}return 1};var _eglDestroySurface=(display,surface)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 1}if(EGL.currentReadSurface==surface){EGL.currentReadSurface=0}if(EGL.currentDrawSurface==surface){EGL.currentDrawSurface=0}EGL.setErrorCode(12288);return 1};var _eglGetConfigAttrib=(display,config,attribute,value)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}if(!value){EGL.setErrorCode(12300);return 0}EGL.setErrorCode(12288);switch(attribute){case 12320:HEAP32[value>>2]=EGL.contextAttributes.alpha?32:24;return 1;case 12321:HEAP32[value>>2]=EGL.contextAttributes.alpha?8:0;return 1;case 12322:HEAP32[value>>2]=8;return 1;case 12323:HEAP32[value>>2]=8;return 1;case 12324:HEAP32[value>>2]=8;return 1;case 12325:HEAP32[value>>2]=EGL.contextAttributes.depth?24:0;return 1;case 12326:HEAP32[value>>2]=EGL.contextAttributes.stencil?8:0;return 1;case 12327:HEAP32[value>>2]=12344;return 1;case 12328:HEAP32[value>>2]=62002;return 1;case 12329:HEAP32[value>>2]=0;return 1;case 12330:HEAP32[value>>2]=4096;return 1;case 12331:HEAP32[value>>2]=16777216;return 1;case 12332:HEAP32[value>>2]=4096;return 1;case 12333:HEAP32[value>>2]=0;return 1;case 12334:HEAP32[value>>2]=0;return 1;case 12335:HEAP32[value>>2]=12344;return 1;case 12337:HEAP32[value>>2]=EGL.contextAttributes.antialias?4:0;return 1;case 12338:HEAP32[value>>2]=EGL.contextAttributes.antialias?1:0;return 1;case 12339:HEAP32[value>>2]=4;return 1;case 12340:HEAP32[value>>2]=12344;return 1;case 12341:case 12342:case 12343:HEAP32[value>>2]=-1;return 1;case 12345:case 12346:HEAP32[value>>2]=0;return 1;case 12347:HEAP32[value>>2]=0;return 1;case 12348:HEAP32[value>>2]=1;return 1;case 12349:case 12350:HEAP32[value>>2]=0;return 1;case 12351:HEAP32[value>>2]=12430;return 1;case 12352:HEAP32[value>>2]=4;return 1;case 12354:HEAP32[value>>2]=0;return 1;default:EGL.setErrorCode(12292);return 0}};var _eglGetDisplay=nativeDisplayType=>{EGL.setErrorCode(12288);if(nativeDisplayType!=0&&nativeDisplayType!=1){return 0}return 62e3};var _eglGetError=()=>EGL.errorCode;var _eglInitialize=(display,majorVersion,minorVersion)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(majorVersion){HEAP32[majorVersion>>2]=1}if(minorVersion){HEAP32[minorVersion>>2]=4}EGL.defaultDisplayInitialized=true;EGL.setErrorCode(12288);return 1};var _eglMakeCurrent=(display,draw,read,context)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=0&&context!=62004){EGL.setErrorCode(12294);return 0}if(read!=0&&read!=62006||draw!=0&&draw!=62006){EGL.setErrorCode(12301);return 0}GL.makeContextCurrent(context?EGL.context:null);EGL.currentContext=context;EGL.currentDrawSurface=draw;EGL.currentReadSurface=read;EGL.setErrorCode(12288);return 1};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var _eglQueryString=(display,name)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.setErrorCode(12288);if(EGL.stringCache[name])return EGL.stringCache[name];var ret;switch(name){case 12371:ret=stringToNewUTF8("Emscripten");break;case 12372:ret=stringToNewUTF8("1.4 Emscripten EGL");break;case 12373:ret=stringToNewUTF8("");break;case 12429:ret=stringToNewUTF8("OpenGL_ES");break;default:EGL.setErrorCode(12300);return 0}EGL.stringCache[name]=ret;return ret};var _eglSwapBuffers=(dpy,surface)=>{if(!EGL.defaultDisplayInitialized){EGL.setErrorCode(12289)}else if(!Module.ctx){EGL.setErrorCode(12290)}else if(Module.ctx.isContextLost()){EGL.setErrorCode(12302)}else{EGL.setErrorCode(12288);return 1}return 0};var _eglSwapInterval=(display,interval)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval);EGL.setErrorCode(12288);return 1};var _eglTerminate=display=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.defaultDisplayInitialized=false;EGL.setErrorCode(12288);return 1};var _eglWaitClient=()=>{EGL.setErrorCode(12288);return 1};var _eglWaitGL=_eglWaitClient;var _eglWaitNative=nativeEngineId=>{EGL.setErrorCode(12288);return 1};var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>2]:ch==105?HEAP32[buf>>2]:HEAPF64[buf>>3]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var runMainThreadEmAsm=(emAsmAddr,sigPtr,argbuf,sync)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[emAsmAddr](...args)};var _emscripten_asm_const_int_sync_on_main_thread=(emAsmAddr,sigPtr,argbuf)=>runMainThreadEmAsm(emAsmAddr,sigPtr,argbuf,1);var _emscripten_asm_const_ptr_sync_on_main_thread=(emAsmAddr,sigPtr,argbuf)=>runMainThreadEmAsm(emAsmAddr,sigPtr,argbuf,1);var _emscripten_cancel_main_loop=()=>{Browser.mainLoop.pause();Browser.mainLoop.func=null};var _emscripten_date_now=()=>Date.now();var withStackSave=f=>{var stack=stackSave();var ret=f();stackRestore(stack);return ret};var JSEvents={removeAllEventListeners(){while(JSEvents.eventHandlers.length){JSEvents._removeHandler(JSEvents.eventHandlers.length-1)}JSEvents.deferredCalls=[]},inEventHandler:0,deferredCalls:[],deferCall(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort((x,y)=>x.precedence{for(var i=0;icString>2?UTF8ToString(cString):cString;var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];var findEventTarget=target=>{target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):undefined);return domElement};var findCanvasEventTarget=findEventTarget;var _emscripten_get_canvas_element_size=(target,width,height)=>{var canvas=findCanvasEventTarget(target);if(!canvas)return-4;HEAP32[width>>2]=canvas.width;HEAP32[height>>2]=canvas.height};var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var getCanvasElementSize=target=>withStackSave(()=>{var w=stackAlloc(8);var h=w+4;var targetInt=stringToUTF8OnStack(target.id);var ret=_emscripten_get_canvas_element_size(targetInt,w,h);var size=[HEAP32[w>>2],HEAP32[h>>2]];return size});var _emscripten_set_canvas_element_size=(target,width,height)=>{var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0};var setCanvasElementSize=(target,width,height)=>{if(!target.controlTransferredOffscreen){target.width=width;target.height=height}else{withStackSave(()=>{var targetInt=stringToUTF8OnStack(target.id);_emscripten_set_canvas_element_size(targetInt,width,height)})}};var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var registerRestoreOldStyle=canvas=>{var canvasSize=getCanvasElementSize(canvas);var oldWidth=canvasSize[0];var oldHeight=canvasSize[1];var oldCssWidth=canvas.style.width;var oldCssHeight=canvas.style.height;var oldBackgroundColor=canvas.style.backgroundColor;var oldDocumentBackgroundColor=document.body.style.backgroundColor;var oldPaddingLeft=canvas.style.paddingLeft;var oldPaddingRight=canvas.style.paddingRight;var oldPaddingTop=canvas.style.paddingTop;var oldPaddingBottom=canvas.style.paddingBottom;var oldMarginLeft=canvas.style.marginLeft;var oldMarginRight=canvas.style.marginRight;var oldMarginTop=canvas.style.marginTop;var oldMarginBottom=canvas.style.marginBottom;var oldDocumentBodyMargin=document.body.style.margin;var oldDocumentOverflow=document.documentElement.style.overflow;var oldDocumentScroll=document.body.scroll;var oldImageRendering=canvas.style.imageRendering;function restoreOldStyle(){var fullscreenElement=document.fullscreenElement||document.webkitFullscreenElement;if(!fullscreenElement){document.removeEventListener("fullscreenchange",restoreOldStyle);document.removeEventListener("webkitfullscreenchange",restoreOldStyle);setCanvasElementSize(canvas,oldWidth,oldHeight);canvas.style.width=oldCssWidth;canvas.style.height=oldCssHeight;canvas.style.backgroundColor=oldBackgroundColor;if(!oldDocumentBackgroundColor)document.body.style.backgroundColor="white";document.body.style.backgroundColor=oldDocumentBackgroundColor;canvas.style.paddingLeft=oldPaddingLeft;canvas.style.paddingRight=oldPaddingRight;canvas.style.paddingTop=oldPaddingTop;canvas.style.paddingBottom=oldPaddingBottom;canvas.style.marginLeft=oldMarginLeft;canvas.style.marginRight=oldMarginRight;canvas.style.marginTop=oldMarginTop;canvas.style.marginBottom=oldMarginBottom;document.body.style.margin=oldDocumentBodyMargin;document.documentElement.style.overflow=oldDocumentOverflow;document.body.scroll=oldDocumentScroll;canvas.style.imageRendering=oldImageRendering;if(canvas.GLctxObject)canvas.GLctxObject.GLctx.viewport(0,0,oldWidth,oldHeight);if(currentFullscreenStrategy.canvasResizedCallback){getWasmTableEntry(currentFullscreenStrategy.canvasResizedCallback)(37,0,currentFullscreenStrategy.canvasResizedCallbackUserData)}}}document.addEventListener("fullscreenchange",restoreOldStyle);document.addEventListener("webkitfullscreenchange",restoreOldStyle);return restoreOldStyle};var setLetterbox=(element,topBottom,leftRight)=>{element.style.paddingLeft=element.style.paddingRight=leftRight+"px";element.style.paddingTop=element.style.paddingBottom=topBottom+"px"};var getBoundingClientRect=e=>specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0};var JSEvents_resizeCanvasForFullscreen=(target,strategy)=>{var restoreOldStyle=registerRestoreOldStyle(target);var cssWidth=strategy.softFullscreen?innerWidth:screen.width;var cssHeight=strategy.softFullscreen?innerHeight:screen.height;var rect=getBoundingClientRect(target);var windowedCssWidth=rect.width;var windowedCssHeight=rect.height;var canvasSize=getCanvasElementSize(target);var windowedRttWidth=canvasSize[0];var windowedRttHeight=canvasSize[1];if(strategy.scaleMode==3){setLetterbox(target,(cssHeight-windowedCssHeight)/2,(cssWidth-windowedCssWidth)/2);cssWidth=windowedCssWidth;cssHeight=windowedCssHeight}else if(strategy.scaleMode==2){if(cssWidth*windowedRttHeight{if(strategy.scaleMode!=0||strategy.canvasResolutionScaleMode!=0){JSEvents_resizeCanvasForFullscreen(target,strategy)}if(target.requestFullscreen){target.requestFullscreen()}else if(target.webkitRequestFullscreen){target.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}else{return JSEvents.fullscreenEnabled()?-3:-1}currentFullscreenStrategy=strategy;if(strategy.canvasResizedCallback){getWasmTableEntry(strategy.canvasResizedCallback)(37,0,strategy.canvasResizedCallbackUserData)}return 0};var _emscripten_exit_fullscreen=()=>{if(!JSEvents.fullscreenEnabled())return-1;JSEvents.removeDeferredCalls(JSEvents_requestFullscreen);var d=specialHTMLTargets[1];if(d.exitFullscreen){d.fullscreenElement&&d.exitFullscreen()}else if(d.webkitExitFullscreen){d.webkitFullscreenElement&&d.webkitExitFullscreen()}else{return-1}return 0};var requestPointerLock=target=>{if(target.requestPointerLock){target.requestPointerLock()}else{if(document.body.requestPointerLock){return-3}return-1}return 0};var _emscripten_exit_pointerlock=()=>{JSEvents.removeDeferredCalls(requestPointerLock);if(document.exitPointerLock){document.exitPointerLock()}else{return-1}return 0};var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};var _emscripten_force_exit=status=>{__emscripten_runtime_keepalive_clear();_exit(status)};var _emscripten_get_device_pixel_ratio=()=>typeof devicePixelRatio=="number"&&devicePixelRatio||1;var _emscripten_get_element_css_size=(target,width,height)=>{target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0};var fillGamepadEventData=(eventStruct,e)=>{HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)};var _emscripten_get_gamepad_status=(index,gamepadState)=>{if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0};var _emscripten_get_num_gamepads=()=>JSEvents.lastGamepadState.length;var _emscripten_get_screen_size=(width,height)=>{HEAP32[width>>2]=screen.width;HEAP32[height>>2]=screen.height};var _glActiveTexture=x0=>GLctx.activeTexture(x0);var _emscripten_glActiveTexture=_glActiveTexture;var _glAttachShader=(program,shader)=>{GLctx.attachShader(GL.programs[program],GL.shaders[shader])};var _emscripten_glAttachShader=_glAttachShader;var _glBeginQuery=(target,id)=>{GLctx.beginQuery(target,GL.queries[id])};var _emscripten_glBeginQuery=_glBeginQuery;var _glBeginQueryEXT=(target,id)=>{GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])};var _emscripten_glBeginQueryEXT=_glBeginQueryEXT;var _glBeginTransformFeedback=x0=>GLctx.beginTransformFeedback(x0);var _emscripten_glBeginTransformFeedback=_glBeginTransformFeedback;var _glBindAttribLocation=(program,index,name)=>{GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))};var _emscripten_glBindAttribLocation=_glBindAttribLocation;var _glBindBuffer=(target,buffer)=>{if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])};var _emscripten_glBindBuffer=_glBindBuffer;var _glBindBufferBase=(target,index,buffer)=>{GLctx.bindBufferBase(target,index,GL.buffers[buffer])};var _emscripten_glBindBufferBase=_glBindBufferBase;var _glBindBufferRange=(target,index,buffer,offset,ptrsize)=>{GLctx.bindBufferRange(target,index,GL.buffers[buffer],offset,ptrsize)};var _emscripten_glBindBufferRange=_glBindBufferRange;var _glBindFramebuffer=(target,framebuffer)=>{GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])};var _emscripten_glBindFramebuffer=_glBindFramebuffer;var _glBindRenderbuffer=(target,renderbuffer)=>{GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])};var _emscripten_glBindRenderbuffer=_glBindRenderbuffer;var _glBindSampler=(unit,sampler)=>{GLctx.bindSampler(unit,GL.samplers[sampler])};var _emscripten_glBindSampler=_glBindSampler;var _glBindTexture=(target,texture)=>{GLctx.bindTexture(target,GL.textures[texture])};var _emscripten_glBindTexture=_glBindTexture;var _glBindTransformFeedback=(target,id)=>{GLctx.bindTransformFeedback(target,GL.transformFeedbacks[id])};var _emscripten_glBindTransformFeedback=_glBindTransformFeedback;var _glBindVertexArray=vao=>{GLctx.bindVertexArray(GL.vaos[vao])};var _emscripten_glBindVertexArray=_glBindVertexArray;var _glBindVertexArrayOES=_glBindVertexArray;var _emscripten_glBindVertexArrayOES=_glBindVertexArrayOES;var _glBlendColor=(x0,x1,x2,x3)=>GLctx.blendColor(x0,x1,x2,x3);var _emscripten_glBlendColor=_glBlendColor;var _glBlendEquation=x0=>GLctx.blendEquation(x0);var _emscripten_glBlendEquation=_glBlendEquation;var _glBlendEquationSeparate=(x0,x1)=>GLctx.blendEquationSeparate(x0,x1);var _emscripten_glBlendEquationSeparate=_glBlendEquationSeparate;var _glBlendFunc=(x0,x1)=>GLctx.blendFunc(x0,x1);var _emscripten_glBlendFunc=_glBlendFunc;var _glBlendFuncSeparate=(x0,x1,x2,x3)=>GLctx.blendFuncSeparate(x0,x1,x2,x3);var _emscripten_glBlendFuncSeparate=_glBlendFuncSeparate;var _glBlitFramebuffer=(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)=>GLctx.blitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9);var _emscripten_glBlitFramebuffer=_glBlitFramebuffer;var _glBufferData=(target,size,data,usage)=>{if(GL.currentContext.version>=2){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}return}GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)};var _emscripten_glBufferData=_glBufferData;var _glBufferSubData=(target,offset,size,data)=>{if(GL.currentContext.version>=2){size&&GLctx.bufferSubData(target,offset,HEAPU8,data,size);return}GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))};var _emscripten_glBufferSubData=_glBufferSubData;var _glCheckFramebufferStatus=x0=>GLctx.checkFramebufferStatus(x0);var _emscripten_glCheckFramebufferStatus=_glCheckFramebufferStatus;var _glClear=x0=>GLctx.clear(x0);var _emscripten_glClear=_glClear;var _glClearBufferfi=(x0,x1,x2,x3)=>GLctx.clearBufferfi(x0,x1,x2,x3);var _emscripten_glClearBufferfi=_glClearBufferfi;var _glClearBufferfv=(buffer,drawbuffer,value)=>{GLctx.clearBufferfv(buffer,drawbuffer,HEAPF32,value>>2)};var _emscripten_glClearBufferfv=_glClearBufferfv;var _glClearBufferiv=(buffer,drawbuffer,value)=>{GLctx.clearBufferiv(buffer,drawbuffer,HEAP32,value>>2)};var _emscripten_glClearBufferiv=_glClearBufferiv;var _glClearBufferuiv=(buffer,drawbuffer,value)=>{GLctx.clearBufferuiv(buffer,drawbuffer,HEAPU32,value>>2)};var _emscripten_glClearBufferuiv=_glClearBufferuiv;var _glClearColor=(x0,x1,x2,x3)=>GLctx.clearColor(x0,x1,x2,x3);var _emscripten_glClearColor=_glClearColor;var _glClearDepthf=x0=>GLctx.clearDepth(x0);var _emscripten_glClearDepthf=_glClearDepthf;var _glClearStencil=x0=>GLctx.clearStencil(x0);var _emscripten_glClearStencil=_glClearStencil;var convertI32PairToI53=(lo,hi)=>(lo>>>0)+hi*4294967296;var _glClientWaitSync=(sync,flags,timeout_low,timeout_high)=>{var timeout=convertI32PairToI53(timeout_low,timeout_high);return GLctx.clientWaitSync(GL.syncs[sync],flags,timeout)};var _emscripten_glClientWaitSync=_glClientWaitSync;var _glColorMask=(red,green,blue,alpha)=>{GLctx.colorMask(!!red,!!green,!!blue,!!alpha)};var _emscripten_glColorMask=_glColorMask;var _glCompileShader=shader=>{GLctx.compileShader(GL.shaders[shader])};var _emscripten_glCompileShader=_glCompileShader;var _glCompressedTexImage2D=(target,level,internalFormat,width,height,border,imageSize,data)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data)}else{GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,HEAPU8,data,imageSize)}return}GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)};var _emscripten_glCompressedTexImage2D=_glCompressedTexImage2D;var _glCompressedTexImage3D=(target,level,internalFormat,width,height,depth,border,imageSize,data)=>{if(GLctx.currentPixelUnpackBufferBinding){GLctx.compressedTexImage3D(target,level,internalFormat,width,height,depth,border,imageSize,data)}else{GLctx.compressedTexImage3D(target,level,internalFormat,width,height,depth,border,HEAPU8,data,imageSize)}};var _emscripten_glCompressedTexImage3D=_glCompressedTexImage3D;var _glCompressedTexSubImage2D=(target,level,xoffset,yoffset,width,height,format,imageSize,data)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data)}else{GLctx.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,HEAPU8,data,imageSize)}return}GLctx.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)};var _emscripten_glCompressedTexSubImage2D=_glCompressedTexSubImage2D;var _glCompressedTexSubImage3D=(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)=>{if(GLctx.currentPixelUnpackBufferBinding){GLctx.compressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)}else{GLctx.compressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,HEAPU8,data,imageSize)}};var _emscripten_glCompressedTexSubImage3D=_glCompressedTexSubImage3D;var _glCopyBufferSubData=(x0,x1,x2,x3,x4)=>GLctx.copyBufferSubData(x0,x1,x2,x3,x4);var _emscripten_glCopyBufferSubData=_glCopyBufferSubData;var _glCopyTexImage2D=(x0,x1,x2,x3,x4,x5,x6,x7)=>GLctx.copyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7);var _emscripten_glCopyTexImage2D=_glCopyTexImage2D;var _glCopyTexSubImage2D=(x0,x1,x2,x3,x4,x5,x6,x7)=>GLctx.copyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7);var _emscripten_glCopyTexSubImage2D=_glCopyTexSubImage2D;var _glCopyTexSubImage3D=(x0,x1,x2,x3,x4,x5,x6,x7,x8)=>GLctx.copyTexSubImage3D(x0,x1,x2,x3,x4,x5,x6,x7,x8);var _emscripten_glCopyTexSubImage3D=_glCopyTexSubImage3D;var _glCreateProgram=()=>{var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id};var _emscripten_glCreateProgram=_glCreateProgram;var _glCreateShader=shaderType=>{var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id};var _emscripten_glCreateShader=_glCreateShader;var _glCullFace=x0=>GLctx.cullFace(x0);var _emscripten_glCullFace=_glCullFace;var _glDeleteBuffers=(n,buffers)=>{for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}};var _emscripten_glDeleteBuffers=_glDeleteBuffers;var _glDeleteFramebuffers=(n,framebuffers)=>{for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}};var _emscripten_glDeleteFramebuffers=_glDeleteFramebuffers;var _glDeleteProgram=id=>{if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null};var _emscripten_glDeleteProgram=_glDeleteProgram;var _glDeleteQueries=(n,ids)=>{for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.deleteQuery(query);GL.queries[id]=null}};var _emscripten_glDeleteQueries=_glDeleteQueries;var _glDeleteQueriesEXT=(n,ids)=>{for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}};var _emscripten_glDeleteQueriesEXT=_glDeleteQueriesEXT;var _glDeleteRenderbuffers=(n,renderbuffers)=>{for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}};var _emscripten_glDeleteRenderbuffers=_glDeleteRenderbuffers;var _glDeleteSamplers=(n,samplers)=>{for(var i=0;i>2];var sampler=GL.samplers[id];if(!sampler)continue;GLctx.deleteSampler(sampler);sampler.name=0;GL.samplers[id]=null}};var _emscripten_glDeleteSamplers=_glDeleteSamplers;var _glDeleteShader=id=>{if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null};var _emscripten_glDeleteShader=_glDeleteShader;var _glDeleteSync=id=>{if(!id)return;var sync=GL.syncs[id];if(!sync){GL.recordError(1281);return}GLctx.deleteSync(sync);sync.name=0;GL.syncs[id]=null};var _emscripten_glDeleteSync=_glDeleteSync;var _glDeleteTextures=(n,textures)=>{for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}};var _emscripten_glDeleteTextures=_glDeleteTextures;var _glDeleteTransformFeedbacks=(n,ids)=>{for(var i=0;i>2];var transformFeedback=GL.transformFeedbacks[id];if(!transformFeedback)continue;GLctx.deleteTransformFeedback(transformFeedback);transformFeedback.name=0;GL.transformFeedbacks[id]=null}};var _emscripten_glDeleteTransformFeedbacks=_glDeleteTransformFeedbacks;var _glDeleteVertexArrays=(n,vaos)=>{for(var i=0;i>2];GLctx.deleteVertexArray(GL.vaos[id]);GL.vaos[id]=null}};var _emscripten_glDeleteVertexArrays=_glDeleteVertexArrays;var _glDeleteVertexArraysOES=_glDeleteVertexArrays;var _emscripten_glDeleteVertexArraysOES=_glDeleteVertexArraysOES;var _glDepthFunc=x0=>GLctx.depthFunc(x0);var _emscripten_glDepthFunc=_glDepthFunc;var _glDepthMask=flag=>{GLctx.depthMask(!!flag)};var _emscripten_glDepthMask=_glDepthMask;var _glDepthRangef=(x0,x1)=>GLctx.depthRange(x0,x1);var _emscripten_glDepthRangef=_glDepthRangef;var _glDetachShader=(program,shader)=>{GLctx.detachShader(GL.programs[program],GL.shaders[shader])};var _emscripten_glDetachShader=_glDetachShader;var _glDisable=x0=>GLctx.disable(x0);var _emscripten_glDisable=_glDisable;var _glDisableVertexAttribArray=index=>{GLctx.disableVertexAttribArray(index)};var _emscripten_glDisableVertexAttribArray=_glDisableVertexAttribArray;var _glDrawArrays=(mode,first,count)=>{GLctx.drawArrays(mode,first,count)};var _emscripten_glDrawArrays=_glDrawArrays;var _glDrawArraysInstanced=(mode,first,count,primcount)=>{GLctx.drawArraysInstanced(mode,first,count,primcount)};var _emscripten_glDrawArraysInstanced=_glDrawArraysInstanced;var _glDrawArraysInstancedANGLE=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedANGLE=_glDrawArraysInstancedANGLE;var _glDrawArraysInstancedARB=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedARB=_glDrawArraysInstancedARB;var _glDrawArraysInstancedEXT=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedEXT=_glDrawArraysInstancedEXT;var _glDrawArraysInstancedNV=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedNV=_glDrawArraysInstancedNV;var tempFixedLengthArray=[];var _glDrawBuffers=(n,bufs)=>{var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx.drawBuffers(bufArray)};var _emscripten_glDrawBuffers=_glDrawBuffers;var _glDrawBuffersEXT=_glDrawBuffers;var _emscripten_glDrawBuffersEXT=_glDrawBuffersEXT;var _glDrawBuffersWEBGL=_glDrawBuffers;var _emscripten_glDrawBuffersWEBGL=_glDrawBuffersWEBGL;var _glDrawElements=(mode,count,type,indices)=>{GLctx.drawElements(mode,count,type,indices)};var _emscripten_glDrawElements=_glDrawElements;var _glDrawElementsInstanced=(mode,count,type,indices,primcount)=>{GLctx.drawElementsInstanced(mode,count,type,indices,primcount)};var _emscripten_glDrawElementsInstanced=_glDrawElementsInstanced;var _glDrawElementsInstancedANGLE=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedANGLE=_glDrawElementsInstancedANGLE;var _glDrawElementsInstancedARB=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedARB=_glDrawElementsInstancedARB;var _glDrawElementsInstancedEXT=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedEXT=_glDrawElementsInstancedEXT;var _glDrawElementsInstancedNV=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedNV=_glDrawElementsInstancedNV;var _glDrawRangeElements=(mode,start,end,count,type,indices)=>{_glDrawElements(mode,count,type,indices)};var _emscripten_glDrawRangeElements=_glDrawRangeElements;var _glEnable=x0=>GLctx.enable(x0);var _emscripten_glEnable=_glEnable;var _glEnableVertexAttribArray=index=>{GLctx.enableVertexAttribArray(index)};var _emscripten_glEnableVertexAttribArray=_glEnableVertexAttribArray;var _glEndQuery=x0=>GLctx.endQuery(x0);var _emscripten_glEndQuery=_glEndQuery;var _glEndQueryEXT=target=>{GLctx.disjointTimerQueryExt["endQueryEXT"](target)};var _emscripten_glEndQueryEXT=_glEndQueryEXT;var _glEndTransformFeedback=()=>GLctx.endTransformFeedback();var _emscripten_glEndTransformFeedback=_glEndTransformFeedback;var _glFenceSync=(condition,flags)=>{var sync=GLctx.fenceSync(condition,flags);if(sync){var id=GL.getNewId(GL.syncs);sync.name=id;GL.syncs[id]=sync;return id}return 0};var _emscripten_glFenceSync=_glFenceSync;var _glFinish=()=>GLctx.finish();var _emscripten_glFinish=_glFinish;var _glFlush=()=>GLctx.flush();var _emscripten_glFlush=_glFlush;var _glFramebufferRenderbuffer=(target,attachment,renderbuffertarget,renderbuffer)=>{GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])};var _emscripten_glFramebufferRenderbuffer=_glFramebufferRenderbuffer;var _glFramebufferTexture2D=(target,attachment,textarget,texture,level)=>{GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)};var _emscripten_glFramebufferTexture2D=_glFramebufferTexture2D;var _glFramebufferTextureLayer=(target,attachment,texture,level,layer)=>{GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)};var _emscripten_glFramebufferTextureLayer=_glFramebufferTextureLayer;var _glFrontFace=x0=>GLctx.frontFace(x0);var _emscripten_glFrontFace=_glFrontFace;var _glGenBuffers=(n,buffers)=>{GL.genObject(n,buffers,"createBuffer",GL.buffers)};var _emscripten_glGenBuffers=_glGenBuffers;var _glGenFramebuffers=(n,ids)=>{GL.genObject(n,ids,"createFramebuffer",GL.framebuffers)};var _emscripten_glGenFramebuffers=_glGenFramebuffers;var _glGenQueries=(n,ids)=>{GL.genObject(n,ids,"createQuery",GL.queries)};var _emscripten_glGenQueries=_glGenQueries;var _glGenQueriesEXT=(n,ids)=>{for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}};var _emscripten_glGenQueriesEXT=_glGenQueriesEXT;var _glGenRenderbuffers=(n,renderbuffers)=>{GL.genObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)};var _emscripten_glGenRenderbuffers=_glGenRenderbuffers;var _glGenSamplers=(n,samplers)=>{GL.genObject(n,samplers,"createSampler",GL.samplers)};var _emscripten_glGenSamplers=_glGenSamplers;var _glGenTextures=(n,textures)=>{GL.genObject(n,textures,"createTexture",GL.textures)};var _emscripten_glGenTextures=_glGenTextures;var _glGenTransformFeedbacks=(n,ids)=>{GL.genObject(n,ids,"createTransformFeedback",GL.transformFeedbacks)};var _emscripten_glGenTransformFeedbacks=_glGenTransformFeedbacks;var _glGenVertexArrays=(n,arrays)=>{GL.genObject(n,arrays,"createVertexArray",GL.vaos)};var _emscripten_glGenVertexArrays=_glGenVertexArrays;var _glGenVertexArraysOES=_glGenVertexArrays;var _emscripten_glGenVertexArraysOES=_glGenVertexArraysOES;var _glGenerateMipmap=x0=>GLctx.generateMipmap(x0);var _emscripten_glGenerateMipmap=_glGenerateMipmap;var __glGetActiveAttribOrUniform=(funcName,program,index,bufSize,length,size,type,name)=>{program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}};var _glGetActiveAttrib=(program,index,bufSize,length,size,type,name)=>{__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)};var _emscripten_glGetActiveAttrib=_glGetActiveAttrib;var _glGetActiveUniform=(program,index,bufSize,length,size,type,name)=>{__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)};var _emscripten_glGetActiveUniform=_glGetActiveUniform;var _glGetActiveUniformBlockName=(program,uniformBlockIndex,bufSize,length,uniformBlockName)=>{program=GL.programs[program];var result=GLctx.getActiveUniformBlockName(program,uniformBlockIndex);if(!result)return;if(uniformBlockName&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(result,uniformBlockName,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}};var _emscripten_glGetActiveUniformBlockName=_glGetActiveUniformBlockName;var _glGetActiveUniformBlockiv=(program,uniformBlockIndex,pname,params)=>{if(!params){GL.recordError(1281);return}program=GL.programs[program];if(pname==35393){var name=GLctx.getActiveUniformBlockName(program,uniformBlockIndex);HEAP32[params>>2]=name.length+1;return}var result=GLctx.getActiveUniformBlockParameter(program,uniformBlockIndex,pname);if(result===null)return;if(pname==35395){for(var i=0;i>2]=result[i]}}else{HEAP32[params>>2]=result}};var _emscripten_glGetActiveUniformBlockiv=_glGetActiveUniformBlockiv;var _glGetActiveUniformsiv=(program,uniformCount,uniformIndices,pname,params)=>{if(!params){GL.recordError(1281);return}if(uniformCount>0&&uniformIndices==0){GL.recordError(1281);return}program=GL.programs[program];var ids=[];for(var i=0;i>2])}var result=GLctx.getActiveUniforms(program,ids,pname);if(!result)return;var len=result.length;for(var i=0;i>2]=result[i]}};var _emscripten_glGetActiveUniformsiv=_glGetActiveUniformsiv;var _glGetAttachedShaders=(program,maxCount,count,shaders)=>{var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}};var _emscripten_glGetAttachedShaders=_glGetAttachedShaders;var _glGetAttribLocation=(program,name)=>GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name));var _emscripten_glGetAttribLocation=_glGetAttribLocation;var writeI53ToI64=(ptr,num)=>{HEAPU32[ptr>>2]=num;var lower=HEAPU32[ptr>>2];HEAPU32[ptr+4>>2]=(num-lower)/4294967296};var webglGetExtensions=function $webglGetExtensions(){var exts=getEmscriptenSupportedExtensions(GLctx);exts=exts.concat(exts.map(e=>"GL_"+e));return exts};var emscriptenWebGLGet=(name_,p,type)=>{if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 34814:case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break;case 33309:if(GL.currentContext.version<2){GL.recordError(1282);return}ret=webglGetExtensions().length;break;case 33307:case 33308:if(GL.currentContext.version<2){GL.recordError(1280);return}ret=name_==33307?3:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err(`GL_INVALID_ENUM in glGet${type}v: Unknown object returned from WebGL getParameter(${name_})! (error: ${e})`);return}}break;default:GL.recordError(1280);err(`GL_INVALID_ENUM in glGet${type}v: Native code calling glGet${type}v(${name_}) and it returns ${result} of type ${typeof result}!`);return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p]=ret?1:0;break}};var _glGetBooleanv=(name_,p)=>emscriptenWebGLGet(name_,p,4);var _emscripten_glGetBooleanv=_glGetBooleanv;var _glGetBufferParameteri64v=(target,value,data)=>{if(!data){GL.recordError(1281);return}writeI53ToI64(data,GLctx.getBufferParameter(target,value))};var _emscripten_glGetBufferParameteri64v=_glGetBufferParameteri64v;var _glGetBufferParameteriv=(target,value,data)=>{if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)};var _emscripten_glGetBufferParameteriv=_glGetBufferParameteriv;var _glGetError=()=>{var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error};var _emscripten_glGetError=_glGetError;var _glGetFloatv=(name_,p)=>emscriptenWebGLGet(name_,p,2);var _emscripten_glGetFloatv=_glGetFloatv;var _glGetFragDataLocation=(program,name)=>GLctx.getFragDataLocation(GL.programs[program],UTF8ToString(name));var _emscripten_glGetFragDataLocation=_glGetFragDataLocation;var _glGetFramebufferAttachmentParameteriv=(target,attachment,pname,params)=>{var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result};var _emscripten_glGetFramebufferAttachmentParameteriv=_glGetFramebufferAttachmentParameteriv;var emscriptenWebGLGetIndexed=(target,index,data,type)=>{if(!data){GL.recordError(1281);return}var result=GLctx.getIndexedParameter(target,index);var ret;switch(typeof result){case"boolean":ret=result?1:0;break;case"number":ret=result;break;case"object":if(result===null){switch(target){case 35983:case 35368:ret=0;break;default:{GL.recordError(1280);return}}}else if(result instanceof WebGLBuffer){ret=result.name|0}else{GL.recordError(1280);return}break;default:GL.recordError(1280);return}switch(type){case 1:writeI53ToI64(data,ret);break;case 0:HEAP32[data>>2]=ret;break;case 2:HEAPF32[data>>2]=ret;break;case 4:HEAP8[data]=ret?1:0;break;default:throw"internal emscriptenWebGLGetIndexed() error, bad type: "+type}};var _glGetInteger64i_v=(target,index,data)=>emscriptenWebGLGetIndexed(target,index,data,1);var _emscripten_glGetInteger64i_v=_glGetInteger64i_v;var _glGetInteger64v=(name_,p)=>{emscriptenWebGLGet(name_,p,1)};var _emscripten_glGetInteger64v=_glGetInteger64v;var _glGetIntegeri_v=(target,index,data)=>emscriptenWebGLGetIndexed(target,index,data,0);var _emscripten_glGetIntegeri_v=_glGetIntegeri_v;var _glGetIntegerv=(name_,p)=>emscriptenWebGLGet(name_,p,0);var _emscripten_glGetIntegerv=_glGetIntegerv;var _glGetInternalformativ=(target,internalformat,pname,bufSize,params)=>{if(bufSize<0){GL.recordError(1281);return}if(!params){GL.recordError(1281);return}var ret=GLctx.getInternalformatParameter(target,internalformat,pname);if(ret===null)return;for(var i=0;i>2]=ret[i]}};var _emscripten_glGetInternalformativ=_glGetInternalformativ;var _glGetProgramBinary=(program,bufSize,length,binaryFormat,binary)=>{GL.recordError(1282)};var _emscripten_glGetProgramBinary=_glGetProgramBinary;var _glGetProgramInfoLog=(program,maxLength,length,infoLog)=>{var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _emscripten_glGetProgramInfoLog=_glGetProgramInfoLog;var _glGetProgramiv=(program,pname,p)=>{if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}};var _emscripten_glGetProgramiv=_glGetProgramiv;var _glGetQueryObjecti64vEXT=(id,pname,params)=>{if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;if(GL.currentContext.version<2){param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}else{param=GLctx.getQueryParameter(query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)};var _emscripten_glGetQueryObjecti64vEXT=_glGetQueryObjecti64vEXT;var _glGetQueryObjectivEXT=(id,pname,params)=>{if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret};var _emscripten_glGetQueryObjectivEXT=_glGetQueryObjectivEXT;var _glGetQueryObjectui64vEXT=_glGetQueryObjecti64vEXT;var _emscripten_glGetQueryObjectui64vEXT=_glGetQueryObjectui64vEXT;var _glGetQueryObjectuiv=(id,pname,params)=>{if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.getQueryParameter(query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret};var _emscripten_glGetQueryObjectuiv=_glGetQueryObjectuiv;var _glGetQueryObjectuivEXT=_glGetQueryObjectivEXT;var _emscripten_glGetQueryObjectuivEXT=_glGetQueryObjectuivEXT;var _glGetQueryiv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getQuery(target,pname)};var _emscripten_glGetQueryiv=_glGetQueryiv;var _glGetQueryivEXT=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)};var _emscripten_glGetQueryivEXT=_glGetQueryivEXT;var _glGetRenderbufferParameteriv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)};var _emscripten_glGetRenderbufferParameteriv=_glGetRenderbufferParameteriv;var _glGetSamplerParameterfv=(sampler,pname,params)=>{if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getSamplerParameter(GL.samplers[sampler],pname)};var _emscripten_glGetSamplerParameterfv=_glGetSamplerParameterfv;var _glGetSamplerParameteriv=(sampler,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getSamplerParameter(GL.samplers[sampler],pname)};var _emscripten_glGetSamplerParameteriv=_glGetSamplerParameteriv;var _glGetShaderInfoLog=(shader,maxLength,length,infoLog)=>{var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _emscripten_glGetShaderInfoLog=_glGetShaderInfoLog;var _glGetShaderPrecisionFormat=(shaderType,precisionType,range,precision)=>{var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision};var _emscripten_glGetShaderPrecisionFormat=_glGetShaderPrecisionFormat;var _glGetShaderSource=(shader,bufSize,length,source)=>{var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _emscripten_glGetShaderSource=_glGetShaderSource;var _glGetShaderiv=(shader,pname,p)=>{if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}};var _emscripten_glGetShaderiv=_glGetShaderiv;var _glGetString=name_=>{var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:ret=stringToNewUTF8(webglGetExtensions().join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s?stringToNewUTF8(s):0;break;case 7938:var glVersion=GLctx.getParameter(7938);if(GL.currentContext.version>=2)glVersion=`OpenGL ES 3.0 (${glVersion})`;else{glVersion=`OpenGL ES 2.0 (${glVersion})`}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion=`OpenGL ES GLSL ES ${ver_num[1]} (${glslVersion})`}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret};var _emscripten_glGetString=_glGetString;var _glGetStringi=(name,index)=>{if(GL.currentContext.version<2){GL.recordError(1282);return 0}var stringiCache=GL.stringiCache[name];if(stringiCache){if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index]}switch(name){case 7939:var exts=webglGetExtensions().map(stringToNewUTF8);stringiCache=GL.stringiCache[name]=exts;if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index];default:GL.recordError(1280);return 0}};var _emscripten_glGetStringi=_glGetStringi;var _glGetSynciv=(sync,pname,bufSize,length,values)=>{if(bufSize<0){GL.recordError(1281);return}if(!values){GL.recordError(1281);return}var ret=GLctx.getSyncParameter(GL.syncs[sync],pname);if(ret!==null){HEAP32[values>>2]=ret;if(length)HEAP32[length>>2]=1}};var _emscripten_glGetSynciv=_glGetSynciv;var _glGetTexParameterfv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)};var _emscripten_glGetTexParameterfv=_glGetTexParameterfv;var _glGetTexParameteriv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)};var _emscripten_glGetTexParameteriv=_glGetTexParameteriv;var _glGetTransformFeedbackVarying=(program,index,bufSize,length,size,type,name)=>{program=GL.programs[program];var info=GLctx.getTransformFeedbackVarying(program,index);if(!info)return;if(name&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type};var _emscripten_glGetTransformFeedbackVarying=_glGetTransformFeedbackVarying;var _glGetUniformBlockIndex=(program,uniformBlockName)=>GLctx.getUniformBlockIndex(GL.programs[program],UTF8ToString(uniformBlockName));var _emscripten_glGetUniformBlockIndex=_glGetUniformBlockIndex;var _glGetUniformIndices=(program,uniformCount,uniformNames,uniformIndices)=>{if(!uniformIndices){GL.recordError(1281);return}if(uniformCount>0&&(uniformNames==0||uniformIndices==0)){GL.recordError(1281);return}program=GL.programs[program];var names=[];for(var i=0;i>2]));var result=GLctx.getUniformIndices(program,names);if(!result)return;var len=result.length;for(var i=0;i>2]=result[i]}};var _emscripten_glGetUniformIndices=_glGetUniformIndices;var jstoi_q=str=>parseInt(str);var webglGetLeftBracePos=name=>name.slice(-1)=="]"&&name.lastIndexOf("[");var webglPrepareUniformLocationsBeforeFirstUse=program=>{var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j{name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex{var p=GLctx.currentProgram;if(p){var webglLoc=p.uniformLocsById[location];if(typeof webglLoc=="number"){p.uniformLocsById[location]=webglLoc=GLctx.getUniformLocation(p,p.uniformArrayNamesById[location]+(webglLoc>0?`[${webglLoc}]`:""))}return webglLoc}else{GL.recordError(1282)}};var emscriptenWebGLGetUniform=(program,location,params,type)=>{if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}};var _glGetUniformfv=(program,location,params)=>{emscriptenWebGLGetUniform(program,location,params,2)};var _emscripten_glGetUniformfv=_glGetUniformfv;var _glGetUniformiv=(program,location,params)=>{emscriptenWebGLGetUniform(program,location,params,0)};var _emscripten_glGetUniformiv=_glGetUniformiv;var _glGetUniformuiv=(program,location,params)=>emscriptenWebGLGetUniform(program,location,params,0);var _emscripten_glGetUniformuiv=_glGetUniformuiv;var emscriptenWebGLGetVertexAttrib=(index,pname,params,type)=>{if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}};var _glGetVertexAttribIiv=(index,pname,params)=>{emscriptenWebGLGetVertexAttrib(index,pname,params,0)};var _emscripten_glGetVertexAttribIiv=_glGetVertexAttribIiv;var _glGetVertexAttribIuiv=_glGetVertexAttribIiv;var _emscripten_glGetVertexAttribIuiv=_glGetVertexAttribIuiv;var _glGetVertexAttribPointerv=(index,pname,pointer)=>{if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)};var _emscripten_glGetVertexAttribPointerv=_glGetVertexAttribPointerv;var _glGetVertexAttribfv=(index,pname,params)=>{emscriptenWebGLGetVertexAttrib(index,pname,params,2)};var _emscripten_glGetVertexAttribfv=_glGetVertexAttribfv;var _glGetVertexAttribiv=(index,pname,params)=>{emscriptenWebGLGetVertexAttrib(index,pname,params,5)};var _emscripten_glGetVertexAttribiv=_glGetVertexAttribiv;var _glHint=(x0,x1)=>GLctx.hint(x0,x1);var _emscripten_glHint=_glHint;var _glInvalidateFramebuffer=(target,numAttachments,attachments)=>{var list=tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx.invalidateFramebuffer(target,list)};var _emscripten_glInvalidateFramebuffer=_glInvalidateFramebuffer;var _glInvalidateSubFramebuffer=(target,numAttachments,attachments,x,y,width,height)=>{var list=tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx.invalidateSubFramebuffer(target,list,x,y,width,height)};var _emscripten_glInvalidateSubFramebuffer=_glInvalidateSubFramebuffer;var _glIsBuffer=buffer=>{var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)};var _emscripten_glIsBuffer=_glIsBuffer;var _glIsEnabled=x0=>GLctx.isEnabled(x0);var _emscripten_glIsEnabled=_glIsEnabled;var _glIsFramebuffer=framebuffer=>{var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)};var _emscripten_glIsFramebuffer=_glIsFramebuffer;var _glIsProgram=program=>{program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)};var _emscripten_glIsProgram=_glIsProgram;var _glIsQuery=id=>{var query=GL.queries[id];if(!query)return 0;return GLctx.isQuery(query)};var _emscripten_glIsQuery=_glIsQuery;var _glIsQueryEXT=id=>{var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)};var _emscripten_glIsQueryEXT=_glIsQueryEXT;var _glIsRenderbuffer=renderbuffer=>{var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)};var _emscripten_glIsRenderbuffer=_glIsRenderbuffer;var _glIsSampler=id=>{var sampler=GL.samplers[id];if(!sampler)return 0;return GLctx.isSampler(sampler)};var _emscripten_glIsSampler=_glIsSampler;var _glIsShader=shader=>{var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)};var _emscripten_glIsShader=_glIsShader;var _glIsSync=sync=>GLctx.isSync(GL.syncs[sync]);var _emscripten_glIsSync=_glIsSync;var _glIsTexture=id=>{var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)};var _emscripten_glIsTexture=_glIsTexture;var _glIsTransformFeedback=id=>GLctx.isTransformFeedback(GL.transformFeedbacks[id]);var _emscripten_glIsTransformFeedback=_glIsTransformFeedback;var _glIsVertexArray=array=>{var vao=GL.vaos[array];if(!vao)return 0;return GLctx.isVertexArray(vao)};var _emscripten_glIsVertexArray=_glIsVertexArray;var _glIsVertexArrayOES=_glIsVertexArray;var _emscripten_glIsVertexArrayOES=_glIsVertexArrayOES;var _glLineWidth=x0=>GLctx.lineWidth(x0);var _emscripten_glLineWidth=_glLineWidth;var _glLinkProgram=program=>{program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}};var _emscripten_glLinkProgram=_glLinkProgram;var _glPauseTransformFeedback=()=>GLctx.pauseTransformFeedback();var _emscripten_glPauseTransformFeedback=_glPauseTransformFeedback;var _glPixelStorei=(pname,param)=>{if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)};var _emscripten_glPixelStorei=_glPixelStorei;var _glPolygonOffset=(x0,x1)=>GLctx.polygonOffset(x0,x1);var _emscripten_glPolygonOffset=_glPolygonOffset;var _glProgramBinary=(program,binaryFormat,binary,length)=>{GL.recordError(1280)};var _emscripten_glProgramBinary=_glProgramBinary;var _glProgramParameteri=(program,pname,value)=>{GL.recordError(1280)};var _emscripten_glProgramParameteri=_glProgramParameteri;var _glQueryCounterEXT=(id,target)=>{GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)};var _emscripten_glQueryCounterEXT=_glQueryCounterEXT;var _glReadBuffer=x0=>GLctx.readBuffer(x0);var _emscripten_glReadBuffer=_glReadBuffer;var computeUnpackAlignedImageSize=(width,height,sizePerPixel,alignment)=>{function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize};var colorChannelsInGlTextureFormat=format=>{var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1};var heapObjectForWebGLType=type=>{type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16};var toTypedArrayIndex=(pointer,heap)=>pointer>>>31-Math.clz32(heap.BYTES_PER_ELEMENT);var emscriptenWebGLGetTexPixelData=(type,format,width,height,pixels,internalFormat)=>{var heap=heapObjectForWebGLType(type);var sizePerPixel=colorChannelsInGlTextureFormat(format)*heap.BYTES_PER_ELEMENT;var bytes=computeUnpackAlignedImageSize(width,height,sizePerPixel,GL.unpackAlignment);return heap.subarray(toTypedArrayIndex(pixels,heap),toTypedArrayIndex(pixels+bytes,heap))};var _glReadPixels=(x,y,width,height,format,type,pixels)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);var target=toTypedArrayIndex(pixels,heap);GLctx.readPixels(x,y,width,height,format,type,heap,target)}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)};var _emscripten_glReadPixels=_glReadPixels;var _glReleaseShaderCompiler=()=>{};var _emscripten_glReleaseShaderCompiler=_glReleaseShaderCompiler;var _glRenderbufferStorage=(x0,x1,x2,x3)=>GLctx.renderbufferStorage(x0,x1,x2,x3);var _emscripten_glRenderbufferStorage=_glRenderbufferStorage;var _glRenderbufferStorageMultisample=(x0,x1,x2,x3,x4)=>GLctx.renderbufferStorageMultisample(x0,x1,x2,x3,x4);var _emscripten_glRenderbufferStorageMultisample=_glRenderbufferStorageMultisample;var _glResumeTransformFeedback=()=>GLctx.resumeTransformFeedback();var _emscripten_glResumeTransformFeedback=_glResumeTransformFeedback;var _glSampleCoverage=(value,invert)=>{GLctx.sampleCoverage(value,!!invert)};var _emscripten_glSampleCoverage=_glSampleCoverage;var _glSamplerParameterf=(sampler,pname,param)=>{GLctx.samplerParameterf(GL.samplers[sampler],pname,param)};var _emscripten_glSamplerParameterf=_glSamplerParameterf;var _glSamplerParameterfv=(sampler,pname,params)=>{var param=HEAPF32[params>>2];GLctx.samplerParameterf(GL.samplers[sampler],pname,param)};var _emscripten_glSamplerParameterfv=_glSamplerParameterfv;var _glSamplerParameteri=(sampler,pname,param)=>{GLctx.samplerParameteri(GL.samplers[sampler],pname,param)};var _emscripten_glSamplerParameteri=_glSamplerParameteri;var _glSamplerParameteriv=(sampler,pname,params)=>{var param=HEAP32[params>>2];GLctx.samplerParameteri(GL.samplers[sampler],pname,param)};var _emscripten_glSamplerParameteriv=_glSamplerParameteriv;var _glScissor=(x0,x1,x2,x3)=>GLctx.scissor(x0,x1,x2,x3);var _emscripten_glScissor=_glScissor;var _glShaderBinary=(count,shaders,binaryformat,binary,length)=>{GL.recordError(1280)};var _emscripten_glShaderBinary=_glShaderBinary;var _glShaderSource=(shader,count,string,length)=>{var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)};var _emscripten_glShaderSource=_glShaderSource;var _glStencilFunc=(x0,x1,x2)=>GLctx.stencilFunc(x0,x1,x2);var _emscripten_glStencilFunc=_glStencilFunc;var _glStencilFuncSeparate=(x0,x1,x2,x3)=>GLctx.stencilFuncSeparate(x0,x1,x2,x3);var _emscripten_glStencilFuncSeparate=_glStencilFuncSeparate;var _glStencilMask=x0=>GLctx.stencilMask(x0);var _emscripten_glStencilMask=_glStencilMask;var _glStencilMaskSeparate=(x0,x1)=>GLctx.stencilMaskSeparate(x0,x1);var _emscripten_glStencilMaskSeparate=_glStencilMaskSeparate;var _glStencilOp=(x0,x1,x2)=>GLctx.stencilOp(x0,x1,x2);var _emscripten_glStencilOp=_glStencilOp;var _glStencilOpSeparate=(x0,x1,x2,x3)=>GLctx.stencilOpSeparate(x0,x1,x2,x3);var _emscripten_glStencilOpSeparate=_glStencilOpSeparate;var _glTexImage2D=(target,level,internalFormat,width,height,border,format,type,pixels)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,toTypedArrayIndex(pixels,heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)};var _emscripten_glTexImage2D=_glTexImage2D;var _glTexImage3D=(target,level,internalFormat,width,height,depth,border,format,type,pixels)=>{if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,heap,toTypedArrayIndex(pixels,heap))}else{GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,null)}};var _emscripten_glTexImage3D=_glTexImage3D;var _glTexParameterf=(x0,x1,x2)=>GLctx.texParameterf(x0,x1,x2);var _emscripten_glTexParameterf=_glTexParameterf;var _glTexParameterfv=(target,pname,params)=>{var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)};var _emscripten_glTexParameterfv=_glTexParameterfv;var _glTexParameteri=(x0,x1,x2)=>GLctx.texParameteri(x0,x1,x2);var _emscripten_glTexParameteri=_glTexParameteri;var _glTexParameteriv=(target,pname,params)=>{var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)};var _emscripten_glTexParameteriv=_glTexParameteriv;var _glTexStorage2D=(x0,x1,x2,x3,x4)=>GLctx.texStorage2D(x0,x1,x2,x3,x4);var _emscripten_glTexStorage2D=_glTexStorage2D;var _glTexStorage3D=(x0,x1,x2,x3,x4,x5)=>GLctx.texStorage3D(x0,x1,x2,x3,x4,x5);var _emscripten_glTexStorage3D=_glTexStorage3D;var _glTexSubImage2D=(target,level,xoffset,yoffset,width,height,format,type,pixels)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,heap,toTypedArrayIndex(pixels,heap));return}}var pixelData=pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0):null;GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)};var _emscripten_glTexSubImage2D=_glTexSubImage2D;var _glTexSubImage3D=(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)=>{if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,heap,toTypedArrayIndex(pixels,heap))}else{GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}};var _emscripten_glTexSubImage3D=_glTexSubImage3D;var _glTransformFeedbackVaryings=(program,count,varyings,bufferMode)=>{program=GL.programs[program];var vars=[];for(var i=0;i>2]));GLctx.transformFeedbackVaryings(program,vars,bufferMode)};var _emscripten_glTransformFeedbackVaryings=_glTransformFeedbackVaryings;var _glUniform1f=(location,v0)=>{GLctx.uniform1f(webglGetUniformLocation(location),v0)};var _emscripten_glUniform1f=_glUniform1f;var miniTempWebGLFloatBuffers=[];var _glUniform1fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform1fv(webglGetUniformLocation(location),HEAPF32,value>>2,count);return}if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform1fv=_glUniform1fv;var _glUniform1i=(location,v0)=>{GLctx.uniform1i(webglGetUniformLocation(location),v0)};var _emscripten_glUniform1i=_glUniform1i;var miniTempWebGLIntBuffers=[];var _glUniform1iv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform1iv(webglGetUniformLocation(location),HEAP32,value>>2,count);return}if(count<=288){var view=miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform1iv=_glUniform1iv;var _glUniform1ui=(location,v0)=>{GLctx.uniform1ui(webglGetUniformLocation(location),v0)};var _emscripten_glUniform1ui=_glUniform1ui;var _glUniform1uiv=(location,count,value)=>{count&&GLctx.uniform1uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count)};var _emscripten_glUniform1uiv=_glUniform1uiv;var _glUniform2f=(location,v0,v1)=>{GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)};var _emscripten_glUniform2f=_glUniform2f;var _glUniform2fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform2fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*2);return}if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform2fv=_glUniform2fv;var _glUniform2i=(location,v0,v1)=>{GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)};var _emscripten_glUniform2i=_glUniform2i;var _glUniform2iv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform2iv(webglGetUniformLocation(location),HEAP32,value>>2,count*2);return}if(count<=144){var view=miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform2iv=_glUniform2iv;var _glUniform2ui=(location,v0,v1)=>{GLctx.uniform2ui(webglGetUniformLocation(location),v0,v1)};var _emscripten_glUniform2ui=_glUniform2ui;var _glUniform2uiv=(location,count,value)=>{count&&GLctx.uniform2uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*2)};var _emscripten_glUniform2uiv=_glUniform2uiv;var _glUniform3f=(location,v0,v1,v2)=>{GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)};var _emscripten_glUniform3f=_glUniform3f;var _glUniform3fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform3fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*3);return}if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform3fv=_glUniform3fv;var _glUniform3i=(location,v0,v1,v2)=>{GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)};var _emscripten_glUniform3i=_glUniform3i;var _glUniform3iv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform3iv(webglGetUniformLocation(location),HEAP32,value>>2,count*3);return}if(count<=96){var view=miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform3iv=_glUniform3iv;var _glUniform3ui=(location,v0,v1,v2)=>{GLctx.uniform3ui(webglGetUniformLocation(location),v0,v1,v2)};var _emscripten_glUniform3ui=_glUniform3ui;var _glUniform3uiv=(location,count,value)=>{count&&GLctx.uniform3uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*3)};var _emscripten_glUniform3uiv=_glUniform3uiv;var _glUniform4f=(location,v0,v1,v2,v3)=>{GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)};var _emscripten_glUniform4f=_glUniform4f;var _glUniform4fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform4fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value=value>>2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform4fv=_glUniform4fv;var _glUniform4i=(location,v0,v1,v2,v3)=>{GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)};var _emscripten_glUniform4i=_glUniform4i;var _glUniform4iv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform4iv(webglGetUniformLocation(location),HEAP32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform4iv=_glUniform4iv;var _glUniform4ui=(location,v0,v1,v2,v3)=>{GLctx.uniform4ui(webglGetUniformLocation(location),v0,v1,v2,v3)};var _emscripten_glUniform4ui=_glUniform4ui;var _glUniform4uiv=(location,count,value)=>{count&&GLctx.uniform4uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*4)};var _emscripten_glUniform4uiv=_glUniform4uiv;var _glUniformBlockBinding=(program,uniformBlockIndex,uniformBlockBinding)=>{program=GL.programs[program];GLctx.uniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding)};var _emscripten_glUniformBlockBinding=_glUniformBlockBinding;var _glUniformMatrix2fv=(location,count,transpose,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)};var _emscripten_glUniformMatrix2fv=_glUniformMatrix2fv;var _glUniformMatrix2x3fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix2x3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*6)};var _emscripten_glUniformMatrix2x3fv=_glUniformMatrix2x3fv;var _glUniformMatrix2x4fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix2x4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*8)};var _emscripten_glUniformMatrix2x4fv=_glUniformMatrix2x4fv;var _glUniformMatrix3fv=(location,count,transpose,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*9);return}if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)};var _emscripten_glUniformMatrix3fv=_glUniformMatrix3fv;var _glUniformMatrix3x2fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix3x2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*6)};var _emscripten_glUniformMatrix3x2fv=_glUniformMatrix3x2fv;var _glUniformMatrix3x4fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix3x4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*12)};var _emscripten_glUniformMatrix3x4fv=_glUniformMatrix3x4fv;var _glUniformMatrix4fv=(location,count,transpose,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*16);return}if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value=value>>2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)};var _emscripten_glUniformMatrix4fv=_glUniformMatrix4fv;var _glUniformMatrix4x2fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix4x2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*8)};var _emscripten_glUniformMatrix4x2fv=_glUniformMatrix4x2fv;var _glUniformMatrix4x3fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix4x3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*12)};var _emscripten_glUniformMatrix4x3fv=_glUniformMatrix4x3fv;var _glUseProgram=program=>{program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program};var _emscripten_glUseProgram=_glUseProgram;var _glValidateProgram=program=>{GLctx.validateProgram(GL.programs[program])};var _emscripten_glValidateProgram=_glValidateProgram;var _glVertexAttrib1f=(x0,x1)=>GLctx.vertexAttrib1f(x0,x1);var _emscripten_glVertexAttrib1f=_glVertexAttrib1f;var _glVertexAttrib1fv=(index,v)=>{GLctx.vertexAttrib1f(index,HEAPF32[v>>2])};var _emscripten_glVertexAttrib1fv=_glVertexAttrib1fv;var _glVertexAttrib2f=(x0,x1,x2)=>GLctx.vertexAttrib2f(x0,x1,x2);var _emscripten_glVertexAttrib2f=_glVertexAttrib2f;var _glVertexAttrib2fv=(index,v)=>{GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])};var _emscripten_glVertexAttrib2fv=_glVertexAttrib2fv;var _glVertexAttrib3f=(x0,x1,x2,x3)=>GLctx.vertexAttrib3f(x0,x1,x2,x3);var _emscripten_glVertexAttrib3f=_glVertexAttrib3f;var _glVertexAttrib3fv=(index,v)=>{GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])};var _emscripten_glVertexAttrib3fv=_glVertexAttrib3fv;var _glVertexAttrib4f=(x0,x1,x2,x3,x4)=>GLctx.vertexAttrib4f(x0,x1,x2,x3,x4);var _emscripten_glVertexAttrib4f=_glVertexAttrib4f;var _glVertexAttrib4fv=(index,v)=>{GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])};var _emscripten_glVertexAttrib4fv=_glVertexAttrib4fv;var _glVertexAttribDivisor=(index,divisor)=>{GLctx.vertexAttribDivisor(index,divisor)};var _emscripten_glVertexAttribDivisor=_glVertexAttribDivisor;var _glVertexAttribDivisorANGLE=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorANGLE=_glVertexAttribDivisorANGLE;var _glVertexAttribDivisorARB=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorARB=_glVertexAttribDivisorARB;var _glVertexAttribDivisorEXT=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorEXT=_glVertexAttribDivisorEXT;var _glVertexAttribDivisorNV=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorNV=_glVertexAttribDivisorNV;var _glVertexAttribI4i=(x0,x1,x2,x3,x4)=>GLctx.vertexAttribI4i(x0,x1,x2,x3,x4);var _emscripten_glVertexAttribI4i=_glVertexAttribI4i;var _glVertexAttribI4iv=(index,v)=>{GLctx.vertexAttribI4i(index,HEAP32[v>>2],HEAP32[v+4>>2],HEAP32[v+8>>2],HEAP32[v+12>>2])};var _emscripten_glVertexAttribI4iv=_glVertexAttribI4iv;var _glVertexAttribI4ui=(x0,x1,x2,x3,x4)=>GLctx.vertexAttribI4ui(x0,x1,x2,x3,x4);var _emscripten_glVertexAttribI4ui=_glVertexAttribI4ui;var _glVertexAttribI4uiv=(index,v)=>{GLctx.vertexAttribI4ui(index,HEAPU32[v>>2],HEAPU32[v+4>>2],HEAPU32[v+8>>2],HEAPU32[v+12>>2])};var _emscripten_glVertexAttribI4uiv=_glVertexAttribI4uiv;var _glVertexAttribIPointer=(index,size,type,stride,ptr)=>{GLctx.vertexAttribIPointer(index,size,type,stride,ptr)};var _emscripten_glVertexAttribIPointer=_glVertexAttribIPointer;var _glVertexAttribPointer=(index,size,type,normalized,stride,ptr)=>{GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)};var _emscripten_glVertexAttribPointer=_glVertexAttribPointer;var _glViewport=(x0,x1,x2,x3)=>GLctx.viewport(x0,x1,x2,x3);var _emscripten_glViewport=_glViewport;var _glWaitSync=(sync,flags,timeout_low,timeout_high)=>{var timeout=convertI32PairToI53(timeout_low,timeout_high);GLctx.waitSync(GL.syncs[sync],flags,timeout)};var _emscripten_glWaitSync=_glWaitSync;var _emscripten_has_asyncify=()=>0;var _emscripten_memcpy_js=(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num);var doRequestFullscreen=(target,strategy)=>{if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;if(!target.requestFullscreen&&!target.webkitRequestFullscreen){return-3}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(strategy.deferUntilInEventHandler){JSEvents.deferCall(JSEvents_requestFullscreen,1,[target,strategy]);return 1}return-2}return JSEvents_requestFullscreen(target,strategy)};var _emscripten_request_fullscreen_strategy=(target,deferUntilInEventHandler,fullscreenStrategy)=>{var strategy={scaleMode:HEAP32[fullscreenStrategy>>2],canvasResolutionScaleMode:HEAP32[fullscreenStrategy+4>>2],filteringMode:HEAP32[fullscreenStrategy+8>>2],deferUntilInEventHandler:deferUntilInEventHandler,canvasResizedCallback:HEAP32[fullscreenStrategy+12>>2],canvasResizedCallbackUserData:HEAP32[fullscreenStrategy+16>>2]};return doRequestFullscreen(target,strategy)};var _emscripten_request_pointerlock=(target,deferUntilInEventHandler)=>{target=findEventTarget(target);if(!target)return-4;if(!target.requestPointerLock){return-1}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(deferUntilInEventHandler){JSEvents.deferCall(requestPointerLock,2,[target]);return 1}return-2}return requestPointerLock(target)};var abortOnCannotGrowMemory=requestedSize=>{abort("OOM")};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;abortOnCannotGrowMemory(requestedSize)};var _emscripten_sample_gamepad_data=()=>{try{if(navigator.getGamepads)return(JSEvents.lastGamepadState=navigator.getGamepads())?0:-1}catch(e){navigator.getGamepads=null}return-1};var registerBeforeUnloadEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString)=>{var beforeUnloadEventHandlerFunc=(e=event)=>{var confirmationMessage=getWasmTableEntry(callbackfunc)(eventTypeId,0,userData);if(confirmationMessage){confirmationMessage=UTF8ToString(confirmationMessage)}if(confirmationMessage){e.preventDefault();e.returnValue=confirmationMessage;return confirmationMessage}};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:beforeUnloadEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_beforeunload_callback_on_thread=(userData,callbackfunc,targetThread)=>{if(typeof onbeforeunload=="undefined")return-1;if(targetThread!==1)return-5;return registerBeforeUnloadEventCallback(2,userData,true,callbackfunc,28,"beforeunload")};var registerFocusEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.focusEvent)JSEvents.focusEvent=_malloc(256);var focusEventHandlerFunc=(e=event)=>{var nodeName=JSEvents.getNodeNameForTarget(e.target);var id=e.target.id?e.target.id:"";var focusEvent=JSEvents.focusEvent;stringToUTF8(nodeName,focusEvent+0,128);stringToUTF8(id,focusEvent+128,128);if(getWasmTableEntry(callbackfunc)(eventTypeId,focusEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:focusEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_blur_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,"blur",targetThread);var _emscripten_set_element_css_size=(target,width,height)=>{target=findEventTarget(target);if(!target)return-4;target.style.width=width+"px";target.style.height=height+"px";return 0};var _emscripten_set_focus_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,"focus",targetThread);var fillFullscreenChangeEventData=eventStruct=>{var fullscreenElement=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;var isFullscreen=!!fullscreenElement;HEAP32[eventStruct>>2]=isFullscreen;HEAP32[eventStruct+4>>2]=JSEvents.fullscreenEnabled();var reportedElement=isFullscreen?fullscreenElement:JSEvents.previousFullscreenElement;var nodeName=JSEvents.getNodeNameForTarget(reportedElement);var id=reportedElement?.id||"";stringToUTF8(nodeName,eventStruct+8,128);stringToUTF8(id,eventStruct+136,128);HEAP32[eventStruct+264>>2]=reportedElement?reportedElement.clientWidth:0;HEAP32[eventStruct+268>>2]=reportedElement?reportedElement.clientHeight:0;HEAP32[eventStruct+272>>2]=screen.width;HEAP32[eventStruct+276>>2]=screen.height;if(isFullscreen){JSEvents.previousFullscreenElement=fullscreenElement}};var registerFullscreenChangeEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.fullscreenChangeEvent)JSEvents.fullscreenChangeEvent=_malloc(280);var fullscreenChangeEventhandlerFunc=(e=event)=>{var fullscreenChangeEvent=JSEvents.fullscreenChangeEvent;fillFullscreenChangeEventData(fullscreenChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,fullscreenChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:fullscreenChangeEventhandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_fullscreenchange_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>{if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"webkitfullscreenchange",targetThread);return registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"fullscreenchange",targetThread)};var registerGamepadEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=(e=event)=>{var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(getWasmTableEntry(callbackfunc)(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_gamepadconnected_callback_on_thread=(userData,useCapture,callbackfunc,targetThread)=>{if(_emscripten_sample_gamepad_data())return-1;return registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread)};var _emscripten_set_gamepaddisconnected_callback_on_thread=(userData,useCapture,callbackfunc,targetThread)=>{if(_emscripten_sample_gamepad_data())return-1;return registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread)};var registerKeyEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(176);var keyEventHandlerFunc=e=>{var keyEventData=JSEvents.keyEvent;HEAPF64[keyEventData>>3]=e.timeStamp;var idx=keyEventData>>2;HEAP32[idx+2]=e.location;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;HEAP32[idx+7]=e.repeat;HEAP32[idx+8]=e.charCode;HEAP32[idx+9]=e.keyCode;HEAP32[idx+10]=e.which;stringToUTF8(e.key||"",keyEventData+44,32);stringToUTF8(e.code||"",keyEventData+76,32);stringToUTF8(e.char||"",keyEventData+108,32);stringToUTF8(e.locale||"",keyEventData+140,32);if(getWasmTableEntry(callbackfunc)(eventTypeId,keyEventData,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:keyEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_keydown_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread);var _emscripten_set_keypress_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerKeyEventCallback(target,userData,useCapture,callbackfunc,1,"keypress",targetThread);var _emscripten_set_keyup_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread);var _emscripten_set_main_loop=(func,fps,simulateInfiniteLoop)=>{var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)};var fillMouseEventData=(eventStruct,e,target)=>{HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-(rect.left|0);HEAP32[idx+14]=e.clientY-(rect.top|0)};var registerMouseEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=(e=event)=>{fillMouseEventData(JSEvents.mouseEvent,e,target);if(getWasmTableEntry(callbackfunc)(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_mousedown_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread);var _emscripten_set_mouseenter_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,33,"mouseenter",targetThread);var _emscripten_set_mouseleave_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,34,"mouseleave",targetThread);var _emscripten_set_mousemove_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread);var _emscripten_set_mouseup_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",targetThread);var fillPointerlockChangeEventData=eventStruct=>{var pointerLockElement=document.pointerLockElement||document.mozPointerLockElement||document.webkitPointerLockElement||document.msPointerLockElement;var isPointerlocked=!!pointerLockElement;HEAP32[eventStruct>>2]=isPointerlocked;var nodeName=JSEvents.getNodeNameForTarget(pointerLockElement);var id=pointerLockElement?.id||"";stringToUTF8(nodeName,eventStruct+4,128);stringToUTF8(id,eventStruct+132,128)};var registerPointerlockChangeEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.pointerlockChangeEvent)JSEvents.pointerlockChangeEvent=_malloc(260);var pointerlockChangeEventHandlerFunc=(e=event)=>{var pointerlockChangeEvent=JSEvents.pointerlockChangeEvent;fillPointerlockChangeEventData(pointerlockChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,pointerlockChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:pointerlockChangeEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_pointerlockchange_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>{if(!document||!document.body||!document.body.requestPointerLock&&!document.body.mozRequestPointerLock&&!document.body.webkitRequestPointerLock&&!document.body.msRequestPointerLock){return-1}target=findEventTarget(target);if(!target)return-4;registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"mozpointerlockchange",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"webkitpointerlockchange",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"mspointerlockchange",targetThread);return registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"pointerlockchange",targetThread)};var registerUiEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=(e=event)=>{if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=0;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset|0;HEAP32[uiEvent+32>>2]=pageYOffset|0;if(getWasmTableEntry(callbackfunc)(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_resize_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);var registerTouchEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=e=>{var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-(targetRect.left|0);HEAP32[idx+10]=t.clientY-(targetRect.top|0);idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(getWasmTableEntry(callbackfunc)(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_touchcancel_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);var _emscripten_set_touchend_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);var _emscripten_set_touchmove_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);var _emscripten_set_touchstart_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);var fillVisibilityChangeEventData=eventStruct=>{var visibilityStates=["hidden","visible","prerender","unloaded"];var visibilityState=visibilityStates.indexOf(document.visibilityState);HEAP32[eventStruct>>2]=document.hidden;HEAP32[eventStruct+4>>2]=visibilityState};var registerVisibilityChangeEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.visibilityChangeEvent)JSEvents.visibilityChangeEvent=_malloc(8);var visibilityChangeEventHandlerFunc=(e=event)=>{var visibilityChangeEvent=JSEvents.visibilityChangeEvent;fillVisibilityChangeEventData(visibilityChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,visibilityChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:visibilityChangeEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_visibilitychange_callback_on_thread=(userData,useCapture,callbackfunc,targetThread)=>{if(!specialHTMLTargets[1]){return-4}return registerVisibilityChangeEventCallback(specialHTMLTargets[1],userData,useCapture,callbackfunc,21,"visibilitychange",targetThread)};var registerWheelEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=(e=event)=>{var wheelEvent=JSEvents.wheelEvent;fillMouseEventData(wheelEvent,e,target);HEAPF64[wheelEvent+72>>3]=e["deltaX"];HEAPF64[wheelEvent+80>>3]=e["deltaY"];HEAPF64[wheelEvent+88>>3]=e["deltaZ"];HEAP32[wheelEvent+96>>2]=e["deltaMode"];if(getWasmTableEntry(callbackfunc)(eventTypeId,wheelEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:wheelHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_wheel_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>{target=findEventTarget(target);if(!target)return-4;if(typeof target.onwheel!="undefined"){return registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread)}else{return-1}};var _emscripten_set_window_title=title=>document.title=UTF8ToString(title);var _emscripten_sleep=()=>{throw"Please compile your program with async support in order to use asynchronous operations like emscripten_sleep"};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>2]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!=="undefined"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var arraySum=(array,index)=>{var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum};var MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];var addDays=(date,days)=>{var newDate=new Date(date.getTime());while(days>0){var leap=isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var _strftime=(s,maxsize,format,tm)=>{var tm_zone=HEAPU32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}return thisDate.getFullYear()}return thisDate.getFullYear()-1}var EXPANSION_RULES_2={"%a":date=>WEEKDAYS[date.tm_wday].substring(0,3),"%A":date=>WEEKDAYS[date.tm_wday],"%b":date=>MONTHS[date.tm_mon].substring(0,3),"%B":date=>MONTHS[date.tm_mon],"%C":date=>{var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":date=>leadingNulls(date.tm_mday,2),"%e":date=>leadingSomething(date.tm_mday,2," "),"%g":date=>getWeekBasedYear(date).toString().substring(2),"%G":getWeekBasedYear,"%H":date=>leadingNulls(date.tm_hour,2),"%I":date=>{var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":date=>leadingNulls(date.tm_mday+arraySum(isLeapYear(date.tm_year+1900)?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR,date.tm_mon-1),3),"%m":date=>leadingNulls(date.tm_mon+1,2),"%M":date=>leadingNulls(date.tm_min,2),"%n":()=>"\n","%p":date=>{if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":date=>leadingNulls(date.tm_sec,2),"%t":()=>"\t","%u":date=>date.tm_wday||7,"%U":date=>{var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":date=>{var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":date=>date.tm_wday,"%W":date=>{var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":date=>(date.tm_year+1900).toString().substring(2),"%Y":date=>date.tm_year+1900,"%z":date=>{var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":date=>date.tm_zone,"%%":()=>"%"};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1};var _strftime_l=(s,maxsize,format,tm,loc)=>_strftime(s,maxsize,format,tm);var listenOnce=(object,event,func)=>{object.addEventListener(event,func,{"once":true})};var autoResumeAudioContext=(ctx,elements)=>{if(!elements){elements=[document,document.getElementById("canvas")]}["keydown","mousedown","touchstart"].forEach(event=>{elements.forEach(element=>{if(element){listenOnce(element,event,()=>{if(ctx.state==="suspended")ctx.resume()})}})})};var dynCallLegacy=(sig,ptr,args)=>{var f=Module["dynCall_"+sig];return f(ptr,...args)};var dynCall=(sig,ptr,args=[])=>{if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr)(...args);return rtn};FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["requestFullscreen"]=Browser.requestFullscreen;Module["requestAnimationFrame"]=Browser.requestAnimationFrame;Module["setCanvasSize"]=Browser.setCanvasSize;Module["pauseMainLoop"]=Browser.mainLoop.pause;Module["resumeMainLoop"]=Browser.mainLoop.resume;Module["getUserMedia"]=Browser.getUserMedia;Module["createContext"]=Browser.createContext;var preloadedImages={};var preloadedAudios={};var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){miniTempWebGLIntBuffers[i]=miniTempWebGLIntBuffersStorage.subarray(0,i+1)}var wasmImports={p:___cxa_begin_catch,u:___cxa_end_catch,a:___cxa_find_matching_catch_2,g:___cxa_find_matching_catch_3,G:___cxa_rethrow,n:___cxa_throw,bb:___cxa_uncaught_exceptions,b:___resumeException,ha:___syscall_fcntl64,hb:___syscall_ioctl,ib:___syscall_openat,Ed:__emscripten_fs_load_embedded_files,jb:__emscripten_get_now_is_monotonic,C:_abort,Xa:_eglBindAPI,gb:_eglChooseConfig,Oa:_eglCreateContext,Qa:_eglCreateWindowSurface,Pa:_eglDestroyContext,Ra:_eglDestroySurface,ob:_eglGetConfigAttrib,ba:_eglGetDisplay,Na:_eglGetError,Ya:_eglInitialize,Sa:_eglMakeCurrent,Ma:_eglQueryString,Ta:_eglSwapBuffers,Ua:_eglSwapInterval,ab:_eglTerminate,Wa:_eglWaitGL,Va:_eglWaitNative,Qc:_emscripten_asm_const_int,o:_emscripten_asm_const_int_sync_on_main_thread,na:_emscripten_asm_const_ptr_sync_on_main_thread,oa:_emscripten_cancel_main_loop,ia:_emscripten_date_now,Ha:_emscripten_exit_fullscreen,Ka:_emscripten_exit_pointerlock,td:_emscripten_force_exit,x:_emscripten_get_device_pixel_ratio,t:_emscripten_get_element_css_size,la:_emscripten_get_gamepad_status,D:_emscripten_get_now,vc:_emscripten_get_num_gamepads,La:_emscripten_get_screen_size,$f:_emscripten_glActiveTexture,_f:_emscripten_glAttachShader,bd:_emscripten_glBeginQuery,Da:_emscripten_glBeginQueryEXT,Jc:_emscripten_glBeginTransformFeedback,Zf:_emscripten_glBindAttribLocation,Yf:_emscripten_glBindBuffer,Gc:_emscripten_glBindBufferBase,Hc:_emscripten_glBindBufferRange,Xf:_emscripten_glBindFramebuffer,Wf:_emscripten_glBindRenderbuffer,Nb:_emscripten_glBindSampler,Vf:_emscripten_glBindTexture,Fb:_emscripten_glBindTransformFeedback,Oc:_emscripten_glBindVertexArray,va:_emscripten_glBindVertexArrayOES,Uf:_emscripten_glBlendColor,Tf:_emscripten_glBlendEquation,Sf:_emscripten_glBlendEquationSeparate,Rf:_emscripten_glBlendFunc,Qf:_emscripten_glBlendFuncSeparate,Sc:_emscripten_glBlitFramebuffer,Pf:_emscripten_glBufferData,Of:_emscripten_glBufferSubData,Nf:_emscripten_glCheckFramebufferStatus,Mf:_emscripten_glClear,ic:_emscripten_glClearBufferfi,jc:_emscripten_glClearBufferfv,lc:_emscripten_glClearBufferiv,kc:_emscripten_glClearBufferuiv,Lf:_emscripten_glClearColor,Kf:_emscripten_glClearDepthf,Jf:_emscripten_glClearStencil,Wb:_emscripten_glClientWaitSync,If:_emscripten_glColorMask,Hf:_emscripten_glCompileShader,Gf:_emscripten_glCompressedTexImage2D,gd:_emscripten_glCompressedTexImage3D,Ff:_emscripten_glCompressedTexSubImage2D,fd:_emscripten_glCompressedTexSubImage3D,gc:_emscripten_glCopyBufferSubData,Ef:_emscripten_glCopyTexImage2D,Df:_emscripten_glCopyTexSubImage2D,hd:_emscripten_glCopyTexSubImage3D,Cf:_emscripten_glCreateProgram,Bf:_emscripten_glCreateShader,Af:_emscripten_glCullFace,zf:_emscripten_glDeleteBuffers,yf:_emscripten_glDeleteFramebuffers,xf:_emscripten_glDeleteProgram,dd:_emscripten_glDeleteQueries,Fa:_emscripten_glDeleteQueriesEXT,wf:_emscripten_glDeleteRenderbuffers,Pb:_emscripten_glDeleteSamplers,vf:_emscripten_glDeleteShader,Xb:_emscripten_glDeleteSync,uf:_emscripten_glDeleteTextures,Eb:_emscripten_glDeleteTransformFeedbacks,Nc:_emscripten_glDeleteVertexArrays,ua:_emscripten_glDeleteVertexArraysOES,tf:_emscripten_glDepthFunc,sf:_emscripten_glDepthMask,rf:_emscripten_glDepthRangef,qf:_emscripten_glDetachShader,pf:_emscripten_glDisable,of:_emscripten_glDisableVertexAttribArray,nf:_emscripten_glDrawArrays,$b:_emscripten_glDrawArraysInstanced,qa:_emscripten_glDrawArraysInstancedANGLE,nb:_emscripten_glDrawArraysInstancedARB,od:_emscripten_glDrawArraysInstancedEXT,pb:_emscripten_glDrawArraysInstancedNV,Zc:_emscripten_glDrawBuffers,md:_emscripten_glDrawBuffersEXT,ra:_emscripten_glDrawBuffersWEBGL,mf:_emscripten_glDrawElements,_b:_emscripten_glDrawElementsInstanced,pa:_emscripten_glDrawElementsInstancedANGLE,lb:_emscripten_glDrawElementsInstancedARB,mb:_emscripten_glDrawElementsInstancedEXT,nd:_emscripten_glDrawElementsInstancedNV,kd:_emscripten_glDrawRangeElements,lf:_emscripten_glEnable,kf:_emscripten_glEnableVertexAttribArray,ad:_emscripten_glEndQuery,Ca:_emscripten_glEndQueryEXT,Ic:_emscripten_glEndTransformFeedback,Zb:_emscripten_glFenceSync,jf:_emscripten_glFinish,hf:_emscripten_glFlush,gf:_emscripten_glFramebufferRenderbuffer,ff:_emscripten_glFramebufferTexture2D,Pc:_emscripten_glFramebufferTextureLayer,ef:_emscripten_glFrontFace,df:_emscripten_glGenBuffers,bf:_emscripten_glGenFramebuffers,ed:_emscripten_glGenQueries,Ga:_emscripten_glGenQueriesEXT,af:_emscripten_glGenRenderbuffers,Qb:_emscripten_glGenSamplers,$e:_emscripten_glGenTextures,Db:_emscripten_glGenTransformFeedbacks,Mc:_emscripten_glGenVertexArrays,ta:_emscripten_glGenVertexArraysOES,cf:_emscripten_glGenerateMipmap,_e:_emscripten_glGetActiveAttrib,Ze:_emscripten_glGetActiveUniform,bc:_emscripten_glGetActiveUniformBlockName,cc:_emscripten_glGetActiveUniformBlockiv,ec:_emscripten_glGetActiveUniformsiv,Ye:_emscripten_glGetAttachedShaders,Xe:_emscripten_glGetAttribLocation,We:_emscripten_glGetBooleanv,Rb:_emscripten_glGetBufferParameteri64v,Ve:_emscripten_glGetBufferParameteriv,Ue:_emscripten_glGetError,Te:_emscripten_glGetFloatv,uc:_emscripten_glGetFragDataLocation,Se:_emscripten_glGetFramebufferAttachmentParameteriv,Sb:_emscripten_glGetInteger64i_v,Ub:_emscripten_glGetInteger64v,Kc:_emscripten_glGetIntegeri_v,Re:_emscripten_glGetIntegerv,sb:_emscripten_glGetInternalformativ,zb:_emscripten_glGetProgramBinary,Pe:_emscripten_glGetProgramInfoLog,Qe:_emscripten_glGetProgramiv,xa:_emscripten_glGetQueryObjecti64vEXT,za:_emscripten_glGetQueryObjectivEXT,wa:_emscripten_glGetQueryObjectui64vEXT,_c:_emscripten_glGetQueryObjectuiv,ya:_emscripten_glGetQueryObjectuivEXT,$c:_emscripten_glGetQueryiv,Aa:_emscripten_glGetQueryivEXT,Oe:_emscripten_glGetRenderbufferParameteriv,Hb:_emscripten_glGetSamplerParameterfv,Ib:_emscripten_glGetSamplerParameteriv,Me:_emscripten_glGetShaderInfoLog,Ke:_emscripten_glGetShaderPrecisionFormat,Je:_emscripten_glGetShaderSource,Ne:_emscripten_glGetShaderiv,Ie:_emscripten_glGetString,hc:_emscripten_glGetStringi,Tb:_emscripten_glGetSynciv,He:_emscripten_glGetTexParameterfv,Ge:_emscripten_glGetTexParameteriv,Ec:_emscripten_glGetTransformFeedbackVarying,dc:_emscripten_glGetUniformBlockIndex,fc:_emscripten_glGetUniformIndices,De:_emscripten_glGetUniformLocation,Fe:_emscripten_glGetUniformfv,Ee:_emscripten_glGetUniformiv,wc:_emscripten_glGetUniformuiv,Cc:_emscripten_glGetVertexAttribIiv,Bc:_emscripten_glGetVertexAttribIuiv,Ae:_emscripten_glGetVertexAttribPointerv,Ce:_emscripten_glGetVertexAttribfv,Be:_emscripten_glGetVertexAttribiv,ze:_emscripten_glHint,wb:_emscripten_glInvalidateFramebuffer,vb:_emscripten_glInvalidateSubFramebuffer,ye:_emscripten_glIsBuffer,xe:_emscripten_glIsEnabled,we:_emscripten_glIsFramebuffer,ve:_emscripten_glIsProgram,cd:_emscripten_glIsQuery,Ea:_emscripten_glIsQueryEXT,ue:_emscripten_glIsRenderbuffer,Ob:_emscripten_glIsSampler,te:_emscripten_glIsShader,Yb:_emscripten_glIsSync,se:_emscripten_glIsTexture,Cb:_emscripten_glIsTransformFeedback,Lc:_emscripten_glIsVertexArray,sa:_emscripten_glIsVertexArrayOES,re:_emscripten_glLineWidth,qe:_emscripten_glLinkProgram,Bb:_emscripten_glPauseTransformFeedback,pe:_emscripten_glPixelStorei,oe:_emscripten_glPolygonOffset,yb:_emscripten_glProgramBinary,xb:_emscripten_glProgramParameteri,Ba:_emscripten_glQueryCounterEXT,ld:_emscripten_glReadBuffer,ne:_emscripten_glReadPixels,me:_emscripten_glReleaseShaderCompiler,le:_emscripten_glRenderbufferStorage,Rc:_emscripten_glRenderbufferStorageMultisample,Ab:_emscripten_glResumeTransformFeedback,ke:_emscripten_glSampleCoverage,Kb:_emscripten_glSamplerParameterf,Jb:_emscripten_glSamplerParameterfv,Mb:_emscripten_glSamplerParameteri,Lb:_emscripten_glSamplerParameteriv,je:_emscripten_glScissor,ie:_emscripten_glShaderBinary,he:_emscripten_glShaderSource,ge:_emscripten_glStencilFunc,fe:_emscripten_glStencilFuncSeparate,ee:_emscripten_glStencilMask,de:_emscripten_glStencilMaskSeparate,ce:_emscripten_glStencilOp,be:_emscripten_glStencilOpSeparate,ae:_emscripten_glTexImage2D,jd:_emscripten_glTexImage3D,$d:_emscripten_glTexParameterf,_d:_emscripten_glTexParameterfv,Zd:_emscripten_glTexParameteri,Yd:_emscripten_glTexParameteriv,ub:_emscripten_glTexStorage2D,tb:_emscripten_glTexStorage3D,Xd:_emscripten_glTexSubImage2D,id:_emscripten_glTexSubImage3D,Fc:_emscripten_glTransformFeedbackVaryings,Wd:_emscripten_glUniform1f,Vd:_emscripten_glUniform1fv,Ud:_emscripten_glUniform1i,Td:_emscripten_glUniform1iv,tc:_emscripten_glUniform1ui,pc:_emscripten_glUniform1uiv,Sd:_emscripten_glUniform2f,Rd:_emscripten_glUniform2fv,Qd:_emscripten_glUniform2i,Pd:_emscripten_glUniform2iv,sc:_emscripten_glUniform2ui,oc:_emscripten_glUniform2uiv,Od:_emscripten_glUniform3f,Nd:_emscripten_glUniform3fv,Md:_emscripten_glUniform3i,Ld:_emscripten_glUniform3iv,rc:_emscripten_glUniform3ui,nc:_emscripten_glUniform3uiv,Kd:_emscripten_glUniform4f,Jd:_emscripten_glUniform4fv,Id:_emscripten_glUniform4i,Hd:_emscripten_glUniform4iv,qc:_emscripten_glUniform4ui,mc:_emscripten_glUniform4uiv,ac:_emscripten_glUniformBlockBinding,Gd:_emscripten_glUniformMatrix2fv,Yc:_emscripten_glUniformMatrix2x3fv,Wc:_emscripten_glUniformMatrix2x4fv,Fd:_emscripten_glUniformMatrix3fv,Xc:_emscripten_glUniformMatrix3x2fv,Uc:_emscripten_glUniformMatrix3x4fv,Dd:_emscripten_glUniformMatrix4fv,Vc:_emscripten_glUniformMatrix4x2fv,Tc:_emscripten_glUniformMatrix4x3fv,Cd:_emscripten_glUseProgram,Bd:_emscripten_glValidateProgram,Ad:_emscripten_glVertexAttrib1f,zd:_emscripten_glVertexAttrib1fv,yd:_emscripten_glVertexAttrib2f,xd:_emscripten_glVertexAttrib2fv,wd:_emscripten_glVertexAttrib3f,vd:_emscripten_glVertexAttrib3fv,ud:_emscripten_glVertexAttrib4f,sd:_emscripten_glVertexAttrib4fv,Gb:_emscripten_glVertexAttribDivisor,ag:_emscripten_glVertexAttribDivisorANGLE,qb:_emscripten_glVertexAttribDivisorARB,pd:_emscripten_glVertexAttribDivisorEXT,rb:_emscripten_glVertexAttribDivisorNV,Ac:_emscripten_glVertexAttribI4i,yc:_emscripten_glVertexAttribI4iv,zc:_emscripten_glVertexAttribI4ui,xc:_emscripten_glVertexAttribI4uiv,Dc:_emscripten_glVertexAttribIPointer,rd:_emscripten_glVertexAttribPointer,qd:_emscripten_glViewport,Vb:_emscripten_glWaitSync,F:_emscripten_has_asyncify,kb:_emscripten_memcpy_js,Ia:_emscripten_request_fullscreen_strategy,aa:_emscripten_request_pointerlock,cb:_emscripten_resize_heap,ma:_emscripten_sample_gamepad_data,I:_emscripten_set_beforeunload_callback_on_thread,U:_emscripten_set_blur_callback_on_thread,w:_emscripten_set_canvas_element_size,B:_emscripten_set_element_css_size,V:_emscripten_set_focus_callback_on_thread,L:_emscripten_set_fullscreenchange_callback_on_thread,ka:_emscripten_set_gamepadconnected_callback_on_thread,ja:_emscripten_set_gamepaddisconnected_callback_on_thread,O:_emscripten_set_keydown_callback_on_thread,M:_emscripten_set_keypress_callback_on_thread,N:_emscripten_set_keyup_callback_on_thread,Le:_emscripten_set_main_loop,_:_emscripten_set_mousedown_callback_on_thread,Y:_emscripten_set_mouseenter_callback_on_thread,X:_emscripten_set_mouseleave_callback_on_thread,$:_emscripten_set_mousemove_callback_on_thread,Z:_emscripten_set_mouseup_callback_on_thread,P:_emscripten_set_pointerlockchange_callback_on_thread,K:_emscripten_set_resize_callback_on_thread,Q:_emscripten_set_touchcancel_callback_on_thread,S:_emscripten_set_touchend_callback_on_thread,R:_emscripten_set_touchmove_callback_on_thread,T:_emscripten_set_touchstart_callback_on_thread,J:_emscripten_set_visibilitychange_callback_on_thread,W:_emscripten_set_wheel_callback_on_thread,Ja:_emscripten_set_window_title,E:_emscripten_sleep,db:_environ_get,eb:_environ_sizes_get,fa:_fd_close,fb:_fd_read,_a:_fd_seek,ga:_fd_write,ca:invoke_diii,da:invoke_fiii,h:invoke_i,c:invoke_ii,d:invoke_iii,i:invoke_iiii,k:invoke_iiiii,m:invoke_iiiiii,s:invoke_iiiiiii,ea:invoke_iiiiiiii,z:invoke_iiiiiiiiiiii,Za:invoke_jiiii,j:invoke_v,l:invoke_vi,e:invoke_vii,f:invoke_viii,q:invoke_viiii,A:invoke_viiiii,H:invoke_viiiiii,r:invoke_viiiiiii,v:invoke_viiiiiiiiii,y:invoke_viiiiiiiiiiiiiii,$a:_strftime_l};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["cg"])();var ___cxa_free_exception=a0=>(___cxa_free_exception=wasmExports["__cxa_free_exception"])(a0);var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["eg"])(a0,a1);var _malloc=a0=>(_malloc=wasmExports["fg"])(a0);var _setThrew=(a0,a1)=>(_setThrew=wasmExports["gg"])(a0,a1);var setTempRet0=a0=>(setTempRet0=wasmExports["hg"])(a0);var stackSave=()=>(stackSave=wasmExports["ig"])();var stackRestore=a0=>(stackRestore=wasmExports["jg"])(a0);var stackAlloc=a0=>(stackAlloc=wasmExports["kg"])(a0);var ___cxa_decrement_exception_refcount=a0=>(___cxa_decrement_exception_refcount=wasmExports["lg"])(a0);var ___cxa_increment_exception_refcount=a0=>(___cxa_increment_exception_refcount=wasmExports["mg"])(a0);var ___cxa_can_catch=(a0,a1,a2)=>(___cxa_can_catch=wasmExports["ng"])(a0,a1,a2);var ___cxa_is_pointer_type=a0=>(___cxa_is_pointer_type=wasmExports["og"])(a0);var dynCall_jiji=Module["dynCall_jiji"]=(a0,a1,a2,a3,a4)=>(dynCall_jiji=Module["dynCall_jiji"]=wasmExports["pg"])(a0,a1,a2,a3,a4);var dynCall_ji=Module["dynCall_ji"]=(a0,a1)=>(dynCall_ji=Module["dynCall_ji"]=wasmExports["qg"])(a0,a1);var dynCall_viijii=Module["dynCall_viijii"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_viijii=Module["dynCall_viijii"]=wasmExports["rg"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_jiiii=Module["dynCall_jiiii"]=(a0,a1,a2,a3,a4)=>(dynCall_jiiii=Module["dynCall_jiiii"]=wasmExports["sg"])(a0,a1,a2,a3,a4);var dynCall_iiiiij=Module["dynCall_iiiiij"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_iiiiij=Module["dynCall_iiiiij"]=wasmExports["tg"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=wasmExports["ug"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=wasmExports["vg"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);var ___emscripten_embedded_file_data=Module["___emscripten_embedded_file_data"]=399832;function invoke_ii(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{getWasmTableEntry(index)()}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return getWasmTableEntry(index)()}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_fiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_unlink"]=FS.unlink;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args=[]){var entryFunction=_main;args.unshift(thisProgram);var argc=args.length;var argv=stackAlloc((argc+1)*4);var argv_ptr=argv;args.forEach(arg=>{HEAPU32[argv_ptr>>2]=stringToUTF8OnStack(arg);argv_ptr+=4});HEAPU32[argv_ptr>>2]=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(args=arguments_){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/eulamadness.wasm b/eulamadness.wasm index 006642e29521b4d38ab7fb92a32e832b8d0a3516..b6290b078f31619e49ab0d4496fc1d19e022aa2d 100755 GIT binary patch delta 207154 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

_>FndZ8sLB@1wI5?5zFkW;Omcvja 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�hssPN7a7!d7-NMLmQKpc~uoJ+$3O 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

ui#c|K)6Ypf>y z(8D+I2@6<)n)&1RHn~A_|3Q0d$NT28TKWM#U>r+>&iz`hTj&0fr!90UuNa-1iVtyg zIi1@+7iWHqfPbcQ^A<0$iUBbfCIIGu8{k^=xZgvDEA=&F5Cg(1MDn*=i)h zhL;WreC>-Y^B%jqgcR^GkVJlNFprVHFDGArHi!E!0El6w~`%lVRM91cQ z0;}$fQsMcoNP?m2B3942TxyS~M_aWPTDa^Sm3ZxEnCsrQaAHCWKLcXUkQYXbl<=VW zvQ)7Ly@KylKKm7E3ZSMTFT*2#k>1X~rVu-M(qeXPx2aHcu`De$XxPZSu#si7mKro^ z?y81c`>Ub1NS&JKgm0sW_t$VV=!J`+K@(xAWzE*2Nl90%t7B== zyy{X`-5QliE9ZAEb!*K(6{|Iq9?xG~%7$N!noG(%Z@!FWUAEmda5C0_d!e;n4OyYN zA719xo{O(S(%MzA8&R=~YR}{q|Sal;b`umo`yhCiGr3_n~>Mh};(Up`BP>L}yMBI&(^R`)oluYqY|x zGyh4cFE5Q~GQfXYf#bne?S!XB%0Iv5wae(tSj2L4W}*A9dJQL`g-%?R*Idae0l#r2 ztBzstk(Df+>~phMUQWYx@(IIp5e=8e<*{@}Q~jRT%?ndy@6Th6TG<8J03`?`*%+Zn zOcwwChIyp3;B;B-w&7n;YzO}powi_AQJr=H76HLyF=h#!HvVNO{dRe5uMDi}jtv-SVtFe>=$T zGJeM@Zk7T49RB>^W^~EyO{@lgU=3>xQ~9fF*!3z%vMY#xE#@3wZDvWl@@7_@Ph5-B zHMehO&G;_D=51yzbU~~&zw>Qq{`>i3Z?kTE!3V5D@W;1dDh1{Eb*zP=9Pgq$WF6~Q zM&>D2IIBEkf%yl1Y8~5DOL|7p5p~?)=_=LtF?g!g<$&8Se&9#nWq0wlTVX*TydL`i z_Va1$S?>_u(R{$3nTkoFcLVF7f6s5*z#h4LNHGW5na`T@>iH~@&)m*BNLBUZXO61+ zcs^_N=OjAmKk(Fz>`icG=SFr*{O=L;ZVpx^V|c6gSQ8fkxfEHXrcd&~`z$WCFtobS z%4Bt)qUwII%mrGnmo;s9nI2r#P-hcPT3z6iHnCbNjHv36FuOOQIsC{=ZpMDTANd`d zSsQ%jZw8-!-Qw?Q9o`2p*#9|-1tz)I6a3c(LqT}4jRZwR?RK4f<&Pf^RZr;hv# z*}^u0K)tOjrR0yQPVE4Z2!J}hk+0aw45Zp(JzC=TTXDC?0jk;xy!J<|bqL2UQ@=lk z*RPxz+ASfpe)UsSL+$0kI90>^vHXy3co_nn^g);GzJDfNR=~6@Ub#5n&cB?qHXM9WQicik6!qT^0qgVaW~~x-=zk zE3*cmJAA;hK{jTGq1VBE#jpRKr6h=wP;fDwP5qcP>0lMj6q|g+_SKP; z>!HF>k`%g_q_`m7<-$vD(hMVZ`EdR*>ze%}-4iRWM}aL~?*4(1M8|ynX{M*CJ+KVo zC|Ya^TN;sJAgeF}MVqu)Zz&I)Wc3_-4OR{fe{?cE;{5`DgwN_ZMFUY15x%oFUO z*tGb@t9;6CbR@?fnSfmhWHsQ=f6D5H(Fv&pG7<1EKE;k2t3Q&@G|Kh6*etgqlS-vPlY`kik zN|CU&l|s?>Za&6t4C%d0$XPp(C6PnrEJ(R2i6*rEcgWd($5;Zd^974_#1~!b>WD8f zXObhdcy7|^peDo@O;1D@v|0qOdx2H6Z6(;_hsKW!1V&;^@qKN}L~2BQ>lbW!Xi3Ci zVDH=&5_tNTY=qoWYAI5D|6x{7)V#aG{(8;lI%4uexqC+xjS3=+7{e~%Ov_Gw_!7&i zPg{gA1Hn79^aiE-vWKJ4&FJk$TvlceE;KswnP0PNnAL6gnzbqMn$r7@YL?!Y@eND+ zbGo@GTywhcgu_R5*r9(!Zh2 z*~;8@7!gQ;JTHt1;mTZRJ6l()%_*sqB$PiAu<<0Iw(D3^?D-ul9qU%;n*TLjZo8iG zS9Q71{#=(68|VJME?4+H>zWiIM5T^*(@Btz+gB&uiW>zj zMsaKNgIjSE^g?t7OL1#)8J*2N96>(PrU`raAjB3Q{}r9BOC?7~G-1z@T3eh;;96Q+ z>J50eIb=upvjSzqRu~p3xsFp65#@C%TPr(n6to zpwO+*9ZmvprlS9yg_SK~D65SCs@B?^UZ>S^{sbr`n9B7%_n=3&Ti z(4%Lou@S>jFv{Uz0p4~C{?38*WpdZDR= z3bV^NUfCH3W{oaLelVvGpt0aRi{PNJzfi{n3`M8)vuu22~l+QY8`0(Wwq|J z%c*tFyi&-bzpd8seP_dEkx=M(lXJyrbB~@YMw{DPoHqCSIkvWlHuvL27{GV%P;G86 zFJ7B_yNC|=mr|cxZ9jgi&g5P zes?Q%6smZot_&~tJ4>h%m!+YhIRaFYb&C#5!OQv^YTa9xQ|sJvjnq2Q=^VKxbh?Kx zxOF;_FA_1KI$hg~Y)%mc?k`pLB>w9k?gidgFQ>pIiK9#r*wP?O<+!1DD*q80om~|3 z6DV25DR48I8v|#&X^5@S@wE+m^EZh?Vh!G|Yd$ zq?zCSf)iM@k;x^b#k}U_+D1=DGd)07J=YFzG0)4WW3-}qo|Mkmxf3ns$I<2*vC3gH zTkLRox{mRf(*PwsQy=MU8W+~T5)nqN%cm-)Cxhx5^%~fzVgs8nm;)~Obuj#u-6SlZEaeZa+=pOuCr$qrYHp->t2oR&;y*3 z5TE(ddPa4pYQ(5uTYkf>J}`Xwque$Ja}yd8_L`DKHX74@u^pRq6EPR5THi>&0^dV+ zi|_&Ujf(uSC}X&Oo}Y>`YJ_kXGZ!b@Vz$xsMx!?G6KzxtNkB6%h~=yEqGD}JkF;R7 zG)nOgqmBDRY8RA4YFD(WX)LUEL(&&*>Qp16R+H`FTNEjIQNtl^O4XfsI74)Y3o%BA zW@sA3snAiHHphD1o7}=GS4?S7`;2rxJJ#rG?=LjplPZT$>v6bIv@4=6c$E-mRJ+@1 ziRe#<)VzXb0p$?dSy~M@$A~U!cbib|iis|zA!O$Q)2PIQamFLj=Se}x=OtPit_$|i z0z-J{)Zu}|B6UaxbYZ%JBrK*5ul4>n>u_C>Iz;kUQHR5P|7jf#bgFNocme}PFKngs zHFb>Ef=xFj7-h)7Ij4k?+UDx(%FV?hbybn4B^fQ`GTqz*&N5x4M5EO|HF&kXaG*1L zTko#HW}!7G`#)I(g^b78TDqw)-2V5g^j^Hwy)ezV?$4!X`!K<|U39uFLU4-J80y+W z8opXJY(xx~nPS{5QSM4IljI?vRxNBq#HB8(uZj6bvEq;-?(!RTX+*sIxalu(1)(Vf z)J>I*KGiHCXs%P$g%Odq0X!Eaw=CKs^KfO^=XR%u^tme-_r!)^Hxok)zr1Cp(Th(i zZ&doHg3$ECMm4*FoHqGRXa&WKkxUGjVw08L%}B-*PGU6ur;h$dJCRdIZ~s$Aq*{k4 zHvc;Wol{3^|Fn*TZt>sjL*xDtaaRy=&KR^Nv}*om#vr*iWT||7RTZQ1Kh<@G>T-J0 z>d@-?9~+V48SPV&`%Cn@jb|Ly4t5lJG~M25>v;jmms;e=U*G#oJ< zPVZ^B_S0=a5Vzfgrd@nkPoq>*TV>ix77Sy!JCw6ZA=fBqx}vNsAMy1)jTG-Sj+IAD zn^$ESRXjLyp3ut}o=mHR@(Dp0obXx{o+sgV*D^ZZP5VS06Z$jJ8QAOO%fqcb*jxZp zqlQOya1LjT?#rPkaMVLg9(oziWfpms)Ku)23wdUo{Q2o#Mos=r%wN*WL^|mUUf%v~*t180xBDShg z<>O0b|Z#=MtD>6xN_4h50!WJv4=%z+3 zs_1u`8h!O&c}BCVGi1(eR-}5V*NZIx#TmguE!5%j@xNrl%yZknMC~HwtEgSrzsm5s z*+$)~G-O`3inld)SFvRY%e$N<%x%cb7d)bagxF|uwT4Vl>u&BAsr6pGWDBEwJ5}LS zukz_Ts&LuK#e;OJ?y-Ao1)l$?9)VpV)gy2>Qfx-F8mXv7JlMjh6$J|ZD89a_QJQaP zVRZSYWw@<1S8N%ym@N&^mW55UjH|Vx5!Am1T7g5hQ zhU+5FTv->nWEw4MsOE;P#jfUtHYQ(NY#s2u9GMa0!K-WqeAo+-sXWlyh$2xluC*}$ zDttm`qlKgLg-=T@d%Mf(SEL^ZZO+nhcz%aJvHA&pZfKV)S^b2Pvg%H^)h|TC*gN6G za*3#B`C^68WXoS~)NYNnKOgi9ThxbdRM7msE3_pN{(SQFMjvN$B9QBT`$h`>hBx; z{;4OqU*P{||8eT+?;HL8qk39!Rq`>`mXGC0G){XVvJ#)u)wum1`KSibKktWs&tUi; z)om}nubWY>+vNtpD4NAbw8rh$@=uI}k)o#Q(YQ>FZr~sV5LZCx(3v-B*uO?ctIz`4 zbvGXSr}F=#@}0qP&HvEgD3zu{O)5?5VdHS6X~Gqirki%_o``_{gsqU%BLJRkC`{ty zhH6Zq%DbaYS#4=_xLOqxNtZvO<&?VJxQFlR`p+0{DM42;hW~vN>3=9czWSGuB-_+^ z)uz;Q)!}Vw{1w}jG_}fIi(#f#n8dEe)QXLDe`ac3{^zFF6@SUp`r749t(^5Tmhv6F zG4HJ3+h~Df)kAw5OZ*pNqy^RLfa-l|n^}B!FQb&DB0DD2viBH$8q1eDGazVjfD}K> zxjV|CU*XY#_VgeCGx0PzZa;x*`?9PA9^W+Sbx)ptuhCKemfv@;QB$A6pS#z%wPXJG zX)GGIpB_mI&5e4=)Xt5PUgNGjv zIFJ${4akvveIMiT+m@02274KO`(ot7F&CrYKyRUnIUTMZ5Occi^7YT~{EWR~exl1# z9(2C(37F&e_ccZa@NT_pW8*%Yq{XTI%qTxy@NOT^bL`hbn1OjA$Iu#sW)uuUwmI6_ z)C!X=HW1RwF?3^`F8;+O4f#|lh!w%N-DfoRoH)cI?l&rva#Z7fqkM^7@09IdM~B&Z zdD;HhiZ*v=@b>$$1rJrU{Q)BlpKl&8(gRAELNM;xuV>JPzjD|j<12?tu5?^>gOhhS zQsSY6V$IR9<|n_>4UHGT%-9TAmk`_UmAMdaqGPRKDqS~@%f>Zx*|p+rTeO4MK2~;p zt5qJA51V>gR}D4nkGUe_o0JfYCzBBV&nkfzYTDra8gM(dv+KySsArns(WFgmDKPpQ zm6}de^LX`WPm?UA7VE7vA9{b?Ej1(UYlhiKVoZfkp@Prd|UL*K5i|Gq%4&Q`l|i3=E~I zDVnrz*rq9LF9$)hiFkhsMxy?76Qj#Q;iKcnbS(%af%`w=ojv8kDs%fF<0*dZ5u+R) zrTXI$!*5^AgLrh?o1GM`F7j(0HOjX?6`6rYG-#HYEgCme?vUj$@`Ewdxja04c~FN~ zdX~?B)Tr3$*;x4ol~~&pZ83r!j*z!KU=byPR{4ChVlzc@)%+T*?fH>F{>StxFp!2Q zuvrHkYxrYE#SB|VIf(5TCed^492Mto-g?X!?3l+slQ&d|^-8KEaRSkN+~{TR4W@%g zNMW?!RUT328y`1rPX7uchqxHv1&?@qN^&GSLBn&$AMv_R82vh4yrdZhGgoiZ493j8 z@9DS_+58wEIxmM0&Z?aGLo;HSITazJnfVKTMKP1(7v?U{;{$m+=Mq2mgps1>^532? zGK`NR+tCz$OxK?a z-u9$%OIRmTcgcr$qDwTwUUqp^Xi{{k8!n!C>nY3CPFfxj;i4j(+D%MzfXEgU0<){YUfIV3p?J7aYpM< z0ibRn3eWo=SIj&A6d97Lpg5w;CqIpxkK@~)Htz166KzXWph8cu#w&FhN_b)yubdc- z8NAbYBeCwGXuTvIsPT*TPh*obHg3V1shNUB4%d-csy&V?TT^(<1fz9%D=Zl2>0iy0 z;#@c(+U)%kj4a2H4&x=g3#8sJw?vdoOx+LRj}NzI}i}Y@urPj8V((jOIt;SO>{5yV;6k7!#i{ z$`=jgI{zU~Vtn+BQM;X$Wpl5j<%nHjTb9N%aR@_51O^;V1H16& z4b1msw9s&|KIPZ(&rSTdiN;9%DL!P9QMSI78N2n^a#84|f)$=@53DR!ZS!@A=ifmM zvl{8J5GXXv#5zl|LZbdM$;imCsYltVJ6lo2=+bPm(Zl8%G7*U;T+$hVMBiRH*+_Bf z@Q|xssD-Q6h!@4_9UPzBxGWt_H;2VoY)mnRq3BOcF*58csgY`g=s5P-7kAN}f-9Qa zQF1@D2psRUch!gz|2W0yVfQo;)kRV4Fiz6~H$6hRhmh2VL8{xO!0`;H(TTl1vTfoq z1A3YYg%eG(Xaltv!8cDeTBQrov_z@1YQLA=a(Ldv;wE^J(~L|$d75#jSDxi#P|+~h z_}a}}5?LWII|BN1tZzz0hD-i76Qe+8g!%d&9YV#P$T;jX^^8bjV3CPT1VoU{86jL` zK{1h`u$pWEvYbu)dP(!-hh@#CP7zh16@!JOxfYI=2=`1(jW5wqABQF|p>NqoVE z`H@hkMsE=lLVo)FNdNzV0-wKJf%(}PM&|va3)0N|9cf~X)b~Ox4Ni189g5InU9H9{ zdbDgsn@C{I@uJ zmJ-HI9iuX$=(r@V?0^H`FcXvO(FMV;XBuxr{qNHx#;;Y@^;p_5*v5cz}QWnvosZZRC)_!N`@yH}&INux%! z8q{r8uU5nQO&Zm@r+(vxwfgj}-=JQf-VK^GYtoF@K4Ns`2R=9IT~+WPf_JawnK+Oq zv`9|l^Noa(8RL&dYYz?7#NSDLCjy%Um<*T#n99A02^sv1kx;&J9>V4!Ow)bQ@X@p$ zgEVa#zRv-k2T=Iw{78v}O8m}*go+}3NrbV&Zvs98VP*oj3O|eJSK=R9;YYi|*Bz{B zvk~qEz#J8RE`{$PNS|~Cor|FJ5M(}JfeM-{NiRrLS?Pf=R#sw%Xxc)AdlB%G3crZL zXYx32LS;dJlPml~2>&v|y#iRQ!Y|<)l92TWy$MxC___#V(LV}&DZ(uSysE-4m-N5# zCS-{4xvubChHBahgnJFJQiacxtnBJj`Hw{yi~btms}SyWz#A(3YFXZQtnedU;VTW( zv^Np%EkIC(Un9d;EurWib%mdf@M{t7ZNNJ!{5n3QL_%kg^)B$XvZ4*ww099?Jz#?h znon7mwY1I^bR>dqM3DCY@2jAjBv%F{CDan6t09a<`Z(~-2=@WtLlu4tab4zOt}Ez` zBQ$L*f_wznrh;zgb&^#s40u~q*8wj;kR5=XD(Ehei`WL;MR)DXOL!B~t5AD?$QALi zk(%}cBK!zA1t{{>;M*3^4nTi-h~FM~2LKhIBfgY@PRf5f{I3Jv zS^0Ot_jfkqAtTnvO&#Dyen?Ze0=hMgS#n6TXzd z&G^#amWMR08}RPR{}$zctMZS1MAL2q-b4A{uKe#H{{Wy80^Erocc}pXQUUI!0Qg&u z1bPDRrTly2dk^4V0R2rx{64_@0w{wO0hGbY0QzeRe?PwW!T)~11Au;j{s3M(B_Sms zii}jK$o1-X?>4mGfWB^atWkbMtp}(LK+J&vcWQ(1oBl?^e=zVN%6}-n!vMnp_3CwR z+i&M$%nxNm2ijQy+@3&d?{0P!Fy_<$kdGkdk-Gq_Ui(7E5jHBLo)n;<=3El zm)?E)^c}7u63sD|U)}DV`#ww_0jhRc@wt{~z3$idb7+d3uCx5=cW*Ol_=u1M_gj9A zx`X2I-h=P8y+zzJmVZ4oxPD)!VcxPSPNQG@$* z?>De7WEPd8t>tft99IeZSbp`o-#lcz)Z?c*e1WCp_oj z7T3PScU1)M-8%6*Ubk&xEbrVVaieEJK`;?NJkhW2j%MRxZSSmL{SJvgd1Br<5X}nS z(8;}Ju-|owzn3XTqzPgHUO*xs20(5+r$b_+;G6d(F4nWGaO9s3KqtHeM;pkkG=Sn# zyy|?#eTlKbwS5v7=nbvN6aYQ<(lvnAfKDzTw*~+rM42HX89@+vRc}P`O93cB6L2Ho zZoqv2C_3WX17D&?bcjX_&*_}#53YCsxxbbOQ0XXfO87RwV8CO5XB0ezF9tC|j1r*C zlm}2oQiDtTBO@({4iP6m3PXugyxD*y0H{Bgaskf)h;~l^WtcK9GE_47^1#HEdJAHc zl^F{3D1eBp1Z)Ou2S8~M1fRv160$N?nok>=m=at%m~upfY67U}#Evll%E>0c7l3a8 zdjL>wL;@HkMd^u6rGp^!zTSe^O*yn^P=Z8*GI9)12yoM&k`V_5tAo>qTQsOm5O*mb z#1-NM6@m)$34rKP0f{?SK8TaZ$4H`Kakn|#h(6T@)eg~l4M1g}_{1nGC#BO7Kza8D zr~TWaK{aiahnQ>8p>!!OeJOv$RBAS&9QbO%X%8iSD4UyA%fu6EYSdaN&lXVH6xXWV z#Neby61T~wPIY3%x0)-3r7}?^5=}~z@lY=?hCH0cPrRJi$n*ZRV1-u_ z-_boeGx(v!iS44d!MeC&07;e7!4^vrXE%z-$%*3!4kxya*p?F)^nafCHe!$EhmIsR zihh4=oT6KUcRG~lZbX}kOdKPQ$M9uY$jc2iy(NQp*Y!@(TTq6H z0TiM!fLcEF1fqhukLXQSPqKOig%yPj)~HW8vKU3~lp2Mjl2AOWH}+R<77eNpMWdm+ zR2B`&IdOzaLU9QQCpYq=yt?wym}rD^w#4#I;}p3@%%A8qaJ2<@wYpYG~S_8czY8J+O` zwSeE$9p4!{r2DEJ@^`@wo^w6izg6yIcgo)jcS`?vcXIs>Z*t<^o$)OClS`TgFu&q@ zdvA&-XBW?C=Pl!zw~Oc8hVR;4{PcC+GJIxxZ+Tv+9s1su_TDD^%yqz$JHTyqdv8g7 zHlNl3k>C7SM&A9gh|H&U@HXZZ+j&cQHhv<=cn*IeL;R|K&)7rmDYzYVRePjXAbytd ze7i>m8@pHLV&PsH{ay7vuvhw@Rlle0lfPH&li{|?ulK8cC}9JX5MZ9&$9H!CTc&*~ z*|p+R$;PdpO16BZzB&8l?|J(r+t%)v;rH(63vWSTmG`6rf{UJ|2PE0e2V}5g2W0e% z>N^`3j$V&wpUKpAtM3n=$>0+X%2Zxf-;D=l>*^yiYRla9#m(jzj$<|DFJjw$zx>O1?WB=qJ{8E*GcZgxZED(4Bur1#6mB)N_1 zd-#|P{_8PGcE%Udf0g*A=wFCvQQv+6hVTkEcr*E#u6Pn+)t8db1@g-uy}=vD_jm9b zp0URzs~4*8yT@h71IHz+&#Lb*J9(g8x&m_eOe_ek0=W+T`N9!y6fW?3;M@o`+w$!F!4)cJ(F@)*-@N z^_{H$g70Kzzx_^Ta_slgec|`=_q*TAOdL?|XVvd%C#C<2lOl88%_m*$W$#JJ>eDAx z4gMfmyYvU)&fmKkJ$J^TnZPfPcOr)AZ?t9~CiEyJBXO%zk~pZKbq#D`>zXX{VW_p6^|?3|zF z?|DDV-)rU9yZ2{Tum0+1+5K|P2)^m_cyDx4&)PGBJ$%6}=m*`qqrIG#E}lteB}12< zm5ko3ejht48G7-otnJz7B;hyD$#A>RN&g?zcfv1{&da~Z3f!o^hkudbe^vf7&dYGC z&dZA0dfru02hPi)ot0lc>ozo-{F~5{U%$;;U36*w#+@^o>Ilb#9`lhV?sib-j6agN7|bG%rbhi3B`Yj-?1dAeAR-N zQdsIOpKDqQ=1SfB4jMYJH?6L9xw&oakq?d3%t?#jKj;`=up}upx&S{)U*PMPB$WwF zdO3xadFBgP?4X>rA2N94h&tUK>^*3xj8*{O(i^_jw6V5tham&|D4MSzYTMITX^OU@ zb{O8b?_d=bzA0b)qG<_s)Eh?)A3CtFio7_5l|A*xzuXCT>39DFBU=v~rGgY7Na;$^ zy7r-qe(#4>{3S^IdqdaC*yL|}04s_rarl<{ za#cf%A=YRWft6rMU-;A9#v%YyZ(xXu5C7DK@PE#}G<*`@A8_pNh% z?|y@8-!o{aW){FZZ63Uz(RABeRgnlV=?%oMS_3B?Fv+pvquW#-sR+Qo)U*yB?Yb`L zh_F*XqG@FpL}_n7f=7?u;FFdoZ4b1F!jeLDO=|+^258z0OAQZT-3fVW-c{3X1$=OW zrY(Zo?;Wr(2ltV1I}Eq`0M}qLJ`3L`02ASUv^`c9I%6pjc-1zV_8IVTZL!P*JPl!g zgFF3QY=wp4R#>9wiY}9nJ~bH)u}dQ?a+lDw>R@$muS;REW3j+D4xpLG*YU-9NsT=D@AA*{lD_tg$>$%eN}3!Pvn7SKECh4L zBL_Q?t#KW}KrnA0e$(GNbh~!}>j4`8^tTD$&43R8AL=;X4GV0n*Wr_N2DC9Qjoz-}Pu6{=YTw?fO>2j2U{=#G50>Sf=;MCoU;Nsmu^R1*o{!;w8RJPUw9YV{;|Cf#zMr+re z=I`%IdZpBPwC#?ll5Y6^j4C0>=1+W@G|Y2!IzRns(n-&*nf%E9r1sIdJeB?A;r{(e z<%69LB;Bfea$g88{4A-9$5S{zcjcIai%a(Tm=N@4WK(mchP>I_N8a8Gr?VF9Gj2 z#j0@yTqyi~DodS1Egs!f{Eea?_@kV}LEa!h6b4uv)-Xq(=VJeI5hQL$-@W)TR7ZSlYa=UOkQOMgwCEs0o`A?}V0oE_= zE&#}DRdEpgr(iHD`F`EA>n!)jB)5*Abq?{dfVJox9~hHdHYV#QwDLXYf|FyCmq({k zSDxazJF)^|6FyDhg}hs0a>ax~zow6qwoh1zJtPhAdK#jG(SU_WQB{g6i#XB5kqQ-ghikT8G!38d?0#<$lqHUs5=tLu^Yr3lTTUg~uy=Kj;`PJc-@iSS0)-GLfu22=^2}62!FrA zSA%F2>KN&3UC<_?70%(%Ug4DK-U=59D?BSRplP}4N9DTMJ*DuaRk4do;qNuaZYqVx z)x%(}@R>;LWrY_a?kft92fkS0k0Z@|f`Vk;F+iRCGr5?iHkO6(1VQx(6da0br3rEnyz1>RLZj@HL$sc<5+LE)6se1%gc zHY%Jl@t(pd6YndW3bRS!RDjJ2C;A^KoC^7&!~+`Tbc^y>jXK+^@Pi2Sk;1iPjLt5+ zK;fOCt?W>E`4Skk75)Me+pF+SXlU)xy+K+_p@xj^ZQ-AJD##xXfJOUMgyHZ#pzv(o zH6?jU;2Utwvt@zruV|q3>Ic?0PoySi>TNkoOMcR`e{OI}TJjqn&*T?_ zZPSyRMR-15!UO)~D$zO1(%6v*9M4U@#Fu3xf8jZ`A~-oSxi<5>w27~;m7E=uO#?~c zCLUEgnR}*vz~|Rat`fiPgEXcan4W*YchpW!t3CEZ{Pt<)G<-{W!Tw14M~m~(zZ(99 z-v$bkq?y}3H@k_2=66*22I{$|7E#?iF7H*YCF-7vX+lJP~fb`pN{ zrvnx(<&7F8H||UB4N)e?Jz9$Z6D*#UgP&C?7Jtaisubix{JAQlXkGAKjglLrQBvCx zH3AVl03t)*KFfG|H^Jfb(OyF*-H+18DnZmdJOXl? ziQgQs4&l!LV&S$6Un?Hv!>T(go;z=<`P6H6Pwx@^?(Nxc#K_^iMpNkav_s7YVib6w z%ETG`o`u9_1EwPb1myMte$N361-=BZ4lo8_#dBxEidS4F8mdg(H)16JylHZ}Xw92I zsN6Ch)hxNb$drc8Ld}EzP5{qE!V3W}0$u_v0=x`(1weo65M}}J#egNsZ5G^?0$&DD z9BA5a$cUauzi&Ilp*H%W8ywuv%zNLHnT1{~e$LDD*q9k0+!q0jAYmz(1WFmdROW+s)D1tx(f$1M~pU-y*o(4*U+~ zb|=1f0saNJ8_*Nb3(y;IPw-;POUIOHK>U3G;S78vfWnOe{2TBf;32@n{7EzUT=Kf7%CbxG z$2Uf6kHGO!Ko9*TWO#L(?<_Nl`LecqEn9uq-sYm;1|#2BDs0pkEq1IF{8TPN4N zh3c<8LJP@;Fa432p+x9=7u@Jef9Dm|35ZU)dRBpUQfC0h$!^u&aIo|QAKh#q7lg# z0CNCy0rLR!0kFGix%^R!Y0xSZ&40r{w7_fw&vPjlNlq=Q{q6&N70UHGfXe*_U^U=P0R4@D|69O=0PtOU^n1n-m+tI&j1nHgpl+Xp1^43?oQwkB`|AhS$0G}v_)qB z6G{NE2e22g5AZ2qKi~l1Gr&QB60c3b)}BL0jqG&q4c&V3|5w<#$3}5oVSH`OVzcHs zwlS;|JG3XsT350RqO5G<6cUq%8>{>F>!Rh(mZa?MQL=e^MQO$KnY!?Grmn^O5ib1V!C>IEjNU(`#9W{w5pxk-0`G#$;0ovm zSHS?#V%%HHod$0t5@fks=M{$6o$rSWzwuHq@UuYgX}|9pNv{Lx{5|kK_y_m^{1Xg< z4}q+4#s4GfAA=$AFOc(Z{@ehcxPM#WZ1k3Ln@+n`^-ifbK6{9faVVq|lQosSz;(ij zv>w@J7S{*3`rR_!N8wZh_CiZ6KP&{|oA00v~BIKqeR^%eO4Qd!gRh zu}mf^j-v=Ep%lBDkbSbv2&p>b_l>6M2O?yQ-`&5`*<3BT^4TW2&Y4_#e9PHpbDW@_ zO*6;j80&Xuu5wm9EwQcQhutf-?riGF2$NYG;ajX_Zs5 zNi@zRUi!(U9NA9|ob)T!M_tb5eB5L|3n-_6LNFCf13^#(?gRIG{VZx;*%VsJ^+mck z{1shP{3X>zG2!b+yX8+f({f6w&j2$eU9mSJdANz`5z$I}O`2I=8lP`AWf>?3bHH5i zO;7x7BH`kpV4bv+V8VyQN`Uc<|?(R2hRN z%L0?-LCS~R>IReLw8^rUa^%hqNR|VKCCh94V?7&K_}DZ>3Z{W>VEsE(ObgUCXw`ySp1(;@$Q&OcV~@JMYPh zYn;we8+(2g4E%bcTuw$_rqWj_=2cA2^m|-3xN4+)WJUKO)yHYqxi3eYV(;qq$=mMP zh%?>0Q7tr!K6we6`1g|;>zwb6$$aY%?%vH#PuZbYf`Qxz%wnEHlSe_Pp#1Z*9?yzo z@!#iYWO8E=?tjItk2*8_KY2A6cxS9Tb*@w59*R2W$5pXNUq|me?O68lgzTtM#?lRml!*$b6fVGK*@jcD)&IDiSlNcHBo_@EW*_rLF z%Fg01G1A`&O6fGb*p-NOY>o2WvzEBzm6%f|1|gMQyZEYGTf8)#RUFRaVAYol_`SDCzC+TN-L@Dv zpyHAXJ&2oFjCz!T_%6*C+#@l^@vbm6&}$P9H8sXK*t-*6*X!XVb9m^DVBmLodpH$8 zn8l4`DK|va<;*~qZ-zuSttk#h5Wp*iFCWr|DEaik!9A!TDqOe8Ia z&p{1yCOA`ZR?H~P8NV#WSuvwEmnn}nFux^B7No_DQJfu_Y|T*@%Tb&aGgfoPFQ7Op zCO4@`<2cUaBHonPkr}TzD`tY`OzcF(Suv9|XZ$7`E-Axp)i}!WhH=bGbHme=uQ)5F zKyxN`isG!8Ld|9J&Y##+MOrb_G)G-5XgM`aMT)ax?$ex!yfZR5E7FRYqdDqga}{UBum&( zqZL!7Ipa59aaIh!V42Qm#XRV7%kG#a{z)``!X<~VdJEGe9CfipinC%CYtHyBQJfX? zu;z?kb(%BNB;)^xBJI%BXwC$O6=%gfsyXBLnBuIMTFn{1rIbl;7}Pv1vyL()-Waf4 z)SL;fQ=ApETyw^6h2pH3`e81aK4?~YX_exvnAMu2F7|}tte6JP8NVkLmlDJH zuhFD&T$|>GPp798XT?0NITIUEoE5W9bH;DIaLE$cV@{paj`%hxM|%W6V>vZV8x?28 zJgYhCVw)6a#cWnw(q3qyinL<3XpXvAqsRT=j%jLAoE6ioITIUGoDq}s#WiUhw<^wx zY0;eV+m_~rr)j(5te72|GqKNkTvGNVlD-7DDn~mqZHlvE+BHXAtiy6@nmQF{#q89a z%#T=?BJDhNYtHy36lcZk(wymPBO^ReGoGsNf1z+rG4oC1B| zRdA5NRz7Gs9x<|VOkI{!r=zz-3-|R00~LL^CEd22&YTH7SGn1{*}`WGsr)#@eS4=< z?&fqkMag$?x&SVMOW<8_8C(JV;3^mZ*T8k~9*`C6)MDO2VeeTQdN!I5gbmP1HFuN) xR02y-wiv|f$ME07U^3Xv{nvs4`Bt%KJm|SLDHs?p&+U(|%l6g&#_!wY|37qkr!N2i delta 197507 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 z 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ÐGNEk!B9i-WS0RpG2Vhy8F`0@hL?6_frH5;-_ z9(f0>JiyoA!OfO)Qbk|FBL!@>H*bLw#3JON42 zEc7qd4iZWLmWEP?;Ctb4p4bFULruuximN?|t3aji9AU0x)U*ia41yW5szAb*b(|ht zc?cIQlh2LdeM)X~-;dzcs@pc+U?#-z??xiqjd2C#xr0_-RAHHHIFdK;?=#JYk@_4; z+x7)y*n9hE&#>%=9r!}l?=6x@f2T`tm|Vo3jW#On3zxonun#usi$0#1uyN03l+?j~(1brBWrP(Ul)#e~w z4*BdTp6uGygzFX@;tVmsmAhAZQgcV)NU~oZ9K|aq9r?jLr&!&ioPwZtP@;Y!P;N9v zB=WLpF##eaFyfHSt3UlI^oy-PSXZ(Pd%(FDR?x^_>3{_lest=wRCU}0M=K;8=+QT6(sYs!TA`LFHdIkhV)Dt!{akbO!{7 z_2u+XAGborNxg>Y9|u;A1M3*gn+xSuei`=oaPkClt(@(2p~ zW;VF}W}2o}^jc+nVQHRZbSwk|%|uP;)Al*&J2PsctS}cmQUJ(arBf9dI+v$YU|=rq zi08z4xU>hDK966aXPxp61?PmpWoY5Ct@VZ*B5|Y zXvR?Wz{f=S+X9F`m@#U|mJ7`eKmnEI%L{n}`m$&tzsrgdFUv0C^9TqmD!mH2ydSwz zjQ)$Ubm3XN3NbQaiCH9K_+FW8=3*J^?Fj{SY)~J+BrzzA^D!a^$}C{2g}YvV3#{ zxQd4x%VQgO$1YUuT(f?mN`>9zyTM%s+2u2+>roH9?^8l`aN2|f`|Jb|!=_Erjw}0b zR|6eiL(Q(3LE+zSi@;(fvht*%t2z;V_6q zC^%;GypA^wiYV)6KwvpvM(^Oskglz}gSUhQz2|oDX_4=Sq(rsz;6HtKAZ90@PL}d= zcJZcY{>feZ4m|4Z=6}YJ4c*Oa)UhW!4&LYvR2R9s++dm%u#k{OMhJ7{7rS|uwnujV zm>&%~>%aoDb=C>oxrdL`;MJq@KI|QZdwIC^9uWcr2T#qTt8Z29D39*rbAxj7x;a(Y z&)+QF6-eOyPq0#^?(wE1Ljod8yT<^*m56$l;wt;wPkBAGH}(K;S#m+?ae!x_H8T&C zM(XDu;GLbmi4N+UXopIrzKJ$2)HVC2^=G^R#A^F}#@h$A2+SJ$9GL$ZzbojAD`*+0 z{y8rzs$Cc4)Ud48qDX2Hd{Gu-hRBBx^MsO38FH96E_);-g>VczLL2NR4PX`EgPYA#xd#;u_xVk;sszr2Cpu}{lN2``B#=JC9KbqvcF@x>m~uD-V9dV7cab9AWaglFJzD0q5KPUX#<;)8RF zF>`|1MwL_hNKrk~NdRN6RJ8TcEIO9LlKd5|1mi1;{;KHEIJ4-iIJ4+oapHC6

e@ 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