trtc-sdk-v5 5.8.1-beta.9 → 5.8.1-ktv.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,31 +1,60 @@
1
- "use strict";var VirtualBackground=(()=>{var wn=Object.defineProperty,uc=Object.defineProperties,dc=Object.getOwnPropertyDescriptor,Ec=Object.getOwnPropertyDescriptors,fc=Object.getOwnPropertyNames,ri=Object.getOwnPropertySymbols;var ni=Object.prototype.hasOwnProperty,Ic=Object.prototype.propertyIsEnumerable;var SA=(X,R,n)=>R in X?wn(X,R,{enumerable:!0,configurable:!0,writable:!0,value:n}):X[R]=n,Ai=(X,R)=>{for(var n in R||(R={}))ni.call(R,n)&&SA(X,n,R[n]);if(ri)for(var n of ri(R))Ic.call(R,n)&&SA(X,n,R[n]);return X},ii=(X,R)=>uc(X,Ec(R));var Cc=(X=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(X,{get:(R,n)=>(typeof require!="undefined"?require:R)[n]}):X)(function(X){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+X+'" is not supported')});var pc=(X,R)=>{for(var n in R)wn(X,n,{get:R[n],enumerable:!0})},Bc=(X,R,n,q)=>{if(R&&typeof R=="object"||typeof R=="function")for(let T of fc(R))!ni.call(X,T)&&T!==n&&wn(X,T,{get:()=>R[T],enumerable:!(q=dc(R,T))||q.enumerable});return X};var hc=X=>Bc(wn({},"__esModule",{value:!0}),X);var Be=(X,R,n)=>(SA(X,typeof R!="symbol"?R+"":R,n),n);var Dc={};pc(Dc,{VirtualBackground:()=>On,default:()=>yc});async function oi({sdkAppId:X,userId:R,userSig:n,core:q}){var ye;let T=q.utils.getAbilityConfigUrl(X),fe=Math.round(new Date().getTime()/1e3),ae=`${T}?sdkAppId=${X}&userId=${R}&userSig=${n}&timestamp=${fe}`;try{let De=await(await fetch(ae)).json();q.log.info(`virtual background send ${ae}, response: ${JSON.stringify(De)}`);let{data:we}=De;return(ye=we==null?void 0:we.trtcAutoConf)!=null&&ye.web_ar?{auth:!0,timestamp:fe}:{auth:!1}}catch(Ne){return q.log.error("beauty fetch error",Ne),{auth:!1}}}var mc={sdkAppId:{required:!0,type:"number"},userId:{required:!0,type:"string"},userSig:{required:!0,type:"string"}};function si(X){return{name:"VirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:ii(Ai({},mc),{type:{required:!1,type:"string",values:["image","blur"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10},onError:{required:!1}}),validate(R,n,q,T){var Ye;let{RtcError:fe,ErrorCode:ae,ErrorCodeDictionary:ye}=X.errorModule;if(!R)return;let{type:Ne,src:De,onError:we}=R;if(Ne==="image"&&!De)throw new fe({code:ae.INVALID_PARAMETER,extraCode:ye.INVALID_PARAMETER_REQUIRED,fnName:q,messageParams:{key:"src"}});if(we&&!X.utils.isFunction(we))throw new fe({code:ae.INVALID_PARAMETER,extraCode:ye.INVALID_PARAMETER_TYPE,fnName:q,messageParams:{key:"onError",value:typeof we,rule:{type:"Function"}}});if(!((Ye=X.room.videoManager.cameraTrack)!=null&&Ye.mediaTrack))throw new fe({code:ae.INVALID_OPERATION,extraCode:ye.INVALID_OPERATION_NEED_VIDEO,fnName:q});if(X.environment.CHROME_MAJOR_VERSION<90)throw new fe({code:ae.ENV_NOT_SUPPORTED,extraCode:ye.NOT_SUPPORTED_CHROME_VERSION,fnName:q})}}}function ai(X){return{name:"UpdateVirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:{type:{required:!0,type:"string",values:["image","blur"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10}},validate(R,n,q,T){if(!R)return;let{RtcError:fe,ErrorCode:ae,ErrorCodeDictionary:ye}=X.errorModule,{type:Ne,src:De}=R;if(Ne==="image"&&!De)throw new fe({code:ae.INVALID_PARAMETER,extraCode:ye.INVALID_PARAMETER_REQUIRED,fnName:q,messageParams:{key:"src"}})}}}function ci(X){return{name:"StopVirtualBackgroundOptions",required:!1}}var Qc=function(){let X=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(X=X||__filename),function(R){R=R||{};let n=typeof R!="undefined"?R:{},q,T;n.ready=new Promise((e,t)=>{q=e,T=t}),Object.getOwnPropertyDescriptor(n.ready,"_main")||(Object.defineProperty(n.ready,"_main",{configurable:!0,get(){l("You are getting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_main",{configurable:!0,set(){l("You are setting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_get_end")||(Object.defineProperty(n.ready,"_emscripten_stack_get_end",{configurable:!0,get(){l("You are getting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_get_end",{configurable:!0,set(){l("You are setting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_get_free")||(Object.defineProperty(n.ready,"_emscripten_stack_get_free",{configurable:!0,get(){l("You are getting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_get_free",{configurable:!0,set(){l("You are setting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_init")||(Object.defineProperty(n.ready,"_emscripten_stack_init",{configurable:!0,get(){l("You are getting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_init",{configurable:!0,set(){l("You are setting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackSave")||(Object.defineProperty(n.ready,"_stackSave",{configurable:!0,get(){l("You are getting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackSave",{configurable:!0,set(){l("You are setting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackRestore")||(Object.defineProperty(n.ready,"_stackRestore",{configurable:!0,get(){l("You are getting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackRestore",{configurable:!0,set(){l("You are setting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackAlloc")||(Object.defineProperty(n.ready,"_stackAlloc",{configurable:!0,get(){l("You are getting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackAlloc",{configurable:!0,set(){l("You are setting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___wasm_call_ctors")||(Object.defineProperty(n.ready,"___wasm_call_ctors",{configurable:!0,get(){l("You are getting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___wasm_call_ctors",{configurable:!0,set(){l("You are setting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_fflush")||(Object.defineProperty(n.ready,"_fflush",{configurable:!0,get(){l("You are getting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_fflush",{configurable:!0,set(){l("You are setting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___errno_location")||(Object.defineProperty(n.ready,"___errno_location",{configurable:!0,get(){l("You are getting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___errno_location",{configurable:!0,set(){l("You are setting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_malloc")||(Object.defineProperty(n.ready,"_malloc",{configurable:!0,get(){l("You are getting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_malloc",{configurable:!0,set(){l("You are setting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_free")||(Object.defineProperty(n.ready,"_free",{configurable:!0,get(){l("You are getting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_free",{configurable:!0,set(){l("You are setting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_setThrew")||(Object.defineProperty(n.ready,"_setThrew",{configurable:!0,get(){l("You are getting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_setThrew",{configurable:!0,set(){l("You are setting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___cxa_is_pointer_type")||(Object.defineProperty(n.ready,"___cxa_is_pointer_type",{configurable:!0,get(){l("You are getting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___cxa_is_pointer_type",{configurable:!0,set(){l("You are setting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___cxa_can_catch")||(Object.defineProperty(n.ready,"___cxa_can_catch",{configurable:!0,get(){l("You are getting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___cxa_can_catch",{configurable:!0,set(){l("You are setting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_saveSetjmp")||(Object.defineProperty(n.ready,"_saveSetjmp",{configurable:!0,get(){l("You are getting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_saveSetjmp",{configurable:!0,set(){l("You are setting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_memalign")||(Object.defineProperty(n.ready,"_memalign",{configurable:!0,get(){l("You are getting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_memalign",{configurable:!0,set(){l("You are setting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_main_thread_process_queued_calls")||(Object.defineProperty(n.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,get(){l("You are getting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,set(){l("You are setting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_webgl_make_context_current")||(Object.defineProperty(n.ready,"_emscripten_webgl_make_context_current",{configurable:!0,get(){l("You are getting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_webgl_make_context_current",{configurable:!0,set(){l("You are setting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_webgl_get_current_context")||(Object.defineProperty(n.ready,"_emscripten_webgl_get_current_context",{configurable:!0,get(){l("You are getting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_webgl_get_current_context",{configurable:!0,set(){l("You are setting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_tzname")||(Object.defineProperty(n.ready,"__get_tzname",{configurable:!0,get(){l("You are getting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_tzname",{configurable:!0,set(){l("You are setting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_daylight")||(Object.defineProperty(n.ready,"__get_daylight",{configurable:!0,get(){l("You are getting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_daylight",{configurable:!0,set(){l("You are setting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_timezone")||(Object.defineProperty(n.ready,"__get_timezone",{configurable:!0,get(){l("You are getting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_timezone",{configurable:!0,set(){l("You are setting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_malloc")||(Object.defineProperty(n.ready,"_emscripten_builtin_malloc",{configurable:!0,get(){l("You are getting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_malloc",{configurable:!0,set(){l("You are setting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_free")||(Object.defineProperty(n.ready,"_emscripten_builtin_free",{configurable:!0,get(){l("You are getting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_free",{configurable:!0,set(){l("You are setting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_memalign")||(Object.defineProperty(n.ready,"_emscripten_builtin_memalign",{configurable:!0,get(){l("You are getting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_memalign",{configurable:!0,set(){l("You are setting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___getTypeName")||(Object.defineProperty(n.ready,"___getTypeName",{configurable:!0,get(){l("You are getting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___getTypeName",{configurable:!0,set(){l("You are setting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___embind_register_native_and_builtin_types")||(Object.defineProperty(n.ready,"___embind_register_native_and_builtin_types",{configurable:!0,get(){l("You are getting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___embind_register_native_and_builtin_types",{configurable:!0,set(){l("You are setting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"onRuntimeInitialized")||(Object.defineProperty(n.ready,"onRuntimeInitialized",{configurable:!0,get(){l("You are getting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"onRuntimeInitialized",{configurable:!0,set(){l("You are setting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));let fe={},ae;for(ae in n)n.hasOwnProperty(ae)&&(fe[ae]=n[ae]);let ye=[],Ne="./this.program",De=function(e,t){throw t},we=typeof window=="object",Ye=typeof importScripts=="function",ft=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",Sn=!we&&!ft&&!Ye;if(n.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)");let Ie="";function Pn(e){return n.locateFile?n.locateFile(e,Ie):Ie+e}let ur,Wt,Ur,dr,Jt,PA;if(we||Ye){if(Ye?Ie=self.location.href:typeof document!="undefined"&&document.currentScript&&(Ie=document.currentScript.src),X&&(Ie=X),Ie.indexOf("blob:")!==0?Ie=Ie.substr(0,Ie.lastIndexOf("/")+1):Ie="",!(typeof window=="object"||typeof importScripts=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");ur=function(e){let t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},Ye&&(Ur=function(e){let t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),Wt=function(e,t,r){let A=new XMLHttpRequest;A.open("GET",e,!0),A.responseType="arraybuffer",A.onload=function(){if(A.status==200||A.status==0&&A.response){t(A.response);return}r()},A.onerror=r,A.send(null)},dr=function(e){document.title=e}}else throw new Error("environment detection error");let be=n.print||console.log.bind(console),z=n.printErr||console.warn.bind(console);for(ae in fe)fe.hasOwnProperty(ae)&&(n[ae]=fe[ae]);fe=null,n.arguments&&(ye=n.arguments),Object.getOwnPropertyDescriptor(n,"arguments")||Object.defineProperty(n,"arguments",{configurable:!0,get(){l("Module.arguments has been replaced with plain arguments_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),n.thisProgram&&(Ne=n.thisProgram),Object.getOwnPropertyDescriptor(n,"thisProgram")||Object.defineProperty(n,"thisProgram",{configurable:!0,get(){l("Module.thisProgram has been replaced with plain thisProgram (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),n.quit&&(De=n.quit),Object.getOwnPropertyDescriptor(n,"quit")||Object.defineProperty(n,"quit",{configurable:!0,get(){l("Module.quit has been replaced with plain quit_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),M(typeof n.memoryInitializerPrefixURL=="undefined","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),M(typeof n.pthreadMainPrefixURL=="undefined","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),M(typeof n.cdInitializerPrefixURL=="undefined","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),M(typeof n.filePackagePrefixURL=="undefined","Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),M(typeof n.read=="undefined","Module.read option was removed (modify read_ in JS)"),M(typeof n.readAsync=="undefined","Module.readAsync option was removed (modify readAsync in JS)"),M(typeof n.readBinary=="undefined","Module.readBinary option was removed (modify readBinary in JS)"),M(typeof n.setWindowTitle=="undefined","Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),M(typeof n.TOTAL_MEMORY=="undefined","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Object.getOwnPropertyDescriptor(n,"read")||Object.defineProperty(n,"read",{configurable:!0,get(){l("Module.read has been replaced with plain read_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(n,"readAsync")||Object.defineProperty(n,"readAsync",{configurable:!0,get(){l("Module.readAsync has been replaced with plain readAsync (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(n,"readBinary")||Object.defineProperty(n,"readBinary",{configurable:!0,get(){l("Module.readBinary has been replaced with plain readBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(n,"setWindowTitle")||Object.defineProperty(n,"setWindowTitle",{configurable:!0,get(){l("Module.setWindowTitle has been replaced with plain setWindowTitle (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),M(!Sn,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");function Te(e){Te.shown||(Te.shown={}),Te.shown[e]||(Te.shown[e]=1,z(e))}function Mn(e,t){if(typeof WebAssembly.Function=="function"){let B={i:"i32",j:"i64",f:"f32",d:"f64"},h={parameters:[],results:t[0]=="v"?[]:[B[t[0]]]};for(var r=1;r<t.length;++r)h.parameters.push(B[t[r]]);return new WebAssembly.Function(h,e)}let A=[1,0,1,96],i=t.slice(0,1),o=t.slice(1),s={i:127,j:126,f:125,d:124};A.push(o.length);for(var r=0;r<o.length;++r)A.push(s[o[r]]);i=="v"?A.push(0):A=A.concat([1,s[i]]),A[1]=A.length-2;let c=new Uint8Array([0,97,115,109,1,0,0,0].concat(A,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0])),d=new WebAssembly.Module(c);return new WebAssembly.Instance(d,{e:{f:e}}).exports.f}let ze=[],de;function St(){if(ze.length)return ze.pop();try{F.grow(1)}catch(e){throw e instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":e}return F.length-1}function Er(e,t){if(!de){de=new WeakMap;for(let A=0;A<F.length;A++){let i=F.get(A);i&&de.set(i,A)}}if(de.has(e))return de.get(e);let r=St();try{F.set(r,e)}catch(A){if(!(A instanceof TypeError))throw A;M(typeof t!="undefined",`Missing signature argument to addFunction: ${e}`);let i=Mn(e,t);F.set(r,i)}return de.set(e,r),r}let It=0,ne=function(e){It=e},kr=function(){return It},Kt;n.wasmBinary&&(Kt=n.wasmBinary),Object.getOwnPropertyDescriptor(n,"wasmBinary")||Object.defineProperty(n,"wasmBinary",{configurable:!0,get(){l("Module.wasmBinary has been replaced with plain wasmBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}});let Fn=n.noExitRuntime||!0;Object.getOwnPropertyDescriptor(n,"noExitRuntime")||Object.defineProperty(n,"noExitRuntime",{configurable:!0,get(){l("Module.noExitRuntime has been replaced with plain noExitRuntime (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),typeof WebAssembly!="object"&&l("no native wasm support detected");let Ct,Xe=!1,Pt;function M(e,t){e||l(`Assertion failed: ${t}`)}function vn(e){let t=n[`_${e}`];return M(t,`Cannot call unknown function ${e}, make sure it is exported`),t}function MA(e,t,r,A,i){let o={string(h){let _=0;if(h!=null&&h!==0){let O=(h.length<<2)+1;_=ZA(O),Bt(h,_,O)}return _},array(h){let _=ZA(h.length);return jr(h,_),_}};function s(h){return t==="string"?Re(h):t==="boolean"?!!h:h}let c=vn(e),d=[],E=0;if(M(t!=="array",'Return type should not be "array".'),A)for(let h=0;h<A.length;h++){let _=o[r[h]];_?(E===0&&(E=G()),d[h]=_(A[h])):d[h]=A[h]}let I=c.apply(null,d);function B(h){return E!==0&&j(E),s(h)}return I=B(I),I}let FA=1,xr=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function pt(e,t,r){let A=t+r,i=t;for(;e[i]&&!(i>=A);)++i;if(i-t>16&&e.subarray&&xr)return xr.decode(e.subarray(t,i));let o="";for(;t<i;){let s=e[t++];if(!(s&128)){o+=String.fromCharCode(s);continue}let c=e[t++]&63;if((s&224)==192){o+=String.fromCharCode((s&31)<<6|c);continue}let d=e[t++]&63;if((s&240)==224?s=(s&15)<<12|c<<6|d:((s&248)!=240&&Te(`Invalid UTF-8 leading byte 0x${s.toString(16)} encountered when deserializing a UTF-8 string in wasm memory to a JS string!`),s=(s&7)<<18|c<<12|d<<6|e[t++]&63),s<65536)o+=String.fromCharCode(s);else{let E=s-65536;o+=String.fromCharCode(55296|E>>10,56320|E&1023)}}return o}function Re(e,t){return e?pt(ce,e,t):""}function Le(e,t,r,A){if(!(A>0))return 0;let i=r,o=r+A-1;for(let s=0;s<e.length;++s){let c=e.charCodeAt(s);if(c>=55296&&c<=57343){let d=e.charCodeAt(++s);c=65536+((c&1023)<<10)|d&1023}if(c<=127){if(r>=o)break;t[r++]=c}else if(c<=2047){if(r+1>=o)break;t[r++]=192|c>>6,t[r++]=128|c&63}else if(c<=65535){if(r+2>=o)break;t[r++]=224|c>>12,t[r++]=128|c>>6&63,t[r++]=128|c&63}else{if(r+3>=o)break;c>=2097152&&Te(`Invalid Unicode code point 0x${c.toString(16)} encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x1FFFFF).`),t[r++]=240|c>>18,t[r++]=128|c>>12&63,t[r++]=128|c>>6&63,t[r++]=128|c&63}}return t[r]=0,r-i}function Bt(e,t,r){return M(typeof r=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),Le(e,ce,t,r)}function Ge(e){let t=0;for(let r=0;r<e.length;++r){let A=e.charCodeAt(r);A>=55296&&A<=57343&&(A=65536+((A&1023)<<10)|e.charCodeAt(++r)&1023),A<=127?++t:A<=2047?t+=2:A<=65535?t+=3:t+=4}return t}let Lr=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function Nn(e,t){M(e%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");let r=e,A=r>>1,i=A+t/2;for(;!(A>=i)&&Ft[A];)++A;if(r=A<<1,r-e>32&&Lr)return Lr.decode(ce.subarray(e,r));let o="";for(let s=0;!(s>=t/2);++s){let c=st[e+s*2>>1];if(c==0)break;o+=String.fromCharCode(c)}return o}function fr(e,t,r){if(M(t%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),M(typeof r=="number","stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),r===void 0&&(r=2147483647),r<2)return 0;r-=2;let A=t,i=r<e.length*2?r/2:e.length;for(let o=0;o<i;++o){let s=e.charCodeAt(o);st[t>>1]=s,t+=2}return st[t>>1]=0,t-A}function Gr(e){return e.length*2}function Un(e,t){M(e%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");let r=0,A="";for(;!(r>=t/4);){let i=m[e+r*4>>2];if(i==0)break;if(++r,i>=65536){let o=i-65536;A+=String.fromCharCode(55296|o>>10,56320|o&1023)}else A+=String.fromCharCode(i)}return A}function kn(e,t,r){if(M(t%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),M(typeof r=="number","stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),r===void 0&&(r=2147483647),r<4)return 0;let A=t,i=A+r-4;for(let o=0;o<e.length;++o){let s=e.charCodeAt(o);if(s>=55296&&s<=57343){let c=e.charCodeAt(++o);s=65536+((s&1023)<<10)|c&1023}if(m[t>>2]=s,t+=4,t+4>i)break}return m[t>>2]=0,t-A}function Vt(e){let t=0;for(let r=0;r<e.length;++r){let A=e.charCodeAt(r);A>=55296&&A<=57343&&++r,t+=4}return t}function Ir(e){let t=Ge(e)+1,r=Xt(t);return r&&Le(e,le,r,t),r}function jr(e,t){M(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),le.set(e,t)}function xn(e,t,r){for(let A=0;A<e.length;++A)M(e.charCodeAt(A)===e.charCodeAt(A)&255),le[t++>>0]=e.charCodeAt(A);r||(le[t>>0]=0)}function Ln(e,t){return e%t>0&&(e+=t-e%t),e}let Mt,le,ce,st,Ft,m,oe,he,Cr;function Hr(e){Mt=e,n.HEAP8=le=new Int8Array(e),n.HEAP16=st=new Int16Array(e),n.HEAP32=m=new Int32Array(e),n.HEAPU8=ce=new Uint8Array(e),n.HEAPU16=Ft=new Uint16Array(e),n.HEAPU32=oe=new Uint32Array(e),n.HEAPF32=he=new Float32Array(e),n.HEAPF64=Cr=new Float64Array(e)}let pr=5242880;n.TOTAL_STACK&&M(pr===n.TOTAL_STACK,"the stack size can no longer be determined at runtime");let $t=n.INITIAL_MEMORY||16777216;Object.getOwnPropertyDescriptor(n,"INITIAL_MEMORY")||Object.defineProperty(n,"INITIAL_MEMORY",{configurable:!0,get(){l("Module.INITIAL_MEMORY has been replaced with plain INITIAL_MEMORY (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),M($t>=pr,`INITIAL_MEMORY should be larger than TOTAL_STACK, was ${$t}! (TOTAL_STACK=${pr})`),M(typeof Int32Array!="undefined"&&typeof Float64Array!="undefined"&&Int32Array.prototype.subarray!==void 0&&Int32Array.prototype.set!==void 0,"JS engine does not provide full typed array support"),M(!n.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),M($t==16777216,"Detected runtime INITIAL_MEMORY setting. Use -s IMPORTED_MEMORY to define wasmMemory dynamically");let F;function at(){let e=TA();M((e&3)==0),oe[(e>>2)+1]=34821223,oe[(e>>2)+2]=2310721022,m[0]=1668509029}function Se(){if(Xe)return;let e=TA(),t=oe[(e>>2)+1],r=oe[(e>>2)+2];(t!=34821223||r!=2310721022)&&l(`Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x${r.toString(16)} ${t.toString(16)}`),m[0]!==1668509029&&l("Runtime error: The application has corrupted its heap memory area (address zero)!")}(function(){let e=new Int16Array(1),t=new Int8Array(e.buffer);if(e[0]=25459,t[0]!==115||t[1]!==99)throw"Runtime error: expected the system to be little-endian! (Run with -s SUPPORT_BIG_ENDIAN=1 to bypass)"})();let vt=[],ct=[],$=[],Br=[],ht=!1,Ze=!1,Gn=0;function Ue(){return Fn||Gn>0}function qe(){if(n.preRun)for(typeof n.preRun=="function"&&(n.preRun=[n.preRun]);n.preRun.length;)mr(n.preRun.shift());_r(vt)}function jn(){Se(),M(!ht),ht=!0,!n.noFSInit&&!a.init.initialized&&a.init(),a.ignorePermissions=!1,ke.init(),_r(ct)}function Hn(){Se(),Ze=!0}function hr(){if(Se(),n.postRun)for(typeof n.postRun=="function"&&(n.postRun=[n.postRun]);n.postRun.length;)Yn(n.postRun.shift());_r(Br)}function mr(e){vt.unshift(e)}function Yr(e){ct.unshift(e)}function Yn(e){Br.unshift(e)}M(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),M(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),M(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),M(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");let et=0,tt=null,mt=null,Qt={};function Xr(e){let t=e;for(;;){if(!Qt[e])return e;e=t+Math.random()}}function rt(e){et++,n.monitorRunDependencies&&n.monitorRunDependencies(et),e?(M(!Qt[e]),Qt[e]=1,tt===null&&typeof setInterval!="undefined"&&(tt=setInterval(()=>{if(Xe){clearInterval(tt),tt=null;return}let t=!1;for(let r in Qt)t||(t=!0,z("still waiting on run dependencies:")),z(`dependency: ${r}`);t&&z("(end of list)")},1e4))):z("warning: run dependency added without ID")}function gt(e){if(et--,n.monitorRunDependencies&&n.monitorRunDependencies(et),e?(M(Qt[e]),delete Qt[e]):z("warning: run dependency removed without ID"),et==0&&(tt!==null&&(clearInterval(tt),tt=null),mt)){let t=mt;mt=null,t()}}n.preloadedImages={},n.preloadedAudios={};function l(e){n.onAbort&&n.onAbort(e),e+="",z(e),Xe=!0,Pt=1,e=`abort(${e}) at ${$n()}`;let r=new WebAssembly.RuntimeError(e);throw T(r),r}let Xn="data:application/octet-stream;base64,";function Wn(e){return e.startsWith(Xn)}function zt(e){return e.startsWith("file://")}function K(e,t){return function(){let r=e,A=t;return t||(A=n.asm),M(ht,`native function \`${r}\` called before runtime initialization`),M(!Ze,`native function \`${r}\` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)`),A[e]||M(A[e],`exported native function \`${r}\` not found`),A[e].apply(null,arguments)}}let _t;_t="selfie_segmentation_solution_simd_wasm_bin.wasm",Wn(_t)||(_t=Pn(_t));function Qr(e){try{if(e==_t&&Kt)return new Uint8Array(Kt);if(Ur)return Ur(e);throw"both async and sync fetching of the wasm failed"}catch(t){l(t)}}function Jn(){let e={env:zA,wasi_snapshot_preview1:zA};function t(i,o){let{exports:s}=i;n.asm=s,Ct=n.asm.memory,M(Ct,"memory not found in wasm exports"),Hr(Ct.buffer),F=n.asm.__indirect_function_table,M(F,"table not found in wasm exports"),Yr(n.asm.__wasm_call_ctors),gt("wasm-instantiate")}rt("wasm-instantiate");let r=n;function A(i){M(n===r,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),r=null,t(i)}if(n.instantiateWasm)try{return n.instantiateWasm(e,t)}catch(i){return z(`Module.instantiateWasm callback failed with error: ${i}`),!1}return n.loadWasm(_t,e).then(A).catch(T),{}}let ge,We,Nt={460656(){let e=!0;if(e){let t=yA;if(typeof t!="function"){typeof console!="undefined"&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.');return}yA=function(r){if(r==0){if(n&&n.canvas)return n.canvas;if(n&&n.canvasCssSelector)return t(n.canvasCssSelector);typeof console!="undefined"&&console.warn("Module properties canvas and canvasCssSelector not found during WebGL context creation.")}return t(r)},e=!1}},461441(){return typeof wasmOffsetConverter!="undefined"}};function Zt(){return typeof wasmOffsetConverter!="undefined"}function qt(e,t){if(Q.mainLoop.timingMode=e,Q.mainLoop.timingValue=t,!Q.mainLoop.func)return z("emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up."),1;if(Q.mainLoop.running||(Q.mainLoop.running=!0),e==0)Q.mainLoop.scheduler=function(){let A=Math.max(0,Q.mainLoop.tickStartTime+t-lt())|0;setTimeout(Q.mainLoop.runner,A)},Q.mainLoop.method="timeout";else if(e==1)Q.mainLoop.scheduler=function(){Q.requestAnimationFrame(Q.mainLoop.runner)},Q.mainLoop.method="rAF";else if(e==2){if(typeof setImmediate=="undefined"){let r=[],A="setimmediate",i=function(o){(o.data===A||o.data.target===A)&&(o.stopPropagation(),r.shift()())};addEventListener("message",i,!0),setImmediate=function(s){r.push(s),Ye?(n.setImmediates===void 0&&(n.setImmediates=[]),n.setImmediates.push(s),postMessage({target:A})):postMessage(A,"*")}}Q.mainLoop.scheduler=function(){setImmediate(Q.mainLoop.runner)},Q.mainLoop.method="immediate"}return 0}let lt;ft?lt=function(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}:lt=function(){return performance.now()};function vA(){return!C.currentContext||!C.currentContext.GLctx?-3:C.currentContext.defaultFbo?(C.blitOffscreenFramebuffer(C.currentContext),0):C.currentContext.attributes.explicitSwapControl?0:-3}function Wr(e){gc(e)}function Kn(){if(!Ue())try{Wr(Pt)}catch(e){if(e instanceof OA)return;throw e}}function Vn(e,t,r,A,i){M(!Q.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Q.mainLoop.func=e,Q.mainLoop.arg=A;let o=Q.mainLoop.currentlyRunningMainloop;function s(){return o<Q.mainLoop.currentlyRunningMainloop?(Kn(),!1):!0}if(Q.mainLoop.running=!1,Q.mainLoop.runner=function(){if(!Xe){if(Q.mainLoop.queue.length>0){let d=Date.now(),E=Q.mainLoop.queue.shift();if(E.func(E.arg),Q.mainLoop.remainingBlockers){let I=Q.mainLoop.remainingBlockers,B=I%1==0?I-1:Math.floor(I);E.counted?Q.mainLoop.remainingBlockers=B:(B=B+.5,Q.mainLoop.remainingBlockers=(8*I+B)/9)}if(be(`main loop blocker "${E.name}" took ${Date.now()-d} ms`),Q.mainLoop.updateStatus(),!s())return;setTimeout(Q.mainLoop.runner,0);return}if(s()){if(Q.mainLoop.currentFrameNumber=Q.mainLoop.currentFrameNumber+1|0,Q.mainLoop.timingMode==1&&Q.mainLoop.timingValue>1&&Q.mainLoop.currentFrameNumber%Q.mainLoop.timingValue!=0){Q.mainLoop.scheduler();return}Q.mainLoop.timingMode==0&&(Q.mainLoop.tickStartTime=lt()),C.newRenderingFrameStarted(),typeof C!="undefined"&&C.currentContext&&!C.currentContextIsProxied&&!C.currentContext.attributes.explicitSwapControl&&C.currentContext.GLctx.commit&&C.currentContext.GLctx.commit(),Q.mainLoop.method==="timeout"&&n.ctx&&(Te("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Q.mainLoop.method=""),Q.mainLoop.runIter(e),Se(),s()&&(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Q.mainLoop.scheduler())}}},i||(t&&t>0?qt(0,1e3/t):qt(1,1),Q.mainLoop.scheduler()),r)throw"unwind"}function yt(e,t){if(Xe){z("user callback triggered after application aborted. Ignoring.");return}if(t){e();return}try{e()}catch(r){if(r instanceof OA)return;if(r!=="unwind")throw r&&typeof r=="object"&&r.stack&&z(`exception thrown: ${[r,r.stack]}`),r}}function Jr(e,t){return setTimeout(()=>{yt(e)},t)}var Q={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause(){Q.mainLoop.scheduler=null,Q.mainLoop.currentlyRunningMainloop++},resume(){Q.mainLoop.currentlyRunningMainloop++;let{timingMode:e}=Q.mainLoop,{timingValue:t}=Q.mainLoop,{func:r}=Q.mainLoop;Q.mainLoop.func=null,Vn(r,0,!1,Q.mainLoop.arg,!0),qt(e,t),Q.mainLoop.scheduler()},updateStatus(){if(n.setStatus){let e=n.statusMessage||"Please wait...",t=Q.mainLoop.remainingBlockers,r=Q.mainLoop.expectedBlockers;t?t<r?n.setStatus(`${e} (${r-t}/${r})`):n.setStatus(e):n.setStatus("")}},runIter(e){Xe||n.preMainLoop&&n.preMainLoop()===!1||(yt(e),n.postMainLoop&&n.postMainLoop())}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init(){if(n.preloadPlugins||(n.preloadPlugins=[]),Q.initted)return;Q.initted=!0;try{new Blob,Q.hasBlobConstructor=!0}catch(i){Q.hasBlobConstructor=!1,be("warning: no blob constructor, cannot create blobs with mimetypes")}Q.BlobBuilder=typeof MozBlobBuilder!="undefined"?MozBlobBuilder:typeof WebKitBlobBuilder!="undefined"?WebKitBlobBuilder:Q.hasBlobConstructor?null:be("warning: no BlobBuilder"),Q.URLObject=typeof window!="undefined"?window.URL?window.URL:window.webkitURL:void 0,!n.noImageDecoding&&typeof Q.URLObject=="undefined"&&(be("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),n.noImageDecoding=!0);let e={};e.canHandle=function(o){return!n.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(o)},e.handle=function(o,s,c,d){let E=null;if(Q.hasBlobConstructor)try{E=new Blob([o],{type:Q.getMimetype(s)}),E.size!==o.length&&(E=new Blob([new Uint8Array(o).buffer],{type:Q.getMimetype(s)}))}catch(h){Te(`Blob constructor present but fails: ${h}; falling back to blob builder`)}if(!E){let h=new Q.BlobBuilder;h.append(new Uint8Array(o).buffer),E=h.getBlob()}let I=Q.URLObject.createObjectURL(E);M(typeof I=="string","createObjectURL must return a url as a string");let B=new Image;B.onload=function(){M(B.complete,`Image ${s} could not be decoded`);let _=document.createElement("canvas");_.width=B.width,_.height=B.height,_.getContext("2d").drawImage(B,0,0),n.preloadedImages[s]=_,Q.URLObject.revokeObjectURL(I),c&&c(o)},B.onerror=function(_){be(`Image ${I} could not be decoded`),d&&d()},B.src=I},n.preloadPlugins.push(e);let t={};t.canHandle=function(o){return!n.noAudioDecoding&&o.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},t.handle=function(o,s,c,d){let E=!1;function I(_){E||(E=!0,n.preloadedAudios[s]=_,c&&c(o))}function B(){E||(E=!0,n.preloadedAudios[s]=new Audio,d&&d())}if(Q.hasBlobConstructor){try{var h=new Blob([o],{type:Q.getMimetype(s)})}catch(x){return B()}let _=Q.URLObject.createObjectURL(h);M(typeof _=="string","createObjectURL must return a url as a string");let O=new Audio;O.addEventListener("canplaythrough",()=>{I(O)},!1),O.onerror=function(Y){if(E)return;be(`warning: browser could not fully decode audio ${s}, trying slower base64 approach`);function Z(D){let v="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",re="=",L="",pe=0,_e=0;for(let $e=0;$e<D.length;$e++)for(pe=pe<<8|D[$e],_e+=8;_e>=6;){let lc=pe>>_e-6&63;_e-=6,L+=v[lc]}return _e==2?(L+=v[(pe&3)<<4],L+=re+re):_e==4&&(L+=v[(pe&15)<<2],L+=re),L}O.src=`data:audio/x-${s.substr(-3)};base64,${Z(o)}`,I(O)},O.src=_,Jr(()=>{I(O)},1e4)}else return B()},n.preloadPlugins.push(t);function r(){Q.pointerLock=document.pointerLockElement===n.canvas||document.mozPointerLockElement===n.canvas||document.webkitPointerLockElement===n.canvas||document.msPointerLockElement===n.canvas}let{canvas:A}=n},createContext(e,t,r,A){if(t&&n.ctx&&e==n.canvas)return n.ctx;let i,o;if(t){let s={antialias:!1,alpha:!1,majorVersion:typeof WebGL2RenderingContext!="undefined"?2:1};if(A)for(let c in A)s[c]=A[c];typeof C!="undefined"&&(o=C.createContext(e,s),o&&(i=C.getContext(o).GLctx))}else i=e.getContext("2d");return i?(r&&(t||M(typeof y=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),n.ctx=i,t&&C.makeContextCurrent(o),n.useWebGL=t,Q.moduleContextCreatedCallbacks.forEach(s=>{s()}),Q.init()),i):null},destroyContext(e,t,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen(e,t){Q.lockPointer=e,Q.resizeCanvas=t,typeof Q.lockPointer=="undefined"&&(Q.lockPointer=!0),typeof Q.resizeCanvas=="undefined"&&(Q.resizeCanvas=!1);let{canvas:r}=n;function A(){Q.isFullscreen=!1;let o=r.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===o?(r.exitFullscreen=Q.exitFullscreen,Q.lockPointer&&r.requestPointerLock(),Q.isFullscreen=!0,Q.resizeCanvas?Q.setFullscreenCanvasSize():Q.updateCanvasDimensions(r)):(o.parentNode.insertBefore(r,o),o.parentNode.removeChild(o),Q.resizeCanvas?Q.setWindowedCanvasSize():Q.updateCanvasDimensions(r)),n.onFullScreen&&n.onFullScreen(Q.isFullscreen),n.onFullscreen&&n.onFullscreen(Q.isFullscreen)}Q.fullscreenHandlersInstalled||(Q.fullscreenHandlersInstalled=!0);let i=document.createElement("div");r.parentNode.insertBefore(i,r),i.appendChild(r),i.requestFullscreen=i.requestFullscreen||i.mozRequestFullScreen||i.msRequestFullscreen||(i.webkitRequestFullscreen?function(){i.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(i.webkitRequestFullScreen?function(){i.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),i.requestFullscreen()},requestFullScreen(){l("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen(){return Q.isFullscreen?((document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){}).apply(document,[]),!0):!1},nextRAF:0,fakeRequestAnimationFrame(e){let t=Date.now();if(Q.nextRAF===0)Q.nextRAF=t+1e3/60;else for(;t+2>=Q.nextRAF;)Q.nextRAF+=1e3/60;let r=Math.max(Q.nextRAF-t,0);setTimeout(e,r)},requestAnimationFrame(e){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(e);return}let t=Q.fakeRequestAnimationFrame;t(e)},safeSetTimeout(e){return Jr(e)},safeRequestAnimationFrame(e){return Q.requestAnimationFrame(()=>{yt(e)})},getMimetype(e){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[e.substr(e.lastIndexOf(".")+1)]},getUserMedia(e){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(e)},getMovementX(e){return e.movementX||e.mozMovementX||e.webkitMovementX||0},getMovementY(e){return e.movementY||e.mozMovementY||e.webkitMovementY||0},getMouseWheelDelta(e){let t=0;switch(e.type){case"DOMMouseScroll":t=e.detail/3;break;case"mousewheel":t=e.wheelDelta/120;break;case"wheel":switch(t=e.deltaY,e.deltaMode){case 0:t/=100;break;case 1:t/=3;break;case 2:t*=80;break;default:throw`unrecognized mouse wheel delta mode: ${e.deltaMode}`}break;default:throw`unrecognized mouse wheel event: ${e.type}`}return t},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent(e){if(Q.pointerLock)e.type!="mousemove"&&"mozMovementX"in e?Q.mouseMovementX=Q.mouseMovementY=0:(Q.mouseMovementX=Q.getMovementX(e),Q.mouseMovementY=Q.getMovementY(e)),typeof SDL!="undefined"?(Q.mouseX=SDL.mouseX+Q.mouseMovementX,Q.mouseY=SDL.mouseY+Q.mouseMovementY):(Q.mouseX+=Q.mouseMovementX,Q.mouseY+=Q.mouseMovementY);else{let t=n.canvas.getBoundingClientRect(),r=n.canvas.width,A=n.canvas.height,i=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset,o=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;if(M(typeof i!="undefined"&&typeof o!="undefined","Unable to retrieve scroll position, mouse positions likely broken."),e.type==="touchstart"||e.type==="touchend"||e.type==="touchmove"){let{touch:d}=e;if(d===void 0)return;let E=d.pageX-(i+t.left),I=d.pageY-(o+t.top);E=E*(r/t.width),I=I*(A/t.height);let B={x:E,y:I};if(e.type==="touchstart")Q.lastTouches[d.identifier]=B,Q.touches[d.identifier]=B;else if(e.type==="touchend"||e.type==="touchmove"){let h=Q.touches[d.identifier];h||(h=B),Q.lastTouches[d.identifier]=h,Q.touches[d.identifier]=B}return}let s=e.pageX-(i+t.left),c=e.pageY-(o+t.top);s=s*(r/t.width),c=c*(A/t.height),Q.mouseMovementX=s-Q.mouseX,Q.mouseMovementY=c-Q.mouseY,Q.mouseX=s,Q.mouseY=c}},resizeListeners:[],updateResizeListeners(){let{canvas:e}=n;Q.resizeListeners.forEach(t=>{t(e.width,e.height)})},setCanvasSize(e,t,r){let{canvas:A}=n;Q.updateCanvasDimensions(A,e,t),r||Q.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){if(typeof SDL!="undefined"){let e=oe[SDL.screen>>2];e=e|8388608,m[SDL.screen>>2]=e}Q.updateCanvasDimensions(n.canvas),Q.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){let e=oe[SDL.screen>>2];e=e&-8388609,m[SDL.screen>>2]=e}Q.updateCanvasDimensions(n.canvas),Q.updateResizeListeners()},updateCanvasDimensions(e,t,r){t&&r?(e.widthNative=t,e.heightNative=r):(t=e.widthNative,r=e.heightNative);let A=t,i=r;if(n.forcedAspectRatio&&n.forcedAspectRatio>0&&(A/i<n.forcedAspectRatio?A=Math.round(i*n.forcedAspectRatio):i=Math.round(A/n.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e.parentNode&&typeof screen!="undefined"){let o=Math.min(screen.width/A,screen.height/i);A=Math.round(A*o),i=Math.round(i*o)}Q.resizeCanvas?(e.width!=A&&(e.width=A),e.height!=i&&(e.height=i),typeof e.style!="undefined"&&(e.style.removeProperty("width"),e.style.removeProperty("height"))):(e.width!=t&&(e.width=t),e.height!=r&&(e.height=r),typeof e.style!="undefined"&&(A!=t||i!=r?(e.style.setProperty("width",`${A}px`,"important"),e.style.setProperty("height",`${i}px`,"important")):(e.style.removeProperty("width"),e.style.removeProperty("height"))))}};function _r(e){for(;e.length>0;){let t=e.shift();if(typeof t=="function"){t(n);continue}let{func:r}=t;typeof r=="number"?t.arg===void 0?F.get(r)():F.get(r)(t.arg):r(t.arg===void 0?null:t.arg)}}function er(e){return Te("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),e}function Kr(e){let t=/\b_Z[\w\d_]+/g;return e.replace(t,r=>{let A=er(r);return r===A?r:`${A} [${r}]`})}function tr(){let e=new Error;if(!e.stack){try{throw new Error}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function $n(){let e=tr();return n.extraStackTrace&&(e+=`
2
- ${n.extraStackTrace()}`),Kr(e)}function zn(e){return Xt(e+16)+16}function yr(e,t){}function Vr(e,t){return void 0}function Dt(e){this.excPtr=e,this.ptr=e-16,this.set_type=function(t){m[this.ptr+4>>2]=t},this.get_type=function(){return m[this.ptr+4>>2]},this.set_destructor=function(t){m[this.ptr+8>>2]=t},this.get_destructor=function(){return m[this.ptr+8>>2]},this.set_refcount=function(t){m[this.ptr>>2]=t},this.set_caught=function(t){t=t?1:0,le[this.ptr+12>>0]=t},this.get_caught=function(){return le[this.ptr+12>>0]!=0},this.set_rethrown=function(t){t=t?1:0,le[this.ptr+13>>0]=t},this.get_rethrown=function(){return le[this.ptr+13>>0]!=0},this.init=function(t,r){this.set_type(t),this.set_destructor(r),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){let t=m[this.ptr>>2];m[this.ptr>>2]=t+1},this.release_ref=function(){let t=m[this.ptr>>2];return m[this.ptr>>2]=t-1,M(t>0),t===1}}function rr(e){this.free=function(){ot(this.ptr),this.ptr=0},this.set_base_ptr=function(t){m[this.ptr>>2]=t},this.get_base_ptr=function(){return m[this.ptr>>2]},this.set_adjusted_ptr=function(t){m[this.ptr+4>>2]=t},this.get_adjusted_ptr_addr=function(){return this.ptr+4},this.get_adjusted_ptr=function(){return m[this.ptr+4>>2]},this.get_exception_ptr=function(){if(aa(this.get_exception_info().get_type()))return m[this.get_base_ptr()>>2];let r=this.get_adjusted_ptr();return r!==0?r:this.get_base_ptr()},this.get_exception_info=function(){return new Dt(this.get_base_ptr())},e===void 0?(this.ptr=Xt(8),this.set_adjusted_ptr(0)):this.ptr=e}let Ut=[];function nt(e){e.add_ref()}let Dr=0;function $r(e){let t=new rr(e),r=t.get_exception_info();return r.get_caught()||(r.set_caught(!0),Dr--),r.set_rethrown(!1),Ut.push(t),nt(r),t.get_exception_ptr()}let At=0;function wt(e){try{return ot(new Dt(e).ptr)}catch(t){z(`exception during cxa_free_exception: ${t}`)}}function Zn(e){if(e.release_ref()&&!e.get_rethrown()){let t=e.get_destructor();t&&F.get(t)(e.excPtr),wt(e.excPtr)}}function zr(){H(0),M(Ut.length>0);let e=Ut.pop();Zn(e.get_exception_info()),e.free(),At=0}function wr(e){let t=new rr(e),r=t.get_base_ptr();throw At||(At=r),t.free(),`${r} - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch.`}function qn(){let e=At;if(!e)return ne(0),0;let r=new Dt(e).get_type(),A=new rr;if(A.set_base_ptr(e),A.set_adjusted_ptr(e),!r)return ne(0),A.ptr|0;let i=Array.prototype.slice.call(arguments);for(let o=0;o<i.length;o++){let s=i[o];if(s===0||s===r)break;if(ei(s,r,A.get_adjusted_ptr_addr()))return ne(s),A.ptr|0}return ne(r),A.ptr|0}function Zr(){let e=At;if(!e)return ne(0),0;let r=new Dt(e).get_type(),A=new rr;if(A.set_base_ptr(e),A.set_adjusted_ptr(e),!r)return ne(0),A.ptr|0;let i=Array.prototype.slice.call(arguments);for(let o=0;o<i.length;o++){let s=i[o];if(s===0||s===r)break;if(ei(s,r,A.get_adjusted_ptr_addr()))return ne(s),A.ptr|0}return ne(r),A.ptr|0}function eA(){let e=Ut.pop();e||l("no exception to throw");let t=e.get_exception_info(),r=e.get_base_ptr();throw t.get_rethrown()?e.free():(Ut.push(e),t.set_rethrown(!0),t.set_caught(!1),Dr++),At=r,`${r} - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch.`}function tA(e,t){return void 0}function rA(e,t,r){throw new Dt(e).init(t,r),At=e,Dr++,`${e} - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch.`}function br(e){return m[na()>>2]=e,e}var te={splitPath(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray(e,t){let r=0;for(let A=e.length-1;A>=0;A--){let i=e[A];i==="."?e.splice(A,1):i===".."?(e.splice(A,1),r++):r&&(e.splice(A,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize(e){let t=e.charAt(0)==="/",r=e.substr(-1)==="/";return e=te.normalizeArray(e.split("/").filter(A=>!!A),!t).join("/"),!e&&!t&&(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname(e){let t=te.splitPath(e),r=t[0],A=t[1];return!r&&!A?".":(A&&(A=A.substr(0,A.length-1)),r+A)},basename(e){if(e==="/")return"/";e=te.normalize(e),e=e.replace(/\/$/,"");let t=e.lastIndexOf("/");return t===-1?e:e.substr(t+1)},extname(e){return te.splitPath(e)[3]},join(){let e=Array.prototype.slice.call(arguments,0);return te.normalize(e.join("/"))},join2(e,t){return te.normalize(`${e}/${t}`)}};function nr(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){let e=new Uint8Array(1);return function(){return crypto.getRandomValues(e),e[0]}}if(ft)try{let e=Cc("crypto");return function(){return e.randomBytes(1)[0]}}catch(e){}return function(){l("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };")}}var Ce={resolve(){let e="",t=!1;for(let r=arguments.length-1;r>=-1&&!t;r--){let A=r>=0?arguments[r]:a.cwd();if(typeof A!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!A)return"";e=`${A}/${e}`,t=A.charAt(0)==="/"}return e=te.normalizeArray(e.split("/").filter(r=>!!r),!t).join("/"),(t?"/":"")+e||"."},relative(e,t){e=Ce.resolve(e).substr(1),t=Ce.resolve(t).substr(1);function r(E){let I=0;for(;I<E.length&&E[I]==="";I++);let B=E.length-1;for(;B>=0&&E[B]==="";B--);return I>B?[]:E.slice(I,B-I+1)}let A=r(e.split("/")),i=r(t.split("/")),o=Math.min(A.length,i.length),s=o;for(var c=0;c<o;c++)if(A[c]!==i[c]){s=c;break}let d=[];for(var c=s;c<A.length;c++)d.push("..");return d=d.concat(i.slice(s)),d.join("/")}},ke={ttys:[],init(){},shutdown(){},register(e,t){ke.ttys[e]={input:[],output:[],ops:t},a.registerDevice(e,ke.stream_ops)},stream_ops:{open(e){let t=ke.ttys[e.node.rdev];if(!t)throw new a.ErrnoError(43);e.tty=t,e.seekable=!1},close(e){e.tty.ops.flush(e.tty)},flush(e){e.tty.ops.flush(e.tty)},read(e,t,r,A,i){if(!e.tty||!e.tty.ops.get_char)throw new a.ErrnoError(60);let o=0;for(let c=0;c<A;c++){var s;try{s=e.tty.ops.get_char(e.tty)}catch(d){throw new a.ErrnoError(29)}if(s===void 0&&o===0)throw new a.ErrnoError(6);if(s==null)break;o++,t[r+c]=s}return o&&(e.node.timestamp=Date.now()),o},write(e,t,r,A,i){if(!e.tty||!e.tty.ops.put_char)throw new a.ErrnoError(60);try{for(var o=0;o<A;o++)e.tty.ops.put_char(e.tty,t[r+o])}catch(s){throw new a.ErrnoError(29)}return A&&(e.node.timestamp=Date.now()),o}},default_tty_ops:{get_char(e){if(!e.input.length){let t=null;if(ft){let A=Buffer.alloc(256),i=0;try{i=Jt.readSync(process.stdin.fd,A,0,256,null)}catch(o){if(o.toString().includes("EOF"))i=0;else throw o}i>0?t=A.slice(0,i).toString("utf-8"):t=null}else typeof window!="undefined"&&typeof window.prompt=="function"?(t=window.prompt("Input: "),t!==null&&(t+=`
1
+ "use strict";var VirtualBackground=(()=>{var So=Object.defineProperty,Hc=Object.defineProperties,Gc=Object.getOwnPropertyDescriptor,Yc=Object.getOwnPropertyDescriptors,Xc=Object.getOwnPropertyNames,Ac=Object.getOwnPropertySymbols;var cc=Object.prototype.hasOwnProperty,Wc=Object.prototype.propertyIsEnumerable;var qA=(oe,G,n)=>G in oe?So(oe,G,{enumerable:!0,configurable:!0,writable:!0,value:n}):oe[G]=n,uc=(oe,G)=>{for(var n in G||(G={}))cc.call(G,n)&&qA(oe,n,G[n]);if(Ac)for(var n of Ac(G))Wc.call(G,n)&&qA(oe,n,G[n]);return oe},lc=(oe,G)=>Hc(oe,Yc(G));var dc=(oe=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(oe,{get:(G,n)=>(typeof require!="undefined"?require:G)[n]}):oe)(function(oe){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+oe+'" is not supported')});var Vc=(oe,G)=>{for(var n in G)So(oe,n,{get:G[n],enumerable:!0})},zc=(oe,G,n,ge)=>{if(G&&typeof G=="object"||typeof G=="function")for(let U of Xc(G))!cc.call(oe,U)&&U!==n&&So(oe,U,{get:()=>G[U],enumerable:!(ge=Gc(G,U))||ge.enumerable});return oe};var $c=oe=>zc(So({},"__esModule",{value:!0}),oe);var Xe=(oe,G,n)=>(qA(oe,typeof G!="symbol"?G+"":G,n),n);var tu={};Vc(tu,{VirtualBackground:()=>ko,default:()=>eu});async function fc({sdkAppId:oe,userId:G,userSig:n,core:ge}){var Ze;let U=ge.utils.getAbilityConfigUrl(oe),Fe=Math.round(new Date().getTime()/1e3),ye=`${U}?sdkAppId=${oe}&userId=${G}&userSig=${n}&timestamp=${Fe}`;try{let qe=await(await fetch(ye)).json();ge.log.info(`virtual background send ${ye}, response: ${JSON.stringify(qe)}`);let{data:Ve}=qe;return(Ze=Ve==null?void 0:Ve.trtcAutoConf)!=null&&Ze.web_ar?{auth:!0,timestamp:Fe}:{auth:!1}}catch(ct){return ge.log.error("beauty fetch error",ct),{auth:!1}}}var Kc={sdkAppId:{required:!0,type:"number"},userId:{required:!0,type:"string"},userSig:{required:!0,type:"string"}};function gc(oe){return{name:"VirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:lc(uc({},Kc),{type:{required:!1,type:"string",values:["image","blur"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10},onError:{required:!1}}),validate(G,n,ge,U){var ze;let{RtcError:Fe,ErrorCode:ye,ErrorCodeDictionary:Ze}=oe.errorModule;if(!G)return;let{type:ct,src:qe,onError:Ve}=G;if(ct==="image"&&!qe)throw new Fe({code:ye.INVALID_PARAMETER,extraCode:Ze.INVALID_PARAMETER_REQUIRED,fnName:ge,messageParams:{key:"src"}});if(Ve&&!oe.utils.isFunction(Ve))throw new Fe({code:ye.INVALID_PARAMETER,extraCode:Ze.INVALID_PARAMETER_TYPE,fnName:ge,messageParams:{key:"onError",value:typeof Ve,rule:{type:"Function"}}});if(!((ze=oe.room.videoManager.cameraTrack)!=null&&ze.mediaTrack))throw new Fe({code:ye.INVALID_OPERATION,extraCode:Ze.INVALID_OPERATION_NEED_VIDEO,fnName:ge});if(oe.environment.CHROME_MAJOR_VERSION<90)throw new Fe({code:ye.ENV_NOT_SUPPORTED,extraCode:Ze.NOT_SUPPORTED_CHROME_VERSION,fnName:ge})}}}function Ec(oe){return{name:"UpdateVirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:{type:{required:!0,type:"string",values:["image","blur"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10}},validate(G,n,ge,U){if(!G)return;let{RtcError:Fe,ErrorCode:ye,ErrorCodeDictionary:Ze}=oe.errorModule,{type:ct,src:qe}=G;if(ct==="image"&&!qe)throw new Fe({code:ye.INVALID_PARAMETER,extraCode:Ze.INVALID_PARAMETER_REQUIRED,fnName:ge,messageParams:{key:"src"}})}}}function pc(oe){return{name:"StopVirtualBackgroundOptions",required:!1}}var Jc=function(){let oe=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(oe=oe||__filename),function(G){G=G||{};let n=typeof G!="undefined"?G:{},ge,U;n.ready=new Promise((e,t)=>{ge=e,U=t}),Object.getOwnPropertyDescriptor(n.ready,"_main")||(Object.defineProperty(n.ready,"_main",{configurable:!0,get(){p("You are getting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_main",{configurable:!0,set(){p("You are setting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_get_end")||(Object.defineProperty(n.ready,"_emscripten_stack_get_end",{configurable:!0,get(){p("You are getting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_get_end",{configurable:!0,set(){p("You are setting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_get_free")||(Object.defineProperty(n.ready,"_emscripten_stack_get_free",{configurable:!0,get(){p("You are getting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_get_free",{configurable:!0,set(){p("You are setting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_init")||(Object.defineProperty(n.ready,"_emscripten_stack_init",{configurable:!0,get(){p("You are getting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_init",{configurable:!0,set(){p("You are setting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackSave")||(Object.defineProperty(n.ready,"_stackSave",{configurable:!0,get(){p("You are getting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackSave",{configurable:!0,set(){p("You are setting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackRestore")||(Object.defineProperty(n.ready,"_stackRestore",{configurable:!0,get(){p("You are getting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackRestore",{configurable:!0,set(){p("You are setting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackAlloc")||(Object.defineProperty(n.ready,"_stackAlloc",{configurable:!0,get(){p("You are getting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackAlloc",{configurable:!0,set(){p("You are setting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___wasm_call_ctors")||(Object.defineProperty(n.ready,"___wasm_call_ctors",{configurable:!0,get(){p("You are getting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___wasm_call_ctors",{configurable:!0,set(){p("You are setting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_fflush")||(Object.defineProperty(n.ready,"_fflush",{configurable:!0,get(){p("You are getting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_fflush",{configurable:!0,set(){p("You are setting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___errno_location")||(Object.defineProperty(n.ready,"___errno_location",{configurable:!0,get(){p("You are getting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___errno_location",{configurable:!0,set(){p("You are setting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_malloc")||(Object.defineProperty(n.ready,"_malloc",{configurable:!0,get(){p("You are getting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_malloc",{configurable:!0,set(){p("You are setting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_free")||(Object.defineProperty(n.ready,"_free",{configurable:!0,get(){p("You are getting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_free",{configurable:!0,set(){p("You are setting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_setThrew")||(Object.defineProperty(n.ready,"_setThrew",{configurable:!0,get(){p("You are getting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_setThrew",{configurable:!0,set(){p("You are setting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___cxa_is_pointer_type")||(Object.defineProperty(n.ready,"___cxa_is_pointer_type",{configurable:!0,get(){p("You are getting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___cxa_is_pointer_type",{configurable:!0,set(){p("You are setting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___cxa_can_catch")||(Object.defineProperty(n.ready,"___cxa_can_catch",{configurable:!0,get(){p("You are getting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___cxa_can_catch",{configurable:!0,set(){p("You are setting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_saveSetjmp")||(Object.defineProperty(n.ready,"_saveSetjmp",{configurable:!0,get(){p("You are getting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_saveSetjmp",{configurable:!0,set(){p("You are setting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_memalign")||(Object.defineProperty(n.ready,"_memalign",{configurable:!0,get(){p("You are getting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_memalign",{configurable:!0,set(){p("You are setting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_main_thread_process_queued_calls")||(Object.defineProperty(n.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,get(){p("You are getting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,set(){p("You are setting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_webgl_make_context_current")||(Object.defineProperty(n.ready,"_emscripten_webgl_make_context_current",{configurable:!0,get(){p("You are getting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_webgl_make_context_current",{configurable:!0,set(){p("You are setting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_webgl_get_current_context")||(Object.defineProperty(n.ready,"_emscripten_webgl_get_current_context",{configurable:!0,get(){p("You are getting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_webgl_get_current_context",{configurable:!0,set(){p("You are setting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_tzname")||(Object.defineProperty(n.ready,"__get_tzname",{configurable:!0,get(){p("You are getting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_tzname",{configurable:!0,set(){p("You are setting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_daylight")||(Object.defineProperty(n.ready,"__get_daylight",{configurable:!0,get(){p("You are getting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_daylight",{configurable:!0,set(){p("You are setting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_timezone")||(Object.defineProperty(n.ready,"__get_timezone",{configurable:!0,get(){p("You are getting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_timezone",{configurable:!0,set(){p("You are setting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_malloc")||(Object.defineProperty(n.ready,"_emscripten_builtin_malloc",{configurable:!0,get(){p("You are getting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_malloc",{configurable:!0,set(){p("You are setting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_free")||(Object.defineProperty(n.ready,"_emscripten_builtin_free",{configurable:!0,get(){p("You are getting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_free",{configurable:!0,set(){p("You are setting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_memalign")||(Object.defineProperty(n.ready,"_emscripten_builtin_memalign",{configurable:!0,get(){p("You are getting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_memalign",{configurable:!0,set(){p("You are setting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___getTypeName")||(Object.defineProperty(n.ready,"___getTypeName",{configurable:!0,get(){p("You are getting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___getTypeName",{configurable:!0,set(){p("You are setting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___embind_register_native_and_builtin_types")||(Object.defineProperty(n.ready,"___embind_register_native_and_builtin_types",{configurable:!0,get(){p("You are getting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___embind_register_native_and_builtin_types",{configurable:!0,set(){p("You are setting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"onRuntimeInitialized")||(Object.defineProperty(n.ready,"onRuntimeInitialized",{configurable:!0,get(){p("You are getting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"onRuntimeInitialized",{configurable:!0,set(){p("You are setting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));let Fe={},ye;for(ye in n)n.hasOwnProperty(ye)&&(Fe[ye]=n[ye]);let Ze=[],ct="./this.program",qe=function(e,t){throw t},Ve=typeof window=="object",ze=typeof importScripts=="function",_t=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",Ii=!Ve&&!_t&&!ze;if(n.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)");let Be="";function Ci(e){return n.locateFile?n.locateFile(e,Be):Be+e}let vr,qt,en,pn,We,fe;if(Ve||ze){if(ze?Be=self.location.href:typeof document!="undefined"&&document.currentScript&&(Be=document.currentScript.src),oe&&(Be=oe),Be.indexOf("blob:")!==0?Be=Be.substr(0,Be.lastIndexOf("/")+1):Be="",!(typeof window=="object"||typeof importScripts=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");vr=function(e){let t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},ze&&(en=function(e){let t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),qt=function(e,t,r){let o=new XMLHttpRequest;o.open("GET",e,!0),o.responseType="arraybuffer",o.onload=function(){if(o.status==200||o.status==0&&o.response){t(o.response);return}r()},o.onerror=r,o.send(null)},pn=function(e){document.title=e}}else throw new Error("environment detection error");let Pe=n.print||console.log.bind(console),Ee=n.printErr||console.warn.bind(console);for(ye in Fe)Fe.hasOwnProperty(ye)&&(n[ye]=Fe[ye]);Fe=null,n.arguments&&(Ze=n.arguments),Object.getOwnPropertyDescriptor(n,"arguments")||Object.defineProperty(n,"arguments",{configurable:!0,get(){p("Module.arguments has been replaced with plain arguments_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),n.thisProgram&&(ct=n.thisProgram),Object.getOwnPropertyDescriptor(n,"thisProgram")||Object.defineProperty(n,"thisProgram",{configurable:!0,get(){p("Module.thisProgram has been replaced with plain thisProgram (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),n.quit&&(qe=n.quit),Object.getOwnPropertyDescriptor(n,"quit")||Object.defineProperty(n,"quit",{configurable:!0,get(){p("Module.quit has been replaced with plain quit_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),z(typeof n.memoryInitializerPrefixURL=="undefined","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),z(typeof n.pthreadMainPrefixURL=="undefined","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),z(typeof n.cdInitializerPrefixURL=="undefined","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),z(typeof n.filePackagePrefixURL=="undefined","Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),z(typeof n.read=="undefined","Module.read option was removed (modify read_ in JS)"),z(typeof n.readAsync=="undefined","Module.readAsync option was removed (modify readAsync in JS)"),z(typeof n.readBinary=="undefined","Module.readBinary option was removed (modify readBinary in JS)"),z(typeof n.setWindowTitle=="undefined","Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),z(typeof n.TOTAL_MEMORY=="undefined","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Object.getOwnPropertyDescriptor(n,"read")||Object.defineProperty(n,"read",{configurable:!0,get(){p("Module.read has been replaced with plain read_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(n,"readAsync")||Object.defineProperty(n,"readAsync",{configurable:!0,get(){p("Module.readAsync has been replaced with plain readAsync (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(n,"readBinary")||Object.defineProperty(n,"readBinary",{configurable:!0,get(){p("Module.readBinary has been replaced with plain readBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(n,"setWindowTitle")||Object.defineProperty(n,"setWindowTitle",{configurable:!0,get(){p("Module.setWindowTitle has been replaced with plain setWindowTitle (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),z(!Ii,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");function et(e){et.shown||(et.shown={}),et.shown[e]||(et.shown[e]=1,Ee(e))}function _r(e,t){if(typeof WebAssembly.Function=="function"){let m={i:"i32",j:"i64",f:"f32",d:"f64"},I={parameters:[],results:t[0]=="v"?[]:[m[t[0]]]};for(var r=1;r<t.length;++r)I.parameters.push(m[t[r]]);return new WebAssembly.Function(I,e)}let o=[1,0,1,96],a=t.slice(0,1),s=t.slice(1),A={i:127,j:126,f:125,d:124};o.push(s.length);for(var r=0;r<s.length;++r)o.push(A[s[r]]);a=="v"?o.push(0):o=o.concat([1,A[a]]),o[1]=o.length-2;let c=new Uint8Array([0,97,115,109,1,0,0,0].concat(o,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0])),u=new WebAssembly.Module(c);return new WebAssembly.Instance(u,{e:{f:e}}).exports.f}let Ut=[],He;function hr(){if(Ut.length)return Ut.pop();try{V.grow(1)}catch(e){throw e instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":e}return V.length-1}function ht(e,t){if(!He){He=new WeakMap;for(let o=0;o<V.length;o++){let a=V.get(o);a&&He.set(a,o)}}if(He.has(e))return He.get(e);let r=hr();try{V.set(r,e)}catch(o){if(!(o instanceof TypeError))throw o;z(typeof t!="undefined",`Missing signature argument to addFunction: ${e}`);let a=_r(e,t);V.set(r,a)}return He.set(e,r),r}let mr=0,he=function(e){mr=e},Nn=function(){return mr},Nt;n.wasmBinary&&(Nt=n.wasmBinary),Object.getOwnPropertyDescriptor(n,"wasmBinary")||Object.defineProperty(n,"wasmBinary",{configurable:!0,get(){p("Module.wasmBinary has been replaced with plain wasmBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}});let xt=n.noExitRuntime||!0;Object.getOwnPropertyDescriptor(n,"noExitRuntime")||Object.defineProperty(n,"noExitRuntime",{configurable:!0,get(){p("Module.noExitRuntime has been replaced with plain noExitRuntime (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),typeof WebAssembly!="object"&&p("no native wasm support detected");let vt,W=!1,Qr;function z(e,t){e||p(`Assertion failed: ${t}`)}function ao(e){let t=n[`_${e}`];return z(t,`Cannot call unknown function ${e}, make sure it is exported`),t}function yi(e,t,r,o,a){let s={string(I){let y=0;if(I!=null&&I!==0){let v=(I.length<<2)+1;y=ro(v),er(I,y,v)}return y},array(I){let y=ro(I.length);return Ln(I,y),y}};function A(I){return t==="string"?$e(I):t==="boolean"?!!I:I}let c=ao(e),u=[],d=0;if(z(t!=="array",'Return type should not be "array".'),o)for(let I=0;I<o.length;I++){let y=s[r[I]];y?(d===0&&(d=x()),u[I]=y(o[I])):u[I]=o[I]}let h=c.apply(null,u);function m(I){return d!==0&&ee(d),A(I)}return h=m(h),h}let Pr=1,it=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Qt(e,t,r){let o=t+r,a=t;for(;e[a]&&!(a>=o);)++a;if(a-t>16&&e.subarray&&it)return it.decode(e.subarray(t,a));let s="";for(;t<a;){let A=e[t++];if(!(A&128)){s+=String.fromCharCode(A);continue}let c=e[t++]&63;if((A&224)==192){s+=String.fromCharCode((A&31)<<6|c);continue}let u=e[t++]&63;if((A&240)==224?A=(A&15)<<12|c<<6|u:((A&248)!=240&&et(`Invalid UTF-8 leading byte 0x${A.toString(16)} encountered when deserializing a UTF-8 string in wasm memory to a JS string!`),A=(A&7)<<18|c<<12|u<<6|e[t++]&63),A<65536)s+=String.fromCharCode(A);else{let d=A-65536;s+=String.fromCharCode(55296|d>>10,56320|d&1023)}}return s}function $e(e,t){return e?Qt(Te,e,t):""}function Ke(e,t,r,o){if(!(o>0))return 0;let a=r,s=r+o-1;for(let A=0;A<e.length;++A){let c=e.charCodeAt(A);if(c>=55296&&c<=57343){let u=e.charCodeAt(++A);c=65536+((c&1023)<<10)|u&1023}if(c<=127){if(r>=s)break;t[r++]=c}else if(c<=2047){if(r+1>=s)break;t[r++]=192|c>>6,t[r++]=128|c&63}else if(c<=65535){if(r+2>=s)break;t[r++]=224|c>>12,t[r++]=128|c>>6&63,t[r++]=128|c&63}else{if(r+3>=s)break;c>=2097152&&et(`Invalid Unicode code point 0x${c.toString(16)} encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x1FFFFF).`),t[r++]=240|c>>18,t[r++]=128|c>>12&63,t[r++]=128|c>>6&63,t[r++]=128|c&63}}return t[r]=0,r-a}function er(e,t,r){return z(typeof r=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),Ke(e,Te,t,r)}function wt(e){let t=0;for(let r=0;r<e.length;++r){let o=e.charCodeAt(r);o>=55296&&o<=57343&&(o=65536+((o&1023)<<10)|e.charCodeAt(++r)&1023),o<=127?++t:o<=2047?t+=2:o<=65535?t+=3:t+=4}return t}let xn=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function wi(e,t){z(e%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");let r=e,o=r>>1,a=o+t/2;for(;!(o>=a)&&be[o];)++o;if(r=o<<1,r-e>32&&xn)return xn.decode(Te.subarray(e,r));let s="";for(let A=0;!(A>=t/2);++A){let c=T[e+A*2>>1];if(c==0)break;s+=String.fromCharCode(c)}return s}function _n(e,t,r){if(z(t%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),z(typeof r=="number","stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),r===void 0&&(r=2147483647),r<2)return 0;r-=2;let o=t,a=r<e.length*2?r/2:e.length;for(let s=0;s<a;++s){let A=e.charCodeAt(s);T[t>>1]=A,t+=2}return T[t>>1]=0,t-o}function jn(e){return e.length*2}function Di(e,t){z(e%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");let r=0,o="";for(;!(r>=t/4);){let a=b[e+r*4>>2];if(a==0)break;if(++r,a>=65536){let s=a-65536;o+=String.fromCharCode(55296|s>>10,56320|s&1023)}else o+=String.fromCharCode(a)}return o}function hn(e,t,r){if(z(t%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),z(typeof r=="number","stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),r===void 0&&(r=2147483647),r<4)return 0;let o=t,a=o+r-4;for(let s=0;s<e.length;++s){let A=e.charCodeAt(s);if(A>=55296&&A<=57343){let c=e.charCodeAt(++s);A=65536+((A&1023)<<10)|c&1023}if(b[t>>2]=A,t+=4,t+4>a)break}return b[t>>2]=0,t-o}function Rr(e){let t=0;for(let r=0;r<e.length;++r){let o=e.charCodeAt(r);o>=55296&&o<=57343&&++r,t+=4}return t}function mn(e){let t=wt(e)+1,r=Zr(t);return r&&Ke(e,De,r,t),r}function Ln(e,t){z(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),De.set(e,t)}function Sr(e,t,r){for(let o=0;o<e.length;++o)z(e.charCodeAt(o)===e.charCodeAt(o)&255),De[t++>>0]=e.charCodeAt(o);r||(De[t>>0]=0)}function Ne(e,t){return e%t>0&&(e+=t-e%t),e}let Re,De,Te,T,be,b,ve,Ye,Mr;function tn(e){Re=e,n.HEAP8=De=new Int8Array(e),n.HEAP16=T=new Int16Array(e),n.HEAP32=b=new Int32Array(e),n.HEAPU8=Te=new Uint8Array(e),n.HEAPU16=be=new Uint16Array(e),n.HEAPU32=ve=new Uint32Array(e),n.HEAPF32=Ye=new Float32Array(e),n.HEAPF64=Mr=new Float64Array(e)}let K=5242880;n.TOTAL_STACK&&z(K===n.TOTAL_STACK,"the stack size can no longer be determined at runtime");let Fr=n.INITIAL_MEMORY||16777216;Object.getOwnPropertyDescriptor(n,"INITIAL_MEMORY")||Object.defineProperty(n,"INITIAL_MEMORY",{configurable:!0,get(){p("Module.INITIAL_MEMORY has been replaced with plain INITIAL_MEMORY (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),z(Fr>=K,`INITIAL_MEMORY should be larger than TOTAL_STACK, was ${Fr}! (TOTAL_STACK=${K})`),z(typeof Int32Array!="undefined"&&typeof Float64Array!="undefined"&&Int32Array.prototype.subarray!==void 0&&Int32Array.prototype.set!==void 0,"JS engine does not provide full typed array support"),z(!n.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),z(Fr==16777216,"Detected runtime INITIAL_MEMORY setting. Use -s IMPORTED_MEMORY to define wasmMemory dynamically");let V;function jt(){let e=qr();z((e&3)==0),ve[(e>>2)+1]=34821223,ve[(e>>2)+2]=2310721022,b[0]=1668509029}function ot(){if(W)return;let e=qr(),t=ve[(e>>2)+1],r=ve[(e>>2)+2];(t!=34821223||r!=2310721022)&&p(`Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x${r.toString(16)} ${t.toString(16)}`),b[0]!==1668509029&&p("Runtime error: The application has corrupted its heap memory area (address zero)!")}(function(){let e=new Int16Array(1),t=new Int8Array(e.buffer);if(e[0]=25459,t[0]!==115||t[1]!==99)throw"Runtime error: expected the system to be little-endian! (Run with -s SUPPORT_BIG_ENDIAN=1 to bypass)"})();let kr=[],Lt=[],le=[],rn=[],Ir=!1,Dt=!1,bi=0;function mt(){return xt||bi>0}function Ht(){if(n.preRun)for(typeof n.preRun=="function"&&(n.preRun=[n.preRun]);n.preRun.length;)Cn(n.preRun.shift());bn(kr)}function Oi(){ot(),z(!Ir),Ir=!0,!n.noFSInit&&!l.init.initialized&&l.init(),l.ignorePermissions=!1,It.init(),bn(Lt)}function Bi(){ot(),Dt=!0}function In(){if(ot(),n.postRun)for(typeof n.postRun=="function"&&(n.postRun=[n.postRun]);n.postRun.length;)tr(n.postRun.shift());bn(rn)}function Cn(e){kr.unshift(e)}function Gt(e){Lt.unshift(e)}function tr(e){rn.unshift(e)}z(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),z(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),z(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),z(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");let ut=0,at=null,rr=null,Pt={};function Cr(e){let t=e;for(;;){if(!Pt[e])return e;e=t+Math.random()}}function E(e){ut++,n.monitorRunDependencies&&n.monitorRunDependencies(ut),e?(z(!Pt[e]),Pt[e]=1,at===null&&typeof setInterval!="undefined"&&(at=setInterval(()=>{if(W){clearInterval(at),at=null;return}let t=!1;for(let r in Pt)t||(t=!0,Ee("still waiting on run dependencies:")),Ee(`dependency: ${r}`);t&&Ee("(end of list)")},1e4))):Ee("warning: run dependency added without ID")}function nr(e){if(ut--,n.monitorRunDependencies&&n.monitorRunDependencies(ut),e?(z(Pt[e]),delete Pt[e]):Ee("warning: run dependency removed without ID"),ut==0&&(at!==null&&(clearInterval(at),at=null),rr)){let t=rr;rr=null,t()}}n.preloadedImages={},n.preloadedAudios={};function p(e){n.onAbort&&n.onAbort(e),e+="",Ee(e),W=!0,Qr=1,e=`abort(${e}) at ${Qi()}`;let r=new WebAssembly.RuntimeError(e);throw U(r),r}let yn="data:application/octet-stream;base64,";function ue(e){return e.startsWith(yn)}function je(e){return e.startsWith("file://")}function ce(e,t){return function(){let r=e,o=t;return t||(o=n.asm),z(Ir,`native function \`${r}\` called before runtime initialization`),z(!Dt,`native function \`${r}\` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)`),o[e]||z(o[e],`exported native function \`${r}\` not found`),o[e].apply(null,arguments)}}let yr;yr="selfie_segmentation_solution_simd_wasm_bin.wasm",ue(yr)||(yr=Ci(yr));function wn(e){try{if(e==yr&&Nt)return new Uint8Array(Nt);if(en)return en(e);throw"both async and sync fetching of the wasm failed"}catch(t){p(t)}}function Ge(){let e={env:Zs,wasi_snapshot_preview1:Zs};function t(a,s){let{exports:A}=a;n.asm=A,vt=n.asm.memory,z(vt,"memory not found in wasm exports"),tn(vt.buffer),V=n.asm.__indirect_function_table,z(V,"table not found in wasm exports"),Gt(n.asm.__wasm_call_ctors),nr("wasm-instantiate")}E("wasm-instantiate");let r=n;function o(a){z(n===r,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),r=null,t(a)}if(n.instantiateWasm)try{return n.instantiateWasm(e,t)}catch(a){return Ee(`Module.instantiateWasm callback failed with error: ${a}`),!1}return n.loadWasm(yr,e).then(o).catch(U),{}}let Ce,bt,Ur={460656(){let e=!0;if(e){let t=Ki;if(typeof t!="function"){typeof console!="undefined"&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.');return}Ki=function(r){if(r==0){if(n&&n.canvas)return n.canvas;if(n&&n.canvasCssSelector)return t(n.canvasCssSelector);typeof console!="undefined"&&console.warn("Module properties canvas and canvasCssSelector not found during WebGL context creation.")}return t(r)},e=!1}},461441(){return typeof wasmOffsetConverter!="undefined"}};function wr(){return typeof wasmOffsetConverter!="undefined"}function Ot(e,t){if(P.mainLoop.timingMode=e,P.mainLoop.timingValue=t,!P.mainLoop.func)return Ee("emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up."),1;if(P.mainLoop.running||(P.mainLoop.running=!0),e==0)P.mainLoop.scheduler=function(){let o=Math.max(0,P.mainLoop.tickStartTime+t-Dr())|0;setTimeout(P.mainLoop.runner,o)},P.mainLoop.method="timeout";else if(e==1)P.mainLoop.scheduler=function(){P.requestAnimationFrame(P.mainLoop.runner)},P.mainLoop.method="rAF";else if(e==2){if(typeof setImmediate=="undefined"){let r=[],o="setimmediate",a=function(s){(s.data===o||s.data.target===o)&&(s.stopPropagation(),r.shift()())};addEventListener("message",a,!0),setImmediate=function(A){r.push(A),ze?(n.setImmediates===void 0&&(n.setImmediates=[]),n.setImmediates.push(A),postMessage({target:o})):postMessage(o,"*")}}P.mainLoop.scheduler=function(){setImmediate(P.mainLoop.runner)},P.mainLoop.method="immediate"}return 0}let Dr;_t?Dr=function(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}:Dr=function(){return performance.now()};function Ti(){return!w.currentContext||!w.currentContext.GLctx?-3:w.currentContext.defaultFbo?(w.blitOffscreenFramebuffer(w.currentContext),0):w.currentContext.attributes.explicitSwapControl?0:-3}function Hn(e){Ro(e)}function vi(){if(!mt())try{Hn(Qr)}catch(e){if(e instanceof no)return;throw e}}function Dn(e,t,r,o,a){z(!P.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),P.mainLoop.func=e,P.mainLoop.arg=o;let s=P.mainLoop.currentlyRunningMainloop;function A(){return s<P.mainLoop.currentlyRunningMainloop?(vi(),!1):!0}if(P.mainLoop.running=!1,P.mainLoop.runner=function(){if(!W){if(P.mainLoop.queue.length>0){let u=Date.now(),d=P.mainLoop.queue.shift();if(d.func(d.arg),P.mainLoop.remainingBlockers){let h=P.mainLoop.remainingBlockers,m=h%1==0?h-1:Math.floor(h);d.counted?P.mainLoop.remainingBlockers=m:(m=m+.5,P.mainLoop.remainingBlockers=(8*h+m)/9)}if(Pe(`main loop blocker "${d.name}" took ${Date.now()-u} ms`),P.mainLoop.updateStatus(),!A())return;setTimeout(P.mainLoop.runner,0);return}if(A()){if(P.mainLoop.currentFrameNumber=P.mainLoop.currentFrameNumber+1|0,P.mainLoop.timingMode==1&&P.mainLoop.timingValue>1&&P.mainLoop.currentFrameNumber%P.mainLoop.timingValue!=0){P.mainLoop.scheduler();return}P.mainLoop.timingMode==0&&(P.mainLoop.tickStartTime=Dr()),w.newRenderingFrameStarted(),typeof w!="undefined"&&w.currentContext&&!w.currentContextIsProxied&&!w.currentContext.attributes.explicitSwapControl&&w.currentContext.GLctx.commit&&w.currentContext.GLctx.commit(),P.mainLoop.method==="timeout"&&n.ctx&&(et("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),P.mainLoop.method=""),P.mainLoop.runIter(e),ot(),A()&&(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),P.mainLoop.scheduler())}}},a||(t&&t>0?Ot(0,1e3/t):Ot(1,1),P.mainLoop.scheduler()),r)throw"unwind"}function ir(e,t){if(W){Ee("user callback triggered after application aborted. Ignoring.");return}if(t){e();return}try{e()}catch(r){if(r instanceof no)return;if(r!=="unwind")throw r&&typeof r=="object"&&r.stack&&Ee(`exception thrown: ${[r,r.stack]}`),r}}function Q(e,t){return setTimeout(()=>{ir(e)},t)}var P={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause(){P.mainLoop.scheduler=null,P.mainLoop.currentlyRunningMainloop++},resume(){P.mainLoop.currentlyRunningMainloop++;let{timingMode:e}=P.mainLoop,{timingValue:t}=P.mainLoop,{func:r}=P.mainLoop;P.mainLoop.func=null,Dn(r,0,!1,P.mainLoop.arg,!0),Ot(e,t),P.mainLoop.scheduler()},updateStatus(){if(n.setStatus){let e=n.statusMessage||"Please wait...",t=P.mainLoop.remainingBlockers,r=P.mainLoop.expectedBlockers;t?t<r?n.setStatus(`${e} (${r-t}/${r})`):n.setStatus(e):n.setStatus("")}},runIter(e){W||n.preMainLoop&&n.preMainLoop()===!1||(ir(e),n.postMainLoop&&n.postMainLoop())}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init(){if(n.preloadPlugins||(n.preloadPlugins=[]),P.initted)return;P.initted=!0;try{new Blob,P.hasBlobConstructor=!0}catch(a){P.hasBlobConstructor=!1,Pe("warning: no blob constructor, cannot create blobs with mimetypes")}P.BlobBuilder=typeof MozBlobBuilder!="undefined"?MozBlobBuilder:typeof WebKitBlobBuilder!="undefined"?WebKitBlobBuilder:P.hasBlobConstructor?null:Pe("warning: no BlobBuilder"),P.URLObject=typeof window!="undefined"?window.URL?window.URL:window.webkitURL:void 0,!n.noImageDecoding&&typeof P.URLObject=="undefined"&&(Pe("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),n.noImageDecoding=!0);let e={};e.canHandle=function(s){return!n.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(s)},e.handle=function(s,A,c,u){let d=null;if(P.hasBlobConstructor)try{d=new Blob([s],{type:P.getMimetype(A)}),d.size!==s.length&&(d=new Blob([new Uint8Array(s).buffer],{type:P.getMimetype(A)}))}catch(I){et(`Blob constructor present but fails: ${I}; falling back to blob builder`)}if(!d){let I=new P.BlobBuilder;I.append(new Uint8Array(s).buffer),d=I.getBlob()}let h=P.URLObject.createObjectURL(d);z(typeof h=="string","createObjectURL must return a url as a string");let m=new Image;m.onload=function(){z(m.complete,`Image ${A} could not be decoded`);let y=document.createElement("canvas");y.width=m.width,y.height=m.height,y.getContext("2d").drawImage(m,0,0),n.preloadedImages[A]=y,P.URLObject.revokeObjectURL(h),c&&c(s)},m.onerror=function(y){Pe(`Image ${h} could not be decoded`),u&&u()},m.src=h},n.preloadPlugins.push(e);let t={};t.canHandle=function(s){return!n.noAudioDecoding&&s.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},t.handle=function(s,A,c,u){let d=!1;function h(y){d||(d=!0,n.preloadedAudios[A]=y,c&&c(s))}function m(){d||(d=!0,n.preloadedAudios[A]=new Audio,u&&u())}if(P.hasBlobConstructor){try{var I=new Blob([s],{type:P.getMimetype(A)})}catch(N){return m()}let y=P.URLObject.createObjectURL(I);z(typeof y=="string","createObjectURL must return a url as a string");let v=new Audio;v.addEventListener("canplaythrough",()=>{h(v)},!1),v.onerror=function(H){if(d)return;Pe(`warning: browser could not fully decode audio ${A}, trying slower base64 approach`);function R(D){let k="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",$="=",Y="",pe=0,Me=0;for(let kt=0;kt<D.length;kt++)for(pe=pe<<8|D[kt],Me+=8;Me>=6;){let Lc=pe>>Me-6&63;Me-=6,Y+=k[Lc]}return Me==2?(Y+=k[(pe&3)<<4],Y+=$+$):Me==4&&(Y+=k[(pe&15)<<2],Y+=$),Y}v.src=`data:audio/x-${A.substr(-3)};base64,${R(s)}`,h(v)},v.src=y,Q(()=>{h(v)},1e4)}else return m()},n.preloadPlugins.push(t);function r(){P.pointerLock=document.pointerLockElement===n.canvas||document.mozPointerLockElement===n.canvas||document.webkitPointerLockElement===n.canvas||document.msPointerLockElement===n.canvas}let{canvas:o}=n},createContext(e,t,r,o){if(t&&n.ctx&&e==n.canvas)return n.ctx;let a,s;if(t){let A={antialias:!1,alpha:!1,majorVersion:typeof WebGL2RenderingContext!="undefined"?2:1};if(o)for(let c in o)A[c]=o[c];typeof w!="undefined"&&(s=w.createContext(e,A),s&&(a=w.getContext(s).GLctx))}else a=e.getContext("2d");return a?(r&&(t||z(typeof S=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),n.ctx=a,t&&w.makeContextCurrent(s),n.useWebGL=t,P.moduleContextCreatedCallbacks.forEach(A=>{A()}),P.init()),a):null},destroyContext(e,t,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen(e,t){P.lockPointer=e,P.resizeCanvas=t,typeof P.lockPointer=="undefined"&&(P.lockPointer=!0),typeof P.resizeCanvas=="undefined"&&(P.resizeCanvas=!1);let{canvas:r}=n;function o(){P.isFullscreen=!1;let s=r.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===s?(r.exitFullscreen=P.exitFullscreen,P.lockPointer&&r.requestPointerLock(),P.isFullscreen=!0,P.resizeCanvas?P.setFullscreenCanvasSize():P.updateCanvasDimensions(r)):(s.parentNode.insertBefore(r,s),s.parentNode.removeChild(s),P.resizeCanvas?P.setWindowedCanvasSize():P.updateCanvasDimensions(r)),n.onFullScreen&&n.onFullScreen(P.isFullscreen),n.onFullscreen&&n.onFullscreen(P.isFullscreen)}P.fullscreenHandlersInstalled||(P.fullscreenHandlersInstalled=!0);let a=document.createElement("div");r.parentNode.insertBefore(a,r),a.appendChild(r),a.requestFullscreen=a.requestFullscreen||a.mozRequestFullScreen||a.msRequestFullscreen||(a.webkitRequestFullscreen?function(){a.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(a.webkitRequestFullScreen?function(){a.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),a.requestFullscreen()},requestFullScreen(){p("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen(){return P.isFullscreen?((document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){}).apply(document,[]),!0):!1},nextRAF:0,fakeRequestAnimationFrame(e){let t=Date.now();if(P.nextRAF===0)P.nextRAF=t+1e3/60;else for(;t+2>=P.nextRAF;)P.nextRAF+=1e3/60;let r=Math.max(P.nextRAF-t,0);setTimeout(e,r)},requestAnimationFrame(e){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(e);return}let t=P.fakeRequestAnimationFrame;t(e)},safeSetTimeout(e){return Q(e)},safeRequestAnimationFrame(e){return P.requestAnimationFrame(()=>{ir(e)})},getMimetype(e){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[e.substr(e.lastIndexOf(".")+1)]},getUserMedia(e){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(e)},getMovementX(e){return e.movementX||e.mozMovementX||e.webkitMovementX||0},getMovementY(e){return e.movementY||e.mozMovementY||e.webkitMovementY||0},getMouseWheelDelta(e){let t=0;switch(e.type){case"DOMMouseScroll":t=e.detail/3;break;case"mousewheel":t=e.wheelDelta/120;break;case"wheel":switch(t=e.deltaY,e.deltaMode){case 0:t/=100;break;case 1:t/=3;break;case 2:t*=80;break;default:throw`unrecognized mouse wheel delta mode: ${e.deltaMode}`}break;default:throw`unrecognized mouse wheel event: ${e.type}`}return t},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent(e){if(P.pointerLock)e.type!="mousemove"&&"mozMovementX"in e?P.mouseMovementX=P.mouseMovementY=0:(P.mouseMovementX=P.getMovementX(e),P.mouseMovementY=P.getMovementY(e)),typeof SDL!="undefined"?(P.mouseX=SDL.mouseX+P.mouseMovementX,P.mouseY=SDL.mouseY+P.mouseMovementY):(P.mouseX+=P.mouseMovementX,P.mouseY+=P.mouseMovementY);else{let t=n.canvas.getBoundingClientRect(),r=n.canvas.width,o=n.canvas.height,a=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset,s=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;if(z(typeof a!="undefined"&&typeof s!="undefined","Unable to retrieve scroll position, mouse positions likely broken."),e.type==="touchstart"||e.type==="touchend"||e.type==="touchmove"){let{touch:u}=e;if(u===void 0)return;let d=u.pageX-(a+t.left),h=u.pageY-(s+t.top);d=d*(r/t.width),h=h*(o/t.height);let m={x:d,y:h};if(e.type==="touchstart")P.lastTouches[u.identifier]=m,P.touches[u.identifier]=m;else if(e.type==="touchend"||e.type==="touchmove"){let I=P.touches[u.identifier];I||(I=m),P.lastTouches[u.identifier]=I,P.touches[u.identifier]=m}return}let A=e.pageX-(a+t.left),c=e.pageY-(s+t.top);A=A*(r/t.width),c=c*(o/t.height),P.mouseMovementX=A-P.mouseX,P.mouseMovementY=c-P.mouseY,P.mouseX=A,P.mouseY=c}},resizeListeners:[],updateResizeListeners(){let{canvas:e}=n;P.resizeListeners.forEach(t=>{t(e.width,e.height)})},setCanvasSize(e,t,r){let{canvas:o}=n;P.updateCanvasDimensions(o,e,t),r||P.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){if(typeof SDL!="undefined"){let e=ve[SDL.screen>>2];e=e|8388608,b[SDL.screen>>2]=e}P.updateCanvasDimensions(n.canvas),P.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){let e=ve[SDL.screen>>2];e=e&-8388609,b[SDL.screen>>2]=e}P.updateCanvasDimensions(n.canvas),P.updateResizeListeners()},updateCanvasDimensions(e,t,r){t&&r?(e.widthNative=t,e.heightNative=r):(t=e.widthNative,r=e.heightNative);let o=t,a=r;if(n.forcedAspectRatio&&n.forcedAspectRatio>0&&(o/a<n.forcedAspectRatio?o=Math.round(a*n.forcedAspectRatio):a=Math.round(o/n.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e.parentNode&&typeof screen!="undefined"){let s=Math.min(screen.width/o,screen.height/a);o=Math.round(o*s),a=Math.round(a*s)}P.resizeCanvas?(e.width!=o&&(e.width=o),e.height!=a&&(e.height=a),typeof e.style!="undefined"&&(e.style.removeProperty("width"),e.style.removeProperty("height"))):(e.width!=t&&(e.width=t),e.height!=r&&(e.height=r),typeof e.style!="undefined"&&(o!=t||a!=r?(e.style.setProperty("width",`${o}px`,"important"),e.style.setProperty("height",`${a}px`,"important")):(e.style.removeProperty("width"),e.style.removeProperty("height"))))}};function bn(e){for(;e.length>0;){let t=e.shift();if(typeof t=="function"){t(n);continue}let{func:r}=t;typeof r=="number"?t.arg===void 0?V.get(r)():V.get(r)(t.arg):r(t.arg===void 0?null:t.arg)}}function Nr(e){return et("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),e}function Gn(e){let t=/\b_Z[\w\d_]+/g;return e.replace(t,r=>{let o=Nr(r);return r===o?r:`${o} [${r}]`})}function nn(){let e=new Error;if(!e.stack){try{throw new Error}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function Qi(){let e=nn();return n.extraStackTrace&&(e+=`
2
+ ${n.extraStackTrace()}`),Gn(e)}function so(e){return Zr(e+16)+16}function On(e,t){}function br(e,t){return void 0}function Rt(e){this.excPtr=e,this.ptr=e-16,this.set_type=function(t){b[this.ptr+4>>2]=t},this.get_type=function(){return b[this.ptr+4>>2]},this.set_destructor=function(t){b[this.ptr+8>>2]=t},this.get_destructor=function(){return b[this.ptr+8>>2]},this.set_refcount=function(t){b[this.ptr>>2]=t},this.set_caught=function(t){t=t?1:0,De[this.ptr+12>>0]=t},this.get_caught=function(){return De[this.ptr+12>>0]!=0},this.set_rethrown=function(t){t=t?1:0,De[this.ptr+13>>0]=t},this.get_rethrown=function(){return De[this.ptr+13>>0]!=0},this.init=function(t,r){this.set_type(t),this.set_destructor(r),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){let t=b[this.ptr>>2];b[this.ptr>>2]=t+1},this.release_ref=function(){let t=b[this.ptr>>2];return b[this.ptr>>2]=t-1,z(t>0),t===1}}function Yt(e){this.free=function(){nt(this.ptr),this.ptr=0},this.set_base_ptr=function(t){b[this.ptr>>2]=t},this.get_base_ptr=function(){return b[this.ptr>>2]},this.set_adjusted_ptr=function(t){b[this.ptr+4>>2]=t},this.get_adjusted_ptr_addr=function(){return this.ptr+4},this.get_adjusted_ptr=function(){return b[this.ptr+4>>2]},this.get_exception_ptr=function(){if(eA(this.get_exception_info().get_type()))return b[this.get_base_ptr()>>2];let r=this.get_adjusted_ptr();return r!==0?r:this.get_base_ptr()},this.get_exception_info=function(){return new Rt(this.get_base_ptr())},e===void 0?(this.ptr=Zr(8),this.set_adjusted_ptr(0)):this.ptr=e}let xr=[];function Bt(e){e.add_ref()}let Bn=0;function Xt(e){let t=new Yt(e),r=t.get_exception_info();return r.get_caught()||(r.set_caught(!0),Bn--),r.set_rethrown(!1),xr.push(t),Bt(r),t.get_exception_ptr()}let St=0;function Or(e){try{return nt(new Rt(e).ptr)}catch(t){Ee(`exception during cxa_free_exception: ${t}`)}}function Pi(e){if(e.release_ref()&&!e.get_rethrown()){let t=e.get_destructor();t&&V.get(t)(e.excPtr),Or(e.excPtr)}}function Yn(){te(0),z(xr.length>0);let e=xr.pop();Pi(e.get_exception_info()),e.free(),St=0}function Tn(e){let t=new Yt(e),r=t.get_base_ptr();throw St||(St=r),t.free(),`${r} - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch.`}function Ri(){let e=St;if(!e)return he(0),0;let r=new Rt(e).get_type(),o=new Yt;if(o.set_base_ptr(e),o.set_adjusted_ptr(e),!r)return he(0),o.ptr|0;let a=Array.prototype.slice.call(arguments);for(let s=0;s<a.length;s++){let A=a[s];if(A===0||A===r)break;if(Po(A,r,o.get_adjusted_ptr_addr()))return he(A),o.ptr|0}return he(r),o.ptr|0}function Xn(){let e=St;if(!e)return he(0),0;let r=new Rt(e).get_type(),o=new Yt;if(o.set_base_ptr(e),o.set_adjusted_ptr(e),!r)return he(0),o.ptr|0;let a=Array.prototype.slice.call(arguments);for(let s=0;s<a.length;s++){let A=a[s];if(A===0||A===r)break;if(Po(A,r,o.get_adjusted_ptr_addr()))return he(A),o.ptr|0}return he(r),o.ptr|0}function Si(){let e=xr.pop();e||p("no exception to throw");let t=e.get_exception_info(),r=e.get_base_ptr();throw t.get_rethrown()?e.free():(xr.push(e),t.set_rethrown(!0),t.set_caught(!1),Bn++),St=r,`${r} - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch.`}function Mi(e,t){return void 0}function Wn(e,t,r){throw new Rt(e).init(t,r),St=e,Bn++,`${e} - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch.`}function _e(e){return b[rc()>>2]=e,e}var me={splitPath(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray(e,t){let r=0;for(let o=e.length-1;o>=0;o--){let a=e[o];a==="."?e.splice(o,1):a===".."?(e.splice(o,1),r++):r&&(e.splice(o,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize(e){let t=e.charAt(0)==="/",r=e.substr(-1)==="/";return e=me.normalizeArray(e.split("/").filter(o=>!!o),!t).join("/"),!e&&!t&&(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname(e){let t=me.splitPath(e),r=t[0],o=t[1];return!r&&!o?".":(o&&(o=o.substr(0,o.length-1)),r+o)},basename(e){if(e==="/")return"/";e=me.normalize(e),e=e.replace(/\/$/,"");let t=e.lastIndexOf("/");return t===-1?e:e.substr(t+1)},extname(e){return me.splitPath(e)[3]},join(){let e=Array.prototype.slice.call(arguments,0);return me.normalize(e.join("/"))},join2(e,t){return me.normalize(`${e}/${t}`)}};function lt(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){let e=new Uint8Array(1);return function(){return crypto.getRandomValues(e),e[0]}}if(_t)try{let e=dc("crypto");return function(){return e.randomBytes(1)[0]}}catch(e){}return function(){p("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };")}}var Qe={resolve(){let e="",t=!1;for(let r=arguments.length-1;r>=-1&&!t;r--){let o=r>=0?arguments[r]:l.cwd();if(typeof o!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!o)return"";e=`${o}/${e}`,t=o.charAt(0)==="/"}return e=me.normalizeArray(e.split("/").filter(r=>!!r),!t).join("/"),(t?"/":"")+e||"."},relative(e,t){e=Qe.resolve(e).substr(1),t=Qe.resolve(t).substr(1);function r(d){let h=0;for(;h<d.length&&d[h]==="";h++);let m=d.length-1;for(;m>=0&&d[m]==="";m--);return h>m?[]:d.slice(h,m-h+1)}let o=r(e.split("/")),a=r(t.split("/")),s=Math.min(o.length,a.length),A=s;for(var c=0;c<s;c++)if(o[c]!==a[c]){A=c;break}let u=[];for(var c=A;c<o.length;c++)u.push("..");return u=u.concat(a.slice(A)),u.join("/")}},It={ttys:[],init(){},shutdown(){},register(e,t){It.ttys[e]={input:[],output:[],ops:t},l.registerDevice(e,It.stream_ops)},stream_ops:{open(e){let t=It.ttys[e.node.rdev];if(!t)throw new l.ErrnoError(43);e.tty=t,e.seekable=!1},close(e){e.tty.ops.flush(e.tty)},flush(e){e.tty.ops.flush(e.tty)},read(e,t,r,o,a){if(!e.tty||!e.tty.ops.get_char)throw new l.ErrnoError(60);let s=0;for(let c=0;c<o;c++){var A;try{A=e.tty.ops.get_char(e.tty)}catch(u){throw new l.ErrnoError(29)}if(A===void 0&&s===0)throw new l.ErrnoError(6);if(A==null)break;s++,t[r+c]=A}return s&&(e.node.timestamp=Date.now()),s},write(e,t,r,o,a){if(!e.tty||!e.tty.ops.put_char)throw new l.ErrnoError(60);try{for(var s=0;s<o;s++)e.tty.ops.put_char(e.tty,t[r+s])}catch(A){throw new l.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),s}},default_tty_ops:{get_char(e){if(!e.input.length){let t=null;if(_t){let o=Buffer.alloc(256),a=0;try{a=We.readSync(process.stdin.fd,o,0,256,null)}catch(s){if(s.toString().includes("EOF"))a=0;else throw s}a>0?t=o.slice(0,a).toString("utf-8"):t=null}else typeof window!="undefined"&&typeof window.prompt=="function"?(t=window.prompt("Input: "),t!==null&&(t+=`
3
3
  `)):typeof readline=="function"&&(t=readline(),t!==null&&(t+=`
4
- `));if(!t)return null;e.input=yn(t,!0)}return e.input.shift()},put_char(e,t){t===null||t===10?(be(pt(e.output,0)),e.output=[]):t!=0&&e.output.push(t)},flush(e){e.output&&e.output.length>0&&(be(pt(e.output,0)),e.output=[])}},default_tty1_ops:{put_char(e,t){t===null||t===10?(z(pt(e.output,0)),e.output=[]):t!=0&&e.output.push(t)},flush(e){e.output&&e.output.length>0&&(z(pt(e.output,0)),e.output=[])}}};function nA(e,t){ce.fill(0,e,e+t)}function AA(e,t){return M(t,"alignment argument is required"),Math.ceil(e/t)*t}function Je(e){e=AA(e,65536);let t=ca(65536,e);return t?(nA(t,e),t):0}var W={ops_table:null,mount(e){return W.createNode(null,"/",16895,0)},createNode(e,t,r,A){if(a.isBlkdev(r)||a.isFIFO(r))throw new a.ErrnoError(63);W.ops_table||(W.ops_table={dir:{node:{getattr:W.node_ops.getattr,setattr:W.node_ops.setattr,lookup:W.node_ops.lookup,mknod:W.node_ops.mknod,rename:W.node_ops.rename,unlink:W.node_ops.unlink,rmdir:W.node_ops.rmdir,readdir:W.node_ops.readdir,symlink:W.node_ops.symlink},stream:{llseek:W.stream_ops.llseek}},file:{node:{getattr:W.node_ops.getattr,setattr:W.node_ops.setattr},stream:{llseek:W.stream_ops.llseek,read:W.stream_ops.read,write:W.stream_ops.write,allocate:W.stream_ops.allocate,mmap:W.stream_ops.mmap,msync:W.stream_ops.msync}},link:{node:{getattr:W.node_ops.getattr,setattr:W.node_ops.setattr,readlink:W.node_ops.readlink},stream:{}},chrdev:{node:{getattr:W.node_ops.getattr,setattr:W.node_ops.setattr},stream:a.chrdev_stream_ops}});let i=a.createNode(e,t,r,A);return a.isDir(i.mode)?(i.node_ops=W.ops_table.dir.node,i.stream_ops=W.ops_table.dir.stream,i.contents={}):a.isFile(i.mode)?(i.node_ops=W.ops_table.file.node,i.stream_ops=W.ops_table.file.stream,i.usedBytes=0,i.contents=null):a.isLink(i.mode)?(i.node_ops=W.ops_table.link.node,i.stream_ops=W.ops_table.link.stream):a.isChrdev(i.mode)&&(i.node_ops=W.ops_table.chrdev.node,i.stream_ops=W.ops_table.chrdev.stream),i.timestamp=Date.now(),e&&(e.contents[t]=i,e.timestamp=i.timestamp),i},getFileDataAsTypedArray(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage(e,t){let r=e.contents?e.contents.length:0;if(r>=t)return;let A=1024*1024;t=Math.max(t,r*(r<A?2:1.125)>>>0),r!=0&&(t=Math.max(t,256));let i=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(i.subarray(0,e.usedBytes),0)},resizeFileStorage(e,t){if(e.usedBytes!=t)if(t==0)e.contents=null,e.usedBytes=0;else{let r=e.contents;e.contents=new Uint8Array(t),r&&e.contents.set(r.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr(e){let t={};return t.dev=a.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,a.isDir(e.mode)?t.size=4096:a.isFile(e.mode)?t.size=e.usedBytes:a.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr(e,t){t.mode!==void 0&&(e.mode=t.mode),t.timestamp!==void 0&&(e.timestamp=t.timestamp),t.size!==void 0&&W.resizeFileStorage(e,t.size)},lookup(e,t){throw a.genericErrors[44]},mknod(e,t,r,A){return W.createNode(e,t,r,A)},rename(e,t,r){if(a.isDir(e.mode)){let A;try{A=a.lookupNode(t,r)}catch(i){}if(A)for(let i in A.contents)throw new a.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=r,t.contents[r]=e,t.timestamp=e.parent.timestamp,e.parent=t},unlink(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir(e,t){let r=a.lookupNode(e,t);for(let A in r.contents)throw new a.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir(e){let t=[".",".."];for(let r in e.contents)e.contents.hasOwnProperty(r)&&t.push(r);return t},symlink(e,t,r){let A=W.createNode(e,t,41471,0);return A.link=r,A},readlink(e){if(!a.isLink(e.mode))throw new a.ErrnoError(28);return e.link}},stream_ops:{read(e,t,r,A,i){let{contents:o}=e.node;if(i>=e.node.usedBytes)return 0;let s=Math.min(e.node.usedBytes-i,A);if(M(s>=0),s>8&&o.subarray)t.set(o.subarray(i,i+s),r);else for(let c=0;c<s;c++)t[r+c]=o[i+c];return s},write(e,t,r,A,i,o){if(M(!(t instanceof ArrayBuffer)),t.buffer===le.buffer&&(o=!1),!A)return 0;let{node:s}=e;if(s.timestamp=Date.now(),t.subarray&&(!s.contents||s.contents.subarray)){if(o)return M(i===0,"canOwn must imply no weird position inside the file"),s.contents=t.subarray(r,r+A),s.usedBytes=A,A;if(s.usedBytes===0&&i===0)return s.contents=t.slice(r,r+A),s.usedBytes=A,A;if(i+A<=s.usedBytes)return s.contents.set(t.subarray(r,r+A),i),A}if(W.expandFileStorage(s,i+A),s.contents.subarray&&t.subarray)s.contents.set(t.subarray(r,r+A),i);else for(let c=0;c<A;c++)s.contents[i+c]=t[r+c];return s.usedBytes=Math.max(s.usedBytes,i+A),A},llseek(e,t,r){let A=t;if(r===1?A+=e.position:r===2&&a.isFile(e.node.mode)&&(A+=e.node.usedBytes),A<0)throw new a.ErrnoError(28);return A},allocate(e,t,r){W.expandFileStorage(e.node,t+r),e.node.usedBytes=Math.max(e.node.usedBytes,t+r)},mmap(e,t,r,A,i,o){if(t!==0)throw new a.ErrnoError(28);if(!a.isFile(e.node.mode))throw new a.ErrnoError(43);let s,c,{contents:d}=e.node;if(!(o&2)&&d.buffer===Mt)c=!1,s=d.byteOffset;else{if((A>0||A+r<d.length)&&(d.subarray?d=d.subarray(A,A+r):d=Array.prototype.slice.call(d,A,A+r)),c=!0,s=Je(r),!s)throw new a.ErrnoError(48);le.set(d,s)}return{ptr:s,allocated:c}},msync(e,t,r,A,i){if(!a.isFile(e.node.mode))throw new a.ErrnoError(43);if(i&2)return 0;let o=W.stream_ops.write(e,t,0,A,r,!1);return 0}}};function iA(e,t,r,A){let i=A?"":Xr(`al ${e}`);Wt(e,o=>{M(o,`Loading data file "${e}" failed (no arrayBuffer).`),t(new Uint8Array(o)),i&&gt(i)},o=>{if(r)r();else throw`Loading data file "${e}" failed.`}),i&&rt(i)}let Tr={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"},qr={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var a={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath(e,t){if(e=Ce.resolve(a.cwd(),e),t=t||{},!e)return{path:"",node:null};let r={follow_mount:!0,recurse_count:0};for(let s in r)t[s]===void 0&&(t[s]=r[s]);if(t.recurse_count>8)throw new a.ErrnoError(32);let A=te.normalizeArray(e.split("/").filter(s=>!!s),!1),i=a.root,o="/";for(let s=0;s<A.length;s++){let c=s===A.length-1;if(c&&t.parent)break;if(i=a.lookupNode(i,A[s]),o=te.join2(o,A[s]),a.isMountpoint(i)&&(!c||c&&t.follow_mount)&&(i=i.mounted.root),!c||t.follow){let d=0;for(;a.isLink(i.mode);){let E=a.readlink(o);if(o=Ce.resolve(te.dirname(o),E),i=a.lookupPath(o,{recurse_count:t.recurse_count}).node,d++>40)throw new a.ErrnoError(32)}}}return{path:o,node:i}},getPath(e){let t;for(;;){if(a.isRoot(e)){let r=e.mount.mountpoint;return t?r[r.length-1]!=="/"?`${r}/${t}`:r+t:r}t=t?`${e.name}/${t}`:e.name,e=e.parent}},hashName(e,t){let r=0;for(let A=0;A<t.length;A++)r=(r<<5)-r+t.charCodeAt(A)|0;return(e+r>>>0)%a.nameTable.length},hashAddNode(e){let t=a.hashName(e.parent.id,e.name);e.name_next=a.nameTable[t],a.nameTable[t]=e},hashRemoveNode(e){let t=a.hashName(e.parent.id,e.name);if(a.nameTable[t]===e)a.nameTable[t]=e.name_next;else{let r=a.nameTable[t];for(;r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}}},lookupNode(e,t){let r=a.mayLookup(e);if(r)throw new a.ErrnoError(r,e);let A=a.hashName(e.id,t);for(let i=a.nameTable[A];i;i=i.name_next){let o=i.name;if(i.parent.id===e.id&&o===t)return i}return a.lookup(e,t)},createNode(e,t,r,A){M(typeof e=="object");let i=new a.FSNode(e,t,r,A);return a.hashAddNode(i),i},destroyNode(e){a.hashRemoveNode(e)},isRoot(e){return e===e.parent},isMountpoint(e){return!!e.mounted},isFile(e){return(e&61440)===32768},isDir(e){return(e&61440)===16384},isLink(e){return(e&61440)===40960},isChrdev(e){return(e&61440)===8192},isBlkdev(e){return(e&61440)===24576},isFIFO(e){return(e&61440)===4096},isSocket(e){return(e&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags(e){let t=a.flagModes[e];if(typeof t=="undefined")throw new Error(`Unknown file open mode: ${e}`);return t},flagsToPermissionString(e){let t=["r","w","rw"][e&3];return e&512&&(t+="w"),t},nodePermissions(e,t){return a.ignorePermissions?0:t.includes("r")&&!(e.mode&292)||t.includes("w")&&!(e.mode&146)||t.includes("x")&&!(e.mode&73)?2:0},mayLookup(e){let t=a.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate(e,t){try{let r=a.lookupNode(e,t);return 20}catch(r){}return a.nodePermissions(e,"wx")},mayDelete(e,t,r){let A;try{A=a.lookupNode(e,t)}catch(o){return o.errno}let i=a.nodePermissions(e,"wx");if(i)return i;if(r){if(!a.isDir(A.mode))return 54;if(a.isRoot(A)||a.getPath(A)===a.cwd())return 10}else if(a.isDir(A.mode))return 31;return 0},mayOpen(e,t){return e?a.isLink(e.mode)?32:a.isDir(e.mode)&&(a.flagsToPermissionString(t)!=="r"||t&512)?31:a.nodePermissions(e,a.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd(e,t){e=e||0,t=t||a.MAX_OPEN_FDS;for(let r=e;r<=t;r++)if(!a.streams[r])return r;throw new a.ErrnoError(33)},getStream(e){return a.streams[e]},createStream(e,t,r){a.FSStream||(a.FSStream=function(){},a.FSStream.prototype={object:{get(){return this.node},set(o){this.node=o}},isRead:{get(){return(this.flags&2097155)!==1}},isWrite:{get(){return(this.flags&2097155)!==0}},isAppend:{get(){return this.flags&1024}}});let A=new a.FSStream;for(let o in e)A[o]=e[o];e=A;let i=a.nextfd(t,r);return e.fd=i,a.streams[i]=e,e},closeStream(e){a.streams[e]=null},chrdev_stream_ops:{open(e){let t=a.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek(){throw new a.ErrnoError(70)}},major(e){return e>>8},minor(e){return e&255},makedev(e,t){return e<<8|t},registerDevice(e,t){a.devices[e]={stream_ops:t}},getDevice(e){return a.devices[e]},getMounts(e){let t=[],r=[e];for(;r.length;){let A=r.pop();t.push(A),r.push.apply(r,A.mounts)}return t},syncfs(e,t){typeof e=="function"&&(t=e,e=!1),a.syncFSRequests++,a.syncFSRequests>1&&z(`warning: ${a.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);let r=a.getMounts(a.root.mount),A=0;function i(s){return M(a.syncFSRequests>0),a.syncFSRequests--,t(s)}function o(s){if(s)return o.errored?void 0:(o.errored=!0,i(s));++A>=r.length&&i(null)}r.forEach(s=>{if(!s.type.syncfs)return o(null);s.type.syncfs(s,e,o)})},mount(e,t,r){if(typeof e=="string")throw e;let A=r==="/",i=!r,o;if(A&&a.root)throw new a.ErrnoError(10);if(!A&&!i){let d=a.lookupPath(r,{follow_mount:!1});if(r=d.path,o=d.node,a.isMountpoint(o))throw new a.ErrnoError(10);if(!a.isDir(o.mode))throw new a.ErrnoError(54)}let s={type:e,opts:t,mountpoint:r,mounts:[]},c=e.mount(s);return c.mount=s,s.root=c,A?a.root=c:o&&(o.mounted=s,o.mount&&o.mount.mounts.push(s)),c},unmount(e){let t=a.lookupPath(e,{follow_mount:!1});if(!a.isMountpoint(t.node))throw new a.ErrnoError(28);let{node:r}=t,A=r.mounted,i=a.getMounts(A);Object.keys(a.nameTable).forEach(s=>{let c=a.nameTable[s];for(;c;){let d=c.name_next;i.includes(c.mount)&&a.destroyNode(c),c=d}}),r.mounted=null;let o=r.mount.mounts.indexOf(A);M(o!==-1),r.mount.mounts.splice(o,1)},lookup(e,t){return e.node_ops.lookup(e,t)},mknod(e,t,r){let i=a.lookupPath(e,{parent:!0}).node,o=te.basename(e);if(!o||o==="."||o==="..")throw new a.ErrnoError(28);let s=a.mayCreate(i,o);if(s)throw new a.ErrnoError(s);if(!i.node_ops.mknod)throw new a.ErrnoError(63);return i.node_ops.mknod(i,o,t,r)},create(e,t){return t=t!==void 0?t:438,t&=4095,t|=32768,a.mknod(e,t,0)},mkdir(e,t){return t=t!==void 0?t:511,t&=1023,t|=16384,a.mknod(e,t,0)},mkdirTree(e,t){let r=e.split("/"),A="";for(let i=0;i<r.length;++i)if(r[i]){A+=`/${r[i]}`;try{a.mkdir(A,t)}catch(o){if(o.errno!=20)throw o}}},mkdev(e,t,r){return typeof r=="undefined"&&(r=t,t=438),t|=8192,a.mknod(e,t,r)},symlink(e,t){if(!Ce.resolve(e))throw new a.ErrnoError(44);let A=a.lookupPath(t,{parent:!0}).node;if(!A)throw new a.ErrnoError(44);let i=te.basename(t),o=a.mayCreate(A,i);if(o)throw new a.ErrnoError(o);if(!A.node_ops.symlink)throw new a.ErrnoError(63);return A.node_ops.symlink(A,i,e)},rename(e,t){let r=te.dirname(e),A=te.dirname(t),i=te.basename(e),o=te.basename(t),s,c,d;if(s=a.lookupPath(e,{parent:!0}),c=s.node,s=a.lookupPath(t,{parent:!0}),d=s.node,!c||!d)throw new a.ErrnoError(44);if(c.mount!==d.mount)throw new a.ErrnoError(75);let E=a.lookupNode(c,i),I=Ce.relative(e,A);if(I.charAt(0)!==".")throw new a.ErrnoError(28);if(I=Ce.relative(t,r),I.charAt(0)!==".")throw new a.ErrnoError(55);let B;try{B=a.lookupNode(d,o)}catch(O){}if(E===B)return;let h=a.isDir(E.mode),_=a.mayDelete(c,i,h);if(_)throw new a.ErrnoError(_);if(_=B?a.mayDelete(d,o,h):a.mayCreate(d,o),_)throw new a.ErrnoError(_);if(!c.node_ops.rename)throw new a.ErrnoError(63);if(a.isMountpoint(E)||B&&a.isMountpoint(B))throw new a.ErrnoError(10);if(d!==c&&(_=a.nodePermissions(c,"w"),_))throw new a.ErrnoError(_);try{a.trackingDelegate.willMovePath&&a.trackingDelegate.willMovePath(e,t)}catch(O){z(`FS.trackingDelegate['willMovePath']('${e}', '${t}') threw an exception: ${O.message}`)}a.hashRemoveNode(E);try{c.node_ops.rename(E,d,o)}catch(O){throw O}finally{a.hashAddNode(E)}try{a.trackingDelegate.onMovePath&&a.trackingDelegate.onMovePath(e,t)}catch(O){z(`FS.trackingDelegate['onMovePath']('${e}', '${t}') threw an exception: ${O.message}`)}},rmdir(e){let r=a.lookupPath(e,{parent:!0}).node,A=te.basename(e),i=a.lookupNode(r,A),o=a.mayDelete(r,A,!0);if(o)throw new a.ErrnoError(o);if(!r.node_ops.rmdir)throw new a.ErrnoError(63);if(a.isMountpoint(i))throw new a.ErrnoError(10);try{a.trackingDelegate.willDeletePath&&a.trackingDelegate.willDeletePath(e)}catch(s){z(`FS.trackingDelegate['willDeletePath']('${e}') threw an exception: ${s.message}`)}r.node_ops.rmdir(r,A),a.destroyNode(i);try{a.trackingDelegate.onDeletePath&&a.trackingDelegate.onDeletePath(e)}catch(s){z(`FS.trackingDelegate['onDeletePath']('${e}') threw an exception: ${s.message}`)}},readdir(e){let t=a.lookupPath(e,{follow:!0}),{node:r}=t;if(!r.node_ops.readdir)throw new a.ErrnoError(54);return r.node_ops.readdir(r)},unlink(e){let r=a.lookupPath(e,{parent:!0}).node,A=te.basename(e),i=a.lookupNode(r,A),o=a.mayDelete(r,A,!1);if(o)throw new a.ErrnoError(o);if(!r.node_ops.unlink)throw new a.ErrnoError(63);if(a.isMountpoint(i))throw new a.ErrnoError(10);try{a.trackingDelegate.willDeletePath&&a.trackingDelegate.willDeletePath(e)}catch(s){z(`FS.trackingDelegate['willDeletePath']('${e}') threw an exception: ${s.message}`)}r.node_ops.unlink(r,A),a.destroyNode(i);try{a.trackingDelegate.onDeletePath&&a.trackingDelegate.onDeletePath(e)}catch(s){z(`FS.trackingDelegate['onDeletePath']('${e}') threw an exception: ${s.message}`)}},readlink(e){let r=a.lookupPath(e).node;if(!r)throw new a.ErrnoError(44);if(!r.node_ops.readlink)throw new a.ErrnoError(28);return Ce.resolve(a.getPath(r.parent),r.node_ops.readlink(r))},stat(e,t){let r=a.lookupPath(e,{follow:!t}),{node:A}=r;if(!A)throw new a.ErrnoError(44);if(!A.node_ops.getattr)throw new a.ErrnoError(63);return A.node_ops.getattr(A)},lstat(e){return a.stat(e,!0)},chmod(e,t,r){let A;if(typeof e=="string"?A=a.lookupPath(e,{follow:!r}).node:A=e,!A.node_ops.setattr)throw new a.ErrnoError(63);A.node_ops.setattr(A,{mode:t&4095|A.mode&-4096,timestamp:Date.now()})},lchmod(e,t){a.chmod(e,t,!0)},fchmod(e,t){let r=a.getStream(e);if(!r)throw new a.ErrnoError(8);a.chmod(r.node,t)},chown(e,t,r,A){let i;if(typeof e=="string"?i=a.lookupPath(e,{follow:!A}).node:i=e,!i.node_ops.setattr)throw new a.ErrnoError(63);i.node_ops.setattr(i,{timestamp:Date.now()})},lchown(e,t,r){a.chown(e,t,r,!0)},fchown(e,t,r){let A=a.getStream(e);if(!A)throw new a.ErrnoError(8);a.chown(A.node,t,r)},truncate(e,t){if(t<0)throw new a.ErrnoError(28);let r;if(typeof e=="string"?r=a.lookupPath(e,{follow:!0}).node:r=e,!r.node_ops.setattr)throw new a.ErrnoError(63);if(a.isDir(r.mode))throw new a.ErrnoError(31);if(!a.isFile(r.mode))throw new a.ErrnoError(28);let A=a.nodePermissions(r,"w");if(A)throw new a.ErrnoError(A);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate(e,t){let r=a.getStream(e);if(!r)throw new a.ErrnoError(8);if(!(r.flags&2097155))throw new a.ErrnoError(28);a.truncate(r.node,t)},utime(e,t,r){let A=a.lookupPath(e,{follow:!0}),{node:i}=A;i.node_ops.setattr(i,{timestamp:Math.max(t,r)})},open(e,t,r,A,i){if(e==="")throw new a.ErrnoError(44);t=typeof t=="string"?a.modeStringToFlags(t):t,r=typeof r=="undefined"?438:r,t&64?r=r&4095|32768:r=0;let o;if(typeof e=="object")o=e;else{e=te.normalize(e);try{o=a.lookupPath(e,{follow:!(t&131072)}).node}catch(d){}}let s=!1;if(t&64)if(o){if(t&128)throw new a.ErrnoError(20)}else o=a.mknod(e,r,0),s=!0;if(!o)throw new a.ErrnoError(44);if(a.isChrdev(o.mode)&&(t&=-513),t&65536&&!a.isDir(o.mode))throw new a.ErrnoError(54);if(!s){let d=a.mayOpen(o,t);if(d)throw new a.ErrnoError(d)}t&512&&a.truncate(o,0),t&=-131713;let c=a.createStream({node:o,path:a.getPath(o),flags:t,seekable:!0,position:0,stream_ops:o.stream_ops,ungotten:[],error:!1},A,i);c.stream_ops.open&&c.stream_ops.open(c),n.logReadFiles&&!(t&1)&&(a.readFiles||(a.readFiles={}),e in a.readFiles||(a.readFiles[e]=1,z(`FS.trackingDelegate error on read file: ${e}`)));try{if(a.trackingDelegate.onOpenFile){let d=0;(t&2097155)!==1&&(d|=a.tracking.openFlags.READ),t&2097155&&(d|=a.tracking.openFlags.WRITE),a.trackingDelegate.onOpenFile(e,d)}}catch(d){z(`FS.trackingDelegate['onOpenFile']('${e}', flags) threw an exception: ${d.message}`)}return c},close(e){if(a.isClosed(e))throw new a.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(t){throw t}finally{a.closeStream(e.fd)}e.fd=null},isClosed(e){return e.fd===null},llseek(e,t,r){if(a.isClosed(e))throw new a.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new a.ErrnoError(70);if(r!=0&&r!=1&&r!=2)throw new a.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read(e,t,r,A,i){if(A<0||i<0)throw new a.ErrnoError(28);if(a.isClosed(e))throw new a.ErrnoError(8);if((e.flags&2097155)===1)throw new a.ErrnoError(8);if(a.isDir(e.node.mode))throw new a.ErrnoError(31);if(!e.stream_ops.read)throw new a.ErrnoError(28);let o=typeof i!="undefined";if(!o)i=e.position;else if(!e.seekable)throw new a.ErrnoError(70);let s=e.stream_ops.read(e,t,r,A,i);return o||(e.position+=s),s},write(e,t,r,A,i,o){if(A<0||i<0)throw new a.ErrnoError(28);if(a.isClosed(e))throw new a.ErrnoError(8);if(!(e.flags&2097155))throw new a.ErrnoError(8);if(a.isDir(e.node.mode))throw new a.ErrnoError(31);if(!e.stream_ops.write)throw new a.ErrnoError(28);e.seekable&&e.flags&1024&&a.llseek(e,0,2);let s=typeof i!="undefined";if(!s)i=e.position;else if(!e.seekable)throw new a.ErrnoError(70);let c=e.stream_ops.write(e,t,r,A,i,o);s||(e.position+=c);try{e.path&&a.trackingDelegate.onWriteToFile&&a.trackingDelegate.onWriteToFile(e.path)}catch(d){z(`FS.trackingDelegate['onWriteToFile']('${e.path}') threw an exception: ${d.message}`)}return c},allocate(e,t,r){if(a.isClosed(e))throw new a.ErrnoError(8);if(t<0||r<=0)throw new a.ErrnoError(28);if(!(e.flags&2097155))throw new a.ErrnoError(8);if(!a.isFile(e.node.mode)&&!a.isDir(e.node.mode))throw new a.ErrnoError(43);if(!e.stream_ops.allocate)throw new a.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap(e,t,r,A,i,o){if(i&2&&!(o&2)&&(e.flags&2097155)!==2)throw new a.ErrnoError(2);if((e.flags&2097155)===1)throw new a.ErrnoError(2);if(!e.stream_ops.mmap)throw new a.ErrnoError(43);return e.stream_ops.mmap(e,t,r,A,i,o)},msync(e,t,r,A,i){return!e||!e.stream_ops.msync?0:e.stream_ops.msync(e,t,r,A,i)},munmap(e){return 0},ioctl(e,t,r){if(!e.stream_ops.ioctl)throw new a.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile(e,t){if(t=t||{},t.flags=t.flags||0,t.encoding=t.encoding||"binary",t.encoding!=="utf8"&&t.encoding!=="binary")throw new Error(`Invalid encoding type "${t.encoding}"`);let r,A=a.open(e,t.flags),o=a.stat(e).size,s=new Uint8Array(o);return a.read(A,s,0,o,0),t.encoding==="utf8"?r=pt(s,0):t.encoding==="binary"&&(r=s),a.close(A),r},writeFile(e,t,r){r=r||{},r.flags=r.flags||577;let A=a.open(e,r.flags,r.mode);if(typeof t=="string"){let i=new Uint8Array(Ge(t)+1),o=Le(t,i,0,i.length);a.write(A,i,0,o,void 0,r.canOwn)}else if(ArrayBuffer.isView(t))a.write(A,t,0,t.byteLength,void 0,r.canOwn);else throw new Error("Unsupported data type");a.close(A)},cwd(){return a.currentPath},chdir(e){let t=a.lookupPath(e,{follow:!0});if(t.node===null)throw new a.ErrnoError(44);if(!a.isDir(t.node.mode))throw new a.ErrnoError(54);let r=a.nodePermissions(t.node,"x");if(r)throw new a.ErrnoError(r);a.currentPath=t.path},createDefaultDirectories(){a.mkdir("/tmp"),a.mkdir("/home"),a.mkdir("/home/web_user")},createDefaultDevices(){a.mkdir("/dev"),a.registerDevice(a.makedev(1,3),{read(){return 0},write(t,r,A,i,o){return i}}),a.mkdev("/dev/null",a.makedev(1,3)),ke.register(a.makedev(5,0),ke.default_tty_ops),ke.register(a.makedev(6,0),ke.default_tty1_ops),a.mkdev("/dev/tty",a.makedev(5,0)),a.mkdev("/dev/tty1",a.makedev(6,0));let e=nr();a.createDevice("/dev","random",e),a.createDevice("/dev","urandom",e),a.mkdir("/dev/shm"),a.mkdir("/dev/shm/tmp")},createSpecialDirectories(){a.mkdir("/proc");let e=a.mkdir("/proc/self");a.mkdir("/proc/self/fd"),a.mount({mount(){let t=a.createNode(e,"fd",16895,73);return t.node_ops={lookup(r,A){let i=+A,o=a.getStream(i);if(!o)throw new a.ErrnoError(8);let s={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink(){return o.path}}};return s.parent=s,s}},t}},{},"/proc/self/fd")},createStandardStreams(){n.stdin?a.createDevice("/dev","stdin",n.stdin):a.symlink("/dev/tty","/dev/stdin"),n.stdout?a.createDevice("/dev","stdout",null,n.stdout):a.symlink("/dev/tty","/dev/stdout"),n.stderr?a.createDevice("/dev","stderr",null,n.stderr):a.symlink("/dev/tty1","/dev/stderr");let e=a.open("/dev/stdin",0),t=a.open("/dev/stdout",1),r=a.open("/dev/stderr",1);M(e.fd===0,`invalid handle for stdin (${e.fd})`),M(t.fd===1,`invalid handle for stdout (${t.fd})`),M(r.fd===2,`invalid handle for stderr (${r.fd})`)},ensureErrnoError(){a.ErrnoError||(a.ErrnoError=function(t,r){this.node=r,this.setErrno=function(A){this.errno=A;for(let i in qr)if(qr[i]===A){this.code=i;break}},this.setErrno(t),this.message=Tr[t],this.stack&&(Object.defineProperty(this,"stack",{value:new Error().stack,writable:!0}),this.stack=Kr(this.stack))},a.ErrnoError.prototype=new Error,a.ErrnoError.prototype.constructor=a.ErrnoError,[44].forEach(e=>{a.genericErrors[e]=new a.ErrnoError(e),a.genericErrors[e].stack="<generic error, no stack>"}))},staticInit(){a.ensureErrnoError(),a.nameTable=new Array(4096),a.mount(W,{},"/"),a.createDefaultDirectories(),a.createDefaultDevices(),a.createSpecialDirectories(),a.filesystems={MEMFS:W}},init(e,t,r){M(!a.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),a.init.initialized=!0,a.ensureErrnoError(),n.stdin=e||n.stdin,n.stdout=t||n.stdout,n.stderr=r||n.stderr,a.createStandardStreams()},quit(){a.init.initialized=!1;let e=n._fflush;e&&e(0);for(let t=0;t<a.streams.length;t++){let r=a.streams[t];r&&a.close(r)}},getMode(e,t){let r=0;return e&&(r|=365),t&&(r|=146),r},findObject(e,t){let r=a.analyzePath(e,t);return r.exists?r.object:null},analyzePath(e,t){try{var r=a.lookupPath(e,{follow:!t});e=r.path}catch(i){}let A={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var r=a.lookupPath(e,{parent:!0});A.parentExists=!0,A.parentPath=r.path,A.parentObject=r.node,A.name=te.basename(e),r=a.lookupPath(e,{follow:!t}),A.exists=!0,A.path=r.path,A.object=r.node,A.name=r.node.name,A.isRoot=r.path==="/"}catch(i){A.error=i.errno}return A},createPath(e,t,r,A){e=typeof e=="string"?e:a.getPath(e);let i=t.split("/").reverse();for(;i.length;){let s=i.pop();if(s){var o=te.join2(e,s);try{a.mkdir(o)}catch(c){}e=o}}return o},createFile(e,t,r,A,i){let o=te.join2(typeof e=="string"?e:a.getPath(e),t),s=a.getMode(A,i);return a.create(o,s)},createDataFile(e,t,r,A,i,o){let s=t?te.join2(typeof e=="string"?e:a.getPath(e),t):e,c=a.getMode(A,i),d=a.create(s,c);if(r){if(typeof r=="string"){let I=new Array(r.length);for(let B=0,h=r.length;B<h;++B)I[B]=r.charCodeAt(B);r=I}a.chmod(d,c|146);let E=a.open(d,577);a.write(E,r,0,r.length,0,o),a.close(E),a.chmod(d,c)}return d},createDevice(e,t,r,A){let i=te.join2(typeof e=="string"?e:a.getPath(e),t),o=a.getMode(!!r,!!A);a.createDevice.major||(a.createDevice.major=64);let s=a.makedev(a.createDevice.major++,0);return a.registerDevice(s,{open(c){c.seekable=!1},close(c){A&&A.buffer&&A.buffer.length&&A(10)},read(c,d,E,I,B){let h=0;for(let O=0;O<I;O++){var _;try{_=r()}catch(x){throw new a.ErrnoError(29)}if(_===void 0&&h===0)throw new a.ErrnoError(6);if(_==null)break;h++,d[E+O]=_}return h&&(c.node.timestamp=Date.now()),h},write(c,d,E,I,B){for(var h=0;h<I;h++)try{A(d[E+h])}catch(_){throw new a.ErrnoError(29)}return I&&(c.node.timestamp=Date.now()),h}}),a.mkdev(i,o,s)},forceLoadFile(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if(typeof XMLHttpRequest!="undefined")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(ur)try{e.contents=yn(ur(e.url),!0),e.usedBytes=e.contents.length}catch(t){throw new a.ErrnoError(29)}else throw new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile(e,t,r,A,i){function o(){this.lengthKnown=!1,this.chunks=[]}if(o.prototype.get=function(B){if(B>this.length-1||B<0)return;let h=B%this.chunkSize,_=B/this.chunkSize|0;return this.getter(_)[h]},o.prototype.setDataGetter=function(B){this.getter=B},o.prototype.cacheLength=function(){let B=new XMLHttpRequest;if(B.open("HEAD",r,!1),B.send(null),!(B.status>=200&&B.status<300||B.status===304))throw new Error(`Couldn't load ${r}. Status: ${B.status}`);let h=Number(B.getResponseHeader("Content-length")),_,O=(_=B.getResponseHeader("Accept-Ranges"))&&_==="bytes",x=(_=B.getResponseHeader("Content-Encoding"))&&_==="gzip",Y=1024*1024;O||(Y=h);let Z=function(v,re){if(v>re)throw new Error(`invalid range (${v}, ${re}) or no bytes requested!`);if(re>h-1)throw new Error(`only ${h} bytes available! programmer error!`);let L=new XMLHttpRequest;if(L.open("GET",r,!1),h!==Y&&L.setRequestHeader("Range",`bytes=${v}-${re}`),typeof Uint8Array!="undefined"&&(L.responseType="arraybuffer"),L.overrideMimeType&&L.overrideMimeType("text/plain; charset=x-user-defined"),L.send(null),!(L.status>=200&&L.status<300||L.status===304))throw new Error(`Couldn't load ${r}. Status: ${L.status}`);return L.response!==void 0?new Uint8Array(L.response||[]):yn(L.responseText||"",!0)},D=this;D.setDataGetter(v=>{let re=v*Y,L=(v+1)*Y-1;if(L=Math.min(L,h-1),typeof D.chunks[v]=="undefined"&&(D.chunks[v]=Z(re,L)),typeof D.chunks[v]=="undefined")throw new Error("doXHR failed!");return D.chunks[v]}),(x||!h)&&(Y=h=1,h=this.getter(0).length,Y=h,be("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=h,this._chunkSize=Y,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!Ye)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";let I=new o;Object.defineProperties(I,{length:{get(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var s={isDevice:!1,contents:I}}else var s={isDevice:!1,url:r};let c=a.createFile(e,t,s,A,i);s.contents?c.contents=s.contents:s.url&&(c.contents=null,c.url=s.url),Object.defineProperties(c,{usedBytes:{get(){return this.contents.length}}});let d={};return Object.keys(c.stream_ops).forEach(I=>{let B=c.stream_ops[I];d[I]=function(){return a.forceLoadFile(c),B.apply(null,arguments)}}),d.read=function(B,h,_,O,x){a.forceLoadFile(c);let{contents:Y}=B.node;if(x>=Y.length)return 0;let Z=Math.min(Y.length-x,O);if(M(Z>=0),Y.slice)for(var D=0;D<Z;D++)h[_+D]=Y[x+D];else for(var D=0;D<Z;D++)h[_+D]=Y.get(x+D);return Z},c.stream_ops=d,c},createPreloadedFile(e,t,r,A,i,o,s,c,d,E){Q.init();let I=t?Ce.resolve(te.join2(e,t)):e,B=Xr(`cp ${I}`);function h(_){function O(Y){E&&E(),c||a.createDataFile(e,t,Y,A,i,d),o&&o(),gt(B)}let x=!1;n.preloadPlugins.forEach(Y=>{x||Y.canHandle(I)&&(Y.handle(_,I,O,()=>{s&&s(),gt(B)}),x=!0)}),x||O(_)}rt(B),typeof r=="string"?iA(r,_=>{h(_)},s):h(r)},indexedDB(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME(){return`EM_FS_${window.location.pathname}`},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB(e,t,r){t=t||function(){},r=r||function(){};let A=a.indexedDB();try{var i=A.open(a.DB_NAME(),a.DB_VERSION)}catch(o){return r(o)}i.onupgradeneeded=function(){be("creating db"),i.result.createObjectStore(a.DB_STORE_NAME)},i.onsuccess=function(){let c=i.result.transaction([a.DB_STORE_NAME],"readwrite"),d=c.objectStore(a.DB_STORE_NAME),E=0,I=0,B=e.length;function h(){I==0?t():r()}e.forEach(_=>{let O=d.put(a.analyzePath(_).object.contents,_);O.onsuccess=function(){E++,E+I==B&&h()},O.onerror=function(){I++,E+I==B&&h()}}),c.onerror=r},i.onerror=r},loadFilesFromDB(e,t,r){t=t||function(){},r=r||function(){};let A=a.indexedDB();try{var i=A.open(a.DB_NAME(),a.DB_VERSION)}catch(o){return r(o)}i.onupgradeneeded=r,i.onsuccess=function(){let s=i.result;try{var c=s.transaction([a.DB_STORE_NAME],"readonly")}catch(_){r(_);return}let d=c.objectStore(a.DB_STORE_NAME),E=0,I=0,B=e.length;function h(){I==0?t():r()}e.forEach(_=>{let O=d.get(_);O.onsuccess=function(){a.analyzePath(_).exists&&a.unlink(_),a.createDataFile(te.dirname(_),te.basename(_),O.result,!0,!0,!0),E++,E+I==B&&h()},O.onerror=function(){I++,E+I==B&&h()}}),c.onerror=r},i.onerror=r},absolutePath(){l("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder(){l("FS.createFolder has been removed; use FS.mkdir instead")},createLink(){l("FS.createLink has been removed; use FS.symlink instead")},joinPath(){l("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc(){l("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath(){l("FS.standardizePath has been removed; use PATH.normalize instead")}},se={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt(e,t,r){if(t[0]==="/")return t;let A;if(e===-100)A=a.cwd();else{let i=a.getStream(e);if(!i)throw new a.ErrnoError(8);A=i.path}if(t.length==0){if(!r)throw new a.ErrnoError(44);return A}return te.join2(A,t)},doStat(e,t,r){try{var A=e(t)}catch(i){if(i&&i.node&&te.normalize(t)!==te.normalize(a.getPath(i.node)))return-54;throw i}return m[r>>2]=A.dev,m[r+4>>2]=0,m[r+8>>2]=A.ino,m[r+12>>2]=A.mode,m[r+16>>2]=A.nlink,m[r+20>>2]=A.uid,m[r+24>>2]=A.gid,m[r+28>>2]=A.rdev,m[r+32>>2]=0,We=[A.size>>>0,(ge=A.size,+Math.abs(ge)>=1?ge>0?(Math.min(+Math.floor(ge/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ge-+(~~ge>>>0))/4294967296)>>>0:0)],m[r+40>>2]=We[0],m[r+44>>2]=We[1],m[r+48>>2]=4096,m[r+52>>2]=A.blocks,m[r+56>>2]=A.atime.getTime()/1e3|0,m[r+60>>2]=0,m[r+64>>2]=A.mtime.getTime()/1e3|0,m[r+68>>2]=0,m[r+72>>2]=A.ctime.getTime()/1e3|0,m[r+76>>2]=0,We=[A.ino>>>0,(ge=A.ino,+Math.abs(ge)>=1?ge>0?(Math.min(+Math.floor(ge/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ge-+(~~ge>>>0))/4294967296)>>>0:0)],m[r+80>>2]=We[0],m[r+84>>2]=We[1],0},doMsync(e,t,r,A,i){let o=ce.slice(e,e+r);a.msync(t,o,i,r,A)},doMkdir(e,t){return e=te.normalize(e),e[e.length-1]==="/"&&(e=e.substr(0,e.length-1)),a.mkdir(e,t,0),0},doMknod(e,t,r){switch(t&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return a.mknod(e,t,r),0},doReadlink(e,t,r){if(r<=0)return-28;let A=a.readlink(e),i=Math.min(r,Ge(A)),o=le[t+i];return Bt(A,t,r+1),le[t+i]=o,i},doAccess(e,t){if(t&-8)return-28;let r;if(r=a.lookupPath(e,{follow:!0}).node,!r)return-44;let i="";return t&4&&(i+="r"),t&2&&(i+="w"),t&1&&(i+="x"),i&&a.nodePermissions(r,i)?-2:0},doDup(e,t,r){let A=a.getStream(r);return A&&a.close(A),a.open(e,t,0,r,r).fd},doReadv(e,t,r,A){let i=0;for(let o=0;o<r;o++){let s=m[t+o*8>>2],c=m[t+(o*8+4)>>2],d=a.read(e,le,s,c,A);if(d<0)return-1;if(i+=d,d<c)break}return i},doWritev(e,t,r,A){let i=0;for(let o=0;o<r;o++){let s=m[t+o*8>>2],c=m[t+(o*8+4)>>2],d=a.write(e,le,s,c,A);if(d<0)return-1;i+=d}return i},varargs:void 0,get(){return M(se.varargs!=null),se.varargs+=4,m[se.varargs-4>>2]},getStr(e){return Re(e)},getStreamFromFD(e){let t=a.getStream(e);if(!t)throw new a.ErrnoError(8);return t},get64(e,t){return e>=0?M(t===0):M(t===-1),e}};function oA(e,t,r){se.varargs=r;try{let i=se.getStreamFromFD(e);switch(t){case 0:{var A=se.get();if(A<0)return-28;let o;return o=a.open(i.path,i.flags,0,A),o.fd}case 1:case 2:return 0;case 3:return i.flags;case 4:{var A=se.get();return i.flags|=A,0}case 12:{var A=se.get();let s=0;return st[A+s>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return br(28),-1;default:return-28}}catch(i){return(typeof a=="undefined"||!(i instanceof a.ErrnoError))&&l(i),-i.errno}}function sA(e,t,r){se.varargs=r;try{let i=se.getStreamFromFD(e);switch(t){case 21509:case 21505:return i.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return i.tty?0:-59;case 21519:{if(!i.tty)return-59;var A=se.get();return m[A>>2]=0,0}case 21520:return i.tty?-28:-59;case 21531:{var A=se.get();return a.ioctl(i,t,A)}case 21523:return i.tty?0:-59;case 21524:return i.tty?0:-59;default:l(`bad ioctl syscall ${t}`)}}catch(i){return(typeof a=="undefined"||!(i instanceof a.ErrnoError))&&l(i),-i.errno}}function aA(e,t,r,A,i,o){o<<=12;let s,c=!1;if(A&16&&e%65536!==0)return-28;if(A&32){if(s=Je(t),!s)return-48;c=!0}else{let d=a.getStream(i);if(!d)return-8;let E=a.mmap(d,e,t,o,r,A);s=E.ptr,c=E.allocated}return se.mappings[s]={malloc:s,len:t,allocated:c,fd:i,prot:r,flags:A,offset:o},s}function cA(e,t,r,A,i,o){try{return aA(e,t,r,A,i,o)}catch(s){return(typeof a=="undefined"||!(s instanceof a.ErrnoError))&&l(s),-s.errno}}function gA(e,t,r){se.varargs=r;try{let A=se.getStr(e),i=r?se.get():0;return a.open(A,t,i).fd}catch(A){return(typeof a=="undefined"||!(A instanceof a.ErrnoError))&&l(A),-A.errno}}function en(e,t){try{return e=se.getStr(e),se.doStat(a.stat,e,t)}catch(r){return(typeof a=="undefined"||!(r instanceof a.ErrnoError))&&l(r),-r.errno}}let lA=48,uA=57;function Ar(e){if(e===void 0)return"_unknown";e=e.replace(/[^a-zA-Z0-9_]/g,"$");let t=e.charCodeAt(0);return t>=lA&&t<=uA?`_${e}`:e}function kt(e,t){return e=Ar(e),new Function("body",`return function ${e}() {
4
+ `));if(!t)return null;e.input=hi(t,!0)}return e.input.shift()},put_char(e,t){t===null||t===10?(Pe(Qt(e.output,0)),e.output=[]):t!=0&&e.output.push(t)},flush(e){e.output&&e.output.length>0&&(Pe(Qt(e.output,0)),e.output=[])}},default_tty1_ops:{put_char(e,t){t===null||t===10?(Ee(Qt(e.output,0)),e.output=[]):t!=0&&e.output.push(t)},flush(e){e.output&&e.output.length>0&&(Ee(Qt(e.output,0)),e.output=[])}}};function Fi(e,t){Te.fill(0,e,e+t)}function Vn(e,t){return z(t,"alignment argument is required"),Math.ceil(e/t)*t}function ne(e){e=Vn(e,65536);let t=ac(65536,e);return t?(Fi(t,e),t):0}var se={ops_table:null,mount(e){return se.createNode(null,"/",16895,0)},createNode(e,t,r,o){if(l.isBlkdev(r)||l.isFIFO(r))throw new l.ErrnoError(63);se.ops_table||(se.ops_table={dir:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr,lookup:se.node_ops.lookup,mknod:se.node_ops.mknod,rename:se.node_ops.rename,unlink:se.node_ops.unlink,rmdir:se.node_ops.rmdir,readdir:se.node_ops.readdir,symlink:se.node_ops.symlink},stream:{llseek:se.stream_ops.llseek}},file:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr},stream:{llseek:se.stream_ops.llseek,read:se.stream_ops.read,write:se.stream_ops.write,allocate:se.stream_ops.allocate,mmap:se.stream_ops.mmap,msync:se.stream_ops.msync}},link:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr,readlink:se.node_ops.readlink},stream:{}},chrdev:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr},stream:l.chrdev_stream_ops}});let a=l.createNode(e,t,r,o);return l.isDir(a.mode)?(a.node_ops=se.ops_table.dir.node,a.stream_ops=se.ops_table.dir.stream,a.contents={}):l.isFile(a.mode)?(a.node_ops=se.ops_table.file.node,a.stream_ops=se.ops_table.file.stream,a.usedBytes=0,a.contents=null):l.isLink(a.mode)?(a.node_ops=se.ops_table.link.node,a.stream_ops=se.ops_table.link.stream):l.isChrdev(a.mode)&&(a.node_ops=se.ops_table.chrdev.node,a.stream_ops=se.ops_table.chrdev.stream),a.timestamp=Date.now(),e&&(e.contents[t]=a,e.timestamp=a.timestamp),a},getFileDataAsTypedArray(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage(e,t){let r=e.contents?e.contents.length:0;if(r>=t)return;let o=1024*1024;t=Math.max(t,r*(r<o?2:1.125)>>>0),r!=0&&(t=Math.max(t,256));let a=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(a.subarray(0,e.usedBytes),0)},resizeFileStorage(e,t){if(e.usedBytes!=t)if(t==0)e.contents=null,e.usedBytes=0;else{let r=e.contents;e.contents=new Uint8Array(t),r&&e.contents.set(r.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr(e){let t={};return t.dev=l.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,l.isDir(e.mode)?t.size=4096:l.isFile(e.mode)?t.size=e.usedBytes:l.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr(e,t){t.mode!==void 0&&(e.mode=t.mode),t.timestamp!==void 0&&(e.timestamp=t.timestamp),t.size!==void 0&&se.resizeFileStorage(e,t.size)},lookup(e,t){throw l.genericErrors[44]},mknod(e,t,r,o){return se.createNode(e,t,r,o)},rename(e,t,r){if(l.isDir(e.mode)){let o;try{o=l.lookupNode(t,r)}catch(a){}if(o)for(let a in o.contents)throw new l.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=r,t.contents[r]=e,t.timestamp=e.parent.timestamp,e.parent=t},unlink(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir(e,t){let r=l.lookupNode(e,t);for(let o in r.contents)throw new l.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir(e){let t=[".",".."];for(let r in e.contents)e.contents.hasOwnProperty(r)&&t.push(r);return t},symlink(e,t,r){let o=se.createNode(e,t,41471,0);return o.link=r,o},readlink(e){if(!l.isLink(e.mode))throw new l.ErrnoError(28);return e.link}},stream_ops:{read(e,t,r,o,a){let{contents:s}=e.node;if(a>=e.node.usedBytes)return 0;let A=Math.min(e.node.usedBytes-a,o);if(z(A>=0),A>8&&s.subarray)t.set(s.subarray(a,a+A),r);else for(let c=0;c<A;c++)t[r+c]=s[a+c];return A},write(e,t,r,o,a,s){if(z(!(t instanceof ArrayBuffer)),t.buffer===De.buffer&&(s=!1),!o)return 0;let{node:A}=e;if(A.timestamp=Date.now(),t.subarray&&(!A.contents||A.contents.subarray)){if(s)return z(a===0,"canOwn must imply no weird position inside the file"),A.contents=t.subarray(r,r+o),A.usedBytes=o,o;if(A.usedBytes===0&&a===0)return A.contents=t.slice(r,r+o),A.usedBytes=o,o;if(a+o<=A.usedBytes)return A.contents.set(t.subarray(r,r+o),a),o}if(se.expandFileStorage(A,a+o),A.contents.subarray&&t.subarray)A.contents.set(t.subarray(r,r+o),a);else for(let c=0;c<o;c++)A.contents[a+c]=t[r+c];return A.usedBytes=Math.max(A.usedBytes,a+o),o},llseek(e,t,r){let o=t;if(r===1?o+=e.position:r===2&&l.isFile(e.node.mode)&&(o+=e.node.usedBytes),o<0)throw new l.ErrnoError(28);return o},allocate(e,t,r){se.expandFileStorage(e.node,t+r),e.node.usedBytes=Math.max(e.node.usedBytes,t+r)},mmap(e,t,r,o,a,s){if(t!==0)throw new l.ErrnoError(28);if(!l.isFile(e.node.mode))throw new l.ErrnoError(43);let A,c,{contents:u}=e.node;if(!(s&2)&&u.buffer===Re)c=!1,A=u.byteOffset;else{if((o>0||o+r<u.length)&&(u.subarray?u=u.subarray(o,o+r):u=Array.prototype.slice.call(u,o,o+r)),c=!0,A=ne(r),!A)throw new l.ErrnoError(48);De.set(u,A)}return{ptr:A,allocated:c}},msync(e,t,r,o,a){if(!l.isFile(e.node.mode))throw new l.ErrnoError(43);if(a&2)return 0;let s=se.stream_ops.write(e,t,0,o,r,!1);return 0}}};function ki(e,t,r,o){let a=o?"":Cr(`al ${e}`);qt(e,s=>{z(s,`Loading data file "${e}" failed (no arrayBuffer).`),t(new Uint8Array(s)),a&&nr(a)},s=>{if(r)r();else throw`Loading data file "${e}" failed.`}),a&&E(a)}let on={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"},f={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var l={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath(e,t){if(e=Qe.resolve(l.cwd(),e),t=t||{},!e)return{path:"",node:null};let r={follow_mount:!0,recurse_count:0};for(let A in r)t[A]===void 0&&(t[A]=r[A]);if(t.recurse_count>8)throw new l.ErrnoError(32);let o=me.normalizeArray(e.split("/").filter(A=>!!A),!1),a=l.root,s="/";for(let A=0;A<o.length;A++){let c=A===o.length-1;if(c&&t.parent)break;if(a=l.lookupNode(a,o[A]),s=me.join2(s,o[A]),l.isMountpoint(a)&&(!c||c&&t.follow_mount)&&(a=a.mounted.root),!c||t.follow){let u=0;for(;l.isLink(a.mode);){let d=l.readlink(s);if(s=Qe.resolve(me.dirname(s),d),a=l.lookupPath(s,{recurse_count:t.recurse_count}).node,u++>40)throw new l.ErrnoError(32)}}}return{path:s,node:a}},getPath(e){let t;for(;;){if(l.isRoot(e)){let r=e.mount.mountpoint;return t?r[r.length-1]!=="/"?`${r}/${t}`:r+t:r}t=t?`${e.name}/${t}`:e.name,e=e.parent}},hashName(e,t){let r=0;for(let o=0;o<t.length;o++)r=(r<<5)-r+t.charCodeAt(o)|0;return(e+r>>>0)%l.nameTable.length},hashAddNode(e){let t=l.hashName(e.parent.id,e.name);e.name_next=l.nameTable[t],l.nameTable[t]=e},hashRemoveNode(e){let t=l.hashName(e.parent.id,e.name);if(l.nameTable[t]===e)l.nameTable[t]=e.name_next;else{let r=l.nameTable[t];for(;r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}}},lookupNode(e,t){let r=l.mayLookup(e);if(r)throw new l.ErrnoError(r,e);let o=l.hashName(e.id,t);for(let a=l.nameTable[o];a;a=a.name_next){let s=a.name;if(a.parent.id===e.id&&s===t)return a}return l.lookup(e,t)},createNode(e,t,r,o){z(typeof e=="object");let a=new l.FSNode(e,t,r,o);return l.hashAddNode(a),a},destroyNode(e){l.hashRemoveNode(e)},isRoot(e){return e===e.parent},isMountpoint(e){return!!e.mounted},isFile(e){return(e&61440)===32768},isDir(e){return(e&61440)===16384},isLink(e){return(e&61440)===40960},isChrdev(e){return(e&61440)===8192},isBlkdev(e){return(e&61440)===24576},isFIFO(e){return(e&61440)===4096},isSocket(e){return(e&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags(e){let t=l.flagModes[e];if(typeof t=="undefined")throw new Error(`Unknown file open mode: ${e}`);return t},flagsToPermissionString(e){let t=["r","w","rw"][e&3];return e&512&&(t+="w"),t},nodePermissions(e,t){return l.ignorePermissions?0:t.includes("r")&&!(e.mode&292)||t.includes("w")&&!(e.mode&146)||t.includes("x")&&!(e.mode&73)?2:0},mayLookup(e){let t=l.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate(e,t){try{let r=l.lookupNode(e,t);return 20}catch(r){}return l.nodePermissions(e,"wx")},mayDelete(e,t,r){let o;try{o=l.lookupNode(e,t)}catch(s){return s.errno}let a=l.nodePermissions(e,"wx");if(a)return a;if(r){if(!l.isDir(o.mode))return 54;if(l.isRoot(o)||l.getPath(o)===l.cwd())return 10}else if(l.isDir(o.mode))return 31;return 0},mayOpen(e,t){return e?l.isLink(e.mode)?32:l.isDir(e.mode)&&(l.flagsToPermissionString(t)!=="r"||t&512)?31:l.nodePermissions(e,l.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd(e,t){e=e||0,t=t||l.MAX_OPEN_FDS;for(let r=e;r<=t;r++)if(!l.streams[r])return r;throw new l.ErrnoError(33)},getStream(e){return l.streams[e]},createStream(e,t,r){l.FSStream||(l.FSStream=function(){},l.FSStream.prototype={object:{get(){return this.node},set(s){this.node=s}},isRead:{get(){return(this.flags&2097155)!==1}},isWrite:{get(){return(this.flags&2097155)!==0}},isAppend:{get(){return this.flags&1024}}});let o=new l.FSStream;for(let s in e)o[s]=e[s];e=o;let a=l.nextfd(t,r);return e.fd=a,l.streams[a]=e,e},closeStream(e){l.streams[e]=null},chrdev_stream_ops:{open(e){let t=l.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek(){throw new l.ErrnoError(70)}},major(e){return e>>8},minor(e){return e&255},makedev(e,t){return e<<8|t},registerDevice(e,t){l.devices[e]={stream_ops:t}},getDevice(e){return l.devices[e]},getMounts(e){let t=[],r=[e];for(;r.length;){let o=r.pop();t.push(o),r.push.apply(r,o.mounts)}return t},syncfs(e,t){typeof e=="function"&&(t=e,e=!1),l.syncFSRequests++,l.syncFSRequests>1&&Ee(`warning: ${l.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);let r=l.getMounts(l.root.mount),o=0;function a(A){return z(l.syncFSRequests>0),l.syncFSRequests--,t(A)}function s(A){if(A)return s.errored?void 0:(s.errored=!0,a(A));++o>=r.length&&a(null)}r.forEach(A=>{if(!A.type.syncfs)return s(null);A.type.syncfs(A,e,s)})},mount(e,t,r){if(typeof e=="string")throw e;let o=r==="/",a=!r,s;if(o&&l.root)throw new l.ErrnoError(10);if(!o&&!a){let u=l.lookupPath(r,{follow_mount:!1});if(r=u.path,s=u.node,l.isMountpoint(s))throw new l.ErrnoError(10);if(!l.isDir(s.mode))throw new l.ErrnoError(54)}let A={type:e,opts:t,mountpoint:r,mounts:[]},c=e.mount(A);return c.mount=A,A.root=c,o?l.root=c:s&&(s.mounted=A,s.mount&&s.mount.mounts.push(A)),c},unmount(e){let t=l.lookupPath(e,{follow_mount:!1});if(!l.isMountpoint(t.node))throw new l.ErrnoError(28);let{node:r}=t,o=r.mounted,a=l.getMounts(o);Object.keys(l.nameTable).forEach(A=>{let c=l.nameTable[A];for(;c;){let u=c.name_next;a.includes(c.mount)&&l.destroyNode(c),c=u}}),r.mounted=null;let s=r.mount.mounts.indexOf(o);z(s!==-1),r.mount.mounts.splice(s,1)},lookup(e,t){return e.node_ops.lookup(e,t)},mknod(e,t,r){let a=l.lookupPath(e,{parent:!0}).node,s=me.basename(e);if(!s||s==="."||s==="..")throw new l.ErrnoError(28);let A=l.mayCreate(a,s);if(A)throw new l.ErrnoError(A);if(!a.node_ops.mknod)throw new l.ErrnoError(63);return a.node_ops.mknod(a,s,t,r)},create(e,t){return t=t!==void 0?t:438,t&=4095,t|=32768,l.mknod(e,t,0)},mkdir(e,t){return t=t!==void 0?t:511,t&=1023,t|=16384,l.mknod(e,t,0)},mkdirTree(e,t){let r=e.split("/"),o="";for(let a=0;a<r.length;++a)if(r[a]){o+=`/${r[a]}`;try{l.mkdir(o,t)}catch(s){if(s.errno!=20)throw s}}},mkdev(e,t,r){return typeof r=="undefined"&&(r=t,t=438),t|=8192,l.mknod(e,t,r)},symlink(e,t){if(!Qe.resolve(e))throw new l.ErrnoError(44);let o=l.lookupPath(t,{parent:!0}).node;if(!o)throw new l.ErrnoError(44);let a=me.basename(t),s=l.mayCreate(o,a);if(s)throw new l.ErrnoError(s);if(!o.node_ops.symlink)throw new l.ErrnoError(63);return o.node_ops.symlink(o,a,e)},rename(e,t){let r=me.dirname(e),o=me.dirname(t),a=me.basename(e),s=me.basename(t),A,c,u;if(A=l.lookupPath(e,{parent:!0}),c=A.node,A=l.lookupPath(t,{parent:!0}),u=A.node,!c||!u)throw new l.ErrnoError(44);if(c.mount!==u.mount)throw new l.ErrnoError(75);let d=l.lookupNode(c,a),h=Qe.relative(e,o);if(h.charAt(0)!==".")throw new l.ErrnoError(28);if(h=Qe.relative(t,r),h.charAt(0)!==".")throw new l.ErrnoError(55);let m;try{m=l.lookupNode(u,s)}catch(v){}if(d===m)return;let I=l.isDir(d.mode),y=l.mayDelete(c,a,I);if(y)throw new l.ErrnoError(y);if(y=m?l.mayDelete(u,s,I):l.mayCreate(u,s),y)throw new l.ErrnoError(y);if(!c.node_ops.rename)throw new l.ErrnoError(63);if(l.isMountpoint(d)||m&&l.isMountpoint(m))throw new l.ErrnoError(10);if(u!==c&&(y=l.nodePermissions(c,"w"),y))throw new l.ErrnoError(y);try{l.trackingDelegate.willMovePath&&l.trackingDelegate.willMovePath(e,t)}catch(v){Ee(`FS.trackingDelegate['willMovePath']('${e}', '${t}') threw an exception: ${v.message}`)}l.hashRemoveNode(d);try{c.node_ops.rename(d,u,s)}catch(v){throw v}finally{l.hashAddNode(d)}try{l.trackingDelegate.onMovePath&&l.trackingDelegate.onMovePath(e,t)}catch(v){Ee(`FS.trackingDelegate['onMovePath']('${e}', '${t}') threw an exception: ${v.message}`)}},rmdir(e){let r=l.lookupPath(e,{parent:!0}).node,o=me.basename(e),a=l.lookupNode(r,o),s=l.mayDelete(r,o,!0);if(s)throw new l.ErrnoError(s);if(!r.node_ops.rmdir)throw new l.ErrnoError(63);if(l.isMountpoint(a))throw new l.ErrnoError(10);try{l.trackingDelegate.willDeletePath&&l.trackingDelegate.willDeletePath(e)}catch(A){Ee(`FS.trackingDelegate['willDeletePath']('${e}') threw an exception: ${A.message}`)}r.node_ops.rmdir(r,o),l.destroyNode(a);try{l.trackingDelegate.onDeletePath&&l.trackingDelegate.onDeletePath(e)}catch(A){Ee(`FS.trackingDelegate['onDeletePath']('${e}') threw an exception: ${A.message}`)}},readdir(e){let t=l.lookupPath(e,{follow:!0}),{node:r}=t;if(!r.node_ops.readdir)throw new l.ErrnoError(54);return r.node_ops.readdir(r)},unlink(e){let r=l.lookupPath(e,{parent:!0}).node,o=me.basename(e),a=l.lookupNode(r,o),s=l.mayDelete(r,o,!1);if(s)throw new l.ErrnoError(s);if(!r.node_ops.unlink)throw new l.ErrnoError(63);if(l.isMountpoint(a))throw new l.ErrnoError(10);try{l.trackingDelegate.willDeletePath&&l.trackingDelegate.willDeletePath(e)}catch(A){Ee(`FS.trackingDelegate['willDeletePath']('${e}') threw an exception: ${A.message}`)}r.node_ops.unlink(r,o),l.destroyNode(a);try{l.trackingDelegate.onDeletePath&&l.trackingDelegate.onDeletePath(e)}catch(A){Ee(`FS.trackingDelegate['onDeletePath']('${e}') threw an exception: ${A.message}`)}},readlink(e){let r=l.lookupPath(e).node;if(!r)throw new l.ErrnoError(44);if(!r.node_ops.readlink)throw new l.ErrnoError(28);return Qe.resolve(l.getPath(r.parent),r.node_ops.readlink(r))},stat(e,t){let r=l.lookupPath(e,{follow:!t}),{node:o}=r;if(!o)throw new l.ErrnoError(44);if(!o.node_ops.getattr)throw new l.ErrnoError(63);return o.node_ops.getattr(o)},lstat(e){return l.stat(e,!0)},chmod(e,t,r){let o;if(typeof e=="string"?o=l.lookupPath(e,{follow:!r}).node:o=e,!o.node_ops.setattr)throw new l.ErrnoError(63);o.node_ops.setattr(o,{mode:t&4095|o.mode&-4096,timestamp:Date.now()})},lchmod(e,t){l.chmod(e,t,!0)},fchmod(e,t){let r=l.getStream(e);if(!r)throw new l.ErrnoError(8);l.chmod(r.node,t)},chown(e,t,r,o){let a;if(typeof e=="string"?a=l.lookupPath(e,{follow:!o}).node:a=e,!a.node_ops.setattr)throw new l.ErrnoError(63);a.node_ops.setattr(a,{timestamp:Date.now()})},lchown(e,t,r){l.chown(e,t,r,!0)},fchown(e,t,r){let o=l.getStream(e);if(!o)throw new l.ErrnoError(8);l.chown(o.node,t,r)},truncate(e,t){if(t<0)throw new l.ErrnoError(28);let r;if(typeof e=="string"?r=l.lookupPath(e,{follow:!0}).node:r=e,!r.node_ops.setattr)throw new l.ErrnoError(63);if(l.isDir(r.mode))throw new l.ErrnoError(31);if(!l.isFile(r.mode))throw new l.ErrnoError(28);let o=l.nodePermissions(r,"w");if(o)throw new l.ErrnoError(o);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate(e,t){let r=l.getStream(e);if(!r)throw new l.ErrnoError(8);if(!(r.flags&2097155))throw new l.ErrnoError(28);l.truncate(r.node,t)},utime(e,t,r){let o=l.lookupPath(e,{follow:!0}),{node:a}=o;a.node_ops.setattr(a,{timestamp:Math.max(t,r)})},open(e,t,r,o,a){if(e==="")throw new l.ErrnoError(44);t=typeof t=="string"?l.modeStringToFlags(t):t,r=typeof r=="undefined"?438:r,t&64?r=r&4095|32768:r=0;let s;if(typeof e=="object")s=e;else{e=me.normalize(e);try{s=l.lookupPath(e,{follow:!(t&131072)}).node}catch(u){}}let A=!1;if(t&64)if(s){if(t&128)throw new l.ErrnoError(20)}else s=l.mknod(e,r,0),A=!0;if(!s)throw new l.ErrnoError(44);if(l.isChrdev(s.mode)&&(t&=-513),t&65536&&!l.isDir(s.mode))throw new l.ErrnoError(54);if(!A){let u=l.mayOpen(s,t);if(u)throw new l.ErrnoError(u)}t&512&&l.truncate(s,0),t&=-131713;let c=l.createStream({node:s,path:l.getPath(s),flags:t,seekable:!0,position:0,stream_ops:s.stream_ops,ungotten:[],error:!1},o,a);c.stream_ops.open&&c.stream_ops.open(c),n.logReadFiles&&!(t&1)&&(l.readFiles||(l.readFiles={}),e in l.readFiles||(l.readFiles[e]=1,Ee(`FS.trackingDelegate error on read file: ${e}`)));try{if(l.trackingDelegate.onOpenFile){let u=0;(t&2097155)!==1&&(u|=l.tracking.openFlags.READ),t&2097155&&(u|=l.tracking.openFlags.WRITE),l.trackingDelegate.onOpenFile(e,u)}}catch(u){Ee(`FS.trackingDelegate['onOpenFile']('${e}', flags) threw an exception: ${u.message}`)}return c},close(e){if(l.isClosed(e))throw new l.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(t){throw t}finally{l.closeStream(e.fd)}e.fd=null},isClosed(e){return e.fd===null},llseek(e,t,r){if(l.isClosed(e))throw new l.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new l.ErrnoError(70);if(r!=0&&r!=1&&r!=2)throw new l.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read(e,t,r,o,a){if(o<0||a<0)throw new l.ErrnoError(28);if(l.isClosed(e))throw new l.ErrnoError(8);if((e.flags&2097155)===1)throw new l.ErrnoError(8);if(l.isDir(e.node.mode))throw new l.ErrnoError(31);if(!e.stream_ops.read)throw new l.ErrnoError(28);let s=typeof a!="undefined";if(!s)a=e.position;else if(!e.seekable)throw new l.ErrnoError(70);let A=e.stream_ops.read(e,t,r,o,a);return s||(e.position+=A),A},write(e,t,r,o,a,s){if(o<0||a<0)throw new l.ErrnoError(28);if(l.isClosed(e))throw new l.ErrnoError(8);if(!(e.flags&2097155))throw new l.ErrnoError(8);if(l.isDir(e.node.mode))throw new l.ErrnoError(31);if(!e.stream_ops.write)throw new l.ErrnoError(28);e.seekable&&e.flags&1024&&l.llseek(e,0,2);let A=typeof a!="undefined";if(!A)a=e.position;else if(!e.seekable)throw new l.ErrnoError(70);let c=e.stream_ops.write(e,t,r,o,a,s);A||(e.position+=c);try{e.path&&l.trackingDelegate.onWriteToFile&&l.trackingDelegate.onWriteToFile(e.path)}catch(u){Ee(`FS.trackingDelegate['onWriteToFile']('${e.path}') threw an exception: ${u.message}`)}return c},allocate(e,t,r){if(l.isClosed(e))throw new l.ErrnoError(8);if(t<0||r<=0)throw new l.ErrnoError(28);if(!(e.flags&2097155))throw new l.ErrnoError(8);if(!l.isFile(e.node.mode)&&!l.isDir(e.node.mode))throw new l.ErrnoError(43);if(!e.stream_ops.allocate)throw new l.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap(e,t,r,o,a,s){if(a&2&&!(s&2)&&(e.flags&2097155)!==2)throw new l.ErrnoError(2);if((e.flags&2097155)===1)throw new l.ErrnoError(2);if(!e.stream_ops.mmap)throw new l.ErrnoError(43);return e.stream_ops.mmap(e,t,r,o,a,s)},msync(e,t,r,o,a){return!e||!e.stream_ops.msync?0:e.stream_ops.msync(e,t,r,o,a)},munmap(e){return 0},ioctl(e,t,r){if(!e.stream_ops.ioctl)throw new l.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile(e,t){if(t=t||{},t.flags=t.flags||0,t.encoding=t.encoding||"binary",t.encoding!=="utf8"&&t.encoding!=="binary")throw new Error(`Invalid encoding type "${t.encoding}"`);let r,o=l.open(e,t.flags),s=l.stat(e).size,A=new Uint8Array(s);return l.read(o,A,0,s,0),t.encoding==="utf8"?r=Qt(A,0):t.encoding==="binary"&&(r=A),l.close(o),r},writeFile(e,t,r){r=r||{},r.flags=r.flags||577;let o=l.open(e,r.flags,r.mode);if(typeof t=="string"){let a=new Uint8Array(wt(t)+1),s=Ke(t,a,0,a.length);l.write(o,a,0,s,void 0,r.canOwn)}else if(ArrayBuffer.isView(t))l.write(o,t,0,t.byteLength,void 0,r.canOwn);else throw new Error("Unsupported data type");l.close(o)},cwd(){return l.currentPath},chdir(e){let t=l.lookupPath(e,{follow:!0});if(t.node===null)throw new l.ErrnoError(44);if(!l.isDir(t.node.mode))throw new l.ErrnoError(54);let r=l.nodePermissions(t.node,"x");if(r)throw new l.ErrnoError(r);l.currentPath=t.path},createDefaultDirectories(){l.mkdir("/tmp"),l.mkdir("/home"),l.mkdir("/home/web_user")},createDefaultDevices(){l.mkdir("/dev"),l.registerDevice(l.makedev(1,3),{read(){return 0},write(t,r,o,a,s){return a}}),l.mkdev("/dev/null",l.makedev(1,3)),It.register(l.makedev(5,0),It.default_tty_ops),It.register(l.makedev(6,0),It.default_tty1_ops),l.mkdev("/dev/tty",l.makedev(5,0)),l.mkdev("/dev/tty1",l.makedev(6,0));let e=lt();l.createDevice("/dev","random",e),l.createDevice("/dev","urandom",e),l.mkdir("/dev/shm"),l.mkdir("/dev/shm/tmp")},createSpecialDirectories(){l.mkdir("/proc");let e=l.mkdir("/proc/self");l.mkdir("/proc/self/fd"),l.mount({mount(){let t=l.createNode(e,"fd",16895,73);return t.node_ops={lookup(r,o){let a=+o,s=l.getStream(a);if(!s)throw new l.ErrnoError(8);let A={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink(){return s.path}}};return A.parent=A,A}},t}},{},"/proc/self/fd")},createStandardStreams(){n.stdin?l.createDevice("/dev","stdin",n.stdin):l.symlink("/dev/tty","/dev/stdin"),n.stdout?l.createDevice("/dev","stdout",null,n.stdout):l.symlink("/dev/tty","/dev/stdout"),n.stderr?l.createDevice("/dev","stderr",null,n.stderr):l.symlink("/dev/tty1","/dev/stderr");let e=l.open("/dev/stdin",0),t=l.open("/dev/stdout",1),r=l.open("/dev/stderr",1);z(e.fd===0,`invalid handle for stdin (${e.fd})`),z(t.fd===1,`invalid handle for stdout (${t.fd})`),z(r.fd===2,`invalid handle for stderr (${r.fd})`)},ensureErrnoError(){l.ErrnoError||(l.ErrnoError=function(t,r){this.node=r,this.setErrno=function(o){this.errno=o;for(let a in f)if(f[a]===o){this.code=a;break}},this.setErrno(t),this.message=on[t],this.stack&&(Object.defineProperty(this,"stack",{value:new Error().stack,writable:!0}),this.stack=Gn(this.stack))},l.ErrnoError.prototype=new Error,l.ErrnoError.prototype.constructor=l.ErrnoError,[44].forEach(e=>{l.genericErrors[e]=new l.ErrnoError(e),l.genericErrors[e].stack="<generic error, no stack>"}))},staticInit(){l.ensureErrnoError(),l.nameTable=new Array(4096),l.mount(se,{},"/"),l.createDefaultDirectories(),l.createDefaultDevices(),l.createSpecialDirectories(),l.filesystems={MEMFS:se}},init(e,t,r){z(!l.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),l.init.initialized=!0,l.ensureErrnoError(),n.stdin=e||n.stdin,n.stdout=t||n.stdout,n.stderr=r||n.stderr,l.createStandardStreams()},quit(){l.init.initialized=!1;let e=n._fflush;e&&e(0);for(let t=0;t<l.streams.length;t++){let r=l.streams[t];r&&l.close(r)}},getMode(e,t){let r=0;return e&&(r|=365),t&&(r|=146),r},findObject(e,t){let r=l.analyzePath(e,t);return r.exists?r.object:null},analyzePath(e,t){try{var r=l.lookupPath(e,{follow:!t});e=r.path}catch(a){}let o={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var r=l.lookupPath(e,{parent:!0});o.parentExists=!0,o.parentPath=r.path,o.parentObject=r.node,o.name=me.basename(e),r=l.lookupPath(e,{follow:!t}),o.exists=!0,o.path=r.path,o.object=r.node,o.name=r.node.name,o.isRoot=r.path==="/"}catch(a){o.error=a.errno}return o},createPath(e,t,r,o){e=typeof e=="string"?e:l.getPath(e);let a=t.split("/").reverse();for(;a.length;){let A=a.pop();if(A){var s=me.join2(e,A);try{l.mkdir(s)}catch(c){}e=s}}return s},createFile(e,t,r,o,a){let s=me.join2(typeof e=="string"?e:l.getPath(e),t),A=l.getMode(o,a);return l.create(s,A)},createDataFile(e,t,r,o,a,s){let A=t?me.join2(typeof e=="string"?e:l.getPath(e),t):e,c=l.getMode(o,a),u=l.create(A,c);if(r){if(typeof r=="string"){let h=new Array(r.length);for(let m=0,I=r.length;m<I;++m)h[m]=r.charCodeAt(m);r=h}l.chmod(u,c|146);let d=l.open(u,577);l.write(d,r,0,r.length,0,s),l.close(d),l.chmod(u,c)}return u},createDevice(e,t,r,o){let a=me.join2(typeof e=="string"?e:l.getPath(e),t),s=l.getMode(!!r,!!o);l.createDevice.major||(l.createDevice.major=64);let A=l.makedev(l.createDevice.major++,0);return l.registerDevice(A,{open(c){c.seekable=!1},close(c){o&&o.buffer&&o.buffer.length&&o(10)},read(c,u,d,h,m){let I=0;for(let v=0;v<h;v++){var y;try{y=r()}catch(N){throw new l.ErrnoError(29)}if(y===void 0&&I===0)throw new l.ErrnoError(6);if(y==null)break;I++,u[d+v]=y}return I&&(c.node.timestamp=Date.now()),I},write(c,u,d,h,m){for(var I=0;I<h;I++)try{o(u[d+I])}catch(y){throw new l.ErrnoError(29)}return h&&(c.node.timestamp=Date.now()),I}}),l.mkdev(a,s,A)},forceLoadFile(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if(typeof XMLHttpRequest!="undefined")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(vr)try{e.contents=hi(vr(e.url),!0),e.usedBytes=e.contents.length}catch(t){throw new l.ErrnoError(29)}else throw new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile(e,t,r,o,a){function s(){this.lengthKnown=!1,this.chunks=[]}if(s.prototype.get=function(m){if(m>this.length-1||m<0)return;let I=m%this.chunkSize,y=m/this.chunkSize|0;return this.getter(y)[I]},s.prototype.setDataGetter=function(m){this.getter=m},s.prototype.cacheLength=function(){let m=new XMLHttpRequest;if(m.open("HEAD",r,!1),m.send(null),!(m.status>=200&&m.status<300||m.status===304))throw new Error(`Couldn't load ${r}. Status: ${m.status}`);let I=Number(m.getResponseHeader("Content-length")),y,v=(y=m.getResponseHeader("Accept-Ranges"))&&y==="bytes",N=(y=m.getResponseHeader("Content-Encoding"))&&y==="gzip",H=1024*1024;v||(H=I);let R=function(k,$){if(k>$)throw new Error(`invalid range (${k}, ${$}) or no bytes requested!`);if($>I-1)throw new Error(`only ${I} bytes available! programmer error!`);let Y=new XMLHttpRequest;if(Y.open("GET",r,!1),I!==H&&Y.setRequestHeader("Range",`bytes=${k}-${$}`),typeof Uint8Array!="undefined"&&(Y.responseType="arraybuffer"),Y.overrideMimeType&&Y.overrideMimeType("text/plain; charset=x-user-defined"),Y.send(null),!(Y.status>=200&&Y.status<300||Y.status===304))throw new Error(`Couldn't load ${r}. Status: ${Y.status}`);return Y.response!==void 0?new Uint8Array(Y.response||[]):hi(Y.responseText||"",!0)},D=this;D.setDataGetter(k=>{let $=k*H,Y=(k+1)*H-1;if(Y=Math.min(Y,I-1),typeof D.chunks[k]=="undefined"&&(D.chunks[k]=R($,Y)),typeof D.chunks[k]=="undefined")throw new Error("doXHR failed!");return D.chunks[k]}),(N||!I)&&(H=I=1,I=this.getter(0).length,H=I,Pe("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=I,this._chunkSize=H,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!ze)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";let h=new s;Object.defineProperties(h,{length:{get(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var A={isDevice:!1,contents:h}}else var A={isDevice:!1,url:r};let c=l.createFile(e,t,A,o,a);A.contents?c.contents=A.contents:A.url&&(c.contents=null,c.url=A.url),Object.defineProperties(c,{usedBytes:{get(){return this.contents.length}}});let u={};return Object.keys(c.stream_ops).forEach(h=>{let m=c.stream_ops[h];u[h]=function(){return l.forceLoadFile(c),m.apply(null,arguments)}}),u.read=function(m,I,y,v,N){l.forceLoadFile(c);let{contents:H}=m.node;if(N>=H.length)return 0;let R=Math.min(H.length-N,v);if(z(R>=0),H.slice)for(var D=0;D<R;D++)I[y+D]=H[N+D];else for(var D=0;D<R;D++)I[y+D]=H.get(N+D);return R},c.stream_ops=u,c},createPreloadedFile(e,t,r,o,a,s,A,c,u,d){P.init();let h=t?Qe.resolve(me.join2(e,t)):e,m=Cr(`cp ${h}`);function I(y){function v(H){d&&d(),c||l.createDataFile(e,t,H,o,a,u),s&&s(),nr(m)}let N=!1;n.preloadPlugins.forEach(H=>{N||H.canHandle(h)&&(H.handle(y,h,v,()=>{A&&A(),nr(m)}),N=!0)}),N||v(y)}E(m),typeof r=="string"?ki(r,y=>{I(y)},A):I(r)},indexedDB(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME(){return`EM_FS_${window.location.pathname}`},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB(e,t,r){t=t||function(){},r=r||function(){};let o=l.indexedDB();try{var a=o.open(l.DB_NAME(),l.DB_VERSION)}catch(s){return r(s)}a.onupgradeneeded=function(){Pe("creating db"),a.result.createObjectStore(l.DB_STORE_NAME)},a.onsuccess=function(){let c=a.result.transaction([l.DB_STORE_NAME],"readwrite"),u=c.objectStore(l.DB_STORE_NAME),d=0,h=0,m=e.length;function I(){h==0?t():r()}e.forEach(y=>{let v=u.put(l.analyzePath(y).object.contents,y);v.onsuccess=function(){d++,d+h==m&&I()},v.onerror=function(){h++,d+h==m&&I()}}),c.onerror=r},a.onerror=r},loadFilesFromDB(e,t,r){t=t||function(){},r=r||function(){};let o=l.indexedDB();try{var a=o.open(l.DB_NAME(),l.DB_VERSION)}catch(s){return r(s)}a.onupgradeneeded=r,a.onsuccess=function(){let A=a.result;try{var c=A.transaction([l.DB_STORE_NAME],"readonly")}catch(y){r(y);return}let u=c.objectStore(l.DB_STORE_NAME),d=0,h=0,m=e.length;function I(){h==0?t():r()}e.forEach(y=>{let v=u.get(y);v.onsuccess=function(){l.analyzePath(y).exists&&l.unlink(y),l.createDataFile(me.dirname(y),me.basename(y),v.result,!0,!0,!0),d++,d+h==m&&I()},v.onerror=function(){h++,d+h==m&&I()}}),c.onerror=r},a.onerror=r},absolutePath(){p("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder(){p("FS.createFolder has been removed; use FS.mkdir instead")},createLink(){p("FS.createLink has been removed; use FS.symlink instead")},joinPath(){p("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc(){p("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath(){p("FS.standardizePath has been removed; use PATH.normalize instead")}},Se={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt(e,t,r){if(t[0]==="/")return t;let o;if(e===-100)o=l.cwd();else{let a=l.getStream(e);if(!a)throw new l.ErrnoError(8);o=a.path}if(t.length==0){if(!r)throw new l.ErrnoError(44);return o}return me.join2(o,t)},doStat(e,t,r){try{var o=e(t)}catch(a){if(a&&a.node&&me.normalize(t)!==me.normalize(l.getPath(a.node)))return-54;throw a}return b[r>>2]=o.dev,b[r+4>>2]=0,b[r+8>>2]=o.ino,b[r+12>>2]=o.mode,b[r+16>>2]=o.nlink,b[r+20>>2]=o.uid,b[r+24>>2]=o.gid,b[r+28>>2]=o.rdev,b[r+32>>2]=0,bt=[o.size>>>0,(Ce=o.size,+Math.abs(Ce)>=1?Ce>0?(Math.min(+Math.floor(Ce/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Ce-+(~~Ce>>>0))/4294967296)>>>0:0)],b[r+40>>2]=bt[0],b[r+44>>2]=bt[1],b[r+48>>2]=4096,b[r+52>>2]=o.blocks,b[r+56>>2]=o.atime.getTime()/1e3|0,b[r+60>>2]=0,b[r+64>>2]=o.mtime.getTime()/1e3|0,b[r+68>>2]=0,b[r+72>>2]=o.ctime.getTime()/1e3|0,b[r+76>>2]=0,bt=[o.ino>>>0,(Ce=o.ino,+Math.abs(Ce)>=1?Ce>0?(Math.min(+Math.floor(Ce/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Ce-+(~~Ce>>>0))/4294967296)>>>0:0)],b[r+80>>2]=bt[0],b[r+84>>2]=bt[1],0},doMsync(e,t,r,o,a){let s=Te.slice(e,e+r);l.msync(t,s,a,r,o)},doMkdir(e,t){return e=me.normalize(e),e[e.length-1]==="/"&&(e=e.substr(0,e.length-1)),l.mkdir(e,t,0),0},doMknod(e,t,r){switch(t&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return l.mknod(e,t,r),0},doReadlink(e,t,r){if(r<=0)return-28;let o=l.readlink(e),a=Math.min(r,wt(o)),s=De[t+a];return er(o,t,r+1),De[t+a]=s,a},doAccess(e,t){if(t&-8)return-28;let r;if(r=l.lookupPath(e,{follow:!0}).node,!r)return-44;let a="";return t&4&&(a+="r"),t&2&&(a+="w"),t&1&&(a+="x"),a&&l.nodePermissions(r,a)?-2:0},doDup(e,t,r){let o=l.getStream(r);return o&&l.close(o),l.open(e,t,0,r,r).fd},doReadv(e,t,r,o){let a=0;for(let s=0;s<r;s++){let A=b[t+s*8>>2],c=b[t+(s*8+4)>>2],u=l.read(e,De,A,c,o);if(u<0)return-1;if(a+=u,u<c)break}return a},doWritev(e,t,r,o){let a=0;for(let s=0;s<r;s++){let A=b[t+s*8>>2],c=b[t+(s*8+4)>>2],u=l.write(e,De,A,c,o);if(u<0)return-1;a+=u}return a},varargs:void 0,get(){return z(Se.varargs!=null),Se.varargs+=4,b[Se.varargs-4>>2]},getStr(e){return $e(e)},getStreamFromFD(e){let t=l.getStream(e);if(!t)throw new l.ErrnoError(8);return t},get64(e,t){return e>=0?z(t===0):z(t===-1),e}};function Ui(e,t,r){Se.varargs=r;try{let a=Se.getStreamFromFD(e);switch(t){case 0:{var o=Se.get();if(o<0)return-28;let s;return s=l.open(a.path,a.flags,0,o),s.fd}case 1:case 2:return 0;case 3:return a.flags;case 4:{var o=Se.get();return a.flags|=o,0}case 12:{var o=Se.get();let A=0;return T[o+A>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return _e(28),-1;default:return-28}}catch(a){return(typeof l=="undefined"||!(a instanceof l.ErrnoError))&&p(a),-a.errno}}function Ni(e,t,r){Se.varargs=r;try{let a=Se.getStreamFromFD(e);switch(t){case 21509:case 21505:return a.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return a.tty?0:-59;case 21519:{if(!a.tty)return-59;var o=Se.get();return b[o>>2]=0,0}case 21520:return a.tty?-28:-59;case 21531:{var o=Se.get();return l.ioctl(a,t,o)}case 21523:return a.tty?0:-59;case 21524:return a.tty?0:-59;default:p(`bad ioctl syscall ${t}`)}}catch(a){return(typeof l=="undefined"||!(a instanceof l.ErrnoError))&&p(a),-a.errno}}function xi(e,t,r,o,a,s){s<<=12;let A,c=!1;if(o&16&&e%65536!==0)return-28;if(o&32){if(A=ne(t),!A)return-48;c=!0}else{let u=l.getStream(a);if(!u)return-8;let d=l.mmap(u,e,t,s,r,o);A=d.ptr,c=d.allocated}return Se.mappings[A]={malloc:A,len:t,allocated:c,fd:a,prot:r,flags:o,offset:s},A}function ji(e,t,r,o,a,s){try{return xi(e,t,r,o,a,s)}catch(A){return(typeof l=="undefined"||!(A instanceof l.ErrnoError))&&p(A),-A.errno}}function Li(e,t,r){Se.varargs=r;try{let o=Se.getStr(e),a=r?Se.get():0;return l.open(o,t,a).fd}catch(o){return(typeof l=="undefined"||!(o instanceof l.ErrnoError))&&p(o),-o.errno}}function zn(e,t){try{return e=Se.getStr(e),Se.doStat(l.stat,e,t)}catch(r){return(typeof l=="undefined"||!(r instanceof l.ErrnoError))&&p(r),-r.errno}}let Hi=48,an=57;function or(e){if(e===void 0)return"_unknown";e=e.replace(/[^a-zA-Z0-9_]/g,"$");let t=e.charCodeAt(0);return t>=Hi&&t<=an?`_${e}`:e}function ar(e,t){return e=or(e),new Function("body",`return function ${e}() {
5
5
  "use strict"; return body.apply(this, arguments);
6
6
  };
7
- `)(t)}let Or=[],Pe=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function dA(){let e=0;for(let t=5;t<Pe.length;++t)Pe[t]!==void 0&&++e;return e}function EA(){for(let e=5;e<Pe.length;++e)if(Pe[e]!==void 0)return Pe[e];return null}function fA(){n.count_emval_handles=dA,n.get_first_emval=EA}function ir(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:{let t=Or.length?Or.pop():Pe.length;return Pe[t]={refcount:1,value:e},t}}}function or(e,t){let r=kt(t,function(A){this.name=t,this.message=A;let{stack:i}=new Error(A);i!==void 0&&(this.stack=`${this.toString()}
8
- ${i.replace(/^Error(:[^\n]*)?\n/,"")}`)});return r.prototype=Object.create(e.prototype),r.prototype.constructor=r,r.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},r}let tn;function IA(){let e=new Array(256);for(let t=0;t<256;++t)e[t]=String.fromCharCode(t);sr=e}var sr=void 0;function ue(e){let t="",r=e;for(;ce[r];)t+=sr[ce[r++]];return t}function CA(){return Object.keys(Ke).length}function pA(){let e=[];for(let t in Ke)Ke.hasOwnProperty(t)&&e.push(Ke[t]);return e}let xt=[];function Lt(){for(;xt.length;){let e=xt.pop();e.$$.deleteScheduled=!1,e.delete()}}let Gt;function BA(e){Gt=e,xt.length&&Gt&&Gt(Lt)}function hA(){n.getInheritedInstanceCount=CA,n.getLiveInheritedInstances=pA,n.flushPendingDeletes=Lt,n.setDelayFunction=BA}var Ke={};let bt;function J(e){throw new bt(e)}function Rr(e,t){for(t===void 0&&J("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function mA(e,t,r){t=Rr(e,t),Ke.hasOwnProperty(t)?J(`Tried to register registered instance: ${t}`):Ke[t]=r}function rn(e){return e||J(`Cannot use deleted val. handle = ${e}`),Pe[e].value}let ut={};function nn(e){let t=Aa(e),r=ue(t);return ot(t),r}function Me(e,t){let r=ut[e];return r===void 0&&J(`${t} has unknown type ${nn(e)}`),r}function QA(e,t){t=Rr(e,t),Ke.hasOwnProperty(t)?delete Ke[t]:J(`Tried to unregister unregistered instance: ${t}`)}function Tt(e){}let ar=!1;function Ve(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}function Sr(e){e.count.value-=1,e.count.value===0&&Ve(e)}function jt(e){return typeof FinalizationGroup=="undefined"?(jt=function(t){return t},e):(ar=new FinalizationGroup(t=>{for(let r=t.next();!r.done;r=t.next()){let A=r.value;A.ptr?Sr(A):console.warn(`object already deleted: ${A.ptr}`)}}),jt=function(t){return ar.register(t,t.$$,t.$$),t},Tt=function(t){ar.unregister(t.$$)},jt(e))}function cr(e,t,r){e=ue(e),t=Me(t,"wrapper"),r=rn(r);let A=[].slice,{registeredClass:i}=t,o=i.instancePrototype,{baseClass:s}=i,c=s.instancePrototype,d=i.baseClass.constructor,E=kt(e,function(){i.baseClass.pureVirtualFunctions.forEach(I=>{if(this[I]===c[I])throw new tn(`Pure virtual function ${I} must be implemented in JavaScript`)}),Object.defineProperty(this,"__parent",{value:o}),this.__construct.apply(this,A.call(arguments))});o.__construct=function(){this===o&&J("Pass correct 'this' to __construct");let B=d.implement.apply(void 0,[this].concat(A.call(arguments)));Tt(B);let{$$:h}=B;B.notifyOnDestruction(),h.preservePointerOnDelete=!0,Object.defineProperties(this,{$$:{value:h}}),jt(this),mA(i,h.ptr,this)},o.__destruct=function(){this===o&&J("Pass correct 'this' to __destruct"),Tt(this),QA(i,this.$$.ptr)},E.prototype=Object.create(o);for(let I in r)E.prototype[I]=r[I];return ir(E)}let Ht={};function u(e){for(;e.length;){let t=e.pop();e.pop()(t)}}function g(e){return this.fromWireType(oe[e>>2])}let f={},p={},w;function S(e){throw new w(e)}function P(e,t,r){e.forEach(c=>{p[c]=t});function A(c){let d=r(c);d.length!==e.length&&S("Mismatched type converter count");for(let E=0;E<e.length;++E)N(e[E],d[E])}let i=new Array(t.length),o=[],s=0;t.forEach((c,d)=>{ut.hasOwnProperty(c)?i[d]=ut[c]:(o.push(c),f.hasOwnProperty(c)||(f[c]=[]),f[c].push(()=>{i[d]=ut[c],++s,s===o.length&&A(i)}))}),o.length===0&&A(i)}function b(e){let t=Ht[e];delete Ht[e];let{rawConstructor:r}=t,{rawDestructor:A}=t,i=t.fields,o=i.map(s=>s.getterReturnType).concat(i.map(s=>s.setterArgumentType));P([e],o,s=>{let c={};return i.forEach((d,E)=>{let{fieldName:I}=d,B=s[E],{getter:h}=d,{getterContext:_}=d,O=s[E+i.length],{setter:x}=d,{setterContext:Y}=d;c[I]={read(Z){return B.fromWireType(h(_,Z))},write(Z,D){let v=[];x(Y,Z,O.toWireType(v,D)),u(v)}}}),[{name:t.name,fromWireType(d){let E={};for(let I in c)E[I]=c[I].read(d);return A(d),E},toWireType(d,E){for(var I in c)if(!(I in E))throw new TypeError(`Missing field: "${I}"`);let B=r();for(I in c)c[I].write(B,E[I]);return d!==null&&d.push(A,B),B},argPackAdvance:8,readValueFromPointer:g,destructorFunction:A}]})}function U(e,t,r,A,i){}function k(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${e}`)}}function N(e,t,r){if(r=r||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");let{name:A}=t;if(e||J(`type "${A}" must have a positive integer typeid pointer`),ut.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;J(`Cannot register type '${A}' twice`)}if(ut[e]=t,delete p[e],f.hasOwnProperty(e)){let i=f[e];delete f[e],i.forEach(o=>{o()})}}function ee(e,t,r,A,i){let o=k(r);t=ue(t),N(e,{name:t,fromWireType(s){return!!s},toWireType(s,c){return c?A:i},argPackAdvance:8,readValueFromPointer(s){let c;if(r===1)c=le;else if(r===2)c=st;else if(r===4)c=m;else throw new TypeError(`Unknown boolean type size: ${t}`);return this.fromWireType(c[s>>o])},destructorFunction:null})}function Ae(e){if(!(this instanceof je)||!(e instanceof je))return!1;let t=this.$$.ptrType.registeredClass,r=this.$$.ptr,A=e.$$.ptrType.registeredClass,i=e.$$.ptr;for(;t.baseClass;)r=t.upcast(r),t=t.baseClass;for(;A.baseClass;)i=A.upcast(i),A=A.baseClass;return t===A&&r===i}function ie(e){return{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}}function Ee(e){function t(r){return r.$$.ptrType.registeredClass.name}J(`${t(e)} instance already deleted`)}function Fe(){if(this.$$.ptr||Ee(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;let e=jt(Object.create(Object.getPrototypeOf(this),{$$:{value:ie(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function Oe(){this.$$.ptr||Ee(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&J("Object already scheduled for deletion"),Tt(this),Sr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function me(){return!this.$$.ptr}function dt(){return this.$$.ptr||Ee(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&J("Object already scheduled for deletion"),xt.push(this),xt.length===1&&Gt&&Gt(Lt),this.$$.deleteScheduled=!0,this}function Qe(){je.prototype.isAliasOf=Ae,je.prototype.clone=Fe,je.prototype.delete=Oe,je.prototype.isDeleted=me,je.prototype.deleteLater=dt}function je(){}let He={};function Ot(e,t,r){if(e[t].overloadTable===void 0){let A=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||J(`Function '${r}' called with an invalid number of arguments (${arguments.length}) - expects one of (${e[t].overloadTable})!`),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[A.argCount]=A}}function Pr(e,t,r){n.hasOwnProperty(e)?((r===void 0||n[e].overloadTable!==void 0&&n[e].overloadTable[r]!==void 0)&&J(`Cannot register public name '${e}' twice`),Ot(n,e,e),n.hasOwnProperty(r)&&J(`Cannot register multiple overloads of a function with the same number of arguments (${r})!`),n[e].overloadTable[r]=t):(n[e]=t,r!==void 0&&(n[e].numArguments=r))}function An(e,t,r,A,i,o,s,c){this.name=e,this.constructor=t,this.instancePrototype=r,this.rawDestructor=A,this.baseClass=i,this.getActualType=o,this.upcast=s,this.downcast=c,this.pureVirtualFunctions=[]}function Rt(e,t,r){for(;t!==r;)t.upcast||J(`Expected null or instance of ${r.name}, got an instance of ${t.name}`),e=t.upcast(e),t=t.baseClass;return e}function on(e,t){if(t===null)return this.isReference&&J(`null is not a valid ${this.name}`),0;t.$$||J(`Cannot pass "${gr(t)}" as a ${this.name}`),t.$$.ptr||J(`Cannot pass deleted object as a pointer of type ${this.name}`);let r=t.$$.ptrType.registeredClass;return Rt(t.$$.ptr,r,this.registeredClass)}function ui(e,t){let r;if(t===null)return this.isReference&&J(`null is not a valid ${this.name}`),this.isSmartPointer?(r=this.rawConstructor(),e!==null&&e.push(this.rawDestructor,r),r):0;t.$$||J(`Cannot pass "${gr(t)}" as a ${this.name}`),t.$$.ptr||J(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&t.$$.ptrType.isConst&&J(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);let A=t.$$.ptrType.registeredClass;if(r=Rt(t.$$.ptr,A,this.registeredClass),this.isSmartPointer)switch(t.$$.smartPtr===void 0&&J("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:J(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:r=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)r=t.$$.smartPtr;else{let i=t.clone();r=this.rawShare(r,ir(()=>{i.delete()})),e!==null&&e.push(this.rawDestructor,r)}break;default:J("Unsupporting sharing policy")}return r}function di(e,t){if(t===null)return this.isReference&&J(`null is not a valid ${this.name}`),0;t.$$||J(`Cannot pass "${gr(t)}" as a ${this.name}`),t.$$.ptr||J(`Cannot pass deleted object as a pointer of type ${this.name}`),t.$$.ptrType.isConst&&J(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);let r=t.$$.ptrType.registeredClass;return Rt(t.$$.ptr,r,this.registeredClass)}function Ei(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function fi(e){this.rawDestructor&&this.rawDestructor(e)}function Ii(e){e!==null&&e.delete()}function NA(e,t,r){if(t===r)return e;if(r.baseClass===void 0)return null;let A=NA(e,t,r.baseClass);return A===null?null:r.downcast(A)}function Ci(e,t){return t=Rr(e,t),Ke[t]}function sn(e,t){(!t.ptrType||!t.ptr)&&S("makeClassHandle requires ptr and ptrType");let r=!!t.smartPtrType,A=!!t.smartPtr;return r!==A&&S("Both smartPtrType and smartPtr must be specified"),t.count={value:1},jt(Object.create(e,{$$:{value:t}}))}function pi(e){let t=this.getPointee(e);if(!t)return this.destructor(e),null;let r=Ci(this.registeredClass,t);if(r!==void 0){if(r.$$.count.value===0)return r.$$.ptr=t,r.$$.smartPtr=e,r.clone();let d=r.clone();return this.destructor(e),d}function A(){return this.isSmartPointer?sn(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):sn(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}let i=this.registeredClass.getActualType(t),o=He[i];if(!o)return A.call(this);let s;this.isConst?s=o.constPointerType:s=o.pointerType;let c=NA(t,this.registeredClass,s.registeredClass);return c===null?A.call(this):this.isSmartPointer?sn(s.registeredClass.instancePrototype,{ptrType:s,ptr:c,smartPtrType:this,smartPtr:e}):sn(s.registeredClass.instancePrototype,{ptrType:s,ptr:c})}function Bi(){Et.prototype.getPointee=Ei,Et.prototype.destructor=fi,Et.prototype.argPackAdvance=8,Et.prototype.readValueFromPointer=g,Et.prototype.deleteObject=Ii,Et.prototype.fromWireType=pi}function Et(e,t,r,A,i,o,s,c,d,E,I){this.name=e,this.registeredClass=t,this.isReference=r,this.isConst=A,this.isSmartPointer=i,this.pointeeType=o,this.sharingPolicy=s,this.rawGetPointee=c,this.rawConstructor=d,this.rawShare=E,this.rawDestructor=I,!i&&t.baseClass===void 0?A?(this.toWireType=on,this.destructorFunction=null):(this.toWireType=di,this.destructorFunction=null):this.toWireType=ui}function UA(e,t,r){n.hasOwnProperty(e)||S("Replacing nonexistant public symbol"),n[e].overloadTable!==void 0&&r!==void 0?n[e].overloadTable[r]=t:(n[e]=t,n[e].argCount=r)}function hi(e,t,r){M(`dynCall_${e}`in n,`bad function pointer type - no table for sig '${e}'`),r&&r.length?M(r.length===e.substring(1).replace(/j/g,"--").length):M(e.length==1);let A=n[`dynCall_${e}`];return r&&r.length?A.apply(null,[t].concat(r)):A.call(null,t)}function mi(e,t,r){return e.includes("j")?hi(e,t,r):(M(F.get(t),`missing table entry in dynCall: ${t}`),F.get(t).apply(null,r))}function Qi(e,t){M(e.includes("j"),"getDynCaller should only be called with i64 sigs");let r=[];return function(){r.length=arguments.length;for(let A=0;A<arguments.length;A++)r[A]=arguments[A];return mi(e,t,r)}}function ve(e,t){e=ue(e);function r(){return e.includes("j")?Qi(e,t):F.get(t)}let A=r();return typeof A!="function"&&J(`unknown function pointer with signature ${e}: ${t}`),A}let kA;function Yt(e,t){let r=[],A={};function i(o){if(!A[o]&&!ut[o]){if(p[o]){p[o].forEach(i);return}r.push(o),A[o]=!0}}throw t.forEach(i),new kA(`${e}: ${r.map(nn).join([", "])}`)}function _i(e,t,r,A,i,o,s,c,d,E,I,B,h){I=ue(I),o=ve(i,o),c&&(c=ve(s,c)),E&&(E=ve(d,E)),h=ve(B,h);let _=Ar(I);Pr(_,()=>{Yt(`Cannot construct ${I} due to unbound types`,[A])}),P([e,t,r],A?[A]:[],O=>{O=O[0];let x,Y;A?(x=O.registeredClass,Y=x.instancePrototype):Y=je.prototype;let Z=kt(_,function(){if(Object.getPrototypeOf(this)!==D)throw new bt(`Use 'new' to construct ${I}`);if(v.constructor_body===void 0)throw new bt(`${I} has no accessible constructor`);let _e=v.constructor_body[arguments.length];if(_e===void 0)throw new bt(`Tried to invoke ctor of ${I} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(v.constructor_body).toString()}) parameters instead!`);return _e.apply(this,arguments)});var D=Object.create(Y,{constructor:{value:Z}});Z.prototype=D;var v=new An(I,Z,D,h,x,o,c,E);let re=new Et(I,v,!0,!1,!1),L=new Et(`${I}*`,v,!1,!1,!1),pe=new Et(`${I} const*`,v,!1,!0,!1);return He[e]={pointerType:L,constPointerType:pe},UA(_,Z),[re,L,pe]})}function xA(e,t){if(!(e instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof e} which is not a function`);let r=kt(e.name||"unknownFunctionName",()=>{});r.prototype=e.prototype;let A=new r,i=e.apply(A,t);return i instanceof Object?i:A}function an(e,t,r,A,i){let o=t.length;o<2&&J("argTypes array size mismatch! Must at least get return value and 'this' types!");let s=t[1]!==null&&r!==null,c=!1;for(var d=1;d<t.length;++d)if(t[d]!==null&&t[d].destructorFunction===void 0){c=!0;break}let E=t[0].name!=="void",I="",B="";for(var d=0;d<o-2;++d)I+=`${d!==0?", ":""}arg${d}`,B+=`${d!==0?", ":""}arg${d}Wired`;let h=`return function ${Ar(e)}(${I}) {
9
- if (arguments.length !== ${o-2}) {
10
- throwBindingError('function ${e} called with ' + arguments.length + ' arguments, expected ${o-2} args!');
7
+ `)(t)}let tt=[],dt=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function Gi(){let e=0;for(let t=5;t<dt.length;++t)dt[t]!==void 0&&++e;return e}function Yi(){for(let e=5;e<dt.length;++e)if(dt[e]!==void 0)return dt[e];return null}function sn(){n.count_emval_handles=Gi,n.get_first_emval=Yi}function sr(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:{let t=tt.length?tt.pop():dt.length;return dt[t]={refcount:1,value:e},t}}}function jr(e,t){let r=ar(t,function(o){this.name=t,this.message=o;let{stack:a}=new Error(o);a!==void 0&&(this.stack=`${this.toString()}
8
+ ${a.replace(/^Error(:[^\n]*)?\n/,"")}`)});return r.prototype=Object.create(e.prototype),r.prototype.constructor=r,r.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},r}let $n;function Kn(){let e=new Array(256);for(let t=0;t<256;++t)e[t]=String.fromCharCode(t);ke=e}var ke=void 0;function xe(e){let t="",r=e;for(;Te[r];)t+=ke[Te[r++]];return t}function Xi(){return Object.keys(rt).length}function Lr(){let e=[];for(let t in rt)rt.hasOwnProperty(t)&&e.push(rt[t]);return e}let Ar=[];function Mt(){for(;Ar.length;){let e=Ar.pop();e.$$.deleteScheduled=!1,e.delete()}}let Hr;function Wi(e){Hr=e,Ar.length&&Hr&&Hr(Mt)}function Ft(){n.getInheritedInstanceCount=Xi,n.getLiveInheritedInstances=Lr,n.flushPendingDeletes=Mt,n.setDelayFunction=Wi}var rt={};let ae;function Ae(e){throw new ae(e)}function vn(e,t){for(t===void 0&&Ae("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function Jn(e,t,r){t=vn(e,t),rt.hasOwnProperty(t)?Ae(`Tried to register registered instance: ${t}`):rt[t]=r}function Wt(e){return e||Ae(`Cannot use deleted val. handle = ${e}`),dt[e].value}let Vt={};function An(e){let t=ic(e),r=xe(t);return nt(t),r}function ft(e,t){let r=Vt[e];return r===void 0&&Ae(`${t} has unknown type ${An(e)}`),r}function cn(e,t){t=vn(e,t),rt.hasOwnProperty(t)?delete rt[t]:Ae(`Tried to unregister unregistered instance: ${t}`)}function zt(e){}let un=!1;function Tt(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}function $t(e){e.count.value-=1,e.count.value===0&&Tt(e)}function Gr(e){return typeof FinalizationGroup=="undefined"?(Gr=function(t){return t},e):(un=new FinalizationGroup(t=>{for(let r=t.next();!r.done;r=t.next()){let o=r.value;o.ptr?$t(o):console.warn(`object already deleted: ${o.ptr}`)}}),Gr=function(t){return un.register(t,t.$$,t.$$),t},zt=function(t){un.unregister(t.$$)},Gr(e))}function cr(e,t,r){e=xe(e),t=ft(t,"wrapper"),r=Wt(r);let o=[].slice,{registeredClass:a}=t,s=a.instancePrototype,{baseClass:A}=a,c=A.instancePrototype,u=a.baseClass.constructor,d=ar(e,function(){a.baseClass.pureVirtualFunctions.forEach(h=>{if(this[h]===c[h])throw new $n(`Pure virtual function ${h} must be implemented in JavaScript`)}),Object.defineProperty(this,"__parent",{value:s}),this.__construct.apply(this,o.call(arguments))});s.__construct=function(){this===s&&Ae("Pass correct 'this' to __construct");let m=u.implement.apply(void 0,[this].concat(o.call(arguments)));zt(m);let{$$:I}=m;m.notifyOnDestruction(),I.preservePointerOnDelete=!0,Object.defineProperties(this,{$$:{value:I}}),Gr(this),Jn(a,I.ptr,this)},s.__destruct=function(){this===s&&Ae("Pass correct 'this' to __destruct"),zt(this),cn(a,this.$$.ptr)},d.prototype=Object.create(s);for(let h in r)d.prototype[h]=r[h];return sr(d)}let ur={};function _(e){for(;e.length;){let t=e.pop();e.pop()(t)}}function g(e){return this.fromWireType(ve[e>>2])}let C={},B={},F;function L(e){throw new F(e)}function X(e,t,r){e.forEach(c=>{B[c]=t});function o(c){let u=r(c);u.length!==e.length&&L("Mismatched type converter count");for(let d=0;d<e.length;++d)J(e[d],u[d])}let a=new Array(t.length),s=[],A=0;t.forEach((c,u)=>{Vt.hasOwnProperty(c)?a[u]=Vt[c]:(s.push(c),C.hasOwnProperty(c)||(C[c]=[]),C[c].push(()=>{a[u]=Vt[c],++A,A===s.length&&o(a)}))}),s.length===0&&o(a)}function j(e){let t=ur[e];delete ur[e];let{rawConstructor:r}=t,{rawDestructor:o}=t,a=t.fields,s=a.map(A=>A.getterReturnType).concat(a.map(A=>A.setterArgumentType));X([e],s,A=>{let c={};return a.forEach((u,d)=>{let{fieldName:h}=u,m=A[d],{getter:I}=u,{getterContext:y}=u,v=A[d+a.length],{setter:N}=u,{setterContext:H}=u;c[h]={read(R){return m.fromWireType(I(y,R))},write(R,D){let k=[];N(H,R,v.toWireType(k,D)),_(k)}}}),[{name:t.name,fromWireType(u){let d={};for(let h in c)d[h]=c[h].read(u);return o(u),d},toWireType(u,d){for(var h in c)if(!(h in d))throw new TypeError(`Missing field: "${h}"`);let m=r();for(h in c)c[h].write(m,d[h]);return u!==null&&u.push(o,m),m},argPackAdvance:8,readValueFromPointer:g,destructorFunction:o}]})}function Z(e,t,r,o,a){}function q(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${e}`)}}function J(e,t,r){if(r=r||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");let{name:o}=t;if(e||Ae(`type "${o}" must have a positive integer typeid pointer`),Vt.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;Ae(`Cannot register type '${o}' twice`)}if(Vt[e]=t,delete B[e],C.hasOwnProperty(e)){let a=C[e];delete C[e],a.forEach(s=>{s()})}}function Ie(e,t,r,o,a){let s=q(r);t=xe(t),J(e,{name:t,fromWireType(A){return!!A},toWireType(A,c){return c?o:a},argPackAdvance:8,readValueFromPointer(A){let c;if(r===1)c=De;else if(r===2)c=T;else if(r===4)c=b;else throw new TypeError(`Unknown boolean type size: ${t}`);return this.fromWireType(c[A>>s])},destructorFunction:null})}function Oe(e){if(!(this instanceof Ct)||!(e instanceof Ct))return!1;let t=this.$$.ptrType.registeredClass,r=this.$$.ptr,o=e.$$.ptrType.registeredClass,a=e.$$.ptr;for(;t.baseClass;)r=t.upcast(r),t=t.baseClass;for(;o.baseClass;)a=o.upcast(a),o=o.baseClass;return t===o&&r===a}function we(e){return{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}}function Le(e){function t(r){return r.$$.ptrType.registeredClass.name}Ae(`${t(e)} instance already deleted`)}function gt(){if(this.$$.ptr||Le(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;let e=Gr(Object.create(Object.getPrototypeOf(this),{$$:{value:we(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function st(){this.$$.ptr||Le(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ae("Object already scheduled for deletion"),zt(this),$t(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Je(){return!this.$$.ptr}function lr(){return this.$$.ptr||Le(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ae("Object already scheduled for deletion"),Ar.push(this),Ar.length===1&&Hr&&Hr(Mt),this.$$.deleteScheduled=!0,this}function Ue(){Ct.prototype.isAliasOf=Oe,Ct.prototype.clone=gt,Ct.prototype.delete=st,Ct.prototype.isDeleted=Je,Ct.prototype.deleteLater=lr}function Ct(){}let Et={};function dr(e,t,r){if(e[t].overloadTable===void 0){let o=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||Ae(`Function '${r}' called with an invalid number of arguments (${arguments.length}) - expects one of (${e[t].overloadTable})!`),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[o.argCount]=o}}function Qn(e,t,r){n.hasOwnProperty(e)?((r===void 0||n[e].overloadTable!==void 0&&n[e].overloadTable[r]!==void 0)&&Ae(`Cannot register public name '${e}' twice`),dr(n,e,e),n.hasOwnProperty(r)&&Ae(`Cannot register multiple overloads of a function with the same number of arguments (${r})!`),n[e].overloadTable[r]=t):(n[e]=t,r!==void 0&&(n[e].numArguments=r))}function Yr(e,t,r,o,a,s,A,c){this.name=e,this.constructor=t,this.instancePrototype=r,this.rawDestructor=o,this.baseClass=a,this.getActualType=s,this.upcast=A,this.downcast=c,this.pureVirtualFunctions=[]}function Br(e,t,r){for(;t!==r;)t.upcast||Ae(`Expected null or instance of ${r.name}, got an instance of ${t.name}`),e=t.upcast(e),t=t.baseClass;return e}function Zn(e,t){if(t===null)return this.isReference&&Ae(`null is not a valid ${this.name}`),0;t.$$||Ae(`Cannot pass "${dn(t)}" as a ${this.name}`),t.$$.ptr||Ae(`Cannot pass deleted object as a pointer of type ${this.name}`);let r=t.$$.ptrType.registeredClass;return Br(t.$$.ptr,r,this.registeredClass)}function No(e,t){let r;if(t===null)return this.isReference&&Ae(`null is not a valid ${this.name}`),this.isSmartPointer?(r=this.rawConstructor(),e!==null&&e.push(this.rawDestructor,r),r):0;t.$$||Ae(`Cannot pass "${dn(t)}" as a ${this.name}`),t.$$.ptr||Ae(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&t.$$.ptrType.isConst&&Ae(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);let o=t.$$.ptrType.registeredClass;if(r=Br(t.$$.ptr,o,this.registeredClass),this.isSmartPointer)switch(t.$$.smartPtr===void 0&&Ae("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:Ae(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:r=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)r=t.$$.smartPtr;else{let a=t.clone();r=this.rawShare(r,sr(()=>{a.delete()})),e!==null&&e.push(this.rawDestructor,r)}break;default:Ae("Unsupporting sharing policy")}return r}function xo(e,t){if(t===null)return this.isReference&&Ae(`null is not a valid ${this.name}`),0;t.$$||Ae(`Cannot pass "${dn(t)}" as a ${this.name}`),t.$$.ptr||Ae(`Cannot pass deleted object as a pointer of type ${this.name}`),t.$$.ptrType.isConst&&Ae(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);let r=t.$$.ptrType.registeredClass;return Br(t.$$.ptr,r,this.registeredClass)}function jo(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function Lo(e){this.rawDestructor&&this.rawDestructor(e)}function Ao(e){e!==null&&e.delete()}function co(e,t,r){if(t===r)return e;if(r.baseClass===void 0)return null;let o=co(e,t,r.baseClass);return o===null?null:r.downcast(o)}function qn(e,t){return t=vn(e,t),rt[t]}function ei(e,t){(!t.ptrType||!t.ptr)&&L("makeClassHandle requires ptr and ptrType");let r=!!t.smartPtrType,o=!!t.smartPtr;return r!==o&&L("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Gr(Object.create(e,{$$:{value:t}}))}function Ho(e){let t=this.getPointee(e);if(!t)return this.destructor(e),null;let r=qn(this.registeredClass,t);if(r!==void 0){if(r.$$.count.value===0)return r.$$.ptr=t,r.$$.smartPtr=e,r.clone();let u=r.clone();return this.destructor(e),u}function o(){return this.isSmartPointer?ei(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):ei(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}let a=this.registeredClass.getActualType(t),s=Et[a];if(!s)return o.call(this);let A;this.isConst?A=s.constPointerType:A=s.pointerType;let c=co(t,this.registeredClass,A.registeredClass);return c===null?o.call(this):this.isSmartPointer?ei(A.registeredClass.instancePrototype,{ptrType:A,ptr:c,smartPtrType:this,smartPtr:e}):ei(A.registeredClass.instancePrototype,{ptrType:A,ptr:c})}function fr(){Kt.prototype.getPointee=jo,Kt.prototype.destructor=Lo,Kt.prototype.argPackAdvance=8,Kt.prototype.readValueFromPointer=g,Kt.prototype.deleteObject=Ao,Kt.prototype.fromWireType=Ho}function Kt(e,t,r,o,a,s,A,c,u,d,h){this.name=e,this.registeredClass=t,this.isReference=r,this.isConst=o,this.isSmartPointer=a,this.pointeeType=s,this.sharingPolicy=A,this.rawGetPointee=c,this.rawConstructor=u,this.rawShare=d,this.rawDestructor=h,!a&&t.baseClass===void 0?o?(this.toWireType=Zn,this.destructorFunction=null):(this.toWireType=xo,this.destructorFunction=null):this.toWireType=No}function uo(e,t,r){n.hasOwnProperty(e)||L("Replacing nonexistant public symbol"),n[e].overloadTable!==void 0&&r!==void 0?n[e].overloadTable[r]=t:(n[e]=t,n[e].argCount=r)}function Go(e,t,r){z(`dynCall_${e}`in n,`bad function pointer type - no table for sig '${e}'`),r&&r.length?z(r.length===e.substring(1).replace(/j/g,"--").length):z(e.length==1);let o=n[`dynCall_${e}`];return r&&r.length?o.apply(null,[t].concat(r)):o.call(null,t)}function Yo(e,t,r){return e.includes("j")?Go(e,t,r):(z(V.get(t),`missing table entry in dynCall: ${t}`),V.get(t).apply(null,r))}function pt(e,t){z(e.includes("j"),"getDynCaller should only be called with i64 sigs");let r=[];return function(){r.length=arguments.length;for(let o=0;o<arguments.length;o++)r[o]=arguments[o];return Yo(e,t,r)}}function At(e,t){e=xe(e);function r(){return e.includes("j")?pt(e,t):V.get(t)}let o=r();return typeof o!="function"&&Ae(`unknown function pointer with signature ${e}: ${t}`),o}let Tr;function Xr(e,t){let r=[],o={};function a(s){if(!o[s]&&!Vt[s]){if(B[s]){B[s].forEach(a);return}r.push(s),o[s]=!0}}throw t.forEach(a),new Tr(`${e}: ${r.map(An).join([", "])}`)}function lo(e,t,r,o,a,s,A,c,u,d,h,m,I){h=xe(h),s=At(a,s),c&&(c=At(A,c)),d&&(d=At(u,d)),I=At(m,I);let y=or(h);Qn(y,()=>{Xr(`Cannot construct ${h} due to unbound types`,[o])}),X([e,t,r],o?[o]:[],v=>{v=v[0];let N,H;o?(N=v.registeredClass,H=N.instancePrototype):H=Ct.prototype;let R=ar(y,function(){if(Object.getPrototypeOf(this)!==D)throw new ae(`Use 'new' to construct ${h}`);if(k.constructor_body===void 0)throw new ae(`${h} has no accessible constructor`);let Me=k.constructor_body[arguments.length];if(Me===void 0)throw new ae(`Tried to invoke ctor of ${h} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(k.constructor_body).toString()}) parameters instead!`);return Me.apply(this,arguments)});var D=Object.create(H,{constructor:{value:R}});R.prototype=D;var k=new Yr(h,R,D,I,N,s,c,d);let $=new Kt(h,k,!0,!1,!1),Y=new Kt(`${h}*`,k,!1,!1,!1),pe=new Kt(`${h} const*`,k,!1,!0,!1);return Et[e]={pointerType:Y,constPointerType:pe},uo(y,R),[$,Y,pe]})}function Pn(e,t){if(!(e instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof e} which is not a function`);let r=ar(e.name||"unknownFunctionName",()=>{});r.prototype=e.prototype;let o=new r,a=e.apply(o,t);return a instanceof Object?a:o}function Wr(e,t,r,o,a){let s=t.length;s<2&&Ae("argTypes array size mismatch! Must at least get return value and 'this' types!");let A=t[1]!==null&&r!==null,c=!1;for(var u=1;u<t.length;++u)if(t[u]!==null&&t[u].destructorFunction===void 0){c=!0;break}let d=t[0].name!=="void",h="",m="";for(var u=0;u<s-2;++u)h+=`${u!==0?", ":""}arg${u}`,m+=`${u!==0?", ":""}arg${u}Wired`;let I=`return function ${or(e)}(${h}) {
9
+ if (arguments.length !== ${s-2}) {
10
+ throwBindingError('function ${e} called with ' + arguments.length + ' arguments, expected ${s-2} args!');
11
11
  }
12
- `;c&&(h+=`var destructors = [];
13
- `);let _=c?"destructors":"null",O=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],x=[J,A,i,u,t[0],t[1]];s&&(h+=`var thisWired = classParam.toWireType(${_}, this);
14
- `);for(var d=0;d<o-2;++d)h+=`var arg${d}Wired = argType${d}.toWireType(${_}, arg${d}); // ${t[d+2].name}
15
- `,O.push(`argType${d}`),x.push(t[d+2]);if(s&&(B=`thisWired${B.length>0?", ":""}${B}`),h+=`${E?"var rv = ":""}invoker(fn${B.length>0?", ":""}${B});
16
- `,c)h+=`runDestructors(destructors);
17
- `;else for(var d=s?1:2;d<t.length;++d){let D=d===1?"thisWired":`arg${d-2}Wired`;t[d].destructorFunction!==null&&(h+=`${D}_dtor(${D}); // ${t[d].name}
18
- `,O.push(`${D}_dtor`),x.push(t[d].destructorFunction))}return E&&(h+=`var ret = retType.fromWireType(rv);
12
+ `;c&&(I+=`var destructors = [];
13
+ `);let y=c?"destructors":"null",v=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],N=[Ae,o,a,_,t[0],t[1]];A&&(I+=`var thisWired = classParam.toWireType(${y}, this);
14
+ `);for(var u=0;u<s-2;++u)I+=`var arg${u}Wired = argType${u}.toWireType(${y}, arg${u}); // ${t[u+2].name}
15
+ `,v.push(`argType${u}`),N.push(t[u+2]);if(A&&(m=`thisWired${m.length>0?", ":""}${m}`),I+=`${d?"var rv = ":""}invoker(fn${m.length>0?", ":""}${m});
16
+ `,c)I+=`runDestructors(destructors);
17
+ `;else for(var u=A?1:2;u<t.length;++u){let D=u===1?"thisWired":`arg${u-2}Wired`;t[u].destructorFunction!==null&&(I+=`${D}_dtor(${D}); // ${t[u].name}
18
+ `,v.push(`${D}_dtor`),N.push(t[u].destructorFunction))}return d&&(I+=`var ret = retType.fromWireType(rv);
19
19
  return ret;
20
- `),h+=`}
21
- `,O.push(h),xA(Function,O).apply(null,x)}function cn(e,t){let r=[];for(let A=0;A<e;A++)r.push(m[(t>>2)+A]);return r}function yi(e,t,r,A,i,o,s){let c=cn(r,A);t=ue(t),o=ve(i,o),P([],[e],d=>{d=d[0];let E=`${d.name}.${t}`;function I(){Yt(`Cannot call ${E} due to unbound types`,c)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]);let B=d.registeredClass.constructor;return B[t]===void 0?(I.argCount=r-1,B[t]=I):(Ot(B,t,E),B[t].overloadTable[r-1]=I),P([],c,h=>{let _=[h[0],null].concat(h.slice(1)),O=an(E,_,null,o,s);return B[t].overloadTable===void 0?(O.argCount=r-1,B[t]=O):B[t].overloadTable[r-1]=O,[]}),[]})}function Di(e,t,r,A,i,o){M(t>0);let s=cn(t,r);i=ve(A,i),P([],[e],c=>{c=c[0];let d=`constructor ${c.name}`;if(c.registeredClass.constructor_body===void 0&&(c.registeredClass.constructor_body=[]),c.registeredClass.constructor_body[t-1]!==void 0)throw new bt(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${c.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return c.registeredClass.constructor_body[t-1]=function(){Yt(`Cannot construct ${c.name} due to unbound types`,s)},P([],s,E=>(E.splice(1,0,null),c.registeredClass.constructor_body[t-1]=an(d,E,null,i,o),[])),[]})}function wi(e,t,r,A,i,o,s,c){let d=cn(r,A);t=ue(t),o=ve(i,o),P([],[e],E=>{E=E[0];let I=`${E.name}.${t}`;t.startsWith("@@")&&(t=Symbol[t.substring(2)]),c&&E.registeredClass.pureVirtualFunctions.push(t);function B(){Yt(`Cannot call ${I} due to unbound types`,d)}let h=E.registeredClass.instancePrototype,_=h[t];return _===void 0||_.overloadTable===void 0&&_.className!==E.name&&_.argCount===r-2?(B.argCount=r-2,B.className=E.name,h[t]=B):(Ot(h,t,I),h[t].overloadTable[r-2]=B),P([],d,O=>{let x=an(I,O,E,o,s);return h[t].overloadTable===void 0?(x.argCount=r-2,h[t]=x):h[t].overloadTable[r-2]=x,[]}),[]})}function LA(e,t,r){return e instanceof Object||J(`${r} with invalid "this": ${e}`),e instanceof t.registeredClass.constructor||J(`${r} incompatible with "this" of type ${e.constructor.name}`),e.$$.ptr||J(`cannot call emscripten binding method ${r} on deleted object`),Rt(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)}function bi(e,t,r,A,i,o,s,c,d,E){t=ue(t),i=ve(A,i),P([],[e],I=>{I=I[0];let B=`${I.name}.${t}`,h={get(){Yt(`Cannot access ${B} due to unbound types`,[r,s])},enumerable:!0,configurable:!0};return d?h.set=function(){Yt(`Cannot access ${B} due to unbound types`,[r,s])}:h.set=function(_){J(`${B} is a read-only property`)},Object.defineProperty(I.registeredClass.instancePrototype,t,h),P([],d?[r,s]:[r],_=>{let O=_[0],x={get(){let Y=LA(this,I,`${B} getter`);return O.fromWireType(i(o,Y))},enumerable:!0};if(d){d=ve(c,d);let Y=_[1];x.set=function(Z){let D=LA(this,I,`${B} setter`),v=[];d(E,D,Y.toWireType(v,Z)),u(v)}}return Object.defineProperty(I.registeredClass.instancePrototype,t,x),[]}),[]})}function GA(e){e>4&&--Pe[e].refcount===0&&(Pe[e]=void 0,Or.push(e))}function Ti(e,t){t=ue(t),N(e,{name:t,fromWireType(r){let A=Pe[r].value;return GA(r),A},toWireType(r,A){return ir(A)},argPackAdvance:8,readValueFromPointer:g,destructorFunction:null})}function gr(e){if(e===null)return"null";let t=typeof e;return t==="object"||t==="array"||t==="function"?e.toString():`${e}`}function Oi(e,t){switch(t){case 2:return function(r){return this.fromWireType(he[r>>2])};case 3:return function(r){return this.fromWireType(Cr[r>>3])};default:throw new TypeError(`Unknown float type: ${e}`)}}function Ri(e,t,r){let A=k(r);t=ue(t),N(e,{name:t,fromWireType(i){return i},toWireType(i,o){if(typeof o!="number"&&typeof o!="boolean")throw new TypeError(`Cannot convert "${gr(o)}" to ${this.name}`);return o},argPackAdvance:8,readValueFromPointer:Oi(t,A),destructorFunction:null})}function Si(e,t,r,A,i,o){let s=cn(t,r);e=ue(e),i=ve(A,i),Pr(e,()=>{Yt(`Cannot call ${e} due to unbound types`,s)},t-1),P([],s,c=>{let d=[c[0],null].concat(c.slice(1));return UA(e,an(e,d,null,i,o),t-1),[]})}function Pi(e,t,r){switch(t){case 0:return r?function(i){return le[i]}:function(i){return ce[i]};case 1:return r?function(i){return st[i>>1]}:function(i){return Ft[i>>1]};case 2:return r?function(i){return m[i>>2]}:function(i){return oe[i>>2]};default:throw new TypeError(`Unknown integer type: ${e}`)}}function Mi(e,t,r,A,i){t=ue(t),i===-1&&(i=4294967295);let o=k(r),s=function(d){return d};if(A===0){let d=32-8*r;s=function(E){return E<<d>>>d}}let c=t.includes("unsigned");N(e,{name:t,fromWireType:s,toWireType(d,E){if(typeof E!="number"&&typeof E!="boolean")throw new TypeError(`Cannot convert "${gr(E)}" to ${this.name}`);if(E<A||E>i)throw new TypeError(`Passing a number "${gr(E)}" from JS side to C/C++ side to an argument of type "${t}", which is outside the valid range [${A}, ${i}]!`);return c?E>>>0:E|0},argPackAdvance:8,readValueFromPointer:Pi(t,o,A!==0),destructorFunction:null})}function Fi(e,t,r){let i=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function o(s){s=s>>2;let c=oe,d=c[s],E=c[s+1];return new i(Mt,E,d)}r=ue(r),N(e,{name:r,fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})}function vi(e,t){t=ue(t);let r=t==="std::string";N(e,{name:t,fromWireType(A){let i=oe[A>>2],o;if(r){let c=A+4;for(var s=0;s<=i;++s){let d=A+4+s;if(s==i||ce[d]==0){let E=d-c,I=Re(c,E);o===void 0?o=I:(o+=String.fromCharCode(0),o+=I),c=d+1}}}else{let c=new Array(i);for(var s=0;s<i;++s)c[s]=String.fromCharCode(ce[A+4+s]);o=c.join("")}return ot(A),o},toWireType(A,i){i instanceof ArrayBuffer&&(i=new Uint8Array(i));let o,s=typeof i=="string";s||i instanceof Uint8Array||i instanceof Uint8ClampedArray||i instanceof Int8Array||J("Cannot pass non-string to std::string"),r&&s?o=function(){return Ge(i)}:o=function(){return i.length};let c=o(),d=Xt(4+c+1);if(oe[d>>2]=c,r&&s)Bt(i,d+4,c+1);else if(s)for(var E=0;E<c;++E){let I=i.charCodeAt(E);I>255&&(ot(d),J("String has UTF-16 code units that do not fit in 8 bits")),ce[d+4+E]=I}else for(var E=0;E<c;++E)ce[d+4+E]=i[E];return A!==null&&A.push(ot,d),d},argPackAdvance:8,readValueFromPointer:g,destructorFunction(A){ot(A)}})}function Ni(e,t,r){r=ue(r);let A,i,o,s,c;t===2?(A=Nn,i=fr,s=Gr,o=function(){return Ft},c=1):t===4&&(A=Un,i=kn,s=Vt,o=function(){return oe},c=2),N(e,{name:r,fromWireType(d){let E=oe[d>>2],I=o(),B,h=d+4;for(let _=0;_<=E;++_){let O=d+4+_*t;if(_==E||I[O>>c]==0){let x=O-h,Y=A(h,x);B===void 0?B=Y:(B+=String.fromCharCode(0),B+=Y),h=O+t}}return ot(d),B},toWireType(d,E){typeof E!="string"&&J(`Cannot pass non-string to C++ string type ${r}`);let I=s(E),B=Xt(4+I+t);return oe[B>>2]=I>>c,i(E,B+4,I+t),d!==null&&d.push(ot,B),B},argPackAdvance:8,readValueFromPointer:g,destructorFunction(d){ot(d)}})}function Ui(e,t,r,A,i,o){Ht[e]={name:ue(t),rawConstructor:ve(r,A),rawDestructor:ve(i,o),fields:[]}}function ki(e,t,r,A,i,o,s,c,d,E){Ht[e].fields.push({fieldName:ue(t),getterReturnType:r,getter:ve(A,i),getterContext:o,setterArgumentType:s,setter:ve(c,d),setterContext:E})}function xi(e,t){t=ue(t),N(e,{isVoid:!0,name:t,argPackAdvance:0,fromWireType(){},toWireType(r,A){}})}let Li={};function Gi(e){let t=Li[e];return t===void 0?ue(e):t}let _A=[];function ji(e,t,r,A){e=_A[e],t=rn(t),r=Gi(r),e(t,r,null,A)}function Hi(e){let t=_A.length;return _A.push(e),t}function Yi(e,t){let r=new Array(e);for(let A=0;A<e;++A)r[A]=Me(m[(t>>2)+A],`parameter ${A}`);return r}function Xi(e,t){let r=Yi(e,t),A=r[0],i=`${A.name}_$${r.slice(1).map(_=>_.name).join("_")}$`,o=["retType"],s=[A],c="";for(var d=0;d<e-1;++d)c+=`${d!==0?", ":""}arg${d}`,o.push(`argType${d}`),s.push(r[1+d]);let I=`return function ${Ar(`methodCaller_${i}`)}(handle, name, destructors, args) {
22
- `,B=0;for(var d=0;d<e-1;++d)I+=` var arg${d} = argType${d}.readValueFromPointer(args${B?`+${B}`:""});
23
- `,B+=r[d+1].argPackAdvance;I+=` var rv = handle[name](${c});
24
- `;for(var d=0;d<e-1;++d)r[d+1].deleteObject&&(I+=` argType${d}.deleteObject(arg${d});
25
- `);A.isVoid||(I+=` return retType.toWireType(destructors, rv);
26
- `),I+=`};
27
- `,o.push(I);let h=xA(Function,o).apply(null,s);return Hi(h)}function Wi(e){e>4&&(Pe[e].refcount+=1)}function Ji(e,t){e=Me(e,"_emval_take_value");let r=e.readValueFromPointer(t);return ir(r)}function Ki(){l()}let Vi=!0;function $i(e,t){let r;if(e===0)r=Date.now();else if((e===1||e===4)&&Vi)r=lt();else return br(28),-1;return m[t>>2]=r/1e3|0,m[t+4>>2]=r%1e3*1e3*1e3|0,0}function zi(e,t){l("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}function Zi(e,t){l("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}let gn=[];function qi(e,t){M(Array.isArray(gn)),M(t%16==0),gn.length=0;let r;for(t>>=2;r=ce[e++];){M(r===100||r===102||r===105);let A=r<105;A&&t&1&&t++,gn.push(A?Cr[t++>>1]:m[t]),++t}return gn}function eo(e,t,r){let A=qi(t,r);return Nt.hasOwnProperty(e)||l(`No EM_ASM constant found at address ${e}`),Nt[e].apply(null,A)}function to(){return 2147483648}function ro(e,t,r){ce.copyWithin(e,t,t+r)}function no(e){l("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")}function Ao(e){try{return Ct.grow(e-Mt.byteLength+65535>>>16),Hr(Ct.buffer),1}catch(t){z(`emscripten_realloc_buffer: Attempted to grow heap from ${Mt.byteLength} bytes to ${e} bytes, but got error: ${t}`)}}function io(e){let t=ce.length;e=e>>>0,M(e>t);let r=2147483648;if(e>r)return z(`Cannot enlarge memory, asked to go up to ${e} bytes, but the limit is ${r} bytes!`),!1;for(let i=1;i<=4;i*=2){let o=t*(1+.2/i);o=Math.min(o,e+100663296);var A=Math.min(r,Ln(Math.max(e,o),65536));if(Ao(A))return!0}return z(`Failed to grow the heap from ${t} bytes to ${A} bytes, not enough memory!`),!1}function ln(e){l("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}let lr={};function jA(e){e.forEach(t=>{let r=ln(t);r&&(lr[r]=t)})}function oo(){let e=new Error().stack.split(`
28
- `);return e[0]=="Error"&&e.shift(),jA(e),lr.last_addr=ln(e[2]),lr.last_stack=e,lr.last_addr}function so(e,t,r){let A;lr.last_addr==e?A=lr.last_stack:(A=new Error().stack.split(`
29
- `),A[0]=="Error"&&A.shift(),jA(A));let i=2;for(;A[i]&&ln(A[i])!=e;)++i;for(var o=0;o<r&&A[o+i];++o)m[t+o*4>>2]=ln(A[o+i]);return o}function ao(e){let t=lt();for(;lt()-t<e;);}function co(e){let t=e.getExtension("ANGLE_instanced_arrays");if(t)return e.vertexAttribDivisor=function(r,A){t.vertexAttribDivisorANGLE(r,A)},e.drawArraysInstanced=function(r,A,i,o){t.drawArraysInstancedANGLE(r,A,i,o)},e.drawElementsInstanced=function(r,A,i,o,s){t.drawElementsInstancedANGLE(r,A,i,o,s)},1}function go(e){let t=e.getExtension("OES_vertex_array_object");if(t)return e.createVertexArray=function(){return t.createVertexArrayOES()},e.deleteVertexArray=function(r){t.deleteVertexArrayOES(r)},e.bindVertexArray=function(r){t.bindVertexArrayOES(r)},e.isVertexArray=function(r){return t.isVertexArrayOES(r)},1}function lo(e){let t=e.getExtension("WEBGL_draw_buffers");if(t)return e.drawBuffers=function(r,A){t.drawBuffersWEBGL(r,A)},1}function uo(e){return!!(e.dibvbi=e.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function Eo(e){return!!(e.mdibvbi=e.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function fo(e){return!!(e.multiDrawWebgl=e.getExtension("WEBGL_multi_draw"))}var C={counter:1,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function(t){C.lastError||(C.lastError=t)},getNewId(e){let t=C.counter++;for(let r=e.length;r<t;r++)e[r]=null;return t},MAX_TEMP_BUFFER_SIZE:2097152,numTempVertexBuffersPerSize:64,log2ceilLookup(e){return 32-Math.clz32(e===0?0:e-1)},generateTempBuffers(e,t){let r=C.log2ceilLookup(C.MAX_TEMP_BUFFER_SIZE);t.tempVertexBufferCounters1=[],t.tempVertexBufferCounters2=[],t.tempVertexBufferCounters1.length=t.tempVertexBufferCounters2.length=r+1,t.tempVertexBuffers1=[],t.tempVertexBuffers2=[],t.tempVertexBuffers1.length=t.tempVertexBuffers2.length=r+1,t.tempIndexBuffers=[],t.tempIndexBuffers.length=r+1;for(var A=0;A<=r;++A){t.tempIndexBuffers[A]=null,t.tempVertexBufferCounters1[A]=t.tempVertexBufferCounters2[A]=0;let i=C.numTempVertexBuffersPerSize;t.tempVertexBuffers1[A]=[],t.tempVertexBuffers2[A]=[];let o=t.tempVertexBuffers1[A],s=t.tempVertexBuffers2[A];o.length=s.length=i;for(let c=0;c<i;++c)o[c]=s[c]=null}if(e){t.tempQuadIndexBuffer=y.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);let i=C.MAX_TEMP_BUFFER_SIZE>>1,o=new Uint16Array(i);var A=0;let c=0;for(;o[A++]=c,!(A>=i||(o[A++]=c+1,A>=i)||(o[A++]=c+2,A>=i)||(o[A++]=c,A>=i)||(o[A++]=c+2,A>=i)||(o[A++]=c+3,A>=i));)c+=4;t.GLctx.bufferData(34963,o,35044),t.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:function(t){let r=C.log2ceilLookup(t),A=C.currentContext.tempVertexBuffers1[r],i=C.currentContext.tempVertexBufferCounters1[r];C.currentContext.tempVertexBufferCounters1[r]=C.currentContext.tempVertexBufferCounters1[r]+1&C.numTempVertexBuffersPerSize-1;let o=A[i];if(o)return o;let s=y.getParameter(34964);return A[i]=y.createBuffer(),y.bindBuffer(34962,A[i]),y.bufferData(34962,1<<r,35048),y.bindBuffer(34962,s),A[i]},getTempIndexBuffer:function(t){let r=C.log2ceilLookup(t),A=C.currentContext.tempIndexBuffers[r];if(A)return A;let i=y.getParameter(34965);return C.currentContext.tempIndexBuffers[r]=y.createBuffer(),y.bindBuffer(34963,C.currentContext.tempIndexBuffers[r]),y.bufferData(34963,1<<r,35048),y.bindBuffer(34963,i),C.currentContext.tempIndexBuffers[r]},newRenderingFrameStarted:function(){if(!C.currentContext)return;let t=C.currentContext.tempVertexBuffers1;C.currentContext.tempVertexBuffers1=C.currentContext.tempVertexBuffers2,C.currentContext.tempVertexBuffers2=t,t=C.currentContext.tempVertexBufferCounters1,C.currentContext.tempVertexBufferCounters1=C.currentContext.tempVertexBufferCounters2,C.currentContext.tempVertexBufferCounters2=t;let r=C.log2ceilLookup(C.MAX_TEMP_BUFFER_SIZE);for(let A=0;A<=r;++A)C.currentContext.tempVertexBufferCounters1[A]=0},getSource(e,t,r,A){let i="";for(let o=0;o<t;++o){let s=A?m[A+o*4>>2]:-1;i+=Re(m[r+o*4>>2],s<0?void 0:s)}return i},calcBufLength:function(t,r,A,i){if(A>0)return i*A;let o=C.byteSizeByType[r-C.byteSizeByTypeRoot];return t*o*i},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(t){C.resetBufferBinding=!1;for(let r=0;r<C.currentContext.maxVertexAttribs;++r){let A=C.currentContext.clientBuffers[r];if(!A.clientside||!A.enabled)continue;C.resetBufferBinding=!0;let i=C.calcBufLength(A.size,A.type,A.stride,t),o=C.getTempVertexBuffer(i);y.bindBuffer(34962,o),y.bufferSubData(34962,0,ce.subarray(A.ptr,A.ptr+i)),A.vertexAttribPointerAdaptor.call(y,r,A.size,A.type,A.normalized,A.stride,0)}},postDrawHandleClientVertexAttribBindings:function(){C.resetBufferBinding&&y.bindBuffer(34962,C.buffers[y.currentArrayBufferBinding])},createContext(e,t){t.renderViaOffscreenBackBuffer&&(t.preserveDrawingBuffer=!0),e.getContextSafariWebGL2Fixed||(e.getContextSafariWebGL2Fixed=e.getContext,e.getContext=function(i,o){let s=e.getContextSafariWebGL2Fixed(i,o);return i=="webgl"==s instanceof WebGLRenderingContext?s:null});let r=t.majorVersion>1?e.getContext("webgl2",t):e.getContext("webgl",t);return r?C.registerContext(r,t):0},enableOffscreenFramebufferAttributes(e){e.renderViaOffscreenBackBuffer=!0,e.preserveDrawingBuffer=!0},createOffscreenFramebuffer(e){let t=e.GLctx,r=t.createFramebuffer();if(t.bindFramebuffer(36160,r),e.defaultFbo=r,e.defaultFboForbidBlitFramebuffer=!1,t.getContextAttributes().antialias)e.defaultFboForbidBlitFramebuffer=!0;else{let B=navigator.userAgent.toLowerCase().match(/firefox\/(\d\d)/);if(B!=null){let h=B[1];e.defaultFboForbidBlitFramebuffer=h<67}}e.defaultColorTarget=t.createTexture(),e.defaultDepthTarget=t.createRenderbuffer(),C.resizeOffscreenFramebuffer(e),t.bindTexture(3553,e.defaultColorTarget),t.texParameteri(3553,10241,9728),t.texParameteri(3553,10240,9728),t.texParameteri(3553,10242,33071),t.texParameteri(3553,10243,33071),t.texImage2D(3553,0,6408,t.canvas.width,t.canvas.height,0,6408,5121,null),t.framebufferTexture2D(36160,36064,3553,e.defaultColorTarget,0),t.bindTexture(3553,null);let A=t.createRenderbuffer();t.bindRenderbuffer(36161,e.defaultDepthTarget),t.renderbufferStorage(36161,33189,t.canvas.width,t.canvas.height),t.framebufferRenderbuffer(36160,36096,36161,e.defaultDepthTarget),t.bindRenderbuffer(36161,null);let i=[-1,-1,-1,1,1,-1,1,1],o=t.createBuffer();t.bindBuffer(34962,o),t.bufferData(34962,new Float32Array(i),35044),t.bindBuffer(34962,null),e.blitVB=o;let s="attribute vec2 pos;varying lowp vec2 tex;void main() { tex = pos * 0.5 + vec2(0.5,0.5); gl_Position = vec4(pos, 0.0, 1.0); }",c=t.createShader(35633);t.shaderSource(c,s),t.compileShader(c);let d="varying lowp vec2 tex;uniform sampler2D sampler;void main() { gl_FragColor = texture2D(sampler, tex); }",E=t.createShader(35632);t.shaderSource(E,d),t.compileShader(E);let I=t.createProgram();t.attachShader(I,c),t.attachShader(I,E),t.linkProgram(I),e.blitProgram=I,e.blitPosLoc=t.getAttribLocation(I,"pos"),t.useProgram(I),t.uniform1i(t.getUniformLocation(I,"sampler"),0),t.useProgram(null),e.defaultVao=void 0,t.createVertexArray&&(e.defaultVao=t.createVertexArray(),t.bindVertexArray(e.defaultVao),t.enableVertexAttribArray(e.blitPosLoc),t.bindVertexArray(null))},resizeOffscreenFramebuffer(e){let t=e.GLctx;if(e.defaultColorTarget){let r=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget),t.texImage2D(3553,0,6408,t.drawingBufferWidth,t.drawingBufferHeight,0,6408,5121,null),t.bindTexture(3553,r)}if(e.defaultDepthTarget){let r=t.getParameter(36007);t.bindRenderbuffer(36161,e.defaultDepthTarget),t.renderbufferStorage(36161,33189,t.drawingBufferWidth,t.drawingBufferHeight),t.bindRenderbuffer(36161,r)}},blitOffscreenFramebuffer(e){let t=e.GLctx,r=t.getParameter(3089);r&&t.disable(3089);let A=t.getParameter(36006);if(t.blitFramebuffer&&!e.defaultFboForbidBlitFramebuffer)t.bindFramebuffer(36008,e.defaultFbo),t.bindFramebuffer(36009,null),t.blitFramebuffer(0,0,t.canvas.width,t.canvas.height,0,0,t.canvas.width,t.canvas.height,16384,9728);else{let x=function(){t.vertexAttribPointer(e.blitPosLoc,2,5126,!1,0,0),t.drawArrays(5,0,4)};var s=x;t.bindFramebuffer(36160,null);let c=t.getParameter(35725);t.useProgram(e.blitProgram);let d=t.getParameter(34964);t.bindBuffer(34962,e.blitVB);let E=t.getParameter(34016);t.activeTexture(33984);let I=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget);let B=t.getParameter(3042);B&&t.disable(3042);let h=t.getParameter(2884);h&&t.disable(2884);let _=t.getParameter(2929);_&&t.disable(2929);let O=t.getParameter(2960);if(O&&t.disable(2960),e.defaultVao){let Y=t.getParameter(34229);t.bindVertexArray(e.defaultVao),x(),t.bindVertexArray(Y)}else{let Y={buffer:t.getVertexAttrib(e.blitPosLoc,34975),size:t.getVertexAttrib(e.blitPosLoc,34339),stride:t.getVertexAttrib(e.blitPosLoc,34340),type:t.getVertexAttrib(e.blitPosLoc,34341),normalized:t.getVertexAttrib(e.blitPosLoc,34922),pointer:t.getVertexAttribOffset(e.blitPosLoc,34373)},Z=t.getParameter(34921),D=[];for(var i=0;i<Z;++i){var o=t.getVertexAttrib(i,34338);let v=i==e.blitPosLoc;o&&!v&&t.disableVertexAttribArray(i),!o&&v&&t.enableVertexAttribArray(i),D[i]=o}x();for(var i=0;i<Z;++i){var o=D[i];let L=i==e.blitPosLoc;o&&!L&&t.enableVertexAttribArray(i),!o&&L&&t.disableVertexAttribArray(i)}t.bindBuffer(34962,Y.buffer),t.vertexAttribPointer(e.blitPosLoc,Y.size,Y.type,Y.normalized,Y.stride,Y.offset)}O&&t.enable(2960),_&&t.enable(2929),h&&t.enable(2884),B&&t.enable(3042),t.bindTexture(3553,I),t.activeTexture(E),t.bindBuffer(34962,d),t.useProgram(c)}t.bindFramebuffer(36160,A),r&&t.enable(3089)},registerContext(e,t){let r=C.getNewId(C.contexts),A={handle:r,attributes:t,version:t.majorVersion,GLctx:e};e.canvas&&(e.canvas.GLctxObject=A),C.contexts[r]=A,(typeof t.enableExtensionsByDefault=="undefined"||t.enableExtensionsByDefault)&&C.initExtensions(A),A.maxVertexAttribs=A.GLctx.getParameter(34921),A.clientBuffers=[];for(let i=0;i<A.maxVertexAttribs;i++)A.clientBuffers[i]={enabled:!1,clientside:!1,size:0,type:0,normalized:0,stride:0,ptr:0,vertexAttribPointerAdaptor:null};return C.generateTempBuffers(!1,A),t.renderViaOffscreenBackBuffer&&C.createOffscreenFramebuffer(A),r},makeContextCurrent(e){return C.currentContext=C.contexts[e],n.ctx=y=C.currentContext&&C.currentContext.GLctx,!(e&&!y)},getContext(e){return C.contexts[e]},deleteContext(e){C.currentContext===C.contexts[e]&&(C.currentContext=null),typeof V=="object"&&V.removeAllHandlersOnTarget(C.contexts[e].GLctx.canvas),C.contexts[e]&&C.contexts[e].GLctx.canvas&&(C.contexts[e].GLctx.canvas.GLctxObject=void 0),C.contexts[e]=null},initExtensions(e){if(e||(e=C.currentContext),e.initExtensionsDone)return;e.initExtensionsDone=!0;let{GLctx:t}=e;co(t),go(t),lo(t),uo(t),Eo(t),e.version>=2&&(t.disjointTimerQueryExt=t.getExtension("EXT_disjoint_timer_query_webgl2")),(e.version<2||!t.disjointTimerQueryExt)&&(t.disjointTimerQueryExt=t.getExtension("EXT_disjoint_timer_query")),fo(t),(t.getSupportedExtensions()||[]).forEach(A=>{!A.includes("lose_context")&&!A.includes("debug")&&t.getExtension(A)})}},V={inEventHandler:0,removeAllEventListeners(){for(let e=V.eventHandlers.length-1;e>=0;--e)V._removeHandler(e);V.eventHandlers=[],V.deferredCalls=[]},registerRemoveEventListeners(){V.removeEventListenersRegistered||($.push(V.removeAllEventListeners),V.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall(e,t,r){function A(i,o){if(i.length!=o.length)return!1;for(let s in i)if(i[s]!=o[s])return!1;return!0}for(let i in V.deferredCalls){let o=V.deferredCalls[i];if(o.targetFunction==e&&A(o.argsList,r))return}V.deferredCalls.push({targetFunction:e,precedence:t,argsList:r}),V.deferredCalls.sort((i,o)=>i.precedence<o.precedence)},removeDeferredCalls(e){for(let t=0;t<V.deferredCalls.length;++t)V.deferredCalls[t].targetFunction==e&&(V.deferredCalls.splice(t,1),--t)},canPerformEventHandlerRequests(){return V.inEventHandler&&V.currentEventHandler.allowsDeferredCalls},runDeferredCalls(){if(V.canPerformEventHandlerRequests())for(let e=0;e<V.deferredCalls.length;++e){let t=V.deferredCalls[e];V.deferredCalls.splice(e,1),--e,t.targetFunction.apply(null,t.argsList)}},eventHandlers:[],removeAllHandlersOnTarget(e,t){for(let r=0;r<V.eventHandlers.length;++r)V.eventHandlers[r].target==e&&(!t||t==V.eventHandlers[r].eventTypeString)&&V._removeHandler(r--)},_removeHandler(e){let t=V.eventHandlers[e];t.target.removeEventListener(t.eventTypeString,t.eventListenerFunc,t.useCapture),V.eventHandlers.splice(e,1)},registerOrRemoveHandler(e){let t=function(A){++V.inEventHandler,V.currentEventHandler=e,V.runDeferredCalls(),e.handlerFunc(A),V.runDeferredCalls(),--V.inEventHandler};if(e.callbackfunc)e.eventListenerFunc=t,e.target.addEventListener(e.eventTypeString,t,e.useCapture),V.eventHandlers.push(e),V.registerRemoveEventListeners();else for(let r=0;r<V.eventHandlers.length;++r)V.eventHandlers[r].target==e.target&&V.eventHandlers[r].eventTypeString==e.eventTypeString&&V._removeHandler(r--)},getNodeNameForTarget(e){return e?e==window?"#window":e==screen?"#screen":e&&e.nodeName?e.nodeName:"":""},fullscreenEnabled(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};let HA=["default","low-power","high-performance"],Io=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function Co(e){Te("Rules for selecting event targets in HTML5 API are changing: instead of using document.getElementById() that only can refer to elements by their DOM ID, new event target selection mechanism uses the more flexible function document.querySelector() that can look up element names, classes, and complex CSS selectors. Build with -s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1 to change to the new lookup rules. See https://github.com/emscripten-core/emscripten/pull/7977 for more details.");try{return!e||(typeof e=="number"&&(e=Io[e]||Re(e)),e==="#window")?window:e==="#document"?document:e==="#screen"?screen:e==="#canvas"?n.canvas:typeof e=="string"?document.getElementById(e):e}catch(t){return null}}function yA(e){return typeof e=="number"&&(e=Re(e)),!e||e==="#canvas"?typeof C!="undefined"&&C.offscreenCanvases.canvas?C.offscreenCanvases.canvas:n.canvas:typeof C!="undefined"&&C.offscreenCanvases[e]?C.offscreenCanvases[e]:Co(e)}function po(e,t){M(t);let r=t>>2,A=m[r+6],i={alpha:!!m[r+0],depth:!!m[r+1],stencil:!!m[r+2],antialias:!!m[r+3],premultipliedAlpha:!!m[r+4],preserveDrawingBuffer:!!m[r+5],powerPreference:HA[A],failIfMajorPerformanceCaveat:!!m[r+7],majorVersion:m[r+8],minorVersion:m[r+9],enableExtensionsByDefault:m[r+10],explicitSwapControl:m[r+11],proxyContextToMainThread:m[r+12],renderViaOffscreenBackBuffer:m[r+13]},o=yA(e);if(!o)return 0;if(o.offscreenCanvas&&(o=o.offscreenCanvas),i.explicitSwapControl&&(o.transferControlToOffscreen||typeof OffscreenCanvas!="undefined"&&o instanceof OffscreenCanvas||i.renderViaOffscreenBackBuffer||(i.renderViaOffscreenBackBuffer=!0),o.transferControlToOffscreen)){if(!o.controlTransferredOffscreen)C.offscreenCanvases[o.id]={canvas:o.transferControlToOffscreen(),canvasSharedPtr:Xt(12),id:o.id},o.controlTransferredOffscreen=!0;else if(!C.offscreenCanvases[o.id])return 0;o=C.offscreenCanvases[o.id]}return C.createContext(o,i)}function Bo(e,t){return po(e,t)}function ho(){return C.currentContext?C.currentContext.handle:0}function YA(){return ho()}n._emscripten_webgl_get_current_context=YA;function XA(e){return C.makeContextCurrent(e)?0:-5}n._emscripten_webgl_make_context_current=XA;function mo(e){C.currentContext==e&&(C.currentContext=0),C.deleteContext(e)}function Qo(e,t){if(!t)return-5;if(e=C.contexts[e],!e)return-3;let r=e.GLctx;if(!r)return-3;r=r.getContextAttributes(),m[t>>2]=r.alpha,m[t+4>>2]=r.depth,m[t+8>>2]=r.stencil,m[t+12>>2]=r.antialias,m[t+16>>2]=r.premultipliedAlpha,m[t+20>>2]=r.preserveDrawingBuffer;let A=r.powerPreference&&HA.indexOf(r.powerPreference);return m[t+24>>2]=A,m[t+28>>2]=r.failIfMajorPerformanceCaveat,m[t+32>>2]=e.version,m[t+36>>2]=0,m[t+40>>2]=e.attributes.enableExtensionsByDefault,0}function _o(e){M(e);let t=e>>2;for(let r=0;r<14;++r)m[t+r]=0;m[t+0]=m[t+1]=m[t+3]=m[t+4]=m[t+8]=m[t+10]=1}let DA={};function yo(){return Ne||"./this.program"}function Mr(){if(!Mr.strings){let r={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:`${(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")}.UTF-8`,_:yo()};for(var e in DA)DA[e]===void 0?delete r[e]:r[e]=DA[e];let A=[];for(var e in r)A.push(`${e}=${r[e]}`);Mr.strings=A}return Mr.strings}function Do(e,t){let r=0;return Mr().forEach((A,i)=>{let o=t+r;m[e+i*4>>2]=o,xn(A,o),r+=A.length+1}),0}function wo(e,t){let r=Mr();m[e>>2]=r.length;let A=0;return r.forEach(i=>{A+=i.length+1}),m[t>>2]=A,0}function bo(e){try{let t=se.getStreamFromFD(e);return a.close(t),0}catch(t){return(typeof a=="undefined"||!(t instanceof a.ErrnoError))&&l(t),t.errno}}function To(e,t,r,A){try{let i=se.getStreamFromFD(e),o=se.doReadv(i,t,r);return m[A>>2]=o,0}catch(i){return(typeof a=="undefined"||!(i instanceof a.ErrnoError))&&l(i),i.errno}}function Oo(e,t,r,A,i){try{let o=se.getStreamFromFD(e),c=r*4294967296+(t>>>0),d=9007199254740992;return c<=-d||c>=d?-61:(a.llseek(o,c,A),We=[o.position>>>0,(ge=o.position,+Math.abs(ge)>=1?ge>0?(Math.min(+Math.floor(ge/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ge-+(~~ge>>>0))/4294967296)>>>0:0)],m[i>>2]=We[0],m[i+4>>2]=We[1],o.getdents&&c===0&&A===0&&(o.getdents=null),0)}catch(o){return(typeof a=="undefined"||!(o instanceof a.ErrnoError))&&l(o),o.errno}}function Ro(e,t,r,A){try{let i=se.getStreamFromFD(e),o=se.doWritev(i,t,r);return m[A>>2]=o,0}catch(i){return(typeof a=="undefined"||!(i instanceof a.ErrnoError))&&l(i),i.errno}}function So(){return kr()}function un(e,t){un.randomDevice||(un.randomDevice=nr());for(let r=0;r<t;r++)le[e+r>>0]=un.randomDevice();return 0}function Po(e){y.activeTexture(e)}function Mo(e,t){y.attachShader(C.programs[e],C.shaders[t])}function Fo(e,t,r){y.bindAttribLocation(C.programs[e],t,Re(r))}function vo(e,t){e==34962?y.currentArrayBufferBinding=t:e==34963&&(y.currentElementArrayBufferBinding=t),e==35051?y.currentPixelPackBufferBinding=t:e==35052&&(y.currentPixelUnpackBufferBinding=t),y.bindBuffer(e,C.buffers[t])}function No(e,t,r){y.bindBufferBase(e,t,C.buffers[r])}function Uo(e,t){y.bindFramebuffer(e,t?C.framebuffers[t]:C.currentContext.defaultFbo)}function ko(e,t){y.bindTexture(e,C.textures[t])}function xo(e){y.bindVertexArray(C.vaos[e]);let t=y.getParameter(34965);y.currentElementArrayBufferBinding=t?t.name|0:0}function Lo(e,t,r,A){C.currentContext.version>=2?r?y.bufferData(e,ce,A,r,t):y.bufferData(e,t,A):y.bufferData(e,r?ce.subarray(r,r+t):t,A)}function Go(e,t){return M(t===(t|0)),(e>>>0)+t*4294967296}function jo(e,t,r,A){return y.clientWaitSync(C.syncs[e],t,Go(r,A))}function Ho(e){y.compileShader(C.shaders[e])}function Yo(){let e=C.getNewId(C.programs),t=y.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,C.programs[e]=t,e}function Xo(e){let t=C.getNewId(C.shaders);return C.shaders[t]=y.createShader(e),t}function Wo(e,t){for(let r=0;r<e;r++){let A=m[t+r*4>>2],i=C.buffers[A];i&&(y.deleteBuffer(i),i.name=0,C.buffers[A]=null,A==y.currentArrayBufferBinding&&(y.currentArrayBufferBinding=0),A==y.currentElementArrayBufferBinding&&(y.currentElementArrayBufferBinding=0),A==y.currentPixelPackBufferBinding&&(y.currentPixelPackBufferBinding=0),A==y.currentPixelUnpackBufferBinding&&(y.currentPixelUnpackBufferBinding=0))}}function Jo(e,t){for(let r=0;r<e;++r){let A=m[t+r*4>>2],i=C.framebuffers[A];i&&(y.deleteFramebuffer(i),i.name=0,C.framebuffers[A]=null)}}function Ko(e){if(!e)return;let t=C.programs[e];if(!t){C.recordError(1281);return}y.deleteProgram(t),t.name=0,C.programs[e]=null}function Vo(e){if(!e)return;let t=C.shaders[e];if(!t){C.recordError(1281);return}y.deleteShader(t),C.shaders[e]=null}function $o(e){if(!e)return;let t=C.syncs[e];if(!t){C.recordError(1281);return}y.deleteSync(t),t.name=0,C.syncs[e]=null}function zo(e,t){for(let r=0;r<e;r++){let A=m[t+r*4>>2],i=C.textures[A];i&&(y.deleteTexture(i),i.name=0,C.textures[A]=null)}}function Zo(e,t){for(let r=0;r<e;r++){let A=m[t+r*4>>2];y.deleteVertexArray(C.vaos[A]),C.vaos[A]=null}}function qo(e){y.disable(e)}function es(e){let t=C.currentContext.clientBuffers[e];t.enabled=!1,y.disableVertexAttribArray(e)}function ts(e,t,r){C.preDrawHandleClientVertexAttribBindings(t+r),y.drawArrays(e,t,r),C.postDrawHandleClientVertexAttribBindings()}let WA=[];function rs(e,t){let r=WA[e];for(let A=0;A<e;A++)r[A]=m[t+A*4>>2];y.drawBuffers(r)}function ns(e){let t=C.currentContext.clientBuffers[e];t.enabled=!0,y.enableVertexAttribArray(e)}function As(e,t){let r=y.fenceSync(e,t);if(r){let A=C.getNewId(C.syncs);return r.name=A,C.syncs[A]=r,A}return 0}function is(){y.finish()}function os(){y.flush()}function ss(e,t,r,A,i){y.framebufferTexture2D(e,t,r,C.textures[A],i)}function as(e,t,r,A,i){y.framebufferTextureLayer(e,t,C.textures[r],A,i)}function dn(e,t,r,A){for(let i=0;i<e;i++){let o=y[r](),s=o&&C.getNewId(A);o?(o.name=s,A[s]=o):C.recordError(1282),m[t+i*4>>2]=s}}function cs(e,t){dn(e,t,"createBuffer",C.buffers)}function gs(e,t){dn(e,t,"createFramebuffer",C.framebuffers)}function ls(e,t){dn(e,t,"createTexture",C.textures)}function us(e,t){dn(e,t,"createVertexArray",C.vaos)}function ds(e,t){return y.getAttribLocation(C.programs[e],Re(t))}function Es(){let e=y.getError()||C.lastError;return C.lastError=0,e}function fs(e){return oe[e>>2]+m[e+4>>2]*4294967296}function Is(e){return oe[e>>2]+oe[e+4>>2]*4294967296}function Cs(e,t){oe[e>>2]=t,oe[e+4>>2]=(t-oe[e>>2])/4294967296;let r=t>=0?Is(e):fs(e);r!=t&&Te(`writeI53ToI64() out of range: serialized JS Number ${t} to Wasm heap as bytes lo=0x${oe[e>>2].toString(16)}, hi=0x${oe[e+4>>2].toString(16)}, which deserializes back to ${r} instead!`)}function ps(e,t,r){if(!t){C.recordError(1281);return}let A;switch(e){case 36346:A=1;break;case 36344:r!=0&&r!=1&&C.recordError(1280);return;case 34814:case 36345:A=0;break;case 34466:var i=y.getParameter(34467);A=i?i.length:0;break;case 33309:if(C.currentContext.version<2){C.recordError(1282);return}var o=y.getSupportedExtensions()||[];A=2*o.length;break;case 33307:case 33308:if(C.currentContext.version<2){C.recordError(1280);return}A=e==33307?3:0;break}if(A===void 0){let s=y.getParameter(e);switch(typeof s){case"number":A=s;break;case"boolean":A=s?1:0;break;case"string":C.recordError(1280);return;case"object":if(s===null)switch(e){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:{A=0;break}default:{C.recordError(1280);return}}else if(s instanceof Float32Array||s instanceof Uint32Array||s instanceof Int32Array||s instanceof Array){for(let c=0;c<s.length;++c)switch(r){case 0:m[t+c*4>>2]=s[c];break;case 2:he[t+c*4>>2]=s[c];break;case 4:le[t+c>>0]=s[c]?1:0;break}return}else try{A=s.name|0}catch(c){C.recordError(1280),z(`GL_INVALID_ENUM in glGet${r}v: Unknown object returned from WebGL getParameter(${e})! (error: ${c})`);return}break;default:C.recordError(1280),z(`GL_INVALID_ENUM in glGet${r}v: Native code calling glGet${r}v(${e}) and it returns ${s} of type ${typeof s}!`);return}}switch(r){case 1:Cs(t,A);break;case 0:m[t>>2]=A;break;case 2:he[t>>2]=A;break;case 4:le[t>>0]=A?1:0;break}}function Bs(e,t){ps(e,t,0)}function En(e){let t=Ge(e)+1,r=Xt(t);return Bt(e,r,t),r}function hs(e){let t=C.stringCache[e];if(!t){switch(e){case 7939:var r=y.getSupportedExtensions()||[];r=r.concat(r.map(d=>`GL_${d}`)),t=En(r.join(" "));break;case 7936:case 7937:case 37445:case 37446:var A=y.getParameter(e);A||C.recordError(1280),t=A&&En(A);break;case 7938:var i=y.getParameter(7938);C.currentContext.version>=2?i=`OpenGL ES 3.0 (${i})`:i=`OpenGL ES 2.0 (${i})`,t=En(i);break;case 35724:var o=y.getParameter(35724),s=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/,c=o.match(s);c!==null&&(c[1].length==3&&(c[1]=`${c[1]}0`),o=`OpenGL ES GLSL ES ${c[1]} (${o})`),t=En(o);break;default:C.recordError(1280)}C.stringCache[e]=t}return t}function ms(e,t){return y.getUniformBlockIndex(C.programs[e],Re(t))}function Qs(e){return parseInt(e)}function JA(e){return e.slice(-1)=="]"&&e.lastIndexOf("[")}function _s(e){let{uniformLocsById:t}=e,{uniformSizeAndIdsByName:r}=e,A,i;if(!t)for(e.uniformLocsById=t={},e.uniformArrayNamesById={},A=0;A<y.getProgramParameter(e,35718);++A){let o=y.getActiveUniform(e,A),s=o.name,c=o.size,d=JA(s),E=d>0?s.slice(0,d):s,I=e.uniformIdCounter;for(e.uniformIdCounter+=c,r[E]=[c,I],i=0;i<c;++i)t[I]=i,e.uniformArrayNamesById[I++]=E}}function ys(e,t){if(t=Re(t),e=C.programs[e]){_s(e);let{uniformLocsById:r}=e,A=0,i=t,o=JA(t);o>0&&(A=Qs(t.slice(o+1))>>>0,i=t.slice(0,o));let s=e.uniformSizeAndIdsByName[i];if(s&&A<s[0]&&(A+=s[1],r[A]=r[A]||y.getUniformLocation(e,t)))return A}else C.recordError(1281);return-1}function Ds(e){e=C.programs[e],y.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}}function ws(e,t){e==3317&&(C.unpackAlignment=t),y.pixelStorei(e,t)}function bs(e,t,r,A){function i(c,d){return c+d-1&-d}let o=e*r,s=i(o,A);return t*s}function Ts(e){return{5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[e-6402]||1}function Fr(e){return e-=5120,e==0?le:e==1?ce:e==2?st:e==4?m:e==6?he:e==5||e==28922||e==28520||e==30779||e==30782?oe:Ft}function vr(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function wA(e,t,r,A,i,o){let s=Fr(e),c=vr(s),d=1<<c,E=Ts(t)*d,I=bs(r,A,E,C.unpackAlignment);return s.subarray(i>>c,i+I>>c)}function Os(e,t,r,A,i,o,s){if(C.currentContext.version>=2){if(y.currentPixelPackBufferBinding)y.readPixels(e,t,r,A,i,o,s);else{let d=Fr(o);y.readPixels(e,t,r,A,i,o,d,s>>vr(d))}return}let c=wA(o,i,r,A,s,i);if(!c){C.recordError(1280);return}y.readPixels(e,t,r,A,i,o,c)}function Rs(e,t,r,A){let i=C.getSource(e,t,r,A);y.shaderSource(C.shaders[e],i)}function Ss(e,t,r,A,i,o,s,c,d){if(C.currentContext.version>=2){if(y.currentPixelUnpackBufferBinding)y.texImage2D(e,t,r,A,i,o,s,c,d);else if(d){let E=Fr(c);y.texImage2D(e,t,r,A,i,o,s,c,E,d>>vr(E))}else y.texImage2D(e,t,r,A,i,o,s,c,null);return}y.texImage2D(e,t,r,A,i,o,s,c,d?wA(c,s,A,i,d,r):null)}function Ps(e,t,r){let A=he[r>>2];y.texParameterf(e,t,A)}function Ms(e,t,r){y.texParameteri(e,t,r)}function Fs(e,t,r,A,i){y.texStorage2D(e,t,r,A,i)}function vs(e,t,r,A,i,o){y.texStorage3D(e,t,r,A,i,o)}function Ns(e,t,r,A,i,o,s,c,d){if(C.currentContext.version>=2){if(y.currentPixelUnpackBufferBinding)y.texSubImage2D(e,t,r,A,i,o,s,c,d);else if(d){let I=Fr(c);y.texSubImage2D(e,t,r,A,i,o,s,c,I,d>>vr(I))}else y.texSubImage2D(e,t,r,A,i,o,s,c,null);return}let E=null;d&&(E=wA(c,s,i,o,d,0)),y.texSubImage2D(e,t,r,A,i,o,s,c,E)}function Us(e,t,r,A,i,o,s,c,d,E,I){if(y.currentPixelUnpackBufferBinding)y.texSubImage3D(e,t,r,A,i,o,s,c,d,E,I);else if(I){let B=Fr(E);y.texSubImage3D(e,t,r,A,i,o,s,c,d,E,B,I>>vr(B))}else y.texSubImage3D(e,t,r,A,i,o,s,c,d,E,null)}function it(e){let t=y.currentProgram;if(t){let r=t.uniformLocsById[e];return typeof r=="number"&&(t.uniformLocsById[e]=r=y.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?`[${r}]`:""))),r}C.recordError(1282)}function ks(e,t){y.uniform1f(it(e),t)}function xs(e,t){y.uniform1i(it(e),t)}let fn=[];function Ls(e,t,r){if(C.currentContext.version>=2){y.uniform2fv(it(e),he,r>>2,t*2);return}if(t<=144){var A=fn[2*t-1];for(let i=0;i<2*t;i+=2)A[i]=he[r+4*i>>2],A[i+1]=he[r+(4*i+4)>>2]}else var A=he.subarray(r>>2,r+t*8>>2);y.uniform2fv(it(e),A)}function Gs(e,t,r){if(C.currentContext.version>=2){y.uniform4fv(it(e),he,r>>2,t*4);return}if(t<=72){var A=fn[4*t-1];let i=he;r>>=2;for(let o=0;o<4*t;o+=4){let s=r+o;A[o]=i[s],A[o+1]=i[s+1],A[o+2]=i[s+2],A[o+3]=i[s+3]}}else var A=he.subarray(r>>2,r+t*16>>2);y.uniform4fv(it(e),A)}let KA=[];function js(e,t,r){if(C.currentContext.version>=2){y.uniform4iv(it(e),m,r>>2,t*4);return}if(t<=72){var A=KA[4*t-1];for(let i=0;i<4*t;i+=4)A[i]=m[r+4*i>>2],A[i+1]=m[r+(4*i+4)>>2],A[i+2]=m[r+(4*i+8)>>2],A[i+3]=m[r+(4*i+12)>>2]}else var A=m.subarray(r>>2,r+t*16>>2);y.uniform4iv(it(e),A)}function Hs(e,t,r){e=C.programs[e],y.uniformBlockBinding(e,t,r)}function Ys(e,t,r,A){if(C.currentContext.version>=2){y.uniformMatrix4fv(it(e),!!r,he,A>>2,t*16);return}if(t<=18){var i=fn[16*t-1];let o=he;A>>=2;for(let s=0;s<16*t;s+=16){let c=A+s;i[s]=o[c],i[s+1]=o[c+1],i[s+2]=o[c+2],i[s+3]=o[c+3],i[s+4]=o[c+4],i[s+5]=o[c+5],i[s+6]=o[c+6],i[s+7]=o[c+7],i[s+8]=o[c+8],i[s+9]=o[c+9],i[s+10]=o[c+10],i[s+11]=o[c+11],i[s+12]=o[c+12],i[s+13]=o[c+13],i[s+14]=o[c+14],i[s+15]=o[c+15]}}else var i=he.subarray(A>>2,A+t*64>>2);y.uniformMatrix4fv(it(e),!!r,i)}function Xs(e){e=C.programs[e],y.useProgram(e),y.currentProgram=e}function Ws(e,t,r,A,i,o){let s=C.currentContext.clientBuffers[e];if(!y.currentArrayBufferBinding){s.size=t,s.type=r,s.normalized=A,s.stride=i,s.ptr=o,s.clientside=!0,s.vertexAttribPointerAdaptor=function(c,d,E,I,B,h){this.vertexAttribPointer(c,d,E,I,B,h)};return}s.clientside=!1,y.vertexAttribPointer(e,t,r,!!A,i,o)}function Js(e,t,r,A){y.viewport(e,t,r,A)}function In(e,t){let r=new Date(m[e>>2]*1e3);m[t>>2]=r.getUTCSeconds(),m[t+4>>2]=r.getUTCMinutes(),m[t+8>>2]=r.getUTCHours(),m[t+12>>2]=r.getUTCDate(),m[t+16>>2]=r.getUTCMonth(),m[t+20>>2]=r.getUTCFullYear()-1900,m[t+24>>2]=r.getUTCDay(),m[t+36>>2]=0,m[t+32>>2]=0;let A=Date.UTC(r.getUTCFullYear(),0,1,0,0,0,0),i=(r.getTime()-A)/(1e3*60*60*24)|0;return m[t+28>>2]=i,In.GMTString||(In.GMTString=Ir("GMT")),m[t+40>>2]=In.GMTString,t}function Ks(e){return e}function Cn(){if(Cn.called)return;Cn.called=!0;let e=new Date().getFullYear(),t=new Date(e,0,1),r=new Date(e,6,1),A=t.getTimezoneOffset(),i=r.getTimezoneOffset(),o=Math.max(A,i);m[oa()>>2]=o*60,m[ia()>>2]=+(A!=i);function s(B){let h=B.toTimeString().match(/\(([A-Za-z ]+)\)$/);return h?h[1]:"GMT"}let c=s(t),d=s(r),E=Ir(c),I=Ir(d);i<A?(m[Nr()>>2]=E,m[Nr()+4>>2]=I):(m[Nr()>>2]=I,m[Nr()+4>>2]=E)}function Vs(e,t){Cn();let r=new Date(m[e>>2]*1e3);m[t>>2]=r.getSeconds(),m[t+4>>2]=r.getMinutes(),m[t+8>>2]=r.getHours(),m[t+12>>2]=r.getDate(),m[t+16>>2]=r.getMonth(),m[t+20>>2]=r.getFullYear()-1900,m[t+24>>2]=r.getDay();let A=new Date(r.getFullYear(),0,1),i=(r.getTime()-A.getTime())/(1e3*60*60*24)|0;m[t+28>>2]=i,m[t+36>>2]=-(r.getTimezoneOffset()*60);let o=new Date(r.getFullYear(),6,1).getTimezoneOffset(),s=A.getTimezoneOffset(),c=(o!=s&&r.getTimezoneOffset()==Math.min(s,o))|0;m[t+32>>2]=c;let d=m[Nr()+(c?4:0)>>2];return m[t+40>>2]=d,t}function $s(e){Cn();let t=new Date(m[e+20>>2]+1900,m[e+16>>2],m[e+12>>2],m[e+8>>2],m[e+4>>2],m[e>>2],0),r=m[e+32>>2],A=t.getTimezoneOffset(),i=new Date(t.getFullYear(),0,1),o=new Date(t.getFullYear(),6,1).getTimezoneOffset(),s=i.getTimezoneOffset(),c=Math.min(s,o);if(r<0)m[e+32>>2]=+(o!=s&&c==A);else if(r>0!=(c==A)){let E=Math.max(s,o),I=r>0?c:E;t.setTime(t.getTime()+(I-A)*6e4)}m[e+24>>2]=t.getDay();let d=(t.getTime()-i.getTime())/(1e3*60*60*24)|0;return m[e+28>>2]=d,m[e>>2]=t.getSeconds(),m[e+4>>2]=t.getMinutes(),m[e+8>>2]=t.getHours(),m[e+12>>2]=t.getDate(),m[e+16>>2]=t.getMonth(),t.getTime()/1e3|0}function zs(e){ti(e)}function Zs(e){ne(e)}function pn(e){return e%4===0&&(e%100!==0||e%400===0)}function bA(e,t){let r=0;for(let A=0;A<=t;r+=e[A++]);return r}let Bn=[31,29,31,30,31,30,31,31,30,31,30,31],hn=[31,28,31,30,31,30,31,31,30,31,30,31];function mn(e,t){let r=new Date(e.getTime());for(;t>0;){let A=pn(r.getFullYear()),i=r.getMonth(),o=(A?Bn:hn)[i];if(t>o-r.getDate())t-=o-r.getDate()+1,r.setDate(1),i<11?r.setMonth(i+1):(r.setMonth(0),r.setFullYear(r.getFullYear()+1));else return r.setDate(r.getDate()+t),r}return r}function VA(e,t,r,A){let i=m[A+40>>2],o={tm_sec:m[A>>2],tm_min:m[A+4>>2],tm_hour:m[A+8>>2],tm_mday:m[A+12>>2],tm_mon:m[A+16>>2],tm_year:m[A+20>>2],tm_wday:m[A+24>>2],tm_yday:m[A+28>>2],tm_isdst:m[A+32>>2],tm_gmtoff:m[A+36>>2],tm_zone:i?Re(i):""},s=Re(r),c={"%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 d in c)s=s.replace(new RegExp(d,"g"),c[d]);let E=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],I=["January","February","March","April","May","June","July","August","September","October","November","December"];function B(D,v,re){let L=typeof D=="number"?D.toString():D||"";for(;L.length<v;)L=re[0]+L;return L}function h(D,v){return B(D,v,"0")}function _(D,v){function re(pe){return pe<0?-1:pe>0?1:0}let L;return(L=re(D.getFullYear()-v.getFullYear()))===0&&(L=re(D.getMonth()-v.getMonth()))===0&&(L=re(D.getDate()-v.getDate())),L}function O(D){switch(D.getDay()){case 0:return new Date(D.getFullYear()-1,11,29);case 1:return D;case 2:return new Date(D.getFullYear(),0,3);case 3:return new Date(D.getFullYear(),0,2);case 4:return new Date(D.getFullYear(),0,1);case 5:return new Date(D.getFullYear()-1,11,31);case 6:return new Date(D.getFullYear()-1,11,30)}}function x(D){let v=mn(new Date(D.tm_year+1900,0,1),D.tm_yday),re=new Date(v.getFullYear(),0,4),L=new Date(v.getFullYear()+1,0,4),pe=O(re),_e=O(L);return _(pe,v)<=0?_(_e,v)<=0?v.getFullYear()+1:v.getFullYear():v.getFullYear()-1}let Y={"%a"(D){return E[D.tm_wday].substring(0,3)},"%A"(D){return E[D.tm_wday]},"%b"(D){return I[D.tm_mon].substring(0,3)},"%B"(D){return I[D.tm_mon]},"%C"(D){let v=D.tm_year+1900;return h(v/100|0,2)},"%d"(D){return h(D.tm_mday,2)},"%e"(D){return B(D.tm_mday,2," ")},"%g"(D){return x(D).toString().substring(2)},"%G"(D){return x(D)},"%H"(D){return h(D.tm_hour,2)},"%I"(D){let v=D.tm_hour;return v==0?v=12:v>12&&(v-=12),h(v,2)},"%j"(D){return h(D.tm_mday+bA(pn(D.tm_year+1900)?Bn:hn,D.tm_mon-1),3)},"%m"(D){return h(D.tm_mon+1,2)},"%M"(D){return h(D.tm_min,2)},"%n"(){return`
30
- `},"%p"(D){return D.tm_hour>=0&&D.tm_hour<12?"AM":"PM"},"%S"(D){return h(D.tm_sec,2)},"%t"(){return" "},"%u"(D){return D.tm_wday||7},"%U"(D){let v=new Date(D.tm_year+1900,0,1),re=v.getDay()===0?v:mn(v,7-v.getDay()),L=new Date(D.tm_year+1900,D.tm_mon,D.tm_mday);if(_(re,L)<0){let pe=bA(pn(L.getFullYear())?Bn:hn,L.getMonth()-1)-31,$e=31-re.getDate()+pe+L.getDate();return h(Math.ceil($e/7),2)}return _(re,v)===0?"01":"00"},"%V"(D){let v=new Date(D.tm_year+1900,0,4),re=new Date(D.tm_year+1901,0,4),L=O(v),pe=O(re),_e=mn(new Date(D.tm_year+1900,0,1),D.tm_yday);if(_(_e,L)<0)return"53";if(_(pe,_e)<=0)return"01";let $e;return L.getFullYear()<D.tm_year+1900?$e=D.tm_yday+32-L.getDate():$e=D.tm_yday+1-L.getDate(),h(Math.ceil($e/7),2)},"%w"(D){return D.tm_wday},"%W"(D){let v=new Date(D.tm_year,0,1),re=v.getDay()===1?v:mn(v,v.getDay()===0?1:7-v.getDay()+1),L=new Date(D.tm_year+1900,D.tm_mon,D.tm_mday);if(_(re,L)<0){let pe=bA(pn(L.getFullYear())?Bn:hn,L.getMonth()-1)-31,$e=31-re.getDate()+pe+L.getDate();return h(Math.ceil($e/7),2)}return _(re,v)===0?"01":"00"},"%y"(D){return(D.tm_year+1900).toString().substring(2)},"%Y"(D){return D.tm_year+1900},"%z"(D){let v=D.tm_gmtoff,re=v>=0;return v=Math.abs(v)/60,v=v/60*100+v%60,(re?"+":"-")+`0000${v}`.slice(-4)},"%Z"(D){return D.tm_zone},"%%"(){return"%"}};for(var d in Y)s.includes(d)&&(s=s.replace(new RegExp(d,"g"),Y[d](o)));let Z=yn(s,!1);return Z.length>t?0:(jr(Z,e),Z.length-1)}function qs(e,t,r,A){return VA(e,t,r,A)}n.requestFullscreen=function(t,r){Q.requestFullscreen(t,r)},n.requestFullScreen=function(){Q.requestFullScreen()},n.requestAnimationFrame=function(t){Q.requestAnimationFrame(t)},n.setCanvasSize=function(t,r,A){Q.setCanvasSize(t,r,A)},n.pauseMainLoop=function(){Q.mainLoop.pause()},n.resumeMainLoop=function(){Q.mainLoop.resume()},n.getUserMedia=function(){Q.getUserMedia()},n.createContext=function(t,r,A,i){return Q.createContext(t,r,A,i)};let $A=function(e,t,r,A){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=a.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=A},Qn=365,_n=146;Object.defineProperties($A.prototype,{read:{get(){return(this.mode&Qn)===Qn},set(e){e?this.mode|=Qn:this.mode&=~Qn}},write:{get(){return(this.mode&_n)===_n},set(e){e?this.mode|=_n:this.mode&=~_n}},isFolder:{get(){return a.isDir(this.mode)}},isDevice:{get(){return a.isChrdev(this.mode)}}}),a.FSNode=$A,a.staticInit(),n.FS_createPath=a.createPath,n.FS_createDataFile=a.createDataFile,n.FS_createPreloadedFile=a.createPreloadedFile,n.FS_createLazyFile=a.createLazyFile,n.FS_createDevice=a.createDevice,n.FS_unlink=a.unlink,fA(),tn=n.PureVirtualError=or(Error,"PureVirtualError"),IA(),hA(),bt=n.BindingError=or(Error,"BindingError"),w=n.InternalError=or(Error,"InternalError"),Qe(),Bi(),kA=n.UnboundTypeError=or(Error,"UnboundTypeError");let y;for(var xe=0;xe<32;++xe)WA.push(new Array(xe));let ea=new Float32Array(288);for(var xe=0;xe<288;++xe)fn[xe]=ea.subarray(0,xe+1);let ta=new Int32Array(288);for(var xe=0;xe<288;++xe)KA[xe]=ta.subarray(0,xe+1);let wc=!0;function yn(e,t,r){let A=r>0?r:Ge(e)+1,i=new Array(A),o=Le(e,i,0,i.length);return t&&(i.length=o),i}let ra=typeof atob=="function"?atob:function(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",r="",A,i,o,s,c,d,E,I=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");do s=t.indexOf(e.charAt(I++)),c=t.indexOf(e.charAt(I++)),d=t.indexOf(e.charAt(I++)),E=t.indexOf(e.charAt(I++)),A=s<<2|c>>4,i=(c&15)<<4|d>>2,o=(d&3)<<6|E,r=r+String.fromCharCode(A),d!==64&&(r=r+String.fromCharCode(i)),E!==64&&(r=r+String.fromCharCode(o));while(I<e.length);return r};function bc(e){if(typeof ft=="boolean"&&ft){let t=Buffer.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}try{let t=ra(e),r=new Uint8Array(t.length);for(let A=0;A<t.length;++A)r[A]=t.charCodeAt(A);return r}catch(t){throw new Error("Converting base64 string to bytes failed.")}}var zA={HaveOffsetConverter:Zt,__cxa_allocate_exception:zn,__cxa_atexit:Vr,__cxa_begin_catch:$r,__cxa_end_catch:zr,__cxa_find_matching_catch_2:qn,__cxa_find_matching_catch_3:Zr,__cxa_free_exception:wt,__cxa_rethrow:eA,__cxa_thread_atexit:tA,__cxa_throw:rA,__resumeException:wr,__sys_fcntl64:oA,__sys_ioctl:sA,__sys_mmap2:cA,__sys_open:gA,__sys_stat64:en,_embind_create_inheriting_constructor:cr,_embind_finalize_value_object:b,_embind_register_bigint:U,_embind_register_bool:ee,_embind_register_class:_i,_embind_register_class_class_function:yi,_embind_register_class_constructor:Di,_embind_register_class_function:wi,_embind_register_class_property:bi,_embind_register_emval:Ti,_embind_register_float:Ri,_embind_register_function:Si,_embind_register_integer:Mi,_embind_register_memory_view:Fi,_embind_register_std_string:vi,_embind_register_std_wstring:Ni,_embind_register_value_object:Ui,_embind_register_value_object_field:ki,_embind_register_void:xi,_emval_call_void_method:ji,_emval_decref:GA,_emval_get_method_caller:Xi,_emval_incref:Wi,_emval_take_value:Ji,abort:Ki,clock_gettime:$i,dlopen:zi,dlsym:Zi,emscripten_asm_const_int:eo,emscripten_get_heap_max:to,emscripten_memcpy_big:ro,emscripten_pc_get_function:no,emscripten_resize_heap:io,emscripten_stack_snapshot:oo,emscripten_stack_unwind_buffer:so,emscripten_thread_sleep:ao,emscripten_webgl_create_context:Bo,emscripten_webgl_destroy_context:mo,emscripten_webgl_get_context_attributes:Qo,emscripten_webgl_get_current_context:YA,emscripten_webgl_init_context_attributes:_o,emscripten_webgl_make_context_current:XA,environ_get:Do,environ_sizes_get:wo,exit:Wr,fd_close:bo,fd_read:To,fd_seek:Oo,fd_write:Ro,getTempRet0:So,getentropy:un,glActiveTexture:Po,glAttachShader:Mo,glBindAttribLocation:Fo,glBindBuffer:vo,glBindBufferBase:No,glBindFramebuffer:Uo,glBindTexture:ko,glBindVertexArray:xo,glBufferData:Lo,glClientWaitSync:jo,glCompileShader:Ho,glCreateProgram:Yo,glCreateShader:Xo,glDeleteBuffers:Wo,glDeleteFramebuffers:Jo,glDeleteProgram:Ko,glDeleteShader:Vo,glDeleteSync:$o,glDeleteTextures:zo,glDeleteVertexArrays:Zo,glDisable:qo,glDisableVertexAttribArray:es,glDrawArrays:ts,glDrawBuffers:rs,glEnableVertexAttribArray:ns,glFenceSync:As,glFinish:is,glFlush:os,glFramebufferTexture2D:ss,glFramebufferTextureLayer:as,glGenBuffers:cs,glGenFramebuffers:gs,glGenTextures:ls,glGenVertexArrays:us,glGetAttribLocation:ds,glGetError:Es,glGetIntegerv:Bs,glGetString:hs,glGetUniformBlockIndex:ms,glGetUniformLocation:ys,glLinkProgram:Ds,glPixelStorei:ws,glReadPixels:Os,glShaderSource:Rs,glTexImage2D:Ss,glTexParameterfv:Ps,glTexParameteri:Ms,glTexStorage2D:Fs,glTexStorage3D:vs,glTexSubImage2D:Ns,glTexSubImage3D:Us,glUniform1f:ks,glUniform1i:xs,glUniform2fv:Ls,glUniform4fv:Gs,glUniform4iv:js,glUniformBlockBinding:Hs,glUniformMatrix4fv:Ys,glUseProgram:Xs,glVertexAttribPointer:Ws,glViewport:Js,gmtime_r:In,invoke_diii:Sa,invoke_i:Na,invoke_ii:pa,invoke_iii:ua,invoke_iiii:Pa,invoke_iiiii:Da,invoke_iiiiii:Ta,invoke_iiiiiii:Ea,invoke_iiiiiiiddi:nc,invoke_iiiiiiii:Ra,invoke_iiiiiiiii:La,invoke_v:fa,invoke_vdiii:sc,invoke_vi:la,invoke_vididdii:Za,invoke_vidii:ec,invoke_vii:Ca,invoke_viid:ga,invoke_viidi:oc,invoke_viididii:xa,invoke_viii:Ba,invoke_viiid:qa,invoke_viiidd:ba,invoke_viiiddi:va,invoke_viiidi:Ua,invoke_viiii:ya,invoke_viiiid:Ac,invoke_viiiidi:ka,invoke_viiiidid:ic,invoke_viiiidiidiiiiiii:za,invoke_viiiifiifiiiiiii:$a,invoke_viiiii:da,invoke_viiiiid:Ha,invoke_viiiiif:Ja,invoke_viiiiii:ha,invoke_viiiiiid:Ya,invoke_viiiiiif:Ka,invoke_viiiiiii:ma,invoke_viiiiiiiddi:rc,invoke_viiiiiiidiiii:Wa,invoke_viiiiiiifiiii:Va,invoke_viiiiiiii:Qa,invoke_viiiiiiiidd:ja,invoke_viiiiiiiidf:Ga,invoke_viiiiiiiii:_a,invoke_viiiiiiiiidd:Ma,invoke_viiiiiiiiiddi:Fa,invoke_viiiiiiiiii:Ia,invoke_viiiiiiiiiiddi:tc,invoke_viiiiiiiiiii:wa,invoke_viiiiiiiiiiii:Xa,invoke_viiiiiiiiiiiii:Oa,llvm_eh_typeid_for:Ks,localtime_r:Vs,mktime:$s,proc_exit:zs,setTempRet0:Zs,strftime:VA,strftime_l:qs};let Tc=Jn(),Oc=n.___wasm_call_ctors=K("__wasm_call_ctors");var ot=n._free=K("free"),Xt=n._malloc=K("malloc"),na=n.___errno_location=K("__errno_location");let Rc=n._fflush=K("fflush");var Aa=n.___getTypeName=K("__getTypeName");let Sc=n.___embind_register_native_and_builtin_types=K("__embind_register_native_and_builtin_types"),Pc=n._emscripten_main_thread_process_queued_calls=K("emscripten_main_thread_process_queued_calls");var TA=n._emscripten_stack_get_end=function(){return(TA=n._emscripten_stack_get_end=n.asm.emscripten_stack_get_end).apply(null,arguments)},Nr=n.__get_tzname=K("_get_tzname"),ia=n.__get_daylight=K("_get_daylight"),oa=n.__get_timezone=K("_get_timezone"),G=n.stackSave=K("stackSave"),j=n.stackRestore=K("stackRestore"),ZA=n.stackAlloc=K("stackAlloc"),qA=n._emscripten_stack_init=function(){return(qA=n._emscripten_stack_init=n.asm.emscripten_stack_init).apply(null,arguments)},sa=n._emscripten_stack_get_free=function(){return(sa=n._emscripten_stack_get_free=n.asm.emscripten_stack_get_free).apply(null,arguments)};let Mc=n._saveSetjmp=K("saveSetjmp");var H=n._setThrew=K("setThrew"),ei=n.___cxa_can_catch=K("__cxa_can_catch"),aa=n.___cxa_is_pointer_type=K("__cxa_is_pointer_type"),ca=n._memalign=K("memalign");let Fc=n._emscripten_builtin_malloc=K("emscripten_builtin_malloc"),vc=n._emscripten_builtin_free=K("emscripten_builtin_free"),Nc=n._emscripten_builtin_memalign=K("emscripten_builtin_memalign"),Uc=n.dynCall_jii=K("dynCall_jii"),kc=n.dynCall_viji=K("dynCall_viji"),xc=n.dynCall_jjj=K("dynCall_jjj"),Lc=n.dynCall_iiiijj=K("dynCall_iiiijj"),Gc=n.dynCall_viijj=K("dynCall_viijj"),jc=n.dynCall_viiijjjj=K("dynCall_viiijjjj"),Hc=n.dynCall_ji=K("dynCall_ji"),Yc=n.dynCall_vij=K("dynCall_vij"),Xc=n.dynCall_viijii=K("dynCall_viijii"),Wc=n.dynCall_vj=K("dynCall_vj"),Jc=n.dynCall_viij=K("dynCall_viij"),Kc=n.dynCall_viiiiij=K("dynCall_viiiiij"),Vc=n.dynCall_iijjiiii=K("dynCall_iijjiiii"),$c=n.dynCall_jiji=K("dynCall_jiji"),zc=n.dynCall_iiiiij=K("dynCall_iiiiij"),Zc=n.dynCall_iiiiijj=K("dynCall_iiiiijj"),qc=n.dynCall_iiiiiijj=K("dynCall_iiiiiijj");function ga(e,t,r,A){let i=G();try{F.get(e)(t,r,A)}catch(o){if(j(i),o!==o+0&&o!=="longjmp")throw o;H(1,0)}}function la(e,t){let r=G();try{F.get(e)(t)}catch(A){if(j(r),A!==A+0&&A!=="longjmp")throw A;H(1,0)}}function ua(e,t,r){let A=G();try{return F.get(e)(t,r)}catch(i){if(j(A),i!==i+0&&i!=="longjmp")throw i;H(1,0)}}function da(e,t,r,A,i,o){let s=G();try{F.get(e)(t,r,A,i,o)}catch(c){if(j(s),c!==c+0&&c!=="longjmp")throw c;H(1,0)}}function Ea(e,t,r,A,i,o,s){let c=G();try{return F.get(e)(t,r,A,i,o,s)}catch(d){if(j(c),d!==d+0&&d!=="longjmp")throw d;H(1,0)}}function fa(e){let t=G();try{F.get(e)()}catch(r){if(j(t),r!==r+0&&r!=="longjmp")throw r;H(1,0)}}function Ia(e,t,r,A,i,o,s,c,d,E,I){let B=G();try{F.get(e)(t,r,A,i,o,s,c,d,E,I)}catch(h){if(j(B),h!==h+0&&h!=="longjmp")throw h;H(1,0)}}function Ca(e,t,r){let A=G();try{F.get(e)(t,r)}catch(i){if(j(A),i!==i+0&&i!=="longjmp")throw i;H(1,0)}}function pa(e,t){let r=G();try{return F.get(e)(t)}catch(A){if(j(r),A!==A+0&&A!=="longjmp")throw A;H(1,0)}}function Ba(e,t,r,A){let i=G();try{F.get(e)(t,r,A)}catch(o){if(j(i),o!==o+0&&o!=="longjmp")throw o;H(1,0)}}function ha(e,t,r,A,i,o,s){let c=G();try{F.get(e)(t,r,A,i,o,s)}catch(d){if(j(c),d!==d+0&&d!=="longjmp")throw d;H(1,0)}}function ma(e,t,r,A,i,o,s,c){let d=G();try{F.get(e)(t,r,A,i,o,s,c)}catch(E){if(j(d),E!==E+0&&E!=="longjmp")throw E;H(1,0)}}function Qa(e,t,r,A,i,o,s,c,d){let E=G();try{F.get(e)(t,r,A,i,o,s,c,d)}catch(I){if(j(E),I!==I+0&&I!=="longjmp")throw I;H(1,0)}}function _a(e,t,r,A,i,o,s,c,d,E){let I=G();try{F.get(e)(t,r,A,i,o,s,c,d,E)}catch(B){if(j(I),B!==B+0&&B!=="longjmp")throw B;H(1,0)}}function ya(e,t,r,A,i){let o=G();try{F.get(e)(t,r,A,i)}catch(s){if(j(o),s!==s+0&&s!=="longjmp")throw s;H(1,0)}}function Da(e,t,r,A,i){let o=G();try{return F.get(e)(t,r,A,i)}catch(s){if(j(o),s!==s+0&&s!=="longjmp")throw s;H(1,0)}}function wa(e,t,r,A,i,o,s,c,d,E,I,B){let h=G();try{F.get(e)(t,r,A,i,o,s,c,d,E,I,B)}catch(_){if(j(h),_!==_+0&&_!=="longjmp")throw _;H(1,0)}}function ba(e,t,r,A,i,o){let s=G();try{F.get(e)(t,r,A,i,o)}catch(c){if(j(s),c!==c+0&&c!=="longjmp")throw c;H(1,0)}}function Ta(e,t,r,A,i,o){let s=G();try{return F.get(e)(t,r,A,i,o)}catch(c){if(j(s),c!==c+0&&c!=="longjmp")throw c;H(1,0)}}function Oa(e,t,r,A,i,o,s,c,d,E,I,B,h,_){let O=G();try{F.get(e)(t,r,A,i,o,s,c,d,E,I,B,h,_)}catch(x){if(j(O),x!==x+0&&x!=="longjmp")throw x;H(1,0)}}function Ra(e,t,r,A,i,o,s,c){let d=G();try{return F.get(e)(t,r,A,i,o,s,c)}catch(E){if(j(d),E!==E+0&&E!=="longjmp")throw E;H(1,0)}}function Sa(e,t,r,A){let i=G();try{return F.get(e)(t,r,A)}catch(o){if(j(i),o!==o+0&&o!=="longjmp")throw o;H(1,0)}}function Pa(e,t,r,A){let i=G();try{return F.get(e)(t,r,A)}catch(o){if(j(i),o!==o+0&&o!=="longjmp")throw o;H(1,0)}}function Ma(e,t,r,A,i,o,s,c,d,E,I,B){let h=G();try{F.get(e)(t,r,A,i,o,s,c,d,E,I,B)}catch(_){if(j(h),_!==_+0&&_!=="longjmp")throw _;H(1,0)}}function Fa(e,t,r,A,i,o,s,c,d,E,I,B,h){let _=G();try{F.get(e)(t,r,A,i,o,s,c,d,E,I,B,h)}catch(O){if(j(_),O!==O+0&&O!=="longjmp")throw O;H(1,0)}}function va(e,t,r,A,i,o,s){let c=G();try{F.get(e)(t,r,A,i,o,s)}catch(d){if(j(c),d!==d+0&&d!=="longjmp")throw d;H(1,0)}}function Na(e){let t=G();try{return F.get(e)()}catch(r){if(j(t),r!==r+0&&r!=="longjmp")throw r;H(1,0)}}function Ua(e,t,r,A,i,o){let s=G();try{F.get(e)(t,r,A,i,o)}catch(c){if(j(s),c!==c+0&&c!=="longjmp")throw c;H(1,0)}}function ka(e,t,r,A,i,o,s){let c=G();try{F.get(e)(t,r,A,i,o,s)}catch(d){if(j(c),d!==d+0&&d!=="longjmp")throw d;H(1,0)}}function xa(e,t,r,A,i,o,s,c){let d=G();try{F.get(e)(t,r,A,i,o,s,c)}catch(E){if(j(d),E!==E+0&&E!=="longjmp")throw E;H(1,0)}}function La(e,t,r,A,i,o,s,c,d){let E=G();try{return F.get(e)(t,r,A,i,o,s,c,d)}catch(I){if(j(E),I!==I+0&&I!=="longjmp")throw I;H(1,0)}}function Ga(e,t,r,A,i,o,s,c,d,E,I){let B=G();try{F.get(e)(t,r,A,i,o,s,c,d,E,I)}catch(h){if(j(B),h!==h+0&&h!=="longjmp")throw h;H(1,0)}}function ja(e,t,r,A,i,o,s,c,d,E,I){let B=G();try{F.get(e)(t,r,A,i,o,s,c,d,E,I)}catch(h){if(j(B),h!==h+0&&h!=="longjmp")throw h;H(1,0)}}function Ha(e,t,r,A,i,o,s){let c=G();try{F.get(e)(t,r,A,i,o,s)}catch(d){if(j(c),d!==d+0&&d!=="longjmp")throw d;H(1,0)}}function Ya(e,t,r,A,i,o,s,c){let d=G();try{F.get(e)(t,r,A,i,o,s,c)}catch(E){if(j(d),E!==E+0&&E!=="longjmp")throw E;H(1,0)}}function Xa(e,t,r,A,i,o,s,c,d,E,I,B,h){let _=G();try{F.get(e)(t,r,A,i,o,s,c,d,E,I,B,h)}catch(O){if(j(_),O!==O+0&&O!=="longjmp")throw O;H(1,0)}}function Wa(e,t,r,A,i,o,s,c,d,E,I,B,h){let _=G();try{F.get(e)(t,r,A,i,o,s,c,d,E,I,B,h)}catch(O){if(j(_),O!==O+0&&O!=="longjmp")throw O;H(1,0)}}function Ja(e,t,r,A,i,o,s){let c=G();try{F.get(e)(t,r,A,i,o,s)}catch(d){if(j(c),d!==d+0&&d!=="longjmp")throw d;H(1,0)}}function Ka(e,t,r,A,i,o,s,c){let d=G();try{F.get(e)(t,r,A,i,o,s,c)}catch(E){if(j(d),E!==E+0&&E!=="longjmp")throw E;H(1,0)}}function Va(e,t,r,A,i,o,s,c,d,E,I,B,h){let _=G();try{F.get(e)(t,r,A,i,o,s,c,d,E,I,B,h)}catch(O){if(j(_),O!==O+0&&O!=="longjmp")throw O;H(1,0)}}function $a(e,t,r,A,i,o,s,c,d,E,I,B,h,_,O,x){let Y=G();try{F.get(e)(t,r,A,i,o,s,c,d,E,I,B,h,_,O,x)}catch(Z){if(j(Y),Z!==Z+0&&Z!=="longjmp")throw Z;H(1,0)}}function za(e,t,r,A,i,o,s,c,d,E,I,B,h,_,O,x){let Y=G();try{F.get(e)(t,r,A,i,o,s,c,d,E,I,B,h,_,O,x)}catch(Z){if(j(Y),Z!==Z+0&&Z!=="longjmp")throw Z;H(1,0)}}function Za(e,t,r,A,i,o,s,c){let d=G();try{F.get(e)(t,r,A,i,o,s,c)}catch(E){if(j(d),E!==E+0&&E!=="longjmp")throw E;H(1,0)}}function qa(e,t,r,A,i){let o=G();try{F.get(e)(t,r,A,i)}catch(s){if(j(o),s!==s+0&&s!=="longjmp")throw s;H(1,0)}}function ec(e,t,r,A,i){let o=G();try{F.get(e)(t,r,A,i)}catch(s){if(j(o),s!==s+0&&s!=="longjmp")throw s;H(1,0)}}function tc(e,t,r,A,i,o,s,c,d,E,I,B,h,_){let O=G();try{F.get(e)(t,r,A,i,o,s,c,d,E,I,B,h,_)}catch(x){if(j(O),x!==x+0&&x!=="longjmp")throw x;H(1,0)}}function rc(e,t,r,A,i,o,s,c,d,E,I){let B=G();try{F.get(e)(t,r,A,i,o,s,c,d,E,I)}catch(h){if(j(B),h!==h+0&&h!=="longjmp")throw h;H(1,0)}}function nc(e,t,r,A,i,o,s,c,d,E){let I=G();try{return F.get(e)(t,r,A,i,o,s,c,d,E)}catch(B){if(j(I),B!==B+0&&B!=="longjmp")throw B;H(1,0)}}function Ac(e,t,r,A,i,o){let s=G();try{F.get(e)(t,r,A,i,o)}catch(c){if(j(s),c!==c+0&&c!=="longjmp")throw c;H(1,0)}}function ic(e,t,r,A,i,o,s,c){let d=G();try{F.get(e)(t,r,A,i,o,s,c)}catch(E){if(j(d),E!==E+0&&E!=="longjmp")throw E;H(1,0)}}function oc(e,t,r,A,i){let o=G();try{F.get(e)(t,r,A,i)}catch(s){if(j(o),s!==s+0&&s!=="longjmp")throw s;H(1,0)}}function sc(e,t,r,A,i){let o=G();try{F.get(e)(t,r,A,i)}catch(s){if(j(o),s!==s+0&&s!=="longjmp")throw s;H(1,0)}}Object.getOwnPropertyDescriptor(n,"intArrayFromString")||(n.intArrayFromString=function(){l("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"intArrayToString")||(n.intArrayToString=function(){l("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ccall")||(n.ccall=function(){l("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"cwrap")||(n.cwrap=function(){l("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setValue")||(n.setValue=function(){l("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getValue")||(n.getValue=function(){l("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocate")||(n.allocate=function(){l("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ArrayToString")||(n.UTF8ArrayToString=function(){l("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ToString")||(n.UTF8ToString=function(){l("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8Array")||(n.stringToUTF8Array=function(){l("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8")||(n.stringToUTF8=function(){l("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF8")||(n.lengthBytesUTF8=function(){l("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){l("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreRun")||(n.addOnPreRun=function(){l("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnInit")||(n.addOnInit=function(){l("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreMain")||(n.addOnPreMain=function(){l("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnExit")||(n.addOnExit=function(){l("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPostRun")||(n.addOnPostRun=function(){l("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeStringToMemory")||(n.writeStringToMemory=function(){l("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeArrayToMemory")||(n.writeArrayToMemory=function(){l("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeAsciiToMemory")||(n.writeAsciiToMemory=function(){l("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.addRunDependency=rt,n.removeRunDependency=gt,Object.getOwnPropertyDescriptor(n,"FS_createFolder")||(n.FS_createFolder=function(){l("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createPath=a.createPath,n.FS_createDataFile=a.createDataFile,n.FS_createPreloadedFile=a.createPreloadedFile,n.FS_createLazyFile=a.createLazyFile,Object.getOwnPropertyDescriptor(n,"FS_createLink")||(n.FS_createLink=function(){l("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createDevice=a.createDevice,n.FS_unlink=a.unlink,Object.getOwnPropertyDescriptor(n,"getLEB")||(n.getLEB=function(){l("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFunctionTables")||(n.getFunctionTables=function(){l("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignFunctionTables")||(n.alignFunctionTables=function(){l("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFunctions")||(n.registerFunctions=function(){l("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addFunction")||(n.addFunction=function(){l("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"removeFunction")||(n.removeFunction=function(){l("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){l("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"prettyPrint")||(n.prettyPrint=function(){l("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){l("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCompilerSetting")||(n.getCompilerSetting=function(){l("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"print")||(n.print=function(){l("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"printErr")||(n.printErr=function(){l("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTempRet0")||(n.getTempRet0=function(){l("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setTempRet0")||(n.setTempRet0=function(){l("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callMain")||(n.callMain=function(){l("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"abort")||(n.abort=function(){l("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"keepRuntimeAlive")||(n.keepRuntimeAlive=function(){l("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"zeroMemory")||(n.zeroMemory=function(){l("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToNewUTF8")||(n.stringToNewUTF8=function(){l("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setFileTime")||(n.setFileTime=function(){l("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscripten_realloc_buffer")||(n.emscripten_realloc_buffer=function(){l("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ENV")||(n.ENV=function(){l("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_CODES")||(n.ERRNO_CODES=function(){l("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_MESSAGES")||(n.ERRNO_MESSAGES=function(){l("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setErrNo")||(n.setErrNo=function(){l("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton4")||(n.inetPton4=function(){l("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop4")||(n.inetNtop4=function(){l("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton6")||(n.inetPton6=function(){l("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop6")||(n.inetNtop6=function(){l("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readSockaddr")||(n.readSockaddr=function(){l("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeSockaddr")||(n.writeSockaddr=function(){l("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"DNS")||(n.DNS=function(){l("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getHostByName")||(n.getHostByName=function(){l("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GAI_ERRNO_MESSAGES")||(n.GAI_ERRNO_MESSAGES=function(){l("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Protocols")||(n.Protocols=function(){l("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Sockets")||(n.Sockets=function(){l("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getRandomDevice")||(n.getRandomDevice=function(){l("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"traverseStack")||(n.traverseStack=function(){l("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UNWIND_CACHE")||(n.UNWIND_CACHE=function(){l("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"withBuiltinMalloc")||(n.withBuiltinMalloc=function(){l("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgsArray")||(n.readAsmConstArgsArray=function(){l("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgs")||(n.readAsmConstArgs=function(){l("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mainThreadEM_ASM")||(n.mainThreadEM_ASM=function(){l("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_q")||(n.jstoi_q=function(){l("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_s")||(n.jstoi_s=function(){l("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getExecutableName")||(n.getExecutableName=function(){l("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"listenOnce")||(n.listenOnce=function(){l("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"autoResumeAudioContext")||(n.autoResumeAudioContext=function(){l("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCallLegacy")||(n.dynCallLegacy=function(){l("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getDynCaller")||(n.getDynCaller=function(){l("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){l("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callRuntimeCallbacks")||(n.callRuntimeCallbacks=function(){l("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePush")||(n.runtimeKeepalivePush=function(){l("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePop")||(n.runtimeKeepalivePop=function(){l("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callUserCallback")||(n.callUserCallback=function(){l("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"maybeExit")||(n.maybeExit=function(){l("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"safeSetTimeout")||(n.safeSetTimeout=function(){l("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asmjsMangle")||(n.asmjsMangle=function(){l("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asyncLoad")||(n.asyncLoad=function(){l("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignMemory")||(n.alignMemory=function(){l("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mmapAlloc")||(n.mmapAlloc=function(){l("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reallyNegative")||(n.reallyNegative=function(){l("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unSign")||(n.unSign=function(){l("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reSign")||(n.reSign=function(){l("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"formatString")||(n.formatString=function(){l("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH")||(n.PATH=function(){l("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH_FS")||(n.PATH_FS=function(){l("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SYSCALLS")||(n.SYSCALLS=function(){l("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMmap2")||(n.syscallMmap2=function(){l("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMunmap")||(n.syscallMunmap=function(){l("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketFromFD")||(n.getSocketFromFD=function(){l("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketAddress")||(n.getSocketAddress=function(){l("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"JSEvents")||(n.JSEvents=function(){l("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerKeyEventCallback")||(n.registerKeyEventCallback=function(){l("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"specialHTMLTargets")||(n.specialHTMLTargets=function(){l("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findEventTarget")||(n.findEventTarget=function(){l("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findCanvasEventTarget")||(n.findCanvasEventTarget=function(){l("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBoundingClientRect")||(n.getBoundingClientRect=function(){l("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillMouseEventData")||(n.fillMouseEventData=function(){l("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerMouseEventCallback")||(n.registerMouseEventCallback=function(){l("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerWheelEventCallback")||(n.registerWheelEventCallback=function(){l("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerUiEventCallback")||(n.registerUiEventCallback=function(){l("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFocusEventCallback")||(n.registerFocusEventCallback=function(){l("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceOrientationEventData")||(n.fillDeviceOrientationEventData=function(){l("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceOrientationEventCallback")||(n.registerDeviceOrientationEventCallback=function(){l("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceMotionEventData")||(n.fillDeviceMotionEventData=function(){l("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceMotionEventCallback")||(n.registerDeviceMotionEventCallback=function(){l("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"screenOrientation")||(n.screenOrientation=function(){l("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillOrientationChangeEventData")||(n.fillOrientationChangeEventData=function(){l("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerOrientationChangeEventCallback")||(n.registerOrientationChangeEventCallback=function(){l("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillFullscreenChangeEventData")||(n.fillFullscreenChangeEventData=function(){l("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFullscreenChangeEventCallback")||(n.registerFullscreenChangeEventCallback=function(){l("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerRestoreOldStyle")||(n.registerRestoreOldStyle=function(){l("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"hideEverythingExceptGivenElement")||(n.hideEverythingExceptGivenElement=function(){l("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreHiddenElements")||(n.restoreHiddenElements=function(){l("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setLetterbox")||(n.setLetterbox=function(){l("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"currentFullscreenStrategy")||(n.currentFullscreenStrategy=function(){l("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreOldWindowedStyle")||(n.restoreOldWindowedStyle=function(){l("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"softFullscreenResizeWebGLRenderTarget")||(n.softFullscreenResizeWebGLRenderTarget=function(){l("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"doRequestFullscreen")||(n.doRequestFullscreen=function(){l("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillPointerlockChangeEventData")||(n.fillPointerlockChangeEventData=function(){l("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockChangeEventCallback")||(n.registerPointerlockChangeEventCallback=function(){l("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockErrorEventCallback")||(n.registerPointerlockErrorEventCallback=function(){l("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requestPointerLock")||(n.requestPointerLock=function(){l("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillVisibilityChangeEventData")||(n.fillVisibilityChangeEventData=function(){l("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerVisibilityChangeEventCallback")||(n.registerVisibilityChangeEventCallback=function(){l("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerTouchEventCallback")||(n.registerTouchEventCallback=function(){l("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillGamepadEventData")||(n.fillGamepadEventData=function(){l("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerGamepadEventCallback")||(n.registerGamepadEventCallback=function(){l("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBeforeUnloadEventCallback")||(n.registerBeforeUnloadEventCallback=function(){l("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillBatteryEventData")||(n.fillBatteryEventData=function(){l("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"battery")||(n.battery=function(){l("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBatteryEventCallback")||(n.registerBatteryEventCallback=function(){l("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setCanvasElementSize")||(n.setCanvasElementSize=function(){l("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCanvasElementSize")||(n.getCanvasElementSize=function(){l("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"polyfillSetImmediate")||(n.polyfillSetImmediate=function(){l("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangle")||(n.demangle=function(){l("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangleAll")||(n.demangleAll=function(){l("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jsStackTrace")||(n.jsStackTrace=function(){l("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){l("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getEnvStrings")||(n.getEnvStrings=function(){l("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"checkWasiClock")||(n.checkWasiClock=function(){l("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64")||(n.writeI53ToI64=function(){l("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Clamped")||(n.writeI53ToI64Clamped=function(){l("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Signaling")||(n.writeI53ToI64Signaling=function(){l("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Clamped")||(n.writeI53ToU64Clamped=function(){l("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Signaling")||(n.writeI53ToU64Signaling=function(){l("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromI64")||(n.readI53FromI64=function(){l("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromU64")||(n.readI53FromU64=function(){l("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertI32PairToI53")||(n.convertI32PairToI53=function(){l("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertU32PairToI53")||(n.convertU32PairToI53=function(){l("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"uncaughtExceptionCount")||(n.uncaughtExceptionCount=function(){l("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionLast")||(n.exceptionLast=function(){l("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionCaught")||(n.exceptionCaught=function(){l("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ExceptionInfo")||(n.ExceptionInfo=function(){l("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"CatchInfo")||(n.CatchInfo=function(){l("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_addRef")||(n.exception_addRef=function(){l("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_decRef")||(n.exception_decRef=function(){l("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Browser")||(n.Browser=function(){l("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"funcWrappers")||(n.funcWrappers=function(){l("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){l("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setMainLoop")||(n.setMainLoop=function(){l("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"wget")||(n.wget=function(){l("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"FS")||(n.FS=function(){l("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"MEMFS")||(n.MEMFS=function(){l("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"TTY")||(n.TTY=function(){l("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PIPEFS")||(n.PIPEFS=function(){l("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SOCKFS")||(n.SOCKFS=function(){l("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"_setNetworkCallback")||(n._setNetworkCallback=function(){l("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tempFixedLengthArray")||(n.tempFixedLengthArray=function(){l("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"miniTempWebGLFloatBuffers")||(n.miniTempWebGLFloatBuffers=function(){l("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapObjectForWebGLType")||(n.heapObjectForWebGLType=function(){l("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapAccessShiftForWebGLHeap")||(n.heapAccessShiftForWebGLHeap=function(){l("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.GL=C,Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGet")||(n.emscriptenWebGLGet=function(){l("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"computeUnpackAlignedImageSize")||(n.computeUnpackAlignedImageSize=function(){l("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetTexPixelData")||(n.emscriptenWebGLGetTexPixelData=function(){l("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetUniform")||(n.emscriptenWebGLGetUniform=function(){l("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetUniformLocation")||(n.webglGetUniformLocation=function(){l("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglPrepareUniformLocationsBeforeFirstUse")||(n.webglPrepareUniformLocationsBeforeFirstUse=function(){l("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetLeftBracePos")||(n.webglGetLeftBracePos=function(){l("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetVertexAttrib")||(n.emscriptenWebGLGetVertexAttrib=function(){l("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetBufferBinding")||(n.emscriptenWebGLGetBufferBinding=function(){l("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLValidateMapBufferTarget")||(n.emscriptenWebGLValidateMapBufferTarget=function(){l("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeGLArray")||(n.writeGLArray=function(){l("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AL")||(n.AL=function(){l("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_unicode")||(n.SDL_unicode=function(){l("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_ttfContext")||(n.SDL_ttfContext=function(){l("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_audio")||(n.SDL_audio=function(){l("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL")||(n.SDL=function(){l("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_gfx")||(n.SDL_gfx=function(){l("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLUT")||(n.GLUT=function(){l("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"EGL")||(n.EGL=function(){l("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW_Window")||(n.GLFW_Window=function(){l("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW")||(n.GLFW=function(){l("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLEW")||(n.GLEW=function(){l("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"IDBStore")||(n.IDBStore=function(){l("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runAndAbortIfError")||(n.runAndAbortIfError=function(){l("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_handle_array")||(n.emval_handle_array=function(){l("'emval_handle_array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_free_list")||(n.emval_free_list=function(){l("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_symbols")||(n.emval_symbols=function(){l("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_emval")||(n.init_emval=function(){l("'init_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"count_emval_handles")||(n.count_emval_handles=function(){l("'count_emval_handles' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"get_first_emval")||(n.get_first_emval=function(){l("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getStringOrSymbol")||(n.getStringOrSymbol=function(){l("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireHandle")||(n.requireHandle=function(){l("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_newers")||(n.emval_newers=function(){l("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftEmvalAllocator")||(n.craftEmvalAllocator=function(){l("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_get_global")||(n.emval_get_global=function(){l("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_methodCallers")||(n.emval_methodCallers=function(){l("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"InternalError")||(n.InternalError=function(){l("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"BindingError")||(n.BindingError=function(){l("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UnboundTypeError")||(n.UnboundTypeError=function(){l("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PureVirtualError")||(n.PureVirtualError=function(){l("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_embind")||(n.init_embind=function(){l("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInternalError")||(n.throwInternalError=function(){l("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwBindingError")||(n.throwBindingError=function(){l("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwUnboundTypeError")||(n.throwUnboundTypeError=function(){l("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ensureOverloadTable")||(n.ensureOverloadTable=function(){l("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exposePublicSymbol")||(n.exposePublicSymbol=function(){l("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"replacePublicSymbol")||(n.replacePublicSymbol=function(){l("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"extendError")||(n.extendError=function(){l("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"createNamedFunction")||(n.createNamedFunction=function(){l("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredInstances")||(n.registeredInstances=function(){l("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBasestPointer")||(n.getBasestPointer=function(){l("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerInheritedInstance")||(n.registerInheritedInstance=function(){l("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unregisterInheritedInstance")||(n.unregisterInheritedInstance=function(){l("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstance")||(n.getInheritedInstance=function(){l("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstanceCount")||(n.getInheritedInstanceCount=function(){l("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getLiveInheritedInstances")||(n.getLiveInheritedInstances=function(){l("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredTypes")||(n.registeredTypes=function(){l("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"awaitingDependencies")||(n.awaitingDependencies=function(){l("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"typeDependencies")||(n.typeDependencies=function(){l("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredPointers")||(n.registeredPointers=function(){l("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerType")||(n.registerType=function(){l("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"whenDependentTypesAreResolved")||(n.whenDependentTypesAreResolved=function(){l("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_charCodes")||(n.embind_charCodes=function(){l("'embind_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_init_charCodes")||(n.embind_init_charCodes=function(){l("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readLatin1String")||(n.readLatin1String=function(){l("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTypeName")||(n.getTypeName=function(){l("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heap32VectorToArray")||(n.heap32VectorToArray=function(){l("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireRegisteredType")||(n.requireRegisteredType=function(){l("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getShiftFromSize")||(n.getShiftFromSize=function(){l("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"integerReadValueFromPointer")||(n.integerReadValueFromPointer=function(){l("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"enumReadValueFromPointer")||(n.enumReadValueFromPointer=function(){l("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"floatReadValueFromPointer")||(n.floatReadValueFromPointer=function(){l("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"simpleReadValueFromPointer")||(n.simpleReadValueFromPointer=function(){l("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructors")||(n.runDestructors=function(){l("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"new_")||(n.new_=function(){l("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftInvokerFunction")||(n.craftInvokerFunction=function(){l("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind__requireFunction")||(n.embind__requireFunction=function(){l("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tupleRegistrations")||(n.tupleRegistrations=function(){l("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"structRegistrations")||(n.structRegistrations=function(){l("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"genericPointerToWireType")||(n.genericPointerToWireType=function(){l("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"constNoSmartPtrRawPointerToWireType")||(n.constNoSmartPtrRawPointerToWireType=function(){l("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"nonConstNoSmartPtrRawPointerToWireType")||(n.nonConstNoSmartPtrRawPointerToWireType=function(){l("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_RegisteredPointer")||(n.init_RegisteredPointer=function(){l("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer")||(n.RegisteredPointer=function(){l("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_getPointee")||(n.RegisteredPointer_getPointee=function(){l("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_destructor")||(n.RegisteredPointer_destructor=function(){l("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_deleteObject")||(n.RegisteredPointer_deleteObject=function(){l("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_fromWireType")||(n.RegisteredPointer_fromWireType=function(){l("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructor")||(n.runDestructor=function(){l("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"releaseClassHandle")||(n.releaseClassHandle=function(){l("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"finalizationGroup")||(n.finalizationGroup=function(){l("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer_deps")||(n.detachFinalizer_deps=function(){l("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer")||(n.detachFinalizer=function(){l("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"attachFinalizer")||(n.attachFinalizer=function(){l("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeClassHandle")||(n.makeClassHandle=function(){l("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_ClassHandle")||(n.init_ClassHandle=function(){l("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle")||(n.ClassHandle=function(){l("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isAliasOf")||(n.ClassHandle_isAliasOf=function(){l("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInstanceAlreadyDeleted")||(n.throwInstanceAlreadyDeleted=function(){l("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_clone")||(n.ClassHandle_clone=function(){l("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_delete")||(n.ClassHandle_delete=function(){l("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"deletionQueue")||(n.deletionQueue=function(){l("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isDeleted")||(n.ClassHandle_isDeleted=function(){l("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_deleteLater")||(n.ClassHandle_deleteLater=function(){l("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"flushPendingDeletes")||(n.flushPendingDeletes=function(){l("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"delayFunction")||(n.delayFunction=function(){l("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setDelayFunction")||(n.setDelayFunction=function(){l("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredClass")||(n.RegisteredClass=function(){l("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"shallowCopyInternalPointer")||(n.shallowCopyInternalPointer=function(){l("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"downcastPointer")||(n.downcastPointer=function(){l("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"upcastPointer")||(n.upcastPointer=function(){l("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"validateThis")||(n.validateThis=function(){l("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_0")||(n.char_0=function(){l("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_9")||(n.char_9=function(){l("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeLegalFunctionName")||(n.makeLegalFunctionName=function(){l("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetIndexed")||(n.emscriptenWebGLGetIndexed=function(){l("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"warnOnce")||(n.warnOnce=function(){l("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackSave")||(n.stackSave=function(){l("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackRestore")||(n.stackRestore=function(){l("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackAlloc")||(n.stackAlloc=function(){l("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AsciiToString")||(n.AsciiToString=function(){l("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToAscii")||(n.stringToAscii=function(){l("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF16ToString")||(n.UTF16ToString=function(){l("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF16")||(n.stringToUTF16=function(){l("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF16")||(n.lengthBytesUTF16=function(){l("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF32ToString")||(n.UTF32ToString=function(){l("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF32")||(n.stringToUTF32=function(){l("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF32")||(n.lengthBytesUTF32=function(){l("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8")||(n.allocateUTF8=function(){l("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8OnStack")||(n.allocateUTF8OnStack=function(){l("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.writeStackCookie=at,n.checkStackCookie=Se,Object.getOwnPropertyDescriptor(n,"ALLOC_NORMAL")||Object.defineProperty(n,"ALLOC_NORMAL",{configurable:!0,get(){l("'ALLOC_NORMAL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(n,"ALLOC_STACK")||Object.defineProperty(n,"ALLOC_STACK",{configurable:!0,get(){l("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}});let Dn;function OA(e){this.name="ExitStatus",this.message=`Program terminated with exit(${e})`,this.status=e}mt=function e(){Dn||RA(),Dn||(mt=e)};function ac(){qA(),at()}function RA(e){if(e=e||ye,et>0||(ac(),qe(),et>0))return;function t(){Dn||(Dn=!0,n.calledRun=!0,!Xe&&(jn(),q(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),M(!n._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),hr()))}n.setStatus?(n.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>{n.setStatus("")},1),t()},1)):t(),Se()}n.run=RA;function cc(){let e=be,t=z,r=!1;be=z=function(A){r=!0};try{let A=n._fflush;A&&A(0),["stdout","stderr"].forEach(i=>{let o=a.analyzePath(`/dev/${i}`);if(!o)return;let s=o.object,{rdev:c}=s,d=ke.ttys[c];d&&d.output&&d.output.length&&(r=!0)})}catch(A){}be=e,z=t,r&&Te("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.")}function gc(e,t){if(Pt=e,cc(),Ue()){if(!t){let r=`program exited (with status: ${e}), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)`;T(r),z(r)}}else Hn();ti(e)}function ti(e){Pt=e,Ue()||(n.onExit&&n.onExit(e),Xe=!0),De(e,new OA(e))}if(n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return RA(),R.ready}}(),gi=Qc;var _c=(()=>{var R;var X=typeof document!="undefined"?(R=document.currentScript)==null?void 0:R.src:void 0;return function(n={}){var q,T=Object.assign({},n),fe,ae,ye=new Promise((u,g)=>{fe=u,ae=g}),Ne=!0,De=!1,we=Object.assign({},T),Ye=[],ft="./this.program",Sn=(u,g)=>{throw g},Ie="",Pn,ur,Wt;(Ne||De)&&(De?Ie=self.location.href:typeof document!="undefined"&&document.currentScript&&(Ie=document.currentScript.src),X&&(Ie=X),Ie.startsWith("blob:")?Ie="":Ie=Ie.substr(0,Ie.replace(/[?#].*/,"").lastIndexOf("/")+1),Pn=u=>{var g=new XMLHttpRequest;return g.open("GET",u,!1),g.send(null),g.responseText},De&&(Wt=u=>{var g=new XMLHttpRequest;return g.open("GET",u,!1),g.responseType="arraybuffer",g.send(null),new Uint8Array(g.response)}),ur=(u,g,f)=>{var p=new XMLHttpRequest;p.open("GET",u,!0),p.responseType="arraybuffer",p.onload=()=>{if(p.status==200||p.status==0&&p.response){g(p.response);return}f()},p.onerror=f,p.send(null)});var Ur=T.print||console.log.bind(console),dr=T.printErr||console.error.bind(console);Object.assign(T,we),we=null,T.arguments&&(Ye=T.arguments),T.thisProgram&&(ft=T.thisProgram),T.quit&&(Sn=T.quit);var Jt;T.wasmBinary&&(Jt=T.wasmBinary);function PA(u){for(var g=atob(u),f=new Uint8Array(g.length),p=0;p<g.length;++p)f[p]=g.charCodeAt(p);return f}function be(u){if(Un(u))return PA(u.slice(Gr.length))}var z,Te=!1,Mn,ze,de,St,Er,It,ne,kr,Kt;function Fn(){var u=z.buffer;T.HEAP8=ze=new Int8Array(u),T.HEAP16=St=new Int16Array(u),T.HEAPU8=de=new Uint8Array(u),T.HEAPU16=Er=new Uint16Array(u),T.HEAP32=It=new Int32Array(u),T.HEAPU32=ne=new Uint32Array(u),T.HEAPF32=kr=new Float32Array(u),T.HEAPF64=Kt=new Float64Array(u)}var Ct=[],Xe=[],Pt=[],M=!1;function vn(){if(T.preRun)for(typeof T.preRun=="function"&&(T.preRun=[T.preRun]);T.preRun.length;)xr(T.preRun.shift());ce(Ct)}function MA(){M=!0,ce(Xe)}function FA(){if(T.postRun)for(typeof T.postRun=="function"&&(T.postRun=[T.postRun]);T.postRun.length;)Re(T.postRun.shift());ce(Pt)}function xr(u){Ct.unshift(u)}function pt(u){Xe.unshift(u)}function Re(u){Pt.unshift(u)}var Le=0,Bt=null,Ge=null;function Lr(u){var g;Le++,(g=T.monitorRunDependencies)==null||g.call(T,Le)}function Nn(u){var f;if(Le--,(f=T.monitorRunDependencies)==null||f.call(T,Le),Le==0&&(Bt!==null&&(clearInterval(Bt),Bt=null),Ge)){var g=Ge;Ge=null,g()}}function fr(u){var f;(f=T.onAbort)==null||f.call(T,u),u="Aborted("+u+")",dr(u),Te=!0,Mn=1,u+=". Build with -sASSERTIONS for more info.";var g=new WebAssembly.RuntimeError(u);throw ae(g),g}var Gr="data:application/octet-stream;base64,",Un=u=>u.startsWith(Gr);function kn(){var u="data:application/octet-stream;base64,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BSQAAkAgAiADTA0AIARBgMAEcQ0AIAUgASACIANrIgNBgAIgA0GAAkkiARsQIxogAUUEQANAIAAgBUGAAhAcIANBgAJrIgNB/wFLDQALCyAAIAUgAxAcCyAFQYACaiQAC+UDAQV/IwBBEGsiAyQAIAMgACgCACIEQQhrKAIAIgI2AgwgAyAAIAJqNgIEIAMgBEEEaygCADYCCCADKAIIIgQgAUEAEB0hAiADKAIEIQUCQCACBEAgAygCDCEAIwBBQGoiASQAIAFBQGskAEEAIAUgABshAgwBCyMAQUBqIgIkACAAIAVOBEAgAkIANwIcIAJCADcCJCACQgA3AiwgAkIANwIUIAJBADYCECACIAE2AgwgAiAENgIEIAJBADYCPCACQoGAgICAgICAATcCNCACIAA2AgggBCACQQRqIAUgBUEBQQAgBCgCACgCFBEJACAAQQAgAigCHBshBgsgAkFAayQAIAYiAg0AIwBBQGoiAiQAIAJBADYCECACQezIADYCDCACIAA2AgggAiABNgIEQQAhACACQRRqQQBBJxAjGiACQQA2AjwgAkEBOgA7IAQgAkEEaiAFQQFBACAEKAIAKAIYEQgAAkACQAJAIAIoAigOAgABAgsgAigCGEEAIAIoAiRBAUYbQQAgAigCIEEBRhtBACACKAIsQQFGGyEADAELIAIoAhxBAUcEQCACKAIsDQEgAigCIEEBRw0BIAIoAiRBAUcNAQsgAigCFCEACyACQUBrJAAgACECCyADQRBqJAAgAgu0AQEFfyMAQRBrIgYkACAGQQRqIgIQQSMAQRBrIgUkAAJ/IAItAAtBB3YEQCACKAIEDAELIAItAAtB/wBxCyEEA0ACQAJ/IAItAAtBB3YEQCACKAIADAELIAILIQMgBSABOQMAIAICfyADIARBAWogBRBHIgNBAE4EQCADIARNDQIgAwwBCyAEQQF0QQFyCyIEECwMAQsLIAIgAxAsIAAgAhBAIAVBEGokACACEEQgBkEQaiQAC4AEAQN/IAJBgARPBEAgACABIAIQESAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAsLACABIAIgABBFGgvyAgICfwF+AkAgAkUNACAAIAE6AAAgACACaiIDQQFrIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0EDayABOgAAIANBAmsgAToAACACQQdJDQAgACABOgADIANBBGsgAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkEEayABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBCGsgATYCACACQQxrIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQRBrIAE2AgAgAkEUayABNgIAIAJBGGsgATYCACACQRxrIAE2AgAgBCADQQRxQRhyIgRrIgJBIEkNACABrUKBgICAEH4hBSADIARqIQEDQCABIAU3AxggASAFNwMQIAEgBTcDCCABIAU3AwAgAUEgaiEBIAJBIGsiAkEfSw0ACwsgAAsSACABQQF0QYDHAGpBAiAAEEULBQAQaQALiAECAX4FfwJAIABCgICAgBBUBEAgACECDAELA0AgAUEBayIBIAAgAEIKgCICQgp+fadBMHI6AAAgAEL/////nwFWIQYgAiEAIAYNAAsLIAJCAFIEQCACpyEDA0AgAUEBayIBIAMgA0EKbiIEQQps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IAAoAghBgICAgHhyNgIIIARBEGokAAwBCxAlAAsgACABNgIECyABAn8gAC0AC0EHdgRAIAAoAgAMAQsgAAsiAmogBRBDIAAgASAFaiIAEDAgBkEAOgAPIAAgAmogBi0ADzoAAAsgBkEQaiQADwsCfyAALQALQQd2BEAgACgCAAwBCyAACyEEIwBBEGsiAiQAAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0ACwsaIAAgARAwIAJBADoADyABIARqIAItAA86AAAgAkEQaiQACz0BAX8jAEEQayICJAAgAkEAOgAPA0AgAQRAIAAgAi0ADzoAACABQQFrIQEgAEEBaiEADAELCyACQRBqJAALGgAgAC0AC0EHdgRAIAAoAggaIAAoAgAQGAsL5gEBBX8jAEEQayIFJAAjAEEgayIDJAAjAEEQayIEJAAgBCAANgIMIAQgACABajYCCCADIAQoAgw2AhggAyAEKAIINgIcIARBEGokACADKAIYIQQgAygCHCEGIwBBEGsiASQAIAEgBjYCDCACIAQgBiAEayIEEDUgASACIARqNgIIIAMgASgCDDYCECADIAEoAgg2AhQgAUEQaiQAIAMgACADKAIQIABrajYCDCADIAIgAygCFCACa2o2AgggBSADKAIMNgIIIAUgAygCCDYCDCADQSBqJAAgBSgCDCEHIAVBEGokACAHC/MCAQV/IwBBEGsiByQAIAIgAUF/c0H3////B2pNBEACfyAALQALQQd2BEAgACgCAAwBCyAACyEIIAdBBGoiCSABQfP///8DSQR/IAcgAUEBdDYCDCAHIAEgAmo2AgQjAEEQayICJAAgCSgCACAHQQxqIgooAgBJIQsgAkEQaiQAIAogCSALGygCACICQQtPBH8gAkEIakF4cSICIAJBAWsiAiACQQtGGwVBCgtBAWoFQff///8HCxAvIAcoAgQhAiAHKAIIGiAEBEAgAiAIIAQQIgsgBQRAIAIgBGogBiAFECILIAMgBGshBiADIARHBEAgAiAEaiAFaiAEIAhqIAYQIgsgAUEKRwRAIAgQGAsgACACNgIAIAAgACgCCEGAgICAeHEgBygCCEH/////B3FyNgIIIAAgACgCCEGAgICAeHI2AgggACAEIAVqIAZqIgA2AgQgB0EAOgAMIAAgAmogBy0ADDoAACAHQRBqJAAPCxAlAAvHAwEFfyMAQRBrIgUkACAFIAI2AgwjAEGgAWsiAyQAIAMgACADQZ4BaiABGyIENgKUASADIAFBAWsiAEEAIAAgAU0bNgKYASADQQBBkAEQIyIAQX82AkwgAEEbNgIkIABBfzYCUCAAIABBnwFqNgIsIAAgAEGUAWo2AlQgBEEAOgAAQQAhAyMAQdABayIBJAAgASACNgLMASABQaABaiICQQBBKBAjGiABIAEoAswBNgLIAQJAQQAgAUHIAWogAUHQAGogAhBMQQBIBEBBfyECDAELIAAoAkxBAEghByAAIAAoAgAiBkFfcTYCAAJ/AkACQCAAKAIwRQRAIABB0AA2AjAgAEEANgIcIABCADcDECAAKAIsIQMgACABNgIsDAELIAAoAhANAQtBfyAAEE8NARoLIAAgAUHIAWogAUHQAGogAUGgAWoQTAshAiADBEAgAEEAQQAgACgCJBEDABogAEEANgIwIAAgAzYCLCAAQQA2AhwgACgCFCEDIABCADcDECACQX8gAxshAgsgACAAKAIAIgMgBkEgcXI2AgBBfyACIANBIHEbIQIgBw0ACyABQdABaiQAIABBoAFqJAAgBUEQaiQAIAILngUCBn4EfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQsgASkDACEDIAEpAwghByMAQSBrIggkACAHQv///////z+DIQQCfiAHQjCIQv//AYMiBaciCkGB+ABrQf0PTQRAIARCBIYgA0I8iIQhAiAKQYD4AGutIQUCQCADQv//////////D4MiA0KBgICAgICAgAhaBEAgAkIBfCECDAELIANCgICAgICAgIAIUg0AIAJCAYMgAnwhAgtCACACIAJC/////////wdWIgAbIQIgAK0gBXwMAQsCQCADIASEUA0AIAVC//8BUg0AIARCBIYgA0I8iIRCgICAgICAgASEIQJC/w8MAQtC/w8gCkH+hwFLDQAaQgBBgPgAQYH4ACAFUCIBGyIAIAprIglB8ABKDQAaIAMhAiAEIARCgICAgICAwACEIAEbIgYhBAJAQYABIAlrIgFBwABxBEAgAyABQUBqrYYhBEIAIQIMAQsgAUUNACAEIAGtIgWGIAJBwAAgAWutiIQhBCACIAWGIQILIAggAjcDECAIIAQ3AxgCQCAJQcAAcQRAIAYgCUFAaq2IIQNCACEGDAELIAlF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AgQgAEHM0AA2AgAgAkEQaiQAC2ACAX8BfCMAQRBrIgIkACACQQA2AgwgASgCBEGszAAgAkEMahAJIQMgAigCDCIBBEAgARABCyAAAn8gA5lEAAAAAAAA4EFjBEAgA6oMAQtBgICAgHgLNgI8IAJBEGokAAs3AQF/IwBBEGsiAiQAIAIgASgCPDYCCCAAQazMACACQQhqEAg2AgQgAEHM0AA2AgAgAkEQaiQACwvGRhAAQYAIC5Qic2V0QmVhdXR5AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAdW5zaWduZWQgc2hvcnQAdW5zaWduZWQgaW50AGluaXQAZmxvYXQAdWludDY0X3QAYmx1clJhZGl1cwB2ZWN0b3IAbWlycm9yAGF0dGFjaFNoYWRlcgBkZWxldGVTaGFkZXIAY3JlYXRlU2hhZGVyAGNvbXBpbGVTaGFkZXIAdW5zaWduZWQgY2hhcgBzdGQ6OmV4Y2VwdGlvbgBuYW4AbGlua1Byb2dyYW0AZGVsZXRlUHJvZ3JhbQBjcmVhdGVQcm9ncmFtAGJvb2wAc2V0V2F0ZXJNYXJrAHN0b3BXYXRlck1hcmsAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgAlZgBjbG9zZQBkb3VibGUAdmJNb2RlAHNoYWRlclNvdXJjZQB2b2lkAHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sATkFOAElORgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxmbG9hdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgB2ZWMyIGMgPSB2X3RleENvb3JkOwB2ZWMyIGMgPSB2ZWMyKDEuMCAtIHZfdGV4Q29vcmQueCwgdl90ZXhDb29yZC55KTsAQWxsSW4xAC4ALjAsAC4wKSpvKSoAKG51bGwpACkqby55KTsgICAgdmVjMiBjb29yZDIgPSB2ZWMyKGZsb2F0KAAgICAgYyA9IHZlYzIodl90ZXhDb29yZC54LCAxLjAgLSB2X3RleENvb3JkLnkpOyAgICB2ZWMyIGNvb3JkMSA9IHZlYzIoZmxvYXQoACksIChjLnkgLWNvb3JkMS55KSAvIG8ueSAvIGZsb2F0KAApKm8ueSk7ICAgIGlmIChjLnggPiBjb29yZDEueCAmJiBjLnggPCBjb29yZDIueCAmJiBjLnkgPiBjb29yZDEueSAmJiBjLnkgPCBjb29yZDIueSkgeyAgICAgIHZlYzQgd2F0ZXJDb2xvciA9IHRleHR1cmUod2F0ZXJNYXJrLCB2ZWMyKChjLnggLSBjb29yZDEueCkgIC8gby54IC8gZmxvYXQoACkgKiBvLngsIGZsb2F0KAApOyAgICAgdmVjMyBzbW9vdGhDb2xvciA9IG91dENvbG9yLnJnYiArIChvdXRDb2xvci5yZ2ItdmVjMyhoaWdoUGFzcykpKmFscGhhKjAuMTsgICAgIHNtb290aENvbG9yID0gY2xhbXAocG93KHNtb290aENvbG9yLCB2ZWMzKAApOyAgICBuZXdDb2xvci5yZ2IgPSB2ZWMzKG5ld0NvbG9yLnJnYiArIHZlYzMoAGcrPUcoYyx2ZWMyKAAgICAgdmVjMiBvZmZzZXQgPSB2ZWMyKABdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoADsgACkpLCB2ZWMzKDAuMCksIHZlYzMoMS4wKSk7ICAgIHZlYzMgc2NyZWVuID0gdmVjMygxLjApIC0gKHZlYzMoMS4wKS1zbW9vdGhDb2xvcikgKiAodmVjMygxLjApLW91dENvbG9yLnJnYik7ICAgICB2ZWMzIGxpZ2h0ZW4gPSBtYXgoc21vb3RoQ29sb3IsIG91dENvbG9yLnJnYik7ICAgICB2ZWMzIHNvZnRMaWdodCA9IDIuMCAqIG91dENvbG9yLnJnYipzbW9vdGhDb2xvciArIG91dENvbG9yLnJnYipvdXRDb2xvci5yZ2IgLSAyLjAgKiBvdXRDb2xvci5yZ2Iqb3V0Q29sb3IucmdiICogc21vb3RoQ29sb3I7ICAgICB2ZWM0IG5ld0NvbG9yID0gb3V0Q29sb3I7ICAgICBuZXdDb2xvci5yZ2IgPSBtaXgobWl4KG1peChuZXdDb2xvci5yZ2IsIHNjcmVlbiwgYWxwaGEpLCBsaWdodGVuLCBhbHBoYSksIHNvZnRMaWdodCwgACk7ICAgIGNvbnN0IG1hdDMgc2F0dXJhdGVNYXRyaXggPSBtYXQzKDEuMTEwMiwtMC4wNTk4LC0wLjA2MSwtMC4wNzc0LDEuMDgyNiwtMC4xMTg2LC0wLjAyMjgsLTAuMDIyOCwxLjE3NzIpOyAgICB2ZWMzIHNhdENvbG9yID0gbmV3Q29sb3IucmdiICogc2F0dXJhdGVNYXRyaXg7ICAgIG5ld0NvbG9yLnJnYiA9IG1peChuZXdDb2xvci5yZ2IsIHNhdENvbG9yLCAAICAgIHNhbXBsZUNvbG9yID0gc2FtcGxlQ29sb3IgLyA2Mi4wOyAgICAgZmxvYXQgaGlnaFBhc3MgPSBvdXRDb2xvci5nIC0gc2FtcGxlQ29sb3IgKyAwLjU7ICAgICBmb3IoaW50IGkgPSAwOyBpIDwgNTsgaSsrKSB7ICAgICAgIGlmIChoaWdoUGFzcyA8PSAwLjUpIHsgICAgICAgICBoaWdoUGFzcyA9IGhpZ2hQYXNzICogaGlnaFBhc3MgKiAyLjA7ICAgICAgIH0gZWxzZSB7ICAgICAgICAgaGlnaFBhc3MgPSAxLjAgLSAoKDEuMCAtIGhpZ2hQYXNzKSooMS4wIC0gaGlnaFBhc3MpICogMi4wKTsgICAgICAgfSAgICAgfSAgICAgY29uc3QgaGlnaHAgdmVjMyBXID0gdmVjMygwLjI5OSwwLjU4NywwLjExNCk7ICAgIGZsb2F0IGx1bWluYW5jZSA9IGRvdChvdXRDb2xvci5yZ2IsIFcpOyAgICAgZmxvYXQgYWxwaGEgPSBwb3cobHVtaW5hbmNlLCAAXSkuZyAqIAApKTsgICAgb3V0Q29sb3IgPSBtaXgob3V0Q29sb3IsIG5ld0NvbG9yLCAxLjApOyAgIAApKSk7ICAgICAgb3V0Q29sb3IgPSBtaXgob3V0Q29sb3Isd2F0ZXJDb2xvciwgIHdhdGVyQ29sb3IuYSk7ICAgIH0gICAgACk7ICAgIHZlYzIgYmx1ckNvb3JkaW5hdGVzWzI0XTsgICAgACAgICBmbG9hdCBzYW1wbGVDb2xvciA9IG91dENvbG9yLmcgKiAyMi4wOyAgICAgACN2ZXJzaW9uIDMwMCBlcwogICAgcHJlY2lzaW9uIGhpZ2hwIGZsb2F0OwogICAgdW5pZm9ybSBzYW1wbGVyMkQgZnJhbWU7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBtYXNrOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgYmc7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCB3YXRlck1hcms7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBsYXN0TWFzazsKICAgIGluIHZlYzIgdl90ZXhDb29yZDsKICAgIG91dCB2ZWM0IG91dENvbG9yOwogICAgdmVjNCBHKHZlYzIgYyx2ZWMyIHMpewogICAgICByZXR1cm4gdGV4dHVyZShmcmFtZSx0ZXh0dXJlKG1hc2ssYytzKS5hPjAuMz9jOmMrcyk7CiAgICB9CiAgICB2b2lkIG1haW4oKSB7CiAgICAgIAAKICAgIHZlYzQgZyA9IHZlYzQoMC4wKTsKICAgIAAKICAgICAgYy55ID0gMS4wIC0gYy55OwogICAgICB2ZWM0IHNyY19jb2xvciA9IHRleHR1cmUoZnJhbWUsIGMpOwogICAgICBmbG9hdCBhID0gdGV4dHVyZShtYXNrLCBjKS5hOwogICAgICBhID0gYTwwLjU/Mi4wKmEqYToxLjAtMi4wKigxLjAtYSkqKDEuMC1hKTsKICAgICAgLy8gZmxvYXQgYTIgPSB0ZXh0dXJlKGxhc3RNYXNrLCBjKS5hOwogICAgICAvLyBhMiA9IGEyPDAuNT8yLjAqYTIqYTI6MS4wLTIuMCooMS4wLWEyKSooMS4wLWEyKTsKICAgICAgLy8gZmxvYXQgZGVsdGEgPSBhIC0gYTI7CiAgICAgIC8vIGlmIChkZWx0YSA8IDAuMjUgJiYgZGVsdGEgPiAtMC4yNSkKICAgICAgLy8gewogICAgICAvLyAgICAgYSA9IGEgKyAwLjUqZGVsdGE7CiAgICAgIC8vIH0KICAgICAgCiAgICAgIHZlYzIgbyA9IDEuMCAvIHZlYzIodGV4dHVyZVNpemUoZnJhbWUsIDApKTsKICAgIAAKICAgICAgb3V0Q29sb3IgPSBnOwogIAAjdmVyc2lvbiAzMDAgZXMKaW4gdmVjMiBhX3Bvc2l0aW9uOwppbiB2ZWMyIGFfdGV4Q29vcmQ7Cm91dCB2ZWMyIHZfdGV4Q29vcmQ7CnZvaWQgbWFpbigpIHsKICBnbF9Qb3NpdGlvbiA9IHZlYzQoYV9wb3NpdGlvbi54LCBhX3Bvc2l0aW9uLnksIDAsIDEpOwogIHZfdGV4Q29vcmQgPSBhX3RleENvb3JkOwp9CgBvdXRDb2xvciA9IHNyY19jb2xvcjsKAG91dENvbG9yID0gbWl4KHRleHR1cmUoYmcsIGMpLHNyY19jb2xvcixhKTsKAG91dENvbG9yID0gbWl4KHZlYzQoMC4wLDEuMCwwLjAsMS4wKSxzcmNfY29sb3IsYSk7CgA2QWxsSW4xAJAmAABwFAAAUDZBbGxJbjEAAAAAFCcAAIAUAAAAAAAAeBQAAFBLNkFsbEluMQAAABQnAACcFAAAAQAAAHgUAABwcAB2AHZwAIwUAADcFAAATjEwZW1zY3JpcHRlbjN2YWxFAACQJgAAyBQAAHBwcAB2cHBwAAAAAMwlAACMFAAAgCYAAIAmAACAJgAAgCYAAIAmAAB2cHBkZGRkZABBoCoLyAjMJQAAjBQAAIAmAACAJgAAgCYAAIAmAAB2cHBkZGRkAMwlAACMFAAAdnBwAMwlAADcFAAA3BQAAIwUAADcFAAALCYAAMwlAADcFAAAsBUAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAACQJgAAcBUAANwUAADMJQAA3BQAANwUAABOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQAAkCYAAMgVAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAkCYAABAWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAJAmAABYFgAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAACQJgAApBYAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWNFRQAAkCYAAPAWAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUAAJAmAAAYFwAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaEVFAACQJgAAQBcAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXNFRQAAkCYAAGgXAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUAAJAmAACQFwAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaUVFAACQJgAAuBcAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWpFRQAAkCYAAOAXAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUAAJAmAAAIGAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbUVFAACQJgAAMBgAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXhFRQAAkCYAAFgYAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l5RUUAAJAmAACAGAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAACQJgAAqBgAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWRFRQAAkCYAANAYAAD+gitlRxVnQAAAAAAAADhDAAD6/kIudr86O568mvcMvb39/////98/PFRVVVVVxT+RKxfPVVWlPxfQpGcREYE/AAAAAAAAyELvOfr+Qi7mPyTEgv+9v84/tfQM1whrrD/MUEbSq7KDP4Q6Tpvg11U/AEH2Mgu7EPA/br+IGk87mzw1M/upPfbvP13c2JwTYHG8YYB3Pprs7z/RZocQel6QvIV/bugV4+8/E/ZnNVLSjDx0hRXTsNnvP/qO+SOAzou83vbdKWvQ7z9hyOZhTvdgPMibdRhFx+8/mdMzW+SjkDyD88bKPr7vP217g12mmpc8D4n5bFi17z/87/2SGrWOPPdHciuSrO8/0ZwvcD2+Pjyi0dMy7KPvPwtukIk0A2q8G9P+r2ab7z8OvS8qUlaVvFFbEtABk+8/VepOjO+AULzMMWzAvYrvPxb01bkjyZG84C2prpqC7z+vVVzp49OAPFGOpciYeu8/SJOl6hUbgLx7UX08uHLvPz0y3lXwH4+86o2MOPlq7z+/UxM/jImLPHXLb+tbY+8/JusRdpzZlrzUXASE4FvvP2AvOj737Jo8qrloMYdU7z+dOIbLguePvB3Z/CJQTe8/jcOmREFvijzWjGKIO0bvP30E5LAFeoA8ltx9kUk/7z+UqKjj/Y6WPDhidW56OO8/fUh08hhehzw/prJPzjHvP/LnH5grR4A83XziZUUr7z9eCHE/e7iWvIFj9eHfJO8/MasJbeH3gjzh3h/1nR7vP/q/bxqbIT28kNna0H8Y7z+0CgxygjeLPAsD5KaFEu8/j8vOiZIUbjxWLz6prwzvP7arsE11TYM8FbcxCv4G7z9MdKziAUKGPDHYTPxwAe8/SvjTXTndjzz/FmSyCPzuPwRbjjuAo4a88Z+SX8X27j9oUEvM7UqSvMupOjen8e4/ji1RG/gHmbxm2AVtruzuP9I2lD7o0XG895/lNNvn7j8VG86zGRmZvOWoE8Mt4+4/bUwqp0ifhTwiNBJMpt7uP4ppKHpgEpO8HICsBEXa7j9biRdIj6dYvCou9yEK1u4/G5pJZ5ssfLyXqFDZ9dHuPxGswmDtY0M8LYlhYAjO7j/vZAY7CWaWPFcAHe1Byu4/eQOh2uHMbjzQPMG1osbuPzASDz+O/5M83tPX8CrD7j+wr3q7zpB2PCcqNtXav+4/d+BU670dkzwN3f2ZsrzuP46jcQA0lI+8pyyddrK57j9Jo5PczN6HvEJmz6Latu4/XzgPvcbeeLyCT51WK7TuP/Zce+xGEoa8D5JdyqSx7j+O1/0YBTWTPNontTZHr+4/BZuKL7eYezz9x5fUEq3uPwlUHOLhY5A8KVRI3Qer7j/qxhlQhcc0PLdGWYomqe4/NcBkK+YylDxIIa0Vb6fuP592mWFK5Iy8Cdx2ueGl7j+oTe87xTOMvIVVOrB+pO4/rukriXhThLwgw8w0RqPuP1hYVnjdzpO8JSJVgjii7j9kGX6AqhBXPHOpTNRVoe4/KCJev++zk7zNO39mnqDuP4K5NIetEmq8v9oLdRKg7j/uqW2472djvC8aZTyyn+4/UYjgVD3cgLyElFH5fZ/uP88+Wn5kH3i8dF/s6HWf7j+wfYvASu6GvHSBpUian+4/iuZVHjIZhrzJZ0JW65/uP9PUCV7LnJA8P13eT2mg7j8dpU253DJ7vIcB63MUoe4/a8BnVP3slDwywTAB7aHuP1Vs1qvh62U8Yk7PNvOi7j9Cz7MvxaGIvBIaPlQnpO4/NDc78bZpk7wTzkyZiaXuPx7/GTqEXoC8rccjRhqn7j9uV3LYUNSUvO2SRJvZqO4/AIoOW2etkDyZZorZx6ruP7Tq8MEvt40826AqQuWs7j//58WcYLZlvIxEtRYyr+4/RF/zWYP2ezw2dxWZrrHuP4M9HqcfCZO8xv+RC1u07j8pHmyLuKldvOXFzbA3t+4/WbmQfPkjbLwPUsjLRLruP6r59CJDQ5K8UE7en4K97j9LjmbXbMqFvLoHynDxwO4/J86RK/yvcTyQ8KOCkcTuP7tzCuE10m08IyPjGWPI7j9jImIiBMWHvGXlXXtmzO4/1THi44YcizwzLUrsm9DuPxW7vNPRu5G8XSU+sgPV7j/SMe6cMcyQPFizMBOe2e4/s1pzboRphDy//XlVa97uP7SdjpfN34K8evPTv2vj7j+HM8uSdxqMPK3TWpmf6O4/+tnRSo97kLxmto0pB+7uP7qu3FbZw1W8+xVPuKLz7j9A9qY9DqSQvDpZ5Y1y+e4/NJOtOPTWaLxHXvvydv/uPzWKWGvi7pG8SgahMLAF7z/N3V8K1/90PNLBS5AeDO8/rJiS+vu9kbwJHtdbwhLvP7MMrzCubnM8nFKF3ZsZ7z+U/Z9cMuOOPHrQ/1+rIO8/rFkJ0Y/ghDxL0Vcu8SfvP2caTjivzWM8tecGlG0v7z9oGZJsLGtnPGmQ79wgN+8/0rXMgxiKgLz6w11VCz/vP2/6/z9drY+8fIkHSi1H7z9JqXU4rg2QvPKJDQiHT+8/pwc9poWjdDyHpPvcGFjvPw8iQCCekYK8mIPJFuNg7z+sksHVUFqOPIUy2wPmae8/S2sBrFk6hDxgtAHzIXPvPx8+tAch1YK8X5t7M5d87z/JDUc7uSqJvCmh9RRGhu8/04g6YAS2dDz2P4vnLpDvP3FynVHsxYM8g0zH+1Ga7z/wkdOPEvePvNqQpKKvpO8/fXQj4piujbzxZ44tSK/vPwggqkG8w448J1ph7hu67z8y66nDlCuEPJe6azcrxe8/7oXRMalkijxARW5bdtDvP+3jO+S6N468FL6crf3b7z+dzZFNO4l3PNiQnoHB5+8/icxgQcEFUzzxcY8rwvPvPwAAAAAAAAAAGQALABkZGQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAAZAAoKGRkZAwoHAAEACQsYAAAJBgsAAAsABhkAAAAZGRkAQcHDAAshDgAAAAAAAAAAGQALDRkZGQANAAACAAkOAAAACQAOAAAOAEH7wwALAQwAQYfEAAsVEwAAAAATAAAAAAkMAAAAAAAMAAAMAEG1xAALARAAQcHEAAsVDwAAAAQPAAAAAAkQAAAAAAAQAAAQAEHvxAALARIAQfvEAAseEQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoaAEGyxQALDhoAAAAaGhoAAAAAAAAJAEHjxQALARQAQe/FAAsVFwAAAAAXAAAAAAkUAAAAAAAUAAAUAEGdxgALARYAQanGAAulCRUAAAAAFQAAAAAJFgAAAAAAFgAAFgAAMDEyMzQ1Njc4OUFCQ0RFRgAAAAAKAAAAZAAAAOgDAAAQJwAAoIYBAEBCDwCAlpgAAOH1BQDKmjsAAAAAAAAAADAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5TjEwX19jeHhhYml2MTE2X19zaGltX3R5cGVfaW5mb0UAAAAAuCYAAEgkAADIJwAATjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FAAAAuCYAAHgkAABsJAAATjEwX19jeHhhYml2MTE3X19wYmFzZV90eXBlX2luZm9FAAAAuCYAAKgkAABsJAAATjEwX19jeHhhYml2MTE5X19wb2ludGVyX3R5cGVfaW5mb0UAuCYAANgkAADMJAAATjEwX19jeHhhYml2MTIwX19mdW5jdGlvbl90eXBlX2luZm9FAAAAALgmAAAIJQAAbCQAAE4xMF9fY3h4YWJpdjEyOV9fcG9pbnRlcl90b19tZW1iZXJfdHlwZV9pbmZvRQAAALgmAAA8JQAAzCQAAAAAAAC8JQAAHAAAAB0AAAAeAAAAHwAAACAAAABOMTBfX2N4eGFiaXYxMjNfX2Z1bmRhbWVudGFsX3R5cGVfaW5mb0UAuCYAAJQlAABsJAAAdgAAAIAlAADIJQAARG4AAIAlAADUJQAAYgAAAIAlAADgJQAAYwAAAIAlAADsJQAAaAAAAIAlAAD4JQAAYQAAAIAlAAAEJgAAcwAAAIAlAAAQJgAAdAAAAIAlAAAcJgAAaQAAAIAlAAAoJgAAagAAAIAlAAA0JgAAbAAAAIAlAABAJgAAbQAAAIAlAABMJgAAeAAAAIAlAABYJgAAeQAAAIAlAABkJgAAZgAAAIAlAABwJgAAZAAAAIAlAAB8JgAAAAAAAJwkAAAcAAAAIQAAAB4AAAAfAAAAIgAAACMAAAAkAAAAJQAAAAAAAAAAJwAAHAAAACYAAAAeAAAAHwAAACIAAAAnAAAAKAAAACkAAABOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UAAAAAuCYAANgmAACcJAAAAAAAAPwkAAAcAAAAKgAAAB4AAAAfAAAAKwAAAAAAAABMJwAALAAAAC0AAAAuAAAAU3Q5ZXhjZXB0aW9uAAAAAJAmAAA8JwAAAAAAAHgnAAAWAAAALwAAADAAAABTdDExbG9naWNfZXJyb3IAuCYAAGgnAABMJwAAAAAAAKwnAAAWAAAAMQAAADAAAABTdDEybGVuZ3RoX2Vycm9yAAAAALgmAACYJwAAeCcAAFN0OXR5cGVfaW5mbwAAAACQJgAAuCcAQdDPAAsHRxMAANAqAQ==";return u}var Vt;function Ir(u){if(u==Vt&&Jt)return new Uint8Array(Jt);var g=be(u);if(g)return g;if(Wt)return Wt(u);throw"both async and sync fetching of the wasm failed"}function jr(u){return Promise.resolve().then(()=>Ir(u))}function xn(u,g,f){return jr(u).then(p=>WebAssembly.instantiate(p,g)).then(f,p=>{dr(`failed to asynchronously prepare wasm: ${p}`),fr(p)})}function Ln(u,g,f,p){return xn(g,f,p)}function Mt(){return{a:nn}}function le(){var u=Mt();function g(p,w){return Me=p.exports,z=Me.y,Fn(),Vr=Me.B,pt(Me.z),Nn("wasm-instantiate"),Me}Lr("wasm-instantiate");function f(p){g(p.instance)}if(T.instantiateWasm)try{return T.instantiateWasm(u,g)}catch(p){dr(`Module.instantiateWasm callback failed with error: ${p}`),ae(p)}return Vt||(Vt=kn()),Ln(Jt,Vt,u,f).catch(ae),{}}var ce=u=>{for(;u.length>0;)u.shift()(T)},st=T.noExitRuntime||!0;class Ft{constructor(g){this.excPtr=g,this.ptr=g-24}set_type(g){ne[this.ptr+4>>2]=g}get_type(){return ne[this.ptr+4>>2]}set_destructor(g){ne[this.ptr+8>>2]=g}get_destructor(){return ne[this.ptr+8>>2]}set_caught(g){g=g?1:0,ze[this.ptr+12]=g}get_caught(){return ze[this.ptr+12]!=0}set_rethrown(g){g=g?1:0,ze[this.ptr+13]=g}get_rethrown(){return ze[this.ptr+13]!=0}init(g,f){this.set_adjusted_ptr(0),this.set_type(g),this.set_destructor(f)}set_adjusted_ptr(g){ne[this.ptr+16>>2]=g}get_adjusted_ptr(){return ne[this.ptr+16>>2]}get_exception_ptr(){var g=Sr(this.get_type());if(g)return ne[this.excPtr>>2];var f=this.get_adjusted_ptr();return f!==0?f:this.excPtr}}var m=0,oe=0,he=(u,g,f)=>{var p=new Ft(u);throw p.init(g,f),m=u,oe++,m},Cr=()=>{fr("")},Hr=(u,g,f,p,w)=>{},pr=()=>{for(var u=new Array(256),g=0;g<256;++g)u[g]=String.fromCharCode(g);$t=u},$t,F=u=>{for(var g="",f=u;de[f];)g+=$t[de[f++]];return g},at={},Se={},vt={},ct,$=u=>{throw new ct(u)},Br,ht=u=>{throw new Br(u)},Ze=(u,g,f)=>{u.forEach(function(b){vt[b]=g});function p(b){var U=f(b);U.length!==u.length&&ht("Mismatched type converter count");for(var k=0;k<u.length;++k)Ue(u[k],U[k])}var w=new Array(g.length),S=[],P=0;g.forEach((b,U)=>{Se.hasOwnProperty(b)?w[U]=Se[b]:(S.push(b),at.hasOwnProperty(b)||(at[b]=[]),at[b].push(()=>{w[U]=Se[b],++P,P===S.length&&p(w)}))}),S.length===0&&p(w)};function Gn(u,g,f={}){var p=g.name;if(u||$(`type "${p}" must have a positive integer typeid pointer`),Se.hasOwnProperty(u)){if(f.ignoreDuplicateRegistrations)return;$(`Cannot register type '${p}' twice`)}if(Se[u]=g,delete vt[u],at.hasOwnProperty(u)){var w=at[u];delete at[u],w.forEach(S=>S())}}function Ue(u,g,f={}){if(!("argPackAdvance"in g))throw new TypeError("registerType registeredInstance requires argPackAdvance");return Gn(u,g,f)}var qe=8,jn=(u,g,f,p)=>{g=F(g),Ue(u,{name:g,fromWireType:function(w){return!!w},toWireType:function(w,S){return S?f:p},argPackAdvance:qe,readValueFromPointer:function(w){return this.fromWireType(de[w])},destructorFunction:null})},Hn=u=>({count:u.count,deleteScheduled:u.deleteScheduled,preservePointerOnDelete:u.preservePointerOnDelete,ptr:u.ptr,ptrType:u.ptrType,smartPtr:u.smartPtr,smartPtrType:u.smartPtrType}),hr=u=>{function g(f){return f.$$.ptrType.registeredClass.name}$(g(u)+" instance already deleted")},mr=!1,Yr=u=>{},Yn=u=>{u.smartPtr?u.smartPtrType.rawDestructor(u.smartPtr):u.ptrType.registeredClass.rawDestructor(u.ptr)},et=u=>{u.count.value-=1;var g=u.count.value===0;g&&Yn(u)},tt=(u,g,f)=>{if(g===f)return u;if(f.baseClass===void 0)return null;var p=tt(u,g,f.baseClass);return p===null?null:f.downcast(p)},mt={},Qt=()=>Object.keys(zt).length,Xr=()=>{var u=[];for(var g in zt)zt.hasOwnProperty(g)&&u.push(zt[g]);return u},rt=[],gt=()=>{for(;rt.length;){var u=rt.pop();u.$$.deleteScheduled=!1,u.delete()}},l,Xn=u=>{l=u,rt.length&&l&&l(gt)},Wn=()=>{T.getInheritedInstanceCount=Qt,T.getLiveInheritedInstances=Xr,T.flushPendingDeletes=gt,T.setDelayFunction=Xn},zt={},K=(u,g)=>{for(g===void 0&&$("ptr should not be undefined");u.baseClass;)g=u.upcast(g),u=u.baseClass;return g},_t=(u,g)=>(g=K(u,g),zt[g]),Qr=(u,g)=>{(!g.ptrType||!g.ptr)&&ht("makeClassHandle requires ptr and ptrType");var f=!!g.smartPtrType,p=!!g.smartPtr;return f!==p&&ht("Both smartPtrType and smartPtr must be specified"),g.count={value:1},ge(Object.create(u,{$$:{value:g,writable:!0}}))};function Jn(u){var g=this.getPointee(u);if(!g)return this.destructor(u),null;var f=_t(this.registeredClass,g);if(f!==void 0){if(f.$$.count.value===0)return f.$$.ptr=g,f.$$.smartPtr=u,f.clone();var p=f.clone();return this.destructor(u),p}function w(){return this.isSmartPointer?Qr(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:g,smartPtrType:this,smartPtr:u}):Qr(this.registeredClass.instancePrototype,{ptrType:this,ptr:u})}var S=this.registeredClass.getActualType(g),P=mt[S];if(!P)return w.call(this);var b;this.isConst?b=P.constPointerType:b=P.pointerType;var U=tt(g,this.registeredClass,b.registeredClass);return U===null?w.call(this):this.isSmartPointer?Qr(b.registeredClass.instancePrototype,{ptrType:b,ptr:U,smartPtrType:this,smartPtr:u}):Qr(b.registeredClass.instancePrototype,{ptrType:b,ptr:U})}var ge=u=>typeof FinalizationRegistry=="undefined"?(ge=g=>g,u):(mr=new FinalizationRegistry(g=>{et(g.$$)}),ge=g=>{var f=g.$$,p=!!f.smartPtr;if(p){var w={$$:f};mr.register(g,w,g)}return g},Yr=g=>mr.unregister(g),ge(u)),We=()=>{Object.assign(Nt.prototype,{isAliasOf(u){if(!(this instanceof Nt)||!(u instanceof Nt))return!1;var g=this.$$.ptrType.registeredClass,f=this.$$.ptr;u.$$=u.$$;for(var p=u.$$.ptrType.registeredClass,w=u.$$.ptr;g.baseClass;)f=g.upcast(f),g=g.baseClass;for(;p.baseClass;)w=p.upcast(w),p=p.baseClass;return g===p&&f===w},clone(){if(this.$$.ptr||hr(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var u=ge(Object.create(Object.getPrototypeOf(this),{$$:{value:Hn(this.$$)}}));return u.$$.count.value+=1,u.$$.deleteScheduled=!1,u},delete(){this.$$.ptr||hr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&$("Object already scheduled for deletion"),Yr(this),et(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||hr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&$("Object already scheduled for deletion"),rt.push(this),rt.length===1&&l&&l(gt),this.$$.deleteScheduled=!0,this}})};function Nt(){}var Zt=(u,g)=>Object.defineProperty(g,"name",{value:u}),qt=(u,g,f)=>{if(u[g].overloadTable===void 0){var p=u[g];u[g]=function(...w){return u[g].overloadTable.hasOwnProperty(w.length)||$(`Function '${f}' called with an invalid number of arguments (${w.length}) - expects one of (${u[g].overloadTable})!`),u[g].overloadTable[w.length].apply(this,w)},u[g].overloadTable=[],u[g].overloadTable[p.argCount]=p}},lt=(u,g,f)=>{T.hasOwnProperty(u)?((f===void 0||T[u].overloadTable!==void 0&&T[u].overloadTable[f]!==void 0)&&$(`Cannot register public name '${u}' twice`),qt(T,u,u),T.hasOwnProperty(f)&&$(`Cannot register multiple overloads of a function with the same number of arguments (${f})!`),T[u].overloadTable[f]=g):(T[u]=g,f!==void 0&&(T[u].numArguments=f))},vA=48,Wr=57,Kn=u=>{if(u===void 0)return"_unknown";u=u.replace(/[^a-zA-Z0-9_]/g,"$");var g=u.charCodeAt(0);return g>=vA&&g<=Wr?`_${u}`:u};function Vn(u,g,f,p,w,S,P,b){this.name=u,this.constructor=g,this.instancePrototype=f,this.rawDestructor=p,this.baseClass=w,this.getActualType=S,this.upcast=P,this.downcast=b,this.pureVirtualFunctions=[]}var yt=(u,g,f)=>{for(;g!==f;)g.upcast||$(`Expected null or instance of ${f.name}, got an instance of ${g.name}`),u=g.upcast(u),g=g.baseClass;return u};function Jr(u,g){if(g===null)return this.isReference&&$(`null is not a valid ${this.name}`),0;g.$$||$(`Cannot pass "${Tr(g)}" as a ${this.name}`),g.$$.ptr||$(`Cannot pass deleted object as a pointer of type ${this.name}`);var f=g.$$.ptrType.registeredClass,p=yt(g.$$.ptr,f,this.registeredClass);return p}function Q(u,g){var f;if(g===null)return this.isReference&&$(`null is not a valid ${this.name}`),this.isSmartPointer?(f=this.rawConstructor(),u!==null&&u.push(this.rawDestructor,f),f):0;(!g||!g.$$)&&$(`Cannot pass "${Tr(g)}" as a ${this.name}`),g.$$.ptr||$(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&g.$$.ptrType.isConst&&$(`Cannot convert argument of type ${g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name} to parameter type ${this.name}`);var p=g.$$.ptrType.registeredClass;if(f=yt(g.$$.ptr,p,this.registeredClass),this.isSmartPointer)switch(g.$$.smartPtr===void 0&&$("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:g.$$.smartPtrType===this?f=g.$$.smartPtr:$(`Cannot convert argument of type ${g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:f=g.$$.smartPtr;break;case 2:if(g.$$.smartPtrType===this)f=g.$$.smartPtr;else{var w=g.clone();f=this.rawShare(f,Je.toHandle(()=>w.delete())),u!==null&&u.push(this.rawDestructor,f)}break;default:$("Unsupporting sharing policy")}return f}function _r(u,g){if(g===null)return this.isReference&&$(`null is not a valid ${this.name}`),0;g.$$||$(`Cannot pass "${Tr(g)}" as a ${this.name}`),g.$$.ptr||$(`Cannot pass deleted object as a pointer of type ${this.name}`),g.$$.ptrType.isConst&&$(`Cannot convert argument of type ${g.$$.ptrType.name} to parameter type ${this.name}`);var f=g.$$.ptrType.registeredClass,p=yt(g.$$.ptr,f,this.registeredClass);return p}function er(u){return this.fromWireType(ne[u>>2])}var Kr=()=>{Object.assign(tr.prototype,{getPointee(u){return this.rawGetPointee&&(u=this.rawGetPointee(u)),u},destructor(u){var g;(g=this.rawDestructor)==null||g.call(this,u)},argPackAdvance:qe,readValueFromPointer:er,fromWireType:Jn})};function tr(u,g,f,p,w,S,P,b,U,k,N){this.name=u,this.registeredClass=g,this.isReference=f,this.isConst=p,this.isSmartPointer=w,this.pointeeType=S,this.sharingPolicy=P,this.rawGetPointee=b,this.rawConstructor=U,this.rawShare=k,this.rawDestructor=N,!w&&g.baseClass===void 0?p?(this.toWireType=Jr,this.destructorFunction=null):(this.toWireType=_r,this.destructorFunction=null):this.toWireType=Q}var $n=(u,g,f)=>{T.hasOwnProperty(u)||ht("Replacing nonexistent public symbol"),T[u].overloadTable!==void 0&&f!==void 0?T[u].overloadTable[f]=g:(T[u]=g,T[u].argCount=f)},zn=(u,g,f)=>{u=u.replace(/p/g,"i");var p=T["dynCall_"+u];return p(g,...f)},yr=[],Vr,Dt=u=>{var g=yr[u];return g||(u>=yr.length&&(yr.length=u+1),yr[u]=g=Vr.get(u)),g},rr=(u,g,f=[])=>{if(u.includes("j"))return zn(u,g,f);var p=Dt(g)(...f);return p},Ut=(u,g)=>(...f)=>rr(u,g,f),nt=(u,g)=>{u=F(u);function f(){return u.includes("j")?Ut(u,g):Dt(g)}var p=f();return typeof p!="function"&&$(`unknown function pointer with signature ${u}: ${g}`),p},Dr=(u,g)=>{var f=Zt(g,function(p){this.name=g,this.message=p;var w=new Error(p).stack;w!==void 0&&(this.stack=this.toString()+`
31
- `+w.replace(/^Error(:[^\n]*)?\n/,""))});return f.prototype=Object.create(u.prototype),f.prototype.constructor=f,f.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},f},$r,At=u=>{var g=ar(u),f=F(g);return Ve(g),f},wt=(u,g)=>{var f=[],p={};function w(S){if(!p[S]&&!Se[S]){if(vt[S]){vt[S].forEach(w);return}f.push(S),p[S]=!0}}throw g.forEach(w),new $r(`${u}: `+f.map(At).join([", "]))},Zn=(u,g,f,p,w,S,P,b,U,k,N,ee,Ae)=>{N=F(N),S=nt(w,S),b&&(b=nt(P,b)),k&&(k=nt(U,k)),Ae=nt(ee,Ae);var ie=Kn(N);lt(ie,function(){wt(`Cannot construct ${N} due to unbound types`,[p])}),Ze([u,g,f],p?[p]:[],Ee=>{var Pr,An;Ee=Ee[0];var Fe,Oe;p?(Fe=Ee.registeredClass,Oe=Fe.instancePrototype):Oe=Nt.prototype;var me=Zt(N,function(...Rt){if(Object.getPrototypeOf(this)!==dt)throw new ct("Use 'new' to construct "+N);if(Qe.constructor_body===void 0)throw new ct(N+" has no accessible constructor");var on=Qe.constructor_body[Rt.length];if(on===void 0)throw new ct(`Tried to invoke ctor of ${N} with invalid number of parameters (${Rt.length}) - expected (${Object.keys(Qe.constructor_body).toString()}) parameters instead!`);return on.apply(this,Rt)}),dt=Object.create(Oe,{constructor:{value:me}});me.prototype=dt;var Qe=new Vn(N,me,dt,Ae,Fe,S,b,k);Qe.baseClass&&((An=(Pr=Qe.baseClass).__derivedClasses)!=null||(Pr.__derivedClasses=[]),Qe.baseClass.__derivedClasses.push(Qe));var je=new tr(N,Qe,!0,!1,!1),He=new tr(N+"*",Qe,!1,!1,!1),Ot=new tr(N+" const*",Qe,!1,!0,!1);return mt[u]={pointerType:He,constPointerType:Ot},$n(ie,me),[je,He,Ot]})},zr=(u,g)=>{for(var f=[],p=0;p<u;p++)f.push(ne[g+p*4>>2]);return f},wr=u=>{for(;u.length;){var g=u.pop(),f=u.pop();f(g)}};function qn(u){for(var g=1;g<u.length;++g)if(u[g]!==null&&u[g].destructorFunction===void 0)return!0;return!1}function Zr(u,g,f,p,w,S){var P=g.length;P<2&&$("argTypes array size mismatch! Must at least get return value and 'this' types!");var b=g[1]!==null&&f!==null,U=qn(g),k=g[0].name!=="void",N=P-2,ee=new Array(N),Ae=[],ie=[],Ee=function(...Fe){Fe.length!==N&&$(`function ${u} called with ${Fe.length} arguments, expected ${N}`),ie.length=0;var Oe;Ae.length=b?2:1,Ae[0]=w,b&&(Oe=g[1].toWireType(ie,this),Ae[1]=Oe);for(var me=0;me<N;++me)ee[me]=g[me+2].toWireType(ie,Fe[me]),Ae.push(ee[me]);var dt=p(...Ae);function Qe(je){if(U)wr(ie);else for(var He=b?1:2;He<g.length;He++){var Ot=He===1?Oe:ee[He-2];g[He].destructorFunction!==null&&g[He].destructorFunction(Ot)}if(k)return g[0].fromWireType(je)}return Qe(dt)};return Zt(u,Ee)}var eA=(u,g,f,p,w,S)=>{var P=zr(g,f);w=nt(p,w),Ze([],[u],b=>{b=b[0];var U=`constructor ${b.name}`;if(b.registeredClass.constructor_body===void 0&&(b.registeredClass.constructor_body=[]),b.registeredClass.constructor_body[g-1]!==void 0)throw new ct(`Cannot register multiple constructors with identical number of parameters (${g-1}) for class '${b.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return b.registeredClass.constructor_body[g-1]=()=>{wt(`Cannot construct ${b.name} due to unbound types`,P)},Ze([],P,k=>(k.splice(1,0,null),b.registeredClass.constructor_body[g-1]=Zr(U,k,null,w,S),[])),[]})},tA=u=>{u=u.trim();let g=u.indexOf("(");return g!==-1?u.substr(0,g):u},rA=(u,g,f,p,w,S,P,b,U)=>{var k=zr(f,p);g=F(g),g=tA(g),S=nt(w,S),Ze([],[u],N=>{N=N[0];var ee=`${N.name}.${g}`;g.startsWith("@@")&&(g=Symbol[g.substring(2)]),b&&N.registeredClass.pureVirtualFunctions.push(g);function Ae(){wt(`Cannot call ${ee} due to unbound types`,k)}var ie=N.registeredClass.instancePrototype,Ee=ie[g];return Ee===void 0||Ee.overloadTable===void 0&&Ee.className!==N.name&&Ee.argCount===f-2?(Ae.argCount=f-2,Ae.className=N.name,ie[g]=Ae):(qt(ie,g,ee),ie[g].overloadTable[f-2]=Ae),Ze([],k,Fe=>{var Oe=Zr(ee,Fe,N,S,P,U);return ie[g].overloadTable===void 0?(Oe.argCount=f-2,ie[g]=Oe):ie[g].overloadTable[f-2]=Oe,[]}),[]})},br=(u,g,f)=>(u instanceof Object||$(`${f} with invalid "this": ${u}`),u instanceof g.registeredClass.constructor||$(`${f} incompatible with "this" of type ${u.constructor.name}`),u.$$.ptr||$(`cannot call emscripten binding method ${f} on deleted object`),yt(u.$$.ptr,u.$$.ptrType.registeredClass,g.registeredClass)),te=(u,g,f,p,w,S,P,b,U,k)=>{g=F(g),w=nt(p,w),Ze([],[u],N=>{N=N[0];var ee=`${N.name}.${g}`,Ae={get(){wt(`Cannot access ${ee} due to unbound types`,[f,P])},enumerable:!0,configurable:!0};return U?Ae.set=()=>wt(`Cannot access ${ee} due to unbound types`,[f,P]):Ae.set=ie=>$(ee+" is a read-only property"),Object.defineProperty(N.registeredClass.instancePrototype,g,Ae),Ze([],U?[f,P]:[f],ie=>{var Ee=ie[0],Fe={get(){var me=br(this,N,ee+" getter");return Ee.fromWireType(w(S,me))},enumerable:!0};if(U){U=nt(b,U);var Oe=ie[1];Fe.set=function(me){var dt=br(this,N,ee+" setter"),Qe=[];U(k,dt,Oe.toWireType(Qe,me)),wr(Qe)}}return Object.defineProperty(N.registeredClass.instancePrototype,g,Fe),[]}),[]})},nr=[],Ce=[],ke=u=>{u>9&&--Ce[u+1]===0&&(Ce[u]=void 0,nr.push(u))},nA=()=>Ce.length/2-5-nr.length,AA=()=>{Ce.push(0,1,void 0,1,null,1,!0,1,!1,1),T.count_emval_handles=nA},Je={toValue:u=>(u||$("Cannot use deleted val. handle = "+u),Ce[u]),toHandle:u=>{switch(u){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let g=nr.pop()||Ce.length;return Ce[g]=u,Ce[g+1]=1,g}}}},W={name:"emscripten::val",fromWireType:u=>{var g=Je.toValue(u);return ke(u),g},toWireType:(u,g)=>Je.toHandle(g),argPackAdvance:qe,readValueFromPointer:er,destructorFunction:null},iA=u=>Ue(u,W),Tr=u=>{if(u===null)return"null";var g=typeof u;return g==="object"||g==="array"||g==="function"?u.toString():""+u},qr=(u,g)=>{switch(g){case 4:return function(f){return this.fromWireType(kr[f>>2])};case 8:return function(f){return this.fromWireType(Kt[f>>3])};default:throw new TypeError(`invalid float width (${g}): ${u}`)}},a=(u,g,f)=>{g=F(g),Ue(u,{name:g,fromWireType:p=>p,toWireType:(p,w)=>w,argPackAdvance:qe,readValueFromPointer:qr(g,f),destructorFunction:null})},se=(u,g,f)=>{switch(g){case 1:return f?p=>ze[p]:p=>de[p];case 2:return f?p=>St[p>>1]:p=>Er[p>>1];case 4:return f?p=>It[p>>2]:p=>ne[p>>2];default:throw new TypeError(`invalid integer width (${g}): ${u}`)}},oA=(u,g,f,p,w)=>{g=F(g),w===-1&&(w=4294967295);var S=N=>N;if(p===0){var P=32-8*f;S=N=>N<<P>>>P}var b=g.includes("unsigned"),U=(N,ee)=>{},k;b?k=function(N,ee){return U(ee,this.name),ee>>>0}:k=function(N,ee){return U(ee,this.name),ee},Ue(u,{name:g,fromWireType:S,toWireType:k,argPackAdvance:qe,readValueFromPointer:se(g,f,p!==0),destructorFunction:null})},sA=(u,g,f)=>{var p=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],w=p[g];function S(P){var b=ne[P>>2],U=ne[P+4>>2];return new w(ze.buffer,U,b)}f=F(f),Ue(u,{name:f,fromWireType:S,argPackAdvance:qe,readValueFromPointer:S},{ignoreDuplicateRegistrations:!0})},aA=(u,g,f,p)=>{if(!(p>0))return 0;for(var w=f,S=f+p-1,P=0;P<u.length;++P){var b=u.charCodeAt(P);if(b>=55296&&b<=57343){var U=u.charCodeAt(++P);b=65536+((b&1023)<<10)|U&1023}if(b<=127){if(f>=S)break;g[f++]=b}else if(b<=2047){if(f+1>=S)break;g[f++]=192|b>>6,g[f++]=128|b&63}else if(b<=65535){if(f+2>=S)break;g[f++]=224|b>>12,g[f++]=128|b>>6&63,g[f++]=128|b&63}else{if(f+3>=S)break;g[f++]=240|b>>18,g[f++]=128|b>>12&63,g[f++]=128|b>>6&63,g[f++]=128|b&63}}return g[f]=0,f-w},cA=(u,g,f)=>aA(u,de,g,f),gA=u=>{for(var g=0,f=0;f<u.length;++f){var p=u.charCodeAt(f);p<=127?g++:p<=2047?g+=2:p>=55296&&p<=57343?(g+=4,++f):g+=3}return g},en=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,lA=(u,g,f)=>{for(var p=g+f,w=g;u[w]&&!(w>=p);)++w;if(w-g>16&&u.buffer&&en)return en.decode(u.subarray(g,w));for(var S="";g<w;){var P=u[g++];if(!(P&128)){S+=String.fromCharCode(P);continue}var b=u[g++]&63;if((P&224)==192){S+=String.fromCharCode((P&31)<<6|b);continue}var U=u[g++]&63;if((P&240)==224?P=(P&15)<<12|b<<6|U:P=(P&7)<<18|b<<12|U<<6|u[g++]&63,P<65536)S+=String.fromCharCode(P);else{var k=P-65536;S+=String.fromCharCode(55296|k>>10,56320|k&1023)}}return S},uA=(u,g)=>u?lA(de,u,g):"",Ar=(u,g)=>{g=F(g);var f=g==="std::string";Ue(u,{name:g,fromWireType(p){var w=ne[p>>2],S=p+4,P;if(f)for(var b=S,U=0;U<=w;++U){var k=S+U;if(U==w||de[k]==0){var N=k-b,ee=uA(b,N);P===void 0?P=ee:(P+=String.fromCharCode(0),P+=ee),b=k+1}}else{for(var Ae=new Array(w),U=0;U<w;++U)Ae[U]=String.fromCharCode(de[S+U]);P=Ae.join("")}return Ve(p),P},toWireType(p,w){w instanceof ArrayBuffer&&(w=new Uint8Array(w));var S,P=typeof w=="string";P||w instanceof Uint8Array||w instanceof Uint8ClampedArray||w instanceof Int8Array||$("Cannot pass non-string to std::string"),f&&P?S=gA(w):S=w.length;var b=Tt(4+S+1),U=b+4;if(ne[b>>2]=S,f&&P)cA(w,U,S+1);else if(P)for(var k=0;k<S;++k){var N=w.charCodeAt(k);N>255&&(Ve(U),$("String has UTF-16 code units that do not fit in 8 bits")),de[U+k]=N}else for(var k=0;k<S;++k)de[U+k]=w[k];return p!==null&&p.push(Ve,b),b},argPackAdvance:qe,readValueFromPointer:er,destructorFunction(p){Ve(p)}})},kt=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,Or=(u,g)=>{for(var f=u,p=f>>1,w=p+g/2;!(p>=w)&&Er[p];)++p;if(f=p<<1,f-u>32&&kt)return kt.decode(de.subarray(u,f));for(var S="",P=0;!(P>=g/2);++P){var b=St[u+P*2>>1];if(b==0)break;S+=String.fromCharCode(b)}return S},Pe=(u,g,f)=>{if(f!=null||(f=2147483647),f<2)return 0;f-=2;for(var p=g,w=f<u.length*2?f/2:u.length,S=0;S<w;++S){var P=u.charCodeAt(S);St[g>>1]=P,g+=2}return St[g>>1]=0,g-p},dA=u=>u.length*2,EA=(u,g)=>{for(var f=0,p="";!(f>=g/4);){var w=It[u+f*4>>2];if(w==0)break;if(++f,w>=65536){var S=w-65536;p+=String.fromCharCode(55296|S>>10,56320|S&1023)}else p+=String.fromCharCode(w)}return p},fA=(u,g,f)=>{if(f!=null||(f=2147483647),f<4)return 0;for(var p=g,w=p+f-4,S=0;S<u.length;++S){var P=u.charCodeAt(S);if(P>=55296&&P<=57343){var b=u.charCodeAt(++S);P=65536+((P&1023)<<10)|b&1023}if(It[g>>2]=P,g+=4,g+4>w)break}return It[g>>2]=0,g-p},ir=u=>{for(var g=0,f=0;f<u.length;++f){var p=u.charCodeAt(f);p>=55296&&p<=57343&&++f,g+=4}return g},or=(u,g,f)=>{f=F(f);var p,w,S,P;g===2?(p=Or,w=Pe,P=dA,S=b=>Er[b>>1]):g===4&&(p=EA,w=fA,P=ir,S=b=>ne[b>>2]),Ue(u,{name:f,fromWireType:b=>{for(var U=ne[b>>2],k,N=b+4,ee=0;ee<=U;++ee){var Ae=b+4+ee*g;if(ee==U||S(Ae)==0){var ie=Ae-N,Ee=p(N,ie);k===void 0?k=Ee:(k+=String.fromCharCode(0),k+=Ee),N=Ae+g}}return Ve(b),k},toWireType:(b,U)=>{typeof U!="string"&&$(`Cannot pass non-string to C++ string type ${f}`);var k=P(U),N=Tt(4+k+g);return ne[N>>2]=k/g,w(U,N+4,k+g),b!==null&&b.push(Ve,N),N},argPackAdvance:qe,readValueFromPointer:er,destructorFunction(b){Ve(b)}})},tn=(u,g)=>{g=F(g),Ue(u,{isVoid:!0,name:g,argPackAdvance:0,fromWireType:()=>{},toWireType:(f,p)=>{}})},IA=(u,g,f)=>de.copyWithin(u,g,g+f),sr=(u,g)=>{var f=Se[u];return f===void 0&&$(`${g} has unknown type ${At(u)}`),f},ue=(u,g,f)=>{var p=[],w=u.toWireType(p,f);return p.length&&(ne[g>>2]=Je.toHandle(p)),w},CA=(u,g,f)=>(u=Je.toValue(u),g=sr(g,"emval::as"),ue(g,f,u)),pA={},xt=u=>{var g=pA[u];return g===void 0?F(u):g},Lt=[],Gt=(u,g,f,p,w)=>(u=Lt[u],g=Je.toValue(g),f=xt(f),u(g,g[f],p,w)),BA=u=>{var g=Lt.length;return Lt.push(u),g},hA=(u,g)=>{for(var f=new Array(u),p=0;p<u;++p)f[p]=sr(ne[g+p*4>>2],"parameter "+p);return f},Ke=Reflect.construct,bt=(u,g,f)=>{var p=hA(u,g),w=p.shift();u--;var S=new Array(u),P=(U,k,N,ee)=>{for(var Ae=0,ie=0;ie<u;++ie)S[ie]=p[ie].readValueFromPointer(ee+Ae),Ae+=p[ie].argPackAdvance;var Ee=f===1?Ke(k,S):k.apply(U,S);return ue(w,N,Ee)},b=`methodCaller<(${p.map(U=>U.name).join(", ")}) => ${w.name}>`;return BA(Zt(b,P))},J=u=>{u>9&&(Ce[u+1]+=1)},Rr=u=>{var g=Je.toValue(u);wr(g),ke(u)},mA=(u,g)=>{u=sr(u,"_emval_take_value");var f=u.readValueFromPointer(g);return Je.toHandle(f)},rn=u=>{fr("OOM")},ut=u=>{var g=de.length;u>>>=0,rn(u)};pr(),ct=T.BindingError=class extends Error{constructor(g){super(g),this.name="BindingError"}},Br=T.InternalError=class extends Error{constructor(g){super(g),this.name="InternalError"}},We(),Wn(),Kr(),$r=T.UnboundTypeError=Dr(Error,"UnboundTypeError"),AA();var nn={v:he,p:Cr,o:Hr,t:jn,x:Zn,w:eA,h:rA,k:te,s:iA,n:a,g:oA,a:sA,m:Ar,l:or,u:tn,r:IA,j:CA,e:Gt,c:ke,f:bt,d:J,b:Rr,i:mA,q:ut},Me=le(),QA=()=>(QA=Me.z)(),Tt=u=>(Tt=Me.A)(u),ar=u=>(ar=Me.C)(u),Ve=u=>(Ve=Me.D)(u),Sr=u=>(Sr=Me.E)(u),jt=T._vertexShaderSource=10192,cr;Ge=function u(){cr||Ht(),cr||(Ge=u)};function Ht(){if(Le>0||(vn(),Le>0))return;function u(){cr||(cr=!0,T.calledRun=!0,!Te&&(MA(),fe(T),T.onRuntimeInitialized&&T.onRuntimeInitialized(),FA()))}T.setStatus?(T.setStatus("Running..."),setTimeout(function(){setTimeout(function(){T.setStatus("")},1),u()},1)):u()}if(T.preInit)for(typeof T.preInit=="function"&&(T.preInit=[T.preInit]);T.preInit.length>0;)T.preInit.pop()();return Ht(),q=ye,q}})(),li=_c;var bn=class{constructor(R,n){Be(this,"canvas");Be(this,"locateFile");Be(this,"_glName");Be(this,"_solutionWasm");Be(this,"ctx");Be(this,"fileDownloader");Be(this,"pl",{onResults:R=>this.onResults(R.get(0).glName)});this.locateFile=q=>`${R}/${q}`,this.fileDownloader=n}bindTexture(){var R;(R=this.ctx)==null||R.activeTexture(this.ctx.TEXTURE0),this.bindTexture2d(this._glName)}async initialize(){this._solutionWasm=new this.SolutionWasm;let R=new this.StringList;R.push_back("segmentation_mask");let n=this.PacketListener.implement(this.pl);return this._solutionWasm.attachMultiListener(R,n),R.delete(),this._solutionWasm.loadGraph(await this.fileDownloader.download(this.locateFile("selfie_segmentation.binarypb"),{type:"arraybuffer"})),this}setCanvas(R){this.canvas=R,this.createContext(R,!0,!0,{}),this._glName=this.createTexture()}fetchResponse(R){return this.fileDownloader.downloadWithFetch(R,"fetch-response")}loadWasm(R,n){return this.fileDownloader.loadWasm(R,n)}async changeModel(R="selfie_segmentation_landscape.tflite"){R=typeof R=="string"?await this.fileDownloader.download(this.locateFile(R),{type:"arraybuffer"}):R,this._solutionWasm.overrideFile("third_party/mediapipe/modules/selfie_segmentation/selfie_segmentation_landscape.tflite",R);let n=new this.GraphOptionChangeRequestList;n.push_back({calculatorIndex:1,calculatorName:"",calculatorType:"GlScalerCalculator",fieldName:"flip_horizontal",valueBoolean:!1,valueNumber:0,valueString:""}),n.push_back({calculatorIndex:0,calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelSelection",fieldName:"int_value",valueBoolean:!1,valueNumber:1,valueString:""}),n.push_back({calculatorIndex:0,calculatorType:"InferenceCalculator",calculatorName:"",fieldName:"use_cpu_inference",valueBoolean:!1,valueNumber:0,valueString:""}),this._solutionWasm.changeOptions(n)}send(R,n){let q=new this.PacketDataList;q.pushTexture2d({stream:"input_frames_gpu",timestamp:performance.now()*1e3,glName:this._glName,width:R,height:n}),this._solutionWasm.send(q),q.delete()}close(){var R,n,q;(R=this.canvas)==null||delete R.getContext,delete this.readyPromiseResolve,delete this.readyPromiseReject,this.pl.onResults=null,delete this.onResults,(n=this.deleteTexture)==null||n.call(this,this._glName),(q=this._solutionWasm)==null||q.delete();for(let T of Object.keys(this))delete this[T]}};var Tn=0,Rn=class Rn{constructor(R){this.core=R;Be(this,"seq");Be(this,"_core");Be(this,"log");Be(this,"preLoadPromise");Be(this,"startResolve");Be(this,"startReject");Be(this,"mediaPipeSolutions");Be(this,"assetsPath");Tn=Tn+1,this.seq=Tn,this._core=R,this.log=R.log.createChild({id:`${this.getAlias()}${Tn}`}),this.log.info("created"),R.assetsPath&&(this.preLoadPromise=this.preload(R.assetsPath))}async preload(R="https://web.sdk.qcloud.com/trtc/webrtc/v5/assets/"){try{this._core.room.videoManager.Wasm||(this._core.room.videoManager.Wasm=await li()),this.assetsPath=`${R}/selfie_segmentation/`;let n=new bn(this.assetsPath,this._core.fileDownloader);this.mediaPipeSolutions=await gi(n),await this.mediaPipeSolutions.initialize(),await this._core.room.videoManager.initVirtualBackground(this.mediaPipeSolutions)}catch(n){let{RtcError:q,ErrorCode:T}=this._core.errorModule;throw new q({code:T.INVALID_OPERATION,message:`VirtualBackground preload error, please check your assetsPath. detail: ${n}`})}}getName(){return Rn.Name}getAlias(){return"vb"}getValidateRule(R){switch(R){case"start":return si(this._core);case"update":return ai(this._core);case"stop":return ci(this._core)}}getGroup(){return"vb"}async start(R){let{type:n="blur",src:q,blurLevel:T=3}=R,{auth:fe,sign:ae,timestamp:ye}=await oi({sdkAppId:R.sdkAppId,userId:R.userId,userSig:R.userSig,core:this._core});if(!fe){let{RtcError:Ne,ErrorCode:De,ErrorCodeDictionary:we}=this._core.errorModule;throw new Ne({code:De.SERVER_ERROR,extraCode:we.NEED_TO_BUY,messageParams:{value:"Virtual Background",url:"https://cloud.tencent.com/document/product/647/85386"}})}return this.preLoadPromise||(this.preLoadPromise=this.preload(this._core.assetsPath)),await this.preLoadPromise,this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:q,blurLevel:T})}async update(R){let{type:n,src:q}=R;return this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:q,blurLevel:R.blurLevel})}async stop(){return this.core.room.videoManager.setVirtualBackground()}};Be(Rn,"Name","VirtualBackground");var On=Rn;var yc=On;return hc(Dc);})().default;
20
+ `),I+=`}
21
+ `,v.push(I),Pn(Function,v).apply(null,N)}function ti(e,t){let r=[];for(let o=0;o<e;o++)r.push(b[(t>>2)+o]);return r}function Xo(e,t,r,o,a,s,A){let c=ti(r,o);t=xe(t),s=At(a,s),X([],[e],u=>{u=u[0];let d=`${u.name}.${t}`;function h(){Xr(`Cannot call ${d} due to unbound types`,c)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]);let m=u.registeredClass.constructor;return m[t]===void 0?(h.argCount=r-1,m[t]=h):(dr(m,t,d),m[t].overloadTable[r-1]=h),X([],c,I=>{let y=[I[0],null].concat(I.slice(1)),v=Wr(d,y,null,s,A);return m[t].overloadTable===void 0?(v.argCount=r-1,m[t]=v):m[t].overloadTable[r-1]=v,[]}),[]})}function Wo(e,t,r,o,a,s){z(t>0);let A=ti(t,r);a=At(o,a),X([],[e],c=>{c=c[0];let u=`constructor ${c.name}`;if(c.registeredClass.constructor_body===void 0&&(c.registeredClass.constructor_body=[]),c.registeredClass.constructor_body[t-1]!==void 0)throw new ae(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${c.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return c.registeredClass.constructor_body[t-1]=function(){Xr(`Cannot construct ${c.name} due to unbound types`,A)},X([],A,d=>(d.splice(1,0,null),c.registeredClass.constructor_body[t-1]=Wr(u,d,null,a,s),[])),[]})}function fo(e,t,r,o,a,s,A,c){let u=ti(r,o);t=xe(t),s=At(a,s),X([],[e],d=>{d=d[0];let h=`${d.name}.${t}`;t.startsWith("@@")&&(t=Symbol[t.substring(2)]),c&&d.registeredClass.pureVirtualFunctions.push(t);function m(){Xr(`Cannot call ${h} due to unbound types`,u)}let I=d.registeredClass.instancePrototype,y=I[t];return y===void 0||y.overloadTable===void 0&&y.className!==d.name&&y.argCount===r-2?(m.argCount=r-2,m.className=d.name,I[t]=m):(dr(I,t,h),I[t].overloadTable[r-2]=m),X([],u,v=>{let N=Wr(h,v,d,s,A);return I[t].overloadTable===void 0?(N.argCount=r-2,I[t]=N):I[t].overloadTable[r-2]=N,[]}),[]})}function go(e,t,r){return e instanceof Object||Ae(`${r} with invalid "this": ${e}`),e instanceof t.registeredClass.constructor||Ae(`${r} incompatible with "this" of type ${e.constructor.name}`),e.$$.ptr||Ae(`cannot call emscripten binding method ${r} on deleted object`),Br(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)}function Eo(e,t,r,o,a,s,A,c,u,d){t=xe(t),a=At(o,a),X([],[e],h=>{h=h[0];let m=`${h.name}.${t}`,I={get(){Xr(`Cannot access ${m} due to unbound types`,[r,A])},enumerable:!0,configurable:!0};return u?I.set=function(){Xr(`Cannot access ${m} due to unbound types`,[r,A])}:I.set=function(y){Ae(`${m} is a read-only property`)},Object.defineProperty(h.registeredClass.instancePrototype,t,I),X([],u?[r,A]:[r],y=>{let v=y[0],N={get(){let H=go(this,h,`${m} getter`);return v.fromWireType(a(s,H))},enumerable:!0};if(u){u=At(c,u);let H=y[1];N.set=function(R){let D=go(this,h,`${m} setter`),k=[];u(d,D,H.toWireType(k,R)),_(k)}}return Object.defineProperty(h.registeredClass.instancePrototype,t,N),[]}),[]})}function po(e){e>4&&--dt[e].refcount===0&&(dt[e]=void 0,tt.push(e))}function ln(e,t){t=xe(t),J(e,{name:t,fromWireType(r){let o=dt[r].value;return po(r),o},toWireType(r,o){return sr(o)},argPackAdvance:8,readValueFromPointer:g,destructorFunction:null})}function dn(e){if(e===null)return"null";let t=typeof e;return t==="object"||t==="array"||t==="function"?e.toString():`${e}`}function Vo(e,t){switch(t){case 2:return function(r){return this.fromWireType(Ye[r>>2])};case 3:return function(r){return this.fromWireType(Mr[r>>3])};default:throw new TypeError(`Unknown float type: ${e}`)}}function zo(e,t,r){let o=q(r);t=xe(t),J(e,{name:t,fromWireType(a){return a},toWireType(a,s){if(typeof s!="number"&&typeof s!="boolean")throw new TypeError(`Cannot convert "${dn(s)}" to ${this.name}`);return s},argPackAdvance:8,readValueFromPointer:Vo(t,o),destructorFunction:null})}function $o(e,t,r,o,a,s){let A=ti(t,r);e=xe(e),a=At(o,a),Qn(e,()=>{Xr(`Cannot call ${e} due to unbound types`,A)},t-1),X([],A,c=>{let u=[c[0],null].concat(c.slice(1));return uo(e,Wr(e,u,null,a,s),t-1),[]})}function Ko(e,t,r){switch(t){case 0:return r?function(a){return De[a]}:function(a){return Te[a]};case 1:return r?function(a){return T[a>>1]}:function(a){return be[a>>1]};case 2:return r?function(a){return b[a>>2]}:function(a){return ve[a>>2]};default:throw new TypeError(`Unknown integer type: ${e}`)}}function Jo(e,t,r,o,a){t=xe(t),a===-1&&(a=4294967295);let s=q(r),A=function(u){return u};if(o===0){let u=32-8*r;A=function(d){return d<<u>>>u}}let c=t.includes("unsigned");J(e,{name:t,fromWireType:A,toWireType(u,d){if(typeof d!="number"&&typeof d!="boolean")throw new TypeError(`Cannot convert "${dn(d)}" to ${this.name}`);if(d<o||d>a)throw new TypeError(`Passing a number "${dn(d)}" from JS side to C/C++ side to an argument of type "${t}", which is outside the valid range [${o}, ${a}]!`);return c?d>>>0:d|0},argPackAdvance:8,readValueFromPointer:Ko(t,s,o!==0),destructorFunction:null})}function Zo(e,t,r){let a=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function s(A){A=A>>2;let c=ve,u=c[A],d=c[A+1];return new a(Re,d,u)}r=xe(r),J(e,{name:r,fromWireType:s,argPackAdvance:8,readValueFromPointer:s},{ignoreDuplicateRegistrations:!0})}function qo(e,t){t=xe(t);let r=t==="std::string";J(e,{name:t,fromWireType(o){let a=ve[o>>2],s;if(r){let c=o+4;for(var A=0;A<=a;++A){let u=o+4+A;if(A==a||Te[u]==0){let d=u-c,h=$e(c,d);s===void 0?s=h:(s+=String.fromCharCode(0),s+=h),c=u+1}}}else{let c=new Array(a);for(var A=0;A<a;++A)c[A]=String.fromCharCode(Te[o+4+A]);s=c.join("")}return nt(o),s},toWireType(o,a){a instanceof ArrayBuffer&&(a=new Uint8Array(a));let s,A=typeof a=="string";A||a instanceof Uint8Array||a instanceof Uint8ClampedArray||a instanceof Int8Array||Ae("Cannot pass non-string to std::string"),r&&A?s=function(){return wt(a)}:s=function(){return a.length};let c=s(),u=Zr(4+c+1);if(ve[u>>2]=c,r&&A)er(a,u+4,c+1);else if(A)for(var d=0;d<c;++d){let h=a.charCodeAt(d);h>255&&(nt(u),Ae("String has UTF-16 code units that do not fit in 8 bits")),Te[u+4+d]=h}else for(var d=0;d<c;++d)Te[u+4+d]=a[d];return o!==null&&o.push(nt,u),u},argPackAdvance:8,readValueFromPointer:g,destructorFunction(o){nt(o)}})}function ea(e,t,r){r=xe(r);let o,a,s,A,c;t===2?(o=wi,a=_n,A=jn,s=function(){return be},c=1):t===4&&(o=Di,a=hn,A=Rr,s=function(){return ve},c=2),J(e,{name:r,fromWireType(u){let d=ve[u>>2],h=s(),m,I=u+4;for(let y=0;y<=d;++y){let v=u+4+y*t;if(y==d||h[v>>c]==0){let N=v-I,H=o(I,N);m===void 0?m=H:(m+=String.fromCharCode(0),m+=H),I=v+t}}return nt(u),m},toWireType(u,d){typeof d!="string"&&Ae(`Cannot pass non-string to C++ string type ${r}`);let h=A(d),m=Zr(4+h+t);return ve[m>>2]=h>>c,a(d,m+4,h+t),u!==null&&u.push(nt,m),m},argPackAdvance:8,readValueFromPointer:g,destructorFunction(u){nt(u)}})}function ta(e,t,r,o,a,s){ur[e]={name:xe(t),rawConstructor:At(r,o),rawDestructor:At(a,s),fields:[]}}function ra(e,t,r,o,a,s,A,c,u,d){ur[e].fields.push({fieldName:xe(t),getterReturnType:r,getter:At(o,a),getterContext:s,setterArgumentType:A,setter:At(c,u),setterContext:d})}function na(e,t){t=xe(t),J(e,{isVoid:!0,name:t,argPackAdvance:0,fromWireType(){},toWireType(r,o){}})}let ia={};function Vi(e){let t=ia[e];return t===void 0?xe(e):t}let zi=[];function oa(e,t,r,o){e=zi[e],t=Wt(t),r=Vi(r),e(t,r,null,o)}function aa(e){let t=zi.length;return zi.push(e),t}function sa(e,t){let r=new Array(e);for(let o=0;o<e;++o)r[o]=ft(b[(t>>2)+o],`parameter ${o}`);return r}function Aa(e,t){let r=sa(e,t),o=r[0],a=`${o.name}_$${r.slice(1).map(y=>y.name).join("_")}$`,s=["retType"],A=[o],c="";for(var u=0;u<e-1;++u)c+=`${u!==0?", ":""}arg${u}`,s.push(`argType${u}`),A.push(r[1+u]);let h=`return function ${or(`methodCaller_${a}`)}(handle, name, destructors, args) {
22
+ `,m=0;for(var u=0;u<e-1;++u)h+=` var arg${u} = argType${u}.readValueFromPointer(args${m?`+${m}`:""});
23
+ `,m+=r[u+1].argPackAdvance;h+=` var rv = handle[name](${c});
24
+ `;for(var u=0;u<e-1;++u)r[u+1].deleteObject&&(h+=` argType${u}.deleteObject(arg${u});
25
+ `);o.isVoid||(h+=` return retType.toWireType(destructors, rv);
26
+ `),h+=`};
27
+ `,s.push(h);let I=Pn(Function,s).apply(null,A);return aa(I)}function ca(e){e>4&&(dt[e].refcount+=1)}function ua(e,t){e=ft(e,"_emval_take_value");let r=e.readValueFromPointer(t);return sr(r)}function la(){p()}let da=!0;function fa(e,t){let r;if(e===0)r=Date.now();else if((e===1||e===4)&&da)r=Dr();else return _e(28),-1;return b[t>>2]=r/1e3|0,b[t+4>>2]=r%1e3*1e3*1e3|0,0}function ga(e,t){p("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}function ri(e,t){p("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}let ni=[];function Ea(e,t){z(Array.isArray(ni)),z(t%16==0),ni.length=0;let r;for(t>>=2;r=Te[e++];){z(r===100||r===102||r===105);let o=r<105;o&&t&1&&t++,ni.push(o?Mr[t++>>1]:b[t]),++t}return ni}function pa(e,t,r){let o=Ea(t,r);return Ur.hasOwnProperty(e)||p(`No EM_ASM constant found at address ${e}`),Ur[e].apply(null,o)}function _a(){return 2147483648}function ha(e,t,r){Te.copyWithin(e,t,t+r)}function ma(e){p("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")}function Ia(e){try{return vt.grow(e-Re.byteLength+65535>>>16),tn(vt.buffer),1}catch(t){Ee(`emscripten_realloc_buffer: Attempted to grow heap from ${Re.byteLength} bytes to ${e} bytes, but got error: ${t}`)}}function ii(e){let t=Te.length;e=e>>>0,z(e>t);let r=2147483648;if(e>r)return Ee(`Cannot enlarge memory, asked to go up to ${e} bytes, but the limit is ${r} bytes!`),!1;for(let a=1;a<=4;a*=2){let s=t*(1+.2/a);s=Math.min(s,e+100663296);var o=Math.min(r,Ne(Math.max(e,s),65536));if(Ia(o))return!0}return Ee(`Failed to grow the heap from ${t} bytes to ${o} bytes, not enough memory!`),!1}function gr(e){p("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}let Vr={};function _o(e){e.forEach(t=>{let r=gr(t);r&&(Vr[r]=t)})}function Ca(){let e=new Error().stack.split(`
28
+ `);return e[0]=="Error"&&e.shift(),_o(e),Vr.last_addr=gr(e[2]),Vr.last_stack=e,Vr.last_addr}function ya(e,t,r){let o;Vr.last_addr==e?o=Vr.last_stack:(o=new Error().stack.split(`
29
+ `),o[0]=="Error"&&o.shift(),_o(o));let a=2;for(;o[a]&&gr(o[a])!=e;)++a;for(var s=0;s<r&&o[s+a];++s)b[t+s*4>>2]=gr(o[s+a]);return s}function wa(e){let t=Dr();for(;Dr()-t<e;);}function Da(e){let t=e.getExtension("ANGLE_instanced_arrays");if(t)return e.vertexAttribDivisor=function(r,o){t.vertexAttribDivisorANGLE(r,o)},e.drawArraysInstanced=function(r,o,a,s){t.drawArraysInstancedANGLE(r,o,a,s)},e.drawElementsInstanced=function(r,o,a,s,A){t.drawElementsInstancedANGLE(r,o,a,s,A)},1}function ba(e){let t=e.getExtension("OES_vertex_array_object");if(t)return e.createVertexArray=function(){return t.createVertexArrayOES()},e.deleteVertexArray=function(r){t.deleteVertexArrayOES(r)},e.bindVertexArray=function(r){t.bindVertexArrayOES(r)},e.isVertexArray=function(r){return t.isVertexArrayOES(r)},1}function Oa(e){let t=e.getExtension("WEBGL_draw_buffers");if(t)return e.drawBuffers=function(r,o){t.drawBuffersWEBGL(r,o)},1}function Ba(e){return!!(e.dibvbi=e.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function Ta(e){return!!(e.mdibvbi=e.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function O(e){return!!(e.multiDrawWebgl=e.getExtension("WEBGL_multi_draw"))}var w={counter:1,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function(t){w.lastError||(w.lastError=t)},getNewId(e){let t=w.counter++;for(let r=e.length;r<t;r++)e[r]=null;return t},MAX_TEMP_BUFFER_SIZE:2097152,numTempVertexBuffersPerSize:64,log2ceilLookup(e){return 32-Math.clz32(e===0?0:e-1)},generateTempBuffers(e,t){let r=w.log2ceilLookup(w.MAX_TEMP_BUFFER_SIZE);t.tempVertexBufferCounters1=[],t.tempVertexBufferCounters2=[],t.tempVertexBufferCounters1.length=t.tempVertexBufferCounters2.length=r+1,t.tempVertexBuffers1=[],t.tempVertexBuffers2=[],t.tempVertexBuffers1.length=t.tempVertexBuffers2.length=r+1,t.tempIndexBuffers=[],t.tempIndexBuffers.length=r+1;for(var o=0;o<=r;++o){t.tempIndexBuffers[o]=null,t.tempVertexBufferCounters1[o]=t.tempVertexBufferCounters2[o]=0;let a=w.numTempVertexBuffersPerSize;t.tempVertexBuffers1[o]=[],t.tempVertexBuffers2[o]=[];let s=t.tempVertexBuffers1[o],A=t.tempVertexBuffers2[o];s.length=A.length=a;for(let c=0;c<a;++c)s[c]=A[c]=null}if(e){t.tempQuadIndexBuffer=S.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);let a=w.MAX_TEMP_BUFFER_SIZE>>1,s=new Uint16Array(a);var o=0;let c=0;for(;s[o++]=c,!(o>=a||(s[o++]=c+1,o>=a)||(s[o++]=c+2,o>=a)||(s[o++]=c,o>=a)||(s[o++]=c+2,o>=a)||(s[o++]=c+3,o>=a));)c+=4;t.GLctx.bufferData(34963,s,35044),t.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:function(t){let r=w.log2ceilLookup(t),o=w.currentContext.tempVertexBuffers1[r],a=w.currentContext.tempVertexBufferCounters1[r];w.currentContext.tempVertexBufferCounters1[r]=w.currentContext.tempVertexBufferCounters1[r]+1&w.numTempVertexBuffersPerSize-1;let s=o[a];if(s)return s;let A=S.getParameter(34964);return o[a]=S.createBuffer(),S.bindBuffer(34962,o[a]),S.bufferData(34962,1<<r,35048),S.bindBuffer(34962,A),o[a]},getTempIndexBuffer:function(t){let r=w.log2ceilLookup(t),o=w.currentContext.tempIndexBuffers[r];if(o)return o;let a=S.getParameter(34965);return w.currentContext.tempIndexBuffers[r]=S.createBuffer(),S.bindBuffer(34963,w.currentContext.tempIndexBuffers[r]),S.bufferData(34963,1<<r,35048),S.bindBuffer(34963,a),w.currentContext.tempIndexBuffers[r]},newRenderingFrameStarted:function(){if(!w.currentContext)return;let t=w.currentContext.tempVertexBuffers1;w.currentContext.tempVertexBuffers1=w.currentContext.tempVertexBuffers2,w.currentContext.tempVertexBuffers2=t,t=w.currentContext.tempVertexBufferCounters1,w.currentContext.tempVertexBufferCounters1=w.currentContext.tempVertexBufferCounters2,w.currentContext.tempVertexBufferCounters2=t;let r=w.log2ceilLookup(w.MAX_TEMP_BUFFER_SIZE);for(let o=0;o<=r;++o)w.currentContext.tempVertexBufferCounters1[o]=0},getSource(e,t,r,o){let a="";for(let s=0;s<t;++s){let A=o?b[o+s*4>>2]:-1;a+=$e(b[r+s*4>>2],A<0?void 0:A)}return a},calcBufLength:function(t,r,o,a){if(o>0)return a*o;let s=w.byteSizeByType[r-w.byteSizeByTypeRoot];return t*s*a},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(t){w.resetBufferBinding=!1;for(let r=0;r<w.currentContext.maxVertexAttribs;++r){let o=w.currentContext.clientBuffers[r];if(!o.clientside||!o.enabled)continue;w.resetBufferBinding=!0;let a=w.calcBufLength(o.size,o.type,o.stride,t),s=w.getTempVertexBuffer(a);S.bindBuffer(34962,s),S.bufferSubData(34962,0,Te.subarray(o.ptr,o.ptr+a)),o.vertexAttribPointerAdaptor.call(S,r,o.size,o.type,o.normalized,o.stride,0)}},postDrawHandleClientVertexAttribBindings:function(){w.resetBufferBinding&&S.bindBuffer(34962,w.buffers[S.currentArrayBufferBinding])},createContext(e,t){t.renderViaOffscreenBackBuffer&&(t.preserveDrawingBuffer=!0),e.getContextSafariWebGL2Fixed||(e.getContextSafariWebGL2Fixed=e.getContext,e.getContext=function(a,s){let A=e.getContextSafariWebGL2Fixed(a,s);return a=="webgl"==A instanceof WebGLRenderingContext?A:null});let r=t.majorVersion>1?e.getContext("webgl2",t):e.getContext("webgl",t);return r?w.registerContext(r,t):0},enableOffscreenFramebufferAttributes(e){e.renderViaOffscreenBackBuffer=!0,e.preserveDrawingBuffer=!0},createOffscreenFramebuffer(e){let t=e.GLctx,r=t.createFramebuffer();if(t.bindFramebuffer(36160,r),e.defaultFbo=r,e.defaultFboForbidBlitFramebuffer=!1,t.getContextAttributes().antialias)e.defaultFboForbidBlitFramebuffer=!0;else{let m=navigator.userAgent.toLowerCase().match(/firefox\/(\d\d)/);if(m!=null){let I=m[1];e.defaultFboForbidBlitFramebuffer=I<67}}e.defaultColorTarget=t.createTexture(),e.defaultDepthTarget=t.createRenderbuffer(),w.resizeOffscreenFramebuffer(e),t.bindTexture(3553,e.defaultColorTarget),t.texParameteri(3553,10241,9728),t.texParameteri(3553,10240,9728),t.texParameteri(3553,10242,33071),t.texParameteri(3553,10243,33071),t.texImage2D(3553,0,6408,t.canvas.width,t.canvas.height,0,6408,5121,null),t.framebufferTexture2D(36160,36064,3553,e.defaultColorTarget,0),t.bindTexture(3553,null);let o=t.createRenderbuffer();t.bindRenderbuffer(36161,e.defaultDepthTarget),t.renderbufferStorage(36161,33189,t.canvas.width,t.canvas.height),t.framebufferRenderbuffer(36160,36096,36161,e.defaultDepthTarget),t.bindRenderbuffer(36161,null);let a=[-1,-1,-1,1,1,-1,1,1],s=t.createBuffer();t.bindBuffer(34962,s),t.bufferData(34962,new Float32Array(a),35044),t.bindBuffer(34962,null),e.blitVB=s;let A="attribute vec2 pos;varying lowp vec2 tex;void main() { tex = pos * 0.5 + vec2(0.5,0.5); gl_Position = vec4(pos, 0.0, 1.0); }",c=t.createShader(35633);t.shaderSource(c,A),t.compileShader(c);let u="varying lowp vec2 tex;uniform sampler2D sampler;void main() { gl_FragColor = texture2D(sampler, tex); }",d=t.createShader(35632);t.shaderSource(d,u),t.compileShader(d);let h=t.createProgram();t.attachShader(h,c),t.attachShader(h,d),t.linkProgram(h),e.blitProgram=h,e.blitPosLoc=t.getAttribLocation(h,"pos"),t.useProgram(h),t.uniform1i(t.getUniformLocation(h,"sampler"),0),t.useProgram(null),e.defaultVao=void 0,t.createVertexArray&&(e.defaultVao=t.createVertexArray(),t.bindVertexArray(e.defaultVao),t.enableVertexAttribArray(e.blitPosLoc),t.bindVertexArray(null))},resizeOffscreenFramebuffer(e){let t=e.GLctx;if(e.defaultColorTarget){let r=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget),t.texImage2D(3553,0,6408,t.drawingBufferWidth,t.drawingBufferHeight,0,6408,5121,null),t.bindTexture(3553,r)}if(e.defaultDepthTarget){let r=t.getParameter(36007);t.bindRenderbuffer(36161,e.defaultDepthTarget),t.renderbufferStorage(36161,33189,t.drawingBufferWidth,t.drawingBufferHeight),t.bindRenderbuffer(36161,r)}},blitOffscreenFramebuffer(e){let t=e.GLctx,r=t.getParameter(3089);r&&t.disable(3089);let o=t.getParameter(36006);if(t.blitFramebuffer&&!e.defaultFboForbidBlitFramebuffer)t.bindFramebuffer(36008,e.defaultFbo),t.bindFramebuffer(36009,null),t.blitFramebuffer(0,0,t.canvas.width,t.canvas.height,0,0,t.canvas.width,t.canvas.height,16384,9728);else{let N=function(){t.vertexAttribPointer(e.blitPosLoc,2,5126,!1,0,0),t.drawArrays(5,0,4)};var A=N;t.bindFramebuffer(36160,null);let c=t.getParameter(35725);t.useProgram(e.blitProgram);let u=t.getParameter(34964);t.bindBuffer(34962,e.blitVB);let d=t.getParameter(34016);t.activeTexture(33984);let h=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget);let m=t.getParameter(3042);m&&t.disable(3042);let I=t.getParameter(2884);I&&t.disable(2884);let y=t.getParameter(2929);y&&t.disable(2929);let v=t.getParameter(2960);if(v&&t.disable(2960),e.defaultVao){let H=t.getParameter(34229);t.bindVertexArray(e.defaultVao),N(),t.bindVertexArray(H)}else{let H={buffer:t.getVertexAttrib(e.blitPosLoc,34975),size:t.getVertexAttrib(e.blitPosLoc,34339),stride:t.getVertexAttrib(e.blitPosLoc,34340),type:t.getVertexAttrib(e.blitPosLoc,34341),normalized:t.getVertexAttrib(e.blitPosLoc,34922),pointer:t.getVertexAttribOffset(e.blitPosLoc,34373)},R=t.getParameter(34921),D=[];for(var a=0;a<R;++a){var s=t.getVertexAttrib(a,34338);let k=a==e.blitPosLoc;s&&!k&&t.disableVertexAttribArray(a),!s&&k&&t.enableVertexAttribArray(a),D[a]=s}N();for(var a=0;a<R;++a){var s=D[a];let Y=a==e.blitPosLoc;s&&!Y&&t.enableVertexAttribArray(a),!s&&Y&&t.disableVertexAttribArray(a)}t.bindBuffer(34962,H.buffer),t.vertexAttribPointer(e.blitPosLoc,H.size,H.type,H.normalized,H.stride,H.offset)}v&&t.enable(2960),y&&t.enable(2929),I&&t.enable(2884),m&&t.enable(3042),t.bindTexture(3553,h),t.activeTexture(d),t.bindBuffer(34962,u),t.useProgram(c)}t.bindFramebuffer(36160,o),r&&t.enable(3089)},registerContext(e,t){let r=w.getNewId(w.contexts),o={handle:r,attributes:t,version:t.majorVersion,GLctx:e};e.canvas&&(e.canvas.GLctxObject=o),w.contexts[r]=o,(typeof t.enableExtensionsByDefault=="undefined"||t.enableExtensionsByDefault)&&w.initExtensions(o),o.maxVertexAttribs=o.GLctx.getParameter(34921),o.clientBuffers=[];for(let a=0;a<o.maxVertexAttribs;a++)o.clientBuffers[a]={enabled:!1,clientside:!1,size:0,type:0,normalized:0,stride:0,ptr:0,vertexAttribPointerAdaptor:null};return w.generateTempBuffers(!1,o),t.renderViaOffscreenBackBuffer&&w.createOffscreenFramebuffer(o),r},makeContextCurrent(e){return w.currentContext=w.contexts[e],n.ctx=S=w.currentContext&&w.currentContext.GLctx,!(e&&!S)},getContext(e){return w.contexts[e]},deleteContext(e){w.currentContext===w.contexts[e]&&(w.currentContext=null),typeof de=="object"&&de.removeAllHandlersOnTarget(w.contexts[e].GLctx.canvas),w.contexts[e]&&w.contexts[e].GLctx.canvas&&(w.contexts[e].GLctx.canvas.GLctxObject=void 0),w.contexts[e]=null},initExtensions(e){if(e||(e=w.currentContext),e.initExtensionsDone)return;e.initExtensionsDone=!0;let{GLctx:t}=e;Da(t),ba(t),Oa(t),Ba(t),Ta(t),e.version>=2&&(t.disjointTimerQueryExt=t.getExtension("EXT_disjoint_timer_query_webgl2")),(e.version<2||!t.disjointTimerQueryExt)&&(t.disjointTimerQueryExt=t.getExtension("EXT_disjoint_timer_query")),O(t),(t.getSupportedExtensions()||[]).forEach(o=>{!o.includes("lose_context")&&!o.includes("debug")&&t.getExtension(o)})}},de={inEventHandler:0,removeAllEventListeners(){for(let e=de.eventHandlers.length-1;e>=0;--e)de._removeHandler(e);de.eventHandlers=[],de.deferredCalls=[]},registerRemoveEventListeners(){de.removeEventListenersRegistered||(le.push(de.removeAllEventListeners),de.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall(e,t,r){function o(a,s){if(a.length!=s.length)return!1;for(let A in a)if(a[A]!=s[A])return!1;return!0}for(let a in de.deferredCalls){let s=de.deferredCalls[a];if(s.targetFunction==e&&o(s.argsList,r))return}de.deferredCalls.push({targetFunction:e,precedence:t,argsList:r}),de.deferredCalls.sort((a,s)=>a.precedence<s.precedence)},removeDeferredCalls(e){for(let t=0;t<de.deferredCalls.length;++t)de.deferredCalls[t].targetFunction==e&&(de.deferredCalls.splice(t,1),--t)},canPerformEventHandlerRequests(){return de.inEventHandler&&de.currentEventHandler.allowsDeferredCalls},runDeferredCalls(){if(de.canPerformEventHandlerRequests())for(let e=0;e<de.deferredCalls.length;++e){let t=de.deferredCalls[e];de.deferredCalls.splice(e,1),--e,t.targetFunction.apply(null,t.argsList)}},eventHandlers:[],removeAllHandlersOnTarget(e,t){for(let r=0;r<de.eventHandlers.length;++r)de.eventHandlers[r].target==e&&(!t||t==de.eventHandlers[r].eventTypeString)&&de._removeHandler(r--)},_removeHandler(e){let t=de.eventHandlers[e];t.target.removeEventListener(t.eventTypeString,t.eventListenerFunc,t.useCapture),de.eventHandlers.splice(e,1)},registerOrRemoveHandler(e){let t=function(o){++de.inEventHandler,de.currentEventHandler=e,de.runDeferredCalls(),e.handlerFunc(o),de.runDeferredCalls(),--de.inEventHandler};if(e.callbackfunc)e.eventListenerFunc=t,e.target.addEventListener(e.eventTypeString,t,e.useCapture),de.eventHandlers.push(e),de.registerRemoveEventListeners();else for(let r=0;r<de.eventHandlers.length;++r)de.eventHandlers[r].target==e.target&&de.eventHandlers[r].eventTypeString==e.eventTypeString&&de._removeHandler(r--)},getNodeNameForTarget(e){return e?e==window?"#window":e==screen?"#screen":e&&e.nodeName?e.nodeName:"":""},fullscreenEnabled(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};let ho=["default","low-power","high-performance"],va=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function $i(e){et("Rules for selecting event targets in HTML5 API are changing: instead of using document.getElementById() that only can refer to elements by their DOM ID, new event target selection mechanism uses the more flexible function document.querySelector() that can look up element names, classes, and complex CSS selectors. Build with -s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1 to change to the new lookup rules. See https://github.com/emscripten-core/emscripten/pull/7977 for more details.");try{return!e||(typeof e=="number"&&(e=va[e]||$e(e)),e==="#window")?window:e==="#document"?document:e==="#screen"?screen:e==="#canvas"?n.canvas:typeof e=="string"?document.getElementById(e):e}catch(t){return null}}function Ki(e){return typeof e=="number"&&(e=$e(e)),!e||e==="#canvas"?typeof w!="undefined"&&w.offscreenCanvases.canvas?w.offscreenCanvases.canvas:n.canvas:typeof w!="undefined"&&w.offscreenCanvases[e]?w.offscreenCanvases[e]:$i(e)}function Qa(e,t){z(t);let r=t>>2,o=b[r+6],a={alpha:!!b[r+0],depth:!!b[r+1],stencil:!!b[r+2],antialias:!!b[r+3],premultipliedAlpha:!!b[r+4],preserveDrawingBuffer:!!b[r+5],powerPreference:ho[o],failIfMajorPerformanceCaveat:!!b[r+7],majorVersion:b[r+8],minorVersion:b[r+9],enableExtensionsByDefault:b[r+10],explicitSwapControl:b[r+11],proxyContextToMainThread:b[r+12],renderViaOffscreenBackBuffer:b[r+13]},s=Ki(e);if(!s)return 0;if(s.offscreenCanvas&&(s=s.offscreenCanvas),a.explicitSwapControl&&(s.transferControlToOffscreen||typeof OffscreenCanvas!="undefined"&&s instanceof OffscreenCanvas||a.renderViaOffscreenBackBuffer||(a.renderViaOffscreenBackBuffer=!0),s.transferControlToOffscreen)){if(!s.controlTransferredOffscreen)w.offscreenCanvases[s.id]={canvas:s.transferControlToOffscreen(),canvasSharedPtr:Zr(12),id:s.id},s.controlTransferredOffscreen=!0;else if(!w.offscreenCanvases[s.id])return 0;s=w.offscreenCanvases[s.id]}return w.createContext(s,a)}function Pa(e,t){return Qa(e,t)}function mo(){return w.currentContext?w.currentContext.handle:0}function Ji(){return mo()}n._emscripten_webgl_get_current_context=Ji;function Io(e){return w.makeContextCurrent(e)?0:-5}n._emscripten_webgl_make_context_current=Io;function Ra(e){w.currentContext==e&&(w.currentContext=0),w.deleteContext(e)}function Sa(e,t){if(!t)return-5;if(e=w.contexts[e],!e)return-3;let r=e.GLctx;if(!r)return-3;r=r.getContextAttributes(),b[t>>2]=r.alpha,b[t+4>>2]=r.depth,b[t+8>>2]=r.stencil,b[t+12>>2]=r.antialias,b[t+16>>2]=r.premultipliedAlpha,b[t+20>>2]=r.preserveDrawingBuffer;let o=r.powerPreference&&ho.indexOf(r.powerPreference);return b[t+24>>2]=o,b[t+28>>2]=r.failIfMajorPerformanceCaveat,b[t+32>>2]=e.version,b[t+36>>2]=0,b[t+40>>2]=e.attributes.enableExtensionsByDefault,0}function Zi(e){z(e);let t=e>>2;for(let r=0;r<14;++r)b[t+r]=0;b[t+0]=b[t+1]=b[t+3]=b[t+4]=b[t+8]=b[t+10]=1}let qi={};function Rn(){return ct||"./this.program"}function Sn(){if(!Sn.strings){let r={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:`${(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")}.UTF-8`,_:Rn()};for(var e in qi)qi[e]===void 0?delete r[e]:r[e]=qi[e];let o=[];for(var e in r)o.push(`${e}=${r[e]}`);Sn.strings=o}return Sn.strings}function Ma(e,t){let r=0;return Sn().forEach((o,a)=>{let s=t+r;b[e+a*4>>2]=s,Sr(o,s),r+=o.length+1}),0}function Fa(e,t){let r=Sn();b[e>>2]=r.length;let o=0;return r.forEach(a=>{o+=a.length+1}),b[t>>2]=o,0}function ka(e){try{let t=Se.getStreamFromFD(e);return l.close(t),0}catch(t){return(typeof l=="undefined"||!(t instanceof l.ErrnoError))&&p(t),t.errno}}function Ua(e,t,r,o){try{let a=Se.getStreamFromFD(e),s=Se.doReadv(a,t,r);return b[o>>2]=s,0}catch(a){return(typeof l=="undefined"||!(a instanceof l.ErrnoError))&&p(a),a.errno}}function Na(e,t,r,o,a){try{let s=Se.getStreamFromFD(e),c=r*4294967296+(t>>>0),u=9007199254740992;return c<=-u||c>=u?-61:(l.llseek(s,c,o),bt=[s.position>>>0,(Ce=s.position,+Math.abs(Ce)>=1?Ce>0?(Math.min(+Math.floor(Ce/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Ce-+(~~Ce>>>0))/4294967296)>>>0:0)],b[a>>2]=bt[0],b[a+4>>2]=bt[1],s.getdents&&c===0&&o===0&&(s.getdents=null),0)}catch(s){return(typeof l=="undefined"||!(s instanceof l.ErrnoError))&&p(s),s.errno}}function xa(e,t,r,o){try{let a=Se.getStreamFromFD(e),s=Se.doWritev(a,t,r);return b[o>>2]=s,0}catch(a){return(typeof l=="undefined"||!(a instanceof l.ErrnoError))&&p(a),a.errno}}function oi(){return Nn()}function ai(e,t){ai.randomDevice||(ai.randomDevice=lt());for(let r=0;r<t;r++)De[e+r>>0]=ai.randomDevice();return 0}function ja(e){S.activeTexture(e)}function La(e,t){S.attachShader(w.programs[e],w.shaders[t])}function Ha(e,t,r){S.bindAttribLocation(w.programs[e],t,$e(r))}function Ga(e,t){e==34962?S.currentArrayBufferBinding=t:e==34963&&(S.currentElementArrayBufferBinding=t),e==35051?S.currentPixelPackBufferBinding=t:e==35052&&(S.currentPixelUnpackBufferBinding=t),S.bindBuffer(e,w.buffers[t])}function Ya(e,t,r){S.bindBufferBase(e,t,w.buffers[r])}function Xa(e,t){S.bindFramebuffer(e,t?w.framebuffers[t]:w.currentContext.defaultFbo)}function Wa(e,t){S.bindTexture(e,w.textures[t])}function Va(e){S.bindVertexArray(w.vaos[e]);let t=S.getParameter(34965);S.currentElementArrayBufferBinding=t?t.name|0:0}function za(e,t,r,o){w.currentContext.version>=2?r?S.bufferData(e,Te,o,r,t):S.bufferData(e,t,o):S.bufferData(e,r?Te.subarray(r,r+t):t,o)}function $a(e,t){return z(t===(t|0)),(e>>>0)+t*4294967296}function Ka(e,t,r,o){return S.clientWaitSync(w.syncs[e],t,$a(r,o))}function Ja(e){S.compileShader(w.shaders[e])}function Za(){let e=w.getNewId(w.programs),t=S.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,w.programs[e]=t,e}function qa(e){let t=w.getNewId(w.shaders);return w.shaders[t]=S.createShader(e),t}function es(e,t){for(let r=0;r<e;r++){let o=b[t+r*4>>2],a=w.buffers[o];a&&(S.deleteBuffer(a),a.name=0,w.buffers[o]=null,o==S.currentArrayBufferBinding&&(S.currentArrayBufferBinding=0),o==S.currentElementArrayBufferBinding&&(S.currentElementArrayBufferBinding=0),o==S.currentPixelPackBufferBinding&&(S.currentPixelPackBufferBinding=0),o==S.currentPixelUnpackBufferBinding&&(S.currentPixelUnpackBufferBinding=0))}}function ts(e,t){for(let r=0;r<e;++r){let o=b[t+r*4>>2],a=w.framebuffers[o];a&&(S.deleteFramebuffer(a),a.name=0,w.framebuffers[o]=null)}}function rs(e){if(!e)return;let t=w.programs[e];if(!t){w.recordError(1281);return}S.deleteProgram(t),t.name=0,w.programs[e]=null}function ns(e){if(!e)return;let t=w.shaders[e];if(!t){w.recordError(1281);return}S.deleteShader(t),w.shaders[e]=null}function is(e){if(!e)return;let t=w.syncs[e];if(!t){w.recordError(1281);return}S.deleteSync(t),t.name=0,w.syncs[e]=null}function os(e,t){for(let r=0;r<e;r++){let o=b[t+r*4>>2],a=w.textures[o];a&&(S.deleteTexture(a),a.name=0,w.textures[o]=null)}}function as(e,t){for(let r=0;r<e;r++){let o=b[t+r*4>>2];S.deleteVertexArray(w.vaos[o]),w.vaos[o]=null}}function ss(e){S.disable(e)}function As(e){let t=w.currentContext.clientBuffers[e];t.enabled=!1,S.disableVertexAttribArray(e)}function Co(e,t,r){w.preDrawHandleClientVertexAttribBindings(t+r),S.drawArrays(e,t,r),w.postDrawHandleClientVertexAttribBindings()}let yo=[];function cs(e,t){let r=yo[e];for(let o=0;o<e;o++)r[o]=b[t+o*4>>2];S.drawBuffers(r)}function us(e){let t=w.currentContext.clientBuffers[e];t.enabled=!0,S.enableVertexAttribArray(e)}function ls(e,t){let r=S.fenceSync(e,t);if(r){let o=w.getNewId(w.syncs);return r.name=o,w.syncs[o]=r,o}return 0}function ds(){S.finish()}function fs(){S.flush()}function gs(e,t,r,o,a){S.framebufferTexture2D(e,t,r,w.textures[o],a)}function si(e,t,r,o,a){S.framebufferTextureLayer(e,t,w.textures[r],o,a)}function Ai(e,t,r,o){for(let a=0;a<e;a++){let s=S[r](),A=s&&w.getNewId(o);s?(s.name=A,o[A]=s):w.recordError(1282),b[t+a*4>>2]=A}}function Es(e,t){Ai(e,t,"createBuffer",w.buffers)}function ps(e,t){Ai(e,t,"createFramebuffer",w.framebuffers)}function _s(e,t){Ai(e,t,"createTexture",w.textures)}function hs(e,t){Ai(e,t,"createVertexArray",w.vaos)}function ms(e,t){return S.getAttribLocation(w.programs[e],$e(t))}function Is(){let e=S.getError()||w.lastError;return w.lastError=0,e}function Cs(e){return ve[e>>2]+b[e+4>>2]*4294967296}function ys(e){return ve[e>>2]+ve[e+4>>2]*4294967296}function ws(e,t){ve[e>>2]=t,ve[e+4>>2]=(t-ve[e>>2])/4294967296;let r=t>=0?ys(e):Cs(e);r!=t&&et(`writeI53ToI64() out of range: serialized JS Number ${t} to Wasm heap as bytes lo=0x${ve[e>>2].toString(16)}, hi=0x${ve[e+4>>2].toString(16)}, which deserializes back to ${r} instead!`)}function Ds(e,t,r){if(!t){w.recordError(1281);return}let o;switch(e){case 36346:o=1;break;case 36344:r!=0&&r!=1&&w.recordError(1280);return;case 34814:case 36345:o=0;break;case 34466:var a=S.getParameter(34467);o=a?a.length:0;break;case 33309:if(w.currentContext.version<2){w.recordError(1282);return}var s=S.getSupportedExtensions()||[];o=2*s.length;break;case 33307:case 33308:if(w.currentContext.version<2){w.recordError(1280);return}o=e==33307?3:0;break}if(o===void 0){let A=S.getParameter(e);switch(typeof A){case"number":o=A;break;case"boolean":o=A?1:0;break;case"string":w.recordError(1280);return;case"object":if(A===null)switch(e){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:{o=0;break}default:{w.recordError(1280);return}}else if(A instanceof Float32Array||A instanceof Uint32Array||A instanceof Int32Array||A instanceof Array){for(let c=0;c<A.length;++c)switch(r){case 0:b[t+c*4>>2]=A[c];break;case 2:Ye[t+c*4>>2]=A[c];break;case 4:De[t+c>>0]=A[c]?1:0;break}return}else try{o=A.name|0}catch(c){w.recordError(1280),Ee(`GL_INVALID_ENUM in glGet${r}v: Unknown object returned from WebGL getParameter(${e})! (error: ${c})`);return}break;default:w.recordError(1280),Ee(`GL_INVALID_ENUM in glGet${r}v: Native code calling glGet${r}v(${e}) and it returns ${A} of type ${typeof A}!`);return}}switch(r){case 1:ws(t,o);break;case 0:b[t>>2]=o;break;case 2:Ye[t>>2]=o;break;case 4:De[t>>0]=o?1:0;break}}function ci(e,t){Ds(e,t,0)}function ui(e){let t=wt(e)+1,r=Zr(t);return er(e,r,t),r}function bs(e){let t=w.stringCache[e];if(!t){switch(e){case 7939:var r=S.getSupportedExtensions()||[];r=r.concat(r.map(u=>`GL_${u}`)),t=ui(r.join(" "));break;case 7936:case 7937:case 37445:case 37446:var o=S.getParameter(e);o||w.recordError(1280),t=o&&ui(o);break;case 7938:var a=S.getParameter(7938);w.currentContext.version>=2?a=`OpenGL ES 3.0 (${a})`:a=`OpenGL ES 2.0 (${a})`,t=ui(a);break;case 35724:var s=S.getParameter(35724),A=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/,c=s.match(A);c!==null&&(c[1].length==3&&(c[1]=`${c[1]}0`),s=`OpenGL ES GLSL ES ${c[1]} (${s})`),t=ui(s);break;default:w.recordError(1280)}w.stringCache[e]=t}return t}function Os(e,t){return S.getUniformBlockIndex(w.programs[e],$e(t))}function wo(e){return parseInt(e)}function Do(e){return e.slice(-1)=="]"&&e.lastIndexOf("[")}function Bs(e){let{uniformLocsById:t}=e,{uniformSizeAndIdsByName:r}=e,o,a;if(!t)for(e.uniformLocsById=t={},e.uniformArrayNamesById={},o=0;o<S.getProgramParameter(e,35718);++o){let s=S.getActiveUniform(e,o),A=s.name,c=s.size,u=Do(A),d=u>0?A.slice(0,u):A,h=e.uniformIdCounter;for(e.uniformIdCounter+=c,r[d]=[c,h],a=0;a<c;++a)t[h]=a,e.uniformArrayNamesById[h++]=d}}function Ts(e,t){if(t=$e(t),e=w.programs[e]){Bs(e);let{uniformLocsById:r}=e,o=0,a=t,s=Do(t);s>0&&(o=wo(t.slice(s+1))>>>0,a=t.slice(0,s));let A=e.uniformSizeAndIdsByName[a];if(A&&o<A[0]&&(o+=A[1],r[o]=r[o]||S.getUniformLocation(e,t)))return o}else w.recordError(1281);return-1}function vs(e){e=w.programs[e],S.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}}function Qs(e,t){e==3317&&(w.unpackAlignment=t),S.pixelStorei(e,t)}function Ps(e,t,r,o){function a(c,u){return c+u-1&-u}let s=e*r,A=a(s,o);return t*A}function Mn(e){return{5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[e-6402]||1}function Er(e){return e-=5120,e==0?De:e==1?Te:e==2?T:e==4?b:e==6?Ye:e==5||e==28922||e==28520||e==30779||e==30782?ve:be}function zr(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function eo(e,t,r,o,a,s){let A=Er(e),c=zr(A),u=1<<c,d=Mn(t)*u,h=Ps(r,o,d,w.unpackAlignment);return A.subarray(a>>c,a+h>>c)}function Rs(e,t,r,o,a,s,A){if(w.currentContext.version>=2){if(S.currentPixelPackBufferBinding)S.readPixels(e,t,r,o,a,s,A);else{let u=Er(s);S.readPixels(e,t,r,o,a,s,u,A>>zr(u))}return}let c=eo(s,a,r,o,A,a);if(!c){w.recordError(1280);return}S.readPixels(e,t,r,o,a,s,c)}function Ss(e,t,r,o){let a=w.getSource(e,t,r,o);S.shaderSource(w.shaders[e],a)}function Ms(e,t,r,o,a,s,A,c,u){if(w.currentContext.version>=2){if(S.currentPixelUnpackBufferBinding)S.texImage2D(e,t,r,o,a,s,A,c,u);else if(u){let d=Er(c);S.texImage2D(e,t,r,o,a,s,A,c,d,u>>zr(d))}else S.texImage2D(e,t,r,o,a,s,A,c,null);return}S.texImage2D(e,t,r,o,a,s,A,c,u?eo(c,A,o,a,u,r):null)}function Fs(e,t,r){let o=Ye[r>>2];S.texParameterf(e,t,o)}function ks(e,t,r){S.texParameteri(e,t,r)}function Us(e,t,r,o,a){S.texStorage2D(e,t,r,o,a)}function Ns(e,t,r,o,a,s){S.texStorage3D(e,t,r,o,a,s)}function xs(e,t,r,o,a,s,A,c,u){if(w.currentContext.version>=2){if(S.currentPixelUnpackBufferBinding)S.texSubImage2D(e,t,r,o,a,s,A,c,u);else if(u){let h=Er(c);S.texSubImage2D(e,t,r,o,a,s,A,c,h,u>>zr(h))}else S.texSubImage2D(e,t,r,o,a,s,A,c,null);return}let d=null;u&&(d=eo(c,A,a,s,u,0)),S.texSubImage2D(e,t,r,o,a,s,A,c,d)}function Jt(e,t,r,o,a,s,A,c,u,d,h){if(S.currentPixelUnpackBufferBinding)S.texSubImage3D(e,t,r,o,a,s,A,c,u,d,h);else if(h){let m=Er(d);S.texSubImage3D(e,t,r,o,a,s,A,c,u,d,m,h>>zr(m))}else S.texSubImage3D(e,t,r,o,a,s,A,c,u,d,null)}function Zt(e){let t=S.currentProgram;if(t){let r=t.uniformLocsById[e];return typeof r=="number"&&(t.uniformLocsById[e]=r=S.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?`[${r}]`:""))),r}w.recordError(1282)}function js(e,t){S.uniform1f(Zt(e),t)}function li(e,t){S.uniform1i(Zt(e),t)}let di=[];function Ls(e,t,r){if(w.currentContext.version>=2){S.uniform2fv(Zt(e),Ye,r>>2,t*2);return}if(t<=144){var o=di[2*t-1];for(let a=0;a<2*t;a+=2)o[a]=Ye[r+4*a>>2],o[a+1]=Ye[r+(4*a+4)>>2]}else var o=Ye.subarray(r>>2,r+t*8>>2);S.uniform2fv(Zt(e),o)}function bo(e,t,r){if(w.currentContext.version>=2){S.uniform4fv(Zt(e),Ye,r>>2,t*4);return}if(t<=72){var o=di[4*t-1];let a=Ye;r>>=2;for(let s=0;s<4*t;s+=4){let A=r+s;o[s]=a[A],o[s+1]=a[A+1],o[s+2]=a[A+2],o[s+3]=a[A+3]}}else var o=Ye.subarray(r>>2,r+t*16>>2);S.uniform4fv(Zt(e),o)}let Oo=[];function Hs(e,t,r){if(w.currentContext.version>=2){S.uniform4iv(Zt(e),b,r>>2,t*4);return}if(t<=72){var o=Oo[4*t-1];for(let a=0;a<4*t;a+=4)o[a]=b[r+4*a>>2],o[a+1]=b[r+(4*a+4)>>2],o[a+2]=b[r+(4*a+8)>>2],o[a+3]=b[r+(4*a+12)>>2]}else var o=b.subarray(r>>2,r+t*16>>2);S.uniform4iv(Zt(e),o)}function Gs(e,t,r){e=w.programs[e],S.uniformBlockBinding(e,t,r)}function Ys(e,t,r,o){if(w.currentContext.version>=2){S.uniformMatrix4fv(Zt(e),!!r,Ye,o>>2,t*16);return}if(t<=18){var a=di[16*t-1];let s=Ye;o>>=2;for(let A=0;A<16*t;A+=16){let c=o+A;a[A]=s[c],a[A+1]=s[c+1],a[A+2]=s[c+2],a[A+3]=s[c+3],a[A+4]=s[c+4],a[A+5]=s[c+5],a[A+6]=s[c+6],a[A+7]=s[c+7],a[A+8]=s[c+8],a[A+9]=s[c+9],a[A+10]=s[c+10],a[A+11]=s[c+11],a[A+12]=s[c+12],a[A+13]=s[c+13],a[A+14]=s[c+14],a[A+15]=s[c+15]}}else var a=Ye.subarray(o>>2,o+t*64>>2);S.uniformMatrix4fv(Zt(e),!!r,a)}function Xs(e){e=w.programs[e],S.useProgram(e),S.currentProgram=e}function Ws(e,t,r,o,a,s){let A=w.currentContext.clientBuffers[e];if(!S.currentArrayBufferBinding){A.size=t,A.type=r,A.normalized=o,A.stride=a,A.ptr=s,A.clientside=!0,A.vertexAttribPointerAdaptor=function(c,u,d,h,m,I){this.vertexAttribPointer(c,u,d,h,m,I)};return}A.clientside=!1,S.vertexAttribPointer(e,t,r,!!o,a,s)}function fi(e,t,r,o){S.viewport(e,t,r,o)}function gi(e,t){let r=new Date(b[e>>2]*1e3);b[t>>2]=r.getUTCSeconds(),b[t+4>>2]=r.getUTCMinutes(),b[t+8>>2]=r.getUTCHours(),b[t+12>>2]=r.getUTCDate(),b[t+16>>2]=r.getUTCMonth(),b[t+20>>2]=r.getUTCFullYear()-1900,b[t+24>>2]=r.getUTCDay(),b[t+36>>2]=0,b[t+32>>2]=0;let o=Date.UTC(r.getUTCFullYear(),0,1,0,0,0,0),a=(r.getTime()-o)/(1e3*60*60*24)|0;return b[t+28>>2]=a,gi.GMTString||(gi.GMTString=mn("GMT")),b[t+40>>2]=gi.GMTString,t}function Ei(e){return e}function pi(){if(pi.called)return;pi.called=!0;let e=new Date().getFullYear(),t=new Date(e,0,1),r=new Date(e,6,1),o=t.getTimezoneOffset(),a=r.getTimezoneOffset(),s=Math.max(o,a);b[re()>>2]=s*60,b[qs()>>2]=+(o!=a);function A(m){let I=m.toTimeString().match(/\(([A-Za-z ]+)\)$/);return I?I[1]:"GMT"}let c=A(t),u=A(r),d=mn(c),h=mn(u);a<o?(b[Un()>>2]=d,b[Un()+4>>2]=h):(b[Un()>>2]=h,b[Un()+4>>2]=d)}function Vs(e,t){pi();let r=new Date(b[e>>2]*1e3);b[t>>2]=r.getSeconds(),b[t+4>>2]=r.getMinutes(),b[t+8>>2]=r.getHours(),b[t+12>>2]=r.getDate(),b[t+16>>2]=r.getMonth(),b[t+20>>2]=r.getFullYear()-1900,b[t+24>>2]=r.getDay();let o=new Date(r.getFullYear(),0,1),a=(r.getTime()-o.getTime())/(1e3*60*60*24)|0;b[t+28>>2]=a,b[t+36>>2]=-(r.getTimezoneOffset()*60);let s=new Date(r.getFullYear(),6,1).getTimezoneOffset(),A=o.getTimezoneOffset(),c=(s!=A&&r.getTimezoneOffset()==Math.min(A,s))|0;b[t+32>>2]=c;let u=b[Un()+(c?4:0)>>2];return b[t+40>>2]=u,t}function zs(e){pi();let t=new Date(b[e+20>>2]+1900,b[e+16>>2],b[e+12>>2],b[e+8>>2],b[e+4>>2],b[e>>2],0),r=b[e+32>>2],o=t.getTimezoneOffset(),a=new Date(t.getFullYear(),0,1),s=new Date(t.getFullYear(),6,1).getTimezoneOffset(),A=a.getTimezoneOffset(),c=Math.min(A,s);if(r<0)b[e+32>>2]=+(s!=A&&c==o);else if(r>0!=(c==o)){let d=Math.max(A,s),h=r>0?c:d;t.setTime(t.getTime()+(h-o)*6e4)}b[e+24>>2]=t.getDay();let u=(t.getTime()-a.getTime())/(1e3*60*60*24)|0;return b[e+28>>2]=u,b[e>>2]=t.getSeconds(),b[e+4>>2]=t.getMinutes(),b[e+8>>2]=t.getHours(),b[e+12>>2]=t.getDate(),b[e+16>>2]=t.getMonth(),t.getTime()/1e3|0}function $s(e){i(e)}function _i(e){he(e)}function fn(e){return e%4===0&&(e%100!==0||e%400===0)}function gn(e,t){let r=0;for(let o=0;o<=t;r+=e[o++]);return r}let $r=[31,29,31,30,31,30,31,31,30,31,30,31],Kr=[31,28,31,30,31,30,31,31,30,31,30,31];function Fn(e,t){let r=new Date(e.getTime());for(;t>0;){let o=fn(r.getFullYear()),a=r.getMonth(),s=(o?$r:Kr)[a];if(t>s-r.getDate())t-=s-r.getDate()+1,r.setDate(1),a<11?r.setMonth(a+1):(r.setMonth(0),r.setFullYear(r.getFullYear()+1));else return r.setDate(r.getDate()+t),r}return r}function Bo(e,t,r,o){let a=b[o+40>>2],s={tm_sec:b[o>>2],tm_min:b[o+4>>2],tm_hour:b[o+8>>2],tm_mday:b[o+12>>2],tm_mon:b[o+16>>2],tm_year:b[o+20>>2],tm_wday:b[o+24>>2],tm_yday:b[o+28>>2],tm_isdst:b[o+32>>2],tm_gmtoff:b[o+36>>2],tm_zone:a?$e(a):""},A=$e(r),c={"%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 u in c)A=A.replace(new RegExp(u,"g"),c[u]);let d=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],h=["January","February","March","April","May","June","July","August","September","October","November","December"];function m(D,k,$){let Y=typeof D=="number"?D.toString():D||"";for(;Y.length<k;)Y=$[0]+Y;return Y}function I(D,k){return m(D,k,"0")}function y(D,k){function $(pe){return pe<0?-1:pe>0?1:0}let Y;return(Y=$(D.getFullYear()-k.getFullYear()))===0&&(Y=$(D.getMonth()-k.getMonth()))===0&&(Y=$(D.getDate()-k.getDate())),Y}function v(D){switch(D.getDay()){case 0:return new Date(D.getFullYear()-1,11,29);case 1:return D;case 2:return new Date(D.getFullYear(),0,3);case 3:return new Date(D.getFullYear(),0,2);case 4:return new Date(D.getFullYear(),0,1);case 5:return new Date(D.getFullYear()-1,11,31);case 6:return new Date(D.getFullYear()-1,11,30)}}function N(D){let k=Fn(new Date(D.tm_year+1900,0,1),D.tm_yday),$=new Date(k.getFullYear(),0,4),Y=new Date(k.getFullYear()+1,0,4),pe=v($),Me=v(Y);return y(pe,k)<=0?y(Me,k)<=0?k.getFullYear()+1:k.getFullYear():k.getFullYear()-1}let H={"%a"(D){return d[D.tm_wday].substring(0,3)},"%A"(D){return d[D.tm_wday]},"%b"(D){return h[D.tm_mon].substring(0,3)},"%B"(D){return h[D.tm_mon]},"%C"(D){let k=D.tm_year+1900;return I(k/100|0,2)},"%d"(D){return I(D.tm_mday,2)},"%e"(D){return m(D.tm_mday,2," ")},"%g"(D){return N(D).toString().substring(2)},"%G"(D){return N(D)},"%H"(D){return I(D.tm_hour,2)},"%I"(D){let k=D.tm_hour;return k==0?k=12:k>12&&(k-=12),I(k,2)},"%j"(D){return I(D.tm_mday+gn(fn(D.tm_year+1900)?$r:Kr,D.tm_mon-1),3)},"%m"(D){return I(D.tm_mon+1,2)},"%M"(D){return I(D.tm_min,2)},"%n"(){return`
30
+ `},"%p"(D){return D.tm_hour>=0&&D.tm_hour<12?"AM":"PM"},"%S"(D){return I(D.tm_sec,2)},"%t"(){return" "},"%u"(D){return D.tm_wday||7},"%U"(D){let k=new Date(D.tm_year+1900,0,1),$=k.getDay()===0?k:Fn(k,7-k.getDay()),Y=new Date(D.tm_year+1900,D.tm_mon,D.tm_mday);if(y($,Y)<0){let pe=gn(fn(Y.getFullYear())?$r:Kr,Y.getMonth()-1)-31,kt=31-$.getDate()+pe+Y.getDate();return I(Math.ceil(kt/7),2)}return y($,k)===0?"01":"00"},"%V"(D){let k=new Date(D.tm_year+1900,0,4),$=new Date(D.tm_year+1901,0,4),Y=v(k),pe=v($),Me=Fn(new Date(D.tm_year+1900,0,1),D.tm_yday);if(y(Me,Y)<0)return"53";if(y(pe,Me)<=0)return"01";let kt;return Y.getFullYear()<D.tm_year+1900?kt=D.tm_yday+32-Y.getDate():kt=D.tm_yday+1-Y.getDate(),I(Math.ceil(kt/7),2)},"%w"(D){return D.tm_wday},"%W"(D){let k=new Date(D.tm_year,0,1),$=k.getDay()===1?k:Fn(k,k.getDay()===0?1:7-k.getDay()+1),Y=new Date(D.tm_year+1900,D.tm_mon,D.tm_mday);if(y($,Y)<0){let pe=gn(fn(Y.getFullYear())?$r:Kr,Y.getMonth()-1)-31,kt=31-$.getDate()+pe+Y.getDate();return I(Math.ceil(kt/7),2)}return y($,k)===0?"01":"00"},"%y"(D){return(D.tm_year+1900).toString().substring(2)},"%Y"(D){return D.tm_year+1900},"%z"(D){let k=D.tm_gmtoff,$=k>=0;return k=Math.abs(k)/60,k=k/60*100+k%60,($?"+":"-")+`0000${k}`.slice(-4)},"%Z"(D){return D.tm_zone},"%%"(){return"%"}};for(var u in H)A.includes(u)&&(A=A.replace(new RegExp(u,"g"),H[u](s)));let R=hi(A,!1);return R.length>t?0:(Ln(R,e),R.length-1)}function To(e,t,r,o){return Bo(e,t,r,o)}n.requestFullscreen=function(t,r){P.requestFullscreen(t,r)},n.requestFullScreen=function(){P.requestFullScreen()},n.requestAnimationFrame=function(t){P.requestAnimationFrame(t)},n.setCanvasSize=function(t,r,o){P.setCanvasSize(t,r,o)},n.pauseMainLoop=function(){P.mainLoop.pause()},n.resumeMainLoop=function(){P.mainLoop.resume()},n.getUserMedia=function(){P.getUserMedia()},n.createContext=function(t,r,o,a){return P.createContext(t,r,o,a)};let kn=function(e,t,r,o){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=l.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=o},Jr=365,M=146;Object.defineProperties(kn.prototype,{read:{get(){return(this.mode&Jr)===Jr},set(e){e?this.mode|=Jr:this.mode&=~Jr}},write:{get(){return(this.mode&M)===M},set(e){e?this.mode|=M:this.mode&=~M}},isFolder:{get(){return l.isDir(this.mode)}},isDevice:{get(){return l.isChrdev(this.mode)}}}),l.FSNode=kn,l.staticInit(),n.FS_createPath=l.createPath,n.FS_createDataFile=l.createDataFile,n.FS_createPreloadedFile=l.createPreloadedFile,n.FS_createLazyFile=l.createLazyFile,n.FS_createDevice=l.createDevice,n.FS_unlink=l.unlink,sn(),$n=n.PureVirtualError=jr(Error,"PureVirtualError"),Kn(),Ft(),ae=n.BindingError=jr(Error,"BindingError"),F=n.InternalError=jr(Error,"InternalError"),Ue(),fr(),Tr=n.UnboundTypeError=jr(Error,"UnboundTypeError");let S;for(var yt=0;yt<32;++yt)yo.push(new Array(yt));let Ks=new Float32Array(288);for(var yt=0;yt<288;++yt)di[yt]=Ks.subarray(0,yt+1);let ec=new Int32Array(288);for(var yt=0;yt<288;++yt)Oo[yt]=ec.subarray(0,yt+1);let to=!0;function hi(e,t,r){let o=r>0?r:wt(e)+1,a=new Array(o),s=Ke(e,a,0,a.length);return t&&(a.length=s),a}let tc=typeof atob=="function"?atob:function(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",r="",o,a,s,A,c,u,d,h=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");do A=t.indexOf(e.charAt(h++)),c=t.indexOf(e.charAt(h++)),u=t.indexOf(e.charAt(h++)),d=t.indexOf(e.charAt(h++)),o=A<<2|c>>4,a=(c&15)<<4|u>>2,s=(u&3)<<6|d,r=r+String.fromCharCode(o),u!==64&&(r=r+String.fromCharCode(a)),d!==64&&(r=r+String.fromCharCode(s));while(h<e.length);return r};function Js(e){if(typeof _t=="boolean"&&_t){let t=Buffer.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}try{let t=tc(e),r=new Uint8Array(t.length);for(let o=0;o<t.length;++o)r[o]=t.charCodeAt(o);return r}catch(t){throw new Error("Converting base64 string to bytes failed.")}}var Zs={HaveOffsetConverter:wr,__cxa_allocate_exception:so,__cxa_atexit:br,__cxa_begin_catch:Xt,__cxa_end_catch:Yn,__cxa_find_matching_catch_2:Ri,__cxa_find_matching_catch_3:Xn,__cxa_free_exception:Or,__cxa_rethrow:Si,__cxa_thread_atexit:Mi,__cxa_throw:Wn,__resumeException:Tn,__sys_fcntl64:Ui,__sys_ioctl:Ni,__sys_mmap2:ji,__sys_open:Li,__sys_stat64:zn,_embind_create_inheriting_constructor:cr,_embind_finalize_value_object:j,_embind_register_bigint:Z,_embind_register_bool:Ie,_embind_register_class:lo,_embind_register_class_class_function:Xo,_embind_register_class_constructor:Wo,_embind_register_class_function:fo,_embind_register_class_property:Eo,_embind_register_emval:ln,_embind_register_float:zo,_embind_register_function:$o,_embind_register_integer:Jo,_embind_register_memory_view:Zo,_embind_register_std_string:qo,_embind_register_std_wstring:ea,_embind_register_value_object:ta,_embind_register_value_object_field:ra,_embind_register_void:na,_emval_call_void_method:oa,_emval_decref:po,_emval_get_method_caller:Aa,_emval_incref:ca,_emval_take_value:ua,abort:la,clock_gettime:fa,dlopen:ga,dlsym:ri,emscripten_asm_const_int:pa,emscripten_get_heap_max:_a,emscripten_memcpy_big:ha,emscripten_pc_get_function:ma,emscripten_resize_heap:ii,emscripten_stack_snapshot:Ca,emscripten_stack_unwind_buffer:ya,emscripten_thread_sleep:wa,emscripten_webgl_create_context:Pa,emscripten_webgl_destroy_context:Ra,emscripten_webgl_get_context_attributes:Sa,emscripten_webgl_get_current_context:Ji,emscripten_webgl_init_context_attributes:Zi,emscripten_webgl_make_context_current:Io,environ_get:Ma,environ_sizes_get:Fa,exit:Hn,fd_close:ka,fd_read:Ua,fd_seek:Na,fd_write:xa,getTempRet0:oi,getentropy:ai,glActiveTexture:ja,glAttachShader:La,glBindAttribLocation:Ha,glBindBuffer:Ga,glBindBufferBase:Ya,glBindFramebuffer:Xa,glBindTexture:Wa,glBindVertexArray:Va,glBufferData:za,glClientWaitSync:Ka,glCompileShader:Ja,glCreateProgram:Za,glCreateShader:qa,glDeleteBuffers:es,glDeleteFramebuffers:ts,glDeleteProgram:rs,glDeleteShader:ns,glDeleteSync:is,glDeleteTextures:os,glDeleteVertexArrays:as,glDisable:ss,glDisableVertexAttribArray:As,glDrawArrays:Co,glDrawBuffers:cs,glEnableVertexAttribArray:us,glFenceSync:ls,glFinish:ds,glFlush:fs,glFramebufferTexture2D:gs,glFramebufferTextureLayer:si,glGenBuffers:Es,glGenFramebuffers:ps,glGenTextures:_s,glGenVertexArrays:hs,glGetAttribLocation:ms,glGetError:Is,glGetIntegerv:ci,glGetString:bs,glGetUniformBlockIndex:Os,glGetUniformLocation:Ts,glLinkProgram:vs,glPixelStorei:Qs,glReadPixels:Rs,glShaderSource:Ss,glTexImage2D:Ms,glTexParameterfv:Fs,glTexParameteri:ks,glTexStorage2D:Us,glTexStorage3D:Ns,glTexSubImage2D:xs,glTexSubImage3D:Jt,glUniform1f:js,glUniform1i:li,glUniform2fv:Ls,glUniform4fv:bo,glUniform4iv:Hs,glUniformBlockBinding:Gs,glUniformMatrix4fv:Ys,glUseProgram:Xs,glVertexAttribPointer:Ws,glViewport:fi,gmtime_r:gi,invoke_diii:yA,invoke_i:BA,invoke_ii:cA,invoke_iii:nA,invoke_iiii:wA,invoke_iiiii:pA,invoke_iiiiii:mA,invoke_iiiiiii:oA,invoke_iiiiiiiddi:zA,invoke_iiiiiiii:CA,invoke_iiiiiiiii:PA,invoke_v:aA,invoke_vdiii:mi,invoke_vi:rA,invoke_vididdii:GA,invoke_vidii:XA,invoke_vii:AA,invoke_viid:tA,invoke_viidi:JA,invoke_viididii:QA,invoke_viii:uA,invoke_viiid:YA,invoke_viiidd:hA,invoke_viiiddi:OA,invoke_viiidi:TA,invoke_viiii:EA,invoke_viiiid:$A,invoke_viiiidi:vA,invoke_viiiidid:KA,invoke_viiiidiidiiiiiii:HA,invoke_viiiifiifiiiiiii:LA,invoke_viiiii:iA,invoke_viiiiid:MA,invoke_viiiiif:NA,invoke_viiiiii:lA,invoke_viiiiiid:FA,invoke_viiiiiif:xA,invoke_viiiiiii:dA,invoke_viiiiiiiddi:VA,invoke_viiiiiiidiiii:UA,invoke_viiiiiiifiiii:jA,invoke_viiiiiiii:fA,invoke_viiiiiiiidd:SA,invoke_viiiiiiiidf:RA,invoke_viiiiiiiii:gA,invoke_viiiiiiiiidd:DA,invoke_viiiiiiiiiddi:bA,invoke_viiiiiiiiii:sA,invoke_viiiiiiiiiiddi:WA,invoke_viiiiiiiiiii:_A,invoke_viiiiiiiiiiii:kA,invoke_viiiiiiiiiiiii:IA,llvm_eh_typeid_for:Ei,localtime_r:Vs,mktime:zs,proc_exit:$s,setTempRet0:_i,strftime:Bo,strftime_l:To};let Ic=Ge(),pr=n.___wasm_call_ctors=ce("__wasm_call_ctors");var nt=n._free=ce("free"),Zr=n._malloc=ce("malloc"),rc=n.___errno_location=ce("__errno_location");let nc=n._fflush=ce("fflush");var ic=n.___getTypeName=ce("__getTypeName");let Cc=n.___embind_register_native_and_builtin_types=ce("__embind_register_native_and_builtin_types"),vo=n._emscripten_main_thread_process_queued_calls=ce("emscripten_main_thread_process_queued_calls");var qr=n._emscripten_stack_get_end=function(){return(qr=n._emscripten_stack_get_end=n.asm.emscripten_stack_get_end).apply(null,arguments)},Un=n.__get_tzname=ce("_get_tzname"),qs=n.__get_daylight=ce("_get_daylight"),re=n.__get_timezone=ce("_get_timezone"),x=n.stackSave=ce("stackSave"),ee=n.stackRestore=ce("stackRestore"),ro=n.stackAlloc=ce("stackAlloc"),Qo=n._emscripten_stack_init=function(){return(Qo=n._emscripten_stack_init=n.asm.emscripten_stack_init).apply(null,arguments)},oc=n._emscripten_stack_get_free=function(){return(oc=n._emscripten_stack_get_free=n.asm.emscripten_stack_get_free).apply(null,arguments)};let ie=n._saveSetjmp=ce("saveSetjmp");var te=n._setThrew=ce("setThrew"),Po=n.___cxa_can_catch=ce("__cxa_can_catch"),eA=n.___cxa_is_pointer_type=ce("__cxa_is_pointer_type"),ac=n._memalign=ce("memalign");let yc=n._emscripten_builtin_malloc=ce("emscripten_builtin_malloc"),wc=n._emscripten_builtin_free=ce("emscripten_builtin_free"),Dc=n._emscripten_builtin_memalign=ce("emscripten_builtin_memalign"),bc=n.dynCall_jii=ce("dynCall_jii"),Oc=n.dynCall_viji=ce("dynCall_viji"),Bc=n.dynCall_jjj=ce("dynCall_jjj"),Tc=n.dynCall_iiiijj=ce("dynCall_iiiijj"),vc=n.dynCall_viijj=ce("dynCall_viijj"),Qc=n.dynCall_viiijjjj=ce("dynCall_viiijjjj"),Pc=n.dynCall_ji=ce("dynCall_ji"),Rc=n.dynCall_vij=ce("dynCall_vij"),Sc=n.dynCall_viijii=ce("dynCall_viijii"),Mc=n.dynCall_vj=ce("dynCall_vj"),Fc=n.dynCall_viij=ce("dynCall_viij"),kc=n.dynCall_viiiiij=ce("dynCall_viiiiij"),Uc=n.dynCall_iijjiiii=ce("dynCall_iijjiiii"),Nc=n.dynCall_jiji=ce("dynCall_jiji"),xc=n.dynCall_iiiiij=ce("dynCall_iiiiij"),jc=n.dynCall_iiiiijj=ce("dynCall_iiiiijj"),sc=n.dynCall_iiiiiijj=ce("dynCall_iiiiiijj");function tA(e,t,r,o){let a=x();try{V.get(e)(t,r,o)}catch(s){if(ee(a),s!==s+0&&s!=="longjmp")throw s;te(1,0)}}function rA(e,t){let r=x();try{V.get(e)(t)}catch(o){if(ee(r),o!==o+0&&o!=="longjmp")throw o;te(1,0)}}function nA(e,t,r){let o=x();try{return V.get(e)(t,r)}catch(a){if(ee(o),a!==a+0&&a!=="longjmp")throw a;te(1,0)}}function iA(e,t,r,o,a,s){let A=x();try{V.get(e)(t,r,o,a,s)}catch(c){if(ee(A),c!==c+0&&c!=="longjmp")throw c;te(1,0)}}function oA(e,t,r,o,a,s,A){let c=x();try{return V.get(e)(t,r,o,a,s,A)}catch(u){if(ee(c),u!==u+0&&u!=="longjmp")throw u;te(1,0)}}function aA(e){let t=x();try{V.get(e)()}catch(r){if(ee(t),r!==r+0&&r!=="longjmp")throw r;te(1,0)}}function sA(e,t,r,o,a,s,A,c,u,d,h){let m=x();try{V.get(e)(t,r,o,a,s,A,c,u,d,h)}catch(I){if(ee(m),I!==I+0&&I!=="longjmp")throw I;te(1,0)}}function AA(e,t,r){let o=x();try{V.get(e)(t,r)}catch(a){if(ee(o),a!==a+0&&a!=="longjmp")throw a;te(1,0)}}function cA(e,t){let r=x();try{return V.get(e)(t)}catch(o){if(ee(r),o!==o+0&&o!=="longjmp")throw o;te(1,0)}}function uA(e,t,r,o){let a=x();try{V.get(e)(t,r,o)}catch(s){if(ee(a),s!==s+0&&s!=="longjmp")throw s;te(1,0)}}function lA(e,t,r,o,a,s,A){let c=x();try{V.get(e)(t,r,o,a,s,A)}catch(u){if(ee(c),u!==u+0&&u!=="longjmp")throw u;te(1,0)}}function dA(e,t,r,o,a,s,A,c){let u=x();try{V.get(e)(t,r,o,a,s,A,c)}catch(d){if(ee(u),d!==d+0&&d!=="longjmp")throw d;te(1,0)}}function fA(e,t,r,o,a,s,A,c,u){let d=x();try{V.get(e)(t,r,o,a,s,A,c,u)}catch(h){if(ee(d),h!==h+0&&h!=="longjmp")throw h;te(1,0)}}function gA(e,t,r,o,a,s,A,c,u,d){let h=x();try{V.get(e)(t,r,o,a,s,A,c,u,d)}catch(m){if(ee(h),m!==m+0&&m!=="longjmp")throw m;te(1,0)}}function EA(e,t,r,o,a){let s=x();try{V.get(e)(t,r,o,a)}catch(A){if(ee(s),A!==A+0&&A!=="longjmp")throw A;te(1,0)}}function pA(e,t,r,o,a){let s=x();try{return V.get(e)(t,r,o,a)}catch(A){if(ee(s),A!==A+0&&A!=="longjmp")throw A;te(1,0)}}function _A(e,t,r,o,a,s,A,c,u,d,h,m){let I=x();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,m)}catch(y){if(ee(I),y!==y+0&&y!=="longjmp")throw y;te(1,0)}}function hA(e,t,r,o,a,s){let A=x();try{V.get(e)(t,r,o,a,s)}catch(c){if(ee(A),c!==c+0&&c!=="longjmp")throw c;te(1,0)}}function mA(e,t,r,o,a,s){let A=x();try{return V.get(e)(t,r,o,a,s)}catch(c){if(ee(A),c!==c+0&&c!=="longjmp")throw c;te(1,0)}}function IA(e,t,r,o,a,s,A,c,u,d,h,m,I,y){let v=x();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,m,I,y)}catch(N){if(ee(v),N!==N+0&&N!=="longjmp")throw N;te(1,0)}}function CA(e,t,r,o,a,s,A,c){let u=x();try{return V.get(e)(t,r,o,a,s,A,c)}catch(d){if(ee(u),d!==d+0&&d!=="longjmp")throw d;te(1,0)}}function yA(e,t,r,o){let a=x();try{return V.get(e)(t,r,o)}catch(s){if(ee(a),s!==s+0&&s!=="longjmp")throw s;te(1,0)}}function wA(e,t,r,o){let a=x();try{return V.get(e)(t,r,o)}catch(s){if(ee(a),s!==s+0&&s!=="longjmp")throw s;te(1,0)}}function DA(e,t,r,o,a,s,A,c,u,d,h,m){let I=x();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,m)}catch(y){if(ee(I),y!==y+0&&y!=="longjmp")throw y;te(1,0)}}function bA(e,t,r,o,a,s,A,c,u,d,h,m,I){let y=x();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,m,I)}catch(v){if(ee(y),v!==v+0&&v!=="longjmp")throw v;te(1,0)}}function OA(e,t,r,o,a,s,A){let c=x();try{V.get(e)(t,r,o,a,s,A)}catch(u){if(ee(c),u!==u+0&&u!=="longjmp")throw u;te(1,0)}}function BA(e){let t=x();try{return V.get(e)()}catch(r){if(ee(t),r!==r+0&&r!=="longjmp")throw r;te(1,0)}}function TA(e,t,r,o,a,s){let A=x();try{V.get(e)(t,r,o,a,s)}catch(c){if(ee(A),c!==c+0&&c!=="longjmp")throw c;te(1,0)}}function vA(e,t,r,o,a,s,A){let c=x();try{V.get(e)(t,r,o,a,s,A)}catch(u){if(ee(c),u!==u+0&&u!=="longjmp")throw u;te(1,0)}}function QA(e,t,r,o,a,s,A,c){let u=x();try{V.get(e)(t,r,o,a,s,A,c)}catch(d){if(ee(u),d!==d+0&&d!=="longjmp")throw d;te(1,0)}}function PA(e,t,r,o,a,s,A,c,u){let d=x();try{return V.get(e)(t,r,o,a,s,A,c,u)}catch(h){if(ee(d),h!==h+0&&h!=="longjmp")throw h;te(1,0)}}function RA(e,t,r,o,a,s,A,c,u,d,h){let m=x();try{V.get(e)(t,r,o,a,s,A,c,u,d,h)}catch(I){if(ee(m),I!==I+0&&I!=="longjmp")throw I;te(1,0)}}function SA(e,t,r,o,a,s,A,c,u,d,h){let m=x();try{V.get(e)(t,r,o,a,s,A,c,u,d,h)}catch(I){if(ee(m),I!==I+0&&I!=="longjmp")throw I;te(1,0)}}function MA(e,t,r,o,a,s,A){let c=x();try{V.get(e)(t,r,o,a,s,A)}catch(u){if(ee(c),u!==u+0&&u!=="longjmp")throw u;te(1,0)}}function FA(e,t,r,o,a,s,A,c){let u=x();try{V.get(e)(t,r,o,a,s,A,c)}catch(d){if(ee(u),d!==d+0&&d!=="longjmp")throw d;te(1,0)}}function kA(e,t,r,o,a,s,A,c,u,d,h,m,I){let y=x();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,m,I)}catch(v){if(ee(y),v!==v+0&&v!=="longjmp")throw v;te(1,0)}}function UA(e,t,r,o,a,s,A,c,u,d,h,m,I){let y=x();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,m,I)}catch(v){if(ee(y),v!==v+0&&v!=="longjmp")throw v;te(1,0)}}function NA(e,t,r,o,a,s,A){let c=x();try{V.get(e)(t,r,o,a,s,A)}catch(u){if(ee(c),u!==u+0&&u!=="longjmp")throw u;te(1,0)}}function xA(e,t,r,o,a,s,A,c){let u=x();try{V.get(e)(t,r,o,a,s,A,c)}catch(d){if(ee(u),d!==d+0&&d!=="longjmp")throw d;te(1,0)}}function jA(e,t,r,o,a,s,A,c,u,d,h,m,I){let y=x();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,m,I)}catch(v){if(ee(y),v!==v+0&&v!=="longjmp")throw v;te(1,0)}}function LA(e,t,r,o,a,s,A,c,u,d,h,m,I,y,v,N){let H=x();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,m,I,y,v,N)}catch(R){if(ee(H),R!==R+0&&R!=="longjmp")throw R;te(1,0)}}function HA(e,t,r,o,a,s,A,c,u,d,h,m,I,y,v,N){let H=x();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,m,I,y,v,N)}catch(R){if(ee(H),R!==R+0&&R!=="longjmp")throw R;te(1,0)}}function GA(e,t,r,o,a,s,A,c){let u=x();try{V.get(e)(t,r,o,a,s,A,c)}catch(d){if(ee(u),d!==d+0&&d!=="longjmp")throw d;te(1,0)}}function YA(e,t,r,o,a){let s=x();try{V.get(e)(t,r,o,a)}catch(A){if(ee(s),A!==A+0&&A!=="longjmp")throw A;te(1,0)}}function XA(e,t,r,o,a){let s=x();try{V.get(e)(t,r,o,a)}catch(A){if(ee(s),A!==A+0&&A!=="longjmp")throw A;te(1,0)}}function WA(e,t,r,o,a,s,A,c,u,d,h,m,I,y){let v=x();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,m,I,y)}catch(N){if(ee(v),N!==N+0&&N!=="longjmp")throw N;te(1,0)}}function VA(e,t,r,o,a,s,A,c,u,d,h){let m=x();try{V.get(e)(t,r,o,a,s,A,c,u,d,h)}catch(I){if(ee(m),I!==I+0&&I!=="longjmp")throw I;te(1,0)}}function zA(e,t,r,o,a,s,A,c,u,d){let h=x();try{return V.get(e)(t,r,o,a,s,A,c,u,d)}catch(m){if(ee(h),m!==m+0&&m!=="longjmp")throw m;te(1,0)}}function $A(e,t,r,o,a,s){let A=x();try{V.get(e)(t,r,o,a,s)}catch(c){if(ee(A),c!==c+0&&c!=="longjmp")throw c;te(1,0)}}function KA(e,t,r,o,a,s,A,c){let u=x();try{V.get(e)(t,r,o,a,s,A,c)}catch(d){if(ee(u),d!==d+0&&d!=="longjmp")throw d;te(1,0)}}function JA(e,t,r,o,a){let s=x();try{V.get(e)(t,r,o,a)}catch(A){if(ee(s),A!==A+0&&A!=="longjmp")throw A;te(1,0)}}function mi(e,t,r,o,a){let s=x();try{V.get(e)(t,r,o,a)}catch(A){if(ee(s),A!==A+0&&A!=="longjmp")throw A;te(1,0)}}Object.getOwnPropertyDescriptor(n,"intArrayFromString")||(n.intArrayFromString=function(){p("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"intArrayToString")||(n.intArrayToString=function(){p("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ccall")||(n.ccall=function(){p("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"cwrap")||(n.cwrap=function(){p("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setValue")||(n.setValue=function(){p("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getValue")||(n.getValue=function(){p("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocate")||(n.allocate=function(){p("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ArrayToString")||(n.UTF8ArrayToString=function(){p("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ToString")||(n.UTF8ToString=function(){p("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8Array")||(n.stringToUTF8Array=function(){p("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8")||(n.stringToUTF8=function(){p("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF8")||(n.lengthBytesUTF8=function(){p("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){p("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreRun")||(n.addOnPreRun=function(){p("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnInit")||(n.addOnInit=function(){p("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreMain")||(n.addOnPreMain=function(){p("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnExit")||(n.addOnExit=function(){p("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPostRun")||(n.addOnPostRun=function(){p("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeStringToMemory")||(n.writeStringToMemory=function(){p("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeArrayToMemory")||(n.writeArrayToMemory=function(){p("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeAsciiToMemory")||(n.writeAsciiToMemory=function(){p("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.addRunDependency=E,n.removeRunDependency=nr,Object.getOwnPropertyDescriptor(n,"FS_createFolder")||(n.FS_createFolder=function(){p("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createPath=l.createPath,n.FS_createDataFile=l.createDataFile,n.FS_createPreloadedFile=l.createPreloadedFile,n.FS_createLazyFile=l.createLazyFile,Object.getOwnPropertyDescriptor(n,"FS_createLink")||(n.FS_createLink=function(){p("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createDevice=l.createDevice,n.FS_unlink=l.unlink,Object.getOwnPropertyDescriptor(n,"getLEB")||(n.getLEB=function(){p("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFunctionTables")||(n.getFunctionTables=function(){p("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignFunctionTables")||(n.alignFunctionTables=function(){p("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFunctions")||(n.registerFunctions=function(){p("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addFunction")||(n.addFunction=function(){p("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"removeFunction")||(n.removeFunction=function(){p("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){p("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"prettyPrint")||(n.prettyPrint=function(){p("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){p("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCompilerSetting")||(n.getCompilerSetting=function(){p("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"print")||(n.print=function(){p("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"printErr")||(n.printErr=function(){p("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTempRet0")||(n.getTempRet0=function(){p("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setTempRet0")||(n.setTempRet0=function(){p("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callMain")||(n.callMain=function(){p("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"abort")||(n.abort=function(){p("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"keepRuntimeAlive")||(n.keepRuntimeAlive=function(){p("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"zeroMemory")||(n.zeroMemory=function(){p("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToNewUTF8")||(n.stringToNewUTF8=function(){p("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setFileTime")||(n.setFileTime=function(){p("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscripten_realloc_buffer")||(n.emscripten_realloc_buffer=function(){p("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ENV")||(n.ENV=function(){p("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_CODES")||(n.ERRNO_CODES=function(){p("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_MESSAGES")||(n.ERRNO_MESSAGES=function(){p("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setErrNo")||(n.setErrNo=function(){p("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton4")||(n.inetPton4=function(){p("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop4")||(n.inetNtop4=function(){p("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton6")||(n.inetPton6=function(){p("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop6")||(n.inetNtop6=function(){p("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readSockaddr")||(n.readSockaddr=function(){p("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeSockaddr")||(n.writeSockaddr=function(){p("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"DNS")||(n.DNS=function(){p("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getHostByName")||(n.getHostByName=function(){p("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GAI_ERRNO_MESSAGES")||(n.GAI_ERRNO_MESSAGES=function(){p("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Protocols")||(n.Protocols=function(){p("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Sockets")||(n.Sockets=function(){p("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getRandomDevice")||(n.getRandomDevice=function(){p("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"traverseStack")||(n.traverseStack=function(){p("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UNWIND_CACHE")||(n.UNWIND_CACHE=function(){p("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"withBuiltinMalloc")||(n.withBuiltinMalloc=function(){p("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgsArray")||(n.readAsmConstArgsArray=function(){p("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgs")||(n.readAsmConstArgs=function(){p("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mainThreadEM_ASM")||(n.mainThreadEM_ASM=function(){p("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_q")||(n.jstoi_q=function(){p("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_s")||(n.jstoi_s=function(){p("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getExecutableName")||(n.getExecutableName=function(){p("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"listenOnce")||(n.listenOnce=function(){p("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"autoResumeAudioContext")||(n.autoResumeAudioContext=function(){p("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCallLegacy")||(n.dynCallLegacy=function(){p("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getDynCaller")||(n.getDynCaller=function(){p("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){p("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callRuntimeCallbacks")||(n.callRuntimeCallbacks=function(){p("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePush")||(n.runtimeKeepalivePush=function(){p("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePop")||(n.runtimeKeepalivePop=function(){p("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callUserCallback")||(n.callUserCallback=function(){p("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"maybeExit")||(n.maybeExit=function(){p("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"safeSetTimeout")||(n.safeSetTimeout=function(){p("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asmjsMangle")||(n.asmjsMangle=function(){p("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asyncLoad")||(n.asyncLoad=function(){p("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignMemory")||(n.alignMemory=function(){p("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mmapAlloc")||(n.mmapAlloc=function(){p("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reallyNegative")||(n.reallyNegative=function(){p("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unSign")||(n.unSign=function(){p("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reSign")||(n.reSign=function(){p("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"formatString")||(n.formatString=function(){p("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH")||(n.PATH=function(){p("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH_FS")||(n.PATH_FS=function(){p("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SYSCALLS")||(n.SYSCALLS=function(){p("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMmap2")||(n.syscallMmap2=function(){p("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMunmap")||(n.syscallMunmap=function(){p("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketFromFD")||(n.getSocketFromFD=function(){p("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketAddress")||(n.getSocketAddress=function(){p("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"JSEvents")||(n.JSEvents=function(){p("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerKeyEventCallback")||(n.registerKeyEventCallback=function(){p("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"specialHTMLTargets")||(n.specialHTMLTargets=function(){p("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findEventTarget")||(n.findEventTarget=function(){p("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findCanvasEventTarget")||(n.findCanvasEventTarget=function(){p("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBoundingClientRect")||(n.getBoundingClientRect=function(){p("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillMouseEventData")||(n.fillMouseEventData=function(){p("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerMouseEventCallback")||(n.registerMouseEventCallback=function(){p("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerWheelEventCallback")||(n.registerWheelEventCallback=function(){p("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerUiEventCallback")||(n.registerUiEventCallback=function(){p("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFocusEventCallback")||(n.registerFocusEventCallback=function(){p("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceOrientationEventData")||(n.fillDeviceOrientationEventData=function(){p("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceOrientationEventCallback")||(n.registerDeviceOrientationEventCallback=function(){p("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceMotionEventData")||(n.fillDeviceMotionEventData=function(){p("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceMotionEventCallback")||(n.registerDeviceMotionEventCallback=function(){p("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"screenOrientation")||(n.screenOrientation=function(){p("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillOrientationChangeEventData")||(n.fillOrientationChangeEventData=function(){p("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerOrientationChangeEventCallback")||(n.registerOrientationChangeEventCallback=function(){p("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillFullscreenChangeEventData")||(n.fillFullscreenChangeEventData=function(){p("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFullscreenChangeEventCallback")||(n.registerFullscreenChangeEventCallback=function(){p("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerRestoreOldStyle")||(n.registerRestoreOldStyle=function(){p("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"hideEverythingExceptGivenElement")||(n.hideEverythingExceptGivenElement=function(){p("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreHiddenElements")||(n.restoreHiddenElements=function(){p("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setLetterbox")||(n.setLetterbox=function(){p("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"currentFullscreenStrategy")||(n.currentFullscreenStrategy=function(){p("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreOldWindowedStyle")||(n.restoreOldWindowedStyle=function(){p("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"softFullscreenResizeWebGLRenderTarget")||(n.softFullscreenResizeWebGLRenderTarget=function(){p("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"doRequestFullscreen")||(n.doRequestFullscreen=function(){p("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillPointerlockChangeEventData")||(n.fillPointerlockChangeEventData=function(){p("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockChangeEventCallback")||(n.registerPointerlockChangeEventCallback=function(){p("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockErrorEventCallback")||(n.registerPointerlockErrorEventCallback=function(){p("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requestPointerLock")||(n.requestPointerLock=function(){p("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillVisibilityChangeEventData")||(n.fillVisibilityChangeEventData=function(){p("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerVisibilityChangeEventCallback")||(n.registerVisibilityChangeEventCallback=function(){p("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerTouchEventCallback")||(n.registerTouchEventCallback=function(){p("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillGamepadEventData")||(n.fillGamepadEventData=function(){p("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerGamepadEventCallback")||(n.registerGamepadEventCallback=function(){p("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBeforeUnloadEventCallback")||(n.registerBeforeUnloadEventCallback=function(){p("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillBatteryEventData")||(n.fillBatteryEventData=function(){p("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"battery")||(n.battery=function(){p("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBatteryEventCallback")||(n.registerBatteryEventCallback=function(){p("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setCanvasElementSize")||(n.setCanvasElementSize=function(){p("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCanvasElementSize")||(n.getCanvasElementSize=function(){p("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"polyfillSetImmediate")||(n.polyfillSetImmediate=function(){p("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangle")||(n.demangle=function(){p("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangleAll")||(n.demangleAll=function(){p("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jsStackTrace")||(n.jsStackTrace=function(){p("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){p("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getEnvStrings")||(n.getEnvStrings=function(){p("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"checkWasiClock")||(n.checkWasiClock=function(){p("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64")||(n.writeI53ToI64=function(){p("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Clamped")||(n.writeI53ToI64Clamped=function(){p("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Signaling")||(n.writeI53ToI64Signaling=function(){p("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Clamped")||(n.writeI53ToU64Clamped=function(){p("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Signaling")||(n.writeI53ToU64Signaling=function(){p("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromI64")||(n.readI53FromI64=function(){p("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromU64")||(n.readI53FromU64=function(){p("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertI32PairToI53")||(n.convertI32PairToI53=function(){p("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertU32PairToI53")||(n.convertU32PairToI53=function(){p("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"uncaughtExceptionCount")||(n.uncaughtExceptionCount=function(){p("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionLast")||(n.exceptionLast=function(){p("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionCaught")||(n.exceptionCaught=function(){p("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ExceptionInfo")||(n.ExceptionInfo=function(){p("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"CatchInfo")||(n.CatchInfo=function(){p("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_addRef")||(n.exception_addRef=function(){p("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_decRef")||(n.exception_decRef=function(){p("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Browser")||(n.Browser=function(){p("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"funcWrappers")||(n.funcWrappers=function(){p("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){p("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setMainLoop")||(n.setMainLoop=function(){p("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"wget")||(n.wget=function(){p("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"FS")||(n.FS=function(){p("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"MEMFS")||(n.MEMFS=function(){p("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"TTY")||(n.TTY=function(){p("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PIPEFS")||(n.PIPEFS=function(){p("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SOCKFS")||(n.SOCKFS=function(){p("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"_setNetworkCallback")||(n._setNetworkCallback=function(){p("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tempFixedLengthArray")||(n.tempFixedLengthArray=function(){p("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"miniTempWebGLFloatBuffers")||(n.miniTempWebGLFloatBuffers=function(){p("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapObjectForWebGLType")||(n.heapObjectForWebGLType=function(){p("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapAccessShiftForWebGLHeap")||(n.heapAccessShiftForWebGLHeap=function(){p("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.GL=w,Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGet")||(n.emscriptenWebGLGet=function(){p("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"computeUnpackAlignedImageSize")||(n.computeUnpackAlignedImageSize=function(){p("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetTexPixelData")||(n.emscriptenWebGLGetTexPixelData=function(){p("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetUniform")||(n.emscriptenWebGLGetUniform=function(){p("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetUniformLocation")||(n.webglGetUniformLocation=function(){p("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglPrepareUniformLocationsBeforeFirstUse")||(n.webglPrepareUniformLocationsBeforeFirstUse=function(){p("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetLeftBracePos")||(n.webglGetLeftBracePos=function(){p("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetVertexAttrib")||(n.emscriptenWebGLGetVertexAttrib=function(){p("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetBufferBinding")||(n.emscriptenWebGLGetBufferBinding=function(){p("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLValidateMapBufferTarget")||(n.emscriptenWebGLValidateMapBufferTarget=function(){p("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeGLArray")||(n.writeGLArray=function(){p("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AL")||(n.AL=function(){p("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_unicode")||(n.SDL_unicode=function(){p("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_ttfContext")||(n.SDL_ttfContext=function(){p("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_audio")||(n.SDL_audio=function(){p("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL")||(n.SDL=function(){p("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_gfx")||(n.SDL_gfx=function(){p("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLUT")||(n.GLUT=function(){p("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"EGL")||(n.EGL=function(){p("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW_Window")||(n.GLFW_Window=function(){p("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW")||(n.GLFW=function(){p("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLEW")||(n.GLEW=function(){p("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"IDBStore")||(n.IDBStore=function(){p("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runAndAbortIfError")||(n.runAndAbortIfError=function(){p("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_handle_array")||(n.emval_handle_array=function(){p("'emval_handle_array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_free_list")||(n.emval_free_list=function(){p("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_symbols")||(n.emval_symbols=function(){p("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_emval")||(n.init_emval=function(){p("'init_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"count_emval_handles")||(n.count_emval_handles=function(){p("'count_emval_handles' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"get_first_emval")||(n.get_first_emval=function(){p("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getStringOrSymbol")||(n.getStringOrSymbol=function(){p("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireHandle")||(n.requireHandle=function(){p("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_newers")||(n.emval_newers=function(){p("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftEmvalAllocator")||(n.craftEmvalAllocator=function(){p("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_get_global")||(n.emval_get_global=function(){p("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_methodCallers")||(n.emval_methodCallers=function(){p("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"InternalError")||(n.InternalError=function(){p("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"BindingError")||(n.BindingError=function(){p("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UnboundTypeError")||(n.UnboundTypeError=function(){p("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PureVirtualError")||(n.PureVirtualError=function(){p("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_embind")||(n.init_embind=function(){p("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInternalError")||(n.throwInternalError=function(){p("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwBindingError")||(n.throwBindingError=function(){p("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwUnboundTypeError")||(n.throwUnboundTypeError=function(){p("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ensureOverloadTable")||(n.ensureOverloadTable=function(){p("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exposePublicSymbol")||(n.exposePublicSymbol=function(){p("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"replacePublicSymbol")||(n.replacePublicSymbol=function(){p("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"extendError")||(n.extendError=function(){p("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"createNamedFunction")||(n.createNamedFunction=function(){p("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredInstances")||(n.registeredInstances=function(){p("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBasestPointer")||(n.getBasestPointer=function(){p("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerInheritedInstance")||(n.registerInheritedInstance=function(){p("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unregisterInheritedInstance")||(n.unregisterInheritedInstance=function(){p("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstance")||(n.getInheritedInstance=function(){p("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstanceCount")||(n.getInheritedInstanceCount=function(){p("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getLiveInheritedInstances")||(n.getLiveInheritedInstances=function(){p("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredTypes")||(n.registeredTypes=function(){p("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"awaitingDependencies")||(n.awaitingDependencies=function(){p("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"typeDependencies")||(n.typeDependencies=function(){p("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredPointers")||(n.registeredPointers=function(){p("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerType")||(n.registerType=function(){p("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"whenDependentTypesAreResolved")||(n.whenDependentTypesAreResolved=function(){p("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_charCodes")||(n.embind_charCodes=function(){p("'embind_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_init_charCodes")||(n.embind_init_charCodes=function(){p("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readLatin1String")||(n.readLatin1String=function(){p("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTypeName")||(n.getTypeName=function(){p("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heap32VectorToArray")||(n.heap32VectorToArray=function(){p("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireRegisteredType")||(n.requireRegisteredType=function(){p("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getShiftFromSize")||(n.getShiftFromSize=function(){p("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"integerReadValueFromPointer")||(n.integerReadValueFromPointer=function(){p("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"enumReadValueFromPointer")||(n.enumReadValueFromPointer=function(){p("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"floatReadValueFromPointer")||(n.floatReadValueFromPointer=function(){p("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"simpleReadValueFromPointer")||(n.simpleReadValueFromPointer=function(){p("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructors")||(n.runDestructors=function(){p("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"new_")||(n.new_=function(){p("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftInvokerFunction")||(n.craftInvokerFunction=function(){p("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind__requireFunction")||(n.embind__requireFunction=function(){p("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tupleRegistrations")||(n.tupleRegistrations=function(){p("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"structRegistrations")||(n.structRegistrations=function(){p("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"genericPointerToWireType")||(n.genericPointerToWireType=function(){p("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"constNoSmartPtrRawPointerToWireType")||(n.constNoSmartPtrRawPointerToWireType=function(){p("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"nonConstNoSmartPtrRawPointerToWireType")||(n.nonConstNoSmartPtrRawPointerToWireType=function(){p("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_RegisteredPointer")||(n.init_RegisteredPointer=function(){p("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer")||(n.RegisteredPointer=function(){p("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_getPointee")||(n.RegisteredPointer_getPointee=function(){p("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_destructor")||(n.RegisteredPointer_destructor=function(){p("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_deleteObject")||(n.RegisteredPointer_deleteObject=function(){p("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_fromWireType")||(n.RegisteredPointer_fromWireType=function(){p("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructor")||(n.runDestructor=function(){p("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"releaseClassHandle")||(n.releaseClassHandle=function(){p("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"finalizationGroup")||(n.finalizationGroup=function(){p("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer_deps")||(n.detachFinalizer_deps=function(){p("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer")||(n.detachFinalizer=function(){p("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"attachFinalizer")||(n.attachFinalizer=function(){p("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeClassHandle")||(n.makeClassHandle=function(){p("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_ClassHandle")||(n.init_ClassHandle=function(){p("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle")||(n.ClassHandle=function(){p("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isAliasOf")||(n.ClassHandle_isAliasOf=function(){p("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInstanceAlreadyDeleted")||(n.throwInstanceAlreadyDeleted=function(){p("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_clone")||(n.ClassHandle_clone=function(){p("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_delete")||(n.ClassHandle_delete=function(){p("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"deletionQueue")||(n.deletionQueue=function(){p("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isDeleted")||(n.ClassHandle_isDeleted=function(){p("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_deleteLater")||(n.ClassHandle_deleteLater=function(){p("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"flushPendingDeletes")||(n.flushPendingDeletes=function(){p("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"delayFunction")||(n.delayFunction=function(){p("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setDelayFunction")||(n.setDelayFunction=function(){p("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredClass")||(n.RegisteredClass=function(){p("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"shallowCopyInternalPointer")||(n.shallowCopyInternalPointer=function(){p("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"downcastPointer")||(n.downcastPointer=function(){p("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"upcastPointer")||(n.upcastPointer=function(){p("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"validateThis")||(n.validateThis=function(){p("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_0")||(n.char_0=function(){p("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_9")||(n.char_9=function(){p("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeLegalFunctionName")||(n.makeLegalFunctionName=function(){p("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetIndexed")||(n.emscriptenWebGLGetIndexed=function(){p("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"warnOnce")||(n.warnOnce=function(){p("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackSave")||(n.stackSave=function(){p("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackRestore")||(n.stackRestore=function(){p("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackAlloc")||(n.stackAlloc=function(){p("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AsciiToString")||(n.AsciiToString=function(){p("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToAscii")||(n.stringToAscii=function(){p("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF16ToString")||(n.UTF16ToString=function(){p("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF16")||(n.stringToUTF16=function(){p("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF16")||(n.lengthBytesUTF16=function(){p("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF32ToString")||(n.UTF32ToString=function(){p("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF32")||(n.stringToUTF32=function(){p("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF32")||(n.lengthBytesUTF32=function(){p("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8")||(n.allocateUTF8=function(){p("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8OnStack")||(n.allocateUTF8OnStack=function(){p("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.writeStackCookie=jt,n.checkStackCookie=ot,Object.getOwnPropertyDescriptor(n,"ALLOC_NORMAL")||Object.defineProperty(n,"ALLOC_NORMAL",{configurable:!0,get(){p("'ALLOC_NORMAL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(n,"ALLOC_STACK")||Object.defineProperty(n,"ALLOC_STACK",{configurable:!0,get(){p("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}});let En;function no(e){this.name="ExitStatus",this.message=`Program terminated with exit(${e})`,this.status=e}rr=function e(){En||oo(),En||(rr=e)};function io(){Qo(),jt()}function oo(e){if(e=e||Ze,ut>0||(io(),Ht(),ut>0))return;function t(){En||(En=!0,n.calledRun=!0,!W&&(Oi(),ge(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),z(!n._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),In()))}n.setStatus?(n.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>{n.setStatus("")},1),t()},1)):t(),ot()}n.run=oo;function ZA(){let e=Pe,t=Ee,r=!1;Pe=Ee=function(o){r=!0};try{let o=n._fflush;o&&o(0),["stdout","stderr"].forEach(a=>{let s=l.analyzePath(`/dev/${a}`);if(!s)return;let A=s.object,{rdev:c}=A,u=It.ttys[c];u&&u.output&&u.output.length&&(r=!0)})}catch(o){}Pe=e,Ee=t,r&&et("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.")}function Ro(e,t){if(Qr=e,ZA(),mt()){if(!t){let r=`program exited (with status: ${e}), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)`;U(r),Ee(r)}}else Bi();i(e)}function i(e){Qr=e,mt()||(n.onExit&&n.onExit(e),W=!0),qe(e,new no(e))}if(n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return oo(),G.ready}}(),_c=Jc;var Zc=function(){var oe=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(oe=oe||__filename),function(G){G=G||{};var n=typeof G!="undefined"?G:{},ge,U;n.ready=new Promise(function(i,e){ge=i,U=e}),Object.getOwnPropertyDescriptor(n.ready,"_main")||(Object.defineProperty(n.ready,"_main",{configurable:!0,get:function(){E("You are getting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_main",{configurable:!0,set:function(){E("You are setting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_get_end")||(Object.defineProperty(n.ready,"_emscripten_stack_get_end",{configurable:!0,get:function(){E("You are getting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_get_end",{configurable:!0,set:function(){E("You are setting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_get_free")||(Object.defineProperty(n.ready,"_emscripten_stack_get_free",{configurable:!0,get:function(){E("You are getting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_get_free",{configurable:!0,set:function(){E("You are setting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_init")||(Object.defineProperty(n.ready,"_emscripten_stack_init",{configurable:!0,get:function(){E("You are getting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_init",{configurable:!0,set:function(){E("You are setting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackSave")||(Object.defineProperty(n.ready,"_stackSave",{configurable:!0,get:function(){E("You are getting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackSave",{configurable:!0,set:function(){E("You are setting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackRestore")||(Object.defineProperty(n.ready,"_stackRestore",{configurable:!0,get:function(){E("You are getting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackRestore",{configurable:!0,set:function(){E("You are setting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackAlloc")||(Object.defineProperty(n.ready,"_stackAlloc",{configurable:!0,get:function(){E("You are getting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackAlloc",{configurable:!0,set:function(){E("You are setting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___wasm_call_ctors")||(Object.defineProperty(n.ready,"___wasm_call_ctors",{configurable:!0,get:function(){E("You are getting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___wasm_call_ctors",{configurable:!0,set:function(){E("You are setting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_fflush")||(Object.defineProperty(n.ready,"_fflush",{configurable:!0,get:function(){E("You are getting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_fflush",{configurable:!0,set:function(){E("You are setting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___errno_location")||(Object.defineProperty(n.ready,"___errno_location",{configurable:!0,get:function(){E("You are getting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___errno_location",{configurable:!0,set:function(){E("You are setting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_malloc")||(Object.defineProperty(n.ready,"_malloc",{configurable:!0,get:function(){E("You are getting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_malloc",{configurable:!0,set:function(){E("You are setting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_free")||(Object.defineProperty(n.ready,"_free",{configurable:!0,get:function(){E("You are getting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_free",{configurable:!0,set:function(){E("You are setting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_setThrew")||(Object.defineProperty(n.ready,"_setThrew",{configurable:!0,get:function(){E("You are getting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_setThrew",{configurable:!0,set:function(){E("You are setting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___cxa_is_pointer_type")||(Object.defineProperty(n.ready,"___cxa_is_pointer_type",{configurable:!0,get:function(){E("You are getting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___cxa_is_pointer_type",{configurable:!0,set:function(){E("You are setting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___cxa_can_catch")||(Object.defineProperty(n.ready,"___cxa_can_catch",{configurable:!0,get:function(){E("You are getting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___cxa_can_catch",{configurable:!0,set:function(){E("You are setting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_saveSetjmp")||(Object.defineProperty(n.ready,"_saveSetjmp",{configurable:!0,get:function(){E("You are getting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_saveSetjmp",{configurable:!0,set:function(){E("You are setting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_memalign")||(Object.defineProperty(n.ready,"_memalign",{configurable:!0,get:function(){E("You are getting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_memalign",{configurable:!0,set:function(){E("You are setting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_main_thread_process_queued_calls")||(Object.defineProperty(n.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,get:function(){E("You are getting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,set:function(){E("You are setting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_webgl_make_context_current")||(Object.defineProperty(n.ready,"_emscripten_webgl_make_context_current",{configurable:!0,get:function(){E("You are getting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_webgl_make_context_current",{configurable:!0,set:function(){E("You are setting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_webgl_get_current_context")||(Object.defineProperty(n.ready,"_emscripten_webgl_get_current_context",{configurable:!0,get:function(){E("You are getting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_webgl_get_current_context",{configurable:!0,set:function(){E("You are setting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_tzname")||(Object.defineProperty(n.ready,"__get_tzname",{configurable:!0,get:function(){E("You are getting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_tzname",{configurable:!0,set:function(){E("You are setting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_daylight")||(Object.defineProperty(n.ready,"__get_daylight",{configurable:!0,get:function(){E("You are getting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_daylight",{configurable:!0,set:function(){E("You are setting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_timezone")||(Object.defineProperty(n.ready,"__get_timezone",{configurable:!0,get:function(){E("You are getting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_timezone",{configurable:!0,set:function(){E("You are setting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_malloc")||(Object.defineProperty(n.ready,"_emscripten_builtin_malloc",{configurable:!0,get:function(){E("You are getting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_malloc",{configurable:!0,set:function(){E("You are setting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_free")||(Object.defineProperty(n.ready,"_emscripten_builtin_free",{configurable:!0,get:function(){E("You are getting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_free",{configurable:!0,set:function(){E("You are setting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_memalign")||(Object.defineProperty(n.ready,"_emscripten_builtin_memalign",{configurable:!0,get:function(){E("You are getting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_memalign",{configurable:!0,set:function(){E("You are setting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___getTypeName")||(Object.defineProperty(n.ready,"___getTypeName",{configurable:!0,get:function(){E("You are getting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___getTypeName",{configurable:!0,set:function(){E("You are setting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___embind_register_native_and_builtin_types")||(Object.defineProperty(n.ready,"___embind_register_native_and_builtin_types",{configurable:!0,get:function(){E("You are getting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___embind_register_native_and_builtin_types",{configurable:!0,set:function(){E("You are setting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"onRuntimeInitialized")||(Object.defineProperty(n.ready,"onRuntimeInitialized",{configurable:!0,get:function(){E("You are getting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"onRuntimeInitialized",{configurable:!0,set:function(){E("You are setting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));var Fe={},ye;for(ye in n)n.hasOwnProperty(ye)&&(Fe[ye]=n[ye]);var Ze=[],ct="./this.program",qe=function(i,e){throw e},Ve=typeof window=="object",ze=typeof importScripts=="function",_t=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",Ii=!Ve&&!_t&&!ze;if(n.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)");var Be="";function Ci(i){return n.locateFile?n.locateFile(i,Be):Be+i}var vr,qt,en,pn;if(Ve||ze){if(ze?Be=self.location.href:typeof document!="undefined"&&document.currentScript&&(Be=document.currentScript.src),oe&&(Be=oe),Be.indexOf("blob:")!==0?Be=Be.substr(0,Be.lastIndexOf("/")+1):Be="",!(typeof window=="object"||typeof importScripts=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");vr=function(i){var e=new XMLHttpRequest;return e.open("GET",i,!1),e.send(null),e.responseText},ze&&(en=function(i){var e=new XMLHttpRequest;return e.open("GET",i,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}),qt=function(i,e,t){var r=new XMLHttpRequest;r.open("GET",i,!0),r.responseType="arraybuffer",r.onload=function(){if(r.status==200||r.status==0&&r.response){e(r.response);return}t()},r.onerror=t,r.send(null)},pn=function(i){document.title=i}}else throw new Error("environment detection error");var We=n.print||console.log.bind(console),fe=n.printErr||console.warn.bind(console);for(ye in Fe)Fe.hasOwnProperty(ye)&&(n[ye]=Fe[ye]);Fe=null,n.arguments&&(Ze=n.arguments),Object.getOwnPropertyDescriptor(n,"arguments")||Object.defineProperty(n,"arguments",{configurable:!0,get:function(){E("Module.arguments has been replaced with plain arguments_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),n.thisProgram&&(ct=n.thisProgram),Object.getOwnPropertyDescriptor(n,"thisProgram")||Object.defineProperty(n,"thisProgram",{configurable:!0,get:function(){E("Module.thisProgram has been replaced with plain thisProgram (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),n.quit&&(qe=n.quit),Object.getOwnPropertyDescriptor(n,"quit")||Object.defineProperty(n,"quit",{configurable:!0,get:function(){E("Module.quit has been replaced with plain quit_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),W(typeof n.memoryInitializerPrefixURL=="undefined","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),W(typeof n.pthreadMainPrefixURL=="undefined","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),W(typeof n.cdInitializerPrefixURL=="undefined","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),W(typeof n.filePackagePrefixURL=="undefined","Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),W(typeof n.read=="undefined","Module.read option was removed (modify read_ in JS)"),W(typeof n.readAsync=="undefined","Module.readAsync option was removed (modify readAsync in JS)"),W(typeof n.readBinary=="undefined","Module.readBinary option was removed (modify readBinary in JS)"),W(typeof n.setWindowTitle=="undefined","Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),W(typeof n.TOTAL_MEMORY=="undefined","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Object.getOwnPropertyDescriptor(n,"read")||Object.defineProperty(n,"read",{configurable:!0,get:function(){E("Module.read has been replaced with plain read_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(n,"readAsync")||Object.defineProperty(n,"readAsync",{configurable:!0,get:function(){E("Module.readAsync has been replaced with plain readAsync (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(n,"readBinary")||Object.defineProperty(n,"readBinary",{configurable:!0,get:function(){E("Module.readBinary has been replaced with plain readBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(n,"setWindowTitle")||Object.defineProperty(n,"setWindowTitle",{configurable:!0,get:function(){E("Module.setWindowTitle has been replaced with plain setWindowTitle (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),W(!Ii,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");function Pe(i){Pe.shown||(Pe.shown={}),Pe.shown[i]||(Pe.shown[i]=1,fe(i))}function Ee(i,e){if(typeof WebAssembly.Function=="function"){for(var t={i:"i32",j:"i64",f:"f32",d:"f64"},r={parameters:[],results:e[0]=="v"?[]:[t[e[0]]]},o=1;o<e.length;++o)r.parameters.push(t[e[o]]);return new WebAssembly.Function(r,i)}var a=[1,0,1,96],s=e.slice(0,1),A=e.slice(1),c={i:127,j:126,f:125,d:124};a.push(A.length);for(var o=0;o<A.length;++o)a.push(c[A[o]]);s=="v"?a.push(0):a=a.concat([1,c[s]]),a[1]=a.length-2;var u=new Uint8Array([0,97,115,109,1,0,0,0].concat(a,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0])),d=new WebAssembly.Module(u),h=new WebAssembly.Instance(d,{e:{f:i}}),m=h.exports.f;return m}var et=[],_r;function Ut(){if(et.length)return et.pop();try{K.grow(1)}catch(i){throw i instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":i}return K.length-1}function He(i,e){if(!_r){_r=new WeakMap;for(var t=0;t<K.length;t++){var r=K.get(t);r&&_r.set(r,t)}}if(_r.has(i))return _r.get(i);var o=Ut();try{K.set(o,i)}catch(s){if(!(s instanceof TypeError))throw s;W(typeof e!="undefined","Missing signature argument to addFunction: "+i);var a=Ee(i,e);K.set(o,a)}return _r.set(i,o),o}var hr=0,ht=function(i){hr=i},mr=function(){return hr},he;n.wasmBinary&&(he=n.wasmBinary),Object.getOwnPropertyDescriptor(n,"wasmBinary")||Object.defineProperty(n,"wasmBinary",{configurable:!0,get:function(){E("Module.wasmBinary has been replaced with plain wasmBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}});var Nn=n.noExitRuntime||!0;Object.getOwnPropertyDescriptor(n,"noExitRuntime")||Object.defineProperty(n,"noExitRuntime",{configurable:!0,get:function(){E("Module.noExitRuntime has been replaced with plain noExitRuntime (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),typeof WebAssembly!="object"&&E("no native wasm support detected");var Nt,xt=!1,vt;function W(i,e){i||E("Assertion failed: "+e)}function Qr(i){var e=n["_"+i];return W(e,"Cannot call unknown function "+i+", make sure it is exported"),e}function z(i,e,t,r,o){var a={string:function(y){var v=0;if(y!=null&&y!==0){var N=(y.length<<2)+1;v=ee(N),$e(y,v,N)}return v},array:function(y){var v=ee(y.length);return Rr(y,v),v}};function s(y){return e==="string"?it(y):e==="boolean"?!!y:y}var A=Qr(i),c=[],u=0;if(W(e!=="array",'Return type should not be "array".'),r)for(var d=0;d<r.length;d++){var h=a[t[d]];h?(u===0&&(u=re()),c[d]=h(r[d])):c[d]=r[d]}var m=A.apply(null,c);function I(y){return u!==0&&x(u),s(y)}return m=I(m),m}var ao=1,yi=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Pr(i,e,t){for(var r=e+t,o=e;i[o]&&!(o>=r);)++o;if(o-e>16&&i.subarray&&yi)return yi.decode(i.subarray(e,o));for(var a="";e<o;){var s=i[e++];if(!(s&128)){a+=String.fromCharCode(s);continue}var A=i[e++]&63;if((s&224)==192){a+=String.fromCharCode((s&31)<<6|A);continue}var c=i[e++]&63;if((s&240)==224?s=(s&15)<<12|A<<6|c:((s&248)!=240&&Pe("Invalid UTF-8 leading byte 0x"+s.toString(16)+" encountered when deserializing a UTF-8 string in wasm memory to a JS string!"),s=(s&7)<<18|A<<12|c<<6|i[e++]&63),s<65536)a+=String.fromCharCode(s);else{var u=s-65536;a+=String.fromCharCode(55296|u>>10,56320|u&1023)}}return a}function it(i,e){return i?Pr(Re,i,e):""}function Qt(i,e,t,r){if(!(r>0))return 0;for(var o=t,a=t+r-1,s=0;s<i.length;++s){var A=i.charCodeAt(s);if(A>=55296&&A<=57343){var c=i.charCodeAt(++s);A=65536+((A&1023)<<10)|c&1023}if(A<=127){if(t>=a)break;e[t++]=A}else if(A<=2047){if(t+1>=a)break;e[t++]=192|A>>6,e[t++]=128|A&63}else if(A<=65535){if(t+2>=a)break;e[t++]=224|A>>12,e[t++]=128|A>>6&63,e[t++]=128|A&63}else{if(t+3>=a)break;A>=2097152&&Pe("Invalid Unicode code point 0x"+A.toString(16)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x1FFFFF)."),e[t++]=240|A>>18,e[t++]=128|A>>12&63,e[t++]=128|A>>6&63,e[t++]=128|A&63}}return e[t]=0,t-o}function $e(i,e,t){return W(typeof t=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),Qt(i,Re,e,t)}function Ke(i){for(var e=0,t=0;t<i.length;++t){var r=i.charCodeAt(t);r>=55296&&r<=57343&&(r=65536+((r&1023)<<10)|i.charCodeAt(++t)&1023),r<=127?++e:r<=2047?e+=2:r<=65535?e+=3:e+=4}return e}var er=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function wt(i,e){W(i%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");for(var t=i,r=t>>1,o=r+e/2;!(r>=o)&&Te[r];)++r;if(t=r<<1,t-i>32&&er)return er.decode(Re.subarray(i,t));for(var a="",s=0;!(s>=e/2);++s){var A=De[i+s*2>>1];if(A==0)break;a+=String.fromCharCode(A)}return a}function xn(i,e,t){if(W(e%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),W(typeof t=="number","stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),t===void 0&&(t=2147483647),t<2)return 0;t-=2;for(var r=e,o=t<i.length*2?t/2:i.length,a=0;a<o;++a){var s=i.charCodeAt(a);De[e>>1]=s,e+=2}return De[e>>1]=0,e-r}function wi(i){return i.length*2}function _n(i,e){W(i%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");for(var t=0,r="";!(t>=e/4);){var o=T[i+t*4>>2];if(o==0)break;if(++t,o>=65536){var a=o-65536;r+=String.fromCharCode(55296|a>>10,56320|a&1023)}else r+=String.fromCharCode(o)}return r}function jn(i,e,t){if(W(e%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),W(typeof t=="number","stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),t===void 0&&(t=2147483647),t<4)return 0;for(var r=e,o=r+t-4,a=0;a<i.length;++a){var s=i.charCodeAt(a);if(s>=55296&&s<=57343){var A=i.charCodeAt(++a);s=65536+((s&1023)<<10)|A&1023}if(T[e>>2]=s,e+=4,e+4>o)break}return T[e>>2]=0,e-r}function Di(i){for(var e=0,t=0;t<i.length;++t){var r=i.charCodeAt(t);r>=55296&&r<=57343&&++t,e+=4}return e}function hn(i){var e=Ke(i)+1,t=nt(e);return t&&Qt(i,Ne,t,e),t}function Rr(i,e){W(i.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),Ne.set(i,e)}function mn(i,e,t){for(var r=0;r<i.length;++r)W(i.charCodeAt(r)===i.charCodeAt(r)&255),Ne[e++>>0]=i.charCodeAt(r);t||(Ne[e>>0]=0)}function Ln(i,e){return i%e>0&&(i+=e-i%e),i}var Sr,Ne,Re,De,Te,T,be,b,ve;function Ye(i){Sr=i,n.HEAP8=Ne=new Int8Array(i),n.HEAP16=De=new Int16Array(i),n.HEAP32=T=new Int32Array(i),n.HEAPU8=Re=new Uint8Array(i),n.HEAPU16=Te=new Uint16Array(i),n.HEAPU32=be=new Uint32Array(i),n.HEAPF32=b=new Float32Array(i),n.HEAPF64=ve=new Float64Array(i)}var Mr=5242880;n.TOTAL_STACK&&W(Mr===n.TOTAL_STACK,"the stack size can no longer be determined at runtime");var tn=n.INITIAL_MEMORY||16777216;Object.getOwnPropertyDescriptor(n,"INITIAL_MEMORY")||Object.defineProperty(n,"INITIAL_MEMORY",{configurable:!0,get:function(){E("Module.INITIAL_MEMORY has been replaced with plain INITIAL_MEMORY (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),W(tn>=Mr,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+tn+"! (TOTAL_STACK="+Mr+")"),W(typeof Int32Array!="undefined"&&typeof Float64Array!="undefined"&&Int32Array.prototype.subarray!==void 0&&Int32Array.prototype.set!==void 0,"JS engine does not provide full typed array support"),W(!n.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),W(tn==16777216,"Detected runtime INITIAL_MEMORY setting. Use -s IMPORTED_MEMORY to define wasmMemory dynamically");var K;function Fr(){var i=vo();W((i&3)==0),be[(i>>2)+1]=34821223,be[(i>>2)+2]=2310721022,T[0]=1668509029}function V(){if(!xt){var i=vo(),e=be[(i>>2)+1],t=be[(i>>2)+2];(e!=34821223||t!=2310721022)&&E("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+t.toString(16)+" "+e.toString(16)),T[0]!==1668509029&&E("Runtime error: The application has corrupted its heap memory area (address zero)!")}}(function(){var i=new Int16Array(1),e=new Int8Array(i.buffer);if(i[0]=25459,e[0]!==115||e[1]!==99)throw"Runtime error: expected the system to be little-endian! (Run with -s SUPPORT_BIG_ENDIAN=1 to bypass)"})();var jt=[],ot=[],kr=[],Lt=[],le=!1,rn=!1,Ir=0;function Dt(){return Nn||Ir>0}function bi(){if(n.preRun)for(typeof n.preRun=="function"&&(n.preRun=[n.preRun]);n.preRun.length;)Bi(n.preRun.shift());P(jt)}function mt(){V(),W(!le),le=!0,!n.noFSInit&&!f.init.initialized&&f.init(),f.ignorePermissions=!1,Qe.init(),P(ot)}function Ht(){V(),rn=!0}function Oi(){if(V(),n.postRun)for(typeof n.postRun=="function"&&(n.postRun=[n.postRun]);n.postRun.length;)Cn(n.postRun.shift());P(Lt)}function Bi(i){jt.unshift(i)}function In(i){ot.unshift(i)}function Cn(i){Lt.unshift(i)}W(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),W(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),W(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),W(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var Gt=0,tr=null,ut=null,at={};function rr(i){for(var e=i;;){if(!at[i])return i;i=e+Math.random()}}function Pt(i){Gt++,n.monitorRunDependencies&&n.monitorRunDependencies(Gt),i?(W(!at[i]),at[i]=1,tr===null&&typeof setInterval!="undefined"&&(tr=setInterval(function(){if(xt){clearInterval(tr),tr=null;return}var e=!1;for(var t in at)e||(e=!0,fe("still waiting on run dependencies:")),fe("dependency: "+t);e&&fe("(end of list)")},1e4))):fe("warning: run dependency added without ID")}function Cr(i){if(Gt--,n.monitorRunDependencies&&n.monitorRunDependencies(Gt),i?(W(at[i]),delete at[i]):fe("warning: run dependency removed without ID"),Gt==0&&(tr!==null&&(clearInterval(tr),tr=null),ut)){var e=ut;ut=null,e()}}n.preloadedImages={},n.preloadedAudios={};function E(i){n.onAbort&&n.onAbort(i),i+="",fe(i),xt=!0,vt=1;var e="abort("+i+") at "+nn();i=e;var t=new WebAssembly.RuntimeError(i);throw U(t),t}var nr="data:application/octet-stream;base64,";function p(i){return i.startsWith(nr)}function yn(i){return i.startsWith("file://")}function ue(i,e){return function(){var t=i,r=e;return e||(r=n.asm),W(le,"native function `"+t+"` called before runtime initialization"),W(!rn,"native function `"+t+"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),r[i]||W(r[i],"exported native function `"+t+"` not found"),r[i].apply(null,arguments)}}var je;je="selfie_segmentation_solution_wasm_bin.wasm",p(je)||(je=Ci(je));function ce(i){try{if(i==je&&he)return new Uint8Array(he);if(en)return en(i);throw"both async and sync fetching of the wasm failed"}catch(e){E(e)}}function yr(){if(!he&&(Ve||ze)){if(typeof fetch=="function"&&!yn(je))return fetch(je,{credentials:"same-origin"}).then(function(i){if(!i.ok)throw"failed to load wasm binary file at '"+je+"'";return i.arrayBuffer()}).catch(function(){return ce(je)});if(qt)return new Promise(function(i,e){qt(je,function(t){i(new Uint8Array(t))},e)})}return Promise.resolve().then(function(){return ce(je)})}function wn(){var i={env:Js,wasi_snapshot_preview1:Js};function e(A,c){var u=A.exports;n.asm=u,Nt=n.asm.memory,W(Nt,"memory not found in wasm exports"),Ye(Nt.buffer),K=n.asm.__indirect_function_table,W(K,"table not found in wasm exports"),In(n.asm.__wasm_call_ctors),Cr("wasm-instantiate")}Pt("wasm-instantiate");var t=n;function r(A){W(n===t,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),t=null,e(A.instance)}function o(A){return yr().then(function(c){var u=WebAssembly.instantiate(c,i);return u}).then(A,function(c){fe("failed to asynchronously prepare wasm: "+c),yn(je)&&fe("warning: Loading from a file URI ("+je+") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing"),E(c)})}function a(){return!he&&typeof WebAssembly.instantiateStreaming=="function"&&!p(je)&&!yn(je)&&typeof fetch=="function"?fetch(je,{credentials:"same-origin"}).then(function(A){var c=WebAssembly.instantiateStreaming(A,i);return c.then(r,function(u){return fe("wasm streaming compile failed: "+u),fe("falling back to ArrayBuffer instantiation"),o(r)})}):o(r)}if(n.instantiateWasm)try{var s=n.instantiateWasm(i,e);return s}catch(A){return fe("Module.instantiateWasm callback failed with error: "+A),!1}return a().catch(U),{}}var Ge,Ce,bt={460976:function(){let i=!0;if(i){let e=$i;if(typeof e!="function"){typeof console!="undefined"&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.');return}$i=function(t){if(t==0){if(n&&n.canvas)return n.canvas;if(n&&n.canvasCssSelector)return e(n.canvasCssSelector);typeof console!="undefined"&&console.warn("Module properties canvas and canvasCssSelector not found during WebGL context creation.")}return e(t)},i=!1}},461761:function(){return typeof wasmOffsetConverter!="undefined"}};function Ur(){return typeof wasmOffsetConverter!="undefined"}function wr(i,e){if(Q.mainLoop.timingMode=i,Q.mainLoop.timingValue=e,!Q.mainLoop.func)return fe("emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up."),1;if(Q.mainLoop.running||(Q.mainLoop.running=!0),i==0)Q.mainLoop.scheduler=function(){var s=Math.max(0,Q.mainLoop.tickStartTime+e-Ot())|0;setTimeout(Q.mainLoop.runner,s)},Q.mainLoop.method="timeout";else if(i==1)Q.mainLoop.scheduler=function(){Q.requestAnimationFrame(Q.mainLoop.runner)},Q.mainLoop.method="rAF";else if(i==2){if(typeof setImmediate=="undefined"){var t=[],r="setimmediate",o=function(a){(a.data===r||a.data.target===r)&&(a.stopPropagation(),t.shift()())};addEventListener("message",o,!0),setImmediate=function(s){t.push(s),ze?(n.setImmediates===void 0&&(n.setImmediates=[]),n.setImmediates.push(s),postMessage({target:r})):postMessage(r,"*")}}Q.mainLoop.scheduler=function(){setImmediate(Q.mainLoop.runner)},Q.mainLoop.method="immediate"}return 0}var Ot;_t?Ot=function(){var i=process.hrtime();return i[0]*1e3+i[1]/1e6}:Ot=function(){return performance.now()};function Dr(){return!O.currentContext||!O.currentContext.GLctx?-3:O.currentContext.defaultFbo?(O.blitOffscreenFramebuffer(O.currentContext),0):O.currentContext.attributes.explicitSwapControl?0:-3}function Ti(i){ZA(i)}function Hn(){if(!Dt())try{Ti(vt)}catch(i){if(i instanceof En)return;throw i}}function vi(i,e,t,r,o){W(!Q.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Q.mainLoop.func=i,Q.mainLoop.arg=r;var a=Q.mainLoop.currentlyRunningMainloop;function s(){return a<Q.mainLoop.currentlyRunningMainloop?(Hn(),!1):!0}if(Q.mainLoop.running=!1,Q.mainLoop.runner=function(){if(!xt){if(Q.mainLoop.queue.length>0){var c=Date.now(),u=Q.mainLoop.queue.shift();if(u.func(u.arg),Q.mainLoop.remainingBlockers){var d=Q.mainLoop.remainingBlockers,h=d%1==0?d-1:Math.floor(d);u.counted?Q.mainLoop.remainingBlockers=h:(h=h+.5,Q.mainLoop.remainingBlockers=(8*d+h)/9)}if(We('main loop blocker "'+u.name+'" took '+(Date.now()-c)+" ms"),Q.mainLoop.updateStatus(),!s())return;setTimeout(Q.mainLoop.runner,0);return}if(s()){if(Q.mainLoop.currentFrameNumber=Q.mainLoop.currentFrameNumber+1|0,Q.mainLoop.timingMode==1&&Q.mainLoop.timingValue>1&&Q.mainLoop.currentFrameNumber%Q.mainLoop.timingValue!=0){Q.mainLoop.scheduler();return}else Q.mainLoop.timingMode==0&&(Q.mainLoop.tickStartTime=Ot());O.newRenderingFrameStarted(),typeof O!="undefined"&&O.currentContext&&!O.currentContextIsProxied&&!O.currentContext.attributes.explicitSwapControl&&O.currentContext.GLctx.commit&&O.currentContext.GLctx.commit(),Q.mainLoop.method==="timeout"&&n.ctx&&(Pe("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Q.mainLoop.method=""),Q.mainLoop.runIter(i),V(),s()&&(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Q.mainLoop.scheduler())}}},o||(e&&e>0?wr(0,1e3/e):wr(1,1),Q.mainLoop.scheduler()),t)throw"unwind"}function Dn(i,e){if(xt){fe("user callback triggered after application aborted. Ignoring.");return}if(e){i();return}try{i()}catch(t){if(t instanceof En)return;if(t!=="unwind")throw t&&typeof t=="object"&&t.stack&&fe("exception thrown: "+[t,t.stack]),t}}function ir(i,e){return setTimeout(function(){Dn(i)},e)}var Q={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Q.mainLoop.scheduler=null,Q.mainLoop.currentlyRunningMainloop++},resume:function(){Q.mainLoop.currentlyRunningMainloop++;var i=Q.mainLoop.timingMode,e=Q.mainLoop.timingValue,t=Q.mainLoop.func;Q.mainLoop.func=null,vi(t,0,!1,Q.mainLoop.arg,!0),wr(i,e),Q.mainLoop.scheduler()},updateStatus:function(){if(n.setStatus){var i=n.statusMessage||"Please wait...",e=Q.mainLoop.remainingBlockers,t=Q.mainLoop.expectedBlockers;e?e<t?n.setStatus(i+" ("+(t-e)+"/"+t+")"):n.setStatus(i):n.setStatus("")}},runIter:function(i){if(!xt){if(n.preMainLoop){var e=n.preMainLoop();if(e===!1)return}Dn(i),n.postMainLoop&&n.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(n.preloadPlugins||(n.preloadPlugins=[]),Q.initted)return;Q.initted=!0;try{new Blob,Q.hasBlobConstructor=!0}catch(o){Q.hasBlobConstructor=!1,We("warning: no blob constructor, cannot create blobs with mimetypes")}Q.BlobBuilder=typeof MozBlobBuilder!="undefined"?MozBlobBuilder:typeof WebKitBlobBuilder!="undefined"?WebKitBlobBuilder:Q.hasBlobConstructor?null:We("warning: no BlobBuilder"),Q.URLObject=typeof window!="undefined"?window.URL?window.URL:window.webkitURL:void 0,!n.noImageDecoding&&typeof Q.URLObject=="undefined"&&(We("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),n.noImageDecoding=!0);var i={};i.canHandle=function(a){return!n.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(a)},i.handle=function(a,s,A,c){var u=null;if(Q.hasBlobConstructor)try{u=new Blob([a],{type:Q.getMimetype(s)}),u.size!==a.length&&(u=new Blob([new Uint8Array(a).buffer],{type:Q.getMimetype(s)}))}catch(I){Pe("Blob constructor present but fails: "+I+"; falling back to blob builder")}if(!u){var d=new Q.BlobBuilder;d.append(new Uint8Array(a).buffer),u=d.getBlob()}var h=Q.URLObject.createObjectURL(u);W(typeof h=="string","createObjectURL must return a url as a string");var m=new Image;m.onload=function(){W(m.complete,"Image "+s+" could not be decoded");var y=document.createElement("canvas");y.width=m.width,y.height=m.height;var v=y.getContext("2d");v.drawImage(m,0,0),n.preloadedImages[s]=y,Q.URLObject.revokeObjectURL(h),A&&A(a)},m.onerror=function(y){We("Image "+h+" could not be decoded"),c&&c()},m.src=h},n.preloadPlugins.push(i);var e={};e.canHandle=function(a){return!n.noAudioDecoding&&a.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},e.handle=function(a,s,A,c){var u=!1;function d(v){u||(u=!0,n.preloadedAudios[s]=v,A&&A(a))}function h(){u||(u=!0,n.preloadedAudios[s]=new Audio,c&&c())}if(Q.hasBlobConstructor){try{var m=new Blob([a],{type:Q.getMimetype(s)})}catch(v){return h()}var I=Q.URLObject.createObjectURL(m);W(typeof I=="string","createObjectURL must return a url as a string");var y=new Audio;y.addEventListener("canplaythrough",function(){d(y)},!1),y.onerror=function(N){if(u)return;We("warning: browser could not fully decode audio "+s+", trying slower base64 approach");function H(R){for(var D="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",k="=",$="",Y=0,pe=0,Me=0;Me<R.length;Me++)for(Y=Y<<8|R[Me],pe+=8;pe>=6;){var kt=Y>>pe-6&63;pe-=6,$+=D[kt]}return pe==2?($+=D[(Y&3)<<4],$+=k+k):pe==4&&($+=D[(Y&15)<<2],$+=k),$}y.src="data:audio/x-"+s.substr(-3)+";base64,"+H(a),d(y)},y.src=I,ir(function(){d(y)},1e4)}else return h()},n.preloadPlugins.push(e);function t(){Q.pointerLock=document.pointerLockElement===n.canvas||document.mozPointerLockElement===n.canvas||document.webkitPointerLockElement===n.canvas||document.msPointerLockElement===n.canvas}var r=n.canvas;r&&(r.requestPointerLock=r.requestPointerLock||r.mozRequestPointerLock||r.webkitRequestPointerLock||r.msRequestPointerLock||function(){},r.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},r.exitPointerLock=r.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",t,!1),document.addEventListener("mozpointerlockchange",t,!1),document.addEventListener("webkitpointerlockchange",t,!1),document.addEventListener("mspointerlockchange",t,!1),n.elementPointerLock&&r.addEventListener("click",function(o){!Q.pointerLock&&n.canvas.requestPointerLock&&(n.canvas.requestPointerLock(),o.preventDefault())},!1))},createContext:function(i,e,t,r){if(e&&n.ctx&&i==n.canvas)return n.ctx;var o,a;if(e){var s={antialias:!1,alpha:!1,majorVersion:typeof WebGL2RenderingContext!="undefined"?2:1};if(r)for(var A in r)s[A]=r[A];typeof O!="undefined"&&(a=O.createContext(i,s),a&&(o=O.getContext(a).GLctx))}else o=i.getContext("2d");return o?(t&&(e||W(typeof M=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),n.ctx=o,e&&O.makeContextCurrent(a),n.useWebGL=e,Q.moduleContextCreatedCallbacks.forEach(function(c){c()}),Q.init()),o):null},destroyContext:function(i,e,t){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(i,e){Q.lockPointer=i,Q.resizeCanvas=e,typeof Q.lockPointer=="undefined"&&(Q.lockPointer=!0),typeof Q.resizeCanvas=="undefined"&&(Q.resizeCanvas=!1);var t=n.canvas;function r(){Q.isFullscreen=!1;var a=t.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===a?(t.exitFullscreen=Q.exitFullscreen,Q.lockPointer&&t.requestPointerLock(),Q.isFullscreen=!0,Q.resizeCanvas?Q.setFullscreenCanvasSize():Q.updateCanvasDimensions(t)):(a.parentNode.insertBefore(t,a),a.parentNode.removeChild(a),Q.resizeCanvas?Q.setWindowedCanvasSize():Q.updateCanvasDimensions(t)),n.onFullScreen&&n.onFullScreen(Q.isFullscreen),n.onFullscreen&&n.onFullscreen(Q.isFullscreen)}Q.fullscreenHandlersInstalled||(Q.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",r,!1),document.addEventListener("mozfullscreenchange",r,!1),document.addEventListener("webkitfullscreenchange",r,!1),document.addEventListener("MSFullscreenChange",r,!1));var o=document.createElement("div");t.parentNode.insertBefore(o,t),o.appendChild(t),o.requestFullscreen=o.requestFullscreen||o.mozRequestFullScreen||o.msRequestFullscreen||(o.webkitRequestFullscreen?function(){o.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(o.webkitRequestFullScreen?function(){o.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),o.requestFullscreen()},requestFullScreen:function(){E("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen:function(){if(!Q.isFullscreen)return!1;var i=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){};return i.apply(document,[]),!0},nextRAF:0,fakeRequestAnimationFrame:function(i){var e=Date.now();if(Q.nextRAF===0)Q.nextRAF=e+1e3/60;else for(;e+2>=Q.nextRAF;)Q.nextRAF+=1e3/60;var t=Math.max(Q.nextRAF-e,0);setTimeout(i,t)},requestAnimationFrame:function(i){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(i);return}var e=Q.fakeRequestAnimationFrame;e(i)},safeSetTimeout:function(i){return ir(i)},safeRequestAnimationFrame:function(i){return Q.requestAnimationFrame(function(){Dn(i)})},getMimetype:function(i){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[i.substr(i.lastIndexOf(".")+1)]},getUserMedia:function(i){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(i)},getMovementX:function(i){return i.movementX||i.mozMovementX||i.webkitMovementX||0},getMovementY:function(i){return i.movementY||i.mozMovementY||i.webkitMovementY||0},getMouseWheelDelta:function(i){var e=0;switch(i.type){case"DOMMouseScroll":e=i.detail/3;break;case"mousewheel":e=i.wheelDelta/120;break;case"wheel":switch(e=i.deltaY,i.deltaMode){case 0:e/=100;break;case 1:e/=3;break;case 2:e*=80;break;default:throw"unrecognized mouse wheel delta mode: "+i.deltaMode}break;default:throw"unrecognized mouse wheel event: "+i.type}return e},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(i){if(Q.pointerLock)i.type!="mousemove"&&"mozMovementX"in i?Q.mouseMovementX=Q.mouseMovementY=0:(Q.mouseMovementX=Q.getMovementX(i),Q.mouseMovementY=Q.getMovementY(i)),typeof SDL!="undefined"?(Q.mouseX=SDL.mouseX+Q.mouseMovementX,Q.mouseY=SDL.mouseY+Q.mouseMovementY):(Q.mouseX+=Q.mouseMovementX,Q.mouseY+=Q.mouseMovementY);else{var e=n.canvas.getBoundingClientRect(),t=n.canvas.width,r=n.canvas.height,o=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset,a=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;if(W(typeof o!="undefined"&&typeof a!="undefined","Unable to retrieve scroll position, mouse positions likely broken."),i.type==="touchstart"||i.type==="touchend"||i.type==="touchmove"){var s=i.touch;if(s===void 0)return;var A=s.pageX-(o+e.left),c=s.pageY-(a+e.top);A=A*(t/e.width),c=c*(r/e.height);var u={x:A,y:c};if(i.type==="touchstart")Q.lastTouches[s.identifier]=u,Q.touches[s.identifier]=u;else if(i.type==="touchend"||i.type==="touchmove"){var d=Q.touches[s.identifier];d||(d=u),Q.lastTouches[s.identifier]=d,Q.touches[s.identifier]=u}return}var h=i.pageX-(o+e.left),m=i.pageY-(a+e.top);h=h*(t/e.width),m=m*(r/e.height),Q.mouseMovementX=h-Q.mouseX,Q.mouseMovementY=m-Q.mouseY,Q.mouseX=h,Q.mouseY=m}},resizeListeners:[],updateResizeListeners:function(){var i=n.canvas;Q.resizeListeners.forEach(function(e){e(i.width,i.height)})},setCanvasSize:function(i,e,t){var r=n.canvas;Q.updateCanvasDimensions(r,i,e),t||Q.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var i=be[SDL.screen>>2];i=i|8388608,T[SDL.screen>>2]=i}Q.updateCanvasDimensions(n.canvas),Q.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var i=be[SDL.screen>>2];i=i&-8388609,T[SDL.screen>>2]=i}Q.updateCanvasDimensions(n.canvas),Q.updateResizeListeners()},updateCanvasDimensions:function(i,e,t){e&&t?(i.widthNative=e,i.heightNative=t):(e=i.widthNative,t=i.heightNative);var r=e,o=t;if(n.forcedAspectRatio&&n.forcedAspectRatio>0&&(r/o<n.forcedAspectRatio?r=Math.round(o*n.forcedAspectRatio):o=Math.round(r/n.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===i.parentNode&&typeof screen!="undefined"){var a=Math.min(screen.width/r,screen.height/o);r=Math.round(r*a),o=Math.round(o*a)}Q.resizeCanvas?(i.width!=r&&(i.width=r),i.height!=o&&(i.height=o),typeof i.style!="undefined"&&(i.style.removeProperty("width"),i.style.removeProperty("height"))):(i.width!=e&&(i.width=e),i.height!=t&&(i.height=t),typeof i.style!="undefined"&&(r!=e||o!=t?(i.style.setProperty("width",r+"px","important"),i.style.setProperty("height",o+"px","important")):(i.style.removeProperty("width"),i.style.removeProperty("height"))))}};function P(i){for(;i.length>0;){var e=i.shift();if(typeof e=="function"){e(n);continue}var t=e.func;typeof t=="number"?e.arg===void 0?K.get(t)():K.get(t)(e.arg):t(e.arg===void 0?null:e.arg)}}function bn(i){return Pe("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),i}function Nr(i){var e=/\b_Z[\w\d_]+/g;return i.replace(e,function(t){var r=bn(t);return t===r?t:r+" ["+t+"]"})}function Gn(){var i=new Error;if(!i.stack){try{throw new Error}catch(e){i=e}if(!i.stack)return"(no stack trace available)"}return i.stack.toString()}function nn(){var i=Gn();return n.extraStackTrace&&(i+=`
31
+ `+n.extraStackTrace()),Nr(i)}function Qi(i){return nt(i+16)+16}function so(i,e){}function On(i,e){return void 0}function br(i){this.excPtr=i,this.ptr=i-16,this.set_type=function(e){T[this.ptr+4>>2]=e},this.get_type=function(){return T[this.ptr+4>>2]},this.set_destructor=function(e){T[this.ptr+8>>2]=e},this.get_destructor=function(){return T[this.ptr+8>>2]},this.set_refcount=function(e){T[this.ptr>>2]=e},this.set_caught=function(e){e=e?1:0,Ne[this.ptr+12>>0]=e},this.get_caught=function(){return Ne[this.ptr+12>>0]!=0},this.set_rethrown=function(e){e=e?1:0,Ne[this.ptr+13>>0]=e},this.get_rethrown=function(){return Ne[this.ptr+13>>0]!=0},this.init=function(e,t){this.set_type(e),this.set_destructor(t),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var e=T[this.ptr>>2];T[this.ptr>>2]=e+1},this.release_ref=function(){var e=T[this.ptr>>2];return T[this.ptr>>2]=e-1,W(e>0),e===1}}function Rt(i){this.free=function(){pr(this.ptr),this.ptr=0},this.set_base_ptr=function(e){T[this.ptr>>2]=e},this.get_base_ptr=function(){return T[this.ptr>>2]},this.set_adjusted_ptr=function(e){T[this.ptr+4>>2]=e},this.get_adjusted_ptr_addr=function(){return this.ptr+4},this.get_adjusted_ptr=function(){return T[this.ptr+4>>2]},this.get_exception_ptr=function(){var e=Po(this.get_exception_info().get_type());if(e)return T[this.get_base_ptr()>>2];var t=this.get_adjusted_ptr();return t!==0?t:this.get_base_ptr()},this.get_exception_info=function(){return new br(this.get_base_ptr())},i===void 0?(this.ptr=nt(8),this.set_adjusted_ptr(0)):this.ptr=i}var Yt=[];function xr(i){i.add_ref()}var Bt=0;function Bn(i){var e=new Rt(i),t=e.get_exception_info();return t.get_caught()||(t.set_caught(!0),Bt--),t.set_rethrown(!1),Yt.push(e),xr(t),e.get_exception_ptr()}var Xt=0;function St(i){try{return pr(new br(i).ptr)}catch(e){fe("exception during cxa_free_exception: "+e)}}function Or(i){if(i.release_ref()&&!i.get_rethrown()){var e=i.get_destructor();e&&K.get(e)(i.excPtr),St(i.excPtr)}}function Pi(){ie(0),W(Yt.length>0);var i=Yt.pop();Or(i.get_exception_info()),i.free(),Xt=0}function Yn(i){var e=new Rt(i),t=e.get_base_ptr();throw Xt||(Xt=t),e.free(),t+" - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch."}function Tn(){var i=Xt;if(!i)return ht(0),0;var e=new br(i),t=e.get_type(),r=new Rt;if(r.set_base_ptr(i),r.set_adjusted_ptr(i),!t)return ht(0),r.ptr|0;for(var o=Array.prototype.slice.call(arguments),a=0;a<o.length;a++){var s=o[a];if(s===0||s===t)break;if(te(s,t,r.get_adjusted_ptr_addr()))return ht(s),r.ptr|0}return ht(t),r.ptr|0}function Ri(){var i=Xt;if(!i)return ht(0),0;var e=new br(i),t=e.get_type(),r=new Rt;if(r.set_base_ptr(i),r.set_adjusted_ptr(i),!t)return ht(0),r.ptr|0;for(var o=Array.prototype.slice.call(arguments),a=0;a<o.length;a++){var s=o[a];if(s===0||s===t)break;if(te(s,t,r.get_adjusted_ptr_addr()))return ht(s),r.ptr|0}return ht(t),r.ptr|0}function Xn(){var i=Yt.pop();i||E("no exception to throw");var e=i.get_exception_info(),t=i.get_base_ptr();throw e.get_rethrown()?i.free():(Yt.push(i),e.set_rethrown(!0),e.set_caught(!1),Bt++),Xt=t,t+" - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch."}function Si(i,e){return void 0}function Mi(i,e,t){var r=new br(i);throw r.init(e,t),Xt=i,Bt++,i+" - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch."}function Wn(i){return T[Zr()>>2]=i,i}var _e={splitPath:function(i){var e=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return e.exec(i).slice(1)},normalizeArray:function(i,e){for(var t=0,r=i.length-1;r>=0;r--){var o=i[r];o==="."?i.splice(r,1):o===".."?(i.splice(r,1),t++):t&&(i.splice(r,1),t--)}if(e)for(;t;t--)i.unshift("..");return i},normalize:function(i){var e=i.charAt(0)==="/",t=i.substr(-1)==="/";return i=_e.normalizeArray(i.split("/").filter(function(r){return!!r}),!e).join("/"),!i&&!e&&(i="."),i&&t&&(i+="/"),(e?"/":"")+i},dirname:function(i){var e=_e.splitPath(i),t=e[0],r=e[1];return!t&&!r?".":(r&&(r=r.substr(0,r.length-1)),t+r)},basename:function(i){if(i==="/")return"/";i=_e.normalize(i),i=i.replace(/\/$/,"");var e=i.lastIndexOf("/");return e===-1?i:i.substr(e+1)},extname:function(i){return _e.splitPath(i)[3]},join:function(){var i=Array.prototype.slice.call(arguments,0);return _e.normalize(i.join("/"))},join2:function(i,e){return _e.normalize(i+"/"+e)}};function me(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var i=new Uint8Array(1);return function(){return crypto.getRandomValues(i),i[0]}}else if(_t)try{var e=dc("crypto");return function(){return e.randomBytes(1)[0]}}catch(t){}return function(){E("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };")}}var lt={resolve:function(){for(var i="",e=!1,t=arguments.length-1;t>=-1&&!e;t--){var r=t>=0?arguments[t]:f.cwd();if(typeof r!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!r)return"";i=r+"/"+i,e=r.charAt(0)==="/"}return i=_e.normalizeArray(i.split("/").filter(function(o){return!!o}),!e).join("/"),(e?"/":"")+i||"."},relative:function(i,e){i=lt.resolve(i).substr(1),e=lt.resolve(e).substr(1);function t(u){for(var d=0;d<u.length&&u[d]==="";d++);for(var h=u.length-1;h>=0&&u[h]==="";h--);return d>h?[]:u.slice(d,h-d+1)}for(var r=t(i.split("/")),o=t(e.split("/")),a=Math.min(r.length,o.length),s=a,A=0;A<a;A++)if(r[A]!==o[A]){s=A;break}for(var c=[],A=s;A<r.length;A++)c.push("..");return c=c.concat(o.slice(s)),c.join("/")}},Qe={ttys:[],init:function(){},shutdown:function(){},register:function(i,e){Qe.ttys[i]={input:[],output:[],ops:e},f.registerDevice(i,Qe.stream_ops)},stream_ops:{open:function(i){var e=Qe.ttys[i.node.rdev];if(!e)throw new f.ErrnoError(43);i.tty=e,i.seekable=!1},close:function(i){i.tty.ops.flush(i.tty)},flush:function(i){i.tty.ops.flush(i.tty)},read:function(i,e,t,r,o){if(!i.tty||!i.tty.ops.get_char)throw new f.ErrnoError(60);for(var a=0,s=0;s<r;s++){var A;try{A=i.tty.ops.get_char(i.tty)}catch(c){throw new f.ErrnoError(29)}if(A===void 0&&a===0)throw new f.ErrnoError(6);if(A==null)break;a++,e[t+s]=A}return a&&(i.node.timestamp=Date.now()),a},write:function(i,e,t,r,o){if(!i.tty||!i.tty.ops.put_char)throw new f.ErrnoError(60);try{for(var a=0;a<r;a++)i.tty.ops.put_char(i.tty,e[t+a])}catch(s){throw new f.ErrnoError(29)}return r&&(i.node.timestamp=Date.now()),a}},default_tty_ops:{get_char:function(i){if(!i.input.length){var e=null;if(_t){var t=256,r=Buffer.alloc(t),o=0;try{o=nodeFS.readSync(process.stdin.fd,r,0,t,null)}catch(a){if(a.toString().includes("EOF"))o=0;else throw a}o>0?e=r.slice(0,o).toString("utf-8"):e=null}else typeof window!="undefined"&&typeof window.prompt=="function"?(e=window.prompt("Input: "),e!==null&&(e+=`
32
+ `)):typeof readline=="function"&&(e=readline(),e!==null&&(e+=`
33
+ `));if(!e)return null;i.input=to(e,!0)}return i.input.shift()},put_char:function(i,e){e===null||e===10?(We(Pr(i.output,0)),i.output=[]):e!=0&&i.output.push(e)},flush:function(i){i.output&&i.output.length>0&&(We(Pr(i.output,0)),i.output=[])}},default_tty1_ops:{put_char:function(i,e){e===null||e===10?(fe(Pr(i.output,0)),i.output=[]):e!=0&&i.output.push(e)},flush:function(i){i.output&&i.output.length>0&&(fe(Pr(i.output,0)),i.output=[])}}};function It(i,e){Re.fill(0,i,i+e)}function Fi(i,e){return W(e,"alignment argument is required"),Math.ceil(i/e)*e}function Vn(i){i=Fi(i,65536);var e=eA(65536,i);return e?(It(e,i),e):0}var ne={ops_table:null,mount:function(i){return ne.createNode(null,"/",16895,0)},createNode:function(i,e,t,r){if(f.isBlkdev(t)||f.isFIFO(t))throw new f.ErrnoError(63);ne.ops_table||(ne.ops_table={dir:{node:{getattr:ne.node_ops.getattr,setattr:ne.node_ops.setattr,lookup:ne.node_ops.lookup,mknod:ne.node_ops.mknod,rename:ne.node_ops.rename,unlink:ne.node_ops.unlink,rmdir:ne.node_ops.rmdir,readdir:ne.node_ops.readdir,symlink:ne.node_ops.symlink},stream:{llseek:ne.stream_ops.llseek}},file:{node:{getattr:ne.node_ops.getattr,setattr:ne.node_ops.setattr},stream:{llseek:ne.stream_ops.llseek,read:ne.stream_ops.read,write:ne.stream_ops.write,allocate:ne.stream_ops.allocate,mmap:ne.stream_ops.mmap,msync:ne.stream_ops.msync}},link:{node:{getattr:ne.node_ops.getattr,setattr:ne.node_ops.setattr,readlink:ne.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ne.node_ops.getattr,setattr:ne.node_ops.setattr},stream:f.chrdev_stream_ops}});var o=f.createNode(i,e,t,r);return f.isDir(o.mode)?(o.node_ops=ne.ops_table.dir.node,o.stream_ops=ne.ops_table.dir.stream,o.contents={}):f.isFile(o.mode)?(o.node_ops=ne.ops_table.file.node,o.stream_ops=ne.ops_table.file.stream,o.usedBytes=0,o.contents=null):f.isLink(o.mode)?(o.node_ops=ne.ops_table.link.node,o.stream_ops=ne.ops_table.link.stream):f.isChrdev(o.mode)&&(o.node_ops=ne.ops_table.chrdev.node,o.stream_ops=ne.ops_table.chrdev.stream),o.timestamp=Date.now(),i&&(i.contents[e]=o,i.timestamp=o.timestamp),o},getFileDataAsTypedArray:function(i){return i.contents?i.contents.subarray?i.contents.subarray(0,i.usedBytes):new Uint8Array(i.contents):new Uint8Array(0)},expandFileStorage:function(i,e){var t=i.contents?i.contents.length:0;if(!(t>=e)){var r=1024*1024;e=Math.max(e,t*(t<r?2:1.125)>>>0),t!=0&&(e=Math.max(e,256));var o=i.contents;i.contents=new Uint8Array(e),i.usedBytes>0&&i.contents.set(o.subarray(0,i.usedBytes),0)}},resizeFileStorage:function(i,e){if(i.usedBytes!=e)if(e==0)i.contents=null,i.usedBytes=0;else{var t=i.contents;i.contents=new Uint8Array(e),t&&i.contents.set(t.subarray(0,Math.min(e,i.usedBytes))),i.usedBytes=e}},node_ops:{getattr:function(i){var e={};return e.dev=f.isChrdev(i.mode)?i.id:1,e.ino=i.id,e.mode=i.mode,e.nlink=1,e.uid=0,e.gid=0,e.rdev=i.rdev,f.isDir(i.mode)?e.size=4096:f.isFile(i.mode)?e.size=i.usedBytes:f.isLink(i.mode)?e.size=i.link.length:e.size=0,e.atime=new Date(i.timestamp),e.mtime=new Date(i.timestamp),e.ctime=new Date(i.timestamp),e.blksize=4096,e.blocks=Math.ceil(e.size/e.blksize),e},setattr:function(i,e){e.mode!==void 0&&(i.mode=e.mode),e.timestamp!==void 0&&(i.timestamp=e.timestamp),e.size!==void 0&&ne.resizeFileStorage(i,e.size)},lookup:function(i,e){throw f.genericErrors[44]},mknod:function(i,e,t,r){return ne.createNode(i,e,t,r)},rename:function(i,e,t){if(f.isDir(i.mode)){var r;try{r=f.lookupNode(e,t)}catch(a){}if(r)for(var o in r.contents)throw new f.ErrnoError(55)}delete i.parent.contents[i.name],i.parent.timestamp=Date.now(),i.name=t,e.contents[t]=i,e.timestamp=i.parent.timestamp,i.parent=e},unlink:function(i,e){delete i.contents[e],i.timestamp=Date.now()},rmdir:function(i,e){var t=f.lookupNode(i,e);for(var r in t.contents)throw new f.ErrnoError(55);delete i.contents[e],i.timestamp=Date.now()},readdir:function(i){var e=[".",".."];for(var t in i.contents)i.contents.hasOwnProperty(t)&&e.push(t);return e},symlink:function(i,e,t){var r=ne.createNode(i,e,41471,0);return r.link=t,r},readlink:function(i){if(!f.isLink(i.mode))throw new f.ErrnoError(28);return i.link}},stream_ops:{read:function(i,e,t,r,o){var a=i.node.contents;if(o>=i.node.usedBytes)return 0;var s=Math.min(i.node.usedBytes-o,r);if(W(s>=0),s>8&&a.subarray)e.set(a.subarray(o,o+s),t);else for(var A=0;A<s;A++)e[t+A]=a[o+A];return s},write:function(i,e,t,r,o,a){if(W(!(e instanceof ArrayBuffer)),e.buffer===Ne.buffer&&(a=!1),!r)return 0;var s=i.node;if(s.timestamp=Date.now(),e.subarray&&(!s.contents||s.contents.subarray)){if(a)return W(o===0,"canOwn must imply no weird position inside the file"),s.contents=e.subarray(t,t+r),s.usedBytes=r,r;if(s.usedBytes===0&&o===0)return s.contents=e.slice(t,t+r),s.usedBytes=r,r;if(o+r<=s.usedBytes)return s.contents.set(e.subarray(t,t+r),o),r}if(ne.expandFileStorage(s,o+r),s.contents.subarray&&e.subarray)s.contents.set(e.subarray(t,t+r),o);else for(var A=0;A<r;A++)s.contents[o+A]=e[t+A];return s.usedBytes=Math.max(s.usedBytes,o+r),r},llseek:function(i,e,t){var r=e;if(t===1?r+=i.position:t===2&&f.isFile(i.node.mode)&&(r+=i.node.usedBytes),r<0)throw new f.ErrnoError(28);return r},allocate:function(i,e,t){ne.expandFileStorage(i.node,e+t),i.node.usedBytes=Math.max(i.node.usedBytes,e+t)},mmap:function(i,e,t,r,o,a){if(e!==0)throw new f.ErrnoError(28);if(!f.isFile(i.node.mode))throw new f.ErrnoError(43);var s,A,c=i.node.contents;if(!(a&2)&&c.buffer===Sr)A=!1,s=c.byteOffset;else{if((r>0||r+t<c.length)&&(c.subarray?c=c.subarray(r,r+t):c=Array.prototype.slice.call(c,r,r+t)),A=!0,s=Vn(t),!s)throw new f.ErrnoError(48);Ne.set(c,s)}return{ptr:s,allocated:A}},msync:function(i,e,t,r,o){if(!f.isFile(i.node.mode))throw new f.ErrnoError(43);if(o&2)return 0;var a=ne.stream_ops.write(i,e,0,r,t,!1);return 0}}};function se(i,e,t,r){var o=r?"":rr("al "+i);qt(i,function(a){W(a,'Loading data file "'+i+'" failed (no arrayBuffer).'),e(new Uint8Array(a)),o&&Cr(o)},function(a){if(t)t();else throw'Loading data file "'+i+'" failed.'}),o&&Pt(o)}var ki={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"},on={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},f={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(i,e){if(i=lt.resolve(f.cwd(),i),e=e||{},!i)return{path:"",node:null};var t={follow_mount:!0,recurse_count:0};for(var r in t)e[r]===void 0&&(e[r]=t[r]);if(e.recurse_count>8)throw new f.ErrnoError(32);for(var o=_e.normalizeArray(i.split("/").filter(function(m){return!!m}),!1),a=f.root,s="/",A=0;A<o.length;A++){var c=A===o.length-1;if(c&&e.parent)break;if(a=f.lookupNode(a,o[A]),s=_e.join2(s,o[A]),f.isMountpoint(a)&&(!c||c&&e.follow_mount)&&(a=a.mounted.root),!c||e.follow)for(var u=0;f.isLink(a.mode);){var d=f.readlink(s);s=lt.resolve(_e.dirname(s),d);var h=f.lookupPath(s,{recurse_count:e.recurse_count});if(a=h.node,u++>40)throw new f.ErrnoError(32)}}return{path:s,node:a}},getPath:function(i){for(var e;;){if(f.isRoot(i)){var t=i.mount.mountpoint;return e?t[t.length-1]!=="/"?t+"/"+e:t+e:t}e=e?i.name+"/"+e:i.name,i=i.parent}},hashName:function(i,e){for(var t=0,r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r)|0;return(i+t>>>0)%f.nameTable.length},hashAddNode:function(i){var e=f.hashName(i.parent.id,i.name);i.name_next=f.nameTable[e],f.nameTable[e]=i},hashRemoveNode:function(i){var e=f.hashName(i.parent.id,i.name);if(f.nameTable[e]===i)f.nameTable[e]=i.name_next;else for(var t=f.nameTable[e];t;){if(t.name_next===i){t.name_next=i.name_next;break}t=t.name_next}},lookupNode:function(i,e){var t=f.mayLookup(i);if(t)throw new f.ErrnoError(t,i);for(var r=f.hashName(i.id,e),o=f.nameTable[r];o;o=o.name_next){var a=o.name;if(o.parent.id===i.id&&a===e)return o}return f.lookup(i,e)},createNode:function(i,e,t,r){W(typeof i=="object");var o=new f.FSNode(i,e,t,r);return f.hashAddNode(o),o},destroyNode:function(i){f.hashRemoveNode(i)},isRoot:function(i){return i===i.parent},isMountpoint:function(i){return!!i.mounted},isFile:function(i){return(i&61440)===32768},isDir:function(i){return(i&61440)===16384},isLink:function(i){return(i&61440)===40960},isChrdev:function(i){return(i&61440)===8192},isBlkdev:function(i){return(i&61440)===24576},isFIFO:function(i){return(i&61440)===4096},isSocket:function(i){return(i&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(i){var e=f.flagModes[i];if(typeof e=="undefined")throw new Error("Unknown file open mode: "+i);return e},flagsToPermissionString:function(i){var e=["r","w","rw"][i&3];return i&512&&(e+="w"),e},nodePermissions:function(i,e){return f.ignorePermissions?0:e.includes("r")&&!(i.mode&292)||e.includes("w")&&!(i.mode&146)||e.includes("x")&&!(i.mode&73)?2:0},mayLookup:function(i){var e=f.nodePermissions(i,"x");return e||(i.node_ops.lookup?0:2)},mayCreate:function(i,e){try{var t=f.lookupNode(i,e);return 20}catch(r){}return f.nodePermissions(i,"wx")},mayDelete:function(i,e,t){var r;try{r=f.lookupNode(i,e)}catch(a){return a.errno}var o=f.nodePermissions(i,"wx");if(o)return o;if(t){if(!f.isDir(r.mode))return 54;if(f.isRoot(r)||f.getPath(r)===f.cwd())return 10}else if(f.isDir(r.mode))return 31;return 0},mayOpen:function(i,e){return i?f.isLink(i.mode)?32:f.isDir(i.mode)&&(f.flagsToPermissionString(e)!=="r"||e&512)?31:f.nodePermissions(i,f.flagsToPermissionString(e)):44},MAX_OPEN_FDS:4096,nextfd:function(i,e){i=i||0,e=e||f.MAX_OPEN_FDS;for(var t=i;t<=e;t++)if(!f.streams[t])return t;throw new f.ErrnoError(33)},getStream:function(i){return f.streams[i]},createStream:function(i,e,t){f.FSStream||(f.FSStream=function(){},f.FSStream.prototype={object:{get:function(){return this.node},set:function(s){this.node=s}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}});var r=new f.FSStream;for(var o in i)r[o]=i[o];i=r;var a=f.nextfd(e,t);return i.fd=a,f.streams[a]=i,i},closeStream:function(i){f.streams[i]=null},chrdev_stream_ops:{open:function(i){var e=f.getDevice(i.node.rdev);i.stream_ops=e.stream_ops,i.stream_ops.open&&i.stream_ops.open(i)},llseek:function(){throw new f.ErrnoError(70)}},major:function(i){return i>>8},minor:function(i){return i&255},makedev:function(i,e){return i<<8|e},registerDevice:function(i,e){f.devices[i]={stream_ops:e}},getDevice:function(i){return f.devices[i]},getMounts:function(i){for(var e=[],t=[i];t.length;){var r=t.pop();e.push(r),t.push.apply(t,r.mounts)}return e},syncfs:function(i,e){typeof i=="function"&&(e=i,i=!1),f.syncFSRequests++,f.syncFSRequests>1&&fe("warning: "+f.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var t=f.getMounts(f.root.mount),r=0;function o(s){return W(f.syncFSRequests>0),f.syncFSRequests--,e(s)}function a(s){if(s)return a.errored?void 0:(a.errored=!0,o(s));++r>=t.length&&o(null)}t.forEach(function(s){if(!s.type.syncfs)return a(null);s.type.syncfs(s,i,a)})},mount:function(i,e,t){if(typeof i=="string")throw i;var r=t==="/",o=!t,a;if(r&&f.root)throw new f.ErrnoError(10);if(!r&&!o){var s=f.lookupPath(t,{follow_mount:!1});if(t=s.path,a=s.node,f.isMountpoint(a))throw new f.ErrnoError(10);if(!f.isDir(a.mode))throw new f.ErrnoError(54)}var A={type:i,opts:e,mountpoint:t,mounts:[]},c=i.mount(A);return c.mount=A,A.root=c,r?f.root=c:a&&(a.mounted=A,a.mount&&a.mount.mounts.push(A)),c},unmount:function(i){var e=f.lookupPath(i,{follow_mount:!1});if(!f.isMountpoint(e.node))throw new f.ErrnoError(28);var t=e.node,r=t.mounted,o=f.getMounts(r);Object.keys(f.nameTable).forEach(function(s){for(var A=f.nameTable[s];A;){var c=A.name_next;o.includes(A.mount)&&f.destroyNode(A),A=c}}),t.mounted=null;var a=t.mount.mounts.indexOf(r);W(a!==-1),t.mount.mounts.splice(a,1)},lookup:function(i,e){return i.node_ops.lookup(i,e)},mknod:function(i,e,t){var r=f.lookupPath(i,{parent:!0}),o=r.node,a=_e.basename(i);if(!a||a==="."||a==="..")throw new f.ErrnoError(28);var s=f.mayCreate(o,a);if(s)throw new f.ErrnoError(s);if(!o.node_ops.mknod)throw new f.ErrnoError(63);return o.node_ops.mknod(o,a,e,t)},create:function(i,e){return e=e!==void 0?e:438,e&=4095,e|=32768,f.mknod(i,e,0)},mkdir:function(i,e){return e=e!==void 0?e:511,e&=1023,e|=16384,f.mknod(i,e,0)},mkdirTree:function(i,e){for(var t=i.split("/"),r="",o=0;o<t.length;++o)if(t[o]){r+="/"+t[o];try{f.mkdir(r,e)}catch(a){if(a.errno!=20)throw a}}},mkdev:function(i,e,t){return typeof t=="undefined"&&(t=e,e=438),e|=8192,f.mknod(i,e,t)},symlink:function(i,e){if(!lt.resolve(i))throw new f.ErrnoError(44);var t=f.lookupPath(e,{parent:!0}),r=t.node;if(!r)throw new f.ErrnoError(44);var o=_e.basename(e),a=f.mayCreate(r,o);if(a)throw new f.ErrnoError(a);if(!r.node_ops.symlink)throw new f.ErrnoError(63);return r.node_ops.symlink(r,o,i)},rename:function(i,e){var t=_e.dirname(i),r=_e.dirname(e),o=_e.basename(i),a=_e.basename(e),s,A,c;if(s=f.lookupPath(i,{parent:!0}),A=s.node,s=f.lookupPath(e,{parent:!0}),c=s.node,!A||!c)throw new f.ErrnoError(44);if(A.mount!==c.mount)throw new f.ErrnoError(75);var u=f.lookupNode(A,o),d=lt.relative(i,r);if(d.charAt(0)!==".")throw new f.ErrnoError(28);if(d=lt.relative(e,t),d.charAt(0)!==".")throw new f.ErrnoError(55);var h;try{h=f.lookupNode(c,a)}catch(y){}if(u!==h){var m=f.isDir(u.mode),I=f.mayDelete(A,o,m);if(I)throw new f.ErrnoError(I);if(I=h?f.mayDelete(c,a,m):f.mayCreate(c,a),I)throw new f.ErrnoError(I);if(!A.node_ops.rename)throw new f.ErrnoError(63);if(f.isMountpoint(u)||h&&f.isMountpoint(h))throw new f.ErrnoError(10);if(c!==A&&(I=f.nodePermissions(A,"w"),I))throw new f.ErrnoError(I);try{f.trackingDelegate.willMovePath&&f.trackingDelegate.willMovePath(i,e)}catch(y){fe("FS.trackingDelegate['willMovePath']('"+i+"', '"+e+"') threw an exception: "+y.message)}f.hashRemoveNode(u);try{A.node_ops.rename(u,c,a)}catch(y){throw y}finally{f.hashAddNode(u)}try{f.trackingDelegate.onMovePath&&f.trackingDelegate.onMovePath(i,e)}catch(y){fe("FS.trackingDelegate['onMovePath']('"+i+"', '"+e+"') threw an exception: "+y.message)}}},rmdir:function(i){var e=f.lookupPath(i,{parent:!0}),t=e.node,r=_e.basename(i),o=f.lookupNode(t,r),a=f.mayDelete(t,r,!0);if(a)throw new f.ErrnoError(a);if(!t.node_ops.rmdir)throw new f.ErrnoError(63);if(f.isMountpoint(o))throw new f.ErrnoError(10);try{f.trackingDelegate.willDeletePath&&f.trackingDelegate.willDeletePath(i)}catch(s){fe("FS.trackingDelegate['willDeletePath']('"+i+"') threw an exception: "+s.message)}t.node_ops.rmdir(t,r),f.destroyNode(o);try{f.trackingDelegate.onDeletePath&&f.trackingDelegate.onDeletePath(i)}catch(s){fe("FS.trackingDelegate['onDeletePath']('"+i+"') threw an exception: "+s.message)}},readdir:function(i){var e=f.lookupPath(i,{follow:!0}),t=e.node;if(!t.node_ops.readdir)throw new f.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(i){var e=f.lookupPath(i,{parent:!0}),t=e.node,r=_e.basename(i),o=f.lookupNode(t,r),a=f.mayDelete(t,r,!1);if(a)throw new f.ErrnoError(a);if(!t.node_ops.unlink)throw new f.ErrnoError(63);if(f.isMountpoint(o))throw new f.ErrnoError(10);try{f.trackingDelegate.willDeletePath&&f.trackingDelegate.willDeletePath(i)}catch(s){fe("FS.trackingDelegate['willDeletePath']('"+i+"') threw an exception: "+s.message)}t.node_ops.unlink(t,r),f.destroyNode(o);try{f.trackingDelegate.onDeletePath&&f.trackingDelegate.onDeletePath(i)}catch(s){fe("FS.trackingDelegate['onDeletePath']('"+i+"') threw an exception: "+s.message)}},readlink:function(i){var e=f.lookupPath(i),t=e.node;if(!t)throw new f.ErrnoError(44);if(!t.node_ops.readlink)throw new f.ErrnoError(28);return lt.resolve(f.getPath(t.parent),t.node_ops.readlink(t))},stat:function(i,e){var t=f.lookupPath(i,{follow:!e}),r=t.node;if(!r)throw new f.ErrnoError(44);if(!r.node_ops.getattr)throw new f.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(i){return f.stat(i,!0)},chmod:function(i,e,t){var r;if(typeof i=="string"){var o=f.lookupPath(i,{follow:!t});r=o.node}else r=i;if(!r.node_ops.setattr)throw new f.ErrnoError(63);r.node_ops.setattr(r,{mode:e&4095|r.mode&-4096,timestamp:Date.now()})},lchmod:function(i,e){f.chmod(i,e,!0)},fchmod:function(i,e){var t=f.getStream(i);if(!t)throw new f.ErrnoError(8);f.chmod(t.node,e)},chown:function(i,e,t,r){var o;if(typeof i=="string"){var a=f.lookupPath(i,{follow:!r});o=a.node}else o=i;if(!o.node_ops.setattr)throw new f.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:function(i,e,t){f.chown(i,e,t,!0)},fchown:function(i,e,t){var r=f.getStream(i);if(!r)throw new f.ErrnoError(8);f.chown(r.node,e,t)},truncate:function(i,e){if(e<0)throw new f.ErrnoError(28);var t;if(typeof i=="string"){var r=f.lookupPath(i,{follow:!0});t=r.node}else t=i;if(!t.node_ops.setattr)throw new f.ErrnoError(63);if(f.isDir(t.mode))throw new f.ErrnoError(31);if(!f.isFile(t.mode))throw new f.ErrnoError(28);var o=f.nodePermissions(t,"w");if(o)throw new f.ErrnoError(o);t.node_ops.setattr(t,{size:e,timestamp:Date.now()})},ftruncate:function(i,e){var t=f.getStream(i);if(!t)throw new f.ErrnoError(8);if(!(t.flags&2097155))throw new f.ErrnoError(28);f.truncate(t.node,e)},utime:function(i,e,t){var r=f.lookupPath(i,{follow:!0}),o=r.node;o.node_ops.setattr(o,{timestamp:Math.max(e,t)})},open:function(i,e,t,r,o){if(i==="")throw new f.ErrnoError(44);e=typeof e=="string"?f.modeStringToFlags(e):e,t=typeof t=="undefined"?438:t,e&64?t=t&4095|32768:t=0;var a;if(typeof i=="object")a=i;else{i=_e.normalize(i);try{var s=f.lookupPath(i,{follow:!(e&131072)});a=s.node}catch(h){}}var A=!1;if(e&64)if(a){if(e&128)throw new f.ErrnoError(20)}else a=f.mknod(i,t,0),A=!0;if(!a)throw new f.ErrnoError(44);if(f.isChrdev(a.mode)&&(e&=-513),e&65536&&!f.isDir(a.mode))throw new f.ErrnoError(54);if(!A){var c=f.mayOpen(a,e);if(c)throw new f.ErrnoError(c)}e&512&&f.truncate(a,0),e&=-131713;var u=f.createStream({node:a,path:f.getPath(a),flags:e,seekable:!0,position:0,stream_ops:a.stream_ops,ungotten:[],error:!1},r,o);u.stream_ops.open&&u.stream_ops.open(u),n.logReadFiles&&!(e&1)&&(f.readFiles||(f.readFiles={}),i in f.readFiles||(f.readFiles[i]=1,fe("FS.trackingDelegate error on read file: "+i)));try{if(f.trackingDelegate.onOpenFile){var d=0;(e&2097155)!==1&&(d|=f.tracking.openFlags.READ),e&2097155&&(d|=f.tracking.openFlags.WRITE),f.trackingDelegate.onOpenFile(i,d)}}catch(h){fe("FS.trackingDelegate['onOpenFile']('"+i+"', flags) threw an exception: "+h.message)}return u},close:function(i){if(f.isClosed(i))throw new f.ErrnoError(8);i.getdents&&(i.getdents=null);try{i.stream_ops.close&&i.stream_ops.close(i)}catch(e){throw e}finally{f.closeStream(i.fd)}i.fd=null},isClosed:function(i){return i.fd===null},llseek:function(i,e,t){if(f.isClosed(i))throw new f.ErrnoError(8);if(!i.seekable||!i.stream_ops.llseek)throw new f.ErrnoError(70);if(t!=0&&t!=1&&t!=2)throw new f.ErrnoError(28);return i.position=i.stream_ops.llseek(i,e,t),i.ungotten=[],i.position},read:function(i,e,t,r,o){if(r<0||o<0)throw new f.ErrnoError(28);if(f.isClosed(i))throw new f.ErrnoError(8);if((i.flags&2097155)===1)throw new f.ErrnoError(8);if(f.isDir(i.node.mode))throw new f.ErrnoError(31);if(!i.stream_ops.read)throw new f.ErrnoError(28);var a=typeof o!="undefined";if(!a)o=i.position;else if(!i.seekable)throw new f.ErrnoError(70);var s=i.stream_ops.read(i,e,t,r,o);return a||(i.position+=s),s},write:function(i,e,t,r,o,a){if(r<0||o<0)throw new f.ErrnoError(28);if(f.isClosed(i))throw new f.ErrnoError(8);if(!(i.flags&2097155))throw new f.ErrnoError(8);if(f.isDir(i.node.mode))throw new f.ErrnoError(31);if(!i.stream_ops.write)throw new f.ErrnoError(28);i.seekable&&i.flags&1024&&f.llseek(i,0,2);var s=typeof o!="undefined";if(!s)o=i.position;else if(!i.seekable)throw new f.ErrnoError(70);var A=i.stream_ops.write(i,e,t,r,o,a);s||(i.position+=A);try{i.path&&f.trackingDelegate.onWriteToFile&&f.trackingDelegate.onWriteToFile(i.path)}catch(c){fe("FS.trackingDelegate['onWriteToFile']('"+i.path+"') threw an exception: "+c.message)}return A},allocate:function(i,e,t){if(f.isClosed(i))throw new f.ErrnoError(8);if(e<0||t<=0)throw new f.ErrnoError(28);if(!(i.flags&2097155))throw new f.ErrnoError(8);if(!f.isFile(i.node.mode)&&!f.isDir(i.node.mode))throw new f.ErrnoError(43);if(!i.stream_ops.allocate)throw new f.ErrnoError(138);i.stream_ops.allocate(i,e,t)},mmap:function(i,e,t,r,o,a){if(o&2&&!(a&2)&&(i.flags&2097155)!==2)throw new f.ErrnoError(2);if((i.flags&2097155)===1)throw new f.ErrnoError(2);if(!i.stream_ops.mmap)throw new f.ErrnoError(43);return i.stream_ops.mmap(i,e,t,r,o,a)},msync:function(i,e,t,r,o){return!i||!i.stream_ops.msync?0:i.stream_ops.msync(i,e,t,r,o)},munmap:function(i){return 0},ioctl:function(i,e,t){if(!i.stream_ops.ioctl)throw new f.ErrnoError(59);return i.stream_ops.ioctl(i,e,t)},readFile:function(i,e){if(e=e||{},e.flags=e.flags||0,e.encoding=e.encoding||"binary",e.encoding!=="utf8"&&e.encoding!=="binary")throw new Error('Invalid encoding type "'+e.encoding+'"');var t,r=f.open(i,e.flags),o=f.stat(i),a=o.size,s=new Uint8Array(a);return f.read(r,s,0,a,0),e.encoding==="utf8"?t=Pr(s,0):e.encoding==="binary"&&(t=s),f.close(r),t},writeFile:function(i,e,t){t=t||{},t.flags=t.flags||577;var r=f.open(i,t.flags,t.mode);if(typeof e=="string"){var o=new Uint8Array(Ke(e)+1),a=Qt(e,o,0,o.length);f.write(r,o,0,a,void 0,t.canOwn)}else if(ArrayBuffer.isView(e))f.write(r,e,0,e.byteLength,void 0,t.canOwn);else throw new Error("Unsupported data type");f.close(r)},cwd:function(){return f.currentPath},chdir:function(i){var e=f.lookupPath(i,{follow:!0});if(e.node===null)throw new f.ErrnoError(44);if(!f.isDir(e.node.mode))throw new f.ErrnoError(54);var t=f.nodePermissions(e.node,"x");if(t)throw new f.ErrnoError(t);f.currentPath=e.path},createDefaultDirectories:function(){f.mkdir("/tmp"),f.mkdir("/home"),f.mkdir("/home/web_user")},createDefaultDevices:function(){f.mkdir("/dev"),f.registerDevice(f.makedev(1,3),{read:function(){return 0},write:function(e,t,r,o,a){return o}}),f.mkdev("/dev/null",f.makedev(1,3)),Qe.register(f.makedev(5,0),Qe.default_tty_ops),Qe.register(f.makedev(6,0),Qe.default_tty1_ops),f.mkdev("/dev/tty",f.makedev(5,0)),f.mkdev("/dev/tty1",f.makedev(6,0));var i=me();f.createDevice("/dev","random",i),f.createDevice("/dev","urandom",i),f.mkdir("/dev/shm"),f.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){f.mkdir("/proc");var i=f.mkdir("/proc/self");f.mkdir("/proc/self/fd"),f.mount({mount:function(){var e=f.createNode(i,"fd",16895,73);return e.node_ops={lookup:function(t,r){var o=+r,a=f.getStream(o);if(!a)throw new f.ErrnoError(8);var s={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return a.path}}};return s.parent=s,s}},e}},{},"/proc/self/fd")},createStandardStreams:function(){n.stdin?f.createDevice("/dev","stdin",n.stdin):f.symlink("/dev/tty","/dev/stdin"),n.stdout?f.createDevice("/dev","stdout",null,n.stdout):f.symlink("/dev/tty","/dev/stdout"),n.stderr?f.createDevice("/dev","stderr",null,n.stderr):f.symlink("/dev/tty1","/dev/stderr");var i=f.open("/dev/stdin",0),e=f.open("/dev/stdout",1),t=f.open("/dev/stderr",1);W(i.fd===0,"invalid handle for stdin ("+i.fd+")"),W(e.fd===1,"invalid handle for stdout ("+e.fd+")"),W(t.fd===2,"invalid handle for stderr ("+t.fd+")")},ensureErrnoError:function(){f.ErrnoError||(f.ErrnoError=function(e,t){this.node=t,this.setErrno=function(r){this.errno=r;for(var o in on)if(on[o]===r){this.code=o;break}},this.setErrno(e),this.message=ki[e],this.stack&&(Object.defineProperty(this,"stack",{value:new Error().stack,writable:!0}),this.stack=Nr(this.stack))},f.ErrnoError.prototype=new Error,f.ErrnoError.prototype.constructor=f.ErrnoError,[44].forEach(function(i){f.genericErrors[i]=new f.ErrnoError(i),f.genericErrors[i].stack="<generic error, no stack>"}))},staticInit:function(){f.ensureErrnoError(),f.nameTable=new Array(4096),f.mount(ne,{},"/"),f.createDefaultDirectories(),f.createDefaultDevices(),f.createSpecialDirectories(),f.filesystems={MEMFS:ne}},init:function(i,e,t){W(!f.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),f.init.initialized=!0,f.ensureErrnoError(),n.stdin=i||n.stdin,n.stdout=e||n.stdout,n.stderr=t||n.stderr,f.createStandardStreams()},quit:function(){f.init.initialized=!1;var i=n._fflush;i&&i(0);for(var e=0;e<f.streams.length;e++){var t=f.streams[e];t&&f.close(t)}},getMode:function(i,e){var t=0;return i&&(t|=365),e&&(t|=146),t},findObject:function(i,e){var t=f.analyzePath(i,e);return t.exists?t.object:null},analyzePath:function(i,e){try{var t=f.lookupPath(i,{follow:!e});i=t.path}catch(o){}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var t=f.lookupPath(i,{parent:!0});r.parentExists=!0,r.parentPath=t.path,r.parentObject=t.node,r.name=_e.basename(i),t=f.lookupPath(i,{follow:!e}),r.exists=!0,r.path=t.path,r.object=t.node,r.name=t.node.name,r.isRoot=t.path==="/"}catch(o){r.error=o.errno}return r},createPath:function(i,e,t,r){i=typeof i=="string"?i:f.getPath(i);for(var o=e.split("/").reverse();o.length;){var a=o.pop();if(a){var s=_e.join2(i,a);try{f.mkdir(s)}catch(A){}i=s}}return s},createFile:function(i,e,t,r,o){var a=_e.join2(typeof i=="string"?i:f.getPath(i),e),s=f.getMode(r,o);return f.create(a,s)},createDataFile:function(i,e,t,r,o,a){var s=e?_e.join2(typeof i=="string"?i:f.getPath(i),e):i,A=f.getMode(r,o),c=f.create(s,A);if(t){if(typeof t=="string"){for(var u=new Array(t.length),d=0,h=t.length;d<h;++d)u[d]=t.charCodeAt(d);t=u}f.chmod(c,A|146);var m=f.open(c,577);f.write(m,t,0,t.length,0,a),f.close(m),f.chmod(c,A)}return c},createDevice:function(i,e,t,r){var o=_e.join2(typeof i=="string"?i:f.getPath(i),e),a=f.getMode(!!t,!!r);f.createDevice.major||(f.createDevice.major=64);var s=f.makedev(f.createDevice.major++,0);return f.registerDevice(s,{open:function(A){A.seekable=!1},close:function(A){r&&r.buffer&&r.buffer.length&&r(10)},read:function(A,c,u,d,h){for(var m=0,I=0;I<d;I++){var y;try{y=t()}catch(v){throw new f.ErrnoError(29)}if(y===void 0&&m===0)throw new f.ErrnoError(6);if(y==null)break;m++,c[u+I]=y}return m&&(A.node.timestamp=Date.now()),m},write:function(A,c,u,d,h){for(var m=0;m<d;m++)try{r(c[u+m])}catch(I){throw new f.ErrnoError(29)}return d&&(A.node.timestamp=Date.now()),m}}),f.mkdev(o,a,s)},forceLoadFile:function(i){if(i.isDevice||i.isFolder||i.link||i.contents)return!0;if(typeof XMLHttpRequest!="undefined")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(vr)try{i.contents=to(vr(i.url),!0),i.usedBytes=i.contents.length}catch(e){throw new f.ErrnoError(29)}else throw new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile:function(i,e,t,r,o){function a(){this.lengthKnown=!1,this.chunks=[]}if(a.prototype.get=function(m){if(!(m>this.length-1||m<0)){var I=m%this.chunkSize,y=m/this.chunkSize|0;return this.getter(y)[I]}},a.prototype.setDataGetter=function(m){this.getter=m},a.prototype.cacheLength=function(){var m=new XMLHttpRequest;if(m.open("HEAD",t,!1),m.send(null),!(m.status>=200&&m.status<300||m.status===304))throw new Error("Couldn't load "+t+". Status: "+m.status);var I=Number(m.getResponseHeader("Content-length")),y,v=(y=m.getResponseHeader("Accept-Ranges"))&&y==="bytes",N=(y=m.getResponseHeader("Content-Encoding"))&&y==="gzip",H=1024*1024;v||(H=I);var R=function(k,$){if(k>$)throw new Error("invalid range ("+k+", "+$+") or no bytes requested!");if($>I-1)throw new Error("only "+I+" bytes available! programmer error!");var Y=new XMLHttpRequest;if(Y.open("GET",t,!1),I!==H&&Y.setRequestHeader("Range","bytes="+k+"-"+$),typeof Uint8Array!="undefined"&&(Y.responseType="arraybuffer"),Y.overrideMimeType&&Y.overrideMimeType("text/plain; charset=x-user-defined"),Y.send(null),!(Y.status>=200&&Y.status<300||Y.status===304))throw new Error("Couldn't load "+t+". Status: "+Y.status);return Y.response!==void 0?new Uint8Array(Y.response||[]):to(Y.responseText||"",!0)},D=this;D.setDataGetter(function(k){var $=k*H,Y=(k+1)*H-1;if(Y=Math.min(Y,I-1),typeof D.chunks[k]=="undefined"&&(D.chunks[k]=R($,Y)),typeof D.chunks[k]=="undefined")throw new Error("doXHR failed!");return D.chunks[k]}),(N||!I)&&(H=I=1,I=this.getter(0).length,H=I,We("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=I,this._chunkSize=H,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!ze)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var s=new a;Object.defineProperties(s,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var A={isDevice:!1,contents:s}}else var A={isDevice:!1,url:t};var c=f.createFile(i,e,A,r,o);A.contents?c.contents=A.contents:A.url&&(c.contents=null,c.url=A.url),Object.defineProperties(c,{usedBytes:{get:function(){return this.contents.length}}});var u={},d=Object.keys(c.stream_ops);return d.forEach(function(h){var m=c.stream_ops[h];u[h]=function(){return f.forceLoadFile(c),m.apply(null,arguments)}}),u.read=function(m,I,y,v,N){f.forceLoadFile(c);var H=m.node.contents;if(N>=H.length)return 0;var R=Math.min(H.length-N,v);if(W(R>=0),H.slice)for(var D=0;D<R;D++)I[y+D]=H[N+D];else for(var D=0;D<R;D++)I[y+D]=H.get(N+D);return R},c.stream_ops=u,c},createPreloadedFile:function(i,e,t,r,o,a,s,A,c,u){Q.init();var d=e?lt.resolve(_e.join2(i,e)):i,h=rr("cp "+d);function m(I){function y(N){u&&u(),A||f.createDataFile(i,e,N,r,o,c),a&&a(),Cr(h)}var v=!1;n.preloadPlugins.forEach(function(N){v||N.canHandle(d)&&(N.handle(I,d,y,function(){s&&s(),Cr(h)}),v=!0)}),v||y(I)}Pt(h),typeof t=="string"?se(t,function(I){m(I)},s):m(t)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(i,e,t){e=e||function(){},t=t||function(){};var r=f.indexedDB();try{var o=r.open(f.DB_NAME(),f.DB_VERSION)}catch(a){return t(a)}o.onupgradeneeded=function(){We("creating db");var s=o.result;s.createObjectStore(f.DB_STORE_NAME)},o.onsuccess=function(){var s=o.result,A=s.transaction([f.DB_STORE_NAME],"readwrite"),c=A.objectStore(f.DB_STORE_NAME),u=0,d=0,h=i.length;function m(){d==0?e():t()}i.forEach(function(I){var y=c.put(f.analyzePath(I).object.contents,I);y.onsuccess=function(){u++,u+d==h&&m()},y.onerror=function(){d++,u+d==h&&m()}}),A.onerror=t},o.onerror=t},loadFilesFromDB:function(i,e,t){e=e||function(){},t=t||function(){};var r=f.indexedDB();try{var o=r.open(f.DB_NAME(),f.DB_VERSION)}catch(a){return t(a)}o.onupgradeneeded=t,o.onsuccess=function(){var s=o.result;try{var A=s.transaction([f.DB_STORE_NAME],"readonly")}catch(I){t(I);return}var c=A.objectStore(f.DB_STORE_NAME),u=0,d=0,h=i.length;function m(){d==0?e():t()}i.forEach(function(I){var y=c.get(I);y.onsuccess=function(){f.analyzePath(I).exists&&f.unlink(I),f.createDataFile(_e.dirname(I),_e.basename(I),y.result,!0,!0,!0),u++,u+d==h&&m()},y.onerror=function(){d++,u+d==h&&m()}}),A.onerror=t},o.onerror=t},absolutePath:function(){E("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder:function(){E("FS.createFolder has been removed; use FS.mkdir instead")},createLink:function(){E("FS.createLink has been removed; use FS.symlink instead")},joinPath:function(){E("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc:function(){E("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath:function(){E("FS.standardizePath has been removed; use PATH.normalize instead")}},l={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(i,e,t){if(e[0]==="/")return e;var r;if(i===-100)r=f.cwd();else{var o=f.getStream(i);if(!o)throw new f.ErrnoError(8);r=o.path}if(e.length==0){if(!t)throw new f.ErrnoError(44);return r}return _e.join2(r,e)},doStat:function(i,e,t){try{var r=i(e)}catch(o){if(o&&o.node&&_e.normalize(e)!==_e.normalize(f.getPath(o.node)))return-54;throw o}return T[t>>2]=r.dev,T[t+4>>2]=0,T[t+8>>2]=r.ino,T[t+12>>2]=r.mode,T[t+16>>2]=r.nlink,T[t+20>>2]=r.uid,T[t+24>>2]=r.gid,T[t+28>>2]=r.rdev,T[t+32>>2]=0,Ce=[r.size>>>0,(Ge=r.size,+Math.abs(Ge)>=1?Ge>0?(Math.min(+Math.floor(Ge/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Ge-+(~~Ge>>>0))/4294967296)>>>0:0)],T[t+40>>2]=Ce[0],T[t+44>>2]=Ce[1],T[t+48>>2]=4096,T[t+52>>2]=r.blocks,T[t+56>>2]=r.atime.getTime()/1e3|0,T[t+60>>2]=0,T[t+64>>2]=r.mtime.getTime()/1e3|0,T[t+68>>2]=0,T[t+72>>2]=r.ctime.getTime()/1e3|0,T[t+76>>2]=0,Ce=[r.ino>>>0,(Ge=r.ino,+Math.abs(Ge)>=1?Ge>0?(Math.min(+Math.floor(Ge/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Ge-+(~~Ge>>>0))/4294967296)>>>0:0)],T[t+80>>2]=Ce[0],T[t+84>>2]=Ce[1],0},doMsync:function(i,e,t,r,o){var a=Re.slice(i,i+t);f.msync(e,a,o,t,r)},doMkdir:function(i,e){return i=_e.normalize(i),i[i.length-1]==="/"&&(i=i.substr(0,i.length-1)),f.mkdir(i,e,0),0},doMknod:function(i,e,t){switch(e&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return f.mknod(i,e,t),0},doReadlink:function(i,e,t){if(t<=0)return-28;var r=f.readlink(i),o=Math.min(t,Ke(r)),a=Ne[e+o];return $e(r,e,t+1),Ne[e+o]=a,o},doAccess:function(i,e){if(e&-8)return-28;var t,r=f.lookupPath(i,{follow:!0});if(t=r.node,!t)return-44;var o="";return e&4&&(o+="r"),e&2&&(o+="w"),e&1&&(o+="x"),o&&f.nodePermissions(t,o)?-2:0},doDup:function(i,e,t){var r=f.getStream(t);return r&&f.close(r),f.open(i,e,0,t,t).fd},doReadv:function(i,e,t,r){for(var o=0,a=0;a<t;a++){var s=T[e+a*8>>2],A=T[e+(a*8+4)>>2],c=f.read(i,Ne,s,A,r);if(c<0)return-1;if(o+=c,c<A)break}return o},doWritev:function(i,e,t,r){for(var o=0,a=0;a<t;a++){var s=T[e+a*8>>2],A=T[e+(a*8+4)>>2],c=f.write(i,Ne,s,A,r);if(c<0)return-1;o+=c}return o},varargs:void 0,get:function(){W(l.varargs!=null),l.varargs+=4;var i=T[l.varargs-4>>2];return i},getStr:function(i){var e=it(i);return e},getStreamFromFD:function(i){var e=f.getStream(i);if(!e)throw new f.ErrnoError(8);return e},get64:function(i,e){return i>=0?W(e===0):W(e===-1),i}};function Se(i,e,t){l.varargs=t;try{var r=l.getStreamFromFD(i);switch(e){case 0:{var o=l.get();if(o<0)return-28;var a;return a=f.open(r.path,r.flags,0,o),a.fd}case 1:case 2:return 0;case 3:return r.flags;case 4:{var o=l.get();return r.flags|=o,0}case 12:{var o=l.get(),s=0;return De[o+s>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Wn(28),-1;default:return-28}}catch(A){return(typeof f=="undefined"||!(A instanceof f.ErrnoError))&&E(A),-A.errno}}function Ui(i,e,t){l.varargs=t;try{var r=l.getStreamFromFD(i);switch(e){case 21509:case 21505:return r.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return r.tty?0:-59;case 21519:{if(!r.tty)return-59;var o=l.get();return T[o>>2]=0,0}case 21520:return r.tty?-28:-59;case 21531:{var o=l.get();return f.ioctl(r,e,o)}case 21523:return r.tty?0:-59;case 21524:return r.tty?0:-59;default:E("bad ioctl syscall "+e)}}catch(a){return(typeof f=="undefined"||!(a instanceof f.ErrnoError))&&E(a),-a.errno}}function Ni(i,e,t,r,o,a){a<<=12;var s,A=!1;if(r&16&&i%65536!==0)return-28;if(r&32){if(s=Vn(e),!s)return-48;A=!0}else{var c=f.getStream(o);if(!c)return-8;var u=f.mmap(c,i,e,a,t,r);s=u.ptr,A=u.allocated}return l.mappings[s]={malloc:s,len:e,allocated:A,fd:o,prot:t,flags:r,offset:a},s}function xi(i,e,t,r,o,a){try{return Ni(i,e,t,r,o,a)}catch(s){return(typeof f=="undefined"||!(s instanceof f.ErrnoError))&&E(s),-s.errno}}function ji(i,e,t){l.varargs=t;try{var r=l.getStr(i),o=t?l.get():0,a=f.open(r,e,o);return a.fd}catch(s){return(typeof f=="undefined"||!(s instanceof f.ErrnoError))&&E(s),-s.errno}}function Li(i,e){try{return i=l.getStr(i),l.doStat(f.stat,i,e)}catch(t){return(typeof f=="undefined"||!(t instanceof f.ErrnoError))&&E(t),-t.errno}}var zn=48,Hi=57;function an(i){if(i===void 0)return"_unknown";i=i.replace(/[^a-zA-Z0-9_]/g,"$");var e=i.charCodeAt(0);return e>=zn&&e<=Hi?"_"+i:i}function or(i,e){return i=an(i),new Function("body","return function "+i+`() {
34
+ "use strict"; return body.apply(this, arguments);
35
+ };
36
+ `)(e)}var ar=[],tt=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function dt(){for(var i=0,e=5;e<tt.length;++e)tt[e]!==void 0&&++i;return i}function Gi(){for(var i=5;i<tt.length;++i)if(tt[i]!==void 0)return tt[i];return null}function Yi(){n.count_emval_handles=dt,n.get_first_emval=Gi}function sn(i){switch(i){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:{var e=ar.length?ar.pop():tt.length;return tt[e]={refcount:1,value:i},e}}}function sr(i,e){var t=or(e,function(r){this.name=e,this.message=r;var o=new Error(r).stack;o!==void 0&&(this.stack=this.toString()+`
37
+ `+o.replace(/^Error(:[^\n]*)?\n/,""))});return t.prototype=Object.create(i.prototype),t.prototype.constructor=t,t.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},t}var jr=void 0;function $n(){for(var i=new Array(256),e=0;e<256;++e)i[e]=String.fromCharCode(e);Kn=i}var Kn=void 0;function ke(i){for(var e="",t=i;Re[t];)e+=Kn[Re[t++]];return e}function xe(){return Object.keys(Ft).length}function Xi(){var i=[];for(var e in Ft)Ft.hasOwnProperty(e)&&i.push(Ft[e]);return i}var Lr=[];function Ar(){for(;Lr.length;){var i=Lr.pop();i.$$.deleteScheduled=!1,i.delete()}}var Mt=void 0;function Hr(i){Mt=i,Lr.length&&Mt&&Mt(Ar)}function Wi(){n.getInheritedInstanceCount=xe,n.getLiveInheritedInstances=Xi,n.flushPendingDeletes=Ar,n.setDelayFunction=Hr}var Ft={},rt=void 0;function ae(i){throw new rt(i)}function Ae(i,e){for(e===void 0&&ae("ptr should not be undefined");i.baseClass;)e=i.upcast(e),i=i.baseClass;return e}function vn(i,e,t){e=Ae(i,e),Ft.hasOwnProperty(e)?ae("Tried to register registered instance: "+e):Ft[e]=t}function Jn(i){return i||ae("Cannot use deleted val. handle = "+i),tt[i].value}var Wt={};function Vt(i){var e=nc(i),t=ke(e);return pr(e),t}function An(i,e){var t=Wt[i];return t===void 0&&ae(e+" has unknown type "+Vt(i)),t}function ft(i,e){e=Ae(i,e),Ft.hasOwnProperty(e)?delete Ft[e]:ae("Tried to unregister unregistered instance: "+e)}function cn(i){}var zt=!1;function un(i){i.smartPtr?i.smartPtrType.rawDestructor(i.smartPtr):i.ptrType.registeredClass.rawDestructor(i.ptr)}function Tt(i){i.count.value-=1;var e=i.count.value===0;e&&un(i)}function $t(i){return typeof FinalizationGroup=="undefined"?($t=function(e){return e},i):(zt=new FinalizationGroup(function(e){for(var t=e.next();!t.done;t=e.next()){var r=t.value;r.ptr?Tt(r):console.warn("object already deleted: "+r.ptr)}}),$t=function(e){return zt.register(e,e.$$,e.$$),e},cn=function(e){zt.unregister(e.$$)},$t(i))}function Gr(i,e,t){i=ke(i),e=An(e,"wrapper"),t=Jn(t);var r=[].slice,o=e.registeredClass,a=o.instancePrototype,s=o.baseClass,A=s.instancePrototype,c=o.baseClass.constructor,u=or(i,function(){o.baseClass.pureVirtualFunctions.forEach(function(h){if(this[h]===A[h])throw new jr("Pure virtual function "+h+" must be implemented in JavaScript")}.bind(this)),Object.defineProperty(this,"__parent",{value:a}),this.__construct.apply(this,r.call(arguments))});a.__construct=function(){this===a&&ae("Pass correct 'this' to __construct");var m=c.implement.apply(void 0,[this].concat(r.call(arguments)));cn(m);var I=m.$$;m.notifyOnDestruction(),I.preservePointerOnDelete=!0,Object.defineProperties(this,{$$:{value:I}}),$t(this),vn(o,I.ptr,this)},a.__destruct=function(){this===a&&ae("Pass correct 'this' to __destruct"),cn(this),ft(o,this.$$.ptr)},u.prototype=Object.create(a);for(var d in t)u.prototype[d]=t[d];return sn(u)}var cr={};function ur(i){for(;i.length;){var e=i.pop(),t=i.pop();t(e)}}function _(i){return this.fromWireType(be[i>>2])}var g={},C={},B=void 0;function F(i){throw new B(i)}function L(i,e,t){i.forEach(function(A){C[A]=e});function r(A){var c=t(A);c.length!==i.length&&F("Mismatched type converter count");for(var u=0;u<i.length;++u)q(i[u],c[u])}var o=new Array(e.length),a=[],s=0;e.forEach(function(A,c){Wt.hasOwnProperty(A)?o[c]=Wt[A]:(a.push(A),g.hasOwnProperty(A)||(g[A]=[]),g[A].push(function(){o[c]=Wt[A],++s,s===a.length&&r(o)}))}),a.length===0&&r(o)}function X(i){var e=cr[i];delete cr[i];var t=e.rawConstructor,r=e.rawDestructor,o=e.fields,a=o.map(function(s){return s.getterReturnType}).concat(o.map(function(s){return s.setterArgumentType}));L([i],a,function(s){var A={};return o.forEach(function(c,u){var d=c.fieldName,h=s[u],m=c.getter,I=c.getterContext,y=s[u+o.length],v=c.setter,N=c.setterContext;A[d]={read:function(H){return h.fromWireType(m(I,H))},write:function(H,R){var D=[];v(N,H,y.toWireType(D,R)),ur(D)}}}),[{name:e.name,fromWireType:function(c){var u={};for(var d in A)u[d]=A[d].read(c);return r(c),u},toWireType:function(c,u){for(var d in A)if(!(d in u))throw new TypeError('Missing field: "'+d+'"');var h=t();for(d in A)A[d].write(h,u[d]);return c!==null&&c.push(r,h),h},argPackAdvance:8,readValueFromPointer:_,destructorFunction:r}]})}function j(i,e,t,r,o){}function Z(i){switch(i){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+i)}}function q(i,e,t){if(t=t||{},!("argPackAdvance"in e))throw new TypeError("registerType registeredInstance requires argPackAdvance");var r=e.name;if(i||ae('type "'+r+'" must have a positive integer typeid pointer'),Wt.hasOwnProperty(i)){if(t.ignoreDuplicateRegistrations)return;ae("Cannot register type '"+r+"' twice")}if(Wt[i]=e,delete C[i],g.hasOwnProperty(i)){var o=g[i];delete g[i],o.forEach(function(a){a()})}}function J(i,e,t,r,o){var a=Z(t);e=ke(e),q(i,{name:e,fromWireType:function(s){return!!s},toWireType:function(s,A){return A?r:o},argPackAdvance:8,readValueFromPointer:function(s){var A;if(t===1)A=Ne;else if(t===2)A=De;else if(t===4)A=T;else throw new TypeError("Unknown boolean type size: "+e);return this.fromWireType(A[s>>a])},destructorFunction:null})}function Ie(i){if(!(this instanceof Ue)||!(i instanceof Ue))return!1;for(var e=this.$$.ptrType.registeredClass,t=this.$$.ptr,r=i.$$.ptrType.registeredClass,o=i.$$.ptr;e.baseClass;)t=e.upcast(t),e=e.baseClass;for(;r.baseClass;)o=r.upcast(o),r=r.baseClass;return e===r&&t===o}function Oe(i){return{count:i.count,deleteScheduled:i.deleteScheduled,preservePointerOnDelete:i.preservePointerOnDelete,ptr:i.ptr,ptrType:i.ptrType,smartPtr:i.smartPtr,smartPtrType:i.smartPtrType}}function we(i){function e(t){return t.$$.ptrType.registeredClass.name}ae(e(i)+" instance already deleted")}function Le(){if(this.$$.ptr||we(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var i=$t(Object.create(Object.getPrototypeOf(this),{$$:{value:Oe(this.$$)}}));return i.$$.count.value+=1,i.$$.deleteScheduled=!1,i}function gt(){this.$$.ptr||we(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ae("Object already scheduled for deletion"),cn(this),Tt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function st(){return!this.$$.ptr}function Je(){return this.$$.ptr||we(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ae("Object already scheduled for deletion"),Lr.push(this),Lr.length===1&&Mt&&Mt(Ar),this.$$.deleteScheduled=!0,this}function lr(){Ue.prototype.isAliasOf=Ie,Ue.prototype.clone=Le,Ue.prototype.delete=gt,Ue.prototype.isDeleted=st,Ue.prototype.deleteLater=Je}function Ue(){}var Ct={};function Et(i,e,t){if(i[e].overloadTable===void 0){var r=i[e];i[e]=function(){return i[e].overloadTable.hasOwnProperty(arguments.length)||ae("Function '"+t+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+i[e].overloadTable+")!"),i[e].overloadTable[arguments.length].apply(this,arguments)},i[e].overloadTable=[],i[e].overloadTable[r.argCount]=r}}function dr(i,e,t){n.hasOwnProperty(i)?((t===void 0||n[i].overloadTable!==void 0&&n[i].overloadTable[t]!==void 0)&&ae("Cannot register public name '"+i+"' twice"),Et(n,i,i),n.hasOwnProperty(t)&&ae("Cannot register multiple overloads of a function with the same number of arguments ("+t+")!"),n[i].overloadTable[t]=e):(n[i]=e,t!==void 0&&(n[i].numArguments=t))}function Qn(i,e,t,r,o,a,s,A){this.name=i,this.constructor=e,this.instancePrototype=t,this.rawDestructor=r,this.baseClass=o,this.getActualType=a,this.upcast=s,this.downcast=A,this.pureVirtualFunctions=[]}function Yr(i,e,t){for(;e!==t;)e.upcast||ae("Expected null or instance of "+t.name+", got an instance of "+e.name),i=e.upcast(i),e=e.baseClass;return i}function Br(i,e){if(e===null)return this.isReference&&ae("null is not a valid "+this.name),0;e.$$||ae('Cannot pass "'+ln(e)+'" as a '+this.name),e.$$.ptr||ae("Cannot pass deleted object as a pointer of type "+this.name);var t=e.$$.ptrType.registeredClass,r=Yr(e.$$.ptr,t,this.registeredClass);return r}function Zn(i,e){var t;if(e===null)return this.isReference&&ae("null is not a valid "+this.name),this.isSmartPointer?(t=this.rawConstructor(),i!==null&&i.push(this.rawDestructor,t),t):0;e.$$||ae('Cannot pass "'+ln(e)+'" as a '+this.name),e.$$.ptr||ae("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&e.$$.ptrType.isConst&&ae("Cannot convert argument of type "+(e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name)+" to parameter type "+this.name);var r=e.$$.ptrType.registeredClass;if(t=Yr(e.$$.ptr,r,this.registeredClass),this.isSmartPointer)switch(e.$$.smartPtr===void 0&&ae("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:e.$$.smartPtrType===this?t=e.$$.smartPtr:ae("Cannot convert argument of type "+(e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:t=e.$$.smartPtr;break;case 2:if(e.$$.smartPtrType===this)t=e.$$.smartPtr;else{var o=e.clone();t=this.rawShare(t,sn(function(){o.delete()})),i!==null&&i.push(this.rawDestructor,t)}break;default:ae("Unsupporting sharing policy")}return t}function No(i,e){if(e===null)return this.isReference&&ae("null is not a valid "+this.name),0;e.$$||ae('Cannot pass "'+ln(e)+'" as a '+this.name),e.$$.ptr||ae("Cannot pass deleted object as a pointer of type "+this.name),e.$$.ptrType.isConst&&ae("Cannot convert argument of type "+e.$$.ptrType.name+" to parameter type "+this.name);var t=e.$$.ptrType.registeredClass,r=Yr(e.$$.ptr,t,this.registeredClass);return r}function xo(i){return this.rawGetPointee&&(i=this.rawGetPointee(i)),i}function jo(i){this.rawDestructor&&this.rawDestructor(i)}function Lo(i){i!==null&&i.delete()}function Ao(i,e,t){if(e===t)return i;if(t.baseClass===void 0)return null;var r=Ao(i,e,t.baseClass);return r===null?null:t.downcast(r)}function co(i,e){return e=Ae(i,e),Ft[e]}function qn(i,e){(!e.ptrType||!e.ptr)&&F("makeClassHandle requires ptr and ptrType");var t=!!e.smartPtrType,r=!!e.smartPtr;return t!==r&&F("Both smartPtrType and smartPtr must be specified"),e.count={value:1},$t(Object.create(i,{$$:{value:e}}))}function ei(i){var e=this.getPointee(i);if(!e)return this.destructor(i),null;var t=co(this.registeredClass,e);if(t!==void 0){if(t.$$.count.value===0)return t.$$.ptr=e,t.$$.smartPtr=i,t.clone();var r=t.clone();return this.destructor(i),r}function o(){return this.isSmartPointer?qn(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:e,smartPtrType:this,smartPtr:i}):qn(this.registeredClass.instancePrototype,{ptrType:this,ptr:i})}var a=this.registeredClass.getActualType(e),s=Ct[a];if(!s)return o.call(this);var A;this.isConst?A=s.constPointerType:A=s.pointerType;var c=Ao(e,this.registeredClass,A.registeredClass);return c===null?o.call(this):this.isSmartPointer?qn(A.registeredClass.instancePrototype,{ptrType:A,ptr:c,smartPtrType:this,smartPtr:i}):qn(A.registeredClass.instancePrototype,{ptrType:A,ptr:c})}function Ho(){fr.prototype.getPointee=xo,fr.prototype.destructor=jo,fr.prototype.argPackAdvance=8,fr.prototype.readValueFromPointer=_,fr.prototype.deleteObject=Lo,fr.prototype.fromWireType=ei}function fr(i,e,t,r,o,a,s,A,c,u,d){this.name=i,this.registeredClass=e,this.isReference=t,this.isConst=r,this.isSmartPointer=o,this.pointeeType=a,this.sharingPolicy=s,this.rawGetPointee=A,this.rawConstructor=c,this.rawShare=u,this.rawDestructor=d,!o&&e.baseClass===void 0?r?(this.toWireType=Br,this.destructorFunction=null):(this.toWireType=No,this.destructorFunction=null):this.toWireType=Zn}function Kt(i,e,t){n.hasOwnProperty(i)||F("Replacing nonexistant public symbol"),n[i].overloadTable!==void 0&&t!==void 0?n[i].overloadTable[t]=e:(n[i]=e,n[i].argCount=t)}function uo(i,e,t){W("dynCall_"+i in n,"bad function pointer type - no table for sig '"+i+"'"),t&&t.length?W(t.length===i.substring(1).replace(/j/g,"--").length):W(i.length==1);var r=n["dynCall_"+i];return t&&t.length?r.apply(null,[e].concat(t)):r.call(null,e)}function Go(i,e,t){return i.includes("j")?uo(i,e,t):(W(K.get(e),"missing table entry in dynCall: "+e),K.get(e).apply(null,t))}function Yo(i,e){W(i.includes("j"),"getDynCaller should only be called with i64 sigs");var t=[];return function(){t.length=arguments.length;for(var r=0;r<arguments.length;r++)t[r]=arguments[r];return Go(i,e,t)}}function pt(i,e){i=ke(i);function t(){return i.includes("j")?Yo(i,e):K.get(e)}var r=t();return typeof r!="function"&&ae("unknown function pointer with signature "+i+": "+e),r}var At=void 0;function Tr(i,e){var t=[],r={};function o(a){if(!r[a]&&!Wt[a]){if(C[a]){C[a].forEach(o);return}t.push(a),r[a]=!0}}throw e.forEach(o),new At(i+": "+t.map(Vt).join([", "]))}function Xr(i,e,t,r,o,a,s,A,c,u,d,h,m){d=ke(d),a=pt(o,a),A&&(A=pt(s,A)),u&&(u=pt(c,u)),m=pt(h,m);var I=an(d);dr(I,function(){Tr("Cannot construct "+d+" due to unbound types",[r])}),L([i,e,t],r?[r]:[],function(y){y=y[0];var v,N;r?(v=y.registeredClass,N=v.instancePrototype):N=Ue.prototype;var H=or(I,function(){if(Object.getPrototypeOf(this)!==R)throw new rt("Use 'new' to construct "+d);if(D.constructor_body===void 0)throw new rt(d+" has no accessible constructor");var pe=D.constructor_body[arguments.length];if(pe===void 0)throw new rt("Tried to invoke ctor of "+d+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(D.constructor_body).toString()+") parameters instead!");return pe.apply(this,arguments)}),R=Object.create(N,{constructor:{value:H}});H.prototype=R;var D=new Qn(d,H,R,m,v,a,A,u),k=new fr(d,D,!0,!1,!1),$=new fr(d+"*",D,!1,!1,!1),Y=new fr(d+" const*",D,!1,!0,!1);return Ct[i]={pointerType:$,constPointerType:Y},Kt(I,H),[k,$,Y]})}function lo(i,e){if(!(i instanceof Function))throw new TypeError("new_ called with constructor type "+typeof i+" which is not a function");var t=or(i.name||"unknownFunctionName",function(){});t.prototype=i.prototype;var r=new t,o=i.apply(r,e);return o instanceof Object?o:r}function Pn(i,e,t,r,o){var a=e.length;a<2&&ae("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var s=e[1]!==null&&t!==null,A=!1,c=1;c<e.length;++c)if(e[c]!==null&&e[c].destructorFunction===void 0){A=!0;break}for(var u=e[0].name!=="void",d="",h="",c=0;c<a-2;++c)d+=(c!==0?", ":"")+"arg"+c,h+=(c!==0?", ":"")+"arg"+c+"Wired";var m="return function "+an(i)+"("+d+`) {
38
+ if (arguments.length !== `+(a-2)+`) {
39
+ throwBindingError('function `+i+" called with ' + arguments.length + ' arguments, expected "+(a-2)+` args!');
40
+ }
41
+ `;A&&(m+=`var destructors = [];
42
+ `);var I=A?"destructors":"null",y=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],v=[ae,r,o,ur,e[0],e[1]];s&&(m+="var thisWired = classParam.toWireType("+I+`, this);
43
+ `);for(var c=0;c<a-2;++c)m+="var arg"+c+"Wired = argType"+c+".toWireType("+I+", arg"+c+"); // "+e[c+2].name+`
44
+ `,y.push("argType"+c),v.push(e[c+2]);if(s&&(h="thisWired"+(h.length>0?", ":"")+h),m+=(u?"var rv = ":"")+"invoker(fn"+(h.length>0?", ":"")+h+`);
45
+ `,A)m+=`runDestructors(destructors);
46
+ `;else for(var c=s?1:2;c<e.length;++c){var N=c===1?"thisWired":"arg"+(c-2)+"Wired";e[c].destructorFunction!==null&&(m+=N+"_dtor("+N+"); // "+e[c].name+`
47
+ `,y.push(N+"_dtor"),v.push(e[c].destructorFunction))}u&&(m+=`var ret = retType.fromWireType(rv);
48
+ return ret;
49
+ `),m+=`}
50
+ `,y.push(m);var H=lo(Function,y).apply(null,v);return H}function Wr(i,e){for(var t=[],r=0;r<i;r++)t.push(T[(e>>2)+r]);return t}function ti(i,e,t,r,o,a,s){var A=Wr(t,r);e=ke(e),a=pt(o,a),L([],[i],function(c){c=c[0];var u=c.name+"."+e;function d(){Tr("Cannot call "+u+" due to unbound types",A)}e.startsWith("@@")&&(e=Symbol[e.substring(2)]);var h=c.registeredClass.constructor;return h[e]===void 0?(d.argCount=t-1,h[e]=d):(Et(h,e,u),h[e].overloadTable[t-1]=d),L([],A,function(m){var I=[m[0],null].concat(m.slice(1)),y=Pn(u,I,null,a,s);return h[e].overloadTable===void 0?(y.argCount=t-1,h[e]=y):h[e].overloadTable[t-1]=y,[]}),[]})}function Xo(i,e,t,r,o,a){W(e>0);var s=Wr(e,t);o=pt(r,o),L([],[i],function(A){A=A[0];var c="constructor "+A.name;if(A.registeredClass.constructor_body===void 0&&(A.registeredClass.constructor_body=[]),A.registeredClass.constructor_body[e-1]!==void 0)throw new rt("Cannot register multiple constructors with identical number of parameters ("+(e-1)+") for class '"+A.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return A.registeredClass.constructor_body[e-1]=function(){Tr("Cannot construct "+A.name+" due to unbound types",s)},L([],s,function(u){return u.splice(1,0,null),A.registeredClass.constructor_body[e-1]=Pn(c,u,null,o,a),[]}),[]})}function Wo(i,e,t,r,o,a,s,A){var c=Wr(t,r);e=ke(e),a=pt(o,a),L([],[i],function(u){u=u[0];var d=u.name+"."+e;e.startsWith("@@")&&(e=Symbol[e.substring(2)]),A&&u.registeredClass.pureVirtualFunctions.push(e);function h(){Tr("Cannot call "+d+" due to unbound types",c)}var m=u.registeredClass.instancePrototype,I=m[e];return I===void 0||I.overloadTable===void 0&&I.className!==u.name&&I.argCount===t-2?(h.argCount=t-2,h.className=u.name,m[e]=h):(Et(m,e,d),m[e].overloadTable[t-2]=h),L([],c,function(y){var v=Pn(d,y,u,a,s);return m[e].overloadTable===void 0?(v.argCount=t-2,m[e]=v):m[e].overloadTable[t-2]=v,[]}),[]})}function fo(i,e,t){return i instanceof Object||ae(t+' with invalid "this": '+i),i instanceof e.registeredClass.constructor||ae(t+' incompatible with "this" of type '+i.constructor.name),i.$$.ptr||ae("cannot call emscripten binding method "+t+" on deleted object"),Yr(i.$$.ptr,i.$$.ptrType.registeredClass,e.registeredClass)}function go(i,e,t,r,o,a,s,A,c,u){e=ke(e),o=pt(r,o),L([],[i],function(d){d=d[0];var h=d.name+"."+e,m={get:function(){Tr("Cannot access "+h+" due to unbound types",[t,s])},enumerable:!0,configurable:!0};return c?m.set=function(){Tr("Cannot access "+h+" due to unbound types",[t,s])}:m.set=function(I){ae(h+" is a read-only property")},Object.defineProperty(d.registeredClass.instancePrototype,e,m),L([],c?[t,s]:[t],function(I){var y=I[0],v={get:function(){var H=fo(this,d,h+" getter");return y.fromWireType(o(a,H))},enumerable:!0};if(c){c=pt(A,c);var N=I[1];v.set=function(H){var R=fo(this,d,h+" setter"),D=[];c(u,R,N.toWireType(D,H)),ur(D)}}return Object.defineProperty(d.registeredClass.instancePrototype,e,v),[]}),[]})}function Eo(i){i>4&&--tt[i].refcount===0&&(tt[i]=void 0,ar.push(i))}function po(i,e){e=ke(e),q(i,{name:e,fromWireType:function(t){var r=tt[t].value;return Eo(t),r},toWireType:function(t,r){return sn(r)},argPackAdvance:8,readValueFromPointer:_,destructorFunction:null})}function ln(i){if(i===null)return"null";var e=typeof i;return e==="object"||e==="array"||e==="function"?i.toString():""+i}function dn(i,e){switch(e){case 2:return function(t){return this.fromWireType(b[t>>2])};case 3:return function(t){return this.fromWireType(ve[t>>3])};default:throw new TypeError("Unknown float type: "+i)}}function Vo(i,e,t){var r=Z(t);e=ke(e),q(i,{name:e,fromWireType:function(o){return o},toWireType:function(o,a){if(typeof a!="number"&&typeof a!="boolean")throw new TypeError('Cannot convert "'+ln(a)+'" to '+this.name);return a},argPackAdvance:8,readValueFromPointer:dn(e,r),destructorFunction:null})}function zo(i,e,t,r,o,a){var s=Wr(e,t);i=ke(i),o=pt(r,o),dr(i,function(){Tr("Cannot call "+i+" due to unbound types",s)},e-1),L([],s,function(A){var c=[A[0],null].concat(A.slice(1));return Kt(i,Pn(i,c,null,o,a),e-1),[]})}function $o(i,e,t){switch(e){case 0:return t?function(o){return Ne[o]}:function(o){return Re[o]};case 1:return t?function(o){return De[o>>1]}:function(o){return Te[o>>1]};case 2:return t?function(o){return T[o>>2]}:function(o){return be[o>>2]};default:throw new TypeError("Unknown integer type: "+i)}}function Ko(i,e,t,r,o){e=ke(e),o===-1&&(o=4294967295);var a=Z(t),s=function(u){return u};if(r===0){var A=32-8*t;s=function(u){return u<<A>>>A}}var c=e.includes("unsigned");q(i,{name:e,fromWireType:s,toWireType:function(u,d){if(typeof d!="number"&&typeof d!="boolean")throw new TypeError('Cannot convert "'+ln(d)+'" to '+this.name);if(d<r||d>o)throw new TypeError('Passing a number "'+ln(d)+'" from JS side to C/C++ side to an argument of type "'+e+'", which is outside the valid range ['+r+", "+o+"]!");return c?d>>>0:d|0},argPackAdvance:8,readValueFromPointer:$o(e,a,r!==0),destructorFunction:null})}function Jo(i,e,t){var r=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],o=r[e];function a(s){s=s>>2;var A=be,c=A[s],u=A[s+1];return new o(Sr,u,c)}t=ke(t),q(i,{name:t,fromWireType:a,argPackAdvance:8,readValueFromPointer:a},{ignoreDuplicateRegistrations:!0})}function Zo(i,e){e=ke(e);var t=e==="std::string";q(i,{name:e,fromWireType:function(r){var o=be[r>>2],a;if(t)for(var s=r+4,A=0;A<=o;++A){var c=r+4+A;if(A==o||Re[c]==0){var u=c-s,d=it(s,u);a===void 0?a=d:(a+=String.fromCharCode(0),a+=d),s=c+1}}else{for(var h=new Array(o),A=0;A<o;++A)h[A]=String.fromCharCode(Re[r+4+A]);a=h.join("")}return pr(r),a},toWireType:function(r,o){o instanceof ArrayBuffer&&(o=new Uint8Array(o));var a,s=typeof o=="string";s||o instanceof Uint8Array||o instanceof Uint8ClampedArray||o instanceof Int8Array||ae("Cannot pass non-string to std::string"),t&&s?a=function(){return Ke(o)}:a=function(){return o.length};var A=a(),c=nt(4+A+1);if(be[c>>2]=A,t&&s)$e(o,c+4,A+1);else if(s)for(var u=0;u<A;++u){var d=o.charCodeAt(u);d>255&&(pr(c),ae("String has UTF-16 code units that do not fit in 8 bits")),Re[c+4+u]=d}else for(var u=0;u<A;++u)Re[c+4+u]=o[u];return r!==null&&r.push(pr,c),c},argPackAdvance:8,readValueFromPointer:_,destructorFunction:function(r){pr(r)}})}function qo(i,e,t){t=ke(t);var r,o,a,s,A;e===2?(r=wt,o=xn,s=wi,a=function(){return Te},A=1):e===4&&(r=_n,o=jn,s=Di,a=function(){return be},A=2),q(i,{name:t,fromWireType:function(c){for(var u=be[c>>2],d=a(),h,m=c+4,I=0;I<=u;++I){var y=c+4+I*e;if(I==u||d[y>>A]==0){var v=y-m,N=r(m,v);h===void 0?h=N:(h+=String.fromCharCode(0),h+=N),m=y+e}}return pr(c),h},toWireType:function(c,u){typeof u!="string"&&ae("Cannot pass non-string to C++ string type "+t);var d=s(u),h=nt(4+d+e);return be[h>>2]=d>>A,o(u,h+4,d+e),c!==null&&c.push(pr,h),h},argPackAdvance:8,readValueFromPointer:_,destructorFunction:function(c){pr(c)}})}function ea(i,e,t,r,o,a){cr[i]={name:ke(e),rawConstructor:pt(t,r),rawDestructor:pt(o,a),fields:[]}}function ta(i,e,t,r,o,a,s,A,c,u){cr[i].fields.push({fieldName:ke(e),getterReturnType:t,getter:pt(r,o),getterContext:a,setterArgumentType:s,setter:pt(A,c),setterContext:u})}function ra(i,e){e=ke(e),q(i,{isVoid:!0,name:e,argPackAdvance:0,fromWireType:function(){},toWireType:function(t,r){}})}var na={};function ia(i){var e=na[i];return e===void 0?ke(i):e}var Vi=[];function zi(i,e,t,r){i=Vi[i],e=Jn(e),t=ia(t),i(e,t,null,r)}function oa(i){var e=Vi.length;return Vi.push(i),e}function aa(i,e){for(var t=new Array(i),r=0;r<i;++r)t[r]=An(T[(e>>2)+r],"parameter "+r);return t}function sa(i,e){for(var t=aa(i,e),r=t[0],o=r.name+"_$"+t.slice(1).map(function(I){return I.name}).join("_")+"$",a=["retType"],s=[r],A="",c=0;c<i-1;++c)A+=(c!==0?", ":"")+"arg"+c,a.push("argType"+c),s.push(t[1+c]);for(var u=an("methodCaller_"+o),d="return function "+u+`(handle, name, destructors, args) {
51
+ `,h=0,c=0;c<i-1;++c)d+=" var arg"+c+" = argType"+c+".readValueFromPointer(args"+(h?"+"+h:"")+`);
52
+ `,h+=t[c+1].argPackAdvance;d+=" var rv = handle[name]("+A+`);
53
+ `;for(var c=0;c<i-1;++c)t[c+1].deleteObject&&(d+=" argType"+c+".deleteObject(arg"+c+`);
54
+ `);r.isVoid||(d+=` return retType.toWireType(destructors, rv);
55
+ `),d+=`};
56
+ `,a.push(d);var m=lo(Function,a).apply(null,s);return oa(m)}function Aa(i){i>4&&(tt[i].refcount+=1)}function ca(i,e){i=An(i,"_emval_take_value");var t=i.readValueFromPointer(e);return sn(t)}function ua(){E()}var la=!0;function da(i,e){var t;if(i===0)t=Date.now();else if((i===1||i===4)&&la)t=Ot();else return Wn(28),-1;return T[e>>2]=t/1e3|0,T[e+4>>2]=t%1e3*1e3*1e3|0,0}function fa(i,e){E("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}function ga(i,e){E("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}var ri=[];function ni(i,e){W(Array.isArray(ri)),W(e%16==0),ri.length=0;var t;for(e>>=2;t=Re[i++];){W(t===100||t===102||t===105);var r=t<105;r&&e&1&&e++,ri.push(r?ve[e++>>1]:T[e]),++e}return ri}function Ea(i,e,t){var r=ni(e,t);return bt.hasOwnProperty(i)||E("No EM_ASM constant found at address "+i),bt[i].apply(null,r)}function pa(){return 2147483648}function _a(i,e,t){Re.copyWithin(i,e,e+t)}function ha(i){E("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")}function ma(i){try{return Nt.grow(i-Sr.byteLength+65535>>>16),Ye(Nt.buffer),1}catch(e){fe("emscripten_realloc_buffer: Attempted to grow heap from "+Sr.byteLength+" bytes to "+i+" bytes, but got error: "+e)}}function Ia(i){var e=Re.length;i=i>>>0,W(i>e);var t=2147483648;if(i>t)return fe("Cannot enlarge memory, asked to go up to "+i+" bytes, but the limit is "+t+" bytes!"),!1;for(var r=1;r<=4;r*=2){var o=e*(1+.2/r);o=Math.min(o,i+100663296);var a=Math.min(t,Ln(Math.max(i,o),65536)),s=ma(a);if(s)return!0}return fe("Failed to grow the heap from "+e+" bytes to "+a+" bytes, not enough memory!"),!1}function ii(i){E("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}var gr={};function Vr(i){i.forEach(function(e){var t=ii(e);t&&(gr[t]=e)})}function _o(){var i=new Error().stack.split(`
57
+ `);return i[0]=="Error"&&i.shift(),Vr(i),gr.last_addr=ii(i[2]),gr.last_stack=i,gr.last_addr}function Ca(i,e,t){var r;gr.last_addr==i?r=gr.last_stack:(r=new Error().stack.split(`
58
+ `),r[0]=="Error"&&r.shift(),Vr(r));for(var o=2;r[o]&&ii(r[o])!=i;)++o;for(var a=0;a<t&&r[a+o];++a)T[e+a*4>>2]=ii(r[a+o]);return a}function ya(i){for(var e=Ot();Ot()-e<i;);}function wa(i){var e=i.getExtension("ANGLE_instanced_arrays");if(e)return i.vertexAttribDivisor=function(t,r){e.vertexAttribDivisorANGLE(t,r)},i.drawArraysInstanced=function(t,r,o,a){e.drawArraysInstancedANGLE(t,r,o,a)},i.drawElementsInstanced=function(t,r,o,a,s){e.drawElementsInstancedANGLE(t,r,o,a,s)},1}function Da(i){var e=i.getExtension("OES_vertex_array_object");if(e)return i.createVertexArray=function(){return e.createVertexArrayOES()},i.deleteVertexArray=function(t){e.deleteVertexArrayOES(t)},i.bindVertexArray=function(t){e.bindVertexArrayOES(t)},i.isVertexArray=function(t){return e.isVertexArrayOES(t)},1}function ba(i){var e=i.getExtension("WEBGL_draw_buffers");if(e)return i.drawBuffers=function(t,r){e.drawBuffersWEBGL(t,r)},1}function Oa(i){return!!(i.dibvbi=i.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function Ba(i){return!!(i.mdibvbi=i.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function Ta(i){return!!(i.multiDrawWebgl=i.getExtension("WEBGL_multi_draw"))}var O={counter:1,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function(e){O.lastError||(O.lastError=e)},getNewId:function(i){for(var e=O.counter++,t=i.length;t<e;t++)i[t]=null;return e},MAX_TEMP_BUFFER_SIZE:2097152,numTempVertexBuffersPerSize:64,log2ceilLookup:function(i){return 32-Math.clz32(i===0?0:i-1)},generateTempBuffers:function(i,e){var t=O.log2ceilLookup(O.MAX_TEMP_BUFFER_SIZE);e.tempVertexBufferCounters1=[],e.tempVertexBufferCounters2=[],e.tempVertexBufferCounters1.length=e.tempVertexBufferCounters2.length=t+1,e.tempVertexBuffers1=[],e.tempVertexBuffers2=[],e.tempVertexBuffers1.length=e.tempVertexBuffers2.length=t+1,e.tempIndexBuffers=[],e.tempIndexBuffers.length=t+1;for(var r=0;r<=t;++r){e.tempIndexBuffers[r]=null,e.tempVertexBufferCounters1[r]=e.tempVertexBufferCounters2[r]=0;var o=O.numTempVertexBuffersPerSize;e.tempVertexBuffers1[r]=[],e.tempVertexBuffers2[r]=[];var a=e.tempVertexBuffers1[r],s=e.tempVertexBuffers2[r];a.length=s.length=o;for(var A=0;A<o;++A)a[A]=s[A]=null}if(i){e.tempQuadIndexBuffer=M.createBuffer(),e.GLctx.bindBuffer(34963,e.tempQuadIndexBuffer);for(var c=O.MAX_TEMP_BUFFER_SIZE>>1,u=new Uint16Array(c),r=0,d=0;u[r++]=d,!(r>=c||(u[r++]=d+1,r>=c)||(u[r++]=d+2,r>=c)||(u[r++]=d,r>=c)||(u[r++]=d+2,r>=c)||(u[r++]=d+3,r>=c));)d+=4;e.GLctx.bufferData(34963,u,35044),e.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:function(e){var t=O.log2ceilLookup(e),r=O.currentContext.tempVertexBuffers1[t],o=O.currentContext.tempVertexBufferCounters1[t];O.currentContext.tempVertexBufferCounters1[t]=O.currentContext.tempVertexBufferCounters1[t]+1&O.numTempVertexBuffersPerSize-1;var a=r[o];if(a)return a;var s=M.getParameter(34964);return r[o]=M.createBuffer(),M.bindBuffer(34962,r[o]),M.bufferData(34962,1<<t,35048),M.bindBuffer(34962,s),r[o]},getTempIndexBuffer:function(e){var t=O.log2ceilLookup(e),r=O.currentContext.tempIndexBuffers[t];if(r)return r;var o=M.getParameter(34965);return O.currentContext.tempIndexBuffers[t]=M.createBuffer(),M.bindBuffer(34963,O.currentContext.tempIndexBuffers[t]),M.bufferData(34963,1<<t,35048),M.bindBuffer(34963,o),O.currentContext.tempIndexBuffers[t]},newRenderingFrameStarted:function(){if(O.currentContext){var e=O.currentContext.tempVertexBuffers1;O.currentContext.tempVertexBuffers1=O.currentContext.tempVertexBuffers2,O.currentContext.tempVertexBuffers2=e,e=O.currentContext.tempVertexBufferCounters1,O.currentContext.tempVertexBufferCounters1=O.currentContext.tempVertexBufferCounters2,O.currentContext.tempVertexBufferCounters2=e;for(var t=O.log2ceilLookup(O.MAX_TEMP_BUFFER_SIZE),r=0;r<=t;++r)O.currentContext.tempVertexBufferCounters1[r]=0}},getSource:function(i,e,t,r){for(var o="",a=0;a<e;++a){var s=r?T[r+a*4>>2]:-1;o+=it(T[t+a*4>>2],s<0?void 0:s)}return o},calcBufLength:function(e,t,r,o){if(r>0)return o*r;var a=O.byteSizeByType[t-O.byteSizeByTypeRoot];return e*a*o},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(e){O.resetBufferBinding=!1;for(var t=0;t<O.currentContext.maxVertexAttribs;++t){var r=O.currentContext.clientBuffers[t];if(!(!r.clientside||!r.enabled)){O.resetBufferBinding=!0;var o=O.calcBufLength(r.size,r.type,r.stride,e),a=O.getTempVertexBuffer(o);M.bindBuffer(34962,a),M.bufferSubData(34962,0,Re.subarray(r.ptr,r.ptr+o)),r.vertexAttribPointerAdaptor.call(M,t,r.size,r.type,r.normalized,r.stride,0)}}},postDrawHandleClientVertexAttribBindings:function(){O.resetBufferBinding&&M.bindBuffer(34962,O.buffers[M.currentArrayBufferBinding])},createContext:function(i,e){e.renderViaOffscreenBackBuffer&&(e.preserveDrawingBuffer=!0),i.getContextSafariWebGL2Fixed||(i.getContextSafariWebGL2Fixed=i.getContext,i.getContext=function(o,a){var s=i.getContextSafariWebGL2Fixed(o,a);return o=="webgl"==s instanceof WebGLRenderingContext?s:null});var t=e.majorVersion>1?i.getContext("webgl2",e):i.getContext("webgl",e);if(!t)return 0;var r=O.registerContext(t,e);return r},enableOffscreenFramebufferAttributes:function(i){i.renderViaOffscreenBackBuffer=!0,i.preserveDrawingBuffer=!0},createOffscreenFramebuffer:function(i){var e=i.GLctx,t=e.createFramebuffer();if(e.bindFramebuffer(36160,t),i.defaultFbo=t,i.defaultFboForbidBlitFramebuffer=!1,e.getContextAttributes().antialias)i.defaultFboForbidBlitFramebuffer=!0;else{var r=navigator.userAgent.toLowerCase().match(/firefox\/(\d\d)/);if(r!=null){var o=r[1];i.defaultFboForbidBlitFramebuffer=o<67}}i.defaultColorTarget=e.createTexture(),i.defaultDepthTarget=e.createRenderbuffer(),O.resizeOffscreenFramebuffer(i),e.bindTexture(3553,i.defaultColorTarget),e.texParameteri(3553,10241,9728),e.texParameteri(3553,10240,9728),e.texParameteri(3553,10242,33071),e.texParameteri(3553,10243,33071),e.texImage2D(3553,0,6408,e.canvas.width,e.canvas.height,0,6408,5121,null),e.framebufferTexture2D(36160,36064,3553,i.defaultColorTarget,0),e.bindTexture(3553,null);var a=e.createRenderbuffer();e.bindRenderbuffer(36161,i.defaultDepthTarget),e.renderbufferStorage(36161,33189,e.canvas.width,e.canvas.height),e.framebufferRenderbuffer(36160,36096,36161,i.defaultDepthTarget),e.bindRenderbuffer(36161,null);var s=[-1,-1,-1,1,1,-1,1,1],A=e.createBuffer();e.bindBuffer(34962,A),e.bufferData(34962,new Float32Array(s),35044),e.bindBuffer(34962,null),i.blitVB=A;var c="attribute vec2 pos;varying lowp vec2 tex;void main() { tex = pos * 0.5 + vec2(0.5,0.5); gl_Position = vec4(pos, 0.0, 1.0); }",u=e.createShader(35633);e.shaderSource(u,c),e.compileShader(u);var d="varying lowp vec2 tex;uniform sampler2D sampler;void main() { gl_FragColor = texture2D(sampler, tex); }",h=e.createShader(35632);e.shaderSource(h,d),e.compileShader(h);var m=e.createProgram();e.attachShader(m,u),e.attachShader(m,h),e.linkProgram(m),i.blitProgram=m,i.blitPosLoc=e.getAttribLocation(m,"pos"),e.useProgram(m),e.uniform1i(e.getUniformLocation(m,"sampler"),0),e.useProgram(null),i.defaultVao=void 0,e.createVertexArray&&(i.defaultVao=e.createVertexArray(),e.bindVertexArray(i.defaultVao),e.enableVertexAttribArray(i.blitPosLoc),e.bindVertexArray(null))},resizeOffscreenFramebuffer:function(i){var e=i.GLctx;if(i.defaultColorTarget){var t=e.getParameter(32873);e.bindTexture(3553,i.defaultColorTarget),e.texImage2D(3553,0,6408,e.drawingBufferWidth,e.drawingBufferHeight,0,6408,5121,null),e.bindTexture(3553,t)}if(i.defaultDepthTarget){var r=e.getParameter(36007);e.bindRenderbuffer(36161,i.defaultDepthTarget),e.renderbufferStorage(36161,33189,e.drawingBufferWidth,e.drawingBufferHeight),e.bindRenderbuffer(36161,r)}},blitOffscreenFramebuffer:function(i){var e=i.GLctx,t=e.getParameter(3089);t&&e.disable(3089);var r=e.getParameter(36006);if(e.blitFramebuffer&&!i.defaultFboForbidBlitFramebuffer)e.bindFramebuffer(36008,i.defaultFbo),e.bindFramebuffer(36009,null),e.blitFramebuffer(0,0,e.canvas.width,e.canvas.height,0,0,e.canvas.width,e.canvas.height,16384,9728);else{let $=function(){e.vertexAttribPointer(i.blitPosLoc,2,5126,!1,0,0),e.drawArrays(5,0,4)};var k=$;e.bindFramebuffer(36160,null);var o=e.getParameter(35725);e.useProgram(i.blitProgram);var a=e.getParameter(34964);e.bindBuffer(34962,i.blitVB);var s=e.getParameter(34016);e.activeTexture(33984);var A=e.getParameter(32873);e.bindTexture(3553,i.defaultColorTarget);var c=e.getParameter(3042);c&&e.disable(3042);var u=e.getParameter(2884);u&&e.disable(2884);var d=e.getParameter(2929);d&&e.disable(2929);var h=e.getParameter(2960);if(h&&e.disable(2960),i.defaultVao){var m=e.getParameter(34229);e.bindVertexArray(i.defaultVao),$(),e.bindVertexArray(m)}else{for(var I={buffer:e.getVertexAttrib(i.blitPosLoc,34975),size:e.getVertexAttrib(i.blitPosLoc,34339),stride:e.getVertexAttrib(i.blitPosLoc,34340),type:e.getVertexAttrib(i.blitPosLoc,34341),normalized:e.getVertexAttrib(i.blitPosLoc,34922),pointer:e.getVertexAttribOffset(i.blitPosLoc,34373)},y=e.getParameter(34921),v=[],N=0;N<y;++N){var H=e.getVertexAttrib(N,34338),R=N==i.blitPosLoc;H&&!R&&e.disableVertexAttribArray(N),!H&&R&&e.enableVertexAttribArray(N),v[N]=H}$();for(var N=0;N<y;++N){var H=v[N],D=N==i.blitPosLoc;H&&!D&&e.enableVertexAttribArray(N),!H&&D&&e.disableVertexAttribArray(N)}e.bindBuffer(34962,I.buffer),e.vertexAttribPointer(i.blitPosLoc,I.size,I.type,I.normalized,I.stride,I.offset)}h&&e.enable(2960),d&&e.enable(2929),u&&e.enable(2884),c&&e.enable(3042),e.bindTexture(3553,A),e.activeTexture(s),e.bindBuffer(34962,a),e.useProgram(o)}e.bindFramebuffer(36160,r),t&&e.enable(3089)},registerContext:function(i,e){var t=O.getNewId(O.contexts),r={handle:t,attributes:e,version:e.majorVersion,GLctx:i};i.canvas&&(i.canvas.GLctxObject=r),O.contexts[t]=r,(typeof e.enableExtensionsByDefault=="undefined"||e.enableExtensionsByDefault)&&O.initExtensions(r),r.maxVertexAttribs=r.GLctx.getParameter(34921),r.clientBuffers=[];for(var o=0;o<r.maxVertexAttribs;o++)r.clientBuffers[o]={enabled:!1,clientside:!1,size:0,type:0,normalized:0,stride:0,ptr:0,vertexAttribPointerAdaptor:null};return O.generateTempBuffers(!1,r),e.renderViaOffscreenBackBuffer&&O.createOffscreenFramebuffer(r),t},makeContextCurrent:function(i){return O.currentContext=O.contexts[i],n.ctx=M=O.currentContext&&O.currentContext.GLctx,!(i&&!M)},getContext:function(i){return O.contexts[i]},deleteContext:function(i){O.currentContext===O.contexts[i]&&(O.currentContext=null),typeof w=="object"&&w.removeAllHandlersOnTarget(O.contexts[i].GLctx.canvas),O.contexts[i]&&O.contexts[i].GLctx.canvas&&(O.contexts[i].GLctx.canvas.GLctxObject=void 0),O.contexts[i]=null},initExtensions:function(i){if(i||(i=O.currentContext),!i.initExtensionsDone){i.initExtensionsDone=!0;var e=i.GLctx;wa(e),Da(e),ba(e),Oa(e),Ba(e),i.version>=2&&(e.disjointTimerQueryExt=e.getExtension("EXT_disjoint_timer_query_webgl2")),(i.version<2||!e.disjointTimerQueryExt)&&(e.disjointTimerQueryExt=e.getExtension("EXT_disjoint_timer_query")),Ta(e);var t=e.getSupportedExtensions()||[];t.forEach(function(r){!r.includes("lose_context")&&!r.includes("debug")&&e.getExtension(r)})}}},w={inEventHandler:0,removeAllEventListeners:function(){for(var i=w.eventHandlers.length-1;i>=0;--i)w._removeHandler(i);w.eventHandlers=[],w.deferredCalls=[]},registerRemoveEventListeners:function(){w.removeEventListenersRegistered||(kr.push(w.removeAllEventListeners),w.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(i,e,t){function r(s,A){if(s.length!=A.length)return!1;for(var c in s)if(s[c]!=A[c])return!1;return!0}for(var o in w.deferredCalls){var a=w.deferredCalls[o];if(a.targetFunction==i&&r(a.argsList,t))return}w.deferredCalls.push({targetFunction:i,precedence:e,argsList:t}),w.deferredCalls.sort(function(s,A){return s.precedence<A.precedence})},removeDeferredCalls:function(i){for(var e=0;e<w.deferredCalls.length;++e)w.deferredCalls[e].targetFunction==i&&(w.deferredCalls.splice(e,1),--e)},canPerformEventHandlerRequests:function(){return w.inEventHandler&&w.currentEventHandler.allowsDeferredCalls},runDeferredCalls:function(){if(w.canPerformEventHandlerRequests())for(var i=0;i<w.deferredCalls.length;++i){var e=w.deferredCalls[i];w.deferredCalls.splice(i,1),--i,e.targetFunction.apply(null,e.argsList)}},eventHandlers:[],removeAllHandlersOnTarget:function(i,e){for(var t=0;t<w.eventHandlers.length;++t)w.eventHandlers[t].target==i&&(!e||e==w.eventHandlers[t].eventTypeString)&&w._removeHandler(t--)},_removeHandler:function(i){var e=w.eventHandlers[i];e.target.removeEventListener(e.eventTypeString,e.eventListenerFunc,e.useCapture),w.eventHandlers.splice(i,1)},registerOrRemoveHandler:function(i){var e=function(o){++w.inEventHandler,w.currentEventHandler=i,w.runDeferredCalls(),i.handlerFunc(o),w.runDeferredCalls(),--w.inEventHandler};if(i.callbackfunc)i.eventListenerFunc=e,i.target.addEventListener(i.eventTypeString,e,i.useCapture),w.eventHandlers.push(i),w.registerRemoveEventListeners();else for(var t=0;t<w.eventHandlers.length;++t)w.eventHandlers[t].target==i.target&&w.eventHandlers[t].eventTypeString==i.eventTypeString&&w._removeHandler(t--)},getNodeNameForTarget:function(i){return i?i==window?"#window":i==screen?"#screen":i&&i.nodeName?i.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}},de=["default","low-power","high-performance"],ho=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function va(i){Pe("Rules for selecting event targets in HTML5 API are changing: instead of using document.getElementById() that only can refer to elements by their DOM ID, new event target selection mechanism uses the more flexible function document.querySelector() that can look up element names, classes, and complex CSS selectors. Build with -s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1 to change to the new lookup rules. See https://github.com/emscripten-core/emscripten/pull/7977 for more details.");try{return!i||(typeof i=="number"&&(i=ho[i]||it(i)),i==="#window")?window:i==="#document"?document:i==="#screen"?screen:i==="#canvas"?n.canvas:typeof i=="string"?document.getElementById(i):i}catch(e){return null}}function $i(i){return typeof i=="number"&&(i=it(i)),!i||i==="#canvas"?typeof O!="undefined"&&O.offscreenCanvases.canvas?O.offscreenCanvases.canvas:n.canvas:typeof O!="undefined"&&O.offscreenCanvases[i]?O.offscreenCanvases[i]:va(i)}function Ki(i,e){W(e);var t=e>>2,r=T[t+6],o={alpha:!!T[t+0],depth:!!T[t+1],stencil:!!T[t+2],antialias:!!T[t+3],premultipliedAlpha:!!T[t+4],preserveDrawingBuffer:!!T[t+5],powerPreference:de[r],failIfMajorPerformanceCaveat:!!T[t+7],majorVersion:T[t+8],minorVersion:T[t+9],enableExtensionsByDefault:T[t+10],explicitSwapControl:T[t+11],proxyContextToMainThread:T[t+12],renderViaOffscreenBackBuffer:T[t+13]},a=$i(i);if(!a)return 0;if(a.offscreenCanvas&&(a=a.offscreenCanvas),o.explicitSwapControl){var s=a.transferControlToOffscreen||typeof OffscreenCanvas!="undefined"&&a instanceof OffscreenCanvas;if(s||o.renderViaOffscreenBackBuffer||(o.renderViaOffscreenBackBuffer=!0),a.transferControlToOffscreen){if(!a.controlTransferredOffscreen)O.offscreenCanvases[a.id]={canvas:a.transferControlToOffscreen(),canvasSharedPtr:nt(12),id:a.id},a.controlTransferredOffscreen=!0;else if(!O.offscreenCanvases[a.id])return 0;a=O.offscreenCanvases[a.id]}}var A=O.createContext(a,o);return A}function Qa(i,e){return Ki(i,e)}function Pa(){return O.currentContext?O.currentContext.handle:0}function mo(){return Pa()}n._emscripten_webgl_get_current_context=mo;function Ji(i){var e=O.makeContextCurrent(i);return e?0:-5}n._emscripten_webgl_make_context_current=Ji;function Io(i){O.currentContext==i&&(O.currentContext=0),O.deleteContext(i)}function Ra(i,e){if(!e)return-5;if(i=O.contexts[i],!i)return-3;var t=i.GLctx;if(!t)return-3;t=t.getContextAttributes(),T[e>>2]=t.alpha,T[e+4>>2]=t.depth,T[e+8>>2]=t.stencil,T[e+12>>2]=t.antialias,T[e+16>>2]=t.premultipliedAlpha,T[e+20>>2]=t.preserveDrawingBuffer;var r=t.powerPreference&&de.indexOf(t.powerPreference);return T[e+24>>2]=r,T[e+28>>2]=t.failIfMajorPerformanceCaveat,T[e+32>>2]=i.version,T[e+36>>2]=0,T[e+40>>2]=i.attributes.enableExtensionsByDefault,0}function Sa(i){W(i);for(var e=i>>2,t=0;t<14;++t)T[e+t]=0;T[e+0]=T[e+1]=T[e+3]=T[e+4]=T[e+8]=T[e+10]=1}var Zi={};function qi(){return ct||"./this.program"}function Rn(){if(!Rn.strings){var i=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:i,_:qi()};for(var t in Zi)Zi[t]===void 0?delete e[t]:e[t]=Zi[t];var r=[];for(var t in e)r.push(t+"="+e[t]);Rn.strings=r}return Rn.strings}function Sn(i,e){var t=0;return Rn().forEach(function(r,o){var a=e+t;T[i+o*4>>2]=a,mn(r,a),t+=r.length+1}),0}function Ma(i,e){var t=Rn();T[i>>2]=t.length;var r=0;return t.forEach(function(o){r+=o.length+1}),T[e>>2]=r,0}function Fa(i){try{var e=l.getStreamFromFD(i);return f.close(e),0}catch(t){return(typeof f=="undefined"||!(t instanceof f.ErrnoError))&&E(t),t.errno}}function ka(i,e,t,r){try{var o=l.getStreamFromFD(i),a=l.doReadv(o,e,t);return T[r>>2]=a,0}catch(s){return(typeof f=="undefined"||!(s instanceof f.ErrnoError))&&E(s),s.errno}}function Ua(i,e,t,r,o){try{var a=l.getStreamFromFD(i),s=4294967296,A=t*s+(e>>>0),c=9007199254740992;return A<=-c||A>=c?-61:(f.llseek(a,A,r),Ce=[a.position>>>0,(Ge=a.position,+Math.abs(Ge)>=1?Ge>0?(Math.min(+Math.floor(Ge/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Ge-+(~~Ge>>>0))/4294967296)>>>0:0)],T[o>>2]=Ce[0],T[o+4>>2]=Ce[1],a.getdents&&A===0&&r===0&&(a.getdents=null),0)}catch(u){return(typeof f=="undefined"||!(u instanceof f.ErrnoError))&&E(u),u.errno}}function Na(i,e,t,r){try{var o=l.getStreamFromFD(i),a=l.doWritev(o,e,t);return T[r>>2]=a,0}catch(s){return(typeof f=="undefined"||!(s instanceof f.ErrnoError))&&E(s),s.errno}}function xa(){return mr()}function oi(i,e){oi.randomDevice||(oi.randomDevice=me());for(var t=0;t<e;t++)Ne[i+t>>0]=oi.randomDevice();return 0}function ai(i){M.activeTexture(i)}function ja(i,e){M.attachShader(O.programs[i],O.shaders[e])}function La(i,e,t){M.bindAttribLocation(O.programs[i],e,it(t))}function Ha(i,e){i==34962?M.currentArrayBufferBinding=e:i==34963&&(M.currentElementArrayBufferBinding=e),i==35051?M.currentPixelPackBufferBinding=e:i==35052&&(M.currentPixelUnpackBufferBinding=e),M.bindBuffer(i,O.buffers[e])}function Ga(i,e,t){M.bindBufferBase(i,e,O.buffers[t])}function Ya(i,e){M.bindFramebuffer(i,e?O.framebuffers[e]:O.currentContext.defaultFbo)}function Xa(i,e){M.bindTexture(i,O.textures[e])}function Wa(i){M.bindVertexArray(O.vaos[i]);var e=M.getParameter(34965);M.currentElementArrayBufferBinding=e?e.name|0:0}function Va(i,e,t,r){O.currentContext.version>=2?t?M.bufferData(i,Re,r,t,e):M.bufferData(i,e,r):M.bufferData(i,t?Re.subarray(t,t+e):e,r)}function za(i,e){return W(e===(e|0)),(i>>>0)+e*4294967296}function $a(i,e,t,r){return M.clientWaitSync(O.syncs[i],e,za(t,r))}function Ka(i){M.compileShader(O.shaders[i])}function Ja(){var i=O.getNewId(O.programs),e=M.createProgram();return e.name=i,e.maxUniformLength=e.maxAttributeLength=e.maxUniformBlockNameLength=0,e.uniformIdCounter=1,O.programs[i]=e,i}function Za(i){var e=O.getNewId(O.shaders);return O.shaders[e]=M.createShader(i),e}function qa(i,e){for(var t=0;t<i;t++){var r=T[e+t*4>>2],o=O.buffers[r];o&&(M.deleteBuffer(o),o.name=0,O.buffers[r]=null,r==M.currentArrayBufferBinding&&(M.currentArrayBufferBinding=0),r==M.currentElementArrayBufferBinding&&(M.currentElementArrayBufferBinding=0),r==M.currentPixelPackBufferBinding&&(M.currentPixelPackBufferBinding=0),r==M.currentPixelUnpackBufferBinding&&(M.currentPixelUnpackBufferBinding=0))}}function es(i,e){for(var t=0;t<i;++t){var r=T[e+t*4>>2],o=O.framebuffers[r];o&&(M.deleteFramebuffer(o),o.name=0,O.framebuffers[r]=null)}}function ts(i){if(i){var e=O.programs[i];if(!e){O.recordError(1281);return}M.deleteProgram(e),e.name=0,O.programs[i]=null}}function rs(i){if(i){var e=O.shaders[i];if(!e){O.recordError(1281);return}M.deleteShader(e),O.shaders[i]=null}}function ns(i){if(i){var e=O.syncs[i];if(!e){O.recordError(1281);return}M.deleteSync(e),e.name=0,O.syncs[i]=null}}function is(i,e){for(var t=0;t<i;t++){var r=T[e+t*4>>2],o=O.textures[r];o&&(M.deleteTexture(o),o.name=0,O.textures[r]=null)}}function os(i,e){for(var t=0;t<i;t++){var r=T[e+t*4>>2];M.deleteVertexArray(O.vaos[r]),O.vaos[r]=null}}function as(i){M.disable(i)}function ss(i){var e=O.currentContext.clientBuffers[i];e.enabled=!1,M.disableVertexAttribArray(i)}function As(i,e,t){O.preDrawHandleClientVertexAttribBindings(e+t),M.drawArrays(i,e,t),O.postDrawHandleClientVertexAttribBindings()}var Co=[];function yo(i,e){for(var t=Co[i],r=0;r<i;r++)t[r]=T[e+r*4>>2];M.drawBuffers(t)}function cs(i){var e=O.currentContext.clientBuffers[i];e.enabled=!0,M.enableVertexAttribArray(i)}function us(i,e){var t=M.fenceSync(i,e);if(t){var r=O.getNewId(O.syncs);return t.name=r,O.syncs[r]=t,r}else return 0}function ls(){M.finish()}function ds(){M.flush()}function fs(i,e,t,r,o){M.framebufferTexture2D(i,e,t,O.textures[r],o)}function gs(i,e,t,r,o){M.framebufferTextureLayer(i,e,O.textures[t],r,o)}function si(i,e,t,r){for(var o=0;o<i;o++){var a=M[t](),s=a&&O.getNewId(r);a?(a.name=s,r[s]=a):O.recordError(1282),T[e+o*4>>2]=s}}function Ai(i,e){si(i,e,"createBuffer",O.buffers)}function Es(i,e){si(i,e,"createFramebuffer",O.framebuffers)}function ps(i,e){si(i,e,"createTexture",O.textures)}function _s(i,e){si(i,e,"createVertexArray",O.vaos)}function hs(i,e){return M.getAttribLocation(O.programs[i],it(e))}function ms(){var i=M.getError()||O.lastError;return O.lastError=0,i}function Is(i){return be[i>>2]+T[i+4>>2]*4294967296}function Cs(i){return be[i>>2]+be[i+4>>2]*4294967296}function ys(i,e){be[i>>2]=e,be[i+4>>2]=(e-be[i>>2])/4294967296;var t=e>=0?Cs(i):Is(i);t!=e&&Pe("writeI53ToI64() out of range: serialized JS Number "+e+" to Wasm heap as bytes lo=0x"+be[i>>2].toString(16)+", hi=0x"+be[i+4>>2].toString(16)+", which deserializes back to "+t+" instead!")}function ws(i,e,t){if(!e){O.recordError(1281);return}var r=void 0;switch(i){case 36346:r=1;break;case 36344:t!=0&&t!=1&&O.recordError(1280);return;case 34814:case 36345:r=0;break;case 34466:var o=M.getParameter(34467);r=o?o.length:0;break;case 33309:if(O.currentContext.version<2){O.recordError(1282);return}var a=M.getSupportedExtensions()||[];r=2*a.length;break;case 33307:case 33308:if(O.currentContext.version<2){O.recordError(1280);return}r=i==33307?3:0;break}if(r===void 0){var s=M.getParameter(i);switch(typeof s){case"number":r=s;break;case"boolean":r=s?1:0;break;case"string":O.recordError(1280);return;case"object":if(s===null)switch(i){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:{r=0;break}default:{O.recordError(1280);return}}else if(s instanceof Float32Array||s instanceof Uint32Array||s instanceof Int32Array||s instanceof Array){for(var A=0;A<s.length;++A)switch(t){case 0:T[e+A*4>>2]=s[A];break;case 2:b[e+A*4>>2]=s[A];break;case 4:Ne[e+A>>0]=s[A]?1:0;break}return}else try{r=s.name|0}catch(c){O.recordError(1280),fe("GL_INVALID_ENUM in glGet"+t+"v: Unknown object returned from WebGL getParameter("+i+")! (error: "+c+")");return}break;default:O.recordError(1280),fe("GL_INVALID_ENUM in glGet"+t+"v: Native code calling glGet"+t+"v("+i+") and it returns "+s+" of type "+typeof s+"!");return}}switch(t){case 1:ys(e,r);break;case 0:T[e>>2]=r;break;case 2:b[e>>2]=r;break;case 4:Ne[e>>0]=r?1:0;break}}function Ds(i,e){ws(i,e,0)}function ci(i){var e=Ke(i)+1,t=nt(e);return $e(i,t,e),t}function ui(i){var e=O.stringCache[i];if(!e){switch(i){case 7939:var t=M.getSupportedExtensions()||[];t=t.concat(t.map(function(c){return"GL_"+c})),e=ci(t.join(" "));break;case 7936:case 7937:case 37445:case 37446:var r=M.getParameter(i);r||O.recordError(1280),e=r&&ci(r);break;case 7938:var o=M.getParameter(7938);O.currentContext.version>=2?o="OpenGL ES 3.0 ("+o+")":o="OpenGL ES 2.0 ("+o+")",e=ci(o);break;case 35724:var a=M.getParameter(35724),s=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/,A=a.match(s);A!==null&&(A[1].length==3&&(A[1]=A[1]+"0"),a="OpenGL ES GLSL ES "+A[1]+" ("+a+")"),e=ci(a);break;default:O.recordError(1280)}O.stringCache[i]=e}return e}function bs(i,e){return M.getUniformBlockIndex(O.programs[i],it(e))}function Os(i){return parseInt(i)}function wo(i){return i.slice(-1)=="]"&&i.lastIndexOf("[")}function Do(i){var e=i.uniformLocsById,t=i.uniformSizeAndIdsByName,r,o;if(!e)for(i.uniformLocsById=e={},i.uniformArrayNamesById={},r=0;r<M.getProgramParameter(i,35718);++r){var a=M.getActiveUniform(i,r),s=a.name,A=a.size,c=wo(s),u=c>0?s.slice(0,c):s,d=i.uniformIdCounter;for(i.uniformIdCounter+=A,t[u]=[A,d],o=0;o<A;++o)e[d]=o,i.uniformArrayNamesById[d++]=u}}function Bs(i,e){if(e=it(e),i=O.programs[i]){Do(i);var t=i.uniformLocsById,r=0,o=e,a=wo(e);a>0&&(r=Os(e.slice(a+1))>>>0,o=e.slice(0,a));var s=i.uniformSizeAndIdsByName[o];if(s&&r<s[0]&&(r+=s[1],t[r]=t[r]||M.getUniformLocation(i,e)))return r}else O.recordError(1281);return-1}function Ts(i){i=O.programs[i],M.linkProgram(i),i.uniformLocsById=0,i.uniformSizeAndIdsByName={}}function vs(i,e){i==3317&&(O.unpackAlignment=e),M.pixelStorei(i,e)}function Qs(i,e,t,r){function o(A,c){return A+c-1&-c}var a=i*t,s=o(a,r);return e*s}function Ps(i){var e={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return e[i-6402]||1}function Mn(i){return i-=5120,i==0?Ne:i==1?Re:i==2?De:i==4?T:i==6?b:i==5||i==28922||i==28520||i==30779||i==30782?be:Te}function Er(i){return 31-Math.clz32(i.BYTES_PER_ELEMENT)}function zr(i,e,t,r,o,a){var s=Mn(i),A=Er(s),c=1<<A,u=Ps(e)*c,d=Qs(t,r,u,O.unpackAlignment);return s.subarray(o>>A,o+d>>A)}function eo(i,e,t,r,o,a,s){if(O.currentContext.version>=2){if(M.currentPixelPackBufferBinding)M.readPixels(i,e,t,r,o,a,s);else{var A=Mn(a);M.readPixels(i,e,t,r,o,a,A,s>>Er(A))}return}var c=zr(a,o,t,r,s,o);if(!c){O.recordError(1280);return}M.readPixels(i,e,t,r,o,a,c)}function Rs(i,e,t,r){var o=O.getSource(i,e,t,r);M.shaderSource(O.shaders[i],o)}function Ss(i,e,t,r,o,a,s,A,c){if(O.currentContext.version>=2){if(M.currentPixelUnpackBufferBinding)M.texImage2D(i,e,t,r,o,a,s,A,c);else if(c){var u=Mn(A);M.texImage2D(i,e,t,r,o,a,s,A,u,c>>Er(u))}else M.texImage2D(i,e,t,r,o,a,s,A,null);return}M.texImage2D(i,e,t,r,o,a,s,A,c?zr(A,s,r,o,c,t):null)}function Ms(i,e,t){var r=b[t>>2];M.texParameterf(i,e,r)}function Fs(i,e,t){M.texParameteri(i,e,t)}function ks(i,e,t,r,o){M.texStorage2D(i,e,t,r,o)}function Us(i,e,t,r,o,a){M.texStorage3D(i,e,t,r,o,a)}function Ns(i,e,t,r,o,a,s,A,c){if(O.currentContext.version>=2){if(M.currentPixelUnpackBufferBinding)M.texSubImage2D(i,e,t,r,o,a,s,A,c);else if(c){var u=Mn(A);M.texSubImage2D(i,e,t,r,o,a,s,A,u,c>>Er(u))}else M.texSubImage2D(i,e,t,r,o,a,s,A,null);return}var d=null;c&&(d=zr(A,s,o,a,c,0)),M.texSubImage2D(i,e,t,r,o,a,s,A,d)}function xs(i,e,t,r,o,a,s,A,c,u,d){if(M.currentPixelUnpackBufferBinding)M.texSubImage3D(i,e,t,r,o,a,s,A,c,u,d);else if(d){var h=Mn(u);M.texSubImage3D(i,e,t,r,o,a,s,A,c,u,h,d>>Er(h))}else M.texSubImage3D(i,e,t,r,o,a,s,A,c,u,null)}function Jt(i){var e=M.currentProgram;if(e){var t=e.uniformLocsById[i];return typeof t=="number"&&(e.uniformLocsById[i]=t=M.getUniformLocation(e,e.uniformArrayNamesById[i]+(t>0?"["+t+"]":""))),t}else O.recordError(1282)}function Zt(i,e){M.uniform1f(Jt(i),e)}function js(i,e){M.uniform1i(Jt(i),e)}var li=[];function di(i,e,t){if(O.currentContext.version>=2){M.uniform2fv(Jt(i),b,t>>2,e*2);return}if(e<=144)for(var r=li[2*e-1],o=0;o<2*e;o+=2)r[o]=b[t+4*o>>2],r[o+1]=b[t+(4*o+4)>>2];else var r=b.subarray(t>>2,t+e*8>>2);M.uniform2fv(Jt(i),r)}function Ls(i,e,t){if(O.currentContext.version>=2){M.uniform4fv(Jt(i),b,t>>2,e*4);return}if(e<=72){var r=li[4*e-1],o=b;t>>=2;for(var a=0;a<4*e;a+=4){var s=t+a;r[a]=o[s],r[a+1]=o[s+1],r[a+2]=o[s+2],r[a+3]=o[s+3]}}else var r=b.subarray(t>>2,t+e*16>>2);M.uniform4fv(Jt(i),r)}var bo=[];function Oo(i,e,t){if(O.currentContext.version>=2){M.uniform4iv(Jt(i),T,t>>2,e*4);return}if(e<=72)for(var r=bo[4*e-1],o=0;o<4*e;o+=4)r[o]=T[t+4*o>>2],r[o+1]=T[t+(4*o+4)>>2],r[o+2]=T[t+(4*o+8)>>2],r[o+3]=T[t+(4*o+12)>>2];else var r=T.subarray(t>>2,t+e*16>>2);M.uniform4iv(Jt(i),r)}function Hs(i,e,t){i=O.programs[i],M.uniformBlockBinding(i,e,t)}function Gs(i,e,t,r){if(O.currentContext.version>=2){M.uniformMatrix4fv(Jt(i),!!t,b,r>>2,e*16);return}if(e<=18){var o=li[16*e-1],a=b;r>>=2;for(var s=0;s<16*e;s+=16){var A=r+s;o[s]=a[A],o[s+1]=a[A+1],o[s+2]=a[A+2],o[s+3]=a[A+3],o[s+4]=a[A+4],o[s+5]=a[A+5],o[s+6]=a[A+6],o[s+7]=a[A+7],o[s+8]=a[A+8],o[s+9]=a[A+9],o[s+10]=a[A+10],o[s+11]=a[A+11],o[s+12]=a[A+12],o[s+13]=a[A+13],o[s+14]=a[A+14],o[s+15]=a[A+15]}}else var o=b.subarray(r>>2,r+e*64>>2);M.uniformMatrix4fv(Jt(i),!!t,o)}function Ys(i){i=O.programs[i],M.useProgram(i),M.currentProgram=i}function Xs(i,e,t,r,o,a){var s=O.currentContext.clientBuffers[i];if(!M.currentArrayBufferBinding){s.size=e,s.type=t,s.normalized=r,s.stride=o,s.ptr=a,s.clientside=!0,s.vertexAttribPointerAdaptor=function(A,c,u,d,h,m){this.vertexAttribPointer(A,c,u,d,h,m)};return}s.clientside=!1,M.vertexAttribPointer(i,e,t,!!r,o,a)}function Ws(i,e,t,r){M.viewport(i,e,t,r)}function fi(i,e){var t=new Date(T[i>>2]*1e3);T[e>>2]=t.getUTCSeconds(),T[e+4>>2]=t.getUTCMinutes(),T[e+8>>2]=t.getUTCHours(),T[e+12>>2]=t.getUTCDate(),T[e+16>>2]=t.getUTCMonth(),T[e+20>>2]=t.getUTCFullYear()-1900,T[e+24>>2]=t.getUTCDay(),T[e+36>>2]=0,T[e+32>>2]=0;var r=Date.UTC(t.getUTCFullYear(),0,1,0,0,0,0),o=(t.getTime()-r)/(1e3*60*60*24)|0;return T[e+28>>2]=o,fi.GMTString||(fi.GMTString=hn("GMT")),T[e+40>>2]=fi.GMTString,e}function gi(i){return i}function Ei(){if(Ei.called)return;Ei.called=!0;var i=new Date().getFullYear(),e=new Date(i,0,1),t=new Date(i,6,1),r=e.getTimezoneOffset(),o=t.getTimezoneOffset(),a=Math.max(r,o);T[qs()>>2]=a*60,T[Un()>>2]=+(r!=o);function s(h){var m=h.toTimeString().match(/\(([A-Za-z ]+)\)$/);return m?m[1]:"GMT"}var A=s(e),c=s(t),u=hn(A),d=hn(c);o<r?(T[qr()>>2]=u,T[qr()+4>>2]=d):(T[qr()>>2]=d,T[qr()+4>>2]=u)}function pi(i,e){Ei();var t=new Date(T[i>>2]*1e3);T[e>>2]=t.getSeconds(),T[e+4>>2]=t.getMinutes(),T[e+8>>2]=t.getHours(),T[e+12>>2]=t.getDate(),T[e+16>>2]=t.getMonth(),T[e+20>>2]=t.getFullYear()-1900,T[e+24>>2]=t.getDay();var r=new Date(t.getFullYear(),0,1),o=(t.getTime()-r.getTime())/(1e3*60*60*24)|0;T[e+28>>2]=o,T[e+36>>2]=-(t.getTimezoneOffset()*60);var a=new Date(t.getFullYear(),6,1).getTimezoneOffset(),s=r.getTimezoneOffset(),A=(a!=s&&t.getTimezoneOffset()==Math.min(s,a))|0;T[e+32>>2]=A;var c=T[qr()+(A?4:0)>>2];return T[e+40>>2]=c,e}function Vs(i){Ei();var e=new Date(T[i+20>>2]+1900,T[i+16>>2],T[i+12>>2],T[i+8>>2],T[i+4>>2],T[i>>2],0),t=T[i+32>>2],r=e.getTimezoneOffset(),o=new Date(e.getFullYear(),0,1),a=new Date(e.getFullYear(),6,1).getTimezoneOffset(),s=o.getTimezoneOffset(),A=Math.min(s,a);if(t<0)T[i+32>>2]=+(a!=s&&A==r);else if(t>0!=(A==r)){var c=Math.max(s,a),u=t>0?A:c;e.setTime(e.getTime()+(u-r)*6e4)}T[i+24>>2]=e.getDay();var d=(e.getTime()-o.getTime())/(1e3*60*60*24)|0;return T[i+28>>2]=d,T[i>>2]=e.getSeconds(),T[i+4>>2]=e.getMinutes(),T[i+8>>2]=e.getHours(),T[i+12>>2]=e.getDate(),T[i+16>>2]=e.getMonth(),e.getTime()/1e3|0}function zs(i){Ro(i)}function $s(i){ht(i)}function _i(i){return i%4===0&&(i%100!==0||i%400===0)}function fn(i,e){for(var t=0,r=0;r<=e;t+=i[r++]);return t}var gn=[31,29,31,30,31,30,31,31,30,31,30,31],$r=[31,28,31,30,31,30,31,31,30,31,30,31];function Kr(i,e){for(var t=new Date(i.getTime());e>0;){var r=_i(t.getFullYear()),o=t.getMonth(),a=(r?gn:$r)[o];if(e>a-t.getDate())e-=a-t.getDate()+1,t.setDate(1),o<11?t.setMonth(o+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1));else return t.setDate(t.getDate()+e),t}return t}function Fn(i,e,t,r){var o=T[r+40>>2],a={tm_sec:T[r>>2],tm_min:T[r+4>>2],tm_hour:T[r+8>>2],tm_mday:T[r+12>>2],tm_mon:T[r+16>>2],tm_year:T[r+20>>2],tm_wday:T[r+24>>2],tm_yday:T[r+28>>2],tm_isdst:T[r+32>>2],tm_gmtoff:T[r+36>>2],tm_zone:o?it(o):""},s=it(t),A={"%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 c in A)s=s.replace(new RegExp(c,"g"),A[c]);var u=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],d=["January","February","March","April","May","June","July","August","September","October","November","December"];function h(R,D,k){for(var $=typeof R=="number"?R.toString():R||"";$.length<D;)$=k[0]+$;return $}function m(R,D){return h(R,D,"0")}function I(R,D){function k(Y){return Y<0?-1:Y>0?1:0}var $;return($=k(R.getFullYear()-D.getFullYear()))===0&&($=k(R.getMonth()-D.getMonth()))===0&&($=k(R.getDate()-D.getDate())),$}function y(R){switch(R.getDay()){case 0:return new Date(R.getFullYear()-1,11,29);case 1:return R;case 2:return new Date(R.getFullYear(),0,3);case 3:return new Date(R.getFullYear(),0,2);case 4:return new Date(R.getFullYear(),0,1);case 5:return new Date(R.getFullYear()-1,11,31);case 6:return new Date(R.getFullYear()-1,11,30)}}function v(R){var D=Kr(new Date(R.tm_year+1900,0,1),R.tm_yday),k=new Date(D.getFullYear(),0,4),$=new Date(D.getFullYear()+1,0,4),Y=y(k),pe=y($);return I(Y,D)<=0?I(pe,D)<=0?D.getFullYear()+1:D.getFullYear():D.getFullYear()-1}var N={"%a":function(R){return u[R.tm_wday].substring(0,3)},"%A":function(R){return u[R.tm_wday]},"%b":function(R){return d[R.tm_mon].substring(0,3)},"%B":function(R){return d[R.tm_mon]},"%C":function(R){var D=R.tm_year+1900;return m(D/100|0,2)},"%d":function(R){return m(R.tm_mday,2)},"%e":function(R){return h(R.tm_mday,2," ")},"%g":function(R){return v(R).toString().substring(2)},"%G":function(R){return v(R)},"%H":function(R){return m(R.tm_hour,2)},"%I":function(R){var D=R.tm_hour;return D==0?D=12:D>12&&(D-=12),m(D,2)},"%j":function(R){return m(R.tm_mday+fn(_i(R.tm_year+1900)?gn:$r,R.tm_mon-1),3)},"%m":function(R){return m(R.tm_mon+1,2)},"%M":function(R){return m(R.tm_min,2)},"%n":function(){return`
59
+ `},"%p":function(R){return R.tm_hour>=0&&R.tm_hour<12?"AM":"PM"},"%S":function(R){return m(R.tm_sec,2)},"%t":function(){return" "},"%u":function(R){return R.tm_wday||7},"%U":function(R){var D=new Date(R.tm_year+1900,0,1),k=D.getDay()===0?D:Kr(D,7-D.getDay()),$=new Date(R.tm_year+1900,R.tm_mon,R.tm_mday);if(I(k,$)<0){var Y=fn(_i($.getFullYear())?gn:$r,$.getMonth()-1)-31,pe=31-k.getDate(),Me=pe+Y+$.getDate();return m(Math.ceil(Me/7),2)}return I(k,D)===0?"01":"00"},"%V":function(R){var D=new Date(R.tm_year+1900,0,4),k=new Date(R.tm_year+1901,0,4),$=y(D),Y=y(k),pe=Kr(new Date(R.tm_year+1900,0,1),R.tm_yday);if(I(pe,$)<0)return"53";if(I(Y,pe)<=0)return"01";var Me;return $.getFullYear()<R.tm_year+1900?Me=R.tm_yday+32-$.getDate():Me=R.tm_yday+1-$.getDate(),m(Math.ceil(Me/7),2)},"%w":function(R){return R.tm_wday},"%W":function(R){var D=new Date(R.tm_year,0,1),k=D.getDay()===1?D:Kr(D,D.getDay()===0?1:7-D.getDay()+1),$=new Date(R.tm_year+1900,R.tm_mon,R.tm_mday);if(I(k,$)<0){var Y=fn(_i($.getFullYear())?gn:$r,$.getMonth()-1)-31,pe=31-k.getDate(),Me=pe+Y+$.getDate();return m(Math.ceil(Me/7),2)}return I(k,D)===0?"01":"00"},"%y":function(R){return(R.tm_year+1900).toString().substring(2)},"%Y":function(R){return R.tm_year+1900},"%z":function(R){var D=R.tm_gmtoff,k=D>=0;return D=Math.abs(D)/60,D=D/60*100+D%60,(k?"+":"-")+("0000"+D).slice(-4)},"%Z":function(R){return R.tm_zone},"%%":function(){return"%"}};for(var c in N)s.includes(c)&&(s=s.replace(new RegExp(c,"g"),N[c](a)));var H=to(s,!1);return H.length>e?0:(Rr(H,i),H.length-1)}function Bo(i,e,t,r){return Fn(i,e,t,r)}n.requestFullscreen=function(e,t){Q.requestFullscreen(e,t)},n.requestFullScreen=function(){Q.requestFullScreen()},n.requestAnimationFrame=function(e){Q.requestAnimationFrame(e)},n.setCanvasSize=function(e,t,r){Q.setCanvasSize(e,t,r)},n.pauseMainLoop=function(){Q.mainLoop.pause()},n.resumeMainLoop=function(){Q.mainLoop.resume()},n.getUserMedia=function(){Q.getUserMedia()},n.createContext=function(e,t,r,o){return Q.createContext(e,t,r,o)};var To=function(i,e,t,r){i||(i=this),this.parent=i,this.mount=i.mount,this.mounted=null,this.id=f.nextInode++,this.name=e,this.mode=t,this.node_ops={},this.stream_ops={},this.rdev=r},kn=365,Jr=146;Object.defineProperties(To.prototype,{read:{get:function(){return(this.mode&kn)===kn},set:function(i){i?this.mode|=kn:this.mode&=~kn}},write:{get:function(){return(this.mode&Jr)===Jr},set:function(i){i?this.mode|=Jr:this.mode&=~Jr}},isFolder:{get:function(){return f.isDir(this.mode)}},isDevice:{get:function(){return f.isChrdev(this.mode)}}}),f.FSNode=To,f.staticInit(),n.FS_createPath=f.createPath,n.FS_createDataFile=f.createDataFile,n.FS_createPreloadedFile=f.createPreloadedFile,n.FS_createLazyFile=f.createLazyFile,n.FS_createDevice=f.createDevice,n.FS_unlink=f.unlink,Yi(),jr=n.PureVirtualError=sr(Error,"PureVirtualError"),$n(),Wi(),rt=n.BindingError=sr(Error,"BindingError"),B=n.InternalError=sr(Error,"InternalError"),lr(),Ho(),At=n.UnboundTypeError=sr(Error,"UnboundTypeError");for(var M,S=0;S<32;++S)Co.push(new Array(S));for(var yt=new Float32Array(288),S=0;S<288;++S)li[S]=yt.subarray(0,S+1);for(var Ks=new Int32Array(288),S=0;S<288;++S)bo[S]=Ks.subarray(0,S+1);var ec=!0;function to(i,e,t){var r=t>0?t:Ke(i)+1,o=new Array(r),a=Qt(i,o,0,o.length);return e&&(o.length=a),o}var hi=typeof atob=="function"?atob:function(i){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t="",r,o,a,s,A,c,u,d=0;i=i.replace(/[^A-Za-z0-9\+\/\=]/g,"");do s=e.indexOf(i.charAt(d++)),A=e.indexOf(i.charAt(d++)),c=e.indexOf(i.charAt(d++)),u=e.indexOf(i.charAt(d++)),r=s<<2|A>>4,o=(A&15)<<4|c>>2,a=(c&3)<<6|u,t=t+String.fromCharCode(r),c!==64&&(t=t+String.fromCharCode(o)),u!==64&&(t=t+String.fromCharCode(a));while(d<i.length);return t};function tc(i){if(typeof _t=="boolean"&&_t){var e=Buffer.from(i,"base64");return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}try{for(var t=hi(i),r=new Uint8Array(t.length),o=0;o<t.length;++o)r[o]=t.charCodeAt(o);return r}catch(a){throw new Error("Converting base64 string to bytes failed.")}}var Js={HaveOffsetConverter:Ur,__cxa_allocate_exception:Qi,__cxa_atexit:On,__cxa_begin_catch:Bn,__cxa_end_catch:Pi,__cxa_find_matching_catch_2:Tn,__cxa_find_matching_catch_3:Ri,__cxa_free_exception:St,__cxa_rethrow:Xn,__cxa_thread_atexit:Si,__cxa_throw:Mi,__resumeException:Yn,__sys_fcntl64:Se,__sys_ioctl:Ui,__sys_mmap2:xi,__sys_open:ji,__sys_stat64:Li,_embind_create_inheriting_constructor:Gr,_embind_finalize_value_object:X,_embind_register_bigint:j,_embind_register_bool:J,_embind_register_class:Xr,_embind_register_class_class_function:ti,_embind_register_class_constructor:Xo,_embind_register_class_function:Wo,_embind_register_class_property:go,_embind_register_emval:po,_embind_register_float:Vo,_embind_register_function:zo,_embind_register_integer:Ko,_embind_register_memory_view:Jo,_embind_register_std_string:Zo,_embind_register_std_wstring:qo,_embind_register_value_object:ea,_embind_register_value_object_field:ta,_embind_register_void:ra,_emval_call_void_method:zi,_emval_decref:Eo,_emval_get_method_caller:sa,_emval_incref:Aa,_emval_take_value:ca,abort:ua,clock_gettime:da,dlopen:fa,dlsym:ga,emscripten_asm_const_int:Ea,emscripten_get_heap_max:pa,emscripten_memcpy_big:_a,emscripten_pc_get_function:ha,emscripten_resize_heap:Ia,emscripten_stack_snapshot:_o,emscripten_stack_unwind_buffer:Ca,emscripten_thread_sleep:ya,emscripten_webgl_create_context:Qa,emscripten_webgl_destroy_context:Io,emscripten_webgl_get_context_attributes:Ra,emscripten_webgl_get_current_context:mo,emscripten_webgl_init_context_attributes:Sa,emscripten_webgl_make_context_current:Ji,environ_get:Sn,environ_sizes_get:Ma,exit:Ti,fd_close:Fa,fd_read:ka,fd_seek:Ua,fd_write:Na,getTempRet0:xa,getentropy:oi,glActiveTexture:ai,glAttachShader:ja,glBindAttribLocation:La,glBindBuffer:Ha,glBindBufferBase:Ga,glBindFramebuffer:Ya,glBindTexture:Xa,glBindVertexArray:Wa,glBufferData:Va,glClientWaitSync:$a,glCompileShader:Ka,glCreateProgram:Ja,glCreateShader:Za,glDeleteBuffers:qa,glDeleteFramebuffers:es,glDeleteProgram:ts,glDeleteShader:rs,glDeleteSync:ns,glDeleteTextures:is,glDeleteVertexArrays:os,glDisable:as,glDisableVertexAttribArray:ss,glDrawArrays:As,glDrawBuffers:yo,glEnableVertexAttribArray:cs,glFenceSync:us,glFinish:ls,glFlush:ds,glFramebufferTexture2D:fs,glFramebufferTextureLayer:gs,glGenBuffers:Ai,glGenFramebuffers:Es,glGenTextures:ps,glGenVertexArrays:_s,glGetAttribLocation:hs,glGetError:ms,glGetIntegerv:Ds,glGetString:ui,glGetUniformBlockIndex:bs,glGetUniformLocation:Bs,glLinkProgram:Ts,glPixelStorei:vs,glReadPixels:eo,glShaderSource:Rs,glTexImage2D:Ss,glTexParameterfv:Ms,glTexParameteri:Fs,glTexStorage2D:ks,glTexStorage3D:Us,glTexSubImage2D:Ns,glTexSubImage3D:xs,glUniform1f:Zt,glUniform1i:js,glUniform2fv:di,glUniform4fv:Ls,glUniform4iv:Oo,glUniformBlockBinding:Hs,glUniformMatrix4fv:Gs,glUseProgram:Ys,glVertexAttribPointer:Xs,glViewport:Ws,gmtime_r:fi,invoke_diii:CA,invoke_i:OA,invoke_ii:AA,invoke_iii:rA,invoke_iiii:yA,invoke_iiiii:EA,invoke_iiiiii:hA,invoke_iiiiiii:iA,invoke_iiiiiiiddi:VA,invoke_iiiiiiii:IA,invoke_iiiiiiiii:QA,invoke_v:oA,invoke_vdiii:JA,invoke_vi:tA,invoke_vididdii:HA,invoke_vidii:YA,invoke_vii:sA,invoke_viid:sc,invoke_viidi:KA,invoke_viididii:vA,invoke_viii:cA,invoke_viiid:GA,invoke_viiidd:_A,invoke_viiiddi:bA,invoke_viiidi:BA,invoke_viiii:gA,invoke_viiiid:zA,invoke_viiiidi:TA,invoke_viiiidid:$A,invoke_viiiidiidiiiiiii:LA,invoke_viiiifiifiiiiiii:jA,invoke_viiiii:nA,invoke_viiiiid:SA,invoke_viiiiif:UA,invoke_viiiiii:uA,invoke_viiiiiid:MA,invoke_viiiiiif:NA,invoke_viiiiiii:lA,invoke_viiiiiiiddi:WA,invoke_viiiiiiidiiii:kA,invoke_viiiiiiifiiii:xA,invoke_viiiiiiii:dA,invoke_viiiiiiiidd:RA,invoke_viiiiiiiidf:PA,invoke_viiiiiiiii:fA,invoke_viiiiiiiiidd:wA,invoke_viiiiiiiiiddi:DA,invoke_viiiiiiiiii:aA,invoke_viiiiiiiiiiddi:XA,invoke_viiiiiiiiiii:pA,invoke_viiiiiiiiiiii:FA,invoke_viiiiiiiiiiiii:mA,llvm_eh_typeid_for:gi,localtime_r:pi,mktime:Vs,proc_exit:zs,setTempRet0:$s,strftime:Fn,strftime_l:Bo},Zs=wn(),Ic=n.___wasm_call_ctors=ue("__wasm_call_ctors"),pr=n._free=ue("free"),nt=n._malloc=ue("malloc"),Zr=n.___errno_location=ue("__errno_location"),rc=n._fflush=ue("fflush"),nc=n.___getTypeName=ue("__getTypeName"),ic=n.___embind_register_native_and_builtin_types=ue("__embind_register_native_and_builtin_types"),Cc=n._emscripten_main_thread_process_queued_calls=ue("emscripten_main_thread_process_queued_calls"),vo=n._emscripten_stack_get_end=function(){return(vo=n._emscripten_stack_get_end=n.asm.emscripten_stack_get_end).apply(null,arguments)},qr=n.__get_tzname=ue("_get_tzname"),Un=n.__get_daylight=ue("_get_daylight"),qs=n.__get_timezone=ue("_get_timezone"),re=n.stackSave=ue("stackSave"),x=n.stackRestore=ue("stackRestore"),ee=n.stackAlloc=ue("stackAlloc"),ro=n._emscripten_stack_init=function(){return(ro=n._emscripten_stack_init=n.asm.emscripten_stack_init).apply(null,arguments)},Qo=n._emscripten_stack_get_free=function(){return(Qo=n._emscripten_stack_get_free=n.asm.emscripten_stack_get_free).apply(null,arguments)},oc=n._saveSetjmp=ue("saveSetjmp"),ie=n._setThrew=ue("setThrew"),te=n.___cxa_can_catch=ue("__cxa_can_catch"),Po=n.___cxa_is_pointer_type=ue("__cxa_is_pointer_type"),eA=n._memalign=ue("memalign"),ac=n._emscripten_builtin_malloc=ue("emscripten_builtin_malloc"),yc=n._emscripten_builtin_free=ue("emscripten_builtin_free"),wc=n._emscripten_builtin_memalign=ue("emscripten_builtin_memalign"),Dc=n.dynCall_jii=ue("dynCall_jii"),bc=n.dynCall_viji=ue("dynCall_viji"),Oc=n.dynCall_jjj=ue("dynCall_jjj"),Bc=n.dynCall_iiiijj=ue("dynCall_iiiijj"),Tc=n.dynCall_viijj=ue("dynCall_viijj"),vc=n.dynCall_viiijjjj=ue("dynCall_viiijjjj"),Qc=n.dynCall_ji=ue("dynCall_ji"),Pc=n.dynCall_vij=ue("dynCall_vij"),Rc=n.dynCall_viijii=ue("dynCall_viijii"),Sc=n.dynCall_vj=ue("dynCall_vj"),Mc=n.dynCall_viij=ue("dynCall_viij"),Fc=n.dynCall_viiiiij=ue("dynCall_viiiiij"),kc=n.dynCall_iijjiiii=ue("dynCall_iijjiiii"),Uc=n.dynCall_jiji=ue("dynCall_jiji"),Nc=n.dynCall_iiiiij=ue("dynCall_iiiiij"),xc=n.dynCall_iiiiijj=ue("dynCall_iiiiijj"),jc=n.dynCall_iiiiiijj=ue("dynCall_iiiiiijj");function sc(i,e,t,r){var o=re();try{K.get(i)(e,t,r)}catch(a){if(x(o),a!==a+0&&a!=="longjmp")throw a;ie(1,0)}}function tA(i,e){var t=re();try{K.get(i)(e)}catch(r){if(x(t),r!==r+0&&r!=="longjmp")throw r;ie(1,0)}}function rA(i,e,t){var r=re();try{return K.get(i)(e,t)}catch(o){if(x(r),o!==o+0&&o!=="longjmp")throw o;ie(1,0)}}function nA(i,e,t,r,o,a){var s=re();try{K.get(i)(e,t,r,o,a)}catch(A){if(x(s),A!==A+0&&A!=="longjmp")throw A;ie(1,0)}}function iA(i,e,t,r,o,a,s){var A=re();try{return K.get(i)(e,t,r,o,a,s)}catch(c){if(x(A),c!==c+0&&c!=="longjmp")throw c;ie(1,0)}}function oA(i){var e=re();try{K.get(i)()}catch(t){if(x(e),t!==t+0&&t!=="longjmp")throw t;ie(1,0)}}function aA(i,e,t,r,o,a,s,A,c,u,d){var h=re();try{K.get(i)(e,t,r,o,a,s,A,c,u,d)}catch(m){if(x(h),m!==m+0&&m!=="longjmp")throw m;ie(1,0)}}function sA(i,e,t){var r=re();try{K.get(i)(e,t)}catch(o){if(x(r),o!==o+0&&o!=="longjmp")throw o;ie(1,0)}}function AA(i,e){var t=re();try{return K.get(i)(e)}catch(r){if(x(t),r!==r+0&&r!=="longjmp")throw r;ie(1,0)}}function cA(i,e,t,r){var o=re();try{K.get(i)(e,t,r)}catch(a){if(x(o),a!==a+0&&a!=="longjmp")throw a;ie(1,0)}}function uA(i,e,t,r,o,a,s){var A=re();try{K.get(i)(e,t,r,o,a,s)}catch(c){if(x(A),c!==c+0&&c!=="longjmp")throw c;ie(1,0)}}function lA(i,e,t,r,o,a,s,A){var c=re();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(x(c),u!==u+0&&u!=="longjmp")throw u;ie(1,0)}}function dA(i,e,t,r,o,a,s,A,c){var u=re();try{K.get(i)(e,t,r,o,a,s,A,c)}catch(d){if(x(u),d!==d+0&&d!=="longjmp")throw d;ie(1,0)}}function fA(i,e,t,r,o,a,s,A,c,u){var d=re();try{K.get(i)(e,t,r,o,a,s,A,c,u)}catch(h){if(x(d),h!==h+0&&h!=="longjmp")throw h;ie(1,0)}}function gA(i,e,t,r,o){var a=re();try{K.get(i)(e,t,r,o)}catch(s){if(x(a),s!==s+0&&s!=="longjmp")throw s;ie(1,0)}}function EA(i,e,t,r,o){var a=re();try{return K.get(i)(e,t,r,o)}catch(s){if(x(a),s!==s+0&&s!=="longjmp")throw s;ie(1,0)}}function pA(i,e,t,r,o,a,s,A,c,u,d,h){var m=re();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h)}catch(I){if(x(m),I!==I+0&&I!=="longjmp")throw I;ie(1,0)}}function _A(i,e,t,r,o,a){var s=re();try{K.get(i)(e,t,r,o,a)}catch(A){if(x(s),A!==A+0&&A!=="longjmp")throw A;ie(1,0)}}function hA(i,e,t,r,o,a){var s=re();try{return K.get(i)(e,t,r,o,a)}catch(A){if(x(s),A!==A+0&&A!=="longjmp")throw A;ie(1,0)}}function mA(i,e,t,r,o,a,s,A,c,u,d,h,m,I){var y=re();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,m,I)}catch(v){if(x(y),v!==v+0&&v!=="longjmp")throw v;ie(1,0)}}function IA(i,e,t,r,o,a,s,A){var c=re();try{return K.get(i)(e,t,r,o,a,s,A)}catch(u){if(x(c),u!==u+0&&u!=="longjmp")throw u;ie(1,0)}}function CA(i,e,t,r){var o=re();try{return K.get(i)(e,t,r)}catch(a){if(x(o),a!==a+0&&a!=="longjmp")throw a;ie(1,0)}}function yA(i,e,t,r){var o=re();try{return K.get(i)(e,t,r)}catch(a){if(x(o),a!==a+0&&a!=="longjmp")throw a;ie(1,0)}}function wA(i,e,t,r,o,a,s,A,c,u,d,h){var m=re();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h)}catch(I){if(x(m),I!==I+0&&I!=="longjmp")throw I;ie(1,0)}}function DA(i,e,t,r,o,a,s,A,c,u,d,h,m){var I=re();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,m)}catch(y){if(x(I),y!==y+0&&y!=="longjmp")throw y;ie(1,0)}}function bA(i,e,t,r,o,a,s){var A=re();try{K.get(i)(e,t,r,o,a,s)}catch(c){if(x(A),c!==c+0&&c!=="longjmp")throw c;ie(1,0)}}function OA(i){var e=re();try{return K.get(i)()}catch(t){if(x(e),t!==t+0&&t!=="longjmp")throw t;ie(1,0)}}function BA(i,e,t,r,o,a){var s=re();try{K.get(i)(e,t,r,o,a)}catch(A){if(x(s),A!==A+0&&A!=="longjmp")throw A;ie(1,0)}}function TA(i,e,t,r,o,a,s){var A=re();try{K.get(i)(e,t,r,o,a,s)}catch(c){if(x(A),c!==c+0&&c!=="longjmp")throw c;ie(1,0)}}function vA(i,e,t,r,o,a,s,A){var c=re();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(x(c),u!==u+0&&u!=="longjmp")throw u;ie(1,0)}}function QA(i,e,t,r,o,a,s,A,c){var u=re();try{return K.get(i)(e,t,r,o,a,s,A,c)}catch(d){if(x(u),d!==d+0&&d!=="longjmp")throw d;ie(1,0)}}function PA(i,e,t,r,o,a,s,A,c,u,d){var h=re();try{K.get(i)(e,t,r,o,a,s,A,c,u,d)}catch(m){if(x(h),m!==m+0&&m!=="longjmp")throw m;ie(1,0)}}function RA(i,e,t,r,o,a,s,A,c,u,d){var h=re();try{K.get(i)(e,t,r,o,a,s,A,c,u,d)}catch(m){if(x(h),m!==m+0&&m!=="longjmp")throw m;ie(1,0)}}function SA(i,e,t,r,o,a,s){var A=re();try{K.get(i)(e,t,r,o,a,s)}catch(c){if(x(A),c!==c+0&&c!=="longjmp")throw c;ie(1,0)}}function MA(i,e,t,r,o,a,s,A){var c=re();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(x(c),u!==u+0&&u!=="longjmp")throw u;ie(1,0)}}function FA(i,e,t,r,o,a,s,A,c,u,d,h,m){var I=re();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,m)}catch(y){if(x(I),y!==y+0&&y!=="longjmp")throw y;ie(1,0)}}function kA(i,e,t,r,o,a,s,A,c,u,d,h,m){var I=re();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,m)}catch(y){if(x(I),y!==y+0&&y!=="longjmp")throw y;ie(1,0)}}function UA(i,e,t,r,o,a,s){var A=re();try{K.get(i)(e,t,r,o,a,s)}catch(c){if(x(A),c!==c+0&&c!=="longjmp")throw c;ie(1,0)}}function NA(i,e,t,r,o,a,s,A){var c=re();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(x(c),u!==u+0&&u!=="longjmp")throw u;ie(1,0)}}function xA(i,e,t,r,o,a,s,A,c,u,d,h,m){var I=re();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,m)}catch(y){if(x(I),y!==y+0&&y!=="longjmp")throw y;ie(1,0)}}function jA(i,e,t,r,o,a,s,A,c,u,d,h,m,I,y,v){var N=re();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,m,I,y,v)}catch(H){if(x(N),H!==H+0&&H!=="longjmp")throw H;ie(1,0)}}function LA(i,e,t,r,o,a,s,A,c,u,d,h,m,I,y,v){var N=re();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,m,I,y,v)}catch(H){if(x(N),H!==H+0&&H!=="longjmp")throw H;ie(1,0)}}function HA(i,e,t,r,o,a,s,A){var c=re();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(x(c),u!==u+0&&u!=="longjmp")throw u;ie(1,0)}}function GA(i,e,t,r,o){var a=re();try{K.get(i)(e,t,r,o)}catch(s){if(x(a),s!==s+0&&s!=="longjmp")throw s;ie(1,0)}}function YA(i,e,t,r,o){var a=re();try{K.get(i)(e,t,r,o)}catch(s){if(x(a),s!==s+0&&s!=="longjmp")throw s;ie(1,0)}}function XA(i,e,t,r,o,a,s,A,c,u,d,h,m,I){var y=re();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,m,I)}catch(v){if(x(y),v!==v+0&&v!=="longjmp")throw v;ie(1,0)}}function WA(i,e,t,r,o,a,s,A,c,u,d){var h=re();try{K.get(i)(e,t,r,o,a,s,A,c,u,d)}catch(m){if(x(h),m!==m+0&&m!=="longjmp")throw m;ie(1,0)}}function VA(i,e,t,r,o,a,s,A,c,u){var d=re();try{return K.get(i)(e,t,r,o,a,s,A,c,u)}catch(h){if(x(d),h!==h+0&&h!=="longjmp")throw h;ie(1,0)}}function zA(i,e,t,r,o,a){var s=re();try{K.get(i)(e,t,r,o,a)}catch(A){if(x(s),A!==A+0&&A!=="longjmp")throw A;ie(1,0)}}function $A(i,e,t,r,o,a,s,A){var c=re();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(x(c),u!==u+0&&u!=="longjmp")throw u;ie(1,0)}}function KA(i,e,t,r,o){var a=re();try{K.get(i)(e,t,r,o)}catch(s){if(x(a),s!==s+0&&s!=="longjmp")throw s;ie(1,0)}}function JA(i,e,t,r,o){var a=re();try{K.get(i)(e,t,r,o)}catch(s){if(x(a),s!==s+0&&s!=="longjmp")throw s;ie(1,0)}}Object.getOwnPropertyDescriptor(n,"intArrayFromString")||(n.intArrayFromString=function(){E("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"intArrayToString")||(n.intArrayToString=function(){E("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ccall")||(n.ccall=function(){E("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"cwrap")||(n.cwrap=function(){E("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setValue")||(n.setValue=function(){E("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getValue")||(n.getValue=function(){E("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocate")||(n.allocate=function(){E("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ArrayToString")||(n.UTF8ArrayToString=function(){E("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ToString")||(n.UTF8ToString=function(){E("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8Array")||(n.stringToUTF8Array=function(){E("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8")||(n.stringToUTF8=function(){E("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF8")||(n.lengthBytesUTF8=function(){E("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){E("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreRun")||(n.addOnPreRun=function(){E("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnInit")||(n.addOnInit=function(){E("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreMain")||(n.addOnPreMain=function(){E("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnExit")||(n.addOnExit=function(){E("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPostRun")||(n.addOnPostRun=function(){E("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeStringToMemory")||(n.writeStringToMemory=function(){E("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeArrayToMemory")||(n.writeArrayToMemory=function(){E("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeAsciiToMemory")||(n.writeAsciiToMemory=function(){E("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.addRunDependency=Pt,n.removeRunDependency=Cr,Object.getOwnPropertyDescriptor(n,"FS_createFolder")||(n.FS_createFolder=function(){E("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createPath=f.createPath,n.FS_createDataFile=f.createDataFile,n.FS_createPreloadedFile=f.createPreloadedFile,n.FS_createLazyFile=f.createLazyFile,Object.getOwnPropertyDescriptor(n,"FS_createLink")||(n.FS_createLink=function(){E("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createDevice=f.createDevice,n.FS_unlink=f.unlink,Object.getOwnPropertyDescriptor(n,"getLEB")||(n.getLEB=function(){E("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFunctionTables")||(n.getFunctionTables=function(){E("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignFunctionTables")||(n.alignFunctionTables=function(){E("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFunctions")||(n.registerFunctions=function(){E("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addFunction")||(n.addFunction=function(){E("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"removeFunction")||(n.removeFunction=function(){E("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){E("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"prettyPrint")||(n.prettyPrint=function(){E("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){E("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCompilerSetting")||(n.getCompilerSetting=function(){E("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"print")||(n.print=function(){E("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"printErr")||(n.printErr=function(){E("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTempRet0")||(n.getTempRet0=function(){E("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setTempRet0")||(n.setTempRet0=function(){E("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callMain")||(n.callMain=function(){E("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"abort")||(n.abort=function(){E("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"keepRuntimeAlive")||(n.keepRuntimeAlive=function(){E("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"zeroMemory")||(n.zeroMemory=function(){E("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToNewUTF8")||(n.stringToNewUTF8=function(){E("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setFileTime")||(n.setFileTime=function(){E("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscripten_realloc_buffer")||(n.emscripten_realloc_buffer=function(){E("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ENV")||(n.ENV=function(){E("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_CODES")||(n.ERRNO_CODES=function(){E("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_MESSAGES")||(n.ERRNO_MESSAGES=function(){E("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setErrNo")||(n.setErrNo=function(){E("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton4")||(n.inetPton4=function(){E("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop4")||(n.inetNtop4=function(){E("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton6")||(n.inetPton6=function(){E("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop6")||(n.inetNtop6=function(){E("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readSockaddr")||(n.readSockaddr=function(){E("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeSockaddr")||(n.writeSockaddr=function(){E("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"DNS")||(n.DNS=function(){E("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getHostByName")||(n.getHostByName=function(){E("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GAI_ERRNO_MESSAGES")||(n.GAI_ERRNO_MESSAGES=function(){E("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Protocols")||(n.Protocols=function(){E("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Sockets")||(n.Sockets=function(){E("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getRandomDevice")||(n.getRandomDevice=function(){E("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"traverseStack")||(n.traverseStack=function(){E("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UNWIND_CACHE")||(n.UNWIND_CACHE=function(){E("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"withBuiltinMalloc")||(n.withBuiltinMalloc=function(){E("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgsArray")||(n.readAsmConstArgsArray=function(){E("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgs")||(n.readAsmConstArgs=function(){E("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mainThreadEM_ASM")||(n.mainThreadEM_ASM=function(){E("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_q")||(n.jstoi_q=function(){E("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_s")||(n.jstoi_s=function(){E("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getExecutableName")||(n.getExecutableName=function(){E("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"listenOnce")||(n.listenOnce=function(){E("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"autoResumeAudioContext")||(n.autoResumeAudioContext=function(){E("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCallLegacy")||(n.dynCallLegacy=function(){E("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getDynCaller")||(n.getDynCaller=function(){E("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){E("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callRuntimeCallbacks")||(n.callRuntimeCallbacks=function(){E("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePush")||(n.runtimeKeepalivePush=function(){E("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePop")||(n.runtimeKeepalivePop=function(){E("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callUserCallback")||(n.callUserCallback=function(){E("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"maybeExit")||(n.maybeExit=function(){E("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"safeSetTimeout")||(n.safeSetTimeout=function(){E("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asmjsMangle")||(n.asmjsMangle=function(){E("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asyncLoad")||(n.asyncLoad=function(){E("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignMemory")||(n.alignMemory=function(){E("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mmapAlloc")||(n.mmapAlloc=function(){E("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reallyNegative")||(n.reallyNegative=function(){E("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unSign")||(n.unSign=function(){E("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reSign")||(n.reSign=function(){E("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"formatString")||(n.formatString=function(){E("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH")||(n.PATH=function(){E("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH_FS")||(n.PATH_FS=function(){E("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SYSCALLS")||(n.SYSCALLS=function(){E("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMmap2")||(n.syscallMmap2=function(){E("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMunmap")||(n.syscallMunmap=function(){E("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketFromFD")||(n.getSocketFromFD=function(){E("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketAddress")||(n.getSocketAddress=function(){E("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"JSEvents")||(n.JSEvents=function(){E("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerKeyEventCallback")||(n.registerKeyEventCallback=function(){E("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"specialHTMLTargets")||(n.specialHTMLTargets=function(){E("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findEventTarget")||(n.findEventTarget=function(){E("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findCanvasEventTarget")||(n.findCanvasEventTarget=function(){E("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBoundingClientRect")||(n.getBoundingClientRect=function(){E("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillMouseEventData")||(n.fillMouseEventData=function(){E("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerMouseEventCallback")||(n.registerMouseEventCallback=function(){E("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerWheelEventCallback")||(n.registerWheelEventCallback=function(){E("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerUiEventCallback")||(n.registerUiEventCallback=function(){E("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFocusEventCallback")||(n.registerFocusEventCallback=function(){E("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceOrientationEventData")||(n.fillDeviceOrientationEventData=function(){E("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceOrientationEventCallback")||(n.registerDeviceOrientationEventCallback=function(){E("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceMotionEventData")||(n.fillDeviceMotionEventData=function(){E("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceMotionEventCallback")||(n.registerDeviceMotionEventCallback=function(){E("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"screenOrientation")||(n.screenOrientation=function(){E("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillOrientationChangeEventData")||(n.fillOrientationChangeEventData=function(){E("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerOrientationChangeEventCallback")||(n.registerOrientationChangeEventCallback=function(){E("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillFullscreenChangeEventData")||(n.fillFullscreenChangeEventData=function(){E("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFullscreenChangeEventCallback")||(n.registerFullscreenChangeEventCallback=function(){E("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerRestoreOldStyle")||(n.registerRestoreOldStyle=function(){E("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"hideEverythingExceptGivenElement")||(n.hideEverythingExceptGivenElement=function(){E("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreHiddenElements")||(n.restoreHiddenElements=function(){E("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setLetterbox")||(n.setLetterbox=function(){E("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"currentFullscreenStrategy")||(n.currentFullscreenStrategy=function(){E("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreOldWindowedStyle")||(n.restoreOldWindowedStyle=function(){E("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"softFullscreenResizeWebGLRenderTarget")||(n.softFullscreenResizeWebGLRenderTarget=function(){E("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"doRequestFullscreen")||(n.doRequestFullscreen=function(){E("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillPointerlockChangeEventData")||(n.fillPointerlockChangeEventData=function(){E("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockChangeEventCallback")||(n.registerPointerlockChangeEventCallback=function(){E("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockErrorEventCallback")||(n.registerPointerlockErrorEventCallback=function(){E("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requestPointerLock")||(n.requestPointerLock=function(){E("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillVisibilityChangeEventData")||(n.fillVisibilityChangeEventData=function(){E("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerVisibilityChangeEventCallback")||(n.registerVisibilityChangeEventCallback=function(){E("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerTouchEventCallback")||(n.registerTouchEventCallback=function(){E("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillGamepadEventData")||(n.fillGamepadEventData=function(){E("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerGamepadEventCallback")||(n.registerGamepadEventCallback=function(){E("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBeforeUnloadEventCallback")||(n.registerBeforeUnloadEventCallback=function(){E("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillBatteryEventData")||(n.fillBatteryEventData=function(){E("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"battery")||(n.battery=function(){E("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBatteryEventCallback")||(n.registerBatteryEventCallback=function(){E("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setCanvasElementSize")||(n.setCanvasElementSize=function(){E("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCanvasElementSize")||(n.getCanvasElementSize=function(){E("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"polyfillSetImmediate")||(n.polyfillSetImmediate=function(){E("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangle")||(n.demangle=function(){E("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangleAll")||(n.demangleAll=function(){E("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jsStackTrace")||(n.jsStackTrace=function(){E("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){E("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getEnvStrings")||(n.getEnvStrings=function(){E("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"checkWasiClock")||(n.checkWasiClock=function(){E("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64")||(n.writeI53ToI64=function(){E("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Clamped")||(n.writeI53ToI64Clamped=function(){E("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Signaling")||(n.writeI53ToI64Signaling=function(){E("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Clamped")||(n.writeI53ToU64Clamped=function(){E("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Signaling")||(n.writeI53ToU64Signaling=function(){E("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromI64")||(n.readI53FromI64=function(){E("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromU64")||(n.readI53FromU64=function(){E("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertI32PairToI53")||(n.convertI32PairToI53=function(){E("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertU32PairToI53")||(n.convertU32PairToI53=function(){E("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"uncaughtExceptionCount")||(n.uncaughtExceptionCount=function(){E("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionLast")||(n.exceptionLast=function(){E("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionCaught")||(n.exceptionCaught=function(){E("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ExceptionInfo")||(n.ExceptionInfo=function(){E("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"CatchInfo")||(n.CatchInfo=function(){E("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_addRef")||(n.exception_addRef=function(){E("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_decRef")||(n.exception_decRef=function(){E("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Browser")||(n.Browser=function(){E("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"funcWrappers")||(n.funcWrappers=function(){E("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){E("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setMainLoop")||(n.setMainLoop=function(){E("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"wget")||(n.wget=function(){E("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"FS")||(n.FS=function(){E("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"MEMFS")||(n.MEMFS=function(){E("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"TTY")||(n.TTY=function(){E("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PIPEFS")||(n.PIPEFS=function(){E("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SOCKFS")||(n.SOCKFS=function(){E("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"_setNetworkCallback")||(n._setNetworkCallback=function(){E("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tempFixedLengthArray")||(n.tempFixedLengthArray=function(){E("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"miniTempWebGLFloatBuffers")||(n.miniTempWebGLFloatBuffers=function(){E("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapObjectForWebGLType")||(n.heapObjectForWebGLType=function(){E("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapAccessShiftForWebGLHeap")||(n.heapAccessShiftForWebGLHeap=function(){E("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.GL=O,Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGet")||(n.emscriptenWebGLGet=function(){E("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"computeUnpackAlignedImageSize")||(n.computeUnpackAlignedImageSize=function(){E("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetTexPixelData")||(n.emscriptenWebGLGetTexPixelData=function(){E("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetUniform")||(n.emscriptenWebGLGetUniform=function(){E("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetUniformLocation")||(n.webglGetUniformLocation=function(){E("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglPrepareUniformLocationsBeforeFirstUse")||(n.webglPrepareUniformLocationsBeforeFirstUse=function(){E("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetLeftBracePos")||(n.webglGetLeftBracePos=function(){E("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetVertexAttrib")||(n.emscriptenWebGLGetVertexAttrib=function(){E("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetBufferBinding")||(n.emscriptenWebGLGetBufferBinding=function(){E("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLValidateMapBufferTarget")||(n.emscriptenWebGLValidateMapBufferTarget=function(){E("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeGLArray")||(n.writeGLArray=function(){E("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AL")||(n.AL=function(){E("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_unicode")||(n.SDL_unicode=function(){E("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_ttfContext")||(n.SDL_ttfContext=function(){E("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_audio")||(n.SDL_audio=function(){E("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL")||(n.SDL=function(){E("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_gfx")||(n.SDL_gfx=function(){E("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLUT")||(n.GLUT=function(){E("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"EGL")||(n.EGL=function(){E("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW_Window")||(n.GLFW_Window=function(){E("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW")||(n.GLFW=function(){E("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLEW")||(n.GLEW=function(){E("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"IDBStore")||(n.IDBStore=function(){E("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runAndAbortIfError")||(n.runAndAbortIfError=function(){E("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_handle_array")||(n.emval_handle_array=function(){E("'emval_handle_array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_free_list")||(n.emval_free_list=function(){E("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_symbols")||(n.emval_symbols=function(){E("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_emval")||(n.init_emval=function(){E("'init_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"count_emval_handles")||(n.count_emval_handles=function(){E("'count_emval_handles' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"get_first_emval")||(n.get_first_emval=function(){E("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getStringOrSymbol")||(n.getStringOrSymbol=function(){E("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireHandle")||(n.requireHandle=function(){E("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_newers")||(n.emval_newers=function(){E("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftEmvalAllocator")||(n.craftEmvalAllocator=function(){E("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_get_global")||(n.emval_get_global=function(){E("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_methodCallers")||(n.emval_methodCallers=function(){E("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"InternalError")||(n.InternalError=function(){E("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"BindingError")||(n.BindingError=function(){E("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UnboundTypeError")||(n.UnboundTypeError=function(){E("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PureVirtualError")||(n.PureVirtualError=function(){E("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_embind")||(n.init_embind=function(){E("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInternalError")||(n.throwInternalError=function(){E("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwBindingError")||(n.throwBindingError=function(){E("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwUnboundTypeError")||(n.throwUnboundTypeError=function(){E("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ensureOverloadTable")||(n.ensureOverloadTable=function(){E("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exposePublicSymbol")||(n.exposePublicSymbol=function(){E("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"replacePublicSymbol")||(n.replacePublicSymbol=function(){E("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"extendError")||(n.extendError=function(){E("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"createNamedFunction")||(n.createNamedFunction=function(){E("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredInstances")||(n.registeredInstances=function(){E("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBasestPointer")||(n.getBasestPointer=function(){E("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerInheritedInstance")||(n.registerInheritedInstance=function(){E("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unregisterInheritedInstance")||(n.unregisterInheritedInstance=function(){E("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstance")||(n.getInheritedInstance=function(){E("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstanceCount")||(n.getInheritedInstanceCount=function(){E("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getLiveInheritedInstances")||(n.getLiveInheritedInstances=function(){E("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredTypes")||(n.registeredTypes=function(){E("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"awaitingDependencies")||(n.awaitingDependencies=function(){E("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"typeDependencies")||(n.typeDependencies=function(){E("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredPointers")||(n.registeredPointers=function(){E("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerType")||(n.registerType=function(){E("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"whenDependentTypesAreResolved")||(n.whenDependentTypesAreResolved=function(){E("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_charCodes")||(n.embind_charCodes=function(){E("'embind_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_init_charCodes")||(n.embind_init_charCodes=function(){E("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readLatin1String")||(n.readLatin1String=function(){E("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTypeName")||(n.getTypeName=function(){E("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heap32VectorToArray")||(n.heap32VectorToArray=function(){E("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireRegisteredType")||(n.requireRegisteredType=function(){E("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getShiftFromSize")||(n.getShiftFromSize=function(){E("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"integerReadValueFromPointer")||(n.integerReadValueFromPointer=function(){E("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"enumReadValueFromPointer")||(n.enumReadValueFromPointer=function(){E("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"floatReadValueFromPointer")||(n.floatReadValueFromPointer=function(){E("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"simpleReadValueFromPointer")||(n.simpleReadValueFromPointer=function(){E("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructors")||(n.runDestructors=function(){E("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"new_")||(n.new_=function(){E("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftInvokerFunction")||(n.craftInvokerFunction=function(){E("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind__requireFunction")||(n.embind__requireFunction=function(){E("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tupleRegistrations")||(n.tupleRegistrations=function(){E("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"structRegistrations")||(n.structRegistrations=function(){E("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"genericPointerToWireType")||(n.genericPointerToWireType=function(){E("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"constNoSmartPtrRawPointerToWireType")||(n.constNoSmartPtrRawPointerToWireType=function(){E("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"nonConstNoSmartPtrRawPointerToWireType")||(n.nonConstNoSmartPtrRawPointerToWireType=function(){E("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_RegisteredPointer")||(n.init_RegisteredPointer=function(){E("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer")||(n.RegisteredPointer=function(){E("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_getPointee")||(n.RegisteredPointer_getPointee=function(){E("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_destructor")||(n.RegisteredPointer_destructor=function(){E("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_deleteObject")||(n.RegisteredPointer_deleteObject=function(){E("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_fromWireType")||(n.RegisteredPointer_fromWireType=function(){E("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructor")||(n.runDestructor=function(){E("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"releaseClassHandle")||(n.releaseClassHandle=function(){E("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"finalizationGroup")||(n.finalizationGroup=function(){E("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer_deps")||(n.detachFinalizer_deps=function(){E("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer")||(n.detachFinalizer=function(){E("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"attachFinalizer")||(n.attachFinalizer=function(){E("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeClassHandle")||(n.makeClassHandle=function(){E("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_ClassHandle")||(n.init_ClassHandle=function(){E("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle")||(n.ClassHandle=function(){E("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isAliasOf")||(n.ClassHandle_isAliasOf=function(){E("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInstanceAlreadyDeleted")||(n.throwInstanceAlreadyDeleted=function(){E("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_clone")||(n.ClassHandle_clone=function(){E("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_delete")||(n.ClassHandle_delete=function(){E("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"deletionQueue")||(n.deletionQueue=function(){E("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isDeleted")||(n.ClassHandle_isDeleted=function(){E("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_deleteLater")||(n.ClassHandle_deleteLater=function(){E("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"flushPendingDeletes")||(n.flushPendingDeletes=function(){E("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"delayFunction")||(n.delayFunction=function(){E("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setDelayFunction")||(n.setDelayFunction=function(){E("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredClass")||(n.RegisteredClass=function(){E("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"shallowCopyInternalPointer")||(n.shallowCopyInternalPointer=function(){E("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"downcastPointer")||(n.downcastPointer=function(){E("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"upcastPointer")||(n.upcastPointer=function(){E("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"validateThis")||(n.validateThis=function(){E("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_0")||(n.char_0=function(){E("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_9")||(n.char_9=function(){E("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeLegalFunctionName")||(n.makeLegalFunctionName=function(){E("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetIndexed")||(n.emscriptenWebGLGetIndexed=function(){E("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"warnOnce")||(n.warnOnce=function(){E("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackSave")||(n.stackSave=function(){E("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackRestore")||(n.stackRestore=function(){E("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackAlloc")||(n.stackAlloc=function(){E("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AsciiToString")||(n.AsciiToString=function(){E("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToAscii")||(n.stringToAscii=function(){E("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF16ToString")||(n.UTF16ToString=function(){E("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF16")||(n.stringToUTF16=function(){E("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF16")||(n.lengthBytesUTF16=function(){E("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF32ToString")||(n.UTF32ToString=function(){E("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF32")||(n.stringToUTF32=function(){E("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF32")||(n.lengthBytesUTF32=function(){E("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8")||(n.allocateUTF8=function(){E("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8OnStack")||(n.allocateUTF8OnStack=function(){E("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.writeStackCookie=Fr,n.checkStackCookie=V,Object.getOwnPropertyDescriptor(n,"ALLOC_NORMAL")||Object.defineProperty(n,"ALLOC_NORMAL",{configurable:!0,get:function(){E("'ALLOC_NORMAL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(n,"ALLOC_STACK")||Object.defineProperty(n,"ALLOC_STACK",{configurable:!0,get:function(){E("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}});var mi;function En(i){this.name="ExitStatus",this.message="Program terminated with exit("+i+")",this.status=i}ut=function i(){mi||io(),mi||(ut=i)};function no(){ro(),Fr()}function io(i){if(i=i||Ze,Gt>0||(no(),bi(),Gt>0))return;function e(){mi||(mi=!0,n.calledRun=!0,!xt&&(mt(),ge(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),W(!n._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),Oi()))}n.setStatus?(n.setStatus("Running..."),setTimeout(function(){setTimeout(function(){n.setStatus("")},1),e()},1)):e(),V()}n.run=io;function oo(){var i=We,e=fe,t=!1;We=fe=function(o){t=!0};try{var r=n._fflush;r&&r(0),["stdout","stderr"].forEach(function(o){var a=f.analyzePath("/dev/"+o);if(a){var s=a.object,A=s.rdev,c=Qe.ttys[A];c&&c.output&&c.output.length&&(t=!0)}})}catch(o){}We=i,fe=e,t&&Pe("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.")}function ZA(i,e){if(vt=i,oo(),Dt()){if(!e){var t="program exited (with status: "+i+"), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)";U(t),fe(t)}}else Ht();Ro(i)}function Ro(i){vt=i,Dt()||(n.onExit&&n.onExit(i),xt=!0),qe(i,new En(i))}if(n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return io(),G.ready}}(),hc=Zc;var qc=(()=>{var G;var oe=typeof document!="undefined"?(G=document.currentScript)==null?void 0:G.src:void 0;return function(n={}){var ge,U=Object.assign({},n),Fe,ye,Ze=new Promise((_,g)=>{Fe=_,ye=g}),ct=!0,qe=!1,Ve=Object.assign({},U),ze=[],_t="./this.program",Ii=(_,g)=>{throw g},Be="",Ci,vr,qt;(ct||qe)&&(qe?Be=self.location.href:typeof document!="undefined"&&document.currentScript&&(Be=document.currentScript.src),oe&&(Be=oe),Be.startsWith("blob:")?Be="":Be=Be.substr(0,Be.replace(/[?#].*/,"").lastIndexOf("/")+1),Ci=_=>{var g=new XMLHttpRequest;return g.open("GET",_,!1),g.send(null),g.responseText},qe&&(qt=_=>{var g=new XMLHttpRequest;return g.open("GET",_,!1),g.responseType="arraybuffer",g.send(null),new Uint8Array(g.response)}),vr=(_,g,C)=>{var B=new XMLHttpRequest;B.open("GET",_,!0),B.responseType="arraybuffer",B.onload=()=>{if(B.status==200||B.status==0&&B.response){g(B.response);return}C()},B.onerror=C,B.send(null)});var en=U.print||console.log.bind(console),pn=U.printErr||console.error.bind(console);Object.assign(U,Ve),Ve=null,U.arguments&&(ze=U.arguments),U.thisProgram&&(_t=U.thisProgram),U.quit&&(Ii=U.quit);var We;U.wasmBinary&&(We=U.wasmBinary);function fe(_){for(var g=atob(_),C=new Uint8Array(g.length),B=0;B<g.length;++B)C[B]=g.charCodeAt(B);return C}function Pe(_){if(Di(_))return fe(_.slice(jn.length))}var Ee,et=!1,_r,Ut,He,hr,ht,mr,he,Nn,Nt;function xt(){var _=Ee.buffer;U.HEAP8=Ut=new Int8Array(_),U.HEAP16=hr=new Int16Array(_),U.HEAPU8=He=new Uint8Array(_),U.HEAPU16=ht=new Uint16Array(_),U.HEAP32=mr=new Int32Array(_),U.HEAPU32=he=new Uint32Array(_),U.HEAPF32=Nn=new Float32Array(_),U.HEAPF64=Nt=new Float64Array(_)}var vt=[],W=[],Qr=[],z=!1;function ao(){if(U.preRun)for(typeof U.preRun=="function"&&(U.preRun=[U.preRun]);U.preRun.length;)it(U.preRun.shift());Te(vt)}function yi(){z=!0,Te(W)}function Pr(){if(U.postRun)for(typeof U.postRun=="function"&&(U.postRun=[U.postRun]);U.postRun.length;)$e(U.postRun.shift());Te(Qr)}function it(_){vt.unshift(_)}function Qt(_){W.unshift(_)}function $e(_){Qr.unshift(_)}var Ke=0,er=null,wt=null;function xn(_){var g;Ke++,(g=U.monitorRunDependencies)==null||g.call(U,Ke)}function wi(_){var C;if(Ke--,(C=U.monitorRunDependencies)==null||C.call(U,Ke),Ke==0&&(er!==null&&(clearInterval(er),er=null),wt)){var g=wt;wt=null,g()}}function _n(_){var C;(C=U.onAbort)==null||C.call(U,_),_="Aborted("+_+")",pn(_),et=!0,_r=1,_+=". Build with -sASSERTIONS for more info.";var g=new WebAssembly.RuntimeError(_);throw ye(g),g}var jn="data:application/octet-stream;base64,",Di=_=>_.startsWith(jn);function hn(){var _="data:application/octet-stream;base64,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BSQAAkAgAiADTA0AIARBgMAEcQ0AIAUgASACIANrIgNBgAIgA0GAAkkiARsQIxogAUUEQANAIAAgBUGAAhAcIANBgAJrIgNB/wFLDQALCyAAIAUgAxAcCyAFQYACaiQAC+UDAQV/IwBBEGsiAyQAIAMgACgCACIEQQhrKAIAIgI2AgwgAyAAIAJqNgIEIAMgBEEEaygCADYCCCADKAIIIgQgAUEAEB0hAiADKAIEIQUCQCACBEAgAygCDCEAIwBBQGoiASQAIAFBQGskAEEAIAUgABshAgwBCyMAQUBqIgIkACAAIAVOBEAgAkIANwIcIAJCADcCJCACQgA3AiwgAkIANwIUIAJBADYCECACIAE2AgwgAiAENgIEIAJBADYCPCACQoGAgICAgICAATcCNCACIAA2AgggBCACQQRqIAUgBUEBQQAgBCgCACgCFBEJACAAQQAgAigCHBshBgsgAkFAayQAIAYiAg0AIwBBQGoiAiQAIAJBADYCECACQezIADYCDCACIAA2AgggAiABNgIEQQAhACACQRRqQQBBJxAjGiACQQA2AjwgAkEBOgA7IAQgAkEEaiAFQQFBACAEKAIAKAIYEQgAAkACQAJAIAIoAigOAgABAgsgAigCGEEAIAIoAiRBAUYbQQAgAigCIEEBRhtBACACKAIsQQFGGyEADAELIAIoAhxBAUcEQCACKAIsDQEgAigCIEEBRw0BIAIoAiRBAUcNAQsgAigCFCEACyACQUBrJAAgACECCyADQRBqJAAgAgu0AQEFfyMAQRBrIgYkACAGQQRqIgIQQSMAQRBrIgUkAAJ/IAItAAtBB3YEQCACKAIEDAELIAItAAtB/wBxCyEEA0ACQAJ/IAItAAtBB3YEQCACKAIADAELIAILIQMgBSABOQMAIAICfyADIARBAWogBRBHIgNBAE4EQCADIARNDQIgAwwBCyAEQQF0QQFyCyIEECwMAQsLIAIgAxAsIAAgAhBAIAVBEGokACACEEQgBkEQaiQAC4AEAQN/IAJBgARPBEAgACABIAIQESAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAsLACABIAIgABBFGgvyAgICfwF+AkAgAkUNACAAIAE6AAAgACACaiIDQQFrIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0EDayABOgAAIANBAmsgAToAACACQQdJDQAgACABOgADIANBBGsgAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkEEayABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBCGsgATYCACACQQxrIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQRBrIAE2AgAgAkEUayABNgIAIAJBGGsgATYCACACQRxrIAE2AgAgBCADQQRxQRhyIgRrIgJBIEkNACABrUKBgICAEH4hBSADIARqIQEDQCABIAU3AxggASAFNwMQIAEgBTcDCCABIAU3AwAgAUEgaiEBIAJBIGsiAkEfSw0ACwsgAAsSACABQQF0QYDHAGpBAiAAEEULBQAQaQALiAECAX4FfwJAIABCgICAgBBUBEAgACECDAELA0AgAUEBayIBIAAgAEIKgCICQgp+fadBMHI6AAAgAEL/////nwFWIQYgAiEAIAYNAAsLIAJCAFIEQCACpyEDA0AgAUEBayIBIAMgA0EKbiIEQQps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IAAoAghBgICAgHhyNgIIIARBEGokAAwBCxAlAAsgACABNgIECyABAn8gAC0AC0EHdgRAIAAoAgAMAQsgAAsiAmogBRBDIAAgASAFaiIAEDAgBkEAOgAPIAAgAmogBi0ADzoAAAsgBkEQaiQADwsCfyAALQALQQd2BEAgACgCAAwBCyAACyEEIwBBEGsiAiQAAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0ACwsaIAAgARAwIAJBADoADyABIARqIAItAA86AAAgAkEQaiQACz0BAX8jAEEQayICJAAgAkEAOgAPA0AgAQRAIAAgAi0ADzoAACABQQFrIQEgAEEBaiEADAELCyACQRBqJAALGgAgAC0AC0EHdgRAIAAoAggaIAAoAgAQGAsL5gEBBX8jAEEQayIFJAAjAEEgayIDJAAjAEEQayIEJAAgBCAANgIMIAQgACABajYCCCADIAQoAgw2AhggAyAEKAIINgIcIARBEGokACADKAIYIQQgAygCHCEGIwBBEGsiASQAIAEgBjYCDCACIAQgBiAEayIEEDUgASACIARqNgIIIAMgASgCDDYCECADIAEoAgg2AhQgAUEQaiQAIAMgACADKAIQIABrajYCDCADIAIgAygCFCACa2o2AgggBSADKAIMNgIIIAUgAygCCDYCDCADQSBqJAAgBSgCDCEHIAVBEGokACAHC/MCAQV/IwBBEGsiByQAIAIgAUF/c0H3////B2pNBEACfyAALQALQQd2BEAgACgCAAwBCyAACyEIIAdBBGoiCSABQfP///8DSQR/IAcgAUEBdDYCDCAHIAEgAmo2AgQjAEEQayICJAAgCSgCACAHQQxqIgooAgBJIQsgAkEQaiQAIAogCSALGygCACICQQtPBH8gAkEIakF4cSICIAJBAWsiAiACQQtGGwVBCgtBAWoFQff///8HCxAvIAcoAgQhAiAHKAIIGiAEBEAgAiAIIAQQIgsgBQRAIAIgBGogBiAFECILIAMgBGshBiADIARHBEAgAiAEaiAFaiAEIAhqIAYQIgsgAUEKRwRAIAgQGAsgACACNgIAIAAgACgCCEGAgICAeHEgBygCCEH/////B3FyNgIIIAAgACgCCEGAgICAeHI2AgggACAEIAVqIAZqIgA2AgQgB0EAOgAMIAAgAmogBy0ADDoAACAHQRBqJAAPCxAlAAvHAwEFfyMAQRBrIgUkACAFIAI2AgwjAEGgAWsiAyQAIAMgACADQZ4BaiABGyIENgKUASADIAFBAWsiAEEAIAAgAU0bNgKYASADQQBBkAEQIyIAQX82AkwgAEEbNgIkIABBfzYCUCAAIABBnwFqNgIsIAAgAEGUAWo2AlQgBEEAOgAAQQAhAyMAQdABayIBJAAgASACNgLMASABQaABaiICQQBBKBAjGiABIAEoAswBNgLIAQJAQQAgAUHIAWogAUHQAGogAhBMQQBIBEBBfyECDAELIAAoAkxBAEghByAAIAAoAgAiBkFfcTYCAAJ/AkACQCAAKAIwRQRAIABB0AA2AjAgAEEANgIcIABCADcDECAAKAIsIQMgACABNgIsDAELIAAoAhANAQtBfyAAEE8NARoLIAAgAUHIAWogAUHQAGogAUGgAWoQTAshAiADBEAgAEEAQQAgACgCJBEDABogAEEANgIwIAAgAzYCLCAAQQA2AhwgACgCFCEDIABCADcDECACQX8gAxshAgsgACAAKAIAIgMgBkEgcXI2AgBBfyACIANBIHEbIQIgBw0ACyABQdABaiQAIABBoAFqJAAgBUEQaiQAIAILngUCBn4EfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQsgASkDACEDIAEpAwghByMAQSBrIggkACAHQv///////z+DIQQCfiAHQjCIQv//AYMiBaciCkGB+ABrQf0PTQRAIARCBIYgA0I8iIQhAiAKQYD4AGutIQUCQCADQv//////////D4MiA0KBgICAgICAgAhaBEAgAkIBfCECDAELIANCgICAgICAgIAIUg0AIAJCAYMgAnwhAgtCACACIAJC/////////wdWIgAbIQIgAK0gBXwMAQsCQCADIASEUA0AIAVC//8BUg0AIARCBIYgA0I8iIRCgICAgICAgASEIQJC/w8MAQtC/w8gCkH+hwFLDQAaQgBBgPgAQYH4ACAFUCIBGyIAIAprIglB8ABKDQAaIAMhAiAEIARCgICAgICAwACEIAEbIgYhBAJAQYABIAlrIgFBwABxBEAgAyABQUBqrYYhBEIAIQIMAQsgAUUNACAEIAGtIgWGIAJBwAAgAWutiIQhBCACIAWGIQILIAggAjcDECAIIAQ3AxgCQCAJQcAAcQRAIAYgCUFAaq2IIQNCACEGDAELIAlF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AgQgAEHM0AA2AgAgAkEQaiQAC2ACAX8BfCMAQRBrIgIkACACQQA2AgwgASgCBEGszAAgAkEMahAJIQMgAigCDCIBBEAgARABCyAAAn8gA5lEAAAAAAAA4EFjBEAgA6oMAQtBgICAgHgLNgI8IAJBEGokAAs3AQF/IwBBEGsiAiQAIAIgASgCPDYCCCAAQazMACACQQhqEAg2AgQgAEHM0AA2AgAgAkEQaiQACwvGRhAAQYAIC5Qic2V0QmVhdXR5AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAdW5zaWduZWQgc2hvcnQAdW5zaWduZWQgaW50AGluaXQAZmxvYXQAdWludDY0X3QAYmx1clJhZGl1cwB2ZWN0b3IAbWlycm9yAGF0dGFjaFNoYWRlcgBkZWxldGVTaGFkZXIAY3JlYXRlU2hhZGVyAGNvbXBpbGVTaGFkZXIAdW5zaWduZWQgY2hhcgBzdGQ6OmV4Y2VwdGlvbgBuYW4AbGlua1Byb2dyYW0AZGVsZXRlUHJvZ3JhbQBjcmVhdGVQcm9ncmFtAGJvb2wAc2V0V2F0ZXJNYXJrAHN0b3BXYXRlck1hcmsAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgAlZgBjbG9zZQBkb3VibGUAdmJNb2RlAHNoYWRlclNvdXJjZQB2b2lkAHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sATkFOAElORgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxmbG9hdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgB2ZWMyIGMgPSB2X3RleENvb3JkOwB2ZWMyIGMgPSB2ZWMyKDEuMCAtIHZfdGV4Q29vcmQueCwgdl90ZXhDb29yZC55KTsAQWxsSW4xAC4ALjAsAC4wKSpvKSoAKG51bGwpACkqby55KTsgICAgdmVjMiBjb29yZDIgPSB2ZWMyKGZsb2F0KAAgICAgYyA9IHZlYzIodl90ZXhDb29yZC54LCAxLjAgLSB2X3RleENvb3JkLnkpOyAgICB2ZWMyIGNvb3JkMSA9IHZlYzIoZmxvYXQoACksIChjLnkgLWNvb3JkMS55KSAvIG8ueSAvIGZsb2F0KAApKm8ueSk7ICAgIGlmIChjLnggPiBjb29yZDEueCAmJiBjLnggPCBjb29yZDIueCAmJiBjLnkgPiBjb29yZDEueSAmJiBjLnkgPCBjb29yZDIueSkgeyAgICAgIHZlYzQgd2F0ZXJDb2xvciA9IHRleHR1cmUod2F0ZXJNYXJrLCB2ZWMyKChjLnggLSBjb29yZDEueCkgIC8gby54IC8gZmxvYXQoACkgKiBvLngsIGZsb2F0KAApOyAgICAgdmVjMyBzbW9vdGhDb2xvciA9IG91dENvbG9yLnJnYiArIChvdXRDb2xvci5yZ2ItdmVjMyhoaWdoUGFzcykpKmFscGhhKjAuMTsgICAgIHNtb290aENvbG9yID0gY2xhbXAocG93KHNtb290aENvbG9yLCB2ZWMzKAApOyAgICBuZXdDb2xvci5yZ2IgPSB2ZWMzKG5ld0NvbG9yLnJnYiArIHZlYzMoAGcrPUcoYyx2ZWMyKAAgICAgdmVjMiBvZmZzZXQgPSB2ZWMyKABdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoADsgACkpLCB2ZWMzKDAuMCksIHZlYzMoMS4wKSk7ICAgIHZlYzMgc2NyZWVuID0gdmVjMygxLjApIC0gKHZlYzMoMS4wKS1zbW9vdGhDb2xvcikgKiAodmVjMygxLjApLW91dENvbG9yLnJnYik7ICAgICB2ZWMzIGxpZ2h0ZW4gPSBtYXgoc21vb3RoQ29sb3IsIG91dENvbG9yLnJnYik7ICAgICB2ZWMzIHNvZnRMaWdodCA9IDIuMCAqIG91dENvbG9yLnJnYipzbW9vdGhDb2xvciArIG91dENvbG9yLnJnYipvdXRDb2xvci5yZ2IgLSAyLjAgKiBvdXRDb2xvci5yZ2Iqb3V0Q29sb3IucmdiICogc21vb3RoQ29sb3I7ICAgICB2ZWM0IG5ld0NvbG9yID0gb3V0Q29sb3I7ICAgICBuZXdDb2xvci5yZ2IgPSBtaXgobWl4KG1peChuZXdDb2xvci5yZ2IsIHNjcmVlbiwgYWxwaGEpLCBsaWdodGVuLCBhbHBoYSksIHNvZnRMaWdodCwgACk7ICAgIGNvbnN0IG1hdDMgc2F0dXJhdGVNYXRyaXggPSBtYXQzKDEuMTEwMiwtMC4wNTk4LC0wLjA2MSwtMC4wNzc0LDEuMDgyNiwtMC4xMTg2LC0wLjAyMjgsLTAuMDIyOCwxLjE3NzIpOyAgICB2ZWMzIHNhdENvbG9yID0gbmV3Q29sb3IucmdiICogc2F0dXJhdGVNYXRyaXg7ICAgIG5ld0NvbG9yLnJnYiA9IG1peChuZXdDb2xvci5yZ2IsIHNhdENvbG9yLCAAICAgIHNhbXBsZUNvbG9yID0gc2FtcGxlQ29sb3IgLyA2Mi4wOyAgICAgZmxvYXQgaGlnaFBhc3MgPSBvdXRDb2xvci5nIC0gc2FtcGxlQ29sb3IgKyAwLjU7ICAgICBmb3IoaW50IGkgPSAwOyBpIDwgNTsgaSsrKSB7ICAgICAgIGlmIChoaWdoUGFzcyA8PSAwLjUpIHsgICAgICAgICBoaWdoUGFzcyA9IGhpZ2hQYXNzICogaGlnaFBhc3MgKiAyLjA7ICAgICAgIH0gZWxzZSB7ICAgICAgICAgaGlnaFBhc3MgPSAxLjAgLSAoKDEuMCAtIGhpZ2hQYXNzKSooMS4wIC0gaGlnaFBhc3MpICogMi4wKTsgICAgICAgfSAgICAgfSAgICAgY29uc3QgaGlnaHAgdmVjMyBXID0gdmVjMygwLjI5OSwwLjU4NywwLjExNCk7ICAgIGZsb2F0IGx1bWluYW5jZSA9IGRvdChvdXRDb2xvci5yZ2IsIFcpOyAgICAgZmxvYXQgYWxwaGEgPSBwb3cobHVtaW5hbmNlLCAAXSkuZyAqIAApKTsgICAgb3V0Q29sb3IgPSBtaXgob3V0Q29sb3IsIG5ld0NvbG9yLCAxLjApOyAgIAApKSk7ICAgICAgb3V0Q29sb3IgPSBtaXgob3V0Q29sb3Isd2F0ZXJDb2xvciwgIHdhdGVyQ29sb3IuYSk7ICAgIH0gICAgACk7ICAgIHZlYzIgYmx1ckNvb3JkaW5hdGVzWzI0XTsgICAgACAgICBmbG9hdCBzYW1wbGVDb2xvciA9IG91dENvbG9yLmcgKiAyMi4wOyAgICAgACN2ZXJzaW9uIDMwMCBlcwogICAgcHJlY2lzaW9uIGhpZ2hwIGZsb2F0OwogICAgdW5pZm9ybSBzYW1wbGVyMkQgZnJhbWU7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBtYXNrOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgYmc7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCB3YXRlck1hcms7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBsYXN0TWFzazsKICAgIGluIHZlYzIgdl90ZXhDb29yZDsKICAgIG91dCB2ZWM0IG91dENvbG9yOwogICAgdmVjNCBHKHZlYzIgYyx2ZWMyIHMpewogICAgICByZXR1cm4gdGV4dHVyZShmcmFtZSx0ZXh0dXJlKG1hc2ssYytzKS5hPjAuMz9jOmMrcyk7CiAgICB9CiAgICB2b2lkIG1haW4oKSB7CiAgICAgIAAKICAgIHZlYzQgZyA9IHZlYzQoMC4wKTsKICAgIAAKICAgICAgYy55ID0gMS4wIC0gYy55OwogICAgICB2ZWM0IHNyY19jb2xvciA9IHRleHR1cmUoZnJhbWUsIGMpOwogICAgICBmbG9hdCBhID0gdGV4dHVyZShtYXNrLCBjKS5hOwogICAgICBhID0gYTwwLjU/Mi4wKmEqYToxLjAtMi4wKigxLjAtYSkqKDEuMC1hKTsKICAgICAgLy8gZmxvYXQgYTIgPSB0ZXh0dXJlKGxhc3RNYXNrLCBjKS5hOwogICAgICAvLyBhMiA9IGEyPDAuNT8yLjAqYTIqYTI6MS4wLTIuMCooMS4wLWEyKSooMS4wLWEyKTsKICAgICAgLy8gZmxvYXQgZGVsdGEgPSBhIC0gYTI7CiAgICAgIC8vIGlmIChkZWx0YSA8IDAuMjUgJiYgZGVsdGEgPiAtMC4yNSkKICAgICAgLy8gewogICAgICAvLyAgICAgYSA9IGEgKyAwLjUqZGVsdGE7CiAgICAgIC8vIH0KICAgICAgCiAgICAgIHZlYzIgbyA9IDEuMCAvIHZlYzIodGV4dHVyZVNpemUoZnJhbWUsIDApKTsKICAgIAAKICAgICAgb3V0Q29sb3IgPSBnOwogIAAjdmVyc2lvbiAzMDAgZXMKaW4gdmVjMiBhX3Bvc2l0aW9uOwppbiB2ZWMyIGFfdGV4Q29vcmQ7Cm91dCB2ZWMyIHZfdGV4Q29vcmQ7CnZvaWQgbWFpbigpIHsKICBnbF9Qb3NpdGlvbiA9IHZlYzQoYV9wb3NpdGlvbi54LCBhX3Bvc2l0aW9uLnksIDAsIDEpOwogIHZfdGV4Q29vcmQgPSBhX3RleENvb3JkOwp9CgBvdXRDb2xvciA9IHNyY19jb2xvcjsKAG91dENvbG9yID0gbWl4KHRleHR1cmUoYmcsIGMpLHNyY19jb2xvcixhKTsKAG91dENvbG9yID0gbWl4KHZlYzQoMC4wLDEuMCwwLjAsMS4wKSxzcmNfY29sb3IsYSk7CgA2QWxsSW4xAJAmAABwFAAAUDZBbGxJbjEAAAAAFCcAAIAUAAAAAAAAeBQAAFBLNkFsbEluMQAAABQnAACcFAAAAQAAAHgUAABwcAB2AHZwAIwUAADcFAAATjEwZW1zY3JpcHRlbjN2YWxFAACQJgAAyBQAAHBwcAB2cHBwAAAAAMwlAACMFAAAgCYAAIAmAACAJgAAgCYAAIAmAAB2cHBkZGRkZABBoCoLyAjMJQAAjBQAAIAmAACAJgAAgCYAAIAmAAB2cHBkZGRkAMwlAACMFAAAdnBwAMwlAADcFAAA3BQAAIwUAADcFAAALCYAAMwlAADcFAAAsBUAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAACQJgAAcBUAANwUAADMJQAA3BQAANwUAABOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQAAkCYAAMgVAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAkCYAABAWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAJAmAABYFgAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAACQJgAApBYAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWNFRQAAkCYAAPAWAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUAAJAmAAAYFwAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaEVFAACQJgAAQBcAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXNFRQAAkCYAAGgXAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUAAJAmAACQFwAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaUVFAACQJgAAuBcAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWpFRQAAkCYAAOAXAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUAAJAmAAAIGAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbUVFAACQJgAAMBgAAE4xMGVtc2NyaXB0ZW4x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";return _}var Rr;function mn(_){if(_==Rr&&We)return new Uint8Array(We);var g=Pe(_);if(g)return g;if(qt)return qt(_);throw"both async and sync fetching of the wasm failed"}function Ln(_){return Promise.resolve().then(()=>mn(_))}function Sr(_,g,C){return Ln(_).then(B=>WebAssembly.instantiate(B,g)).then(C,B=>{pn(`failed to asynchronously prepare wasm: ${B}`),_n(B)})}function Ne(_,g,C,B){return Sr(g,C,B)}function Re(){return{a:An}}function De(){var _=Re();function g(B,F){return ft=B.exports,Ee=ft.y,xt(),br=ft.B,Qt(ft.z),wi("wasm-instantiate"),ft}xn("wasm-instantiate");function C(B){g(B.instance)}if(U.instantiateWasm)try{return U.instantiateWasm(_,g)}catch(B){pn(`Module.instantiateWasm callback failed with error: ${B}`),ye(B)}return Rr||(Rr=hn()),Ne(We,Rr,_,C).catch(ye),{}}var Te=_=>{for(;_.length>0;)_.shift()(U)},T=U.noExitRuntime||!0;class be{constructor(g){this.excPtr=g,this.ptr=g-24}set_type(g){he[this.ptr+4>>2]=g}get_type(){return he[this.ptr+4>>2]}set_destructor(g){he[this.ptr+8>>2]=g}get_destructor(){return he[this.ptr+8>>2]}set_caught(g){g=g?1:0,Ut[this.ptr+12]=g}get_caught(){return Ut[this.ptr+12]!=0}set_rethrown(g){g=g?1:0,Ut[this.ptr+13]=g}get_rethrown(){return Ut[this.ptr+13]!=0}init(g,C){this.set_adjusted_ptr(0),this.set_type(g),this.set_destructor(C)}set_adjusted_ptr(g){he[this.ptr+16>>2]=g}get_adjusted_ptr(){return he[this.ptr+16>>2]}get_exception_ptr(){var g=$t(this.get_type());if(g)return he[this.excPtr>>2];var C=this.get_adjusted_ptr();return C!==0?C:this.excPtr}}var b=0,ve=0,Ye=(_,g,C)=>{var B=new be(_);throw B.init(g,C),b=_,ve++,b},Mr=()=>{_n("")},tn=(_,g,C,B,F)=>{},K=()=>{for(var _=new Array(256),g=0;g<256;++g)_[g]=String.fromCharCode(g);Fr=_},Fr,V=_=>{for(var g="",C=_;He[C];)g+=Fr[He[C++]];return g},jt={},ot={},kr={},Lt,le=_=>{throw new Lt(_)},rn,Ir=_=>{throw new rn(_)},Dt=(_,g,C)=>{_.forEach(function(j){kr[j]=g});function B(j){var Z=C(j);Z.length!==_.length&&Ir("Mismatched type converter count");for(var q=0;q<_.length;++q)mt(_[q],Z[q])}var F=new Array(g.length),L=[],X=0;g.forEach((j,Z)=>{ot.hasOwnProperty(j)?F[Z]=ot[j]:(L.push(j),jt.hasOwnProperty(j)||(jt[j]=[]),jt[j].push(()=>{F[Z]=ot[j],++X,X===L.length&&B(F)}))}),L.length===0&&B(F)};function bi(_,g,C={}){var B=g.name;if(_||le(`type "${B}" must have a positive integer typeid pointer`),ot.hasOwnProperty(_)){if(C.ignoreDuplicateRegistrations)return;le(`Cannot register type '${B}' twice`)}if(ot[_]=g,delete kr[_],jt.hasOwnProperty(_)){var F=jt[_];delete jt[_],F.forEach(L=>L())}}function mt(_,g,C={}){if(!("argPackAdvance"in g))throw new TypeError("registerType registeredInstance requires argPackAdvance");return bi(_,g,C)}var Ht=8,Oi=(_,g,C,B)=>{g=V(g),mt(_,{name:g,fromWireType:function(F){return!!F},toWireType:function(F,L){return L?C:B},argPackAdvance:Ht,readValueFromPointer:function(F){return this.fromWireType(He[F])},destructorFunction:null})},Bi=_=>({count:_.count,deleteScheduled:_.deleteScheduled,preservePointerOnDelete:_.preservePointerOnDelete,ptr:_.ptr,ptrType:_.ptrType,smartPtr:_.smartPtr,smartPtrType:_.smartPtrType}),In=_=>{function g(C){return C.$$.ptrType.registeredClass.name}le(g(_)+" instance already deleted")},Cn=!1,Gt=_=>{},tr=_=>{_.smartPtr?_.smartPtrType.rawDestructor(_.smartPtr):_.ptrType.registeredClass.rawDestructor(_.ptr)},ut=_=>{_.count.value-=1;var g=_.count.value===0;g&&tr(_)},at=(_,g,C)=>{if(g===C)return _;if(C.baseClass===void 0)return null;var B=at(_,g,C.baseClass);return B===null?null:C.downcast(B)},rr={},Pt=()=>Object.keys(je).length,Cr=()=>{var _=[];for(var g in je)je.hasOwnProperty(g)&&_.push(je[g]);return _},E=[],nr=()=>{for(;E.length;){var _=E.pop();_.$$.deleteScheduled=!1,_.delete()}},p,yn=_=>{p=_,E.length&&p&&p(nr)},ue=()=>{U.getInheritedInstanceCount=Pt,U.getLiveInheritedInstances=Cr,U.flushPendingDeletes=nr,U.setDelayFunction=yn},je={},ce=(_,g)=>{for(g===void 0&&le("ptr should not be undefined");_.baseClass;)g=_.upcast(g),_=_.baseClass;return g},yr=(_,g)=>(g=ce(_,g),je[g]),wn=(_,g)=>{(!g.ptrType||!g.ptr)&&Ir("makeClassHandle requires ptr and ptrType");var C=!!g.smartPtrType,B=!!g.smartPtr;return C!==B&&Ir("Both smartPtrType and smartPtr must be specified"),g.count={value:1},Ce(Object.create(_,{$$:{value:g,writable:!0}}))};function Ge(_){var g=this.getPointee(_);if(!g)return this.destructor(_),null;var C=yr(this.registeredClass,g);if(C!==void 0){if(C.$$.count.value===0)return C.$$.ptr=g,C.$$.smartPtr=_,C.clone();var B=C.clone();return this.destructor(_),B}function F(){return this.isSmartPointer?wn(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:g,smartPtrType:this,smartPtr:_}):wn(this.registeredClass.instancePrototype,{ptrType:this,ptr:_})}var L=this.registeredClass.getActualType(g),X=rr[L];if(!X)return F.call(this);var j;this.isConst?j=X.constPointerType:j=X.pointerType;var Z=at(g,this.registeredClass,j.registeredClass);return Z===null?F.call(this):this.isSmartPointer?wn(j.registeredClass.instancePrototype,{ptrType:j,ptr:Z,smartPtrType:this,smartPtr:_}):wn(j.registeredClass.instancePrototype,{ptrType:j,ptr:Z})}var Ce=_=>typeof FinalizationRegistry=="undefined"?(Ce=g=>g,_):(Cn=new FinalizationRegistry(g=>{ut(g.$$)}),Ce=g=>{var C=g.$$,B=!!C.smartPtr;if(B){var F={$$:C};Cn.register(g,F,g)}return g},Gt=g=>Cn.unregister(g),Ce(_)),bt=()=>{Object.assign(Ur.prototype,{isAliasOf(_){if(!(this instanceof Ur)||!(_ instanceof Ur))return!1;var g=this.$$.ptrType.registeredClass,C=this.$$.ptr;_.$$=_.$$;for(var B=_.$$.ptrType.registeredClass,F=_.$$.ptr;g.baseClass;)C=g.upcast(C),g=g.baseClass;for(;B.baseClass;)F=B.upcast(F),B=B.baseClass;return g===B&&C===F},clone(){if(this.$$.ptr||In(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var _=Ce(Object.create(Object.getPrototypeOf(this),{$$:{value:Bi(this.$$)}}));return _.$$.count.value+=1,_.$$.deleteScheduled=!1,_},delete(){this.$$.ptr||In(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&le("Object already scheduled for deletion"),Gt(this),ut(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||In(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&le("Object already scheduled for deletion"),E.push(this),E.length===1&&p&&p(nr),this.$$.deleteScheduled=!0,this}})};function Ur(){}var wr=(_,g)=>Object.defineProperty(g,"name",{value:_}),Ot=(_,g,C)=>{if(_[g].overloadTable===void 0){var B=_[g];_[g]=function(...F){return _[g].overloadTable.hasOwnProperty(F.length)||le(`Function '${C}' called with an invalid number of arguments (${F.length}) - expects one of (${_[g].overloadTable})!`),_[g].overloadTable[F.length].apply(this,F)},_[g].overloadTable=[],_[g].overloadTable[B.argCount]=B}},Dr=(_,g,C)=>{U.hasOwnProperty(_)?((C===void 0||U[_].overloadTable!==void 0&&U[_].overloadTable[C]!==void 0)&&le(`Cannot register public name '${_}' twice`),Ot(U,_,_),U.hasOwnProperty(C)&&le(`Cannot register multiple overloads of a function with the same number of arguments (${C})!`),U[_].overloadTable[C]=g):(U[_]=g,C!==void 0&&(U[_].numArguments=C))},Ti=48,Hn=57,vi=_=>{if(_===void 0)return"_unknown";_=_.replace(/[^a-zA-Z0-9_]/g,"$");var g=_.charCodeAt(0);return g>=Ti&&g<=Hn?`_${_}`:_};function Dn(_,g,C,B,F,L,X,j){this.name=_,this.constructor=g,this.instancePrototype=C,this.rawDestructor=B,this.baseClass=F,this.getActualType=L,this.upcast=X,this.downcast=j,this.pureVirtualFunctions=[]}var ir=(_,g,C)=>{for(;g!==C;)g.upcast||le(`Expected null or instance of ${C.name}, got an instance of ${g.name}`),_=g.upcast(_),g=g.baseClass;return _};function Q(_,g){if(g===null)return this.isReference&&le(`null is not a valid ${this.name}`),0;g.$$||le(`Cannot pass "${on(g)}" as a ${this.name}`),g.$$.ptr||le(`Cannot pass deleted object as a pointer of type ${this.name}`);var C=g.$$.ptrType.registeredClass,B=ir(g.$$.ptr,C,this.registeredClass);return B}function P(_,g){var C;if(g===null)return this.isReference&&le(`null is not a valid ${this.name}`),this.isSmartPointer?(C=this.rawConstructor(),_!==null&&_.push(this.rawDestructor,C),C):0;(!g||!g.$$)&&le(`Cannot pass "${on(g)}" as a ${this.name}`),g.$$.ptr||le(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&g.$$.ptrType.isConst&&le(`Cannot convert argument of type ${g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name} to parameter type ${this.name}`);var B=g.$$.ptrType.registeredClass;if(C=ir(g.$$.ptr,B,this.registeredClass),this.isSmartPointer)switch(g.$$.smartPtr===void 0&&le("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:g.$$.smartPtrType===this?C=g.$$.smartPtr:le(`Cannot convert argument of type ${g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:C=g.$$.smartPtr;break;case 2:if(g.$$.smartPtrType===this)C=g.$$.smartPtr;else{var F=g.clone();C=this.rawShare(C,ne.toHandle(()=>F.delete())),_!==null&&_.push(this.rawDestructor,C)}break;default:le("Unsupporting sharing policy")}return C}function bn(_,g){if(g===null)return this.isReference&&le(`null is not a valid ${this.name}`),0;g.$$||le(`Cannot pass "${on(g)}" as a ${this.name}`),g.$$.ptr||le(`Cannot pass deleted object as a pointer of type ${this.name}`),g.$$.ptrType.isConst&&le(`Cannot convert argument of type ${g.$$.ptrType.name} to parameter type ${this.name}`);var C=g.$$.ptrType.registeredClass,B=ir(g.$$.ptr,C,this.registeredClass);return B}function Nr(_){return this.fromWireType(he[_>>2])}var Gn=()=>{Object.assign(nn.prototype,{getPointee(_){return this.rawGetPointee&&(_=this.rawGetPointee(_)),_},destructor(_){var g;(g=this.rawDestructor)==null||g.call(this,_)},argPackAdvance:Ht,readValueFromPointer:Nr,fromWireType:Ge})};function nn(_,g,C,B,F,L,X,j,Z,q,J){this.name=_,this.registeredClass=g,this.isReference=C,this.isConst=B,this.isSmartPointer=F,this.pointeeType=L,this.sharingPolicy=X,this.rawGetPointee=j,this.rawConstructor=Z,this.rawShare=q,this.rawDestructor=J,!F&&g.baseClass===void 0?B?(this.toWireType=Q,this.destructorFunction=null):(this.toWireType=bn,this.destructorFunction=null):this.toWireType=P}var Qi=(_,g,C)=>{U.hasOwnProperty(_)||Ir("Replacing nonexistent public symbol"),U[_].overloadTable!==void 0&&C!==void 0?U[_].overloadTable[C]=g:(U[_]=g,U[_].argCount=C)},so=(_,g,C)=>{_=_.replace(/p/g,"i");var B=U["dynCall_"+_];return B(g,...C)},On=[],br,Rt=_=>{var g=On[_];return g||(_>=On.length&&(On.length=_+1),On[_]=g=br.get(_)),g},Yt=(_,g,C=[])=>{if(_.includes("j"))return so(_,g,C);var B=Rt(g)(...C);return B},xr=(_,g)=>(...C)=>Yt(_,g,C),Bt=(_,g)=>{_=V(_);function C(){return _.includes("j")?xr(_,g):Rt(g)}var B=C();return typeof B!="function"&&le(`unknown function pointer with signature ${_}: ${g}`),B},Bn=(_,g)=>{var C=wr(g,function(B){this.name=g,this.message=B;var F=new Error(B).stack;F!==void 0&&(this.stack=this.toString()+`
60
+ `+F.replace(/^Error(:[^\n]*)?\n/,""))});return C.prototype=Object.create(_.prototype),C.prototype.constructor=C,C.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},C},Xt,St=_=>{var g=un(_),C=V(g);return Tt(g),C},Or=(_,g)=>{var C=[],B={};function F(L){if(!B[L]&&!ot[L]){if(kr[L]){kr[L].forEach(F);return}C.push(L),B[L]=!0}}throw g.forEach(F),new Xt(`${_}: `+C.map(St).join([", "]))},Pi=(_,g,C,B,F,L,X,j,Z,q,J,Ie,Oe)=>{J=V(J),L=Bt(F,L),j&&(j=Bt(X,j)),q&&(q=Bt(Z,q)),Oe=Bt(Ie,Oe);var we=vi(J);Dr(we,function(){Or(`Cannot construct ${J} due to unbound types`,[B])}),Dt([_,g,C],B?[B]:[],Le=>{var Qn,Yr;Le=Le[0];var gt,st;B?(gt=Le.registeredClass,st=gt.instancePrototype):st=Ur.prototype;var Je=wr(J,function(...Br){if(Object.getPrototypeOf(this)!==lr)throw new Lt("Use 'new' to construct "+J);if(Ue.constructor_body===void 0)throw new Lt(J+" has no accessible constructor");var Zn=Ue.constructor_body[Br.length];if(Zn===void 0)throw new Lt(`Tried to invoke ctor of ${J} with invalid number of parameters (${Br.length}) - expected (${Object.keys(Ue.constructor_body).toString()}) parameters instead!`);return Zn.apply(this,Br)}),lr=Object.create(st,{constructor:{value:Je}});Je.prototype=lr;var Ue=new Dn(J,Je,lr,Oe,gt,L,j,q);Ue.baseClass&&((Yr=(Qn=Ue.baseClass).__derivedClasses)!=null||(Qn.__derivedClasses=[]),Ue.baseClass.__derivedClasses.push(Ue));var Ct=new nn(J,Ue,!0,!1,!1),Et=new nn(J+"*",Ue,!1,!1,!1),dr=new nn(J+" const*",Ue,!1,!0,!1);return rr[_]={pointerType:Et,constPointerType:dr},Qi(we,Je),[Ct,Et,dr]})},Yn=(_,g)=>{for(var C=[],B=0;B<_;B++)C.push(he[g+B*4>>2]);return C},Tn=_=>{for(;_.length;){var g=_.pop(),C=_.pop();C(g)}};function Ri(_){for(var g=1;g<_.length;++g)if(_[g]!==null&&_[g].destructorFunction===void 0)return!0;return!1}function Xn(_,g,C,B,F,L){var X=g.length;X<2&&le("argTypes array size mismatch! Must at least get return value and 'this' types!");var j=g[1]!==null&&C!==null,Z=Ri(g),q=g[0].name!=="void",J=X-2,Ie=new Array(J),Oe=[],we=[],Le=function(...gt){gt.length!==J&&le(`function ${_} called with ${gt.length} arguments, expected ${J}`),we.length=0;var st;Oe.length=j?2:1,Oe[0]=F,j&&(st=g[1].toWireType(we,this),Oe[1]=st);for(var Je=0;Je<J;++Je)Ie[Je]=g[Je+2].toWireType(we,gt[Je]),Oe.push(Ie[Je]);var lr=B(...Oe);function Ue(Ct){if(Z)Tn(we);else for(var Et=j?1:2;Et<g.length;Et++){var dr=Et===1?st:Ie[Et-2];g[Et].destructorFunction!==null&&g[Et].destructorFunction(dr)}if(q)return g[0].fromWireType(Ct)}return Ue(lr)};return wr(_,Le)}var Si=(_,g,C,B,F,L)=>{var X=Yn(g,C);F=Bt(B,F),Dt([],[_],j=>{j=j[0];var Z=`constructor ${j.name}`;if(j.registeredClass.constructor_body===void 0&&(j.registeredClass.constructor_body=[]),j.registeredClass.constructor_body[g-1]!==void 0)throw new Lt(`Cannot register multiple constructors with identical number of parameters (${g-1}) for class '${j.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return j.registeredClass.constructor_body[g-1]=()=>{Or(`Cannot construct ${j.name} due to unbound types`,X)},Dt([],X,q=>(q.splice(1,0,null),j.registeredClass.constructor_body[g-1]=Xn(Z,q,null,F,L),[])),[]})},Mi=_=>{_=_.trim();let g=_.indexOf("(");return g!==-1?_.substr(0,g):_},Wn=(_,g,C,B,F,L,X,j,Z)=>{var q=Yn(C,B);g=V(g),g=Mi(g),L=Bt(F,L),Dt([],[_],J=>{J=J[0];var Ie=`${J.name}.${g}`;g.startsWith("@@")&&(g=Symbol[g.substring(2)]),j&&J.registeredClass.pureVirtualFunctions.push(g);function Oe(){Or(`Cannot call ${Ie} due to unbound types`,q)}var we=J.registeredClass.instancePrototype,Le=we[g];return Le===void 0||Le.overloadTable===void 0&&Le.className!==J.name&&Le.argCount===C-2?(Oe.argCount=C-2,Oe.className=J.name,we[g]=Oe):(Ot(we,g,Ie),we[g].overloadTable[C-2]=Oe),Dt([],q,gt=>{var st=Xn(Ie,gt,J,L,X,Z);return we[g].overloadTable===void 0?(st.argCount=C-2,we[g]=st):we[g].overloadTable[C-2]=st,[]}),[]})},_e=(_,g,C)=>(_ instanceof Object||le(`${C} with invalid "this": ${_}`),_ instanceof g.registeredClass.constructor||le(`${C} incompatible with "this" of type ${_.constructor.name}`),_.$$.ptr||le(`cannot call emscripten binding method ${C} on deleted object`),ir(_.$$.ptr,_.$$.ptrType.registeredClass,g.registeredClass)),me=(_,g,C,B,F,L,X,j,Z,q)=>{g=V(g),F=Bt(B,F),Dt([],[_],J=>{J=J[0];var Ie=`${J.name}.${g}`,Oe={get(){Or(`Cannot access ${Ie} due to unbound types`,[C,X])},enumerable:!0,configurable:!0};return Z?Oe.set=()=>Or(`Cannot access ${Ie} due to unbound types`,[C,X]):Oe.set=we=>le(Ie+" is a read-only property"),Object.defineProperty(J.registeredClass.instancePrototype,g,Oe),Dt([],Z?[C,X]:[C],we=>{var Le=we[0],gt={get(){var Je=_e(this,J,Ie+" getter");return Le.fromWireType(F(L,Je))},enumerable:!0};if(Z){Z=Bt(j,Z);var st=we[1];gt.set=function(Je){var lr=_e(this,J,Ie+" setter"),Ue=[];Z(q,lr,st.toWireType(Ue,Je)),Tn(Ue)}}return Object.defineProperty(J.registeredClass.instancePrototype,g,gt),[]}),[]})},lt=[],Qe=[],It=_=>{_>9&&--Qe[_+1]===0&&(Qe[_]=void 0,lt.push(_))},Fi=()=>Qe.length/2-5-lt.length,Vn=()=>{Qe.push(0,1,void 0,1,null,1,!0,1,!1,1),U.count_emval_handles=Fi},ne={toValue:_=>(_||le("Cannot use deleted val. handle = "+_),Qe[_]),toHandle:_=>{switch(_){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let g=lt.pop()||Qe.length;return Qe[g]=_,Qe[g+1]=1,g}}}},se={name:"emscripten::val",fromWireType:_=>{var g=ne.toValue(_);return It(_),g},toWireType:(_,g)=>ne.toHandle(g),argPackAdvance:Ht,readValueFromPointer:Nr,destructorFunction:null},ki=_=>mt(_,se),on=_=>{if(_===null)return"null";var g=typeof _;return g==="object"||g==="array"||g==="function"?_.toString():""+_},f=(_,g)=>{switch(g){case 4:return function(C){return this.fromWireType(Nn[C>>2])};case 8:return function(C){return this.fromWireType(Nt[C>>3])};default:throw new TypeError(`invalid float width (${g}): ${_}`)}},l=(_,g,C)=>{g=V(g),mt(_,{name:g,fromWireType:B=>B,toWireType:(B,F)=>F,argPackAdvance:Ht,readValueFromPointer:f(g,C),destructorFunction:null})},Se=(_,g,C)=>{switch(g){case 1:return C?B=>Ut[B]:B=>He[B];case 2:return C?B=>hr[B>>1]:B=>ht[B>>1];case 4:return C?B=>mr[B>>2]:B=>he[B>>2];default:throw new TypeError(`invalid integer width (${g}): ${_}`)}},Ui=(_,g,C,B,F)=>{g=V(g),F===-1&&(F=4294967295);var L=J=>J;if(B===0){var X=32-8*C;L=J=>J<<X>>>X}var j=g.includes("unsigned"),Z=(J,Ie)=>{},q;j?q=function(J,Ie){return Z(Ie,this.name),Ie>>>0}:q=function(J,Ie){return Z(Ie,this.name),Ie},mt(_,{name:g,fromWireType:L,toWireType:q,argPackAdvance:Ht,readValueFromPointer:Se(g,C,B!==0),destructorFunction:null})},Ni=(_,g,C)=>{var B=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],F=B[g];function L(X){var j=he[X>>2],Z=he[X+4>>2];return new F(Ut.buffer,Z,j)}C=V(C),mt(_,{name:C,fromWireType:L,argPackAdvance:Ht,readValueFromPointer:L},{ignoreDuplicateRegistrations:!0})},xi=(_,g,C,B)=>{if(!(B>0))return 0;for(var F=C,L=C+B-1,X=0;X<_.length;++X){var j=_.charCodeAt(X);if(j>=55296&&j<=57343){var Z=_.charCodeAt(++X);j=65536+((j&1023)<<10)|Z&1023}if(j<=127){if(C>=L)break;g[C++]=j}else if(j<=2047){if(C+1>=L)break;g[C++]=192|j>>6,g[C++]=128|j&63}else if(j<=65535){if(C+2>=L)break;g[C++]=224|j>>12,g[C++]=128|j>>6&63,g[C++]=128|j&63}else{if(C+3>=L)break;g[C++]=240|j>>18,g[C++]=128|j>>12&63,g[C++]=128|j>>6&63,g[C++]=128|j&63}}return g[C]=0,C-F},ji=(_,g,C)=>xi(_,He,g,C),Li=_=>{for(var g=0,C=0;C<_.length;++C){var B=_.charCodeAt(C);B<=127?g++:B<=2047?g+=2:B>=55296&&B<=57343?(g+=4,++C):g+=3}return g},zn=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Hi=(_,g,C)=>{for(var B=g+C,F=g;_[F]&&!(F>=B);)++F;if(F-g>16&&_.buffer&&zn)return zn.decode(_.subarray(g,F));for(var L="";g<F;){var X=_[g++];if(!(X&128)){L+=String.fromCharCode(X);continue}var j=_[g++]&63;if((X&224)==192){L+=String.fromCharCode((X&31)<<6|j);continue}var Z=_[g++]&63;if((X&240)==224?X=(X&15)<<12|j<<6|Z:X=(X&7)<<18|j<<12|Z<<6|_[g++]&63,X<65536)L+=String.fromCharCode(X);else{var q=X-65536;L+=String.fromCharCode(55296|q>>10,56320|q&1023)}}return L},an=(_,g)=>_?Hi(He,_,g):"",or=(_,g)=>{g=V(g);var C=g==="std::string";mt(_,{name:g,fromWireType(B){var F=he[B>>2],L=B+4,X;if(C)for(var j=L,Z=0;Z<=F;++Z){var q=L+Z;if(Z==F||He[q]==0){var J=q-j,Ie=an(j,J);X===void 0?X=Ie:(X+=String.fromCharCode(0),X+=Ie),j=q+1}}else{for(var Oe=new Array(F),Z=0;Z<F;++Z)Oe[Z]=String.fromCharCode(He[L+Z]);X=Oe.join("")}return Tt(B),X},toWireType(B,F){F instanceof ArrayBuffer&&(F=new Uint8Array(F));var L,X=typeof F=="string";X||F instanceof Uint8Array||F instanceof Uint8ClampedArray||F instanceof Int8Array||le("Cannot pass non-string to std::string"),C&&X?L=Li(F):L=F.length;var j=zt(4+L+1),Z=j+4;if(he[j>>2]=L,C&&X)ji(F,Z,L+1);else if(X)for(var q=0;q<L;++q){var J=F.charCodeAt(q);J>255&&(Tt(Z),le("String has UTF-16 code units that do not fit in 8 bits")),He[Z+q]=J}else for(var q=0;q<L;++q)He[Z+q]=F[q];return B!==null&&B.push(Tt,j),j},argPackAdvance:Ht,readValueFromPointer:Nr,destructorFunction(B){Tt(B)}})},ar=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,tt=(_,g)=>{for(var C=_,B=C>>1,F=B+g/2;!(B>=F)&&ht[B];)++B;if(C=B<<1,C-_>32&&ar)return ar.decode(He.subarray(_,C));for(var L="",X=0;!(X>=g/2);++X){var j=hr[_+X*2>>1];if(j==0)break;L+=String.fromCharCode(j)}return L},dt=(_,g,C)=>{if(C!=null||(C=2147483647),C<2)return 0;C-=2;for(var B=g,F=C<_.length*2?C/2:_.length,L=0;L<F;++L){var X=_.charCodeAt(L);hr[g>>1]=X,g+=2}return hr[g>>1]=0,g-B},Gi=_=>_.length*2,Yi=(_,g)=>{for(var C=0,B="";!(C>=g/4);){var F=mr[_+C*4>>2];if(F==0)break;if(++C,F>=65536){var L=F-65536;B+=String.fromCharCode(55296|L>>10,56320|L&1023)}else B+=String.fromCharCode(F)}return B},sn=(_,g,C)=>{if(C!=null||(C=2147483647),C<4)return 0;for(var B=g,F=B+C-4,L=0;L<_.length;++L){var X=_.charCodeAt(L);if(X>=55296&&X<=57343){var j=_.charCodeAt(++L);X=65536+((X&1023)<<10)|j&1023}if(mr[g>>2]=X,g+=4,g+4>F)break}return mr[g>>2]=0,g-B},sr=_=>{for(var g=0,C=0;C<_.length;++C){var B=_.charCodeAt(C);B>=55296&&B<=57343&&++C,g+=4}return g},jr=(_,g,C)=>{C=V(C);var B,F,L,X;g===2?(B=tt,F=dt,X=Gi,L=j=>ht[j>>1]):g===4&&(B=Yi,F=sn,X=sr,L=j=>he[j>>2]),mt(_,{name:C,fromWireType:j=>{for(var Z=he[j>>2],q,J=j+4,Ie=0;Ie<=Z;++Ie){var Oe=j+4+Ie*g;if(Ie==Z||L(Oe)==0){var we=Oe-J,Le=B(J,we);q===void 0?q=Le:(q+=String.fromCharCode(0),q+=Le),J=Oe+g}}return Tt(j),q},toWireType:(j,Z)=>{typeof Z!="string"&&le(`Cannot pass non-string to C++ string type ${C}`);var q=X(Z),J=zt(4+q+g);return he[J>>2]=q/g,F(Z,J+4,q+g),j!==null&&j.push(Tt,J),J},argPackAdvance:Ht,readValueFromPointer:Nr,destructorFunction(j){Tt(j)}})},$n=(_,g)=>{g=V(g),mt(_,{isVoid:!0,name:g,argPackAdvance:0,fromWireType:()=>{},toWireType:(C,B)=>{}})},Kn=(_,g,C)=>He.copyWithin(_,g,g+C),ke=(_,g)=>{var C=ot[_];return C===void 0&&le(`${g} has unknown type ${St(_)}`),C},xe=(_,g,C)=>{var B=[],F=_.toWireType(B,C);return B.length&&(he[g>>2]=ne.toHandle(B)),F},Xi=(_,g,C)=>(_=ne.toValue(_),g=ke(g,"emval::as"),xe(g,C,_)),Lr={},Ar=_=>{var g=Lr[_];return g===void 0?V(_):g},Mt=[],Hr=(_,g,C,B,F)=>(_=Mt[_],g=ne.toValue(g),C=Ar(C),_(g,g[C],B,F)),Wi=_=>{var g=Mt.length;return Mt.push(_),g},Ft=(_,g)=>{for(var C=new Array(_),B=0;B<_;++B)C[B]=ke(he[g+B*4>>2],"parameter "+B);return C},rt=Reflect.construct,ae=(_,g,C)=>{var B=Ft(_,g),F=B.shift();_--;var L=new Array(_),X=(Z,q,J,Ie)=>{for(var Oe=0,we=0;we<_;++we)L[we]=B[we].readValueFromPointer(Ie+Oe),Oe+=B[we].argPackAdvance;var Le=C===1?rt(q,L):q.apply(Z,L);return xe(F,J,Le)},j=`methodCaller<(${B.map(Z=>Z.name).join(", ")}) => ${F.name}>`;return Wi(wr(j,X))},Ae=_=>{_>9&&(Qe[_+1]+=1)},vn=_=>{var g=ne.toValue(_);Tn(g),It(_)},Jn=(_,g)=>{_=ke(_,"_emval_take_value");var C=_.readValueFromPointer(g);return ne.toHandle(C)},Wt=_=>{_n("OOM")},Vt=_=>{var g=He.length;_>>>=0,Wt(_)};K(),Lt=U.BindingError=class extends Error{constructor(g){super(g),this.name="BindingError"}},rn=U.InternalError=class extends Error{constructor(g){super(g),this.name="InternalError"}},bt(),ue(),Gn(),Xt=U.UnboundTypeError=Bn(Error,"UnboundTypeError"),Vn();var An={v:Ye,p:Mr,o:tn,t:Oi,x:Pi,w:Si,h:Wn,k:me,s:ki,n:l,g:Ui,a:Ni,m:or,l:jr,u:$n,r:Kn,j:Xi,e:Hr,c:It,f:ae,d:Ae,b:vn,i:Jn,q:Vt},ft=De(),cn=()=>(cn=ft.z)(),zt=_=>(zt=ft.A)(_),un=_=>(un=ft.C)(_),Tt=_=>(Tt=ft.D)(_),$t=_=>($t=ft.E)(_),Gr=U._vertexShaderSource=10192,cr;wt=function _(){cr||ur(),cr||(wt=_)};function ur(){if(Ke>0||(ao(),Ke>0))return;function _(){cr||(cr=!0,U.calledRun=!0,!et&&(yi(),Fe(U),U.onRuntimeInitialized&&U.onRuntimeInitialized(),Pr()))}U.setStatus?(U.setStatus("Running..."),setTimeout(function(){setTimeout(function(){U.setStatus("")},1),_()},1)):_()}if(U.preInit)for(typeof U.preInit=="function"&&(U.preInit=[U.preInit]);U.preInit.length>0;)U.preInit.pop()();return ur(),ge=Ze,ge}})(),mc=qc;var Mo=class{constructor(G,n){Xe(this,"canvas");Xe(this,"locateFile");Xe(this,"_glName");Xe(this,"_solutionWasm");Xe(this,"ctx");Xe(this,"fileDownloader");Xe(this,"startTime");Xe(this,"lastTimestamp");Xe(this,"pl",{onResults:G=>this.onResults(G.get(0).glName)});this.locateFile=ge=>`${G}/${ge}`,this.fileDownloader=n}bindTexture(){var G;(G=this.ctx)==null||G.activeTexture(this.ctx.TEXTURE0),this.bindTexture2d(this._glName)}async initialize(){this._solutionWasm=new this.SolutionWasm;let G=new this.StringList;G.push_back("segmentation_mask");let n=this.PacketListener.implement(this.pl);return this._solutionWasm.attachMultiListener(G,n),G.delete(),this._solutionWasm.loadGraph(await this.fileDownloader.download(this.locateFile("selfie_segmentation.binarypb"),{type:"arraybuffer"})),this}setCanvas(G){this.canvas=G,this.createContext(G,!0,!0,{}),this._glName=this.createTexture()}fetchResponse(G){return this.fileDownloader.downloadWithFetch(G,"fetch-response")}loadWasm(G,n){return this.fileDownloader.loadWasm(G,n)}async changeModel(G="selfie_segmentation_landscape.tflite"){G=typeof G=="string"?await this.fileDownloader.download(this.locateFile(G),{type:"arraybuffer"}):G,this._solutionWasm.overrideFile("third_party/mediapipe/modules/selfie_segmentation/selfie_segmentation_landscape.tflite",G);let n=new this.GraphOptionChangeRequestList;n.push_back({calculatorIndex:1,calculatorName:"",calculatorType:"GlScalerCalculator",fieldName:"flip_horizontal",valueBoolean:!1,valueNumber:0,valueString:""}),n.push_back({calculatorIndex:0,calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelSelection",fieldName:"int_value",valueBoolean:!1,valueNumber:1,valueString:""}),n.push_back({calculatorIndex:0,calculatorType:"InferenceCalculator",calculatorName:"",fieldName:"use_cpu_inference",valueBoolean:!1,valueNumber:0,valueString:""}),this._solutionWasm.changeOptions(n),this.startTime=Date.now()}send(G,n){let ge=new this.PacketDataList,U=Date.now()-this.startTime;this.lastTimestamp&&this.lastTimestamp>=U?this.lastTimestamp=U+1:this.lastTimestamp=U,ge.pushTexture2d({stream:"input_frames_gpu",timestamp:this.lastTimestamp,glName:this._glName,width:G,height:n}),this._solutionWasm.send(ge),ge.delete()}close(){var G,n,ge;(G=this.canvas)==null||delete G.getContext,delete this.readyPromiseResolve,delete this.readyPromiseReject,this.pl.onResults=null,delete this.onResults,(n=this.deleteTexture)==null||n.call(this,this._glName),(ge=this._solutionWasm)==null||ge.delete();for(let U of Object.keys(this))delete this[U]}};var Fo=0,Uo=class Uo{constructor(G){this.core=G;Xe(this,"seq");Xe(this,"_core");Xe(this,"log");Xe(this,"preLoadPromise");Xe(this,"startResolve");Xe(this,"startReject");Xe(this,"mediaPipeSolutions");Xe(this,"assetsPath");Fo=Fo+1,this.seq=Fo,this._core=G,this.log=G.log.createChild({id:`${this.getAlias()}${Fo}`}),this.log.info("created"),G.assetsPath&&(this.preLoadPromise=this.preload(G.assetsPath))}static isSupported(){let n=document.createElement("canvas").getContext("webgl2");return!!(n&&n instanceof WebGL2RenderingContext)}async preload(G="https://web.sdk.qcloud.com/trtc/webrtc/v5/assets/"){try{this._core.room.videoManager.Wasm||(this._core.room.videoManager.Wasm=await mc()),this.assetsPath=`${G}/selfie_segmentation/`;let n=new Mo(this.assetsPath,this._core.fileDownloader);n.onAbort=ge=>{this.log.error("mediaPipeSolutions abort",ge),this.core.clearStarted(this,this.getGroup()),this.stop()},this.mediaPipeSolutions=await(this.core.rtcDectection.isSIMDSupported()?_c:hc)(n),await this.mediaPipeSolutions.initialize(),await this._core.room.videoManager.initVirtualBackground(this.mediaPipeSolutions)}catch(n){let{RtcError:ge,ErrorCode:U}=this._core.errorModule;throw new ge({code:U.INVALID_OPERATION,message:`VirtualBackground preload error, please check your assetsPath. detail: ${n}`})}}getName(){return Uo.Name}getAlias(){return"vb"}getValidateRule(G){switch(G){case"start":return gc(this._core);case"update":return Ec(this._core);case"stop":return pc(this._core)}}getGroup(){return"vb"}async start(G){let{type:n="blur",src:ge,blurLevel:U=3}=G,{auth:Fe,sign:ye,timestamp:Ze}=await fc({sdkAppId:G.sdkAppId,userId:G.userId,userSig:G.userSig,core:this._core});if(!Fe){let{RtcError:ct,ErrorCode:qe,ErrorCodeDictionary:Ve}=this._core.errorModule;throw new ct({code:qe.SERVER_ERROR,extraCode:Ve.NEED_TO_BUY,messageParams:{value:"Virtual Background",url:"https://cloud.tencent.com/document/product/647/85386"}})}return this.preLoadPromise||(this.preLoadPromise=this.preload(this._core.assetsPath)),await this.preLoadPromise,this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:ge,blurLevel:U})}async update(G){let{type:n,src:ge}=G;return this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:ge,blurLevel:G.blurLevel})}async stop(){return this.core.room.videoManager.setVirtualBackground()}};Xe(Uo,"Name","VirtualBackground");var ko=Uo;var eu=ko;return $c(tu);})().default;