trtc-sdk-v5 5.6.2-beta.5 → 5.6.2-beta.6

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,31 @@
1
- var gc=Object.defineProperty,lc=Object.defineProperties;var uc=Object.getOwnPropertyDescriptors;var Ai=Object.getOwnPropertySymbols;var dc=Object.prototype.hasOwnProperty,fc=Object.prototype.propertyIsEnumerable;var RA=(z,S,n)=>S in z?gc(z,S,{enumerable:!0,configurable:!0,writable:!0,value:n}):z[S]=n,ii=(z,S)=>{for(var n in S||(S={}))dc.call(S,n)&&RA(z,n,S[n]);if(Ai)for(var n of Ai(S))fc.call(S,n)&&RA(z,n,S[n]);return z},oi=(z,S)=>lc(z,uc(S));var Ec=(z=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(z,{get:(S,n)=>(typeof require!="undefined"?require:S)[n]}):z)(function(z){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+z+'" is not supported')});var pe=(z,S,n)=>(RA(z,typeof S!="symbol"?S+"":S,n),n);async function si({sdkAppId:z,userId:S,userSig:n,core:T}){var ye;let me=T.utils.getAbilityConfigUrl(z),ce=Math.round(new Date().getTime()/1e3),ge=`${me}?sdkAppId=${z}&userId=${S}&userSig=${n}&timestamp=${ce}`;try{let Re=await(await fetch(ge)).json();T.log.info(`virtual background send ${ge}, response: ${JSON.stringify(Re)}`);let{data:Le}=Re;return(ye=Le==null?void 0:Le.trtcAutoConf)!=null&&ye.web_ar?{auth:!0,timestamp:ce}:{auth:!1}}catch(Te){return T.log.error("beauty fetch error",Te),{auth:!1}}}var Ic={sdkAppId:{required:!0,type:"number"},userId:{required:!0,type:"string"},userSig:{required:!0,type:"string"}};function ai(z){return{name:"VirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:oi(ii({},Ic),{type:{required:!1,type:"string",values:["image","blur"]},src:{required:!1,type:"string"},onError:{required:!1}}),validate(S,n,T,me){var We;let{RtcError:ce,ErrorCode:ge,ErrorCodeDictionary:ye}=z.errorModule;if(!S)return;let{type:Te,src:Re,onError:Le}=S;if(Te==="image"&&!Re)throw new ce({code:ge.INVALID_PARAMETER,extraCode:ye.INVALID_PARAMETER_REQUIRED,fnName:T,messageParams:{key:"src"}});if(Le&&!z.utils.isFunction(Le))throw new ce({code:ge.INVALID_PARAMETER,extraCode:ye.INVALID_PARAMETER_TYPE,fnName:T,messageParams:{key:"onError",value:typeof Le,rule:{type:"Function"}}});if(!((We=z.room.videoManager.cameraTrack)!=null&&We.mediaTrack))throw new ce({code:ge.INVALID_OPERATION,extraCode:ye.INVALID_OPERATION_NEED_VIDEO,fnName:T});if(z.environment.CHROME_MAJOR_VERSION<90)throw new ce({code:ge.ENV_NOT_SUPPORTED,extraCode:ye.NOT_SUPPORTED_CHROME_VERSION,fnName:T})}}}function ci(z){return{name:"UpdateVirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:{type:{required:!0,type:"string",values:["image","blur"]},src:{required:!1,type:"string"}},validate(S,n,T,me){if(!S)return;let{RtcError:ce,ErrorCode:ge,ErrorCodeDictionary:ye}=z.errorModule,{type:Te,src:Re}=S;if(Te==="image"&&!Re)throw new ce({code:ge.INVALID_PARAMETER,extraCode:ye.INVALID_PARAMETER_REQUIRED,fnName:T,messageParams:{key:"src"}})}}}function gi(z){return{name:"StopVirtualBackgroundOptions",required:!1}}var Cc=function(){let z=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(z=z||__filename),function(S){S=S||{};let n=typeof S!="undefined"?S:{},T,me;n.ready=new Promise((e,t)=>{T=e,me=t}),Object.getOwnPropertyDescriptor(n.ready,"_main")||(Object.defineProperty(n.ready,"_main",{configurable:!0,get(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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 ce={},ge;for(ge in n)n.hasOwnProperty(ge)&&(ce[ge]=n[ge]);let ye=[],Te="./this.program",Re=function(e,t){throw t},Le=typeof window=="object",We=typeof importScripts=="function",Qt=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",nt=!Le&&!Qt&&!We;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 Ge="";function Nn(e){return n.locateFile?n.locateFile(e,Ge):Ge+e}let Ft,Fr,yt,Zt,Un,PA;if(Le||We){if(We?Ge=self.location.href:typeof document!="undefined"&&document.currentScript&&(Ge=document.currentScript.src),z&&(Ge=z),Ge.indexOf("blob:")!==0?Ge=Ge.substr(0,Ge.lastIndexOf("/")+1):Ge="",!(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?)");Ft=function(e){let t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},We&&(yt=function(e){let t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),Fr=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)},Zt=function(e){document.title=e}}else throw new Error("environment detection error");let _e=n.print||console.log.bind(console),K=n.printErr||console.warn.bind(console);for(ge in ce)ce.hasOwnProperty(ge)&&(n[ge]=ce[ge]);ce=null,n.arguments&&(ye=n.arguments),Object.getOwnPropertyDescriptor(n,"arguments")||Object.defineProperty(n,"arguments",{configurable:!0,get(){u("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&&(Te=n.thisProgram),Object.getOwnPropertyDescriptor(n,"thisProgram")||Object.defineProperty(n,"thisProgram",{configurable:!0,get(){u("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&&(Re=n.quit),Object.getOwnPropertyDescriptor(n,"quit")||Object.defineProperty(n,"quit",{configurable:!0,get(){u("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)")}}),P(typeof n.memoryInitializerPrefixURL=="undefined","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),P(typeof n.pthreadMainPrefixURL=="undefined","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),P(typeof n.cdInitializerPrefixURL=="undefined","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),P(typeof n.filePackagePrefixURL=="undefined","Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),P(typeof n.read=="undefined","Module.read option was removed (modify read_ in JS)"),P(typeof n.readAsync=="undefined","Module.readAsync option was removed (modify readAsync in JS)"),P(typeof n.readBinary=="undefined","Module.readBinary option was removed (modify readBinary in JS)"),P(typeof n.setWindowTitle=="undefined","Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),P(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(){u("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(){u("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(){u("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(){u("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)")}}),P(!nt,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");function Me(e){Me.shown||(Me.shown={}),Me.shown[e]||(Me.shown[e]=1,K(e))}function ft(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 Be=[],je;function Vt(){if(Be.length)return Be.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 Jt(e,t){if(!je){je=new WeakMap;for(let A=0;A<v.length;A++){let i=v.get(A);i&&je.set(i,A)}}if(je.has(e))return je.get(e);let r=Vt();try{v.set(r,e)}catch(A){if(!(A instanceof TypeError))throw A;P(typeof t!="undefined",`Missing signature argument to addFunction: ${e}`);let i=ft(e,t);v.set(r,i)}return je.set(e,r),r}let Ae=0,He=function(e){Ae=e},vr=function(){return Ae},gr;n.wasmBinary&&(gr=n.wasmBinary),Object.getOwnPropertyDescriptor(n,"wasmBinary")||Object.defineProperty(n,"wasmBinary",{configurable:!0,get(){u("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 kr=n.noExitRuntime||!0;Object.getOwnPropertyDescriptor(n,"noExitRuntime")||Object.defineProperty(n,"noExitRuntime",{configurable:!0,get(){u("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"&&u("no native wasm support detected");let _t,Ze=!1,zt;function P(e,t){e||u(`Assertion failed: ${t}`)}function xn(e){let t=n[`_${e}`];return P(t,`Cannot call unknown function ${e}, make sure it is exported`),t}function SA(e,t,r,A,i){let o={string(h){let y=0;if(h!=null&&h!==0){let O=(h.length<<2)+1;y=ei(O),At(h,y,O)}return y},array(h){let y=ei(h.length);return Lr(h,y),y}};function s(h){return t==="string"?de(h):t==="boolean"?!!h:h}let c=xn(e),d=[],E=0;if(P(t!=="array",'Return type should not be "array".'),A)for(let h=0;h<A.length;h++){let y=o[r[h]];y?(E===0&&(E=G()),d[h]=y(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,Nr=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function wt(e,t,r){let A=t+r,i=t;for(;e[i]&&!(i>=A);)++i;if(i-t>16&&e.subarray&&Nr)return Nr.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&&Me(`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 de(e,t){return e?wt(le,e,t):""}function Dt(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&&Me(`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 At(e,t,r){return P(typeof r=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),Dt(e,le,t,r)}function bt(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 Ur=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function lr(e,t){P(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)&&Tt[A];)++A;if(r=A<<1,r-e>32&&Ur)return Ur.decode(le.subarray(e,r));let o="";for(let s=0;!(s>=t/2);++s){let c=it[e+s*2>>1];if(c==0)break;o+=String.fromCharCode(c)}return o}function xr(e,t,r){if(P(t%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),P(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);it[t>>1]=s,t+=2}return it[t>>1]=0,t-A}function Ln(e){return e.length*2}function Gn(e,t){P(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 Kt(e,t,r){if(P(t%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),P(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 jn(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 ur(e){let t=bt(e)+1,r=Wt(t);return r&&Dt(e,se,r,t),r}function Lr(e,t){P(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),se.set(e,t)}function Hn(e,t,r){for(let A=0;A<e.length;++A)P(e.charCodeAt(A)===e.charCodeAt(A)&255),se[t++>>0]=e.charCodeAt(A);r||(se[t>>0]=0)}function Yn(e,t){return e%t>0&&(e+=t-e%t),e}let vt,se,le,it,Tt,m,ie,he,dr;function Gr(e){vt=e,n.HEAP8=se=new Int8Array(e),n.HEAP16=it=new Int16Array(e),n.HEAP32=m=new Int32Array(e),n.HEAPU8=le=new Uint8Array(e),n.HEAPU16=Tt=new Uint16Array(e),n.HEAPU32=ie=new Uint32Array(e),n.HEAPF32=he=new Float32Array(e),n.HEAPF64=dr=new Float64Array(e)}let $t=5242880;n.TOTAL_STACK&&P($t===n.TOTAL_STACK,"the stack size can no longer be determined at runtime");let Qe=n.INITIAL_MEMORY||16777216;Object.getOwnPropertyDescriptor(n,"INITIAL_MEMORY")||Object.defineProperty(n,"INITIAL_MEMORY",{configurable:!0,get(){u("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)")}}),P(Qe>=$t,`INITIAL_MEMORY should be larger than TOTAL_STACK, was ${Qe}! (TOTAL_STACK=${$t})`),P(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"),P(!n.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),P(Qe==16777216,"Detected runtime INITIAL_MEMORY setting. Use -s IMPORTED_MEMORY to define wasmMemory dynamically");let v;function ot(){let e=bA();P((e&3)==0),ie[(e>>2)+1]=34821223,ie[(e>>2)+2]=2310721022,m[0]=1668509029}function Ve(){if(Ze)return;let e=bA(),t=ie[(e>>2)+1],r=ie[(e>>2)+2];(t!=34821223||r!=2310721022)&&u(`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&&u("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 Et=[],V=[],jr=[],kt=[],Je=!1,Hr=!1,ze=0;function Ye(){return kr||ze>0}function Xn(){if(n.preRun)for(typeof n.preRun=="function"&&(n.preRun=[n.preRun]);n.preRun.length;)Yr(n.preRun.shift());Pt(Et)}function Wn(){Ve(),P(!Je),Je=!0,!n.noFSInit&&!a.init.initialized&&a.init(),a.ignorePermissions=!1,qe.init(),Pt(V)}function fr(){Ve(),Hr=!0}function Er(){if(Ve(),n.postRun)for(typeof n.postRun=="function"&&(n.postRun=[n.postRun]);n.postRun.length;)Xr(n.postRun.shift());Pt(kt)}function Yr(e){Et.unshift(e)}function Zn(e){V.unshift(e)}function Xr(e){kt.unshift(e)}P(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),P(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),P(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),P(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 st=0,at=null,Nt=null,Ot={};function Rt(e){let t=e;for(;;){if(!Ot[e])return e;e=t+Math.random()}}function Mt(e){st++,n.monitorRunDependencies&&n.monitorRunDependencies(st),e?(P(!Ot[e]),Ot[e]=1,at===null&&typeof setInterval!="undefined"&&(at=setInterval(()=>{if(Ze){clearInterval(at),at=null;return}let t=!1;for(let r in Ot)t||(t=!0,K("still waiting on run dependencies:")),K(`dependency: ${r}`);t&&K("(end of list)")},1e4))):K("warning: run dependency added without ID")}function Ke(e){if(st--,n.monitorRunDependencies&&n.monitorRunDependencies(st),e?(P(Ot[e]),delete Ot[e]):K("warning: run dependency removed without ID"),st==0&&(at!==null&&(clearInterval(at),at=null),Nt)){let t=Nt;Nt=null,t()}}n.preloadedImages={},n.preloadedAudios={};function u(e){n.onAbort&&n.onAbort(e),e+="",K(e),Ze=!0,zt=1,e=`abort(${e}) at ${$n()}`;let r=new WebAssembly.RuntimeError(e);throw me(r),r}let Vn="data:application/octet-stream;base64,";function Ut(e){return e.startsWith(Vn)}function vA(e){return e.startsWith("file://")}function Z(e,t){return function(){let r=e,A=t;return t||(A=n.asm),P(Je,`native function \`${r}\` called before runtime initialization`),P(!Hr,`native function \`${r}\` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)`),A[e]||P(A[e],`exported native function \`${r}\` not found`),A[e].apply(null,arguments)}}let $e;$e="selfie_segmentation_solution_simd_wasm_bin.wasm",Ut($e)||($e=Nn($e));function kA(e){try{if(e==$e&&gr)return new Uint8Array(gr);if(yt)return yt(e);throw"both async and sync fetching of the wasm failed"}catch(t){u(t)}}function xt(){let e={env:qA,wasi_snapshot_preview1:qA};function t(i,o){let{exports:s}=i;n.asm=s,_t=n.asm.memory,P(_t,"memory not found in wasm exports"),Gr(_t.buffer),v=n.asm.__indirect_function_table,P(v,"table not found in wasm exports"),Zn(n.asm.__wasm_call_ctors),Ke("wasm-instantiate")}Mt("wasm-instantiate");let r=n;function A(i){P(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 K(`Module.instantiateWasm callback failed with error: ${i}`),!1}return n.loadWasm($e,e).then(A).catch(me),{}}let fe,Pe,Lt={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 Wr(){return typeof wasmOffsetConverter!="undefined"}function Ir(e,t){if(Q.mainLoop.timingMode=e,Q.mainLoop.timingValue=t,!Q.mainLoop.func)return K("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-It())|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),We?(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 It;Qt?It=function(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}:It=function(){return performance.now()};function NA(){return!p.currentContext||!p.currentContext.GLctx?-3:p.currentContext.defaultFbo?(p.blitOffscreenFramebuffer(p.currentContext),0):p.currentContext.attributes.explicitSwapControl?0:-3}function Zr(e){ac(e)}function Jn(){if(!Ye())try{Zr(zt)}catch(e){if(e instanceof TA)return;throw e}}function qt(e,t,r,A,i){P(!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?(Jn(),!1):!0}if(Q.mainLoop.running=!1,Q.mainLoop.runner=function(){if(!Ze){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(_e(`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=It()),p.newRenderingFrameStarted(),typeof p!="undefined"&&p.currentContext&&!p.currentContextIsProxied&&!p.currentContext.attributes.explicitSwapControl&&p.currentContext.GLctx.commit&&p.currentContext.GLctx.commit(),Q.mainLoop.method==="timeout"&&n.ctx&&(Me("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),Ve(),s()&&(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Q.mainLoop.scheduler())}}},i||(t&&t>0?Ir(0,1e3/t):Ir(1,1),Q.mainLoop.scheduler()),r)throw"unwind"}function Cr(e,t){if(Ze){K("user callback triggered after application aborted. Ignoring.");return}if(t){e();return}try{e()}catch(r){if(r instanceof TA)return;if(r!=="unwind")throw r&&typeof r=="object"&&r.stack&&K(`exception thrown: ${[r,r.stack]}`),r}}function Vr(e,t){return setTimeout(()=>{Cr(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,qt(r,0,!1,Q.mainLoop.arg,!0),Ir(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){Ze||n.preMainLoop&&n.preMainLoop()===!1||(Cr(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,_e("warning: no blob constructor, cannot create blobs with mimetypes")}Q.BlobBuilder=typeof MozBlobBuilder!="undefined"?MozBlobBuilder:typeof WebKitBlobBuilder!="undefined"?WebKitBlobBuilder:Q.hasBlobConstructor?null:_e("warning: no BlobBuilder"),Q.URLObject=typeof window!="undefined"?window.URL?window.URL:window.webkitURL:void 0,!n.noImageDecoding&&typeof Q.URLObject=="undefined"&&(_e("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){Me(`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);P(typeof I=="string","createObjectURL must return a url as a string");let B=new Image;B.onload=function(){P(B.complete,`Image ${s} could not be decoded`);let y=document.createElement("canvas");y.width=B.width,y.height=B.height,y.getContext("2d").drawImage(B,0,0),n.preloadedImages[s]=y,Q.URLObject.revokeObjectURL(I),c&&c(o)},B.onerror=function(y){_e(`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(y){E||(E=!0,n.preloadedAudios[s]=y,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(U){return B()}let y=Q.URLObject.createObjectURL(h);P(typeof y=="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;_e(`warning: browser could not fully decode audio ${s}, trying slower base64 approach`);function q(w){let F="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",te="=",x="",Ce=0,be=0;for(let rt=0;rt<w.length;rt++)for(Ce=Ce<<8|w[rt],be+=8;be>=6;){let cc=Ce>>be-6&63;be-=6,x+=F[cc]}return be==2?(x+=F[(Ce&3)<<4],x+=te+te):be==4&&(x+=F[(Ce&15)<<2],x+=te),x}O.src=`data:audio/x-${s.substr(-3)};base64,${q(o)}`,I(O)},O.src=y,Vr(()=>{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 p!="undefined"&&(o=p.createContext(e,s),o&&(i=p.getContext(o).GLctx))}else i=e.getContext("2d");return i?(r&&(t||P(typeof _=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),n.ctx=i,t&&p.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(){u("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 Vr(e)},safeRequestAnimationFrame(e){return Q.requestAnimationFrame(()=>{Cr(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(P(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=ie[SDL.screen>>2];e=e|8388608,m[SDL.screen>>2]=e}Q.updateCanvasDimensions(n.canvas),Q.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){let e=ie[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 Pt(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 zn(e){return Me("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),e}function Gt(e){let t=/\b_Z[\w\d_]+/g;return e.replace(t,r=>{let A=zn(r);return r===A?r:`${A} [${r}]`})}function Kn(){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=Kn();return n.extraStackTrace&&(e+=`
2
- ${n.extraStackTrace()}`),Gt(e)}function er(e){return Wt(e+16)+16}function qn(e,t){}function Jr(e,t){return void 0}function jt(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,se[this.ptr+12>>0]=t},this.get_caught=function(){return se[this.ptr+12>>0]!=0},this.set_rethrown=function(t){t=t?1:0,se[this.ptr+13>>0]=t},this.get_rethrown=function(){return se[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,P(t>0),t===1}}function tr(e){this.free=function(){dt(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(oa(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 jt(this.get_base_ptr())},e===void 0?(this.ptr=Wt(8),this.set_adjusted_ptr(0)):this.ptr=e}let Se=[];function eA(e){e.add_ref()}let rr=0;function zr(e){let t=new tr(e),r=t.get_exception_info();return r.get_caught()||(r.set_caught(!0),rr--),r.set_rethrown(!1),Se.push(t),eA(r),t.get_exception_ptr()}let Ne=0;function Kr(e){try{return dt(new jt(e).ptr)}catch(t){K(`exception during cxa_free_exception: ${t}`)}}function $r(e){if(e.release_ref()&&!e.get_rethrown()){let t=e.get_destructor();t&&v.get(t)(e.excPtr),Kr(e.excPtr)}}function pr(){H(0),P(Se.length>0);let e=Se.pop();$r(e.get_exception_info()),e.free(),Ne=0}function tA(e){let t=new tr(e),r=t.get_base_ptr();throw Ne||(Ne=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 qr(){let e=Ne;if(!e)return He(0),0;let r=new jt(e).get_type(),A=new tr;if(A.set_base_ptr(e),A.set_adjusted_ptr(e),!r)return He(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(ri(s,r,A.get_adjusted_ptr_addr()))return He(s),A.ptr|0}return He(r),A.ptr|0}function rA(){let e=Ne;if(!e)return He(0),0;let r=new jt(e).get_type(),A=new tr;if(A.set_base_ptr(e),A.set_adjusted_ptr(e),!r)return He(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(ri(s,r,A.get_adjusted_ptr_addr()))return He(s),A.ptr|0}return He(r),A.ptr|0}function nA(){let e=Se.pop();e||u("no exception to throw");let t=e.get_exception_info(),r=e.get_base_ptr();throw t.get_rethrown()?e.free():(Se.push(e),t.set_rethrown(!0),t.set_caught(!1),rr++),Ne=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 AA(e,t){return void 0}function en(e,t,r){throw new jt(e).init(t,r),Ne=e,rr++,`${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 tn(e){return m[ta()>>2]=e,e}var ee={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=ee.normalizeArray(e.split("/").filter(A=>!!A),!t).join("/"),!e&&!t&&(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname(e){let t=ee.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=ee.normalize(e),e=e.replace(/\/$/,"");let t=e.lastIndexOf("/");return t===-1?e:e.substr(t+1)},extname(e){return ee.splitPath(e)[3]},join(){let e=Array.prototype.slice.call(arguments,0);return ee.normalize(e.join("/"))},join2(e,t){return ee.normalize(`${e}/${t}`)}};function Xe(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){let e=new Uint8Array(1);return function(){return crypto.getRandomValues(e),e[0]}}if(Qt)try{let e=Ec("crypto");return function(){return e.randomBytes(1)[0]}}catch(e){}return function(){u("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 Ue={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=ee.normalizeArray(e.split("/").filter(r=>!!r),!t).join("/"),(t?"/":"")+e||"."},relative(e,t){e=Ue.resolve(e).substr(1),t=Ue.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("/")}},qe={ttys:[],init(){},shutdown(){},register(e,t){qe.ttys[e]={input:[],output:[],ops:t},a.registerDevice(e,qe.stream_ops)},stream_ops:{open(e){let t=qe.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(Qt){let A=Buffer.alloc(256),i=0;try{i=Un.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
+ var gc=Object.defineProperty,lc=Object.defineProperties;var uc=Object.getOwnPropertyDescriptors;var ei=Object.getOwnPropertySymbols;var dc=Object.prototype.hasOwnProperty,fc=Object.prototype.propertyIsEnumerable;var wA=(z,S,n)=>S in z?gc(z,S,{enumerable:!0,configurable:!0,writable:!0,value:n}):z[S]=n,ti=(z,S)=>{for(var n in S||(S={}))dc.call(S,n)&&wA(z,n,S[n]);if(ei)for(var n of ei(S))fc.call(S,n)&&wA(z,n,S[n]);return z},ri=(z,S)=>lc(z,uc(S));var Ec=(z=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(z,{get:(S,n)=>(typeof require!="undefined"?require:S)[n]}):z)(function(z){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+z+'" is not supported')});var Ie=(z,S,n)=>(wA(z,typeof S!="symbol"?S+"":S,n),n);async function ni({sdkAppId:z,userId:S,userSig:n,core:O}){var _e;let Be=O.utils.getAbilityConfigUrl(z),ae=Math.round(new Date().getTime()/1e3),ce=`${Be}?sdkAppId=${z}&userId=${S}&userSig=${n}&timestamp=${ae}`;try{let Re=await(await fetch(ce)).json();O.log.info(`virtual background send ${ce}, response: ${JSON.stringify(Re)}`);let{data:Ge}=Re;return(_e=Ge==null?void 0:Ge.trtcAutoConf)!=null&&_e.web_ar?{auth:!0,timestamp:ae}:{auth:!1}}catch(Oe){return O.log.error("beauty fetch error",Oe),{auth:!1}}}var Ic={sdkAppId:{required:!0,type:"number"},userId:{required:!0,type:"string"},userSig:{required:!0,type:"string"}};function Ai(z){return{name:"VirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:ri(ti({},Ic),{type:{required:!1,type:"string",values:["image","blur"]},src:{required:!1,type:"string"},onError:{required:!1}}),validate(S,n,O,Be){var Ke;let{RtcError:ae,ErrorCode:ce,ErrorCodeDictionary:_e}=z.errorModule;if(!S)return;let{type:Oe,src:Re,onError:Ge}=S;if(Oe==="image"&&!Re)throw new ae({code:ce.INVALID_PARAMETER,extraCode:_e.INVALID_PARAMETER_REQUIRED,fnName:O,messageParams:{key:"src"}});if(Ge&&!z.utils.isFunction(Ge))throw new ae({code:ce.INVALID_PARAMETER,extraCode:_e.INVALID_PARAMETER_TYPE,fnName:O,messageParams:{key:"onError",value:typeof Ge,rule:{type:"Function"}}});if(!((Ke=z.room.videoManager.cameraTrack)!=null&&Ke.mediaTrack))throw new ae({code:ce.INVALID_OPERATION,extraCode:_e.INVALID_OPERATION_NEED_VIDEO,fnName:O});if(z.environment.CHROME_MAJOR_VERSION<90)throw new ae({code:ce.ENV_NOT_SUPPORTED,extraCode:_e.NOT_SUPPORTED_CHROME_VERSION,fnName:O})}}}function ii(z){return{name:"UpdateVirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:{type:{required:!0,type:"string",values:["image","blur"]},src:{required:!1,type:"string"}},validate(S,n,O,Be){if(!S)return;let{RtcError:ae,ErrorCode:ce,ErrorCodeDictionary:_e}=z.errorModule,{type:Oe,src:Re}=S;if(Oe==="image"&&!Re)throw new ae({code:ce.INVALID_PARAMETER,extraCode:_e.INVALID_PARAMETER_REQUIRED,fnName:O,messageParams:{key:"src"}})}}}function oi(z){return{name:"StopVirtualBackgroundOptions",required:!1}}var Cc=function(){let z=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(z=z||__filename),function(S){S=S||{};let n=typeof S!="undefined"?S:{},O,Be;n.ready=new Promise((e,t)=>{O=e,Be=t}),Object.getOwnPropertyDescriptor(n.ready,"_main")||(Object.defineProperty(n.ready,"_main",{configurable:!0,get(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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(){u("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 ae={},ce;for(ce in n)n.hasOwnProperty(ce)&&(ae[ce]=n[ce]);let _e=[],Oe="./this.program",Re=function(e,t){throw t},Ge=typeof window=="object",Ke=typeof importScripts=="function",ht=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",At=!Ge&&!ht&&!Ke;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 je="";function Mn(e){return n.locateFile?n.locateFile(e,je):je+e}let Mt,Pn,Pt,Wt,Sn,OA;if(Ge||Ke){if(Ke?je=self.location.href:typeof document!="undefined"&&document.currentScript&&(je=document.currentScript.src),z&&(je=z),je.indexOf("blob:")!==0?je=je.substr(0,je.lastIndexOf("/")+1):je="",!(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?)");Mt=function(e){let t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},Ke&&(Pt=function(e){let t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),Pn=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)},Wt=function(e){document.title=e}}else throw new Error("environment detection error");let De=n.print||console.log.bind(console),$=n.printErr||console.warn.bind(console);for(ce in ae)ae.hasOwnProperty(ce)&&(n[ce]=ae[ce]);ae=null,n.arguments&&(_e=n.arguments),Object.getOwnPropertyDescriptor(n,"arguments")||Object.defineProperty(n,"arguments",{configurable:!0,get(){u("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&&(Oe=n.thisProgram),Object.getOwnPropertyDescriptor(n,"thisProgram")||Object.defineProperty(n,"thisProgram",{configurable:!0,get(){u("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&&(Re=n.quit),Object.getOwnPropertyDescriptor(n,"quit")||Object.defineProperty(n,"quit",{configurable:!0,get(){u("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)")}}),P(typeof n.memoryInitializerPrefixURL=="undefined","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),P(typeof n.pthreadMainPrefixURL=="undefined","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),P(typeof n.cdInitializerPrefixURL=="undefined","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),P(typeof n.filePackagePrefixURL=="undefined","Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),P(typeof n.read=="undefined","Module.read option was removed (modify read_ in JS)"),P(typeof n.readAsync=="undefined","Module.readAsync option was removed (modify readAsync in JS)"),P(typeof n.readBinary=="undefined","Module.readBinary option was removed (modify readBinary in JS)"),P(typeof n.setWindowTitle=="undefined","Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),P(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(){u("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(){u("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(){u("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(){u("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)")}}),P(!At,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");function Me(e){Me.shown||(Me.shown={}),Me.shown[e]||(Me.shown[e]=1,$(e))}function dt(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 he=[],He;function Jt(){if(he.length)return he.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 Zt(e,t){if(!He){He=new WeakMap;for(let A=0;A<v.length;A++){let i=v.get(A);i&&He.set(i,A)}}if(He.has(e))return He.get(e);let r=Jt();try{v.set(r,e)}catch(A){if(!(A instanceof TypeError))throw A;P(typeof t!="undefined",`Missing signature argument to addFunction: ${e}`);let i=dt(e,t);v.set(r,i)}return He.set(e,r),r}let se=0,Ye=function(e){se=e},Fr=function(){return se},gr;n.wasmBinary&&(gr=n.wasmBinary),Object.getOwnPropertyDescriptor(n,"wasmBinary")||Object.defineProperty(n,"wasmBinary",{configurable:!0,get(){u("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 vr=n.noExitRuntime||!0;Object.getOwnPropertyDescriptor(n,"noExitRuntime")||Object.defineProperty(n,"noExitRuntime",{configurable:!0,get(){u("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"&&u("no native wasm support detected");let mt,We=!1,zt;function P(e,t){e||u(`Assertion failed: ${t}`)}function Fn(e){let t=n[`_${e}`];return P(t,`Cannot call unknown function ${e}, make sure it is exported`),t}function TA(e,t,r,A,i){let o={string(h){let y=0;if(h!=null&&h!==0){let T=(h.length<<2)+1;y=ZA(T),it(h,y,T)}return y},array(h){let y=ZA(h.length);return xr(h,y),y}};function s(h){return t==="string"?ue(h):t==="boolean"?!!h:h}let c=Fn(e),d=[],f=0;if(P(t!=="array",'Return type should not be "array".'),A)for(let h=0;h<A.length;h++){let y=o[r[h]];y?(f===0&&(f=G()),d[h]=y(A[h])):d[h]=A[h]}let I=c.apply(null,d);function B(h){return f!==0&&j(f),s(h)}return I=B(I),I}let RA=1,Nr=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Qt(e,t,r){let A=t+r,i=t;for(;e[i]&&!(i>=A);)++i;if(i-t>16&&e.subarray&&Nr)return Nr.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&&Me(`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 f=s-65536;o+=String.fromCharCode(55296|f>>10,56320|f&1023)}}return o}function ue(e,t){return e?Qt(ge,e,t):""}function yt(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&&Me(`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 it(e,t,r){return P(typeof r=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),yt(e,ge,t,r)}function _t(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 kr=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function lr(e,t){P(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)&&Dt[A];)++A;if(r=A<<1,r-e>32&&kr)return kr.decode(ge.subarray(e,r));let o="";for(let s=0;!(s>=t/2);++s){let c=ot[e+s*2>>1];if(c==0)break;o+=String.fromCharCode(c)}return o}function Ur(e,t,r){if(P(t%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),P(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);ot[t>>1]=s,t+=2}return ot[t>>1]=0,t-A}function vn(e){return e.length*2}function Nn(e,t){P(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 $t(e,t,r){if(P(t%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),P(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 kn(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 ur(e){let t=_t(e)+1,r=Kt(t);return r&&yt(e,oe,r,t),r}function xr(e,t){P(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),oe.set(e,t)}function Un(e,t,r){for(let A=0;A<e.length;++A)P(e.charCodeAt(A)===e.charCodeAt(A)&255),oe[t++>>0]=e.charCodeAt(A);r||(oe[t>>0]=0)}function xn(e,t){return e%t>0&&(e+=t-e%t),e}let St,oe,ge,ot,Dt,m,Ae,Ce,dr;function Lr(e){St=e,n.HEAP8=oe=new Int8Array(e),n.HEAP16=ot=new Int16Array(e),n.HEAP32=m=new Int32Array(e),n.HEAPU8=ge=new Uint8Array(e),n.HEAPU16=Dt=new Uint16Array(e),n.HEAPU32=Ae=new Uint32Array(e),n.HEAPF32=Ce=new Float32Array(e),n.HEAPF64=dr=new Float64Array(e)}let qt=5242880;n.TOTAL_STACK&&P(qt===n.TOTAL_STACK,"the stack size can no longer be determined at runtime");let me=n.INITIAL_MEMORY||16777216;Object.getOwnPropertyDescriptor(n,"INITIAL_MEMORY")||Object.defineProperty(n,"INITIAL_MEMORY",{configurable:!0,get(){u("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)")}}),P(me>=qt,`INITIAL_MEMORY should be larger than TOTAL_STACK, was ${me}! (TOTAL_STACK=${qt})`),P(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"),P(!n.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),P(me==16777216,"Detected runtime INITIAL_MEMORY setting. Use -s IMPORTED_MEMORY to define wasmMemory dynamically");let v;function st(){let e=yA();P((e&3)==0),Ae[(e>>2)+1]=34821223,Ae[(e>>2)+2]=2310721022,m[0]=1668509029}function Je(){if(We)return;let e=yA(),t=Ae[(e>>2)+1],r=Ae[(e>>2)+2];(t!=34821223||r!=2310721022)&&u(`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&&u("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 ft=[],J=[],Gr=[],Ft=[],Ze=!1,jr=!1,ze=0;function Xe(){return vr||ze>0}function Ln(){if(n.preRun)for(typeof n.preRun=="function"&&(n.preRun=[n.preRun]);n.preRun.length;)Hr(n.preRun.shift());Tt(ft)}function Gn(){Je(),P(!Ze),Ze=!0,!n.noFSInit&&!a.init.initialized&&a.init(),a.ignorePermissions=!1,et.init(),Tt(J)}function fr(){Je(),jr=!0}function Er(){if(Je(),n.postRun)for(typeof n.postRun=="function"&&(n.postRun=[n.postRun]);n.postRun.length;)Yr(n.postRun.shift());Tt(Ft)}function Hr(e){ft.unshift(e)}function jn(e){J.unshift(e)}function Yr(e){Ft.unshift(e)}P(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),P(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),P(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),P(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 at=0,ct=null,vt=null,wt={};function bt(e){let t=e;for(;;){if(!wt[e])return e;e=t+Math.random()}}function Ot(e){at++,n.monitorRunDependencies&&n.monitorRunDependencies(at),e?(P(!wt[e]),wt[e]=1,ct===null&&typeof setInterval!="undefined"&&(ct=setInterval(()=>{if(We){clearInterval(ct),ct=null;return}let t=!1;for(let r in wt)t||(t=!0,$("still waiting on run dependencies:")),$(`dependency: ${r}`);t&&$("(end of list)")},1e4))):$("warning: run dependency added without ID")}function $e(e){if(at--,n.monitorRunDependencies&&n.monitorRunDependencies(at),e?(P(wt[e]),delete wt[e]):$("warning: run dependency removed without ID"),at==0&&(ct!==null&&(clearInterval(ct),ct=null),vt)){let t=vt;vt=null,t()}}n.preloadedImages={},n.preloadedAudios={};function u(e){n.onAbort&&n.onAbort(e),e+="",$(e),We=!0,zt=1,e=`abort(${e}) at ${Kn()}`;let r=new WebAssembly.RuntimeError(e);throw Be(r),r}let Hn="data:application/octet-stream;base64,";function Nt(e){return e.startsWith(Hn)}function MA(e){return e.startsWith("file://")}function W(e,t){return function(){let r=e,A=t;return t||(A=n.asm),P(Ze,`native function \`${r}\` called before runtime initialization`),P(!jr,`native function \`${r}\` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)`),A[e]||P(A[e],`exported native function \`${r}\` not found`),A[e].apply(null,arguments)}}let qe;qe="selfie_segmentation_solution_simd_wasm_bin.wasm",Nt(qe)||(qe=Mn(qe));function PA(e){try{if(e==qe&&gr)return new Uint8Array(gr);if(Pt)return Pt(e);throw"both async and sync fetching of the wasm failed"}catch(t){u(t)}}function kt(){let e={env:JA,wasi_snapshot_preview1:JA};function t(i,o){let{exports:s}=i;n.asm=s,mt=n.asm.memory,P(mt,"memory not found in wasm exports"),Lr(mt.buffer),v=n.asm.__indirect_function_table,P(v,"table not found in wasm exports"),jn(n.asm.__wasm_call_ctors),$e("wasm-instantiate")}Ot("wasm-instantiate");let r=n;function A(i){P(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 $(`Module.instantiateWasm callback failed with error: ${i}`),!1}return n.loadWasm(qe,e).then(A).catch(Be),{}}let de,Pe,Ut={460656(){let e=!0;if(e){let t=BA;if(typeof t!="function"){typeof console!="undefined"&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.');return}BA=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 Xr(){return typeof wasmOffsetConverter!="undefined"}function Ir(e,t){if(Q.mainLoop.timingMode=e,Q.mainLoop.timingValue=t,!Q.mainLoop.func)return $("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-Et())|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),Ke?(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 Et;ht?Et=function(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}:Et=function(){return performance.now()};function SA(){return!C.currentContext||!C.currentContext.GLctx?-3:C.currentContext.defaultFbo?(C.blitOffscreenFramebuffer(C.currentContext),0):C.currentContext.attributes.explicitSwapControl?0:-3}function Vr(e){ac(e)}function Yn(){if(!Xe())try{Vr(zt)}catch(e){if(e instanceof _A)return;throw e}}function er(e,t,r,A,i){P(!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?(Yn(),!1):!0}if(Q.mainLoop.running=!1,Q.mainLoop.runner=function(){if(!We){if(Q.mainLoop.queue.length>0){let d=Date.now(),f=Q.mainLoop.queue.shift();if(f.func(f.arg),Q.mainLoop.remainingBlockers){let I=Q.mainLoop.remainingBlockers,B=I%1==0?I-1:Math.floor(I);f.counted?Q.mainLoop.remainingBlockers=B:(B=B+.5,Q.mainLoop.remainingBlockers=(8*I+B)/9)}if(De(`main loop blocker "${f.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=Et()),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&&(Me("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),Je(),s()&&(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Q.mainLoop.scheduler())}}},i||(t&&t>0?Ir(0,1e3/t):Ir(1,1),Q.mainLoop.scheduler()),r)throw"unwind"}function Cr(e,t){if(We){$("user callback triggered after application aborted. Ignoring.");return}if(t){e();return}try{e()}catch(r){if(r instanceof _A)return;if(r!=="unwind")throw r&&typeof r=="object"&&r.stack&&$(`exception thrown: ${[r,r.stack]}`),r}}function Kr(e,t){return setTimeout(()=>{Cr(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,er(r,0,!1,Q.mainLoop.arg,!0),Ir(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){We||n.preMainLoop&&n.preMainLoop()===!1||(Cr(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,De("warning: no blob constructor, cannot create blobs with mimetypes")}Q.BlobBuilder=typeof MozBlobBuilder!="undefined"?MozBlobBuilder:typeof WebKitBlobBuilder!="undefined"?WebKitBlobBuilder:Q.hasBlobConstructor?null:De("warning: no BlobBuilder"),Q.URLObject=typeof window!="undefined"?window.URL?window.URL:window.webkitURL:void 0,!n.noImageDecoding&&typeof Q.URLObject=="undefined"&&(De("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 f=null;if(Q.hasBlobConstructor)try{f=new Blob([o],{type:Q.getMimetype(s)}),f.size!==o.length&&(f=new Blob([new Uint8Array(o).buffer],{type:Q.getMimetype(s)}))}catch(h){Me(`Blob constructor present but fails: ${h}; falling back to blob builder`)}if(!f){let h=new Q.BlobBuilder;h.append(new Uint8Array(o).buffer),f=h.getBlob()}let I=Q.URLObject.createObjectURL(f);P(typeof I=="string","createObjectURL must return a url as a string");let B=new Image;B.onload=function(){P(B.complete,`Image ${s} could not be decoded`);let y=document.createElement("canvas");y.width=B.width,y.height=B.height,y.getContext("2d").drawImage(B,0,0),n.preloadedImages[s]=y,Q.URLObject.revokeObjectURL(I),c&&c(o)},B.onerror=function(y){De(`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 f=!1;function I(y){f||(f=!0,n.preloadedAudios[s]=y,c&&c(o))}function B(){f||(f=!0,n.preloadedAudios[s]=new Audio,d&&d())}if(Q.hasBlobConstructor){try{var h=new Blob([o],{type:Q.getMimetype(s)})}catch(U){return B()}let y=Q.URLObject.createObjectURL(h);P(typeof y=="string","createObjectURL must return a url as a string");let T=new Audio;T.addEventListener("canplaythrough",()=>{I(T)},!1),T.onerror=function(Y){if(f)return;De(`warning: browser could not fully decode audio ${s}, trying slower base64 approach`);function q(D){let F="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",te="=",x="",Ee=0,be=0;for(let nt=0;nt<D.length;nt++)for(Ee=Ee<<8|D[nt],be+=8;be>=6;){let cc=Ee>>be-6&63;be-=6,x+=F[cc]}return be==2?(x+=F[(Ee&3)<<4],x+=te+te):be==4&&(x+=F[(Ee&15)<<2],x+=te),x}T.src=`data:audio/x-${s.substr(-3)};base64,${q(o)}`,I(T)},T.src=y,Kr(()=>{I(T)},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||P(typeof _=="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(){u("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 Kr(e)},safeRequestAnimationFrame(e){return Q.requestAnimationFrame(()=>{Cr(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(P(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 f=d.pageX-(i+t.left),I=d.pageY-(o+t.top);f=f*(r/t.width),I=I*(A/t.height);let B={x:f,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=Ae[SDL.screen>>2];e=e|8388608,m[SDL.screen>>2]=e}Q.updateCanvasDimensions(n.canvas),Q.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){let e=Ae[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 Tt(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 Xn(e){return Me("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),e}function xt(e){let t=/\b_Z[\w\d_]+/g;return e.replace(t,r=>{let A=Xn(r);return r===A?r:`${A} [${r}]`})}function Vn(){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 Kn(){let e=Vn();return n.extraStackTrace&&(e+=`
2
+ ${n.extraStackTrace()}`),xt(e)}function tr(e){return Kt(e+16)+16}function Wn(e,t){}function Wr(e,t){return void 0}function Lt(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,oe[this.ptr+12>>0]=t},this.get_caught=function(){return oe[this.ptr+12>>0]!=0},this.set_rethrown=function(t){t=t?1:0,oe[this.ptr+13>>0]=t},this.get_rethrown=function(){return oe[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,P(t>0),t===1}}function rr(e){this.free=function(){ut(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(oa(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 Lt(this.get_base_ptr())},e===void 0?(this.ptr=Kt(8),this.set_adjusted_ptr(0)):this.ptr=e}let Se=[];function Jn(e){e.add_ref()}let nr=0;function Jr(e){let t=new rr(e),r=t.get_exception_info();return r.get_caught()||(r.set_caught(!0),nr--),r.set_rethrown(!1),Se.push(t),Jn(r),t.get_exception_ptr()}let Ne=0;function Zr(e){try{return ut(new Lt(e).ptr)}catch(t){$(`exception during cxa_free_exception: ${t}`)}}function zr(e){if(e.release_ref()&&!e.get_rethrown()){let t=e.get_destructor();t&&v.get(t)(e.excPtr),Zr(e.excPtr)}}function pr(){H(0),P(Se.length>0);let e=Se.pop();zr(e.get_exception_info()),e.free(),Ne=0}function Zn(e){let t=new rr(e),r=t.get_base_ptr();throw Ne||(Ne=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 $r(){let e=Ne;if(!e)return Ye(0),0;let r=new Lt(e).get_type(),A=new rr;if(A.set_base_ptr(e),A.set_adjusted_ptr(e),!r)return Ye(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($A(s,r,A.get_adjusted_ptr_addr()))return Ye(s),A.ptr|0}return Ye(r),A.ptr|0}function zn(){let e=Ne;if(!e)return Ye(0),0;let r=new Lt(e).get_type(),A=new rr;if(A.set_base_ptr(e),A.set_adjusted_ptr(e),!r)return Ye(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($A(s,r,A.get_adjusted_ptr_addr()))return Ye(s),A.ptr|0}return Ye(r),A.ptr|0}function $n(){let e=Se.pop();e||u("no exception to throw");let t=e.get_exception_info(),r=e.get_base_ptr();throw t.get_rethrown()?e.free():(Se.push(e),t.set_rethrown(!0),t.set_caught(!1),nr++),Ne=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 qn(e,t){return void 0}function qr(e,t,r){throw new Lt(e).init(t,r),Ne=e,nr++,`${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 en(e){return m[ta()>>2]=e,e}var ee={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=ee.normalizeArray(e.split("/").filter(A=>!!A),!t).join("/"),!e&&!t&&(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname(e){let t=ee.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=ee.normalize(e),e=e.replace(/\/$/,"");let t=e.lastIndexOf("/");return t===-1?e:e.substr(t+1)},extname(e){return ee.splitPath(e)[3]},join(){let e=Array.prototype.slice.call(arguments,0);return ee.normalize(e.join("/"))},join2(e,t){return ee.normalize(`${e}/${t}`)}};function Ve(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){let e=new Uint8Array(1);return function(){return crypto.getRandomValues(e),e[0]}}if(ht)try{let e=Ec("crypto");return function(){return e.randomBytes(1)[0]}}catch(e){}return function(){u("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 ke={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=ee.normalizeArray(e.split("/").filter(r=>!!r),!t).join("/"),(t?"/":"")+e||"."},relative(e,t){e=ke.resolve(e).substr(1),t=ke.resolve(t).substr(1);function r(f){let I=0;for(;I<f.length&&f[I]==="";I++);let B=f.length-1;for(;B>=0&&f[B]==="";B--);return I>B?[]:f.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("/")}},et={ttys:[],init(){},shutdown(){},register(e,t){et.ttys[e]={input:[],output:[],ops:t},a.registerDevice(e,et.stream_ops)},stream_ops:{open(e){let t=et.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(ht){let A=Buffer.alloc(256),i=0;try{i=Sn.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+=`
3
3
  `)):typeof readline=="function"&&(t=readline(),t!==null&&(t+=`
4
- `));if(!t)return null;e.input=Pn(t,!0)}return e.input.shift()},put_char(e,t){t===null||t===10?(_e(wt(e.output,0)),e.output=[]):t!=0&&e.output.push(t)},flush(e){e.output&&e.output.length>0&&(_e(wt(e.output,0)),e.output=[])}},default_tty1_ops:{put_char(e,t){t===null||t===10?(K(wt(e.output,0)),e.output=[]):t!=0&&e.output.push(t)},flush(e){e.output&&e.output.length>0&&(K(wt(e.output,0)),e.output=[])}}};function iA(e,t){le.fill(0,e,e+t)}function ct(e,t){return P(t,"alignment argument is required"),Math.ceil(e/t)*t}function rn(e){e=ct(e,65536);let t=sa(65536,e);return t?(iA(t,e),t):0}var X={ops_table:null,mount(e){return X.createNode(null,"/",16895,0)},createNode(e,t,r,A){if(a.isBlkdev(r)||a.isFIFO(r))throw new a.ErrnoError(63);X.ops_table||(X.ops_table={dir:{node:{getattr:X.node_ops.getattr,setattr:X.node_ops.setattr,lookup:X.node_ops.lookup,mknod:X.node_ops.mknod,rename:X.node_ops.rename,unlink:X.node_ops.unlink,rmdir:X.node_ops.rmdir,readdir:X.node_ops.readdir,symlink:X.node_ops.symlink},stream:{llseek:X.stream_ops.llseek}},file:{node:{getattr:X.node_ops.getattr,setattr:X.node_ops.setattr},stream:{llseek:X.stream_ops.llseek,read:X.stream_ops.read,write:X.stream_ops.write,allocate:X.stream_ops.allocate,mmap:X.stream_ops.mmap,msync:X.stream_ops.msync}},link:{node:{getattr:X.node_ops.getattr,setattr:X.node_ops.setattr,readlink:X.node_ops.readlink},stream:{}},chrdev:{node:{getattr:X.node_ops.getattr,setattr:X.node_ops.setattr},stream:a.chrdev_stream_ops}});let i=a.createNode(e,t,r,A);return a.isDir(i.mode)?(i.node_ops=X.ops_table.dir.node,i.stream_ops=X.ops_table.dir.stream,i.contents={}):a.isFile(i.mode)?(i.node_ops=X.ops_table.file.node,i.stream_ops=X.ops_table.file.stream,i.usedBytes=0,i.contents=null):a.isLink(i.mode)?(i.node_ops=X.ops_table.link.node,i.stream_ops=X.ops_table.link.stream):a.isChrdev(i.mode)&&(i.node_ops=X.ops_table.chrdev.node,i.stream_ops=X.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&&X.resizeFileStorage(e,t.size)},lookup(e,t){throw a.genericErrors[44]},mknod(e,t,r,A){return X.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=X.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(P(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(P(!(t instanceof ArrayBuffer)),t.buffer===se.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 P(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(X.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){X.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===vt)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=rn(r),!s)throw new a.ErrnoError(48);se.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=X.stream_ops.write(e,t,0,A,r,!1);return 0}}};function Br(e,t,r,A){let i=A?"":Rt(`al ${e}`);Fr(e,o=>{P(o,`Loading data file "${e}" failed (no arrayBuffer).`),t(new Uint8Array(o)),i&&Ke(i)},o=>{if(r)r();else throw`Loading data file "${e}" failed.`}),i&&Mt(i)}let oA={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"},nn={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=Ue.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=ee.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=ee.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=Ue.resolve(ee.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){P(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&&K(`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 P(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);P(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=ee.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(!Ue.resolve(e))throw new a.ErrnoError(44);let A=a.lookupPath(t,{parent:!0}).node;if(!A)throw new a.ErrnoError(44);let i=ee.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=ee.dirname(e),A=ee.dirname(t),i=ee.basename(e),o=ee.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=Ue.relative(e,A);if(I.charAt(0)!==".")throw new a.ErrnoError(28);if(I=Ue.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),y=a.mayDelete(c,i,h);if(y)throw new a.ErrnoError(y);if(y=B?a.mayDelete(d,o,h):a.mayCreate(d,o),y)throw new a.ErrnoError(y);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&&(y=a.nodePermissions(c,"w"),y))throw new a.ErrnoError(y);try{a.trackingDelegate.willMovePath&&a.trackingDelegate.willMovePath(e,t)}catch(O){K(`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){K(`FS.trackingDelegate['onMovePath']('${e}', '${t}') threw an exception: ${O.message}`)}},rmdir(e){let r=a.lookupPath(e,{parent:!0}).node,A=ee.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){K(`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){K(`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=ee.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){K(`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){K(`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 Ue.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=ee.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,K(`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){K(`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){K(`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=wt(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(bt(t)+1),o=Dt(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)),qe.register(a.makedev(5,0),qe.default_tty_ops),qe.register(a.makedev(6,0),qe.default_tty1_ops),a.mkdev("/dev/tty",a.makedev(5,0)),a.mkdev("/dev/tty1",a.makedev(6,0));let e=Xe();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);P(e.fd===0,`invalid handle for stdin (${e.fd})`),P(t.fd===1,`invalid handle for stdout (${t.fd})`),P(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 nn)if(nn[i]===A){this.code=i;break}},this.setErrno(t),this.message=oA[t],this.stack&&(Object.defineProperty(this,"stack",{value:new Error().stack,writable:!0}),this.stack=Gt(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(X,{},"/"),a.createDefaultDirectories(),a.createDefaultDevices(),a.createSpecialDirectories(),a.filesystems={MEMFS:X}},init(e,t,r){P(!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=ee.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=ee.join2(e,s);try{a.mkdir(o)}catch(c){}e=o}}return o},createFile(e,t,r,A,i){let o=ee.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?ee.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=ee.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 y;try{y=r()}catch(U){throw new a.ErrnoError(29)}if(y===void 0&&h===0)throw new a.ErrnoError(6);if(y==null)break;h++,d[E+O]=y}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(y){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(Ft)try{e.contents=Pn(Ft(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,y=B/this.chunkSize|0;return this.getter(y)[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")),y,O=(y=B.getResponseHeader("Accept-Ranges"))&&y==="bytes",U=(y=B.getResponseHeader("Content-Encoding"))&&y==="gzip",Y=1024*1024;O||(Y=h);let q=function(F,te){if(F>te)throw new Error(`invalid range (${F}, ${te}) or no bytes requested!`);if(te>h-1)throw new Error(`only ${h} bytes available! programmer error!`);let x=new XMLHttpRequest;if(x.open("GET",r,!1),h!==Y&&x.setRequestHeader("Range",`bytes=${F}-${te}`),typeof Uint8Array!="undefined"&&(x.responseType="arraybuffer"),x.overrideMimeType&&x.overrideMimeType("text/plain; charset=x-user-defined"),x.send(null),!(x.status>=200&&x.status<300||x.status===304))throw new Error(`Couldn't load ${r}. Status: ${x.status}`);return x.response!==void 0?new Uint8Array(x.response||[]):Pn(x.responseText||"",!0)},w=this;w.setDataGetter(F=>{let te=F*Y,x=(F+1)*Y-1;if(x=Math.min(x,h-1),typeof w.chunks[F]=="undefined"&&(w.chunks[F]=q(te,x)),typeof w.chunks[F]=="undefined")throw new Error("doXHR failed!");return w.chunks[F]}),(U||!h)&&(Y=h=1,h=this.getter(0).length,Y=h,_e("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(!We)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,y,O,U){a.forceLoadFile(c);let{contents:Y}=B.node;if(U>=Y.length)return 0;let q=Math.min(Y.length-U,O);if(P(q>=0),Y.slice)for(var w=0;w<q;w++)h[y+w]=Y[U+w];else for(var w=0;w<q;w++)h[y+w]=Y.get(U+w);return q},c.stream_ops=d,c},createPreloadedFile(e,t,r,A,i,o,s,c,d,E){Q.init();let I=t?Ue.resolve(ee.join2(e,t)):e,B=Rt(`cp ${I}`);function h(y){function O(Y){E&&E(),c||a.createDataFile(e,t,Y,A,i,d),o&&o(),Ke(B)}let U=!1;n.preloadPlugins.forEach(Y=>{U||Y.canHandle(I)&&(Y.handle(y,I,O,()=>{s&&s(),Ke(B)}),U=!0)}),U||O(y)}Mt(B),typeof r=="string"?Br(r,y=>{h(y)},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(){_e("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(y=>{let O=d.put(a.analyzePath(y).object.contents,y);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(y){r(y);return}let d=c.objectStore(a.DB_STORE_NAME),E=0,I=0,B=e.length;function h(){I==0?t():r()}e.forEach(y=>{let O=d.get(y);O.onsuccess=function(){a.analyzePath(y).exists&&a.unlink(y),a.createDataFile(ee.dirname(y),ee.basename(y),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(){u("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder(){u("FS.createFolder has been removed; use FS.mkdir instead")},createLink(){u("FS.createLink has been removed; use FS.symlink instead")},joinPath(){u("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc(){u("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath(){u("FS.standardizePath has been removed; use PATH.normalize instead")}},oe={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 ee.join2(A,t)},doStat(e,t,r){try{var A=e(t)}catch(i){if(i&&i.node&&ee.normalize(t)!==ee.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,Pe=[A.size>>>0,(fe=A.size,+Math.abs(fe)>=1?fe>0?(Math.min(+Math.floor(fe/4294967296),4294967295)|0)>>>0:~~+Math.ceil((fe-+(~~fe>>>0))/4294967296)>>>0:0)],m[r+40>>2]=Pe[0],m[r+44>>2]=Pe[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,Pe=[A.ino>>>0,(fe=A.ino,+Math.abs(fe)>=1?fe>0?(Math.min(+Math.floor(fe/4294967296),4294967295)|0)>>>0:~~+Math.ceil((fe-+(~~fe>>>0))/4294967296)>>>0:0)],m[r+80>>2]=Pe[0],m[r+84>>2]=Pe[1],0},doMsync(e,t,r,A,i){let o=le.slice(e,e+r);a.msync(t,o,i,r,A)},doMkdir(e,t){return e=ee.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,bt(A)),o=se[t+i];return At(A,t,r+1),se[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,se,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,se,s,c,A);if(d<0)return-1;i+=d}return i},varargs:void 0,get(){return P(oe.varargs!=null),oe.varargs+=4,m[oe.varargs-4>>2]},getStr(e){return de(e)},getStreamFromFD(e){let t=a.getStream(e);if(!t)throw new a.ErrnoError(8);return t},get64(e,t){return e>=0?P(t===0):P(t===-1),e}};function sA(e,t,r){oe.varargs=r;try{let i=oe.getStreamFromFD(e);switch(t){case 0:{var A=oe.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=oe.get();return i.flags|=A,0}case 12:{var A=oe.get();let s=0;return it[A+s>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return tn(28),-1;default:return-28}}catch(i){return(typeof a=="undefined"||!(i instanceof a.ErrnoError))&&u(i),-i.errno}}function aA(e,t,r){oe.varargs=r;try{let i=oe.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=oe.get();return m[A>>2]=0,0}case 21520:return i.tty?-28:-59;case 21531:{var A=oe.get();return a.ioctl(i,t,A)}case 21523:return i.tty?0:-59;case 21524:return i.tty?0:-59;default:u(`bad ioctl syscall ${t}`)}}catch(i){return(typeof a=="undefined"||!(i instanceof a.ErrnoError))&&u(i),-i.errno}}function cA(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=rn(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 oe.mappings[s]={malloc:s,len:t,allocated:c,fd:i,prot:r,flags:A,offset:o},s}function gA(e,t,r,A,i,o){try{return cA(e,t,r,A,i,o)}catch(s){return(typeof a=="undefined"||!(s instanceof a.ErrnoError))&&u(s),-s.errno}}function An(e,t,r){oe.varargs=r;try{let A=oe.getStr(e),i=r?oe.get():0;return a.open(A,t,i).fd}catch(A){return(typeof a=="undefined"||!(A instanceof a.ErrnoError))&&u(A),-A.errno}}function on(e,t){try{return e=oe.getStr(e),oe.doStat(a.stat,e,t)}catch(r){return(typeof a=="undefined"||!(r instanceof a.ErrnoError))&&u(r),-r.errno}}let lA=48,uA=57;function Ht(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 nr(e,t){return e=Ht(e),new Function("body",`return function ${e}() {
4
+ `));if(!t)return null;e.input=wn(t,!0)}return e.input.shift()},put_char(e,t){t===null||t===10?(De(Qt(e.output,0)),e.output=[]):t!=0&&e.output.push(t)},flush(e){e.output&&e.output.length>0&&(De(Qt(e.output,0)),e.output=[])}},default_tty1_ops:{put_char(e,t){t===null||t===10?($(Qt(e.output,0)),e.output=[]):t!=0&&e.output.push(t)},flush(e){e.output&&e.output.length>0&&($(Qt(e.output,0)),e.output=[])}}};function eA(e,t){ge.fill(0,e,e+t)}function gt(e,t){return P(t,"alignment argument is required"),Math.ceil(e/t)*t}function tn(e){e=gt(e,65536);let t=sa(65536,e);return t?(eA(t,e),t):0}var X={ops_table:null,mount(e){return X.createNode(null,"/",16895,0)},createNode(e,t,r,A){if(a.isBlkdev(r)||a.isFIFO(r))throw new a.ErrnoError(63);X.ops_table||(X.ops_table={dir:{node:{getattr:X.node_ops.getattr,setattr:X.node_ops.setattr,lookup:X.node_ops.lookup,mknod:X.node_ops.mknod,rename:X.node_ops.rename,unlink:X.node_ops.unlink,rmdir:X.node_ops.rmdir,readdir:X.node_ops.readdir,symlink:X.node_ops.symlink},stream:{llseek:X.stream_ops.llseek}},file:{node:{getattr:X.node_ops.getattr,setattr:X.node_ops.setattr},stream:{llseek:X.stream_ops.llseek,read:X.stream_ops.read,write:X.stream_ops.write,allocate:X.stream_ops.allocate,mmap:X.stream_ops.mmap,msync:X.stream_ops.msync}},link:{node:{getattr:X.node_ops.getattr,setattr:X.node_ops.setattr,readlink:X.node_ops.readlink},stream:{}},chrdev:{node:{getattr:X.node_ops.getattr,setattr:X.node_ops.setattr},stream:a.chrdev_stream_ops}});let i=a.createNode(e,t,r,A);return a.isDir(i.mode)?(i.node_ops=X.ops_table.dir.node,i.stream_ops=X.ops_table.dir.stream,i.contents={}):a.isFile(i.mode)?(i.node_ops=X.ops_table.file.node,i.stream_ops=X.ops_table.file.stream,i.usedBytes=0,i.contents=null):a.isLink(i.mode)?(i.node_ops=X.ops_table.link.node,i.stream_ops=X.ops_table.link.stream):a.isChrdev(i.mode)&&(i.node_ops=X.ops_table.chrdev.node,i.stream_ops=X.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&&X.resizeFileStorage(e,t.size)},lookup(e,t){throw a.genericErrors[44]},mknod(e,t,r,A){return X.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=X.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(P(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(P(!(t instanceof ArrayBuffer)),t.buffer===oe.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 P(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(X.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){X.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===St)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=tn(r),!s)throw new a.ErrnoError(48);oe.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=X.stream_ops.write(e,t,0,A,r,!1);return 0}}};function Br(e,t,r,A){let i=A?"":bt(`al ${e}`);Pn(e,o=>{P(o,`Loading data file "${e}" failed (no arrayBuffer).`),t(new Uint8Array(o)),i&&$e(i)},o=>{if(r)r();else throw`Loading data file "${e}" failed.`}),i&&Ot(i)}let tA={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"},rn={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=ke.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=ee.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=ee.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 f=a.readlink(o);if(o=ke.resolve(ee.dirname(o),f),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){P(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&&$(`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 P(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);P(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=ee.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(!ke.resolve(e))throw new a.ErrnoError(44);let A=a.lookupPath(t,{parent:!0}).node;if(!A)throw new a.ErrnoError(44);let i=ee.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=ee.dirname(e),A=ee.dirname(t),i=ee.basename(e),o=ee.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 f=a.lookupNode(c,i),I=ke.relative(e,A);if(I.charAt(0)!==".")throw new a.ErrnoError(28);if(I=ke.relative(t,r),I.charAt(0)!==".")throw new a.ErrnoError(55);let B;try{B=a.lookupNode(d,o)}catch(T){}if(f===B)return;let h=a.isDir(f.mode),y=a.mayDelete(c,i,h);if(y)throw new a.ErrnoError(y);if(y=B?a.mayDelete(d,o,h):a.mayCreate(d,o),y)throw new a.ErrnoError(y);if(!c.node_ops.rename)throw new a.ErrnoError(63);if(a.isMountpoint(f)||B&&a.isMountpoint(B))throw new a.ErrnoError(10);if(d!==c&&(y=a.nodePermissions(c,"w"),y))throw new a.ErrnoError(y);try{a.trackingDelegate.willMovePath&&a.trackingDelegate.willMovePath(e,t)}catch(T){$(`FS.trackingDelegate['willMovePath']('${e}', '${t}') threw an exception: ${T.message}`)}a.hashRemoveNode(f);try{c.node_ops.rename(f,d,o)}catch(T){throw T}finally{a.hashAddNode(f)}try{a.trackingDelegate.onMovePath&&a.trackingDelegate.onMovePath(e,t)}catch(T){$(`FS.trackingDelegate['onMovePath']('${e}', '${t}') threw an exception: ${T.message}`)}},rmdir(e){let r=a.lookupPath(e,{parent:!0}).node,A=ee.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){$(`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){$(`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=ee.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){$(`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){$(`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 ke.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=ee.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,$(`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){$(`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){$(`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=Qt(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(_t(t)+1),o=yt(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)),et.register(a.makedev(5,0),et.default_tty_ops),et.register(a.makedev(6,0),et.default_tty1_ops),a.mkdev("/dev/tty",a.makedev(5,0)),a.mkdev("/dev/tty1",a.makedev(6,0));let e=Ve();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);P(e.fd===0,`invalid handle for stdin (${e.fd})`),P(t.fd===1,`invalid handle for stdout (${t.fd})`),P(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 rn)if(rn[i]===A){this.code=i;break}},this.setErrno(t),this.message=tA[t],this.stack&&(Object.defineProperty(this,"stack",{value:new Error().stack,writable:!0}),this.stack=xt(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(X,{},"/"),a.createDefaultDirectories(),a.createDefaultDevices(),a.createSpecialDirectories(),a.filesystems={MEMFS:X}},init(e,t,r){P(!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=ee.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=ee.join2(e,s);try{a.mkdir(o)}catch(c){}e=o}}return o},createFile(e,t,r,A,i){let o=ee.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?ee.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 f=a.open(d,577);a.write(f,r,0,r.length,0,o),a.close(f),a.chmod(d,c)}return d},createDevice(e,t,r,A){let i=ee.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,f,I,B){let h=0;for(let T=0;T<I;T++){var y;try{y=r()}catch(U){throw new a.ErrnoError(29)}if(y===void 0&&h===0)throw new a.ErrnoError(6);if(y==null)break;h++,d[f+T]=y}return h&&(c.node.timestamp=Date.now()),h},write(c,d,f,I,B){for(var h=0;h<I;h++)try{A(d[f+h])}catch(y){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(Mt)try{e.contents=wn(Mt(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,y=B/this.chunkSize|0;return this.getter(y)[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")),y,T=(y=B.getResponseHeader("Accept-Ranges"))&&y==="bytes",U=(y=B.getResponseHeader("Content-Encoding"))&&y==="gzip",Y=1024*1024;T||(Y=h);let q=function(F,te){if(F>te)throw new Error(`invalid range (${F}, ${te}) or no bytes requested!`);if(te>h-1)throw new Error(`only ${h} bytes available! programmer error!`);let x=new XMLHttpRequest;if(x.open("GET",r,!1),h!==Y&&x.setRequestHeader("Range",`bytes=${F}-${te}`),typeof Uint8Array!="undefined"&&(x.responseType="arraybuffer"),x.overrideMimeType&&x.overrideMimeType("text/plain; charset=x-user-defined"),x.send(null),!(x.status>=200&&x.status<300||x.status===304))throw new Error(`Couldn't load ${r}. Status: ${x.status}`);return x.response!==void 0?new Uint8Array(x.response||[]):wn(x.responseText||"",!0)},D=this;D.setDataGetter(F=>{let te=F*Y,x=(F+1)*Y-1;if(x=Math.min(x,h-1),typeof D.chunks[F]=="undefined"&&(D.chunks[F]=q(te,x)),typeof D.chunks[F]=="undefined")throw new Error("doXHR failed!");return D.chunks[F]}),(U||!h)&&(Y=h=1,h=this.getter(0).length,Y=h,De("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(!Ke)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,y,T,U){a.forceLoadFile(c);let{contents:Y}=B.node;if(U>=Y.length)return 0;let q=Math.min(Y.length-U,T);if(P(q>=0),Y.slice)for(var D=0;D<q;D++)h[y+D]=Y[U+D];else for(var D=0;D<q;D++)h[y+D]=Y.get(U+D);return q},c.stream_ops=d,c},createPreloadedFile(e,t,r,A,i,o,s,c,d,f){Q.init();let I=t?ke.resolve(ee.join2(e,t)):e,B=bt(`cp ${I}`);function h(y){function T(Y){f&&f(),c||a.createDataFile(e,t,Y,A,i,d),o&&o(),$e(B)}let U=!1;n.preloadPlugins.forEach(Y=>{U||Y.canHandle(I)&&(Y.handle(y,I,T,()=>{s&&s(),$e(B)}),U=!0)}),U||T(y)}Ot(B),typeof r=="string"?Br(r,y=>{h(y)},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(){De("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),f=0,I=0,B=e.length;function h(){I==0?t():r()}e.forEach(y=>{let T=d.put(a.analyzePath(y).object.contents,y);T.onsuccess=function(){f++,f+I==B&&h()},T.onerror=function(){I++,f+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(y){r(y);return}let d=c.objectStore(a.DB_STORE_NAME),f=0,I=0,B=e.length;function h(){I==0?t():r()}e.forEach(y=>{let T=d.get(y);T.onsuccess=function(){a.analyzePath(y).exists&&a.unlink(y),a.createDataFile(ee.dirname(y),ee.basename(y),T.result,!0,!0,!0),f++,f+I==B&&h()},T.onerror=function(){I++,f+I==B&&h()}}),c.onerror=r},i.onerror=r},absolutePath(){u("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder(){u("FS.createFolder has been removed; use FS.mkdir instead")},createLink(){u("FS.createLink has been removed; use FS.symlink instead")},joinPath(){u("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc(){u("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath(){u("FS.standardizePath has been removed; use PATH.normalize instead")}},ie={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 ee.join2(A,t)},doStat(e,t,r){try{var A=e(t)}catch(i){if(i&&i.node&&ee.normalize(t)!==ee.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,Pe=[A.size>>>0,(de=A.size,+Math.abs(de)>=1?de>0?(Math.min(+Math.floor(de/4294967296),4294967295)|0)>>>0:~~+Math.ceil((de-+(~~de>>>0))/4294967296)>>>0:0)],m[r+40>>2]=Pe[0],m[r+44>>2]=Pe[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,Pe=[A.ino>>>0,(de=A.ino,+Math.abs(de)>=1?de>0?(Math.min(+Math.floor(de/4294967296),4294967295)|0)>>>0:~~+Math.ceil((de-+(~~de>>>0))/4294967296)>>>0:0)],m[r+80>>2]=Pe[0],m[r+84>>2]=Pe[1],0},doMsync(e,t,r,A,i){let o=ge.slice(e,e+r);a.msync(t,o,i,r,A)},doMkdir(e,t){return e=ee.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,_t(A)),o=oe[t+i];return it(A,t,r+1),oe[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,oe,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,oe,s,c,A);if(d<0)return-1;i+=d}return i},varargs:void 0,get(){return P(ie.varargs!=null),ie.varargs+=4,m[ie.varargs-4>>2]},getStr(e){return ue(e)},getStreamFromFD(e){let t=a.getStream(e);if(!t)throw new a.ErrnoError(8);return t},get64(e,t){return e>=0?P(t===0):P(t===-1),e}};function rA(e,t,r){ie.varargs=r;try{let i=ie.getStreamFromFD(e);switch(t){case 0:{var A=ie.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=ie.get();return i.flags|=A,0}case 12:{var A=ie.get();let s=0;return ot[A+s>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return en(28),-1;default:return-28}}catch(i){return(typeof a=="undefined"||!(i instanceof a.ErrnoError))&&u(i),-i.errno}}function nA(e,t,r){ie.varargs=r;try{let i=ie.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=ie.get();return m[A>>2]=0,0}case 21520:return i.tty?-28:-59;case 21531:{var A=ie.get();return a.ioctl(i,t,A)}case 21523:return i.tty?0:-59;case 21524:return i.tty?0:-59;default:u(`bad ioctl syscall ${t}`)}}catch(i){return(typeof a=="undefined"||!(i instanceof a.ErrnoError))&&u(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=tn(t),!s)return-48;c=!0}else{let d=a.getStream(i);if(!d)return-8;let f=a.mmap(d,e,t,o,r,A);s=f.ptr,c=f.allocated}return ie.mappings[s]={malloc:s,len:t,allocated:c,fd:i,prot:r,flags:A,offset:o},s}function iA(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))&&u(s),-s.errno}}function nn(e,t,r){ie.varargs=r;try{let A=ie.getStr(e),i=r?ie.get():0;return a.open(A,t,i).fd}catch(A){return(typeof a=="undefined"||!(A instanceof a.ErrnoError))&&u(A),-A.errno}}function oA(e,t){try{return e=ie.getStr(e),ie.doStat(a.stat,e,t)}catch(r){return(typeof a=="undefined"||!(r instanceof a.ErrnoError))&&u(r),-r.errno}}let sA=48,aA=57;function Gt(e){if(e===void 0)return"_unknown";e=e.replace(/[^a-zA-Z0-9_]/g,"$");let t=e.charCodeAt(0);return t>=sA&&t<=aA?`_${e}`:e}function Ar(e,t){return e=Gt(e),new Function("body",`return function ${e}() {
5
5
  "use strict"; return body.apply(this, arguments);
6
6
  };
7
- `)(t)}let hr=[],Fe=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function dA(){let e=0;for(let t=5;t<Fe.length;++t)Fe[t]!==void 0&&++e;return e}function fA(){for(let e=5;e<Fe.length;++e)if(Fe[e]!==void 0)return Fe[e];return null}function EA(){n.count_emval_handles=dA,n.get_first_emval=fA}function Ar(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:{let t=hr.length?hr.pop():Fe.length;return Fe[t]={refcount:1,value:e},t}}}function ir(e,t){let r=nr(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 sn;function mr(){let e=new Array(256);for(let t=0;t<256;++t)e[t]=String.fromCharCode(t);Qr=e}var Qr=void 0;function ue(e){let t="",r=e;for(;le[r];)t+=Qr[le[r++]];return t}function IA(){return Object.keys(et).length}function CA(){let e=[];for(let t in et)et.hasOwnProperty(t)&&e.push(et[t]);return e}let Ct=[];function yr(){for(;Ct.length;){let e=Ct.pop();e.$$.deleteScheduled=!1,e.delete()}}let Yt;function pA(e){Yt=e,Ct.length&&Yt&&Yt(yr)}function BA(){n.getInheritedInstanceCount=IA,n.getLiveInheritedInstances=CA,n.flushPendingDeletes=yr,n.setDelayFunction=pA}var et={};let St;function W(e){throw new St(e)}function _r(e,t){for(t===void 0&&W("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function hA(e,t,r){t=_r(e,t),et.hasOwnProperty(t)?W(`Tried to register registered instance: ${t}`):et[t]=r}function an(e){return e||W(`Cannot use deleted val. handle = ${e}`),Fe[e].value}let pt={};function cn(e){let t=ra(e),r=ue(t);return dt(t),r}function wr(e,t){let r=pt[e];return r===void 0&&W(`${t} has unknown type ${cn(e)}`),r}function mA(e,t){t=_r(e,t),et.hasOwnProperty(t)?delete et[t]:W(`Tried to unregister unregistered instance: ${t}`)}function we(e){}let Dr=!1;function br(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}function Tr(e){e.count.value-=1,e.count.value===0&&br(e)}function De(e){return typeof FinalizationGroup=="undefined"?(De=function(t){return t},e):(Dr=new FinalizationGroup(t=>{for(let r=t.next();!r.done;r=t.next()){let A=r.value;A.ptr?Tr(A):console.warn(`object already deleted: ${A.ptr}`)}}),De=function(t){return Dr.register(t,t.$$,t.$$),t},we=function(t){Dr.unregister(t.$$)},De(e))}function gn(e,t,r){e=ue(e),t=wr(t,"wrapper"),r=an(r);let A=[].slice,{registeredClass:i}=t,o=i.instancePrototype,{baseClass:s}=i,c=s.instancePrototype,d=i.baseClass.constructor,E=nr(e,function(){i.baseClass.pureVirtualFunctions.forEach(I=>{if(this[I]===c[I])throw new sn(`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&&W("Pass correct 'this' to __construct");let B=d.implement.apply(void 0,[this].concat(A.call(arguments)));we(B);let{$$:h}=B;B.notifyOnDestruction(),h.preservePointerOnDelete=!0,Object.defineProperties(this,{$$:{value:h}}),De(this),hA(i,h.ptr,this)},o.__destruct=function(){this===o&&W("Pass correct 'this' to __destruct"),we(this),mA(i,this.$$.ptr)},E.prototype=Object.create(o);for(let I in r)E.prototype[I]=r[I];return Ar(E)}let or={};function ln(e){for(;e.length;){let t=e.pop();e.pop()(t)}}function gt(e){return this.fromWireType(ie[e>>2])}let Bt={},l={},g;function f(e){throw new g(e)}function C(e,t,r){e.forEach(c=>{l[c]=t});function A(c){let d=r(c);d.length!==e.length&&f("Mismatched type converter count");for(let E=0;E<e.length;++E)b(e[E],d[E])}let i=new Array(t.length),o=[],s=0;t.forEach((c,d)=>{pt.hasOwnProperty(c)?i[d]=pt[c]:(o.push(c),Bt.hasOwnProperty(c)||(Bt[c]=[]),Bt[c].push(()=>{i[d]=pt[c],++s,s===o.length&&A(i)}))}),o.length===0&&A(i)}function D(e){let t=or[e];delete or[e];let{rawConstructor:r}=t,{rawDestructor:A}=t,i=t.fields,o=i.map(s=>s.getterReturnType).concat(i.map(s=>s.setterArgumentType));C([e],o,s=>{let c={};return i.forEach((d,E)=>{let{fieldName:I}=d,B=s[E],{getter:h}=d,{getterContext:y}=d,O=s[E+i.length],{setter:U}=d,{setterContext:Y}=d;c[I]={read(q){return B.fromWireType(h(y,q))},write(q,w){let F=[];U(Y,q,O.toWireType(F,w)),ln(F)}}}),[{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:gt,destructorFunction:A}]})}function R(e,t,r,A,i){}function M(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 b(e,t,r){if(r=r||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");let{name:A}=t;if(e||W(`type "${A}" must have a positive integer typeid pointer`),pt.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;W(`Cannot register type '${A}' twice`)}if(pt[e]=t,delete l[e],Bt.hasOwnProperty(e)){let i=Bt[e];delete Bt[e],i.forEach(o=>{o()})}}function k(e,t,r,A,i){let o=M(r);t=ue(t),b(e,{name:t,fromWireType(s){return!!s},toWireType(s,c){return c?A:i},argPackAdvance:8,readValueFromPointer(s){let c;if(r===1)c=se;else if(r===2)c=it;else if(r===4)c=m;else throw new TypeError(`Unknown boolean type size: ${t}`);return this.fromWireType(c[s>>o])},destructorFunction:null})}function L(e){if(!(this instanceof ae)||!(e instanceof ae))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 N(e){return{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}}function $(e){function t(r){return r.$$.ptrType.registeredClass.name}W(`${t(e)} instance already deleted`)}function re(){if(this.$$.ptr||$(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;let e=De(Object.create(Object.getPrototypeOf(this),{$$:{value:N(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function ne(){this.$$.ptr||$(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&W("Object already scheduled for deletion"),we(this),Tr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Ee(){return!this.$$.ptr}function ve(){return this.$$.ptr||$(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&W("Object already scheduled for deletion"),Ct.push(this),Ct.length===1&&Yt&&Yt(yr),this.$$.deleteScheduled=!0,this}function Oe(){ae.prototype.isAliasOf=L,ae.prototype.clone=re,ae.prototype.delete=ne,ae.prototype.isDeleted=Ee,ae.prototype.deleteLater=ve}function ae(){}let lt={};function Ie(e,t,r){if(e[t].overloadTable===void 0){let A=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||W(`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 sr(e,t,r){n.hasOwnProperty(e)?((r===void 0||n[e].overloadTable!==void 0&&n[e].overloadTable[r]!==void 0)&&W(`Cannot register public name '${e}' twice`),Ie(n,e,e),n.hasOwnProperty(r)&&W(`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 tt(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 ht(e,t,r){for(;t!==r;)t.upcast||W(`Expected null or instance of ${r.name}, got an instance of ${t.name}`),e=t.upcast(e),t=t.baseClass;return e}function un(e,t){if(t===null)return this.isReference&&W(`null is not a valid ${this.name}`),0;t.$$||W(`Cannot pass "${ar(t)}" as a ${this.name}`),t.$$.ptr||W(`Cannot pass deleted object as a pointer of type ${this.name}`);let r=t.$$.ptrType.registeredClass;return ht(t.$$.ptr,r,this.registeredClass)}function dn(e,t){let r;if(t===null)return this.isReference&&W(`null is not a valid ${this.name}`),this.isSmartPointer?(r=this.rawConstructor(),e!==null&&e.push(this.rawDestructor,r),r):0;t.$$||W(`Cannot pass "${ar(t)}" as a ${this.name}`),t.$$.ptr||W(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&t.$$.ptrType.isConst&&W(`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=ht(t.$$.ptr,A,this.registeredClass),this.isSmartPointer)switch(t.$$.smartPtr===void 0&&W("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:W(`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,Ar(()=>{i.delete()})),e!==null&&e.push(this.rawDestructor,r)}break;default:W("Unsupporting sharing policy")}return r}function Or(e,t){if(t===null)return this.isReference&&W(`null is not a valid ${this.name}`),0;t.$$||W(`Cannot pass "${ar(t)}" as a ${this.name}`),t.$$.ptr||W(`Cannot pass deleted object as a pointer of type ${this.name}`),t.$$.ptrType.isConst&&W(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);let r=t.$$.ptrType.registeredClass;return ht(t.$$.ptr,r,this.registeredClass)}function fn(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function di(e){this.rawDestructor&&this.rawDestructor(e)}function fi(e){e!==null&&e.delete()}function UA(e,t,r){if(t===r)return e;if(r.baseClass===void 0)return null;let A=UA(e,t,r.baseClass);return A===null?null:r.downcast(A)}function Ei(e,t){return t=_r(e,t),et[t]}function En(e,t){(!t.ptrType||!t.ptr)&&f("makeClassHandle requires ptr and ptrType");let r=!!t.smartPtrType,A=!!t.smartPtr;return r!==A&&f("Both smartPtrType and smartPtr must be specified"),t.count={value:1},De(Object.create(e,{$$:{value:t}}))}function Ii(e){let t=this.getPointee(e);if(!t)return this.destructor(e),null;let r=Ei(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?En(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):En(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}let i=this.registeredClass.getActualType(t),o=lt[i];if(!o)return A.call(this);let s;this.isConst?s=o.constPointerType:s=o.pointerType;let c=UA(t,this.registeredClass,s.registeredClass);return c===null?A.call(this):this.isSmartPointer?En(s.registeredClass.instancePrototype,{ptrType:s,ptr:c,smartPtrType:this,smartPtr:e}):En(s.registeredClass.instancePrototype,{ptrType:s,ptr:c})}function Ci(){mt.prototype.getPointee=fn,mt.prototype.destructor=di,mt.prototype.argPackAdvance=8,mt.prototype.readValueFromPointer=gt,mt.prototype.deleteObject=fi,mt.prototype.fromWireType=Ii}function mt(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=un,this.destructorFunction=null):(this.toWireType=Or,this.destructorFunction=null):this.toWireType=dn}function xA(e,t,r){n.hasOwnProperty(e)||f("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 pi(e,t,r){P(`dynCall_${e}`in n,`bad function pointer type - no table for sig '${e}'`),r&&r.length?P(r.length===e.substring(1).replace(/j/g,"--").length):P(e.length==1);let A=n[`dynCall_${e}`];return r&&r.length?A.apply(null,[t].concat(r)):A.call(null,t)}function Bi(e,t,r){return e.includes("j")?pi(e,t,r):(P(v.get(t),`missing table entry in dynCall: ${t}`),v.get(t).apply(null,r))}function hi(e,t){P(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 Bi(e,t,r)}}function ke(e,t){e=ue(e);function r(){return e.includes("j")?hi(e,t):v.get(t)}let A=r();return typeof A!="function"&&W(`unknown function pointer with signature ${e}: ${t}`),A}let LA;function Xt(e,t){let r=[],A={};function i(o){if(!A[o]&&!pt[o]){if(l[o]){l[o].forEach(i);return}r.push(o),A[o]=!0}}throw t.forEach(i),new LA(`${e}: ${r.map(cn).join([", "])}`)}function mi(e,t,r,A,i,o,s,c,d,E,I,B,h){I=ue(I),o=ke(i,o),c&&(c=ke(s,c)),E&&(E=ke(d,E)),h=ke(B,h);let y=Ht(I);sr(y,()=>{Xt(`Cannot construct ${I} due to unbound types`,[A])}),C([e,t,r],A?[A]:[],O=>{O=O[0];let U,Y;A?(U=O.registeredClass,Y=U.instancePrototype):Y=ae.prototype;let q=nr(y,function(){if(Object.getPrototypeOf(this)!==w)throw new St(`Use 'new' to construct ${I}`);if(F.constructor_body===void 0)throw new St(`${I} has no accessible constructor`);let be=F.constructor_body[arguments.length];if(be===void 0)throw new St(`Tried to invoke ctor of ${I} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(F.constructor_body).toString()}) parameters instead!`);return be.apply(this,arguments)});var w=Object.create(Y,{constructor:{value:q}});q.prototype=w;var F=new tt(I,q,w,h,U,o,c,E);let te=new mt(I,F,!0,!1,!1),x=new mt(`${I}*`,F,!1,!1,!1),Ce=new mt(`${I} const*`,F,!1,!0,!1);return lt[e]={pointerType:x,constPointerType:Ce},xA(y,q),[te,x,Ce]})}function GA(e,t){if(!(e instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof e} which is not a function`);let r=nr(e.name||"unknownFunctionName",()=>{});r.prototype=e.prototype;let A=new r,i=e.apply(A,t);return i instanceof Object?i:A}function In(e,t,r,A,i){let o=t.length;o<2&&W("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 ${Ht(e)}(${I}) {
7
+ `)(t)}let hr=[],Fe=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function cA(){let e=0;for(let t=5;t<Fe.length;++t)Fe[t]!==void 0&&++e;return e}function gA(){for(let e=5;e<Fe.length;++e)if(Fe[e]!==void 0)return Fe[e];return null}function lA(){n.count_emval_handles=cA,n.get_first_emval=gA}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=hr.length?hr.pop():Fe.length;return Fe[t]={refcount:1,value:e},t}}}function or(e,t){let r=Ar(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 An;function mr(){let e=new Array(256);for(let t=0;t<256;++t)e[t]=String.fromCharCode(t);Qr=e}var Qr=void 0;function le(e){let t="",r=e;for(;ge[r];)t+=Qr[ge[r++]];return t}function uA(){return Object.keys(tt).length}function dA(){let e=[];for(let t in tt)tt.hasOwnProperty(t)&&e.push(tt[t]);return e}let It=[];function yr(){for(;It.length;){let e=It.pop();e.$$.deleteScheduled=!1,e.delete()}}let jt;function fA(e){jt=e,It.length&&jt&&jt(yr)}function EA(){n.getInheritedInstanceCount=uA,n.getLiveInheritedInstances=dA,n.flushPendingDeletes=yr,n.setDelayFunction=fA}var tt={};let Rt;function V(e){throw new Rt(e)}function _r(e,t){for(t===void 0&&V("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function IA(e,t,r){t=_r(e,t),tt.hasOwnProperty(t)?V(`Tried to register registered instance: ${t}`):tt[t]=r}function on(e){return e||V(`Cannot use deleted val. handle = ${e}`),Fe[e].value}let Ct={};function Ue(e){let t=ra(e),r=le(t);return ut(t),r}function Dr(e,t){let r=Ct[e];return r===void 0&&V(`${t} has unknown type ${Ue(e)}`),r}function wr(e,t){t=_r(e,t),tt.hasOwnProperty(t)?delete tt[t]:V(`Tried to unregister unregistered instance: ${t}`)}function Ht(e){}let xe=!1;function sn(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}function CA(e){e.count.value-=1,e.count.value===0&&sn(e)}function rt(e){return typeof FinalizationGroup=="undefined"?(rt=function(t){return t},e):(xe=new FinalizationGroup(t=>{for(let r=t.next();!r.done;r=t.next()){let A=r.value;A.ptr?CA(A):console.warn(`object already deleted: ${A.ptr}`)}}),rt=function(t){return xe.register(t,t.$$,t.$$),t},Ht=function(t){xe.unregister(t.$$)},rt(e))}function an(e,t,r){e=le(e),t=Dr(t,"wrapper"),r=on(r);let A=[].slice,{registeredClass:i}=t,o=i.instancePrototype,{baseClass:s}=i,c=s.instancePrototype,d=i.baseClass.constructor,f=Ar(e,function(){i.baseClass.pureVirtualFunctions.forEach(I=>{if(this[I]===c[I])throw new An(`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&&V("Pass correct 'this' to __construct");let B=d.implement.apply(void 0,[this].concat(A.call(arguments)));Ht(B);let{$$:h}=B;B.notifyOnDestruction(),h.preservePointerOnDelete=!0,Object.defineProperties(this,{$$:{value:h}}),rt(this),IA(i,h.ptr,this)},o.__destruct=function(){this===o&&V("Pass correct 'this' to __destruct"),Ht(this),wr(i,this.$$.ptr)},f.prototype=Object.create(o);for(let I in r)f.prototype[I]=r[I];return ir(f)}let l={};function g(e){for(;e.length;){let t=e.pop();e.pop()(t)}}function E(e){return this.fromWireType(Ae[e>>2])}let p={},w={},R;function M(e){throw new R(e)}function b(e,t,r){e.forEach(c=>{w[c]=t});function A(c){let d=r(c);d.length!==e.length&&M("Mismatched type converter count");for(let f=0;f<e.length;++f)K(e[f],d[f])}let i=new Array(t.length),o=[],s=0;t.forEach((c,d)=>{Ct.hasOwnProperty(c)?i[d]=Ct[c]:(o.push(c),p.hasOwnProperty(c)||(p[c]=[]),p[c].push(()=>{i[d]=Ct[c],++s,s===o.length&&A(i)}))}),o.length===0&&A(i)}function N(e){let t=l[e];delete l[e];let{rawConstructor:r}=t,{rawDestructor:A}=t,i=t.fields,o=i.map(s=>s.getterReturnType).concat(i.map(s=>s.setterArgumentType));b([e],o,s=>{let c={};return i.forEach((d,f)=>{let{fieldName:I}=d,B=s[f],{getter:h}=d,{getterContext:y}=d,T=s[f+i.length],{setter:U}=d,{setterContext:Y}=d;c[I]={read(q){return B.fromWireType(h(y,q))},write(q,D){let F=[];U(Y,q,T.toWireType(F,D)),g(F)}}}),[{name:t.name,fromWireType(d){let f={};for(let I in c)f[I]=c[I].read(d);return A(d),f},toWireType(d,f){for(var I in c)if(!(I in f))throw new TypeError(`Missing field: "${I}"`);let B=r();for(I in c)c[I].write(B,f[I]);return d!==null&&d.push(A,B),B},argPackAdvance:8,readValueFromPointer:E,destructorFunction:A}]})}function L(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 K(e,t,r){if(r=r||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");let{name:A}=t;if(e||V(`type "${A}" must have a positive integer typeid pointer`),Ct.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;V(`Cannot register type '${A}' twice`)}if(Ct[e]=t,delete w[e],p.hasOwnProperty(e)){let i=p[e];delete p[e],i.forEach(o=>{o()})}}function re(e,t,r,A,i){let o=k(r);t=le(t),K(e,{name:t,fromWireType(s){return!!s},toWireType(s,c){return c?A:i},argPackAdvance:8,readValueFromPointer(s){let c;if(r===1)c=oe;else if(r===2)c=ot;else if(r===4)c=m;else throw new TypeError(`Unknown boolean type size: ${t}`);return this.fromWireType(c[s>>o])},destructorFunction:null})}function ne(e){if(!(this instanceof pe)||!(e instanceof pe))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 fe(e){return{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}}function we(e){function t(r){return r.$$.ptrType.registeredClass.name}V(`${t(e)} instance already deleted`)}function Te(){if(this.$$.ptr||we(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;let e=rt(Object.create(Object.getPrototypeOf(this),{$$:{value:fe(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function Qe(){this.$$.ptr||we(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&V("Object already scheduled for deletion"),Ht(this),CA(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function pt(){return!this.$$.ptr}function ye(){return this.$$.ptr||we(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&V("Object already scheduled for deletion"),It.push(this),It.length===1&&jt&&jt(yr),this.$$.deleteScheduled=!0,this}function br(){pe.prototype.isAliasOf=ne,pe.prototype.clone=Te,pe.prototype.delete=Qe,pe.prototype.isDeleted=pt,pe.prototype.deleteLater=ye}function pe(){}let Yt={};function sr(e,t,r){if(e[t].overloadTable===void 0){let A=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||V(`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 Or(e,t,r){n.hasOwnProperty(e)?((r===void 0||n[e].overloadTable!==void 0&&n[e].overloadTable[r]!==void 0)&&V(`Cannot register public name '${e}' twice`),sr(n,e,e),n.hasOwnProperty(r)&&V(`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 Tr(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 Xt(e,t,r){for(;t!==r;)t.upcast||V(`Expected null or instance of ${r.name}, got an instance of ${t.name}`),e=t.upcast(e),t=t.baseClass;return e}function ci(e,t){if(t===null)return this.isReference&&V(`null is not a valid ${this.name}`),0;t.$$||V(`Cannot pass "${ar(t)}" as a ${this.name}`),t.$$.ptr||V(`Cannot pass deleted object as a pointer of type ${this.name}`);let r=t.$$.ptrType.registeredClass;return Xt(t.$$.ptr,r,this.registeredClass)}function gi(e,t){let r;if(t===null)return this.isReference&&V(`null is not a valid ${this.name}`),this.isSmartPointer?(r=this.rawConstructor(),e!==null&&e.push(this.rawDestructor,r),r):0;t.$$||V(`Cannot pass "${ar(t)}" as a ${this.name}`),t.$$.ptr||V(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&t.$$.ptrType.isConst&&V(`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=Xt(t.$$.ptr,A,this.registeredClass),this.isSmartPointer)switch(t.$$.smartPtr===void 0&&V("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:V(`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:V("Unsupporting sharing policy")}return r}function li(e,t){if(t===null)return this.isReference&&V(`null is not a valid ${this.name}`),0;t.$$||V(`Cannot pass "${ar(t)}" as a ${this.name}`),t.$$.ptr||V(`Cannot pass deleted object as a pointer of type ${this.name}`),t.$$.ptrType.isConst&&V(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);let r=t.$$.ptrType.registeredClass;return Xt(t.$$.ptr,r,this.registeredClass)}function ui(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function di(e){this.rawDestructor&&this.rawDestructor(e)}function fi(e){e!==null&&e.delete()}function FA(e,t,r){if(t===r)return e;if(r.baseClass===void 0)return null;let A=FA(e,t,r.baseClass);return A===null?null:r.downcast(A)}function Ei(e,t){return t=_r(e,t),tt[t]}function cn(e,t){(!t.ptrType||!t.ptr)&&M("makeClassHandle requires ptr and ptrType");let r=!!t.smartPtrType,A=!!t.smartPtr;return r!==A&&M("Both smartPtrType and smartPtr must be specified"),t.count={value:1},rt(Object.create(e,{$$:{value:t}}))}function Ii(e){let t=this.getPointee(e);if(!t)return this.destructor(e),null;let r=Ei(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?cn(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):cn(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}let i=this.registeredClass.getActualType(t),o=Yt[i];if(!o)return A.call(this);let s;this.isConst?s=o.constPointerType:s=o.pointerType;let c=FA(t,this.registeredClass,s.registeredClass);return c===null?A.call(this):this.isSmartPointer?cn(s.registeredClass.instancePrototype,{ptrType:s,ptr:c,smartPtrType:this,smartPtr:e}):cn(s.registeredClass.instancePrototype,{ptrType:s,ptr:c})}function Ci(){Bt.prototype.getPointee=ui,Bt.prototype.destructor=di,Bt.prototype.argPackAdvance=8,Bt.prototype.readValueFromPointer=E,Bt.prototype.deleteObject=fi,Bt.prototype.fromWireType=Ii}function Bt(e,t,r,A,i,o,s,c,d,f,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=f,this.rawDestructor=I,!i&&t.baseClass===void 0?A?(this.toWireType=ci,this.destructorFunction=null):(this.toWireType=li,this.destructorFunction=null):this.toWireType=gi}function vA(e,t,r){n.hasOwnProperty(e)||M("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 pi(e,t,r){P(`dynCall_${e}`in n,`bad function pointer type - no table for sig '${e}'`),r&&r.length?P(r.length===e.substring(1).replace(/j/g,"--").length):P(e.length==1);let A=n[`dynCall_${e}`];return r&&r.length?A.apply(null,[t].concat(r)):A.call(null,t)}function Bi(e,t,r){return e.includes("j")?pi(e,t,r):(P(v.get(t),`missing table entry in dynCall: ${t}`),v.get(t).apply(null,r))}function hi(e,t){P(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 Bi(e,t,r)}}function ve(e,t){e=le(e);function r(){return e.includes("j")?hi(e,t):v.get(t)}let A=r();return typeof A!="function"&&V(`unknown function pointer with signature ${e}: ${t}`),A}let NA;function Vt(e,t){let r=[],A={};function i(o){if(!A[o]&&!Ct[o]){if(w[o]){w[o].forEach(i);return}r.push(o),A[o]=!0}}throw t.forEach(i),new NA(`${e}: ${r.map(Ue).join([", "])}`)}function mi(e,t,r,A,i,o,s,c,d,f,I,B,h){I=le(I),o=ve(i,o),c&&(c=ve(s,c)),f&&(f=ve(d,f)),h=ve(B,h);let y=Gt(I);Or(y,()=>{Vt(`Cannot construct ${I} due to unbound types`,[A])}),b([e,t,r],A?[A]:[],T=>{T=T[0];let U,Y;A?(U=T.registeredClass,Y=U.instancePrototype):Y=pe.prototype;let q=Ar(y,function(){if(Object.getPrototypeOf(this)!==D)throw new Rt(`Use 'new' to construct ${I}`);if(F.constructor_body===void 0)throw new Rt(`${I} has no accessible constructor`);let be=F.constructor_body[arguments.length];if(be===void 0)throw new Rt(`Tried to invoke ctor of ${I} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(F.constructor_body).toString()}) parameters instead!`);return be.apply(this,arguments)});var D=Object.create(Y,{constructor:{value:q}});q.prototype=D;var F=new Tr(I,q,D,h,U,o,c,f);let te=new Bt(I,F,!0,!1,!1),x=new Bt(`${I}*`,F,!1,!1,!1),Ee=new Bt(`${I} const*`,F,!1,!0,!1);return Yt[e]={pointerType:x,constPointerType:Ee},vA(y,q),[te,x,Ee]})}function kA(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 A=new r,i=e.apply(A,t);return i instanceof Object?i:A}function gn(e,t,r,A,i){let o=t.length;o<2&&V("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 f=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 ${Gt(e)}(${I}) {
9
9
  if (arguments.length !== ${o-2}) {
10
10
  throwBindingError('function ${e} called with ' + arguments.length + ' arguments, expected ${o-2} args!');
11
11
  }
12
12
  `;c&&(h+=`var destructors = [];
13
- `);let y=c?"destructors":"null",O=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],U=[W,A,i,ln,t[0],t[1]];s&&(h+=`var thisWired = classParam.toWireType(${y}, this);
13
+ `);let y=c?"destructors":"null",T=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],U=[V,A,i,g,t[0],t[1]];s&&(h+=`var thisWired = classParam.toWireType(${y}, this);
14
14
  `);for(var d=0;d<o-2;++d)h+=`var arg${d}Wired = argType${d}.toWireType(${y}, arg${d}); // ${t[d+2].name}
15
- `,O.push(`argType${d}`),U.push(t[d+2]);if(s&&(B=`thisWired${B.length>0?", ":""}${B}`),h+=`${E?"var rv = ":""}invoker(fn${B.length>0?", ":""}${B});
15
+ `,T.push(`argType${d}`),U.push(t[d+2]);if(s&&(B=`thisWired${B.length>0?", ":""}${B}`),h+=`${f?"var rv = ":""}invoker(fn${B.length>0?", ":""}${B});
16
16
  `,c)h+=`runDestructors(destructors);
17
- `;else for(var d=s?1:2;d<t.length;++d){let w=d===1?"thisWired":`arg${d-2}Wired`;t[d].destructorFunction!==null&&(h+=`${w}_dtor(${w}); // ${t[d].name}
18
- `,O.push(`${w}_dtor`),U.push(t[d].destructorFunction))}return E&&(h+=`var ret = retType.fromWireType(rv);
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
+ `,T.push(`${D}_dtor`),U.push(t[d].destructorFunction))}return f&&(h+=`var ret = retType.fromWireType(rv);
19
19
  return ret;
20
20
  `),h+=`}
21
- `,O.push(h),GA(Function,O).apply(null,U)}function Cn(e,t){let r=[];for(let A=0;A<e;A++)r.push(m[(t>>2)+A]);return r}function Qi(e,t,r,A,i,o,s){let c=Cn(r,A);t=ue(t),o=ke(i,o),C([],[e],d=>{d=d[0];let E=`${d.name}.${t}`;function I(){Xt(`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):(Ie(B,t,E),B[t].overloadTable[r-1]=I),C([],c,h=>{let y=[h[0],null].concat(h.slice(1)),O=In(E,y,null,o,s);return B[t].overloadTable===void 0?(O.argCount=r-1,B[t]=O):B[t].overloadTable[r-1]=O,[]}),[]})}function yi(e,t,r,A,i,o){P(t>0);let s=Cn(t,r);i=ke(A,i),C([],[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 St(`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(){Xt(`Cannot construct ${c.name} due to unbound types`,s)},C([],s,E=>(E.splice(1,0,null),c.registeredClass.constructor_body[t-1]=In(d,E,null,i,o),[])),[]})}function _i(e,t,r,A,i,o,s,c){let d=Cn(r,A);t=ue(t),o=ke(i,o),C([],[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(){Xt(`Cannot call ${I} due to unbound types`,d)}let h=E.registeredClass.instancePrototype,y=h[t];return y===void 0||y.overloadTable===void 0&&y.className!==E.name&&y.argCount===r-2?(B.argCount=r-2,B.className=E.name,h[t]=B):(Ie(h,t,I),h[t].overloadTable[r-2]=B),C([],d,O=>{let U=In(I,O,E,o,s);return h[t].overloadTable===void 0?(U.argCount=r-2,h[t]=U):h[t].overloadTable[r-2]=U,[]}),[]})}function jA(e,t,r){return e instanceof Object||W(`${r} with invalid "this": ${e}`),e instanceof t.registeredClass.constructor||W(`${r} incompatible with "this" of type ${e.constructor.name}`),e.$$.ptr||W(`cannot call emscripten binding method ${r} on deleted object`),ht(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)}function wi(e,t,r,A,i,o,s,c,d,E){t=ue(t),i=ke(A,i),C([],[e],I=>{I=I[0];let B=`${I.name}.${t}`,h={get(){Xt(`Cannot access ${B} due to unbound types`,[r,s])},enumerable:!0,configurable:!0};return d?h.set=function(){Xt(`Cannot access ${B} due to unbound types`,[r,s])}:h.set=function(y){W(`${B} is a read-only property`)},Object.defineProperty(I.registeredClass.instancePrototype,t,h),C([],d?[r,s]:[r],y=>{let O=y[0],U={get(){let Y=jA(this,I,`${B} getter`);return O.fromWireType(i(o,Y))},enumerable:!0};if(d){d=ke(c,d);let Y=y[1];U.set=function(q){let w=jA(this,I,`${B} setter`),F=[];d(E,w,Y.toWireType(F,q)),ln(F)}}return Object.defineProperty(I.registeredClass.instancePrototype,t,U),[]}),[]})}function HA(e){e>4&&--Fe[e].refcount===0&&(Fe[e]=void 0,hr.push(e))}function Di(e,t){t=ue(t),b(e,{name:t,fromWireType(r){let A=Fe[r].value;return HA(r),A},toWireType(r,A){return Ar(A)},argPackAdvance:8,readValueFromPointer:gt,destructorFunction:null})}function ar(e){if(e===null)return"null";let t=typeof e;return t==="object"||t==="array"||t==="function"?e.toString():`${e}`}function bi(e,t){switch(t){case 2:return function(r){return this.fromWireType(he[r>>2])};case 3:return function(r){return this.fromWireType(dr[r>>3])};default:throw new TypeError(`Unknown float type: ${e}`)}}function Ti(e,t,r){let A=M(r);t=ue(t),b(e,{name:t,fromWireType(i){return i},toWireType(i,o){if(typeof o!="number"&&typeof o!="boolean")throw new TypeError(`Cannot convert "${ar(o)}" to ${this.name}`);return o},argPackAdvance:8,readValueFromPointer:bi(t,A),destructorFunction:null})}function Oi(e,t,r,A,i,o){let s=Cn(t,r);e=ue(e),i=ke(A,i),sr(e,()=>{Xt(`Cannot call ${e} due to unbound types`,s)},t-1),C([],s,c=>{let d=[c[0],null].concat(c.slice(1));return xA(e,In(e,d,null,i,o),t-1),[]})}function Ri(e,t,r){switch(t){case 0:return r?function(i){return se[i]}:function(i){return le[i]};case 1:return r?function(i){return it[i>>1]}:function(i){return Tt[i>>1]};case 2:return r?function(i){return m[i>>2]}:function(i){return ie[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=M(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");b(e,{name:t,fromWireType:s,toWireType(d,E){if(typeof E!="number"&&typeof E!="boolean")throw new TypeError(`Cannot convert "${ar(E)}" to ${this.name}`);if(E<A||E>i)throw new TypeError(`Passing a number "${ar(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:Ri(t,o,A!==0),destructorFunction:null})}function Pi(e,t,r){let i=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function o(s){s=s>>2;let c=ie,d=c[s],E=c[s+1];return new i(vt,E,d)}r=ue(r),b(e,{name:r,fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})}function Si(e,t){t=ue(t);let r=t==="std::string";b(e,{name:t,fromWireType(A){let i=ie[A>>2],o;if(r){let c=A+4;for(var s=0;s<=i;++s){let d=A+4+s;if(s==i||le[d]==0){let E=d-c,I=de(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(le[A+4+s]);o=c.join("")}return dt(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||W("Cannot pass non-string to std::string"),r&&s?o=function(){return bt(i)}:o=function(){return i.length};let c=o(),d=Wt(4+c+1);if(ie[d>>2]=c,r&&s)At(i,d+4,c+1);else if(s)for(var E=0;E<c;++E){let I=i.charCodeAt(E);I>255&&(dt(d),W("String has UTF-16 code units that do not fit in 8 bits")),le[d+4+E]=I}else for(var E=0;E<c;++E)le[d+4+E]=i[E];return A!==null&&A.push(dt,d),d},argPackAdvance:8,readValueFromPointer:gt,destructorFunction(A){dt(A)}})}function Fi(e,t,r){r=ue(r);let A,i,o,s,c;t===2?(A=lr,i=xr,s=Ln,o=function(){return Tt},c=1):t===4&&(A=Gn,i=Kt,s=jn,o=function(){return ie},c=2),b(e,{name:r,fromWireType(d){let E=ie[d>>2],I=o(),B,h=d+4;for(let y=0;y<=E;++y){let O=d+4+y*t;if(y==E||I[O>>c]==0){let U=O-h,Y=A(h,U);B===void 0?B=Y:(B+=String.fromCharCode(0),B+=Y),h=O+t}}return dt(d),B},toWireType(d,E){typeof E!="string"&&W(`Cannot pass non-string to C++ string type ${r}`);let I=s(E),B=Wt(4+I+t);return ie[B>>2]=I>>c,i(E,B+4,I+t),d!==null&&d.push(dt,B),B},argPackAdvance:8,readValueFromPointer:gt,destructorFunction(d){dt(d)}})}function vi(e,t,r,A,i,o){or[e]={name:ue(t),rawConstructor:ke(r,A),rawDestructor:ke(i,o),fields:[]}}function ki(e,t,r,A,i,o,s,c,d,E){or[e].fields.push({fieldName:ue(t),getterReturnType:r,getter:ke(A,i),getterContext:o,setterArgumentType:s,setter:ke(c,d),setterContext:E})}function Ni(e,t){t=ue(t),b(e,{isVoid:!0,name:t,argPackAdvance:0,fromWireType(){},toWireType(r,A){}})}let Ui={};function xi(e){let t=Ui[e];return t===void 0?ue(e):t}let QA=[];function Li(e,t,r,A){e=QA[e],t=an(t),r=xi(r),e(t,r,null,A)}function Gi(e){let t=QA.length;return QA.push(e),t}function ji(e,t){let r=new Array(e);for(let A=0;A<e;++A)r[A]=wr(m[(t>>2)+A],`parameter ${A}`);return r}function Hi(e,t){let r=ji(e,t),A=r[0],i=`${A.name}_$${r.slice(1).map(y=>y.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 ${Ht(`methodCaller_${i}`)}(handle, name, destructors, args) {
21
+ `,T.push(h),kA(Function,T).apply(null,U)}function ln(e,t){let r=[];for(let A=0;A<e;A++)r.push(m[(t>>2)+A]);return r}function Qi(e,t,r,A,i,o,s){let c=ln(r,A);t=le(t),o=ve(i,o),b([],[e],d=>{d=d[0];let f=`${d.name}.${t}`;function I(){Vt(`Cannot call ${f} 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):(sr(B,t,f),B[t].overloadTable[r-1]=I),b([],c,h=>{let y=[h[0],null].concat(h.slice(1)),T=gn(f,y,null,o,s);return B[t].overloadTable===void 0?(T.argCount=r-1,B[t]=T):B[t].overloadTable[r-1]=T,[]}),[]})}function yi(e,t,r,A,i,o){P(t>0);let s=ln(t,r);i=ve(A,i),b([],[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 Rt(`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(){Vt(`Cannot construct ${c.name} due to unbound types`,s)},b([],s,f=>(f.splice(1,0,null),c.registeredClass.constructor_body[t-1]=gn(d,f,null,i,o),[])),[]})}function _i(e,t,r,A,i,o,s,c){let d=ln(r,A);t=le(t),o=ve(i,o),b([],[e],f=>{f=f[0];let I=`${f.name}.${t}`;t.startsWith("@@")&&(t=Symbol[t.substring(2)]),c&&f.registeredClass.pureVirtualFunctions.push(t);function B(){Vt(`Cannot call ${I} due to unbound types`,d)}let h=f.registeredClass.instancePrototype,y=h[t];return y===void 0||y.overloadTable===void 0&&y.className!==f.name&&y.argCount===r-2?(B.argCount=r-2,B.className=f.name,h[t]=B):(sr(h,t,I),h[t].overloadTable[r-2]=B),b([],d,T=>{let U=gn(I,T,f,o,s);return h[t].overloadTable===void 0?(U.argCount=r-2,h[t]=U):h[t].overloadTable[r-2]=U,[]}),[]})}function UA(e,t,r){return e instanceof Object||V(`${r} with invalid "this": ${e}`),e instanceof t.registeredClass.constructor||V(`${r} incompatible with "this" of type ${e.constructor.name}`),e.$$.ptr||V(`cannot call emscripten binding method ${r} on deleted object`),Xt(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)}function Di(e,t,r,A,i,o,s,c,d,f){t=le(t),i=ve(A,i),b([],[e],I=>{I=I[0];let B=`${I.name}.${t}`,h={get(){Vt(`Cannot access ${B} due to unbound types`,[r,s])},enumerable:!0,configurable:!0};return d?h.set=function(){Vt(`Cannot access ${B} due to unbound types`,[r,s])}:h.set=function(y){V(`${B} is a read-only property`)},Object.defineProperty(I.registeredClass.instancePrototype,t,h),b([],d?[r,s]:[r],y=>{let T=y[0],U={get(){let Y=UA(this,I,`${B} getter`);return T.fromWireType(i(o,Y))},enumerable:!0};if(d){d=ve(c,d);let Y=y[1];U.set=function(q){let D=UA(this,I,`${B} setter`),F=[];d(f,D,Y.toWireType(F,q)),g(F)}}return Object.defineProperty(I.registeredClass.instancePrototype,t,U),[]}),[]})}function xA(e){e>4&&--Fe[e].refcount===0&&(Fe[e]=void 0,hr.push(e))}function wi(e,t){t=le(t),K(e,{name:t,fromWireType(r){let A=Fe[r].value;return xA(r),A},toWireType(r,A){return ir(A)},argPackAdvance:8,readValueFromPointer:E,destructorFunction:null})}function ar(e){if(e===null)return"null";let t=typeof e;return t==="object"||t==="array"||t==="function"?e.toString():`${e}`}function bi(e,t){switch(t){case 2:return function(r){return this.fromWireType(Ce[r>>2])};case 3:return function(r){return this.fromWireType(dr[r>>3])};default:throw new TypeError(`Unknown float type: ${e}`)}}function Oi(e,t,r){let A=k(r);t=le(t),K(e,{name:t,fromWireType(i){return i},toWireType(i,o){if(typeof o!="number"&&typeof o!="boolean")throw new TypeError(`Cannot convert "${ar(o)}" to ${this.name}`);return o},argPackAdvance:8,readValueFromPointer:bi(t,A),destructorFunction:null})}function Ti(e,t,r,A,i,o){let s=ln(t,r);e=le(e),i=ve(A,i),Or(e,()=>{Vt(`Cannot call ${e} due to unbound types`,s)},t-1),b([],s,c=>{let d=[c[0],null].concat(c.slice(1));return vA(e,gn(e,d,null,i,o),t-1),[]})}function Ri(e,t,r){switch(t){case 0:return r?function(i){return oe[i]}:function(i){return ge[i]};case 1:return r?function(i){return ot[i>>1]}:function(i){return Dt[i>>1]};case 2:return r?function(i){return m[i>>2]}:function(i){return Ae[i>>2]};default:throw new TypeError(`Unknown integer type: ${e}`)}}function Mi(e,t,r,A,i){t=le(t),i===-1&&(i=4294967295);let o=k(r),s=function(d){return d};if(A===0){let d=32-8*r;s=function(f){return f<<d>>>d}}let c=t.includes("unsigned");K(e,{name:t,fromWireType:s,toWireType(d,f){if(typeof f!="number"&&typeof f!="boolean")throw new TypeError(`Cannot convert "${ar(f)}" to ${this.name}`);if(f<A||f>i)throw new TypeError(`Passing a number "${ar(f)}" from JS side to C/C++ side to an argument of type "${t}", which is outside the valid range [${A}, ${i}]!`);return c?f>>>0:f|0},argPackAdvance:8,readValueFromPointer:Ri(t,o,A!==0),destructorFunction:null})}function Pi(e,t,r){let i=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function o(s){s=s>>2;let c=Ae,d=c[s],f=c[s+1];return new i(St,f,d)}r=le(r),K(e,{name:r,fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})}function Si(e,t){t=le(t);let r=t==="std::string";K(e,{name:t,fromWireType(A){let i=Ae[A>>2],o;if(r){let c=A+4;for(var s=0;s<=i;++s){let d=A+4+s;if(s==i||ge[d]==0){let f=d-c,I=ue(c,f);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(ge[A+4+s]);o=c.join("")}return ut(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||V("Cannot pass non-string to std::string"),r&&s?o=function(){return _t(i)}:o=function(){return i.length};let c=o(),d=Kt(4+c+1);if(Ae[d>>2]=c,r&&s)it(i,d+4,c+1);else if(s)for(var f=0;f<c;++f){let I=i.charCodeAt(f);I>255&&(ut(d),V("String has UTF-16 code units that do not fit in 8 bits")),ge[d+4+f]=I}else for(var f=0;f<c;++f)ge[d+4+f]=i[f];return A!==null&&A.push(ut,d),d},argPackAdvance:8,readValueFromPointer:E,destructorFunction(A){ut(A)}})}function Fi(e,t,r){r=le(r);let A,i,o,s,c;t===2?(A=lr,i=Ur,s=vn,o=function(){return Dt},c=1):t===4&&(A=Nn,i=$t,s=kn,o=function(){return Ae},c=2),K(e,{name:r,fromWireType(d){let f=Ae[d>>2],I=o(),B,h=d+4;for(let y=0;y<=f;++y){let T=d+4+y*t;if(y==f||I[T>>c]==0){let U=T-h,Y=A(h,U);B===void 0?B=Y:(B+=String.fromCharCode(0),B+=Y),h=T+t}}return ut(d),B},toWireType(d,f){typeof f!="string"&&V(`Cannot pass non-string to C++ string type ${r}`);let I=s(f),B=Kt(4+I+t);return Ae[B>>2]=I>>c,i(f,B+4,I+t),d!==null&&d.push(ut,B),B},argPackAdvance:8,readValueFromPointer:E,destructorFunction(d){ut(d)}})}function vi(e,t,r,A,i,o){l[e]={name:le(t),rawConstructor:ve(r,A),rawDestructor:ve(i,o),fields:[]}}function Ni(e,t,r,A,i,o,s,c,d,f){l[e].fields.push({fieldName:le(t),getterReturnType:r,getter:ve(A,i),getterContext:o,setterArgumentType:s,setter:ve(c,d),setterContext:f})}function ki(e,t){t=le(t),K(e,{isVoid:!0,name:t,argPackAdvance:0,fromWireType(){},toWireType(r,A){}})}let Ui={};function xi(e){let t=Ui[e];return t===void 0?le(e):t}let pA=[];function Li(e,t,r,A){e=pA[e],t=on(t),r=xi(r),e(t,r,null,A)}function Gi(e){let t=pA.length;return pA.push(e),t}function ji(e,t){let r=new Array(e);for(let A=0;A<e;++A)r[A]=Dr(m[(t>>2)+A],`parameter ${A}`);return r}function Hi(e,t){let r=ji(e,t),A=r[0],i=`${A.name}_$${r.slice(1).map(y=>y.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 ${Gt(`methodCaller_${i}`)}(handle, name, destructors, args) {
22
22
  `,B=0;for(var d=0;d<e-1;++d)I+=` var arg${d} = argType${d}.readValueFromPointer(args${B?`+${B}`:""});
23
23
  `,B+=r[d+1].argPackAdvance;I+=` var rv = handle[name](${c});
24
24
  `;for(var d=0;d<e-1;++d)r[d+1].deleteObject&&(I+=` argType${d}.deleteObject(arg${d});
25
25
  `);A.isVoid||(I+=` return retType.toWireType(destructors, rv);
26
26
  `),I+=`};
27
- `,o.push(I);let h=GA(Function,o).apply(null,s);return Gi(h)}function Yi(e){e>4&&(Fe[e].refcount+=1)}function Xi(e,t){e=wr(e,"_emval_take_value");let r=e.readValueFromPointer(t);return Ar(r)}function Wi(){u()}let Zi=!0;function Vi(e,t){let r;if(e===0)r=Date.now();else if((e===1||e===4)&&Zi)r=It();else return tn(28),-1;return m[t>>2]=r/1e3|0,m[t+4>>2]=r%1e3*1e3*1e3|0,0}function Ji(e,t){u("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}function zi(e,t){u("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}let pn=[];function Ki(e,t){P(Array.isArray(pn)),P(t%16==0),pn.length=0;let r;for(t>>=2;r=le[e++];){P(r===100||r===102||r===105);let A=r<105;A&&t&1&&t++,pn.push(A?dr[t++>>1]:m[t]),++t}return pn}function $i(e,t,r){let A=Ki(t,r);return Lt.hasOwnProperty(e)||u(`No EM_ASM constant found at address ${e}`),Lt[e].apply(null,A)}function qi(){return 2147483648}function eo(e,t,r){le.copyWithin(e,t,t+r)}function to(e){u("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")}function ro(e){try{return _t.grow(e-vt.byteLength+65535>>>16),Gr(_t.buffer),1}catch(t){K(`emscripten_realloc_buffer: Attempted to grow heap from ${vt.byteLength} bytes to ${e} bytes, but got error: ${t}`)}}function no(e){let t=le.length;e=e>>>0,P(e>t);let r=2147483648;if(e>r)return K(`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,Yn(Math.max(e,o),65536));if(ro(A))return!0}return K(`Failed to grow the heap from ${t} bytes to ${A} bytes, not enough memory!`),!1}function Bn(e){u("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}let cr={};function YA(e){e.forEach(t=>{let r=Bn(t);r&&(cr[r]=t)})}function Ao(){let e=new Error().stack.split(`
28
- `);return e[0]=="Error"&&e.shift(),YA(e),cr.last_addr=Bn(e[2]),cr.last_stack=e,cr.last_addr}function io(e,t,r){let A;cr.last_addr==e?A=cr.last_stack:(A=new Error().stack.split(`
29
- `),A[0]=="Error"&&A.shift(),YA(A));let i=2;for(;A[i]&&Bn(A[i])!=e;)++i;for(var o=0;o<r&&A[o+i];++o)m[t+o*4>>2]=Bn(A[o+i]);return o}function oo(e){let t=It();for(;It()-t<e;);}function so(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 ao(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 co(e){let t=e.getExtension("WEBGL_draw_buffers");if(t)return e.drawBuffers=function(r,A){t.drawBuffersWEBGL(r,A)},1}function go(e){return!!(e.dibvbi=e.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function lo(e){return!!(e.mdibvbi=e.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function uo(e){return!!(e.multiDrawWebgl=e.getExtension("WEBGL_multi_draw"))}var p={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){p.lastError||(p.lastError=t)},getNewId(e){let t=p.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=p.log2ceilLookup(p.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=p.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=_.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);let i=p.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=p.log2ceilLookup(t),A=p.currentContext.tempVertexBuffers1[r],i=p.currentContext.tempVertexBufferCounters1[r];p.currentContext.tempVertexBufferCounters1[r]=p.currentContext.tempVertexBufferCounters1[r]+1&p.numTempVertexBuffersPerSize-1;let o=A[i];if(o)return o;let s=_.getParameter(34964);return A[i]=_.createBuffer(),_.bindBuffer(34962,A[i]),_.bufferData(34962,1<<r,35048),_.bindBuffer(34962,s),A[i]},getTempIndexBuffer:function(t){let r=p.log2ceilLookup(t),A=p.currentContext.tempIndexBuffers[r];if(A)return A;let i=_.getParameter(34965);return p.currentContext.tempIndexBuffers[r]=_.createBuffer(),_.bindBuffer(34963,p.currentContext.tempIndexBuffers[r]),_.bufferData(34963,1<<r,35048),_.bindBuffer(34963,i),p.currentContext.tempIndexBuffers[r]},newRenderingFrameStarted:function(){if(!p.currentContext)return;let t=p.currentContext.tempVertexBuffers1;p.currentContext.tempVertexBuffers1=p.currentContext.tempVertexBuffers2,p.currentContext.tempVertexBuffers2=t,t=p.currentContext.tempVertexBufferCounters1,p.currentContext.tempVertexBufferCounters1=p.currentContext.tempVertexBufferCounters2,p.currentContext.tempVertexBufferCounters2=t;let r=p.log2ceilLookup(p.MAX_TEMP_BUFFER_SIZE);for(let A=0;A<=r;++A)p.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+=de(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=p.byteSizeByType[r-p.byteSizeByTypeRoot];return t*o*i},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(t){p.resetBufferBinding=!1;for(let r=0;r<p.currentContext.maxVertexAttribs;++r){let A=p.currentContext.clientBuffers[r];if(!A.clientside||!A.enabled)continue;p.resetBufferBinding=!0;let i=p.calcBufLength(A.size,A.type,A.stride,t),o=p.getTempVertexBuffer(i);_.bindBuffer(34962,o),_.bufferSubData(34962,0,le.subarray(A.ptr,A.ptr+i)),A.vertexAttribPointerAdaptor.call(_,r,A.size,A.type,A.normalized,A.stride,0)}},postDrawHandleClientVertexAttribBindings:function(){p.resetBufferBinding&&_.bindBuffer(34962,p.buffers[_.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?p.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(),p.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 U=function(){t.vertexAttribPointer(e.blitPosLoc,2,5126,!1,0,0),t.drawArrays(5,0,4)};var s=U;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 y=t.getParameter(2929);y&&t.disable(2929);let O=t.getParameter(2960);if(O&&t.disable(2960),e.defaultVao){let Y=t.getParameter(34229);t.bindVertexArray(e.defaultVao),U(),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)},q=t.getParameter(34921),w=[];for(var i=0;i<q;++i){var o=t.getVertexAttrib(i,34338);let F=i==e.blitPosLoc;o&&!F&&t.disableVertexAttribArray(i),!o&&F&&t.enableVertexAttribArray(i),w[i]=o}U();for(var i=0;i<q;++i){var o=w[i];let x=i==e.blitPosLoc;o&&!x&&t.enableVertexAttribArray(i),!o&&x&&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),y&&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=p.getNewId(p.contexts),A={handle:r,attributes:t,version:t.majorVersion,GLctx:e};e.canvas&&(e.canvas.GLctxObject=A),p.contexts[r]=A,(typeof t.enableExtensionsByDefault=="undefined"||t.enableExtensionsByDefault)&&p.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 p.generateTempBuffers(!1,A),t.renderViaOffscreenBackBuffer&&p.createOffscreenFramebuffer(A),r},makeContextCurrent(e){return p.currentContext=p.contexts[e],n.ctx=_=p.currentContext&&p.currentContext.GLctx,!(e&&!_)},getContext(e){return p.contexts[e]},deleteContext(e){p.currentContext===p.contexts[e]&&(p.currentContext=null),typeof J=="object"&&J.removeAllHandlersOnTarget(p.contexts[e].GLctx.canvas),p.contexts[e]&&p.contexts[e].GLctx.canvas&&(p.contexts[e].GLctx.canvas.GLctxObject=void 0),p.contexts[e]=null},initExtensions(e){if(e||(e=p.currentContext),e.initExtensionsDone)return;e.initExtensionsDone=!0;let{GLctx:t}=e;so(t),ao(t),co(t),go(t),lo(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")),uo(t),(t.getSupportedExtensions()||[]).forEach(A=>{!A.includes("lose_context")&&!A.includes("debug")&&t.getExtension(A)})}},J={inEventHandler:0,removeAllEventListeners(){for(let e=J.eventHandlers.length-1;e>=0;--e)J._removeHandler(e);J.eventHandlers=[],J.deferredCalls=[]},registerRemoveEventListeners(){J.removeEventListenersRegistered||(jr.push(J.removeAllEventListeners),J.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 J.deferredCalls){let o=J.deferredCalls[i];if(o.targetFunction==e&&A(o.argsList,r))return}J.deferredCalls.push({targetFunction:e,precedence:t,argsList:r}),J.deferredCalls.sort((i,o)=>i.precedence<o.precedence)},removeDeferredCalls(e){for(let t=0;t<J.deferredCalls.length;++t)J.deferredCalls[t].targetFunction==e&&(J.deferredCalls.splice(t,1),--t)},canPerformEventHandlerRequests(){return J.inEventHandler&&J.currentEventHandler.allowsDeferredCalls},runDeferredCalls(){if(J.canPerformEventHandlerRequests())for(let e=0;e<J.deferredCalls.length;++e){let t=J.deferredCalls[e];J.deferredCalls.splice(e,1),--e,t.targetFunction.apply(null,t.argsList)}},eventHandlers:[],removeAllHandlersOnTarget(e,t){for(let r=0;r<J.eventHandlers.length;++r)J.eventHandlers[r].target==e&&(!t||t==J.eventHandlers[r].eventTypeString)&&J._removeHandler(r--)},_removeHandler(e){let t=J.eventHandlers[e];t.target.removeEventListener(t.eventTypeString,t.eventListenerFunc,t.useCapture),J.eventHandlers.splice(e,1)},registerOrRemoveHandler(e){let t=function(A){++J.inEventHandler,J.currentEventHandler=e,J.runDeferredCalls(),e.handlerFunc(A),J.runDeferredCalls(),--J.inEventHandler};if(e.callbackfunc)e.eventListenerFunc=t,e.target.addEventListener(e.eventTypeString,t,e.useCapture),J.eventHandlers.push(e),J.registerRemoveEventListeners();else for(let r=0;r<J.eventHandlers.length;++r)J.eventHandlers[r].target==e.target&&J.eventHandlers[r].eventTypeString==e.eventTypeString&&J._removeHandler(r--)},getNodeNameForTarget(e){return e?e==window?"#window":e==screen?"#screen":e&&e.nodeName?e.nodeName:"":""},fullscreenEnabled(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};let XA=["default","low-power","high-performance"],fo=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function Eo(e){Me("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=fo[e]||de(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=de(e)),!e||e==="#canvas"?typeof p!="undefined"&&p.offscreenCanvases.canvas?p.offscreenCanvases.canvas:n.canvas:typeof p!="undefined"&&p.offscreenCanvases[e]?p.offscreenCanvases[e]:Eo(e)}function Io(e,t){P(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:XA[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)p.offscreenCanvases[o.id]={canvas:o.transferControlToOffscreen(),canvasSharedPtr:Wt(12),id:o.id},o.controlTransferredOffscreen=!0;else if(!p.offscreenCanvases[o.id])return 0;o=p.offscreenCanvases[o.id]}return p.createContext(o,i)}function Co(e,t){return Io(e,t)}function po(){return p.currentContext?p.currentContext.handle:0}function WA(){return po()}n._emscripten_webgl_get_current_context=WA;function ZA(e){return p.makeContextCurrent(e)?0:-5}n._emscripten_webgl_make_context_current=ZA;function Bo(e){p.currentContext==e&&(p.currentContext=0),p.deleteContext(e)}function ho(e,t){if(!t)return-5;if(e=p.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&&XA.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 mo(e){P(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 _A={};function Qo(){return Te||"./this.program"}function Rr(){if(!Rr.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`,_:Qo()};for(var e in _A)_A[e]===void 0?delete r[e]:r[e]=_A[e];let A=[];for(var e in r)A.push(`${e}=${r[e]}`);Rr.strings=A}return Rr.strings}function yo(e,t){let r=0;return Rr().forEach((A,i)=>{let o=t+r;m[e+i*4>>2]=o,Hn(A,o),r+=A.length+1}),0}function _o(e,t){let r=Rr();m[e>>2]=r.length;let A=0;return r.forEach(i=>{A+=i.length+1}),m[t>>2]=A,0}function wo(e){try{let t=oe.getStreamFromFD(e);return a.close(t),0}catch(t){return(typeof a=="undefined"||!(t instanceof a.ErrnoError))&&u(t),t.errno}}function Do(e,t,r,A){try{let i=oe.getStreamFromFD(e),o=oe.doReadv(i,t,r);return m[A>>2]=o,0}catch(i){return(typeof a=="undefined"||!(i instanceof a.ErrnoError))&&u(i),i.errno}}function bo(e,t,r,A,i){try{let o=oe.getStreamFromFD(e),c=r*4294967296+(t>>>0),d=9007199254740992;return c<=-d||c>=d?-61:(a.llseek(o,c,A),Pe=[o.position>>>0,(fe=o.position,+Math.abs(fe)>=1?fe>0?(Math.min(+Math.floor(fe/4294967296),4294967295)|0)>>>0:~~+Math.ceil((fe-+(~~fe>>>0))/4294967296)>>>0:0)],m[i>>2]=Pe[0],m[i+4>>2]=Pe[1],o.getdents&&c===0&&A===0&&(o.getdents=null),0)}catch(o){return(typeof a=="undefined"||!(o instanceof a.ErrnoError))&&u(o),o.errno}}function To(e,t,r,A){try{let i=oe.getStreamFromFD(e),o=oe.doWritev(i,t,r);return m[A>>2]=o,0}catch(i){return(typeof a=="undefined"||!(i instanceof a.ErrnoError))&&u(i),i.errno}}function Oo(){return vr()}function hn(e,t){hn.randomDevice||(hn.randomDevice=Xe());for(let r=0;r<t;r++)se[e+r>>0]=hn.randomDevice();return 0}function Ro(e){_.activeTexture(e)}function Mo(e,t){_.attachShader(p.programs[e],p.shaders[t])}function Po(e,t,r){_.bindAttribLocation(p.programs[e],t,de(r))}function So(e,t){e==34962?_.currentArrayBufferBinding=t:e==34963&&(_.currentElementArrayBufferBinding=t),e==35051?_.currentPixelPackBufferBinding=t:e==35052&&(_.currentPixelUnpackBufferBinding=t),_.bindBuffer(e,p.buffers[t])}function Fo(e,t,r){_.bindBufferBase(e,t,p.buffers[r])}function vo(e,t){_.bindFramebuffer(e,t?p.framebuffers[t]:p.currentContext.defaultFbo)}function ko(e,t){_.bindTexture(e,p.textures[t])}function No(e){_.bindVertexArray(p.vaos[e]);let t=_.getParameter(34965);_.currentElementArrayBufferBinding=t?t.name|0:0}function Uo(e,t,r,A){p.currentContext.version>=2?r?_.bufferData(e,le,A,r,t):_.bufferData(e,t,A):_.bufferData(e,r?le.subarray(r,r+t):t,A)}function xo(e,t){return P(t===(t|0)),(e>>>0)+t*4294967296}function Lo(e,t,r,A){return _.clientWaitSync(p.syncs[e],t,xo(r,A))}function Go(e){_.compileShader(p.shaders[e])}function jo(){let e=p.getNewId(p.programs),t=_.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,p.programs[e]=t,e}function Ho(e){let t=p.getNewId(p.shaders);return p.shaders[t]=_.createShader(e),t}function Yo(e,t){for(let r=0;r<e;r++){let A=m[t+r*4>>2],i=p.buffers[A];i&&(_.deleteBuffer(i),i.name=0,p.buffers[A]=null,A==_.currentArrayBufferBinding&&(_.currentArrayBufferBinding=0),A==_.currentElementArrayBufferBinding&&(_.currentElementArrayBufferBinding=0),A==_.currentPixelPackBufferBinding&&(_.currentPixelPackBufferBinding=0),A==_.currentPixelUnpackBufferBinding&&(_.currentPixelUnpackBufferBinding=0))}}function Xo(e,t){for(let r=0;r<e;++r){let A=m[t+r*4>>2],i=p.framebuffers[A];i&&(_.deleteFramebuffer(i),i.name=0,p.framebuffers[A]=null)}}function Wo(e){if(!e)return;let t=p.programs[e];if(!t){p.recordError(1281);return}_.deleteProgram(t),t.name=0,p.programs[e]=null}function Zo(e){if(!e)return;let t=p.shaders[e];if(!t){p.recordError(1281);return}_.deleteShader(t),p.shaders[e]=null}function Vo(e){if(!e)return;let t=p.syncs[e];if(!t){p.recordError(1281);return}_.deleteSync(t),t.name=0,p.syncs[e]=null}function Jo(e,t){for(let r=0;r<e;r++){let A=m[t+r*4>>2],i=p.textures[A];i&&(_.deleteTexture(i),i.name=0,p.textures[A]=null)}}function zo(e,t){for(let r=0;r<e;r++){let A=m[t+r*4>>2];_.deleteVertexArray(p.vaos[A]),p.vaos[A]=null}}function Ko(e){_.disable(e)}function $o(e){let t=p.currentContext.clientBuffers[e];t.enabled=!1,_.disableVertexAttribArray(e)}function qo(e,t,r){p.preDrawHandleClientVertexAttribBindings(t+r),_.drawArrays(e,t,r),p.postDrawHandleClientVertexAttribBindings()}let VA=[];function es(e,t){let r=VA[e];for(let A=0;A<e;A++)r[A]=m[t+A*4>>2];_.drawBuffers(r)}function ts(e){let t=p.currentContext.clientBuffers[e];t.enabled=!0,_.enableVertexAttribArray(e)}function rs(e,t){let r=_.fenceSync(e,t);if(r){let A=p.getNewId(p.syncs);return r.name=A,p.syncs[A]=r,A}return 0}function ns(){_.finish()}function As(){_.flush()}function is(e,t,r,A,i){_.framebufferTexture2D(e,t,r,p.textures[A],i)}function os(e,t,r,A,i){_.framebufferTextureLayer(e,t,p.textures[r],A,i)}function mn(e,t,r,A){for(let i=0;i<e;i++){let o=_[r](),s=o&&p.getNewId(A);o?(o.name=s,A[s]=o):p.recordError(1282),m[t+i*4>>2]=s}}function ss(e,t){mn(e,t,"createBuffer",p.buffers)}function as(e,t){mn(e,t,"createFramebuffer",p.framebuffers)}function cs(e,t){mn(e,t,"createTexture",p.textures)}function gs(e,t){mn(e,t,"createVertexArray",p.vaos)}function ls(e,t){return _.getAttribLocation(p.programs[e],de(t))}function us(){let e=_.getError()||p.lastError;return p.lastError=0,e}function ds(e){return ie[e>>2]+m[e+4>>2]*4294967296}function fs(e){return ie[e>>2]+ie[e+4>>2]*4294967296}function Es(e,t){ie[e>>2]=t,ie[e+4>>2]=(t-ie[e>>2])/4294967296;let r=t>=0?fs(e):ds(e);r!=t&&Me(`writeI53ToI64() out of range: serialized JS Number ${t} to Wasm heap as bytes lo=0x${ie[e>>2].toString(16)}, hi=0x${ie[e+4>>2].toString(16)}, which deserializes back to ${r} instead!`)}function Is(e,t,r){if(!t){p.recordError(1281);return}let A;switch(e){case 36346:A=1;break;case 36344:r!=0&&r!=1&&p.recordError(1280);return;case 34814:case 36345:A=0;break;case 34466:var i=_.getParameter(34467);A=i?i.length:0;break;case 33309:if(p.currentContext.version<2){p.recordError(1282);return}var o=_.getSupportedExtensions()||[];A=2*o.length;break;case 33307:case 33308:if(p.currentContext.version<2){p.recordError(1280);return}A=e==33307?3:0;break}if(A===void 0){let s=_.getParameter(e);switch(typeof s){case"number":A=s;break;case"boolean":A=s?1:0;break;case"string":p.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:{p.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:se[t+c>>0]=s[c]?1:0;break}return}else try{A=s.name|0}catch(c){p.recordError(1280),K(`GL_INVALID_ENUM in glGet${r}v: Unknown object returned from WebGL getParameter(${e})! (error: ${c})`);return}break;default:p.recordError(1280),K(`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:Es(t,A);break;case 0:m[t>>2]=A;break;case 2:he[t>>2]=A;break;case 4:se[t>>0]=A?1:0;break}}function Cs(e,t){Is(e,t,0)}function Qn(e){let t=bt(e)+1,r=Wt(t);return At(e,r,t),r}function ps(e){let t=p.stringCache[e];if(!t){switch(e){case 7939:var r=_.getSupportedExtensions()||[];r=r.concat(r.map(d=>`GL_${d}`)),t=Qn(r.join(" "));break;case 7936:case 7937:case 37445:case 37446:var A=_.getParameter(e);A||p.recordError(1280),t=A&&Qn(A);break;case 7938:var i=_.getParameter(7938);p.currentContext.version>=2?i=`OpenGL ES 3.0 (${i})`:i=`OpenGL ES 2.0 (${i})`,t=Qn(i);break;case 35724:var o=_.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=Qn(o);break;default:p.recordError(1280)}p.stringCache[e]=t}return t}function Bs(e,t){return _.getUniformBlockIndex(p.programs[e],de(t))}function hs(e){return parseInt(e)}function JA(e){return e.slice(-1)=="]"&&e.lastIndexOf("[")}function ms(e){let{uniformLocsById:t}=e,{uniformSizeAndIdsByName:r}=e,A,i;if(!t)for(e.uniformLocsById=t={},e.uniformArrayNamesById={},A=0;A<_.getProgramParameter(e,35718);++A){let o=_.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 Qs(e,t){if(t=de(t),e=p.programs[e]){ms(e);let{uniformLocsById:r}=e,A=0,i=t,o=JA(t);o>0&&(A=hs(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]||_.getUniformLocation(e,t)))return A}else p.recordError(1281);return-1}function ys(e){e=p.programs[e],_.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}}function _s(e,t){e==3317&&(p.unpackAlignment=t),_.pixelStorei(e,t)}function ws(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 Ds(e){return{5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[e-6402]||1}function Mr(e){return e-=5120,e==0?se:e==1?le:e==2?it:e==4?m:e==6?he:e==5||e==28922||e==28520||e==30779||e==30782?ie:Tt}function Pr(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function wA(e,t,r,A,i,o){let s=Mr(e),c=Pr(s),d=1<<c,E=Ds(t)*d,I=ws(r,A,E,p.unpackAlignment);return s.subarray(i>>c,i+I>>c)}function bs(e,t,r,A,i,o,s){if(p.currentContext.version>=2){if(_.currentPixelPackBufferBinding)_.readPixels(e,t,r,A,i,o,s);else{let d=Mr(o);_.readPixels(e,t,r,A,i,o,d,s>>Pr(d))}return}let c=wA(o,i,r,A,s,i);if(!c){p.recordError(1280);return}_.readPixels(e,t,r,A,i,o,c)}function Ts(e,t,r,A){let i=p.getSource(e,t,r,A);_.shaderSource(p.shaders[e],i)}function Os(e,t,r,A,i,o,s,c,d){if(p.currentContext.version>=2){if(_.currentPixelUnpackBufferBinding)_.texImage2D(e,t,r,A,i,o,s,c,d);else if(d){let E=Mr(c);_.texImage2D(e,t,r,A,i,o,s,c,E,d>>Pr(E))}else _.texImage2D(e,t,r,A,i,o,s,c,null);return}_.texImage2D(e,t,r,A,i,o,s,c,d?wA(c,s,A,i,d,r):null)}function Rs(e,t,r){let A=he[r>>2];_.texParameterf(e,t,A)}function Ms(e,t,r){_.texParameteri(e,t,r)}function Ps(e,t,r,A,i){_.texStorage2D(e,t,r,A,i)}function Ss(e,t,r,A,i,o){_.texStorage3D(e,t,r,A,i,o)}function Fs(e,t,r,A,i,o,s,c,d){if(p.currentContext.version>=2){if(_.currentPixelUnpackBufferBinding)_.texSubImage2D(e,t,r,A,i,o,s,c,d);else if(d){let I=Mr(c);_.texSubImage2D(e,t,r,A,i,o,s,c,I,d>>Pr(I))}else _.texSubImage2D(e,t,r,A,i,o,s,c,null);return}let E=null;d&&(E=wA(c,s,i,o,d,0)),_.texSubImage2D(e,t,r,A,i,o,s,c,E)}function vs(e,t,r,A,i,o,s,c,d,E,I){if(_.currentPixelUnpackBufferBinding)_.texSubImage3D(e,t,r,A,i,o,s,c,d,E,I);else if(I){let B=Mr(E);_.texSubImage3D(e,t,r,A,i,o,s,c,d,E,B,I>>Pr(B))}else _.texSubImage3D(e,t,r,A,i,o,s,c,d,E,null)}function ut(e){let t=_.currentProgram;if(t){let r=t.uniformLocsById[e];return typeof r=="number"&&(t.uniformLocsById[e]=r=_.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?`[${r}]`:""))),r}p.recordError(1282)}function ks(e,t){_.uniform1f(ut(e),t)}function Ns(e,t){_.uniform1i(ut(e),t)}let yn=[];function Us(e,t,r){if(p.currentContext.version>=2){_.uniform2fv(ut(e),he,r>>2,t*2);return}if(t<=144){var A=yn[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);_.uniform2fv(ut(e),A)}function xs(e,t,r){if(p.currentContext.version>=2){_.uniform4fv(ut(e),he,r>>2,t*4);return}if(t<=72){var A=yn[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);_.uniform4fv(ut(e),A)}let zA=[];function Ls(e,t,r){if(p.currentContext.version>=2){_.uniform4iv(ut(e),m,r>>2,t*4);return}if(t<=72){var A=zA[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);_.uniform4iv(ut(e),A)}function Gs(e,t,r){e=p.programs[e],_.uniformBlockBinding(e,t,r)}function js(e,t,r,A){if(p.currentContext.version>=2){_.uniformMatrix4fv(ut(e),!!r,he,A>>2,t*16);return}if(t<=18){var i=yn[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);_.uniformMatrix4fv(ut(e),!!r,i)}function Hs(e){e=p.programs[e],_.useProgram(e),_.currentProgram=e}function Ys(e,t,r,A,i,o){let s=p.currentContext.clientBuffers[e];if(!_.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,_.vertexAttribPointer(e,t,r,!!A,i,o)}function Xs(e,t,r,A){_.viewport(e,t,r,A)}function _n(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,_n.GMTString||(_n.GMTString=ur("GMT")),m[t+40>>2]=_n.GMTString,t}function Ws(e){return e}function wn(){if(wn.called)return;wn.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[Aa()>>2]=o*60,m[na()>>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=ur(c),I=ur(d);i<A?(m[Sr()>>2]=E,m[Sr()+4>>2]=I):(m[Sr()>>2]=I,m[Sr()+4>>2]=E)}function Zs(e,t){wn();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[Sr()+(c?4:0)>>2];return m[t+40>>2]=d,t}function Vs(e){wn();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 Js(e){ni(e)}function zs(e){He(e)}function Dn(e){return e%4===0&&(e%100!==0||e%400===0)}function DA(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],Tn=[31,28,31,30,31,30,31,31,30,31,30,31];function On(e,t){let r=new Date(e.getTime());for(;t>0;){let A=Dn(r.getFullYear()),i=r.getMonth(),o=(A?bn:Tn)[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 KA(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?de(i):""},s=de(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(w,F,te){let x=typeof w=="number"?w.toString():w||"";for(;x.length<F;)x=te[0]+x;return x}function h(w,F){return B(w,F,"0")}function y(w,F){function te(Ce){return Ce<0?-1:Ce>0?1:0}let x;return(x=te(w.getFullYear()-F.getFullYear()))===0&&(x=te(w.getMonth()-F.getMonth()))===0&&(x=te(w.getDate()-F.getDate())),x}function O(w){switch(w.getDay()){case 0:return new Date(w.getFullYear()-1,11,29);case 1:return w;case 2:return new Date(w.getFullYear(),0,3);case 3:return new Date(w.getFullYear(),0,2);case 4:return new Date(w.getFullYear(),0,1);case 5:return new Date(w.getFullYear()-1,11,31);case 6:return new Date(w.getFullYear()-1,11,30)}}function U(w){let F=On(new Date(w.tm_year+1900,0,1),w.tm_yday),te=new Date(F.getFullYear(),0,4),x=new Date(F.getFullYear()+1,0,4),Ce=O(te),be=O(x);return y(Ce,F)<=0?y(be,F)<=0?F.getFullYear()+1:F.getFullYear():F.getFullYear()-1}let Y={"%a"(w){return E[w.tm_wday].substring(0,3)},"%A"(w){return E[w.tm_wday]},"%b"(w){return I[w.tm_mon].substring(0,3)},"%B"(w){return I[w.tm_mon]},"%C"(w){let F=w.tm_year+1900;return h(F/100|0,2)},"%d"(w){return h(w.tm_mday,2)},"%e"(w){return B(w.tm_mday,2," ")},"%g"(w){return U(w).toString().substring(2)},"%G"(w){return U(w)},"%H"(w){return h(w.tm_hour,2)},"%I"(w){let F=w.tm_hour;return F==0?F=12:F>12&&(F-=12),h(F,2)},"%j"(w){return h(w.tm_mday+DA(Dn(w.tm_year+1900)?bn:Tn,w.tm_mon-1),3)},"%m"(w){return h(w.tm_mon+1,2)},"%M"(w){return h(w.tm_min,2)},"%n"(){return`
30
- `},"%p"(w){return w.tm_hour>=0&&w.tm_hour<12?"AM":"PM"},"%S"(w){return h(w.tm_sec,2)},"%t"(){return" "},"%u"(w){return w.tm_wday||7},"%U"(w){let F=new Date(w.tm_year+1900,0,1),te=F.getDay()===0?F:On(F,7-F.getDay()),x=new Date(w.tm_year+1900,w.tm_mon,w.tm_mday);if(y(te,x)<0){let Ce=DA(Dn(x.getFullYear())?bn:Tn,x.getMonth()-1)-31,rt=31-te.getDate()+Ce+x.getDate();return h(Math.ceil(rt/7),2)}return y(te,F)===0?"01":"00"},"%V"(w){let F=new Date(w.tm_year+1900,0,4),te=new Date(w.tm_year+1901,0,4),x=O(F),Ce=O(te),be=On(new Date(w.tm_year+1900,0,1),w.tm_yday);if(y(be,x)<0)return"53";if(y(Ce,be)<=0)return"01";let rt;return x.getFullYear()<w.tm_year+1900?rt=w.tm_yday+32-x.getDate():rt=w.tm_yday+1-x.getDate(),h(Math.ceil(rt/7),2)},"%w"(w){return w.tm_wday},"%W"(w){let F=new Date(w.tm_year,0,1),te=F.getDay()===1?F:On(F,F.getDay()===0?1:7-F.getDay()+1),x=new Date(w.tm_year+1900,w.tm_mon,w.tm_mday);if(y(te,x)<0){let Ce=DA(Dn(x.getFullYear())?bn:Tn,x.getMonth()-1)-31,rt=31-te.getDate()+Ce+x.getDate();return h(Math.ceil(rt/7),2)}return y(te,F)===0?"01":"00"},"%y"(w){return(w.tm_year+1900).toString().substring(2)},"%Y"(w){return w.tm_year+1900},"%z"(w){let F=w.tm_gmtoff,te=F>=0;return F=Math.abs(F)/60,F=F/60*100+F%60,(te?"+":"-")+`0000${F}`.slice(-4)},"%Z"(w){return w.tm_zone},"%%"(){return"%"}};for(var d in Y)s.includes(d)&&(s=s.replace(new RegExp(d,"g"),Y[d](o)));let q=Pn(s,!1);return q.length>t?0:(Lr(q,e),q.length-1)}function Ks(e,t,r,A){return KA(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},Rn=365,Mn=146;Object.defineProperties($A.prototype,{read:{get(){return(this.mode&Rn)===Rn},set(e){e?this.mode|=Rn:this.mode&=~Rn}},write:{get(){return(this.mode&Mn)===Mn},set(e){e?this.mode|=Mn:this.mode&=~Mn}},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,EA(),sn=n.PureVirtualError=ir(Error,"PureVirtualError"),mr(),BA(),St=n.BindingError=ir(Error,"BindingError"),g=n.InternalError=ir(Error,"InternalError"),Oe(),Ci(),LA=n.UnboundTypeError=ir(Error,"UnboundTypeError");let _;for(var xe=0;xe<32;++xe)VA.push(new Array(xe));let $s=new Float32Array(288);for(var xe=0;xe<288;++xe)yn[xe]=$s.subarray(0,xe+1);let qs=new Int32Array(288);for(var xe=0;xe<288;++xe)zA[xe]=qs.subarray(0,xe+1);let hc=!0;function Pn(e,t,r){let A=r>0?r:bt(e)+1,i=new Array(A),o=Dt(e,i,0,i.length);return t&&(i.length=o),i}let ea=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 mc(e){if(typeof Qt=="boolean"&&Qt){let t=Buffer.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}try{let t=ea(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 qA={HaveOffsetConverter:Wr,__cxa_allocate_exception:er,__cxa_atexit:Jr,__cxa_begin_catch:zr,__cxa_end_catch:pr,__cxa_find_matching_catch_2:qr,__cxa_find_matching_catch_3:rA,__cxa_free_exception:Kr,__cxa_rethrow:nA,__cxa_thread_atexit:AA,__cxa_throw:en,__resumeException:tA,__sys_fcntl64:sA,__sys_ioctl:aA,__sys_mmap2:gA,__sys_open:An,__sys_stat64:on,_embind_create_inheriting_constructor:gn,_embind_finalize_value_object:D,_embind_register_bigint:R,_embind_register_bool:k,_embind_register_class:mi,_embind_register_class_class_function:Qi,_embind_register_class_constructor:yi,_embind_register_class_function:_i,_embind_register_class_property:wi,_embind_register_emval:Di,_embind_register_float:Ti,_embind_register_function:Oi,_embind_register_integer:Mi,_embind_register_memory_view:Pi,_embind_register_std_string:Si,_embind_register_std_wstring:Fi,_embind_register_value_object:vi,_embind_register_value_object_field:ki,_embind_register_void:Ni,_emval_call_void_method:Li,_emval_decref:HA,_emval_get_method_caller:Hi,_emval_incref:Yi,_emval_take_value:Xi,abort:Wi,clock_gettime:Vi,dlopen:Ji,dlsym:zi,emscripten_asm_const_int:$i,emscripten_get_heap_max:qi,emscripten_memcpy_big:eo,emscripten_pc_get_function:to,emscripten_resize_heap:no,emscripten_stack_snapshot:Ao,emscripten_stack_unwind_buffer:io,emscripten_thread_sleep:oo,emscripten_webgl_create_context:Co,emscripten_webgl_destroy_context:Bo,emscripten_webgl_get_context_attributes:ho,emscripten_webgl_get_current_context:WA,emscripten_webgl_init_context_attributes:mo,emscripten_webgl_make_context_current:ZA,environ_get:yo,environ_sizes_get:_o,exit:Zr,fd_close:wo,fd_read:Do,fd_seek:bo,fd_write:To,getTempRet0:Oo,getentropy:hn,glActiveTexture:Ro,glAttachShader:Mo,glBindAttribLocation:Po,glBindBuffer:So,glBindBufferBase:Fo,glBindFramebuffer:vo,glBindTexture:ko,glBindVertexArray:No,glBufferData:Uo,glClientWaitSync:Lo,glCompileShader:Go,glCreateProgram:jo,glCreateShader:Ho,glDeleteBuffers:Yo,glDeleteFramebuffers:Xo,glDeleteProgram:Wo,glDeleteShader:Zo,glDeleteSync:Vo,glDeleteTextures:Jo,glDeleteVertexArrays:zo,glDisable:Ko,glDisableVertexAttribArray:$o,glDrawArrays:qo,glDrawBuffers:es,glEnableVertexAttribArray:ts,glFenceSync:rs,glFinish:ns,glFlush:As,glFramebufferTexture2D:is,glFramebufferTextureLayer:os,glGenBuffers:ss,glGenFramebuffers:as,glGenTextures:cs,glGenVertexArrays:gs,glGetAttribLocation:ls,glGetError:us,glGetIntegerv:Cs,glGetString:ps,glGetUniformBlockIndex:Bs,glGetUniformLocation:Qs,glLinkProgram:ys,glPixelStorei:_s,glReadPixels:bs,glShaderSource:Ts,glTexImage2D:Os,glTexParameterfv:Rs,glTexParameteri:Ms,glTexStorage2D:Ps,glTexStorage3D:Ss,glTexSubImage2D:Fs,glTexSubImage3D:vs,glUniform1f:ks,glUniform1i:Ns,glUniform2fv:Us,glUniform4fv:xs,glUniform4iv:Ls,glUniformBlockBinding:Gs,glUniformMatrix4fv:js,glUseProgram:Hs,glVertexAttribPointer:Ys,glViewport:Xs,gmtime_r:_n,invoke_diii:Oa,invoke_i:Fa,invoke_ii:Ia,invoke_iii:ga,invoke_iiii:Ra,invoke_iiiii:ya,invoke_iiiiii:Da,invoke_iiiiiii:ua,invoke_iiiiiiiddi:tc,invoke_iiiiiiii:Ta,invoke_iiiiiiiii:Ua,invoke_v:da,invoke_vdiii:ic,invoke_vi:ca,invoke_vididdii:za,invoke_vidii:$a,invoke_vii:Ea,invoke_viid:aa,invoke_viidi:Ac,invoke_viididii:Na,invoke_viii:Ca,invoke_viiid:Ka,invoke_viiidd:wa,invoke_viiiddi:Sa,invoke_viiidi:va,invoke_viiii:Qa,invoke_viiiid:rc,invoke_viiiidi:ka,invoke_viiiidid:nc,invoke_viiiidiidiiiiiii:Ja,invoke_viiiifiifiiiiiii:Va,invoke_viiiii:la,invoke_viiiiid:Ga,invoke_viiiiif:Xa,invoke_viiiiii:pa,invoke_viiiiiid:ja,invoke_viiiiiif:Wa,invoke_viiiiiii:Ba,invoke_viiiiiiiddi:ec,invoke_viiiiiiidiiii:Ya,invoke_viiiiiiifiiii:Za,invoke_viiiiiiii:ha,invoke_viiiiiiiidd:La,invoke_viiiiiiiidf:xa,invoke_viiiiiiiii:ma,invoke_viiiiiiiiidd:Ma,invoke_viiiiiiiiiddi:Pa,invoke_viiiiiiiiii:fa,invoke_viiiiiiiiiiddi:qa,invoke_viiiiiiiiiii:_a,invoke_viiiiiiiiiiii:Ha,invoke_viiiiiiiiiiiii:ba,llvm_eh_typeid_for:Ws,localtime_r:Zs,mktime:Vs,proc_exit:Js,setTempRet0:zs,strftime:KA,strftime_l:Ks};let Qc=xt(),yc=n.___wasm_call_ctors=Z("__wasm_call_ctors");var dt=n._free=Z("free"),Wt=n._malloc=Z("malloc"),ta=n.___errno_location=Z("__errno_location");let _c=n._fflush=Z("fflush");var ra=n.___getTypeName=Z("__getTypeName");let wc=n.___embind_register_native_and_builtin_types=Z("__embind_register_native_and_builtin_types"),Dc=n._emscripten_main_thread_process_queued_calls=Z("emscripten_main_thread_process_queued_calls");var bA=n._emscripten_stack_get_end=function(){return(bA=n._emscripten_stack_get_end=n.asm.emscripten_stack_get_end).apply(null,arguments)},Sr=n.__get_tzname=Z("_get_tzname"),na=n.__get_daylight=Z("_get_daylight"),Aa=n.__get_timezone=Z("_get_timezone"),G=n.stackSave=Z("stackSave"),j=n.stackRestore=Z("stackRestore"),ei=n.stackAlloc=Z("stackAlloc"),ti=n._emscripten_stack_init=function(){return(ti=n._emscripten_stack_init=n.asm.emscripten_stack_init).apply(null,arguments)},ia=n._emscripten_stack_get_free=function(){return(ia=n._emscripten_stack_get_free=n.asm.emscripten_stack_get_free).apply(null,arguments)};let bc=n._saveSetjmp=Z("saveSetjmp");var H=n._setThrew=Z("setThrew"),ri=n.___cxa_can_catch=Z("__cxa_can_catch"),oa=n.___cxa_is_pointer_type=Z("__cxa_is_pointer_type"),sa=n._memalign=Z("memalign");let Tc=n._emscripten_builtin_malloc=Z("emscripten_builtin_malloc"),Oc=n._emscripten_builtin_free=Z("emscripten_builtin_free"),Rc=n._emscripten_builtin_memalign=Z("emscripten_builtin_memalign"),Mc=n.dynCall_jii=Z("dynCall_jii"),Pc=n.dynCall_viji=Z("dynCall_viji"),Sc=n.dynCall_jjj=Z("dynCall_jjj"),Fc=n.dynCall_iiiijj=Z("dynCall_iiiijj"),vc=n.dynCall_viijj=Z("dynCall_viijj"),kc=n.dynCall_viiijjjj=Z("dynCall_viiijjjj"),Nc=n.dynCall_ji=Z("dynCall_ji"),Uc=n.dynCall_vij=Z("dynCall_vij"),xc=n.dynCall_viijii=Z("dynCall_viijii"),Lc=n.dynCall_vj=Z("dynCall_vj"),Gc=n.dynCall_viij=Z("dynCall_viij"),jc=n.dynCall_viiiiij=Z("dynCall_viiiiij"),Hc=n.dynCall_iijjiiii=Z("dynCall_iijjiiii"),Yc=n.dynCall_jiji=Z("dynCall_jiji"),Xc=n.dynCall_iiiiij=Z("dynCall_iiiiij"),Wc=n.dynCall_iiiiijj=Z("dynCall_iiiiijj"),Zc=n.dynCall_iiiiiijj=Z("dynCall_iiiiiijj");function aa(e,t,r,A){let i=G();try{v.get(e)(t,r,A)}catch(o){if(j(i),o!==o+0&&o!=="longjmp")throw o;H(1,0)}}function ca(e,t){let r=G();try{v.get(e)(t)}catch(A){if(j(r),A!==A+0&&A!=="longjmp")throw A;H(1,0)}}function ga(e,t,r){let A=G();try{return v.get(e)(t,r)}catch(i){if(j(A),i!==i+0&&i!=="longjmp")throw i;H(1,0)}}function la(e,t,r,A,i,o){let s=G();try{v.get(e)(t,r,A,i,o)}catch(c){if(j(s),c!==c+0&&c!=="longjmp")throw c;H(1,0)}}function ua(e,t,r,A,i,o,s){let c=G();try{return v.get(e)(t,r,A,i,o,s)}catch(d){if(j(c),d!==d+0&&d!=="longjmp")throw d;H(1,0)}}function da(e){let t=G();try{v.get(e)()}catch(r){if(j(t),r!==r+0&&r!=="longjmp")throw r;H(1,0)}}function fa(e,t,r,A,i,o,s,c,d,E,I){let B=G();try{v.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 Ea(e,t,r){let A=G();try{v.get(e)(t,r)}catch(i){if(j(A),i!==i+0&&i!=="longjmp")throw i;H(1,0)}}function Ia(e,t){let r=G();try{return v.get(e)(t)}catch(A){if(j(r),A!==A+0&&A!=="longjmp")throw A;H(1,0)}}function Ca(e,t,r,A){let i=G();try{v.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,i,o,s){let c=G();try{v.get(e)(t,r,A,i,o,s)}catch(d){if(j(c),d!==d+0&&d!=="longjmp")throw d;H(1,0)}}function Ba(e,t,r,A,i,o,s,c){let d=G();try{v.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 ha(e,t,r,A,i,o,s,c,d){let E=G();try{v.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 ma(e,t,r,A,i,o,s,c,d,E){let I=G();try{v.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 Qa(e,t,r,A,i){let o=G();try{v.get(e)(t,r,A,i)}catch(s){if(j(o),s!==s+0&&s!=="longjmp")throw s;H(1,0)}}function ya(e,t,r,A,i){let o=G();try{return v.get(e)(t,r,A,i)}catch(s){if(j(o),s!==s+0&&s!=="longjmp")throw s;H(1,0)}}function _a(e,t,r,A,i,o,s,c,d,E,I,B){let h=G();try{v.get(e)(t,r,A,i,o,s,c,d,E,I,B)}catch(y){if(j(h),y!==y+0&&y!=="longjmp")throw y;H(1,0)}}function wa(e,t,r,A,i,o){let s=G();try{v.get(e)(t,r,A,i,o)}catch(c){if(j(s),c!==c+0&&c!=="longjmp")throw c;H(1,0)}}function Da(e,t,r,A,i,o){let s=G();try{return v.get(e)(t,r,A,i,o)}catch(c){if(j(s),c!==c+0&&c!=="longjmp")throw c;H(1,0)}}function ba(e,t,r,A,i,o,s,c,d,E,I,B,h,y){let O=G();try{v.get(e)(t,r,A,i,o,s,c,d,E,I,B,h,y)}catch(U){if(j(O),U!==U+0&&U!=="longjmp")throw U;H(1,0)}}function Ta(e,t,r,A,i,o,s,c){let d=G();try{return v.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 Oa(e,t,r,A){let i=G();try{return v.get(e)(t,r,A)}catch(o){if(j(i),o!==o+0&&o!=="longjmp")throw o;H(1,0)}}function Ra(e,t,r,A){let i=G();try{return v.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{v.get(e)(t,r,A,i,o,s,c,d,E,I,B)}catch(y){if(j(h),y!==y+0&&y!=="longjmp")throw y;H(1,0)}}function Pa(e,t,r,A,i,o,s,c,d,E,I,B,h){let y=G();try{v.get(e)(t,r,A,i,o,s,c,d,E,I,B,h)}catch(O){if(j(y),O!==O+0&&O!=="longjmp")throw O;H(1,0)}}function Sa(e,t,r,A,i,o,s){let c=G();try{v.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{return v.get(e)()}catch(r){if(j(t),r!==r+0&&r!=="longjmp")throw r;H(1,0)}}function va(e,t,r,A,i,o){let s=G();try{v.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{v.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,t,r,A,i,o,s,c){let d=G();try{v.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 Ua(e,t,r,A,i,o,s,c,d){let E=G();try{return v.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 xa(e,t,r,A,i,o,s,c,d,E,I){let B=G();try{v.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 La(e,t,r,A,i,o,s,c,d,E,I){let B=G();try{v.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 Ga(e,t,r,A,i,o,s){let c=G();try{v.get(e)(t,r,A,i,o,s)}catch(d){if(j(c),d!==d+0&&d!=="longjmp")throw d;H(1,0)}}function ja(e,t,r,A,i,o,s,c){let d=G();try{v.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 Ha(e,t,r,A,i,o,s,c,d,E,I,B,h){let y=G();try{v.get(e)(t,r,A,i,o,s,c,d,E,I,B,h)}catch(O){if(j(y),O!==O+0&&O!=="longjmp")throw O;H(1,0)}}function Ya(e,t,r,A,i,o,s,c,d,E,I,B,h){let y=G();try{v.get(e)(t,r,A,i,o,s,c,d,E,I,B,h)}catch(O){if(j(y),O!==O+0&&O!=="longjmp")throw O;H(1,0)}}function Xa(e,t,r,A,i,o,s){let c=G();try{v.get(e)(t,r,A,i,o,s)}catch(d){if(j(c),d!==d+0&&d!=="longjmp")throw d;H(1,0)}}function Wa(e,t,r,A,i,o,s,c){let d=G();try{v.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 Za(e,t,r,A,i,o,s,c,d,E,I,B,h){let y=G();try{v.get(e)(t,r,A,i,o,s,c,d,E,I,B,h)}catch(O){if(j(y),O!==O+0&&O!=="longjmp")throw O;H(1,0)}}function Va(e,t,r,A,i,o,s,c,d,E,I,B,h,y,O,U){let Y=G();try{v.get(e)(t,r,A,i,o,s,c,d,E,I,B,h,y,O,U)}catch(q){if(j(Y),q!==q+0&&q!=="longjmp")throw q;H(1,0)}}function Ja(e,t,r,A,i,o,s,c,d,E,I,B,h,y,O,U){let Y=G();try{v.get(e)(t,r,A,i,o,s,c,d,E,I,B,h,y,O,U)}catch(q){if(j(Y),q!==q+0&&q!=="longjmp")throw q;H(1,0)}}function za(e,t,r,A,i,o,s,c){let d=G();try{v.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 Ka(e,t,r,A,i){let o=G();try{v.get(e)(t,r,A,i)}catch(s){if(j(o),s!==s+0&&s!=="longjmp")throw s;H(1,0)}}function $a(e,t,r,A,i){let o=G();try{v.get(e)(t,r,A,i)}catch(s){if(j(o),s!==s+0&&s!=="longjmp")throw s;H(1,0)}}function qa(e,t,r,A,i,o,s,c,d,E,I,B,h,y){let O=G();try{v.get(e)(t,r,A,i,o,s,c,d,E,I,B,h,y)}catch(U){if(j(O),U!==U+0&&U!=="longjmp")throw U;H(1,0)}}function ec(e,t,r,A,i,o,s,c,d,E,I){let B=G();try{v.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 tc(e,t,r,A,i,o,s,c,d,E){let I=G();try{return v.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 rc(e,t,r,A,i,o){let s=G();try{v.get(e)(t,r,A,i,o)}catch(c){if(j(s),c!==c+0&&c!=="longjmp")throw c;H(1,0)}}function nc(e,t,r,A,i,o,s,c){let d=G();try{v.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 Ac(e,t,r,A,i){let o=G();try{v.get(e)(t,r,A,i)}catch(s){if(j(o),s!==s+0&&s!=="longjmp")throw s;H(1,0)}}function ic(e,t,r,A,i){let o=G();try{v.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(){u("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"intArrayToString")||(n.intArrayToString=function(){u("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ccall")||(n.ccall=function(){u("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"cwrap")||(n.cwrap=function(){u("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setValue")||(n.setValue=function(){u("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getValue")||(n.getValue=function(){u("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocate")||(n.allocate=function(){u("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ArrayToString")||(n.UTF8ArrayToString=function(){u("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ToString")||(n.UTF8ToString=function(){u("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8Array")||(n.stringToUTF8Array=function(){u("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8")||(n.stringToUTF8=function(){u("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF8")||(n.lengthBytesUTF8=function(){u("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){u("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreRun")||(n.addOnPreRun=function(){u("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnInit")||(n.addOnInit=function(){u("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreMain")||(n.addOnPreMain=function(){u("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnExit")||(n.addOnExit=function(){u("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPostRun")||(n.addOnPostRun=function(){u("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeStringToMemory")||(n.writeStringToMemory=function(){u("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeArrayToMemory")||(n.writeArrayToMemory=function(){u("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeAsciiToMemory")||(n.writeAsciiToMemory=function(){u("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.addRunDependency=Mt,n.removeRunDependency=Ke,Object.getOwnPropertyDescriptor(n,"FS_createFolder")||(n.FS_createFolder=function(){u("'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(){u("'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(){u("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFunctionTables")||(n.getFunctionTables=function(){u("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignFunctionTables")||(n.alignFunctionTables=function(){u("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFunctions")||(n.registerFunctions=function(){u("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addFunction")||(n.addFunction=function(){u("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"removeFunction")||(n.removeFunction=function(){u("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){u("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"prettyPrint")||(n.prettyPrint=function(){u("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){u("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCompilerSetting")||(n.getCompilerSetting=function(){u("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"print")||(n.print=function(){u("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"printErr")||(n.printErr=function(){u("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTempRet0")||(n.getTempRet0=function(){u("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setTempRet0")||(n.setTempRet0=function(){u("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callMain")||(n.callMain=function(){u("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"abort")||(n.abort=function(){u("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"keepRuntimeAlive")||(n.keepRuntimeAlive=function(){u("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"zeroMemory")||(n.zeroMemory=function(){u("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToNewUTF8")||(n.stringToNewUTF8=function(){u("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setFileTime")||(n.setFileTime=function(){u("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscripten_realloc_buffer")||(n.emscripten_realloc_buffer=function(){u("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ENV")||(n.ENV=function(){u("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_CODES")||(n.ERRNO_CODES=function(){u("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_MESSAGES")||(n.ERRNO_MESSAGES=function(){u("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setErrNo")||(n.setErrNo=function(){u("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton4")||(n.inetPton4=function(){u("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop4")||(n.inetNtop4=function(){u("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton6")||(n.inetPton6=function(){u("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop6")||(n.inetNtop6=function(){u("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readSockaddr")||(n.readSockaddr=function(){u("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeSockaddr")||(n.writeSockaddr=function(){u("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"DNS")||(n.DNS=function(){u("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getHostByName")||(n.getHostByName=function(){u("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GAI_ERRNO_MESSAGES")||(n.GAI_ERRNO_MESSAGES=function(){u("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Protocols")||(n.Protocols=function(){u("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Sockets")||(n.Sockets=function(){u("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getRandomDevice")||(n.getRandomDevice=function(){u("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"traverseStack")||(n.traverseStack=function(){u("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UNWIND_CACHE")||(n.UNWIND_CACHE=function(){u("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"withBuiltinMalloc")||(n.withBuiltinMalloc=function(){u("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgsArray")||(n.readAsmConstArgsArray=function(){u("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgs")||(n.readAsmConstArgs=function(){u("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mainThreadEM_ASM")||(n.mainThreadEM_ASM=function(){u("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_q")||(n.jstoi_q=function(){u("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_s")||(n.jstoi_s=function(){u("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getExecutableName")||(n.getExecutableName=function(){u("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"listenOnce")||(n.listenOnce=function(){u("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"autoResumeAudioContext")||(n.autoResumeAudioContext=function(){u("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCallLegacy")||(n.dynCallLegacy=function(){u("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getDynCaller")||(n.getDynCaller=function(){u("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){u("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callRuntimeCallbacks")||(n.callRuntimeCallbacks=function(){u("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePush")||(n.runtimeKeepalivePush=function(){u("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePop")||(n.runtimeKeepalivePop=function(){u("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callUserCallback")||(n.callUserCallback=function(){u("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"maybeExit")||(n.maybeExit=function(){u("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"safeSetTimeout")||(n.safeSetTimeout=function(){u("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asmjsMangle")||(n.asmjsMangle=function(){u("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asyncLoad")||(n.asyncLoad=function(){u("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignMemory")||(n.alignMemory=function(){u("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mmapAlloc")||(n.mmapAlloc=function(){u("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reallyNegative")||(n.reallyNegative=function(){u("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unSign")||(n.unSign=function(){u("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reSign")||(n.reSign=function(){u("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"formatString")||(n.formatString=function(){u("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH")||(n.PATH=function(){u("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH_FS")||(n.PATH_FS=function(){u("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SYSCALLS")||(n.SYSCALLS=function(){u("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMmap2")||(n.syscallMmap2=function(){u("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMunmap")||(n.syscallMunmap=function(){u("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketFromFD")||(n.getSocketFromFD=function(){u("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketAddress")||(n.getSocketAddress=function(){u("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"JSEvents")||(n.JSEvents=function(){u("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerKeyEventCallback")||(n.registerKeyEventCallback=function(){u("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"specialHTMLTargets")||(n.specialHTMLTargets=function(){u("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findEventTarget")||(n.findEventTarget=function(){u("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findCanvasEventTarget")||(n.findCanvasEventTarget=function(){u("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBoundingClientRect")||(n.getBoundingClientRect=function(){u("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillMouseEventData")||(n.fillMouseEventData=function(){u("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerMouseEventCallback")||(n.registerMouseEventCallback=function(){u("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerWheelEventCallback")||(n.registerWheelEventCallback=function(){u("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerUiEventCallback")||(n.registerUiEventCallback=function(){u("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFocusEventCallback")||(n.registerFocusEventCallback=function(){u("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceOrientationEventData")||(n.fillDeviceOrientationEventData=function(){u("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceOrientationEventCallback")||(n.registerDeviceOrientationEventCallback=function(){u("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceMotionEventData")||(n.fillDeviceMotionEventData=function(){u("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceMotionEventCallback")||(n.registerDeviceMotionEventCallback=function(){u("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"screenOrientation")||(n.screenOrientation=function(){u("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillOrientationChangeEventData")||(n.fillOrientationChangeEventData=function(){u("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerOrientationChangeEventCallback")||(n.registerOrientationChangeEventCallback=function(){u("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillFullscreenChangeEventData")||(n.fillFullscreenChangeEventData=function(){u("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFullscreenChangeEventCallback")||(n.registerFullscreenChangeEventCallback=function(){u("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerRestoreOldStyle")||(n.registerRestoreOldStyle=function(){u("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"hideEverythingExceptGivenElement")||(n.hideEverythingExceptGivenElement=function(){u("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreHiddenElements")||(n.restoreHiddenElements=function(){u("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setLetterbox")||(n.setLetterbox=function(){u("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"currentFullscreenStrategy")||(n.currentFullscreenStrategy=function(){u("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreOldWindowedStyle")||(n.restoreOldWindowedStyle=function(){u("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"softFullscreenResizeWebGLRenderTarget")||(n.softFullscreenResizeWebGLRenderTarget=function(){u("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"doRequestFullscreen")||(n.doRequestFullscreen=function(){u("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillPointerlockChangeEventData")||(n.fillPointerlockChangeEventData=function(){u("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockChangeEventCallback")||(n.registerPointerlockChangeEventCallback=function(){u("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockErrorEventCallback")||(n.registerPointerlockErrorEventCallback=function(){u("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requestPointerLock")||(n.requestPointerLock=function(){u("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillVisibilityChangeEventData")||(n.fillVisibilityChangeEventData=function(){u("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerVisibilityChangeEventCallback")||(n.registerVisibilityChangeEventCallback=function(){u("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerTouchEventCallback")||(n.registerTouchEventCallback=function(){u("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillGamepadEventData")||(n.fillGamepadEventData=function(){u("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerGamepadEventCallback")||(n.registerGamepadEventCallback=function(){u("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBeforeUnloadEventCallback")||(n.registerBeforeUnloadEventCallback=function(){u("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillBatteryEventData")||(n.fillBatteryEventData=function(){u("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"battery")||(n.battery=function(){u("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBatteryEventCallback")||(n.registerBatteryEventCallback=function(){u("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setCanvasElementSize")||(n.setCanvasElementSize=function(){u("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCanvasElementSize")||(n.getCanvasElementSize=function(){u("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"polyfillSetImmediate")||(n.polyfillSetImmediate=function(){u("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangle")||(n.demangle=function(){u("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangleAll")||(n.demangleAll=function(){u("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jsStackTrace")||(n.jsStackTrace=function(){u("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){u("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getEnvStrings")||(n.getEnvStrings=function(){u("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"checkWasiClock")||(n.checkWasiClock=function(){u("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64")||(n.writeI53ToI64=function(){u("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Clamped")||(n.writeI53ToI64Clamped=function(){u("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Signaling")||(n.writeI53ToI64Signaling=function(){u("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Clamped")||(n.writeI53ToU64Clamped=function(){u("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Signaling")||(n.writeI53ToU64Signaling=function(){u("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromI64")||(n.readI53FromI64=function(){u("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromU64")||(n.readI53FromU64=function(){u("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertI32PairToI53")||(n.convertI32PairToI53=function(){u("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertU32PairToI53")||(n.convertU32PairToI53=function(){u("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"uncaughtExceptionCount")||(n.uncaughtExceptionCount=function(){u("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionLast")||(n.exceptionLast=function(){u("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionCaught")||(n.exceptionCaught=function(){u("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ExceptionInfo")||(n.ExceptionInfo=function(){u("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"CatchInfo")||(n.CatchInfo=function(){u("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_addRef")||(n.exception_addRef=function(){u("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_decRef")||(n.exception_decRef=function(){u("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Browser")||(n.Browser=function(){u("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"funcWrappers")||(n.funcWrappers=function(){u("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){u("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setMainLoop")||(n.setMainLoop=function(){u("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"wget")||(n.wget=function(){u("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"FS")||(n.FS=function(){u("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"MEMFS")||(n.MEMFS=function(){u("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"TTY")||(n.TTY=function(){u("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PIPEFS")||(n.PIPEFS=function(){u("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SOCKFS")||(n.SOCKFS=function(){u("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"_setNetworkCallback")||(n._setNetworkCallback=function(){u("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tempFixedLengthArray")||(n.tempFixedLengthArray=function(){u("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"miniTempWebGLFloatBuffers")||(n.miniTempWebGLFloatBuffers=function(){u("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapObjectForWebGLType")||(n.heapObjectForWebGLType=function(){u("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapAccessShiftForWebGLHeap")||(n.heapAccessShiftForWebGLHeap=function(){u("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.GL=p,Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGet")||(n.emscriptenWebGLGet=function(){u("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"computeUnpackAlignedImageSize")||(n.computeUnpackAlignedImageSize=function(){u("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetTexPixelData")||(n.emscriptenWebGLGetTexPixelData=function(){u("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetUniform")||(n.emscriptenWebGLGetUniform=function(){u("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetUniformLocation")||(n.webglGetUniformLocation=function(){u("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglPrepareUniformLocationsBeforeFirstUse")||(n.webglPrepareUniformLocationsBeforeFirstUse=function(){u("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetLeftBracePos")||(n.webglGetLeftBracePos=function(){u("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetVertexAttrib")||(n.emscriptenWebGLGetVertexAttrib=function(){u("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetBufferBinding")||(n.emscriptenWebGLGetBufferBinding=function(){u("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLValidateMapBufferTarget")||(n.emscriptenWebGLValidateMapBufferTarget=function(){u("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeGLArray")||(n.writeGLArray=function(){u("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AL")||(n.AL=function(){u("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_unicode")||(n.SDL_unicode=function(){u("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_ttfContext")||(n.SDL_ttfContext=function(){u("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_audio")||(n.SDL_audio=function(){u("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL")||(n.SDL=function(){u("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_gfx")||(n.SDL_gfx=function(){u("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLUT")||(n.GLUT=function(){u("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"EGL")||(n.EGL=function(){u("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW_Window")||(n.GLFW_Window=function(){u("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW")||(n.GLFW=function(){u("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLEW")||(n.GLEW=function(){u("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"IDBStore")||(n.IDBStore=function(){u("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runAndAbortIfError")||(n.runAndAbortIfError=function(){u("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_handle_array")||(n.emval_handle_array=function(){u("'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(){u("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_symbols")||(n.emval_symbols=function(){u("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_emval")||(n.init_emval=function(){u("'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(){u("'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(){u("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getStringOrSymbol")||(n.getStringOrSymbol=function(){u("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireHandle")||(n.requireHandle=function(){u("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_newers")||(n.emval_newers=function(){u("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftEmvalAllocator")||(n.craftEmvalAllocator=function(){u("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_get_global")||(n.emval_get_global=function(){u("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_methodCallers")||(n.emval_methodCallers=function(){u("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"InternalError")||(n.InternalError=function(){u("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"BindingError")||(n.BindingError=function(){u("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UnboundTypeError")||(n.UnboundTypeError=function(){u("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PureVirtualError")||(n.PureVirtualError=function(){u("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_embind")||(n.init_embind=function(){u("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInternalError")||(n.throwInternalError=function(){u("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwBindingError")||(n.throwBindingError=function(){u("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwUnboundTypeError")||(n.throwUnboundTypeError=function(){u("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ensureOverloadTable")||(n.ensureOverloadTable=function(){u("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exposePublicSymbol")||(n.exposePublicSymbol=function(){u("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"replacePublicSymbol")||(n.replacePublicSymbol=function(){u("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"extendError")||(n.extendError=function(){u("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"createNamedFunction")||(n.createNamedFunction=function(){u("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredInstances")||(n.registeredInstances=function(){u("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBasestPointer")||(n.getBasestPointer=function(){u("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerInheritedInstance")||(n.registerInheritedInstance=function(){u("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unregisterInheritedInstance")||(n.unregisterInheritedInstance=function(){u("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstance")||(n.getInheritedInstance=function(){u("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstanceCount")||(n.getInheritedInstanceCount=function(){u("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getLiveInheritedInstances")||(n.getLiveInheritedInstances=function(){u("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredTypes")||(n.registeredTypes=function(){u("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"awaitingDependencies")||(n.awaitingDependencies=function(){u("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"typeDependencies")||(n.typeDependencies=function(){u("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredPointers")||(n.registeredPointers=function(){u("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerType")||(n.registerType=function(){u("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"whenDependentTypesAreResolved")||(n.whenDependentTypesAreResolved=function(){u("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_charCodes")||(n.embind_charCodes=function(){u("'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(){u("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readLatin1String")||(n.readLatin1String=function(){u("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTypeName")||(n.getTypeName=function(){u("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heap32VectorToArray")||(n.heap32VectorToArray=function(){u("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireRegisteredType")||(n.requireRegisteredType=function(){u("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getShiftFromSize")||(n.getShiftFromSize=function(){u("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"integerReadValueFromPointer")||(n.integerReadValueFromPointer=function(){u("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"enumReadValueFromPointer")||(n.enumReadValueFromPointer=function(){u("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"floatReadValueFromPointer")||(n.floatReadValueFromPointer=function(){u("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"simpleReadValueFromPointer")||(n.simpleReadValueFromPointer=function(){u("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructors")||(n.runDestructors=function(){u("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"new_")||(n.new_=function(){u("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftInvokerFunction")||(n.craftInvokerFunction=function(){u("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind__requireFunction")||(n.embind__requireFunction=function(){u("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tupleRegistrations")||(n.tupleRegistrations=function(){u("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"structRegistrations")||(n.structRegistrations=function(){u("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"genericPointerToWireType")||(n.genericPointerToWireType=function(){u("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"constNoSmartPtrRawPointerToWireType")||(n.constNoSmartPtrRawPointerToWireType=function(){u("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"nonConstNoSmartPtrRawPointerToWireType")||(n.nonConstNoSmartPtrRawPointerToWireType=function(){u("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_RegisteredPointer")||(n.init_RegisteredPointer=function(){u("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer")||(n.RegisteredPointer=function(){u("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_getPointee")||(n.RegisteredPointer_getPointee=function(){u("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_destructor")||(n.RegisteredPointer_destructor=function(){u("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_deleteObject")||(n.RegisteredPointer_deleteObject=function(){u("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_fromWireType")||(n.RegisteredPointer_fromWireType=function(){u("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructor")||(n.runDestructor=function(){u("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"releaseClassHandle")||(n.releaseClassHandle=function(){u("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"finalizationGroup")||(n.finalizationGroup=function(){u("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer_deps")||(n.detachFinalizer_deps=function(){u("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer")||(n.detachFinalizer=function(){u("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"attachFinalizer")||(n.attachFinalizer=function(){u("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeClassHandle")||(n.makeClassHandle=function(){u("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_ClassHandle")||(n.init_ClassHandle=function(){u("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle")||(n.ClassHandle=function(){u("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isAliasOf")||(n.ClassHandle_isAliasOf=function(){u("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInstanceAlreadyDeleted")||(n.throwInstanceAlreadyDeleted=function(){u("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_clone")||(n.ClassHandle_clone=function(){u("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_delete")||(n.ClassHandle_delete=function(){u("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"deletionQueue")||(n.deletionQueue=function(){u("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isDeleted")||(n.ClassHandle_isDeleted=function(){u("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_deleteLater")||(n.ClassHandle_deleteLater=function(){u("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"flushPendingDeletes")||(n.flushPendingDeletes=function(){u("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"delayFunction")||(n.delayFunction=function(){u("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setDelayFunction")||(n.setDelayFunction=function(){u("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredClass")||(n.RegisteredClass=function(){u("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"shallowCopyInternalPointer")||(n.shallowCopyInternalPointer=function(){u("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"downcastPointer")||(n.downcastPointer=function(){u("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"upcastPointer")||(n.upcastPointer=function(){u("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"validateThis")||(n.validateThis=function(){u("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_0")||(n.char_0=function(){u("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_9")||(n.char_9=function(){u("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeLegalFunctionName")||(n.makeLegalFunctionName=function(){u("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetIndexed")||(n.emscriptenWebGLGetIndexed=function(){u("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"warnOnce")||(n.warnOnce=function(){u("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackSave")||(n.stackSave=function(){u("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackRestore")||(n.stackRestore=function(){u("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackAlloc")||(n.stackAlloc=function(){u("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AsciiToString")||(n.AsciiToString=function(){u("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToAscii")||(n.stringToAscii=function(){u("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF16ToString")||(n.UTF16ToString=function(){u("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF16")||(n.stringToUTF16=function(){u("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF16")||(n.lengthBytesUTF16=function(){u("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF32ToString")||(n.UTF32ToString=function(){u("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF32")||(n.stringToUTF32=function(){u("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF32")||(n.lengthBytesUTF32=function(){u("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8")||(n.allocateUTF8=function(){u("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8OnStack")||(n.allocateUTF8OnStack=function(){u("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.writeStackCookie=ot,n.checkStackCookie=Ve,Object.getOwnPropertyDescriptor(n,"ALLOC_NORMAL")||Object.defineProperty(n,"ALLOC_NORMAL",{configurable:!0,get(){u("'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(){u("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}});let Sn;function TA(e){this.name="ExitStatus",this.message=`Program terminated with exit(${e})`,this.status=e}Nt=function e(){Sn||OA(),Sn||(Nt=e)};function oc(){ti(),ot()}function OA(e){if(e=e||ye,st>0||(oc(),Xn(),st>0))return;function t(){Sn||(Sn=!0,n.calledRun=!0,!Ze&&(Wn(),T(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),P(!n._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),Er()))}n.setStatus?(n.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>{n.setStatus("")},1),t()},1)):t(),Ve()}n.run=OA;function sc(){let e=_e,t=K,r=!1;_e=K=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=qe.ttys[c];d&&d.output&&d.output.length&&(r=!0)})}catch(A){}_e=e,K=t,r&&Me("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 ac(e,t){if(zt=e,sc(),Ye()){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)`;me(r),K(r)}}else fr();ni(e)}function ni(e){zt=e,Ye()||(n.onExit&&n.onExit(e),Ze=!0),Re(e,new TA(e))}if(n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return OA(),S.ready}}(),li=Cc;var Bc={},pc=(()=>{var z=Bc.url;return function(S={}){var n,T=Object.assign({},S),me,ce,ge=new Promise((l,g)=>{me=l,ce=g}),ye=!0,Te=!1,Re=Object.assign({},T),Le=[],We="./this.program",Qt=(l,g)=>{throw g},nt="",Ge,Nn,Ft;(ye||Te)&&(Te?nt=self.location.href:typeof document!="undefined"&&document.currentScript&&(nt=document.currentScript.src),z&&(nt=z),nt.startsWith("blob:")?nt="":nt=nt.substr(0,nt.replace(/[?#].*/,"").lastIndexOf("/")+1),Ge=l=>{var g=new XMLHttpRequest;return g.open("GET",l,!1),g.send(null),g.responseText},Te&&(Ft=l=>{var g=new XMLHttpRequest;return g.open("GET",l,!1),g.responseType="arraybuffer",g.send(null),new Uint8Array(g.response)}),Nn=(l,g,f)=>{var C=new XMLHttpRequest;C.open("GET",l,!0),C.responseType="arraybuffer",C.onload=()=>{if(C.status==200||C.status==0&&C.response){g(C.response);return}f()},C.onerror=f,C.send(null)});var Fr=T.print||console.log.bind(console),yt=T.printErr||console.error.bind(console);Object.assign(T,Re),Re=null,T.arguments&&(Le=T.arguments),T.thisProgram&&(We=T.thisProgram),T.quit&&(Qt=T.quit);var Zt;T.wasmBinary&&(Zt=T.wasmBinary);function Un(l){for(var g=atob(l),f=new Uint8Array(g.length),C=0;C<g.length;++C)f[C]=g.charCodeAt(C);return f}function PA(l){if(Ln(l))return Un(l.slice(xr.length))}var _e,K=!1,Me,ft,Be,je,Vt,Jt,Ae,He,vr;function gr(){var l=_e.buffer;T.HEAP8=ft=new Int8Array(l),T.HEAP16=je=new Int16Array(l),T.HEAPU8=Be=new Uint8Array(l),T.HEAPU16=Vt=new Uint16Array(l),T.HEAP32=Jt=new Int32Array(l),T.HEAPU32=Ae=new Uint32Array(l),T.HEAPF32=He=new Float32Array(l),T.HEAPF64=vr=new Float64Array(l)}var kr=[],_t=[],Ze=[],zt=!1;function P(){if(T.preRun)for(typeof T.preRun=="function"&&(T.preRun=[T.preRun]);T.preRun.length;)FA(T.preRun.shift());se(kr)}function xn(){zt=!0,se(_t)}function SA(){if(T.postRun)for(typeof T.postRun=="function"&&(T.postRun=[T.postRun]);T.postRun.length;)wt(T.postRun.shift());se(Ze)}function FA(l){kr.unshift(l)}function Nr(l){_t.unshift(l)}function wt(l){Ze.unshift(l)}var de=0,Dt=null,At=null;function bt(l){var g;de++,(g=T.monitorRunDependencies)==null||g.call(T,de)}function Ur(l){var f;if(de--,(f=T.monitorRunDependencies)==null||f.call(T,de),de==0&&(Dt!==null&&(clearInterval(Dt),Dt=null),At)){var g=At;At=null,g()}}function lr(l){var f;(f=T.onAbort)==null||f.call(T,l),l="Aborted("+l+")",yt(l),K=!0,Me=1,l+=". Build with -sASSERTIONS for more info.";var g=new WebAssembly.RuntimeError(l);throw ce(g),g}var xr="data:application/octet-stream;base64,",Ln=l=>l.startsWith(xr);function Gn(){var l="data:application/octet-stream;base64,AGFzbQEAAAAB7QEeYAJ/fwBgAX8Bf2ABfwBgA39/fwF/YAN/f38AYAJ/fwF/YAR/f39/AGAAAGAFf39/f38AYAZ/f39/f38AYAR/f39/AX9gB39/f39/f38AYAN/fn8BfmAFf3x8fHwAYAZ/fHx8fHwAYAV/f39/fwF8YAl/f39/f39/f38AYAN/f38BfGAKf39/f39/f39/fwBgDX9/f39/f39/f39/f38AYAJ/fABgAn5/AX9gAXwBfGAGf3x/f39/AX9gBn9/f39/fwF/YAJ8fwF8YAR/f35+AGAGf398fHx8AGAHf398fHx8fABgBX9/f39/AX8ClwEZAWEBYQAEAWEBYgACAWEBYwACAWEBZAACAWEBZQAPAWEBZgADAWEBZwAIAWEBaAAQAWEBaQAFAWEBagARAWEBawASAWEBbAAEAWEBbQAKAWEBbgAAAWEBbwAEAWEBcAALAWEBcQAHAWEBcgABAWEBcwAEAWEBdAACAWEBdQAGAWEBdgAAAWEBdwAEAWEBeAAJAWEBeQATA2dmAgUBAwQDCBQFAwQDBQcBFQECAQAAAAQFBQUFBBYHBwIBBgUEBQAAAgAAAgMLAwEFFwYBGAoZAQIABwIEBhoHAQEBCQkICAQDBgYDAwAAAwcBAAUMAQMCAQACAQACGw0cDgAAAB0ABAUBcAE1NQUGAQGCAoICBg0CfwFBoPcEC38BQQALByEIAXoCAAFBADcBQgArAUMBAAFEAHABRQAZAUYAWgFHAH0JOgEAQQELNHNva2lmZT1ffnx7enl4d3Z1dHJxPTlXUm1ubElqZ0cqUFBkKmNbXWIqXF5hKmBHKlk4WDgKuogCZu4LAQd/AkAgAEUNACAAQQhrIgMgAEEEaygCACIBQXhxIgBqIQUCQCABQQFxDQAgAUECcUUNASADIAMoAgAiAWsiA0G88wAoAgBJDQEgACABaiEAAkACQAJAQcDzACgCACADRwRAIAMoAgwhAiABQf8BTQRAIAIgAygCCCIERw0CQazzAEGs8wAoAgBBfiABQQN2d3E2AgAMBQsgAygCGCEGIAIgA0cEQCADKAIIIgEgAjYCDCACIAE2AggMBAsgAygCFCIBBH8gA0EUagUgAygCECIBRQ0DIANBEGoLIQQDQCAEIQcgASICQRRqIQQgAigCFCIBDQAgAkEQaiEEIAIoAhAiAQ0ACyAHQQA2AgAMAwsgBSgCBCIBQQNxQQNHDQNBtPMAIAA2AgAgBSABQX5xNgIEIAMgAEEBcjYCBCAFIAA2AgAPCyAEIAI2AgwgAiAENgIIDAILQQAhAgsgBkUNAAJAIAMoAhwiAUECdEHc9QBqIgQoAgAgA0YEQCAEIAI2AgAgAg0BQbDzAEGw8wAoAgBBfiABd3E2AgAMAgsgBkEQQRQgBigCECADRhtqIAI2AgAgAkUNAQsgAiAGNgIYIAMoAhAiAQRAIAIgATYCECABIAI2AhgLIAMoAhQiAUUNACACIAE2AhQgASACNgIYCyADIAVPDQAgBSgCBCIBQQFxRQ0AAkACQAJAAkAgAUECcUUEQEHE8wAoAgAgBUYEQEHE8wAgAzYCAEG48wBBuPMAKAIAIABqIgA2AgAgAyAAQQFyNgIEIANBwPMAKAIARw0GQbTzAEEANgIAQcDzAEEANgIADwtBwPMAKAIAIAVGBEBBwPMAIAM2AgBBtPMAQbTzACgCACAAaiIANgIAIAMgAEEBcjYCBCAAIANqIAA2AgAPCyABQXhxIABqIQAgBSgCDCECIAFB/wFNBEAgBSgCCCIEIAJGBEBBrPMAQazzACgCAEF+IAFBA3Z3cTYCAAwFCyAEIAI2AgwgAiAENgIIDAQLIAUoAhghBiACIAVHBEAgBSgCCCIBIAI2AgwgAiABNgIIDAMLIAUoAhQiAQR/IAVBFGoFIAUoAhAiAUUNAiAFQRBqCyEEA0AgBCEHIAEiAkEUaiEEIAIoAhQiAQ0AIAJBEGohBCACKAIQIgENAAsgB0EANgIADAILIAUgAUF+cTYCBCADIABBAXI2AgQgACADaiAANgIADAMLQQAhAgsgBkUNAAJAIAUoAhwiAUECdEHc9QBqIgQoAgAgBUYEQCAEIAI2AgAgAg0BQbDzAEGw8wAoAgBBfiABd3E2AgAMAgsgBkEQQRQgBigCECAFRhtqIAI2AgAgAkUNAQsgAiAGNgIYIAUoAhAiAQRAIAIgATYCECABIAI2AhgLIAUoAhQiAUUNACACIAE2AhQgASACNgIYCyADIABBAXI2AgQgACADaiAANgIAIANBwPMAKAIARw0AQbTzACAANgIADwsgAEH/AU0EQCAAQXhxQdTzAGohAQJ/QazzACgCACIEQQEgAEEDdnQiAHFFBEBBrPMAIAAgBHI2AgAgAQwBCyABKAIICyEAIAEgAzYCCCAAIAM2AgwgAyABNgIMIAMgADYCCA8LQR8hAiAAQf///wdNBEAgAEEmIABBCHZnIgFrdkEBcSABQQF0a0E+aiECCyADIAI2AhwgA0IANwIQIAJBAnRB3PUAaiEHAn8CQAJ/QbDzACgCACIBQQEgAnQiBHFFBEBBsPMAIAEgBHI2AgBBGCECIAchBEEIDAELIABBGSACQQF2a0EAIAJBH0cbdCECIAcoAgAhBANAIAQiASgCBEF4cSAARg0CIAJBHXYhBCACQQF0IQIgASAEQQRxakEQaiIHKAIAIgQNAAtBGCECIAEhBEEICyEAIAMiAQwBCyABKAIIIgQgAzYCDEEIIQIgAUEIaiEHQRghAEEACyEFIAcgAzYCACACIANqIAQ2AgAgAyABNgIMIAAgA2ogBTYCAEHM8wBBzPMAKAIAQQFrIgBBfyAAGzYCAAsLDAAgACABIAEQKRAcCzsBAn9BASAAIABBAU0bIQEDQAJAIAEQKyIADQBBnPcAKAIAIgJFDQAgAhEHAAwBCwsgAEUEQBAmCyAAC70BAQN/IwBBEGsiBSQAAkAgAiAALQALQQd2BH8gACgCCEH/////B3FBAWsFQQoLIgQCfyAALQALQQd2BEAgACgCBAwBCyAALQALQf8AcQsiA2tNBEAgAkUNAQJ/IAAtAAtBB3YEQCAAKAIADAELIAALIgQgA2ogASACECMgACACIANqIgEQLiAFQQA6AA8gASAEaiAFLQAPOgAADAELIAAgBCACIARrIANqIAMgAyACIAEQRQsgBUEQaiQAIAALwQEBA38gAC0AAEEgcUUEQAJAIAIgACgCECIDBH8gAwUgABBPDQEgACgCEAsgACgCFCIEa0sEQCAAIAEgAiAAKAIkEQMAGgwBCwJAAkAgACgCUEEASA0AIAJFDQAgAiEDA0AgASADaiIFQQFrLQAAQQpHBEAgA0EBayIDDQEMAgsLIAAgASADIAAoAiQRAwAgA0kNAiACIANrIQIgACgCFCEEDAELIAEhBQsgBCAFIAIQIhogACAAKAIUIAJqNgIUCwsLdAEBfyACRQRAIAAoAgQgASgCBEYPCyAAIAFGBEBBAQ8LIAEoAgQiAi0AACEBAkAgACgCBCIDLQAAIgBFDQAgACABRw0AA0AgAi0AASEBIAMtAAEiAEUNASACQQFqIQIgA0EBaiEDIAAgAUYNAAsLIAAgAUYLawEBfyMAQYACayIFJAACQCACIANMDQAgBEGAwARxDQAgBSABIAIgA2siA0GAAiADQYACSSIBGxAkGiABRQRAA0AgACAFQYACEB0gA0GAAmsiA0H/AUsNAAsLIAAgBSADEB0LIAVBgAJqJAALtAEBBX8jAEEQayIGJAAgBkEEaiICEEAjAEEQayIFJAACfyACLQALQQd2BEAgAigCBAwBCyACLQALQf8AcQshBANAAkACfyACLQALQQd2BEAgAigCAAwBCyACCyEDIAUgATkDACACAn8gAyAEQQFqIAUQRiIDQQBOBEAgAyAETQ0CIAMMAQsgBEEBdEEBcgsiBBA/DAELCyACIAMQPyAAIAIQPiAFQRBqJAAgAhBDIAZBEGokAAvlAwEFfyMAQRBrIgMkACADIAAoAgAiBEEIaygCACICNgIMIAMgACACajYCBCADIARBBGsoAgA2AgggAygCCCIEIAFBABAeIQIgAygCBCEFAkAgAgRAIAMoAgwhACMAQUBqIgEkACABQUBrJABBACAFIAAbIQIMAQsjAEFAaiICJAAgACAFTgRAIAJCADcCHCACQgA3AiQgAkIANwIsIAJCADcCFCACQQA2AhAgAiABNgIMIAIgBDYCBCACQQA2AjwgAkKBgICAgICAgAE3AjQgAiAANgIIIAQgAkEEaiAFIAVBAUEAIAQoAgAoAhQRCQAgAEEAIAIoAhwbIQYLIAJBQGskACAGIgINACMAQUBqIgIkACACQQA2AhAgAkGc4QA2AgwgAiAANgIIIAIgATYCBEEAIQAgAkEUakEAQScQJBogAkEANgI8IAJBAToAOyAEIAJBBGogBUEBQQAgBCgCACgCGBEIAAJAAkACQCACKAIoDgIAAQILIAIoAhhBACACKAIkQQFGG0EAIAIoAiBBAUYbQQAgAigCLEEBRhshAAwBCyACKAIcQQFHBEAgAigCLA0BIAIoAiBBAUcNASACKAIkQQFHDQELIAIoAhQhAAsgAkFAayQAIAAhAgsgA0EQaiQAIAILgAQBA38gAkGABE8EQCAAIAEgAhASIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAEEDcUUEQCAAIQIMAQsgAkUEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgJBA3FFDQEgAiADSQ0ACwsCQCADQXxxIgRBwABJDQAgAiAEQUBqIgVLDQADQCACIAEoAgA2AgAgAiABKAIENgIEIAIgASgCCDYCCCACIAEoAgw2AgwgAiABKAIQNgIQIAIgASgCFDYCFCACIAEoAhg2AhggAiABKAIcNgIcIAIgASgCIDYCICACIAEoAiQ2AiQgAiABKAIoNgIoIAIgASgCLDYCLCACIAEoAjA2AjAgAiABKAI0NgI0IAIgASgCODYCOCACIAEoAjw2AjwgAUFAayEBIAJBQGsiAiAFTQ0ACwsgAiAETw0BA0AgAiABKAIANgIAIAFBBGohASACQQRqIgIgBEkNAAsMAQsgA0EESQRAIAAhAgwBCyAAIANBBGsiBEsEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAIgAS0AAToAASACIAEtAAI6AAIgAiABLQADOgADIAFBBGohASACQQRqIgIgBE0NAAsLIAIgA0kEQANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIANHDQALCyAACwsAIAEgAiAAEEQaC/ICAgJ/AX4CQCACRQ0AIAAgAToAACAAIAJqIgNBAWsgAToAACACQQNJDQAgACABOgACIAAgAToAASADQQNrIAE6AAAgA0ECayABOgAAIAJBB0kNACAAIAE6AAMgA0EEayABOgAAIAJBCUkNACAAQQAgAGtBA3EiBGoiAyABQf8BcUGBgoQIbCIBNgIAIAMgAiAEa0F8cSIEaiICQQRrIAE2AgAgBEEJSQ0AIAMgATYCCCADIAE2AgQgAkEIayABNgIAIAJBDGsgATYCACAEQRlJDQAgAyABNgIYIAMgATYCFCADIAE2AhAgAyABNgIMIAJBEGsgATYCACACQRRrIAE2AgAgAkEYayABNgIAIAJBHGsgATYCACAEIANBBHFBGHIiBGsiAkEgSQ0AIAGtQoGAgIAQfiEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkEgayICQR9LDQALCyAACxIAIAFBAXRBsN8AakECIAAQRAsFABBoAAtSAQJ/QZjpACgCACIBIABBB2pBeHEiAmohAAJAIAJBACAAIAFNG0UEQCAAPwBBEHRNDQEgABARDQELQajzAEEwNgIAQX8PC0GY6QAgADYCACABC4gBAgF+BX8CQCAAQoCAgIAQVARAIAAhAgwBCwNAIAFBAWsiASAAIABCCoAiAkIKfn2nQTByOgAAIABC/////58BViEGIAIhACAGDQALCyACQgBSBEAgAqchAwNAIAFBAWsiASADIANBCm4iBEEKbGtBMHI6AAAgA0EJSyEHIAQhAyAHDQALCyABC30BA38CQAJAIAAiAUEDcUUNACABLQAARQRAQQAPCwNAIAFBAWoiAUEDcUUNASABLQAADQALDAELA0AgASICQQRqIQFBgIKECCACKAIAIgNrIANyQYCBgoR4cUGAgYKEeEYNAAsDQCACIgFBAWohAiABLQAADQALCyABIABrCwYAIAAQGQvOKAEMfyMAQRBrIgokAAJAAkACQAJAAkACQAJAAkACQAJAIABB9AFNBEBBrPMAKAIAIgRBECAAQQtqQfgDcSAAQQtJGyIGQQN2IgB2IgFBA3EEQAJAIAFBf3NBAXEgAGoiAkEDdCIBQdTzAGoiACABQdzzAGooAgAiASgCCCIFRgRAQazzACAEQX4gAndxNgIADAELIAUgADYCDCAAIAU2AggLIAFBCGohACABIAJBA3QiAkEDcjYCBCABIAJqIgEgASgCBEEBcjYCBAwLCyAGQbTzACgCACIITQ0BIAEEQAJAQQIgAHQiAkEAIAJrciABIAB0cWgiAUEDdCIAQdTzAGoiAiAAQdzzAGooAgAiACgCCCIFRgRAQazzACAEQX4gAXdxIgQ2AgAMAQsgBSACNgIMIAIgBTYCCAsgACAGQQNyNgIEIAAgBmoiByABQQN0IgEgBmsiBUEBcjYCBCAAIAFqIAU2AgAgCARAIAhBeHFB1PMAaiEBQcDzACgCACECAn8gBEEBIAhBA3Z0IgNxRQRAQazzACADIARyNgIAIAEMAQsgASgCCAshAyABIAI2AgggAyACNgIMIAIgATYCDCACIAM2AggLIABBCGohAEHA8wAgBzYCAEG08wAgBTYCAAwLC0Gw8wAoAgAiC0UNASALaEECdEHc9QBqKAIAIgIoAgRBeHEgBmshAyACIQEDQAJAIAEoAhAiAEUEQCABKAIUIgBFDQELIAAoAgRBeHEgBmsiASADIAEgA0kiARshAyAAIAIgARshAiAAIQEMAQsLIAIoAhghCSACIAIoAgwiAEcEQCACKAIIIgEgADYCDCAAIAE2AggMCgsgAigCFCIBBH8gAkEUagUgAigCECIBRQ0DIAJBEGoLIQUDQCAFIQcgASIAQRRqIQUgACgCFCIBDQAgAEEQaiEFIAAoAhAiAQ0ACyAHQQA2AgAMCQtBfyEGIABBv39LDQAgAEELaiIAQXhxIQZBsPMAKAIAIgdFDQBBACAGayEDAkACQAJAAn9BACAGQYACSQ0AGkEfIAZB////B0sNABogBkEmIABBCHZnIgBrdkEBcSAAQQF0a0E+agsiCEECdEHc9QBqKAIAIgFFBEBBACEADAELQQAhACAGQRkgCEEBdmtBACAIQR9HG3QhAgNAAkAgASgCBEF4cSAGayIEIANPDQAgASEFIAQiAw0AQQAhAyABIQAMAwsgACABKAIUIgQgBCABIAJBHXZBBHFqKAIQIgFGGyAAIAQbIQAgAkEBdCECIAENAAsLIAAgBXJFBEBBACEFQQIgCHQiAEEAIABrciAHcSIARQ0DIABoQQJ0Qdz1AGooAgAhAAsgAEUNAQsDQCAAKAIEQXhxIAZrIgIgA0khASACIAMgARshAyAAIAUgARshBSAAKAIQIgEEfyABBSAAKAIUCyIADQALCyAFRQ0AIANBtPMAKAIAIAZrTw0AIAUoAhghCCAFIAUoAgwiAEcEQCAFKAIIIgEgADYCDCAAIAE2AggMCAsgBSgCFCIBBH8gBUEUagUgBSgCECIBRQ0DIAVBEGoLIQIDQCACIQQgASIAQRRqIQIgACgCFCIBDQAgAEEQaiECIAAoAhAiAQ0ACyAEQQA2AgAMBwsgBkG08wAoAgAiBU0EQEHA8wAoAgAhAAJAIAUgBmsiAUEQTwRAIAAgBmoiAiABQQFyNgIEIAAgBWogATYCACAAIAZBA3I2AgQMAQsgACAFQQNyNgIEIAAgBWoiASABKAIEQQFyNgIEQQAhAkEAIQELQbTzACABNgIAQcDzACACNgIAIABBCGohAAwJCyAGQbjzACgCACICSQRAQbjzACACIAZrIgE2AgBBxPMAQcTzACgCACIAIAZqIgI2AgAgAiABQQFyNgIEIAAgBkEDcjYCBCAAQQhqIQAMCQtBACEAIAZBL2oiAwJ/QYT3ACgCAARAQYz3ACgCAAwBC0GQ9wBCfzcCAEGI9wBCgKCAgICABDcCAEGE9wAgCkEMakFwcUHYqtWqBXM2AgBBmPcAQQA2AgBB6PYAQQA2AgBBgCALIgFqIgRBACABayIHcSIBIAZNDQhB5PYAKAIAIgUEQEHc9gAoAgAiCCABaiIJIAhNDQkgBSAJSQ0JCwJAQej2AC0AAEEEcUUEQAJAAkACQAJAQcTzACgCACIFBEBB7PYAIQADQCAFIAAoAgAiCE8EQCAIIAAoAgRqIAVLDQMLIAAoAggiAA0ACwtBABAnIgJBf0YNAyABIQRBiPcAKAIAIgBBAWsiBSACcQRAIAEgAmsgAiAFakEAIABrcWohBAsgBCAGTQ0DQeT2ACgCACIABEBB3PYAKAIAIgUgBGoiByAFTQ0EIAAgB0kNBAsgBBAnIgAgAkcNAQwFCyAEIAJrIAdxIgQQJyICIAAoAgAgACgCBGpGDQEgAiEACyAAQX9GDQEgBkEwaiAETQRAIAAhAgwEC0GM9wAoAgAiAiADIARrakEAIAJrcSICECdBf0YNASACIARqIQQgACECDAMLIAJBf0cNAgtB6PYAQej2ACgCAEEEcjYCAAsgARAnIQJBABAnIQAgAkF/Rg0FIABBf0YNBSAAIAJNDQUgACACayIEIAZBKGpNDQULQdz2AEHc9gAoAgAgBGoiADYCAEHg9gAoAgAgAEkEQEHg9gAgADYCAAsCQEHE8wAoAgAiAwRAQez2ACEAA0AgAiAAKAIAIgEgACgCBCIFakYNAiAAKAIIIgANAAsMBAtBvPMAKAIAIgBBACAAIAJNG0UEQEG88wAgAjYCAAtBACEAQfD2ACAENgIAQez2ACACNgIAQczzAEF/NgIAQdDzAEGE9wAoAgA2AgBB+PYAQQA2AgADQCAAQQN0IgFB3PMAaiABQdTzAGoiBTYCACABQeDzAGogBTYCACAAQQFqIgBBIEcNAAtBuPMAIARBKGsiAEF4IAJrQQdxIgFrIgU2AgBBxPMAIAEgAmoiATYCACABIAVBAXI2AgQgACACakEoNgIEQcjzAEGU9wAoAgA2AgAMBAsgAiADTQ0CIAEgA0sNAiAAKAIMQQhxDQIgACAEIAVqNgIEQcTzACADQXggA2tBB3EiAGoiATYCAEG48wBBuPMAKAIAIARqIgIgAGsiADYCACABIABBAXI2AgQgAiADakEoNgIEQcjzAEGU9wAoAgA2AgAMAwtBACEADAYLQQAhAAwEC0G88wAoAgAgAksEQEG88wAgAjYCAAsgAiAEaiEFQez2ACEAAkADQCAFIAAoAgAiAUcEQCAAKAIIIgANAQwCCwsgAC0ADEEIcUUNAwtB7PYAIQADQAJAIAMgACgCACIBTwRAIAEgACgCBGoiBSADSw0BCyAAKAIIIQAMAQsLQbjzACAEQShrIgBBeCACa0EHcSIBayIHNgIAQcTzACABIAJqIgE2AgAgASAHQQFyNgIEIAAgAmpBKDYCBEHI8wBBlPcAKAIANgIAIAMgBUEnIAVrQQdxakEvayIAIAAgA0EQakkbIgFBGzYCBCABQfT2ACkCADcCECABQez2ACkCADcCCEH09gAgAUEIajYCAEHw9gAgBDYCAEHs9gAgAjYCAEH49gBBADYCACABQRhqIQADQCAAQQc2AgQgAEEIaiEMIABBBGohACAMIAVJDQALIAEgA0YNACABIAEoAgRBfnE2AgQgAyABIANrIgJBAXI2AgQgASACNgIAAn8gAkH/AU0EQCACQXhxQdTzAGohAAJ/QazzACgCACIBQQEgAkEDdnQiAnFFBEBBrPMAIAEgAnI2AgAgAAwBCyAAKAIICyEBIAAgAzYCCCABIAM2AgxBDCECQQgMAQtBHyEAIAJB////B00EQCACQSYgAkEIdmciAGt2QQFxIABBAXRrQT5qIQALIAMgADYCHCADQgA3AhAgAEECdEHc9QBqIQECQAJAQbDzACgCACIFQQEgAHQiBHFFBEBBsPMAIAQgBXI2AgAgASADNgIADAELIAJBGSAAQQF2a0EAIABBH0cbdCEAIAEoAgAhBQNAIAUiASgCBEF4cSACRg0CIABBHXYhBSAAQQF0IQAgASAFQQRxaiIEKAIQIgUNAAsgBCADNgIQCyADIAE2AhhBCCECIAMiASEAQQwMAQsgASgCCCIAIAM2AgwgASADNgIIIAMgADYCCEEAIQBBGCECQQwLIANqIAE2AgAgAiADaiAANgIAC0G48wAoAgAiACAGTQ0AQbjzACAAIAZrIgE2AgBBxPMAQcTzACgCACIAIAZqIgI2AgAgAiABQQFyNgIEIAAgBkEDcjYCBCAAQQhqIQAMBAtBqPMAQTA2AgBBACEADAMLIAAgAjYCACAAIAAoAgQgBGo2AgQgAkF4IAJrQQdxaiIIIAZBA3I2AgQgAUF4IAFrQQdxaiIEIAYgCGoiA2shBwJAQcTzACgCACAERgRAQcTzACADNgIAQbjzAEG48wAoAgAgB2oiADYCACADIABBAXI2AgQMAQtBwPMAKAIAIARGBEBBwPMAIAM2AgBBtPMAQbTzACgCACAHaiIANgIAIAMgAEEBcjYCBCAAIANqIAA2AgAMAQsgBCgCBCIAQQNxQQFGBEAgAEF4cSEJIAQoAgwhAgJAIABB/wFNBEAgBCgCCCIBIAJGBEBBrPMAQazzACgCAEF+IABBA3Z3cTYCAAwCCyABIAI2AgwgAiABNgIIDAELIAQoAhghBgJAIAIgBEcEQCAEKAIIIgAgAjYCDCACIAA2AggMAQsCQCAEKAIUIgAEfyAEQRRqBSAEKAIQIgBFDQEgBEEQagshAQNAIAEhBSAAIgJBFGohASAAKAIUIgANACACQRBqIQEgAigCECIADQALIAVBADYCAAwBC0EAIQILIAZFDQACQCAEKAIcIgBBAnRB3PUAaiIBKAIAIARGBEAgASACNgIAIAINAUGw8wBBsPMAKAIAQX4gAHdxNgIADAILIAZBEEEUIAYoAhAgBEYbaiACNgIAIAJFDQELIAIgBjYCGCAEKAIQIgAEQCACIAA2AhAgACACNgIYCyAEKAIUIgBFDQAgAiAANgIUIAAgAjYCGAsgByAJaiEHIAQgCWoiBCgCBCEACyAEIABBfnE2AgQgAyAHQQFyNgIEIAMgB2ogBzYCACAHQf8BTQRAIAdBeHFB1PMAaiEAAn9BrPMAKAIAIgFBASAHQQN2dCICcUUEQEGs8wAgASACcjYCACAADAELIAAoAggLIQEgACADNgIIIAEgAzYCDCADIAA2AgwgAyABNgIIDAELQR8hAiAHQf///wdNBEAgB0EmIAdBCHZnIgBrdkEBcSAAQQF0a0E+aiECCyADIAI2AhwgA0IANwIQIAJBAnRB3PUAaiEAAkACQEGw8wAoAgAiAUEBIAJ0IgVxRQRAQbDzACABIAVyNgIAIAAgAzYCAAwBCyAHQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQEDQCABIgAoAgRBeHEgB0YNAiACQR12IQEgAkEBdCECIAAgAUEEcWoiBSgCECIBDQALIAUgAzYCEAsgAyAANgIYIAMgAzYCDCADIAM2AggMAQsgACgCCCIBIAM2AgwgACADNgIIIANBADYCGCADIAA2AgwgAyABNgIICyAIQQhqIQAMAgsCQCAIRQ0AAkAgBSgCHCIBQQJ0Qdz1AGoiAigCACAFRgRAIAIgADYCACAADQFBsPMAIAdBfiABd3EiBzYCAAwCCyAIQRBBFCAIKAIQIAVGG2ogADYCACAARQ0BCyAAIAg2AhggBSgCECIBBEAgACABNgIQIAEgADYCGAsgBSgCFCIBRQ0AIAAgATYCFCABIAA2AhgLAkAgA0EPTQRAIAUgAyAGaiIAQQNyNgIEIAAgBWoiACAAKAIEQQFyNgIEDAELIAUgBkEDcjYCBCAFIAZqIgQgA0EBcjYCBCADIARqIAM2AgAgA0H/AU0EQCADQXhxQdTzAGohAAJ/QazzACgCACIBQQEgA0EDdnQiAnFFBEBBrPMAIAEgAnI2AgAgAAwBCyAAKAIICyEBIAAgBDYCCCABIAQ2AgwgBCAANgIMIAQgATYCCAwBC0EfIQAgA0H///8HTQRAIANBJiADQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAAsgBCAANgIcIARCADcCECAAQQJ0Qdz1AGohAQJAAkAgB0EBIAB0IgJxRQRAQbDzACACIAdyNgIAIAEgBDYCACAEIAE2AhgMAQsgA0EZIABBAXZrQQAgAEEfRxt0IQAgASgCACEBA0AgASICKAIEQXhxIANGDQIgAEEddiEBIABBAXQhACACIAFBBHFqIgcoAhAiAQ0ACyAHIAQ2AhAgBCACNgIYCyAEIAQ2AgwgBCAENgIIDAELIAIoAggiACAENgIMIAIgBDYCCCAEQQA2AhggBCACNgIMIAQgADYCCAsgBUEIaiEADAELAkAgCUUNAAJAIAIoAhwiAUECdEHc9QBqIgUoAgAgAkYEQCAFIAA2AgAgAA0BQbDzACALQX4gAXdxNgIADAILIAlBEEEUIAkoAhAgAkYbaiAANgIAIABFDQELIAAgCTYCGCACKAIQIgEEQCAAIAE2AhAgASAANgIYCyACKAIUIgFFDQAgACABNgIUIAEgADYCGAsCQCADQQ9NBEAgAiADIAZqIgBBA3I2AgQgACACaiIAIAAoAgRBAXI2AgQMAQsgAiAGQQNyNgIEIAIgBmoiBSADQQFyNgIEIAMgBWogAzYCACAIBEAgCEF4cUHU8wBqIQBBwPMAKAIAIQECf0EBIAhBA3Z0IgcgBHFFBEBBrPMAIAQgB3I2AgAgAAwBCyAAKAIICyEEIAAgATYCCCAEIAE2AgwgASAANgIMIAEgBDYCCAtBwPMAIAU2AgBBtPMAIAM2AgALIAJBCGohAAsgCkEQaiQAIAAL1AQBCX8CfyAALQALQQd2BEAgACgCBAwBCyAALQALQf8AcQsiAiABSQRAIwBBEGsiBiQAIAEgAmsiBQRAIAUgAC0AC0EHdgR/IAAoAghB/////wdxQQFrBUEKCyICAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0AC0H/AHELIgFrSwRAIwBBEGsiBCQAAkAgBSACayABaiIDQff///8HIAJrTQRAAn8gAC0AC0EHdgRAIAAoAgAMAQsgAAshByAEQQRqIgggAkHz////A0kEfyAEIAJBAXQ2AgwgBCACIANqNgIEIwBBEGsiAyQAIAgoAgAgBEEMaiIJKAIASSEKIANBEGokACAJIAggChsoAgAiA0ELTwR/IANBCGpBeHEiAyADQQFrIgMgA0ELRhsFQQoLQQFqBUH3////BwsQLSAEKAIEIQMgBCgCCBogAQRAIAMgByABECMLIAJBCkcEQCAHEBkLIAAgAzYCACAAIAAoAghBgICAgHhxIAQoAghB/////wdxcjYCCCAAIAAoAghBgICAgHhyNgIIIARBEGokAAwBCxAmAAsgACABNgIECyABAn8gAC0AC0EHdgRAIAAoAgAMAQsgAAsiAmogBRBCIAAgASAFaiIAEC4gBkEAOgAPIAAgAmogBi0ADzoAAAsgBkEQaiQADwsCfyAALQALQQd2BEAgACgCAAwBCyAACyEEIwBBEGsiAiQAAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0ACwsaIAAgARAuIAJBADoADyABIARqIAItAA86AAAgAkEQaiQACxgBAX8gARAbIQIgACABNgIEIAAgAjYCAAs4ACAALQALQQd2BEAgACABNgIEDwsgACAALQALQYABcSABQf8AcXI6AAsgACAALQALQf8AcToACwvVAgECfwJAIAAgAUYNACABIAAgAmoiBGtBACACQQF0a00EQCAAIAEgAhAiGg8LIAAgAXNBA3EhAwJAAkAgACABSQRAIAMNAiAAQQNxRQ0BA0AgAkUNBCAAIAEtAAA6AAAgAUEBaiEBIAJBAWshAiAAQQFqIgBBA3ENAAsMAQsCQCADDQAgBEEDcQRAA0AgAkUNBSAAIAJBAWsiAmoiAyABIAJqLQAAOgAAIANBA3ENAAsLIAJBA00NAANAIAAgAkEEayICaiABIAJqKAIANgIAIAJBA0sNAAsLIAJFDQIDQCAAIAJBAWsiAmogASACai0AADoAACACDQALDAILIAJBA00NAANAIAAgASgCADYCACABQQRqIQEgAEEEaiEAIAJBBGsiAkEDSw0ACwsgAkUNAANAIAAgAS0AADoAACAAQQFqIQAgAUEBaiEBIAJBAWsiAg0ACwsLGwAgACABQcCEPW4iABAlIAEgAEHAhD1saxAxCxsAIAAgAUGQzgBuIgAQJSABIABBkM4AbGsQMgsZACAAIAFB5ABuIgAQJSABIABB5ABsaxAlC60CAQd/An8gARApIQMjAEEQayIGJAACfyAALQALQQd2BEAgACgCBAwBCyAALQALQf8AcQsiBEEATwRAAkAgAyAALQALQQd2BH8gACgCCEH/////B3FBAWsFQQoLIgIgBGtNBEAgA0UNAQJ/IAAtAAtBB3YEQCAAKAIADAELIAALIgUgBAR/IwBBEGsiAiQAIAIgBCAFajYCCCACIAU2AgwgAiABNgIEIAIoAgQiCCACKAIMTwRAIAIoAgggCEshBwsgAkEQaiQAIAMgBWogBSAEEDQgASADQQAgBxtqBSABCyADEDQgACADIARqIgEQLiAGQQA6AA8gASAFaiAGLQAPOgAADAELIAAgAiADIARqIAJrIARBACADIAEQRQsgBkEQaiQAIAAMAQsQJgALCw8AIAIEQCAAIAEgAhAvCwvHBAMDfAN/An4CfAJAIAC9QjSIp0H/D3EiBUHJB2tBP0kEQCAFIQQMAQsgBUHJB0kEQCAARAAAAAAAAPA/oA8LIAVBiQhJDQBEAAAAAAAAAAAgAL0iB0KAgICAgICAeFENARogBUH/D08EQCAARAAAAAAAAPA/oA8LIAdCAFMEQCMAQRBrIgREAAAAAAAAABA5AwggBCsDCEQAAAAAAAAAEKIPCyMAQRBrIgREAAAAAAAAAHA5AwggBCsDCEQAAAAAAAAAcKIPC0GoygArAwAgAKJBsMoAKwMAIgGgIgIgAaEiAUHAygArAwCiIAFBuMoAKwMAoiAAoKAiASABoiIAIACiIAFB4MoAKwMAokHYygArAwCgoiAAIAFB0MoAKwMAokHIygArAwCgoiACvSIHp0EEdEHwD3EiBUGYywBqKwMAIAGgoKAhASAFQaDLAGopAwAgB0IthnwhCCAERQRAAnwgB0KAgICACINQBEAgCEKAgICAgICAiD99vyIAIAGiIACgRAAAAAAAAAB/ogwBCyAIQoCAgICAgIDwP3y/IgIgAaIiASACoCIDRAAAAAAAAPA/YwR8IwBBEGsiBCEGIARCgICAgICAgAg3AwggBiAEKwMIRAAAAAAAABAAojkDCEQAAAAAAAAAACADRAAAAAAAAPA/oCIAIAEgAiADoaAgA0QAAAAAAADwPyAAoaCgoEQAAAAAAADwv6AiACAARAAAAAAAAAAAYRsFIAMLRAAAAAAAABAAogsPCyAIvyIAIAGiIACgCwsIAEGpChBTAAtwAEGg6QBBFzYCAEGk6QBBADYCABBXQaTpAEHQ6QAoAgA2AgBB0OkAQaDpADYCAEHU6QBBGDYCAEHY6QBBADYCABBSQdjpAEHQ6QAoAgA2AgBB0OkAQdTpADYCAEH06gBB/OkANgIAQazqAEEqNgIACwsAIAAQORogABAZCzIBAn8gAEGM5wA2AgAgACgCBEEMayIBIAEoAghBAWsiAjYCCCACQQBIBEAgARAZCyAAC5oBACAAQQE6ADUCQCAAKAIEIAJHDQAgAEEBOgA0AkAgACgCECICRQRAIABBATYCJCAAIAM2AhggACABNgIQIANBAUcNAiAAKAIwQQFGDQEMAgsgASACRgRAIAAoAhgiAkECRgRAIAAgAzYCGCADIQILIAAoAjBBAUcNAiACQQFGDQEMAgsgACAAKAIkQQFqNgIkCyAAQQE6ADYLC0wBAX8CQCABRQ0AIAFBnOMAECEiAUUNACABKAIIIAAoAghBf3NxDQAgACgCDCABKAIMQQAQHkUNACAAKAIQIAEoAhBBABAeIQILIAILdgEBfyAAKAIkIgNFBEAgACACNgIYIAAgATYCECAAQQE2AiQgACAAKAI4NgIUDwsCQAJAIAAoAhQgACgCOEcNACAAKAIQIAFHDQAgACgCGEECRw0BIAAgAjYCGA8LIABBAToANiAAQQI2AhggACADQQFqNgIkCwtTAQN/IwBBEGsiAiQAIAEgACgCBCIDQQF1aiEBIAAoAgAhACACQQhqIAEgA0EBcQR/IAEoAgAgAGooAgAFIAALEQAAIAIoAgwhBCACQRBqJAAgBAtfAQF/IwBBEGsiAiQAIAEtAAsaIAAgASkCADcCACAAIAEoAgg2AgggAUIANwIAIAFBADYCCCAALQALQQd2IgFFBEACfyABBEAgACgCBAwBCyAALQALCxoLIAJBEGokAAsIACAAIAEQLAtDAQF/IwBBEGsiASQAIABCADcCACAAQQA2AgggAUEQaiQAIAAgAC0AC0EHdgR/IAAoAghB/////wdxQQFrBUEKCxAsC+0FAQd/IwBBIGsiAyQAAkAgA0EVaiIGIgIgA0EgaiIIIgVGDQAgAUEATg0AIAJBLToAACACQQFqIQJBACABayEBCyADAn8gBSACayIHQQlMBEBBPSAHQSAgAUEBcmdrQdEJbEEMdSIEIARBAnRBgN8AaigCACABTWpIDQEaCwJ/IAFBv4Q9TQRAIAFBj84ATQRAIAFB4wBNBEAgAUEJTQRAIAIgAUEwajoAACACQQFqDAQLIAIgARAlDAMLIAFB5wdNBEAgAiABQeQAbiIEQTBqOgAAIAJBAWogASAEQeQAbGsQJQwDCyACIAEQMgwCCyABQZ+NBk0EQCACIAFBkM4AbiIEQTBqOgAAIAJBAWogASAEQZDOAGxrEDIMAgsgAiABEDEMAQsgAUH/wdcvTQRAIAFB/6ziBE0EQCACIAFBwIQ9biIEQTBqOgAAIAJBAWogASAEQcCEPWxrEDEMAgsgAiABEDAMAQsgAUH/k+vcA00EQCACIAFBgMLXL24iBEEwajoAACACQQFqIAEgBEGAwtcvbGsQMAwBCyACIAFBgMLXL24iAhAlIAEgAkGAwtcvbGsQMAshBUEACzYCECADIAU2AgwgAygCDCEHIwBBEGsiBCQAIwBBEGsiAyQAIAAhAQJAIAcgBiIAayIFQff///8HTQRAAkAgBUELSQRAIAEgAS0AC0GAAXEgBUH/AHFyOgALIAEgAS0AC0H/AHE6AAsgASECDAELIANBCGogBUELTwR/IAVBCGpBeHEiBiAGQQFrIgYgBkELRhsFQQoLQQFqEC0gAygCDBogASADKAIIIgI2AgAgASABKAIIQYCAgIB4cSADKAIMQf////8HcXI2AgggASABKAIIQYCAgIB4cjYCCCABIAU2AgQLA0AgACAHRwRAIAIgAC0AADoAACACQQFqIQIgAEEBaiEADAELCyADQQA6AAcgAiADLQAHOgAAIANBEGokAAwBCxAmAAsgBEEQaiQAIAgkAAs9AQF/IwBBEGsiAiQAIAJBADoADwNAIAEEQCAAIAItAA86AAAgAUEBayEBIABBAWohAAwBCwsgAkEQaiQACxoAIAAtAAtBB3YEQCAAKAIIGiAAKAIAEBkLC+YBAQV/IwBBEGsiBSQAIwBBIGsiAyQAIwBBEGsiBCQAIAQgADYCDCAEIAAgAWo2AgggAyAEKAIMNgIYIAMgBCgCCDYCHCAEQRBqJAAgAygCGCEEIAMoAhwhBiMAQRBrIgEkACABIAY2AgwgAiAEIAYgBGsiBBA0IAEgAiAEajYCCCADIAEoAgw2AhAgAyABKAIINgIUIAFBEGokACADIAAgAygCECAAa2o2AgwgAyACIAMoAhQgAmtqNgIIIAUgAygCDDYCCCAFIAMoAgg2AgwgA0EgaiQAIAUoAgwhByAFQRBqJAAgBwvzAgEFfyMAQRBrIgckACACIAFBf3NB9////wdqTQRAAn8gAC0AC0EHdgRAIAAoAgAMAQsgAAshCCAHQQRqIgkgAUHz////A0kEfyAHIAFBAXQ2AgwgByABIAJqNgIEIwBBEGsiAiQAIAkoAgAgB0EMaiIKKAIASSELIAJBEGokACAKIAkgCxsoAgAiAkELTwR/IAJBCGpBeHEiAiACQQFrIgIgAkELRhsFQQoLQQFqBUH3////BwsQLSAHKAIEIQIgBygCCBogBARAIAIgCCAEECMLIAUEQCACIARqIAYgBRAjCyADIARrIQYgAyAERwRAIAIgBGogBWogBCAIaiAGECMLIAFBCkcEQCAIEBkLIAAgAjYCACAAIAAoAghBgICAgHhxIAcoAghB/////wdxcjYCCCAAIAAoAghBgICAgHhyNgIIIAAgBCAFaiAGaiIANgIEIAdBADoADCAAIAJqIActAAw6AAAgB0EQaiQADwsQJgALnwEBBH8jAEEQayIEJAAgBCACNgIMIwBBoAFrIgMkACADIAAgA0GeAWogARsiBTYClAEgAyABQQFrIgBBACAAIAFNGzYCmAEgA0EAQZABECQiAEF/NgJMIABBHjYCJCAAQX82AlAgACAAQZ8BajYCLCAAIABBlAFqNgJUIAVBADoAACAAQeQKIAJBHRBNIQYgAEGgAWokACAEQRBqJAAgBgsEACAAC5kCACAARQRAQQAPCwJ/AkAgAAR/IAFB/wBNDQECQEH06gAoAgAoAgBFBEAgAUGAf3FBgL8DRg0DDAELIAFB/w9NBEAgACABQT9xQYABcjoAASAAIAFBBnZBwAFyOgAAQQIMBAsgAUGAQHFBgMADRyABQYCwA09xRQRAIAAgAUE/cUGAAXI6AAIgACABQQx2QeABcjoAACAAIAFBBnZBP3FBgAFyOgABQQMMBAsgAUGAgARrQf//P00EQCAAIAFBP3FBgAFyOgADIAAgAUESdkHwAXI6AAAgACABQQZ2QT9xQYABcjoAAiAAIAFBDHZBP3FBgAFyOgABQQQMBAsLQajzAEEZNgIAQX8FQQELDAELIAAgAToAAEEBCwuMGAMTfwF8A34jAEGwBGsiDCQAIAxBADYCLAJAIAG9IhpCAFMEQEEBIRBBlAghEyABmiIBvSEaDAELIARBgBBxBEBBASEQQZcIIRMMAQtBmghBlQggBEEBcSIQGyETIBBFIRULAkAgGkKAgICAgICA+P8Ag0KAgICAgICA+P8AUQRAIABBICACIBBBA2oiAyAEQf//e3EQHyAAIBMgEBAdIABBwglBjQsgBUEgcSIFG0HgCkGRCyAFGyABIAFiG0EDEB0gAEEgIAIgAyAEQYDAAHMQHyADIAIgAiADSBshCgwBCyAMQRBqIRECQAJ/AkAgASAMQSxqEE4iASABoCIBRAAAAAAAAAAAYgRAIAwgDCgCLCIGQQFrNgIsIAVBIHIiDkHhAEcNAQwDCyAFQSByIg5B4QBGDQIgDCgCLCEJQQYgAyADQQBIGwwBCyAMIAZBHWsiCTYCLCABRAAAAAAAALBBoiEBQQYgAyADQQBIGwshCyAMQTBqQaACQQAgCUEAThtqIg0hBwNAIAcCfyABRAAAAAAAAPBBYyABRAAAAAAAAAAAZnEEQCABqwwBC0EACyIDNgIAIAdBBGohByABIAO4oUQAAAAAZc3NQaIiAUQAAAAAAAAAAGINAAsCQCAJQQBMBEAgCSEDIAchBiANIQgMAQsgDSEIIAkhAwNAQR0gAyADQR1PGyEDAkAgB0EEayIGIAhJDQAgA60hHEIAIRoDQCAGIBpC/////w+DIAY1AgAgHIZ8IhsgG0KAlOvcA4AiGkKAlOvcA359PgIAIAZBBGsiBiAITw0ACyAbQoCU69wDVA0AIAhBBGsiCCAaPgIACwNAIAggByIGSQRAIAZBBGsiBygCAEUNAQsLIAwgDCgCLCADayIDNgIsIAYhByADQQBKDQALCyADQQBIBEAgC0EZakEJbkEBaiEPIA5B5gBGIRIDQEEJQQAgA2siAyADQQlPGyEKAkAgBiAITQRAIAgoAgBFQQJ0IQcMAQtBgJTr3AMgCnYhFEF/IAp0QX9zIRZBACEDIAghBwNAIAcgAyAHKAIAIhcgCnZqNgIAIBYgF3EgFGwhAyAHQQRqIgcgBkkNAAsgCCgCAEVBAnQhByADRQ0AIAYgAzYCACAGQQRqIQYLIAwgDCgCLCAKaiIDNgIsIA0gByAIaiIIIBIbIgcgD0ECdGogBiAGIAdrQQJ1IA9KGyEGIANBAEgNAAsLQQAhAwJAIAYgCE0NACANIAhrQQJ1QQlsIQNBCiEHIAgoAgAiCkEKSQ0AA0AgA0EBaiEDIAogB0EKbCIHTw0ACwsgCyADQQAgDkHmAEcbayAOQecARiALQQBHcWsiByAGIA1rQQJ1QQlsQQlrSARAIAxBMGpBhGBBpGIgCUEASBtqIAdBgMgAaiIKQQltIg9BAnRqIQlBCiEHIAogD0EJbGsiCkEHTARAA0AgB0EKbCEHIApBAWoiCkEIRw0ACwsCQCAJKAIAIhIgEiAHbiIPIAdsayIKRSAJQQRqIhQgBkZxDQACQCAPQQFxRQRARAAAAAAAAEBDIQEgB0GAlOvcA0cNASAIIAlPDQEgCUEEay0AAEEBcUUNAQtEAQAAAAAAQEMhAQtEAAAAAAAA4D9EAAAAAAAA8D9EAAAAAAAA+D8gBiAURhtEAAAAAAAA+D8gCiAHQQF2IhRGGyAKIBRJGyEZAkAgFQ0AIBMtAABBLUcNACAZmiEZIAGaIQELIAkgEiAKayIKNgIAIAEgGaAgAWENACAJIAcgCmoiAzYCACADQYCU69wDTwRAA0AgCUEANgIAIAggCUEEayIJSwRAIAhBBGsiCEEANgIACyAJIAkoAgBBAWoiAzYCACADQf+T69wDSw0ACwsgDSAIa0ECdUEJbCEDQQohByAIKAIAIgpBCkkNAANAIANBAWohAyAKIAdBCmwiB08NAAsLIAlBBGoiByAGIAYgB0sbIQYLA0AgBiIHIAhNIgpFBEAgBkEEayIGKAIARQ0BCwsCQCAOQecARwRAIARBCHEhCQwBCyADQX9zQX8gC0EBIAsbIgYgA0ogA0F7SnEiCRsgBmohC0F/QX4gCRsgBWohBSAEQQhxIgkNAEF3IQYCQCAKDQAgB0EEaygCACIORQ0AQQohCkEAIQYgDkEKcA0AA0AgBiIJQQFqIQYgDiAKQQpsIgpwRQ0ACyAJQX9zIQYLIAcgDWtBAnVBCWwhCiAFQV9xQcYARgRAQQAhCSALIAYgCmpBCWsiBkEAIAZBAEobIgYgBiALShshCwwBC0EAIQkgCyADIApqIAZqQQlrIgZBACAGQQBKGyIGIAYgC0obIQsLQX8hCiALQf3///8HQf7///8HIAkgC3IiEhtKDQEgCyASQQBHakEBaiEOAkAgBUFfcSIVQcYARgRAIAMgDkH/////B3NKDQMgA0EAIANBAEobIQYMAQsgESADIANBH3UiBnMgBmutIBEQKCIGa0EBTARAA0AgBkEBayIGQTA6AAAgESAGa0ECSA0ACwsgBkECayIPIAU6AAAgBkEBa0EtQSsgA0EASBs6AAAgESAPayIGIA5B/////wdzSg0CCyAGIA5qIgMgEEH/////B3NKDQEgAEEgIAIgAyAQaiIDIAQQHyAAIBMgEBAdIABBMCACIAMgBEGAgARzEB8CQAJAAkAgFUHGAEYEQCAMQRBqQQlyIQUgDSAIIAggDUsbIgkhCANAIAg1AgAgBRAoIQYCQCAIIAlHBEAgBiAMQRBqTQ0BA0AgBkEBayIGQTA6AAAgBiAMQRBqSw0ACwwBCyAFIAZHDQAgBkEBayIGQTA6AAALIAAgBiAFIAZrEB0gCEEEaiIIIA1NDQALIBIEQCAAQYURQQEQHQsgByAITQ0BIAtBAEwNAQNAIAg1AgAgBRAoIgYgDEEQaksEQANAIAZBAWsiBkEwOgAAIAYgDEEQaksNAAsLIAAgBkEJIAsgC0EJThsQHSALQQlrIQYgCEEEaiIIIAdPDQMgC0EJSiEYIAYhCyAYDQALDAILAkAgC0EASA0AIAcgCEEEaiAHIAhLGyENIAxBEGpBCXIhBSAIIQcDQCAFIAc1AgAgBRAoIgZGBEAgBkEBayIGQTA6AAALAkAgByAIRwRAIAYgDEEQak0NAQNAIAZBAWsiBkEwOgAAIAYgDEEQaksNAAsMAQsgACAGQQEQHSAGQQFqIQYgCSALckUNACAAQYURQQEQHQsgACAGIAUgBmsiBiALIAYgC0gbEB0gCyAGayELIAdBBGoiByANTw0BIAtBAE4NAAsLIABBMCALQRJqQRJBABAfIAAgDyARIA9rEB0MAgsgCyEGCyAAQTAgBkEJakEJQQAQHwsgAEEgIAIgAyAEQYDAAHMQHyADIAIgAiADSBshCgwBCyATIAVBGnRBH3VBCXFqIQgCQCADQQtLDQBBDCADayEGRAAAAAAAADBAIRkDQCAZRAAAAAAAADBAoiEZIAZBAWsiBg0ACyAILQAAQS1GBEAgGSABmiAZoaCaIQEMAQsgASAZoCAZoSEBCyARIAwoAiwiBiAGQR91IgZzIAZrrSARECgiBkYEQCAGQQFrIgZBMDoAAAsgEEECciELIAVBIHEhDSAMKAIsIQcgBkECayIJIAVBD2o6AAAgBkEBa0EtQSsgB0EASBs6AAAgBEEIcSEGIAxBEGohBwNAIAciBQJ/IAGZRAAAAAAAAOBBYwRAIAGqDAELQYCAgIB4CyIHQfDeAGotAAAgDXI6AAAgASAHt6FEAAAAAAAAMECiIQECQCAFQQFqIgcgDEEQamtBAUcNAAJAIAYNACADQQBKDQAgAUQAAAAAAAAAAGENAQsgBUEuOgABIAVBAmohBwsgAUQAAAAAAAAAAGINAAtBfyEKQf3///8HIAsgESAJayIGaiINayADSA0AIABBICACIA0gA0ECaiAHIAxBEGoiB2siBSAFQQJrIANIGyAFIAMbIgpqIgMgBBAfIAAgCCALEB0gAEEwIAIgAyAEQYCABHMQHyAAIAcgBRAdIABBMCAKIAVrQQBBABAfIAAgCSAGEB0gAEEgIAIgAyAEQYDAAHMQHyADIAIgAiADSBshCgsgDEGwBGokACAKC7wCAAJAAkACQAJAAkACQAJAAkACQAJAAkAgAUEJaw4SAAgJCggJAQIDBAoJCgoICQUGBwsgAiACKAIAIgFBBGo2AgAgACABKAIANgIADwsgAiACKAIAIgFBBGo2AgAgACABMgEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMwEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMAAANwMADwsgAiACKAIAIgFBBGo2AgAgACABMQAANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAAALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC3MBBn8gACgCACIDLAAAQTBrIgFBCUsEQEEADwsDQEF/IQQgAkHMmbPmAE0EQEF/IAEgAkEKbCIFaiABIAVB/////wdzSxshBAsgACADQQFqIgU2AgAgAywAASEGIAQhAiAFIQMgBkEwayIBQQpJDQALIAILsRQCFX8BfiMAQUBqIgckACAHIAE2AjwgB0EnaiEVIAdBKGohEAJAAkACQAJAA0BBACEGA0AgASEMIAYgDUH/////B3NKDQIgBiANaiENAkACQAJAAkAgASIGLQAAIgoEQANAAkACQCAKQf8BcSIBRQRAIAYhAQwBCyABQSVHDQEgBiEKA0AgCi0AAUElRwRAIAohAQwCCyAGQQFqIQYgCi0AAiEYIApBAmoiASEKIBhBJUYNAAsLIAYgDGsiBiANQf////8HcyIWSg0JIAAEQCAAIAwgBhAdCyAGDQcgByABNgI8IAFBAWohBkF/IQ8CQCABLAABQTBrIghBCUsNACABLQACQSRHDQAgAUEDaiEGQQEhESAIIQ8LIAcgBjYCPEEAIQsCQCAGLAAAIgpBIGsiAUEfSwRAIAYhCAwBCyAGIQhBASABdCIBQYnRBHFFDQADQCAHIAZBAWoiCDYCPCABIAtyIQsgBiwAASIKQSBrIgFBIE8NASAIIQZBASABdCIBQYnRBHENAAsLAkAgCkEqRgRAAn8CQCAILAABQTBrIgFBCUsNACAILQACQSRHDQACfyAARQRAIAQgAUECdGpBCjYCAEEADAELIAMgAUEDdGooAgALIQ4gCEEDaiEBQQEMAQsgEQ0GIAhBAWohASAARQRAIAcgATYCPEEAIRFBACEODAMLIAIgAigCACIGQQRqNgIAIAYoAgAhDkEACyERIAcgATYCPCAOQQBODQFBACAOayEOIAtBgMAAciELDAELIAdBPGoQSyIOQQBIDQogBygCPCEBC0EAIQZBfyEJAn9BACABLQAAQS5HDQAaIAEtAAFBKkYEQAJ/AkAgASwAAkEwayIIQQlLDQAgAS0AA0EkRw0AIAFBBGohAQJ/IABFBEAgBCAIQQJ0akEKNgIAQQAMAQsgAyAIQQN0aigCAAsMAQsgEQ0GIAFBAmohAUEAIABFDQAaIAIgAigCACIIQQRqNgIAIAgoAgALIQkgByABNgI8IAlBAE4MAQsgByABQQFqNgI8IAdBPGoQSyEJIAcoAjwhAUEBCyESA0AgBiETQRwhCCABIhcsAAAiBkH7AGtBRkkNCyABQQFqIQEgBiATQTpsakHf2gBqLQAAIgZBAWtBCEkNAAsgByABNgI8AkAgBkEbRwRAIAZFDQwgD0EATgRAIABFBEAgBCAPQQJ0aiAGNgIADAwLIAcgAyAPQQN0aikDADcDMAwCCyAARQ0IIAdBMGogBiACIAUQSgwBCyAPQQBODQtBACEGIABFDQgLIAAtAABBIHENCyALQf//e3EiCiALIAtBgMAAcRshC0EAIQ9BigghFCAQIQgCQAJAAn8CQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIBcsAAAiBkFTcSAGIAZBD3FBA0YbIAYgExsiBkHYAGsOIQQWFhYWFhYWFhAWCQYQEBAWBhYWFhYCBQMWFgoWARYWBAALAkAgBkHBAGsOBxAWCxYQEBAACyAGQdMARg0LDBULIAcpAzAhG0GKCAwFC0EAIQYCQAJAAkACQAJAAkACQCATQf8BcQ4IAAECAwQcBQYcCyAHKAIwIA02AgAMGwsgBygCMCANNgIADBoLIAcoAjAgDaw3AwAMGQsgBygCMCANOwEADBgLIAcoAjAgDToAAAwXCyAHKAIwIA02AgAMFgsgBygCMCANrDcDAAwVC0EIIAkgCUEITRshCSALQQhyIQtB+AAhBgsgECEBIAcpAzAiG0IAUgRAIAZBIHEhDANAIAFBAWsiASAbp0EPcUHw3gBqLQAAIAxyOgAAIBtCD1YhGSAbQgSIIRsgGQ0ACwsgASEMIAcpAzBQDQMgC0EIcUUNAyAGQQR2QYoIaiEUQQIhDwwDCyAQIQEgBykDMCIbQgBSBEADQCABQQFrIgEgG6dBB3FBMHI6AAAgG0IHViEaIBtCA4ghGyAaDQALCyABIQwgC0EIcUUNAiAJIBAgAWsiAUEBaiABIAlIGyEJDAILIAcpAzAiG0IAUwRAIAdCACAbfSIbNwMwQQEhD0GKCAwBCyALQYAQcQRAQQEhD0GLCAwBC0GMCEGKCCALQQFxIg8bCyEUIBsgEBAoIQwLIBIgCUEASHENESALQf//e3EgCyASGyELAkAgBykDMCIbQgBSDQAgCQ0AIBAhDEEAIQkMDgsgCSAbUCAQIAxraiIBIAEgCUgbIQkMDQsgBykDMCEbDAsLAn9B/////wcgCSAJQf////8HTxsiCyIGQQBHIQgCQAJAAkAgBygCMCIBQZMRIAEbIgwiAUEDcUUNACAGRQ0AA0AgAS0AAEUNAiAGQQFrIgZBAEchCCABQQFqIgFBA3FFDQEgBg0ACwsgCEUNAQJAIAEtAABFDQAgBkEESQ0AA0BBgIKECCABKAIAIghrIAhyQYCBgoR4cUGAgYKEeEcNAiABQQRqIQEgBkEEayIGQQNLDQALCyAGRQ0BCwNAIAEgAS0AAEUNAhogAUEBaiEBIAZBAWsiBg0ACwtBAAsiASAMayALIAEbIgEgDGohCCAJQQBOBEAgCiELIAEhCQwMCyAKIQsgASEJIAgtAAANDwwLCyAHKQMwIhtCAFINAUIAIRsMCQsgCQRAIAcoAjAMAgtBACEGIABBICAOQQAgCxAfDAILIAdBADYCDCAHIBs+AgggByAHQQhqIgY2AjBBfyEJIAYLIQpBACEGA0ACQCAKKAIAIgxFDQAgB0EEaiAMEEgiDEEASA0PIAwgCSAGa0sNACAKQQRqIQogBiAMaiIGIAlJDQELC0E9IQggBkEASA0MIABBICAOIAYgCxAfIAZFBEBBACEGDAELQQAhCCAHKAIwIQoDQCAKKAIAIgxFDQEgB0EEaiIJIAwQSCIMIAhqIgggBksNASAAIAkgDBAdIApBBGohCiAGIAhLDQALCyAAQSAgDiAGIAtBgMAAcxAfIA4gBiAGIA5IGyEGDAgLIBIgCUEASHENCUE9IQggACAHKwMwIA4gCSALIAYQSSIGQQBODQcMCgsgBi0AASEKIAZBAWohBgwACwALIAANCSARRQ0DQQEhBgNAIAQgBkECdGooAgAiAARAIAMgBkEDdGogACACIAUQSkEBIQ0gBkEBaiIGQQpHDQEMCwsLQQEhDSAGQQpPDQkDQCAEIAZBAnRqKAIADQEgBkEBaiIGQQpHDQALDAkLQRwhCAwGCyAHIBs8ACdBASEJIBUhDCAKIQsLIAkgCCAMayIKIAkgCkobIgkgD0H/////B3NKDQNBPSEIIA4gCSAPaiIBIAEgDkgbIgYgFkoNBCAAQSAgBiABIAsQHyAAIBQgDxAdIABBMCAGIAEgC0GAgARzEB8gAEEwIAkgCkEAEB8gACAMIAoQHSAAQSAgBiABIAtBgMAAcxAfIAcoAjwhAQwBCwsLQQAhDQwDC0E9IQgLQajzACAINgIAC0F/IQ0LIAdBQGskACANC78CAQV/IwBB0AFrIgQkACAEIAI2AswBIARBoAFqIgJBAEEoECQaIAQgBCgCzAE2AsgBAkBBACABIARByAFqIARB0ABqIAIgAxBMQQBIBEBBfyEDDAELIAAoAkxBAEghCCAAIAAoAgAiB0FfcTYCAAJ/AkACQCAAKAIwRQRAIABB0AA2AjAgAEEANgIcIABCADcDECAAKAIsIQUgACAENgIsDAELIAAoAhANAQtBfyAAEE8NARoLIAAgASAEQcgBaiAEQdAAaiAEQaABaiADEEwLIQIgBQRAIABBAEEAIAAoAiQRAwAaIABBADYCMCAAIAU2AiwgAEEANgIcIAAoAhQhASAAQgA3AxAgAkF/IAEbIQILIAAgACgCACIAIAdBIHFyNgIAQX8gAiAAQSBxGyEDIAgNAAsgBEHQAWokACADC34CAX8BfiAAvSIDQjSIp0H/D3EiAkH/D0cEfCACRQRAIAEgAEQAAAAAAAAAAGEEf0EABSAARAAAAAAAAPBDoiABEE4hACABKAIAQUBqCzYCACAADwsgASACQf4HazYCACADQv////////+HgH+DQoCAgICAgIDwP4S/BSAACwtZAQF/IAAgACgCSCIBQQFrIAFyNgJIIAAoAgAiAUEIcQRAIAAgAUEgcjYCAEF/DwsgAEIANwIEIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhBBAAsCAAsoAQF/IwBBEGsiAiQAIAIgATYCDEGI6AAgACABQQAQTRogAkEQaiQAC4YEAEH84wBBiAsQFUGU5ABB7glBAUEAEBRBoOQAQa4JQQFBgH9B/wAQBkG45ABBpwlBAUGAf0H/ABAGQazkAEGlCUEBQQBB/wEQBkHE5ABBsAhBAkGAgH5B//8BEAZB0OQAQacIQQJBAEH//wMQBkHc5ABBvwhBBEGAgICAeEH/////BxAGQejkAEG2CEEEQQBBfxAGQfTkAEGXCkEEQYCAgIB4Qf////8HEAZBgOUAQY4KQQRBAEF/EAZBjOUAQc8IQoCAgICAgICAgH9C////////////ABBWQZjlAEHOCEIAQn8QVkGk5QBByAhBBBAOQbDlAEHtCkEIEA5B4MMAQbYKEA1BuMQAQY0PEA1BgMUAQQRBnAoQC0HMxQBBAkHCChALQZjGAEEEQdEKEAtBjMIAEBNBwMYAQQBByA4QAEHoxgBBAEGuDxAAQZDHAEEBQeYOEABBuMcAQQJBlQsQAEHgxwBBA0G0CxAAQYjIAEEEQdwLEABBsMgAQQVB+QsQAEHYyABBBEHTDxAAQYDJAEEFQfEPEABB6MYAQQBB3wwQAEGQxwBBAUG+DBAAQbjHAEECQaENEABB4McAQQNB/wwQAEGIyABBBEGnDhAAQbDIAEEFQYUOEABBqMkAQQhB5A0QAEHQyQBBCUHCDRAAQfjJAEEGQZ8MEABBoMoAQQdBmBAQAAtmAQN/QdgAECtB0ABqIgFB4OYANgIAIAFBjOcANgIAIAAQKSICQQ1qEBsiA0EANgIIIAMgAjYCBCADIAI2AgAgASADQQxqIAAgAkEBahAiNgIEIAFBvOcANgIAIAFB3OcAQRYQFgALqQEBAX8jAEEgayIDJAAgASgCBCIBQQlPBEAgARADCyADIAE2AhAgAigCBCIBQQlPBEAgARADCyADIAE2AhggA0EANgIMAkBBzOkALQAAQQFxBEBByOkAKAIAIQEMAQtBA0HswwBBABAFIQFBzOkAQQE6AABByOkAIAE2AgALIAEgACgCBEHwCCADQQxqIANBEGoQBBogAygCDCIABEAgABABCyADQSBqJAALggQCBH8BfCMAQRBrIgQkACAEIAI2AgggBEEANgIEAkBBtOkALQAAQQFxBEBBsOkAKAIAIQIMAQtBAkGMwwBBABAFIQJBtOkAQQE6AABBsOkAIAI2AgALAn8gAiABKAIEQYoJIARBBGogBEEIahAEIghEAAAAAAAA8EFjIAhEAAAAAAAAAABmcQRAIAirDAELQQALIQUgBCgCBCECIAAgBTYCBCAAQZTqADYCACACBEAgAhABCyMAQSBrIgIkACAAKAIEIgVBCU8EQCAFEAMLIAIgBTYCECADKAIEIAMsAAsiBSAFQQBIIgcbIgVBBGoQKyIGIAU2AgAgBkEEaiADKAIAIAMgBxsgBRAiGiACIAY2AhggAkEANgIMAkBBvOkALQAAQQFxBEBBuOkAKAIAIQMMAQtBA0GUwwBBABAFIQNBvOkAQQE6AABBuOkAIAM2AgALIAMgASgCBEH7CiACQQxqIAJBEGoQBBogAigCDCIDBEAgAxABCyACQSBqJAAgACgCBCIAQQlPBEAgABADCyAEIAA2AgggBEEANgIEAkBBrOkALQAAQQFxBEBBqOkAKAIAIQAMAQtBAkH8wgBBABAFIQBBrOkAQQE6AABBqOkAIAA2AgALIAAgASgCBEGXCSAEQQRqIARBCGoQBBogBCgCBCIABEAgABABCyAEQRBqJAALHAAgACABQQggAqcgAkIgiKcgA6cgA0IgiKcQDwvzAwECf0GowQBBvMEAQdjBAEEAQejBAEEBQevBAEEAQevBAEEAQf4QQe3BAEECEBhBqMEAQQJB8MEAQZTCAEEDQQQQF0EIEBsiAEEANgIEIABBBTYCAEEIEBsiAUEANgIEIAFBBjYCAEGowQBB6QhBjMIAQZTCAEEHIABBjMIAQZjCAEEIIAEQCkEIEBsiAEEANgIEIABBCTYCAEEIEBsiAUEANgIEIAFBCjYCAEGowQBB9ApBjMIAQZTCAEEHIABBjMIAQZjCAEEIIAEQCkEIEBsiAEEANgIEIABBCzYCAEEIEBsiAUEANgIEIAFBDDYCAEGowQBB1whBjMIAQZTCAEEHIABBjMIAQZjCAEEIIAEQCkEIEBsiAEEANgIEIABBDTYCAEGowQBBgAhBB0GgwgBBvMIAQQ4gAEEAQQAQB0EIEBsiAEEANgIEIABBDzYCAEGowQBB8wlBBkHQwgBB6MIAQRAgAEEAQQAQB0EIEBsiAEEANgIEIABBETYCAEGowQBBgApBAkHwwgBB+MIAQRIgAEEAQQAQB0EIEBsiAEEANgIEIABBEzYCAEGowQBB5wpBAkHwwgBB+MIAQRIgAEEAQQAQB0EIEBsiAEEANgIEIABBFDYCAEGowQBBwwhBAkGEwwBBlMIAQRUgAEEAQQAQBwsHACAAKAIECwUAQbMJCxYAIABFBEBBAA8LIABBrOIAECFBAEcLGgAgACABKAIIIAUQHgRAIAEgAiADIAQQOgsLNwAgACABKAIIIAUQHgRAIAEgAiADIAQQOg8LIAAoAggiACABIAIgAyAEIAUgACgCACgCFBEJAAunAQAgACABKAIIIAQQHgRAAkAgASgCBCACRw0AIAEoAhxBAUYNACABIAM2AhwLDwsCQCAAIAEoAgAgBBAeRQ0AAkAgAiABKAIQRwRAIAEoAhQgAkcNAQsgA0EBRw0BIAFBATYCIA8LIAEgAjYCFCABIAM2AiAgASABKAIoQQFqNgIoAkAgASgCJEEBRw0AIAEoAhhBAkcNACABQQE6ADYLIAFBBDYCLAsLiwIAIAAgASgCCCAEEB4EQAJAIAEoAgQgAkcNACABKAIcQQFGDQAgASADNgIcCw8LAkAgACABKAIAIAQQHgRAAkAgAiABKAIQRwRAIAEoAhQgAkcNAQsgA0EBRw0CIAFBATYCIA8LIAEgAzYCIAJAIAEoAixBBEYNACABQQA7ATQgACgCCCIAIAEgAiACQQEgBCAAKAIAKAIUEQkAIAEtADVBAUYEQCABQQM2AiwgAS0ANEUNAQwDCyABQQQ2AiwLIAEgAjYCFCABIAEoAihBAWo2AiggASgCJEEBRw0BIAEoAhhBAkcNASABQQE6ADYPCyAAKAIIIgAgASACIAMgBCAAKAIAKAIYEQgACwtsAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACAEQQFxBEAgASgCACAAaigCACEACyADIAI2AgwgA0GU6gA2AgggASADQQhqIAARAAAgAygCDCIAQQlPBEAgABACCyADQRBqJAALjQUBBH8jAEFAaiIEJAACQCABQYjkAEEAEB4EQCACQQA2AgBBASEFDAELAkAgACABIAAtAAhBGHEEf0EBBSABRQ0BIAFB/OEAECEiA0UNASADLQAIQRhxQQBHCxAeIQYLIAYEQEEBIQUgAigCACIARQ0BIAIgACgCADYCAAwBCwJAIAFFDQAgAUGs4gAQISIGRQ0BIAIoAgAiAQRAIAIgASgCADYCAAsgBigCCCIDIAAoAggiAUF/c3FBB3ENASADQX9zIAFxQeAAcQ0BQQEhBSAAKAIMIAYoAgxBABAeDQEgACgCDEH84wBBABAeBEAgBigCDCIARQ0CIABB4OIAECFFIQUMAgsgACgCDCIDRQ0AQQAhBSADQaziABAhIgEEQCAALQAIQQFxRQ0CAn8gBigCDCEAQQAhAgJAA0BBACAARQ0CGiAAQaziABAhIgNFDQEgAygCCCABKAIIQX9zcQ0BQQEgASgCDCADKAIMQQAQHg0CGiABLQAIQQFxRQ0BIAEoAgwiAEUNASAAQaziABAhIgEEQCADKAIMIQAMAQsLIABBnOMAECEiAEUNACAAIAMoAgwQOyECCyACCyEFDAILIANBnOMAECEiAQRAIAAtAAhBAXFFDQIgASAGKAIMEDshBQwCCyADQczhABAhIgFFDQEgBigCDCIARQ0BIABBzOEAECEiAEUNASACKAIAIQMgBEEIakEAQTgQJBogBCADQQBHOgA7IARBfzYCECAEIAE2AgwgBCAANgIEIARBATYCNCAAIARBBGogA0EBIAAoAgAoAhwRBgAgBCgCHCIAQQFGBEAgAiAEKAIUQQAgAxs2AgALIABBAUYhBQwBC0EAIQULIARBQGskACAFCzEAIAAgASgCCEEAEB4EQCABIAIgAxA8DwsgACgCCCIAIAEgAiADIAAoAgAoAhwRBgALGAAgACABKAIIQQAQHgRAIAEgAiADEDwLC6QBAQJ/IwBBQGoiAyQAAn9BASAAIAFBABAeDQAaQQAgAUUNABpBACABQczhABAhIgFFDQAaIANBCGpBAEE4ECQaIANBAToAOyADQX82AhAgAyAANgIMIAMgATYCBCADQQE2AjQgASADQQRqIAIoAgBBASABKAIAKAIcEQYAIAMoAhwiAEEBRgRAIAIgAygCFDYCAAsgAEEBRgshBCADQUBrJAAgBAsKACAAIAFBABAeC04CAX8BfCMAQRBrIgIkACACQQA2AgwgASgCBEGU5AAgAkEMahAJIQMgAigCDCIBBEAgARABCyAAIANEAAAAAAAAAABiOgA4IAJBEGokAAs3AQF/IwBBEGsiAiQAIAIgAS0AODYCCCAAQZTkACACQQhqEAg2AgQgAEGU6gA2AgAgAkEQaiQAC6gBAQV/IAAoAlQiAygCACEFIAMoAgQiBCAAKAIUIAAoAhwiB2siBiAEIAZJGyIGBEAgBSAHIAYQIhogAyADKAIAIAZqIgU2AgAgAyADKAIEIAZrIgQ2AgQLIAQgAiACIARLGyIEBEAgBSABIAQQIhogAyADKAIAIARqIgU2AgAgAyADKAIEIARrNgIECyAFQQA6AAAgACAAKAIsIgE2AhwgACABNgIUIAILBQAQEAALngEBAn8jAEEQayICJABBxAAQGyEBIAAoAgQiAEEJTwRAIAAQAwsgAiAANgIIIAFBjMIAIAJBCGoQCDYCBCABQZTqADYCACABQQI2AhwgAUGU6gA2AhggAUECNgIUIAFBlOoANgIQIAFBAjYCDCABQZTqADYCCCABQQA6ACAgAUKAgICAMDcCPCABQQA7ADcgAUEAOwArIAJBEGokACABC54FAgZ+BH8gASABKAIAQQdqQXhxIgFBEGo2AgAgACELIAEpAwAhAyABKQMIIQcjAEEgayIBJAAgB0L///////8/gyEFAn4gB0IwiEL//wGDIgSnIglBgfgAa0H9D00EQCAFQgSGIANCPIiEIQIgCUGA+ABrrSEEAkAgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILQgAgAiACQv////////8HViIAGyECIACtIAR8DAELAkAgAyAFhFANACAEQv//AVINACAFQgSGIANCPIiEQoCAgICAgIAEhCECQv8PDAELQv8PIAlB/ocBSw0AGkIAQYD4AEGB+AAgBFAiCBsiCiAJayIAQfAASg0AGiADIQIgBSAFQoCAgICAgMAAhCAIGyIEIQYCQEGAASAAayIIQcAAcQRAIAIgCEFAaq2GIQZCACECDAELIAhFDQAgBiAIrSIFhiACQcAAIAhrrYiEIQYgAiAFhiECCyABIAI3AxAgASAGNwMYAkAgAEHAAHEEQCAEIABBQGqtiCEDQgAhBAwBCyAARQ0AIARBwAAgAGuthiADIACtIgKIhCEDIAQgAoghBAsgASADNwMAIAEgBDcDCCABKQMIQgSGIAEpAwAiA0I8iIQhAgJAIAkgCkcgASkDECABKQMYhEIAUnGtIANC//////////8Pg4QiA0KBgICAgICAgAhaBEAgAkIBfCECDAELIANCgICAgICAgIAIUg0AIAJCAYMgAnwhAgsgAkKAgICAgICACIUgAiACQv////////8HViIAGyECIACtCyEDIAFBIGokACALIAdCgICAgICAgICAf4MgA0I0hoQgAoS/OQMAC0MBAn8jAEEQayICJAAgAiABNgIMIAJBlOoANgIIIAJBCGogABEBACEDIAIoAgwiAUEJTwRAIAEQAgsgAkEQaiQAIAMLBABCAAsEAEEAC/YCAQh/IwBBIGsiAyQAIAMgACgCHCIENgIQIAAoAhQhBSADIAI2AhwgAyABNgIYIAMgBSAEayIBNgIUIAEgAmohBUEC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AAJ/IAOZRAAAAAAAAOBBYwRAIAOqDAELQYCAgIB4CzYCQCACQRBqJAALNwEBfyMAQRBrIgIkACACIAEoAkA2AgggAEHc5AAgAkEIahAINgIEIABBlOoANgIAIAJBEGokAAtgAgF/AXwjAEEQayICJAAgAkEANgIMIAEoAgRB3OQAIAJBDGoQCSEDIAIoAgwiAQRAIAEQAQsgAAJ/IAOZRAAAAAAAAOBBYwRAIAOqDAELQYCAgIB4CzYCPCACQRBqJAALIgEBfiABIAKtIAOtQiCGhCAEIAARDAAiBUIgiKckASAFpws3AQF/IwBBEGsiAiQAIAIgASgCPDYCCCAAQdzkACACQQhqEAg2AgQgAEGU6gA2AgAgAkEQaiQACwu1XxUAQYAIC8Q6c2V0QmVhdXR5AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAdW5zaWduZWQgc2hvcnQAdW5zaWduZWQgaW50AGluaXQAZmxvYXQAdWludDY0X3QAYmx1clJhZGl1cwB2ZWN0b3IAbWlycm9yAGF0dGFjaFNoYWRlcgBkZWxldGVTaGFkZXIAY3JlYXRlU2hhZGVyAGNvbXBpbGVTaGFkZXIAdW5zaWduZWQgY2hhcgBzdGQ6OmV4Y2VwdGlvbgBuYW4AbGlua1Byb2dyYW0AZGVsZXRlUHJvZ3JhbQBjcmVhdGVQcm9ncmFtAGJvb2wAc2V0V2F0ZXJNYXJrAHN0b3BXYXRlck1hcmsAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgAlZgBjbG9zZQBkb3VibGUAdmJNb2RlAHNoYWRlclNvdXJjZQB2b2lkAE5BTgBJTkYAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ2NF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ2NF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AdmVjMiBjID0gdl90ZXhDb29yZDsAdmVjMiBjID0gdmVjMigxLjAgLSB2X3RleENvb3JkLngsIHZfdGV4Q29vcmQueSk7AEFsbEluMQAuAC4wLAAuMCkqbykqAChudWxsKQApKm8ueSk7ICAgIHZlYzIgY29vcmQyID0gdmVjMihmbG9hdCgAICAgIGMgPSB2ZWMyKHZfdGV4Q29vcmQueCwgMS4wIC0gdl90ZXhDb29yZC55KTsgICAgdmVjMiBjb29yZDEgPSB2ZWMyKGZsb2F0KAApLCAoYy55IC1jb29yZDEueSkgLyBvLnkgLyBmbG9hdCgAKSpvLnkpOyAgICBpZiAoYy54ID4gY29vcmQxLnggJiYgYy54IDwgY29vcmQyLnggJiYgYy55ID4gY29vcmQxLnkgJiYgYy55IDwgY29vcmQyLnkpIHsgICAgICB2ZWM0IHdhdGVyQ29sb3IgPSB0ZXh0dXJlKHdhdGVyTWFyaywgdmVjMigoYy54IC0gY29vcmQxLngpICAvIG8ueCAvIGZsb2F0KAApICogby54LCBmbG9hdCgAKTsgICAgb3V0Q29sb3IucmdiID0gdmVjMyhvdXRDb2xvci5yZ2IgKyB2ZWMzKABnKz1HKGMsdmVjMigAICAgIHZlYzIgb2Zmc2V0ID0gdmVjMigAKSwwLjAsMS4wKTsgICAgIHZlYzMgc2NyZWVuID0gdmVjMygxLjApIC0gKHZlYzMoMS4wKS1zbW9vdGhDb2xvcikgKiAodmVjMygxLjApLW91dENvbG9yLnJnYik7ICAgICB2ZWMzIGxpZ2h0ZW4gPSBtYXgoc21vb3RoQ29sb3IsIG91dENvbG9yLnJnYik7ICAgICB2ZWMzIHNvZnRMaWdodCA9IDIuMCAqIG91dENvbG9yLnJnYipzbW9vdGhDb2xvciArIG91dENvbG9yLnJnYipvdXRDb2xvci5yZ2IgLSAyLjAgKiBvdXRDb2xvci5yZ2Iqb3V0Q29sb3IucmdiICogc21vb3RoQ29sb3I7ICAgICBvdXRDb2xvciA9IHZlYzQobWl4KG91dENvbG9yLnJnYiwgc2NyZWVuLCBhbHBoYSksIDEuMCk7ICAgICBvdXRDb2xvci5yZ2IgPSBtaXgob3V0Q29sb3IucmdiLCBsaWdodGVuLCBhbHBoYSk7ICAgICBvdXRDb2xvci5yZ2IgPSBtaXgob3V0Q29sb3IucmdiLCBzb2Z0TGlnaHQsIAApOyAgICAgY29uc3QgbWF0MyBzYXR1cmF0ZU1hdHJpeCA9IG1hdDMoMS4xMTAyLC0wLjA1OTgsLTAuMDYxLC0wLjA3NzQsMS4wODI2LC0wLjExODYsLTAuMDIyOCwtMC4wMjI4LDEuMTc3Mik7ICAgIHZlYzMgc2F0Q29sb3IgPSBvdXRDb2xvci5yZ2IgKiBzYXR1cmF0ZU1hdHJpeDsgICAgb3V0Q29sb3IucmdiID0gbWl4KG91dENvbG9yLnJnYiwgc2F0Q29sb3IsIAApOyAgICAgdmVjMyBzbW9vdGhDb2xvciA9IG91dENvbG9yLnJnYiArIChvdXRDb2xvci5yZ2ItdmVjMyhoaWdoUGFzcykpKmFscGhhKjAuMTsgICAgIHNtb290aENvbG9yLnIgPSBjbGFtcChwb3coc21vb3RoQ29sb3IuciwgACksMC4wLDEuMCk7ICAgICBzbW9vdGhDb2xvci5nID0gY2xhbXAocG93KHNtb290aENvbG9yLmcsIAApOyAgICB2ZWMyIGJsdXJDb29yZGluYXRlc1syNF07ICAgIGJsdXJDb29yZGluYXRlc1swXSA9IHZfdGV4Q29vcmQueHkgKyBvZmZzZXQgKiB2ZWMyKDAuMCwgLTEwLjApOyAgICAgYmx1ckNvb3JkaW5hdGVzWzFdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoMC4wLCAxMC4wKTsgICAgIGJsdXJDb29yZGluYXRlc1syXSA9IHZfdGV4Q29vcmQueHkgKyBvZmZzZXQgKiB2ZWMyKC0xMC4wLCAwLjApOyAgICAgYmx1ckNvb3JkaW5hdGVzWzNdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoMTAuMCwgMC4wKTsgICAgIGJsdXJDb29yZGluYXRlc1s0XSA9IHZfdGV4Q29vcmQueHkgKyBvZmZzZXQgKiB2ZWMyKDUuMCwgLTguMCk7ICAgICBibHVyQ29vcmRpbmF0ZXNbNV0gPSB2X3RleENvb3JkLnh5ICsgb2Zmc2V0ICogdmVjMig1LjAsIDguMCk7ICAgICBibHVyQ29vcmRpbmF0ZXNbNl0gPSB2X3RleENvb3JkLnh5ICsgb2Zmc2V0ICogdmVjMigtNS4wLCA4LjApOyAgICAgYmx1ckNvb3JkaW5hdGVzWzddID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoLTUuMCwgLTguMCk7ICAgICBibHVyQ29vcmRpbmF0ZXNbOF0gPSB2X3RleENvb3JkLnh5ICsgb2Zmc2V0ICogdmVjMig4LjAsIC01LjApOyAgICAgYmx1ckNvb3JkaW5hdGVzWzldID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoOC4wLCA1LjApOyAgICAgYmx1ckNvb3JkaW5hdGVzWzEwXSA9IHZfdGV4Q29vcmQueHkgKyBvZmZzZXQgKiB2ZWMyKC04LjAsIDUuMCk7ICAgICBibHVyQ29vcmRpbmF0ZXNbMTFdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoLTguMCwgLTUuMCk7ICAgICBibHVyQ29vcmRpbmF0ZXNbMTJdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoMC4wLCAtNi4wKTsgICAgIGJsdXJDb29yZGluYXRlc1sxM10gPSB2X3RleENvb3JkLnh5ICsgb2Zmc2V0ICogdmVjMigwLjAsIDYuMCk7ICAgICBibHVyQ29vcmRpbmF0ZXNbMTRdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoNi4wLCAwLjApOyAgICAgYmx1ckNvb3JkaW5hdGVzWzE1XSA9IHZfdGV4Q29vcmQueHkgKyBvZmZzZXQgKiB2ZWMyKC02LjAsIDAuMCk7ICAgICBibHVyQ29vcmRpbmF0ZXNbMTZdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoLTQuMCwgLTQuMCk7ICAgICBibHVyQ29vcmRpbmF0ZXNbMTddID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoLTQuMCwgNC4wKTsgICAgIGJsdXJDb29yZGluYXRlc1sxOF0gPSB2X3RleENvb3JkLnh5ICsgb2Zmc2V0ICogdmVjMig0LjAsIC00LjApOyAgICAgYmx1ckNvb3JkaW5hdGVzWzE5XSA9IHZfdGV4Q29vcmQueHkgKyBvZmZzZXQgKiB2ZWMyKDQuMCwgNC4wKTsgICAgIGJsdXJDb29yZGluYXRlc1syMF0gPSB2X3RleENvb3JkLnh5ICsgb2Zmc2V0ICogdmVjMigtMi4wLCAtMi4wKTsgICAgIGJsdXJDb29yZGluYXRlc1syMV0gPSB2X3RleENvb3JkLnh5ICsgb2Zmc2V0ICogdmVjMigtMi4wLCAyLjApOyAgICAgYmx1ckNvb3JkaW5hdGVzWzIyXSA9IHZfdGV4Q29vcmQueHkgKyBvZmZzZXQgKiB2ZWMyKDIuMCwgLTIuMCk7ICAgICBibHVyQ29vcmRpbmF0ZXNbMjNdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoMi4wLCAyLjApOyAgICAgZmxvYXQgc2FtcGxlQ29sb3IgPSBvdXRDb2xvci5nICogMjIuMDsgICAgIHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1swXSkuZzsgICAgIHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sxXSkuZzsgICAgIHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1syXSkuZzsgICAgIHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1szXSkuZzsgICAgIHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1s0XSkuZzsgICAgIHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1s1XSkuZzsgICAgIHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1s2XSkuZzsgICAgIHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1s3XSkuZzsgICAgIHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1s4XSkuZzsgICAgIHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1s5XSkuZzsgICAgIHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sxMF0pLmc7ICAgICBzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbMTFdKS5nOyAgICAgc2FtcGxlQ29sb3IgKz0gdGV4dHVyZShmcmFtZSwgYmx1ckNvb3JkaW5hdGVzWzEyXSkuZyAqIDIuMDsgICAgIHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sxM10pLmcgKiAyLjA7ICAgICBzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbMTRdKS5nICogMi4wOyAgICAgc2FtcGxlQ29sb3IgKz0gdGV4dHVyZShmcmFtZSwgYmx1ckNvb3JkaW5hdGVzWzE1XSkuZyAqIDIuMDsgICAgIHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sxNl0pLmcgKiAyLjA7ICAgICBzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbMTddKS5nICogMi4wOyAgICAgc2FtcGxlQ29sb3IgKz0gdGV4dHVyZShmcmFtZSwgYmx1ckNvb3JkaW5hdGVzWzE4XSkuZyAqIDIuMDsgICAgIHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sxOV0pLmcgKiAyLjA7ICAgICBzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbMjBdKS5nICogMy4wOyAgICAgc2FtcGxlQ29sb3IgKz0gdGV4dHVyZShmcmFtZSwgYmx1ckNvb3JkaW5hdGVzWzIxXSkuZyAqIDMuMDsgICAgIHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1syMl0pLmcgKiAzLjA7ICAgICBzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbMjNdKS5nICogMy4wOyAgICAgc2FtcGxlQ29sb3IgPSBzYW1wbGVDb2xvciAvIDYyLjA7ICAgICBmbG9hdCBoaWdoUGFzcyA9IG91dENvbG9yLmcgLSBzYW1wbGVDb2xvciArIDAuNTsgICAgIGZvcihpbnQgaSA9IDA7IGkgPCA1OyBpKyspIHsgICAgICAgaWYgKGhpZ2hQYXNzIDw9IDAuNSkgeyAgICAgICAgIGhpZ2hQYXNzID0gaGlnaFBhc3MgKiBoaWdoUGFzcyAqIDIuMDsgICAgICAgfSBlbHNlIHsgICAgICAgICBoaWdoUGFzcyA9IDEuMCAtICgoMS4wIC0gaGlnaFBhc3MpKigxLjAgLSBoaWdoUGFzcykgKiAyLjApOyAgICAgICB9ICAgICB9ICAgICBjb25zdCBoaWdocCB2ZWMzIFcgPSB2ZWMzKDAuMjk5LDAuNTg3LDAuMTE0KTsgICAgZmxvYXQgbHVtaW5hbmNlID0gZG90KG91dENvbG9yLnJnYiwgVyk7ICAgICBmbG9hdCBhbHBoYSA9IHBvdyhsdW1pbmFuY2UsIAApLDAuMCwxLjApOyAgICAgc21vb3RoQ29sb3IuYiA9IGNsYW1wKHBvdyhzbW9vdGhDb2xvci5iLCAAKSk7ICAAKSkpOyAgICAgIG91dENvbG9yID0gbWl4KG91dENvbG9yLHdhdGVyQ29sb3IsICB3YXRlckNvbG9yLmEpOyAgICB9ICAgIAAjdmVyc2lvbiAzMDAgZXMKICAgIHByZWNpc2lvbiBoaWdocCBmbG9hdDsKICAgIHVuaWZvcm0gc2FtcGxlcjJEIGZyYW1lOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgbWFzazsKICAgIHVuaWZvcm0gc2FtcGxlcjJEIGJnOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgd2F0ZXJNYXJrOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgbGFzdE1hc2s7CiAgICBpbiB2ZWMyIHZfdGV4Q29vcmQ7CiAgICBvdXQgdmVjNCBvdXRDb2xvcjsKICAgIHZlYzQgRyh2ZWMyIGMsdmVjMiBzKXsKICAgICAgcmV0dXJuIHRleHR1cmUoZnJhbWUsdGV4dHVyZShtYXNrLGMrcykuYT4wLjM/YzpjK3MpOwogICAgfQogICAgdm9pZCBtYWluKCkgewogICAgICAACiAgICB2ZWM0IGcgPSB2ZWM0KDAuMCk7CiAgICAACiAgICAgIGMueSA9IDEuMCAtIGMueTsKICAgICAgdmVjNCBzcmNfY29sb3IgPSB0ZXh0dXJlKGZyYW1lLCBjKTsKICAgICAgZmxvYXQgYSA9IHRleHR1cmUobWFzaywgYykuYTsKICAgICAgYSA9IGE8MC41PzIuMCphKmE6MS4wLTIuMCooMS4wLWEpKigxLjAtYSk7CiAgICAgIC8vIGZsb2F0IGEyID0gdGV4dHVyZShsYXN0TWFzaywgYykuYTsKICAgICAgLy8gYTIgPSBhMjwwLjU/Mi4wKmEyKmEyOjEuMC0yLjAqKDEuMC1hMikqKDEuMC1hMik7CiAgICAgIC8vIGZsb2F0IGRlbHRhID0gYSAtIGEyOwogICAgICAvLyBpZiAoZGVsdGEgPCAwLjI1ICYmIGRlbHRhID4gLTAuMjUpCiAgICAgIC8vIHsKICAgICAgLy8gICAgIGEgPSBhICsgMC41KmRlbHRhOwogICAgICAvLyB9CiAgICAgIAogICAgICB2ZWMyIG8gPSAxLjAgLyB2ZWMyKHRleHR1cmVTaXplKGZyYW1lLCAwKSk7CiAgICAACiAgICAgIG91dENvbG9yID0gZzsKICAAI3ZlcnNpb24gMzAwIGVzCmluIHZlYzIgYV9wb3NpdGlvbjsKaW4gdmVjMiBhX3RleENvb3JkOwpvdXQgdmVjMiB2X3RleENvb3JkOwp2b2lkIG1haW4oKSB7CiAgZ2xfUG9zaXRpb24gPSB2ZWM0KGFfcG9zaXRpb24ueCwgYV9wb3NpdGlvbi55LCAwLCAxKTsKICB2X3RleENvb3JkID0gYV90ZXhDb29yZDsKfQoAZ2V0QmVhdXR5U2hhZGVyICVmICVmICVmCgBzZXRCZWF1dHkyMjIyICVmICVmCgBvdXRDb2xvciA9IHNyY19jb2xvcjsKAG91dENvbG9yID0gbWl4KHRleHR1cmUoYmcsIGMpLHNyY19jb2xvcixhKTsKAG91dENvbG9yID0gbWl4KHZlYzQoMC4wLDEuMCwwLjAsMS4wKSxzcmNfY29sb3IsYSk7CgA2QWxsSW4xAMAyAACgIAAAUDZBbGxJbjEAAAAARDMAALAgAAAAAAAAqCAAAFBLNkFsbEluMQAAAEQzAADMIAAAAQAAAKggAABwcAB2AHZwALwgAAAMIQAATjEwZW1zY3JpcHRlbjN2YWxFAADAMgAA+CAAAHBwcAB2cHBwAAAAAPwxAAC8IAAAsDIAALAyAACwMgAAsDIAALAyAAB2cHBkZGRkZABB0MIAC8gI/DEAALwgAACwMgAAsDIAALAyAACwMgAAdnBwZGRkZAD8MQAAvCAAAHZwcAD8MQAADCEAAAwhAAC8IAAADCEAAFwyAAD8MQAADCEAAOAhAABOU3QzX18yMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQAAwDIAAKAhAAAMIQAA/DEAAAwhAAAMIQAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWhOU18xMWNoYXJfdHJhaXRzSWhFRU5TXzlhbGxvY2F0b3JJaEVFRUUAAMAyAAD4IQAATlN0M19fMjEyYmFzaWNfc3RyaW5nSXdOU18xMWNoYXJfdHJhaXRzSXdFRU5TXzlhbGxvY2F0b3JJd0VFRUUAAMAyAABAIgAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURzTlNfMTFjaGFyX3RyYWl0c0lEc0VFTlNfOWFsbG9jYXRvcklEc0VFRUUAAADAMgAAiCIAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEaU5TXzExY2hhcl90cmFpdHNJRGlFRU5TXzlhbGxvY2F0b3JJRGlFRUVFAAAAwDIAANQiAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0ljRUUAAMAyAAAgIwAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJYUVFAADAMgAASCMAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWhFRQAAwDIAAHAjAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lzRUUAAMAyAACYIwAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJdEVFAADAMgAAwCMAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWlFRQAAwDIAAOgjAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lqRUUAAMAyAAAQJAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbEVFAADAMgAAOCQAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SW1FRQAAwDIAAGAkAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l4RUUAAMAyAACIJAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJeUVFAADAMgAAsCQAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWZFRQAAwDIAANgkAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lkRUUAAMAyAAAAJQAA/oIrZUcVZ0AAAAAAAAA4QwAA+v5CLna/OjuevJr3DL29/f/////fPzxUVVVVVcU/kSsXz1VVpT8X0KRnERGBPwAAAAAAAMhC7zn6/kIu5j8kxIL/vb/OP7X0DNcIa6w/zFBG0quygz+EOk6b4NdVPwBBpssAC7sQ8D9uv4gaTzubPDUz+6k99u8/XdzYnBNgcbxhgHc+muzvP9FmhxB6XpC8hX9u6BXj7z8T9mc1UtKMPHSFFdOw2e8/+o75I4DOi7ze9t0pa9DvP2HI5mFO92A8yJt1GEXH7z+Z0zNb5KOQPIPzxso+vu8/bXuDXaaalzwPiflsWLXvP/zv/ZIatY4890dyK5Ks7z/RnC9wPb4+PKLR0zLso+8/C26QiTQDarwb0/6vZpvvPw69LypSVpW8UVsS0AGT7z9V6k6M74BQvMwxbMC9iu8/FvTVuSPJkbzgLamumoLvP69VXOnj04A8UY6lyJh67z9Ik6XqFRuAvHtRfTy4cu8/PTLeVfAfj7zqjYw4+WrvP79TEz+MiYs8dctv61tj7z8m6xF2nNmWvNRcBITgW+8/YC86PvfsmjyquWgxh1TvP504hsuC54+8Hdn8IlBN7z+Nw6ZEQW+KPNaMYog7Ru8/fQTksAV6gDyW3H2RST/vP5SoqOP9jpY8OGJ1bno47z99SHTyGF6HPD+msk/OMe8/8ucfmCtHgDzdfOJlRSvvP14IcT97uJa8gWP14d8k7z8xqwlt4feCPOHeH/WdHu8/+r9vGpshPbyQ2drQfxjvP7QKDHKCN4s8CwPkpoUS7z+Py86JkhRuPFYvPqmvDO8/tquwTXVNgzwVtzEK/gbvP0x0rOIBQoY8MdhM/HAB7z9K+NNdOd2PPP8WZLII/O4/BFuOO4Cjhrzxn5JfxfbuP2hQS8ztSpK8y6k6N6fx7j+OLVEb+AeZvGbYBW2u7O4/0jaUPujRcbz3n+U02+fuPxUbzrMZGZm85agTwy3j7j9tTCqnSJ+FPCI0Ekym3u4/imkoemASk7wcgKwERdruP1uJF0iPp1i8Ki73IQrW7j8bmklnmyx8vJeoUNn10e4/EazCYO1jQzwtiWFgCM7uP+9kBjsJZpY8VwAd7UHK7j95A6Ha4cxuPNA8wbWixu4/MBIPP47/kzze09fwKsPuP7CvervOkHY8Jyo21dq/7j934FTrvR2TPA3d/ZmyvO4/jqNxADSUj7ynLJ12srnuP0mjk9zM3oe8QmbPotq27j9fOA+9xt54vIJPnVYrtO4/9lx77EYShrwPkl3KpLHuP47X/RgFNZM82ie1Nkev7j8Fm4ovt5h7PP3Hl9QSre4/CVQc4uFjkDwpVEjdB6vuP+rGGVCFxzQ8t0ZZiiap7j81wGQr5jKUPEghrRVvp+4/n3aZYUrkjLwJ3Ha54aXuP6hN7zvFM4y8hVU6sH6k7j+u6SuJeFOEvCDDzDRGo+4/WFhWeN3Ok7wlIlWCOKLuP2QZfoCqEFc8c6lM1FWh7j8oIl6/77OTvM07f2aeoO4/grk0h60Sary/2gt1EqDuP+6pbbjvZ2O8LxplPLKf7j9RiOBUPdyAvISUUfl9n+4/zz5afmQfeLx0X+zodZ/uP7B9i8BK7oa8dIGlSJqf7j+K5lUeMhmGvMlnQlbrn+4/09QJXsuckDw/Xd5PaaDuPx2lTbncMnu8hwHrcxSh7j9rwGdU/eyUPDLBMAHtoe4/VWzWq+HrZTxiTs8286LuP0LPsy/FoYi8Eho+VCek7j80NzvxtmmTvBPOTJmJpe4/Hv8ZOoRegLytxyNGGqfuP25XcthQ1JS87ZJEm9mo7j8Aig5bZ62QPJlmitnHqu4/tOrwwS+3jTzboCpC5azuP//nxZxgtmW8jES1FjKv7j9EX/NZg/Z7PDZ3FZmuse4/gz0epx8Jk7zG/5ELW7TuPykebIu4qV285cXNsDe37j9ZuZB8+SNsvA9SyMtEuu4/qvn0IkNDkrxQTt6fgr3uP0uOZtdsyoW8ugfKcPHA7j8nzpEr/K9xPJDwo4KRxO4/u3MK4TXSbTwjI+MZY8juP2MiYiIExYe8ZeVde2bM7j/VMeLjhhyLPDMtSuyb0O4/Fbu809G7kbxdJT6yA9XuP9Ix7pwxzJA8WLMwE57Z7j+zWnNuhGmEPL/9eVVr3u4/tJ2Ol83fgrx689O/a+PuP4czy5J3Gow8rdNamZ/o7j/62dFKj3uQvGa2jSkH7u4/uq7cVtnDVbz7FU+4ovPuP0D2pj0OpJC8OlnljXL57j80k6049NZovEde+/J2/+4/NYpYa+LukbxKBqEwsAXvP83dXwrX/3Q80sFLkB4M7z+smJL6+72RvAke11vCEu8/swyvMK5uczycUoXdmxnvP5T9n1wy4448etD/X6sg7z+sWQnRj+CEPEvRVy7xJ+8/ZxpOOK/NYzy15waUbS/vP2gZkmwsa2c8aZDv3CA37z/StcyDGIqAvPrDXVULP+8/b/r/P12tj7x8iQdKLUfvP0mpdTiuDZC88okNCIdP7z+nBz2mhaN0PIek+9wYWO8/DyJAIJ6RgryYg8kW42DvP6ySwdVQWo48hTLbA+Zp7z9LawGsWTqEPGC0AfMhc+8/Hz60ByHVgrxfm3szl3zvP8kNRzu5Kom8KaH1FEaG7z/TiDpgBLZ0PPY/i+cukO8/cXKdUezFgzyDTMf7UZrvP/CR048S94+82pCkoq+k7z99dCPimK6NvPFnji1Ir+8/CCCqQbzDjjwnWmHuG7rvPzLrqcOUK4Q8l7prNyvF7z/uhdExqWSKPEBFblt20O8/7eM75Lo3jrwUvpyt/dvvP53NkU07iXc82JCegcHn7z+JzGBBwQVTPPFxjyvC8+8/AAAAAAAAAAAZAAsAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkACgoZGRkDCgcAAQAJCxgAAAkGCwAACwAGGQAAABkZGQBB8dsACyEOAAAAAAAAAAAZAAsNGRkZAA0AAAIACQ4AAAAJAA4AAA4AQavcAAsBDABBt9wACxUTAAAAABMAAAAACQwAAAAAAAwAAAwAQeXcAAsBEABB8dwACxUPAAAABA8AAAAACRAAAAAAABAAABAAQZ/dAAsBEgBBq90ACx4RAAAAABEAAAAACRIAAAAAABIAABIAABoAAAAaGhoAQeLdAAsOGgAAABoaGgAAAAAAAAkAQZPeAAsBFABBn94ACxUXAAAAABcAAAAACRQAAAAAABQAABQAQc3eAAsBFgBB2d4AC6UJFQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVGAAAAAAoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFAMqaOwAAAAAAAAAAMDAwMTAyMDMwNDA1MDYwNzA4MDkxMDExMTIxMzE0MTUxNjE3MTgxOTIwMjEyMjIzMjQyNTI2MjcyODI5MzAzMTMyMzMzNDM1MzYzNzM4Mzk0MDQxNDI0MzQ0NDU0NjQ3NDg0OTUwNTE1MjUzNTQ1NTU2NTc1ODU5NjA2MTYyNjM2NDY1NjY2NzY4Njk3MDcxNzI3Mzc0NzU3Njc3Nzg3OTgwODE4MjgzODQ4NTg2ODc4ODg5OTA5MTkyOTM5NDk1OTY5Nzk4OTlOMTBfX2N4eGFiaXYxMTZfX3NoaW1fdHlwZV9pbmZvRQAAAADoMgAAeDAAAPgzAABOMTBfX2N4eGFiaXYxMTdfX2NsYXNzX3R5cGVfaW5mb0UAAADoMgAAqDAAAJwwAABOMTBfX2N4eGFiaXYxMTdfX3BiYXNlX3R5cGVfaW5mb0UAAADoMgAA2DAAAJwwAABOMTBfX2N4eGFiaXYxMTlfX3BvaW50ZXJfdHlwZV9pbmZvRQDoMgAACDEAAPwwAABOMTBfX2N4eGFiaXYxMjBfX2Z1bmN0aW9uX3R5cGVfaW5mb0UAAAAA6DIAADgxAACcMAAATjEwX19jeHhhYml2MTI5X19wb2ludGVyX3RvX21lbWJlcl90eXBlX2luZm9FAAAA6DIAAGwxAAD8MAAAAAAAAOwxAAAfAAAAIAAAACEAAAAiAAAAIwAAAE4xMF9fY3h4YWJpdjEyM19fZnVuZGFtZW50YWxfdHlwZV9pbmZvRQDoMgAAxDEAAJwwAAB2AAAAsDEAAPgxAABEbgAAsDEAAAQyAABiAAAAsDEAABAyAABjAAAAsDEAABwyAABoAAAAsDEAACgyAABhAAAAsDEAADQyAABzAAAAsDEAAEAyAAB0AAAAsDEAAEwyAABpAAAAsDEAAFgyAABqAAAAsDEAAGQyAABsAAAAsDEAAHAyAABtAAAAsDEAAHwyAAB4AAAAsDEAAIgyAAB5AAAAsDEAAJQyAABmAAAAsDEAAKAyAABkAAAAsDEAAKwyAAAAAAAAzDAAAB8AAAAkAAAAIQAAACIAAAAlAAAAJgAAACcAAAAoAAAAAAAAADAzAAAfAAAAKQAAACEAAAAiAAAAJQAAACoAAAArAAAALAAAAE4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRQAAAADoMgAACDMAAMwwAAAAAAAALDEAAB8AAAAtAAAAIQAAACIAAAAuAAAAAAAAAHwzAAAvAAAAMAAAADEAAABTdDlleGNlcHRpb24AAAAAwDIAAGwzAAAAAAAAqDMAABYAAAAyAAAAMwAAAFN0MTFsb2dpY19lcnJvcgDoMgAAmDMAAHwzAAAAAAAA3DMAABYAAAA0AAAAMwAAAFN0MTJsZW5ndGhfZXJyb3IAAAAA6DIAAMgzAACoMwAAU3Q5dHlwZV9pbmZvAAAAAMAyAADoMwBBgOgACwlIHwAAAAAAAAUAQZToAAsBGQBBrOgACw4aAAAAGwAAAKg1AAAABABBxOgACwEBAEHU6AALBf////8KAEGY6QALA6A7AQ==";return l}var Kt;function jn(l){if(l==Kt&&Zt)return new Uint8Array(Zt);var g=PA(l);if(g)return g;if(Ft)return Ft(l);throw"both async and sync fetching of the wasm failed"}function ur(l){return Promise.resolve().then(()=>jn(l))}function Lr(l,g,f){return ur(l).then(C=>WebAssembly.instantiate(C,g)).then(f,C=>{yt(`failed to asynchronously prepare wasm: ${C}`),lr(C)})}function Hn(l,g,f,C){return Lr(g,f,C)}function Yn(){return{a:mA}}function vt(){var l=Yn();function g(C,D){return we=C.exports,_e=we.z,gr(),qn=we.C,Nr(we.A),Ur("wasm-instantiate"),we}bt("wasm-instantiate");function f(C){g(C.instance)}if(T.instantiateWasm)try{return T.instantiateWasm(l,g)}catch(C){yt(`Module.instantiateWasm callback failed with error: ${C}`),ce(C)}return Kt||(Kt=Gn()),Hn(Zt,Kt,l,f).catch(ce),{}}var se=l=>{for(;l.length>0;)l.shift()(T)},le=T.noExitRuntime||!0;class it{constructor(g){this.excPtr=g,this.ptr=g-24}set_type(g){Ae[this.ptr+4>>2]=g}get_type(){return Ae[this.ptr+4>>2]}set_destructor(g){Ae[this.ptr+8>>2]=g}get_destructor(){return Ae[this.ptr+8>>2]}set_caught(g){g=g?1:0,ft[this.ptr+12]=g}get_caught(){return ft[this.ptr+12]!=0}set_rethrown(g){g=g?1:0,ft[this.ptr+13]=g}get_rethrown(){return ft[this.ptr+13]!=0}init(g,f){this.set_adjusted_ptr(0),this.set_type(g),this.set_destructor(f)}set_adjusted_ptr(g){Ae[this.ptr+16>>2]=g}get_adjusted_ptr(){return Ae[this.ptr+16>>2]}get_exception_ptr(){var g=gn(this.get_type());if(g)return Ae[this.excPtr>>2];var f=this.get_adjusted_ptr();return f!==0?f:this.excPtr}}var Tt=0,m=0,ie=(l,g,f)=>{var C=new it(l);throw C.init(g,f),Tt=l,m++,Tt},he=()=>{lr("")},dr=(l,g,f,C,D)=>{},Gr=()=>{for(var l=new Array(256),g=0;g<256;++g)l[g]=String.fromCharCode(g);$t=l},$t,Qe=l=>{for(var g="",f=l;Be[f];)g+=$t[Be[f++]];return g},v={},ot={},Ve={},Et,V=l=>{throw new Et(l)},jr,kt=l=>{throw new jr(l)},Je=(l,g,f)=>{l.forEach(function(b){Ve[b]=g});function C(b){var k=f(b);k.length!==l.length&&kt("Mismatched type converter count");for(var L=0;L<l.length;++L)ze(l[L],k[L])}var D=new Array(g.length),R=[],M=0;g.forEach((b,k)=>{ot.hasOwnProperty(b)?D[k]=ot[b]:(R.push(b),v.hasOwnProperty(b)||(v[b]=[]),v[b].push(()=>{D[k]=ot[b],++M,M===R.length&&C(D)}))}),R.length===0&&C(D)};function Hr(l,g,f={}){var C=g.name;if(l||V(`type "${C}" must have a positive integer typeid pointer`),ot.hasOwnProperty(l)){if(f.ignoreDuplicateRegistrations)return;V(`Cannot register type '${C}' twice`)}if(ot[l]=g,delete Ve[l],v.hasOwnProperty(l)){var D=v[l];delete v[l],D.forEach(R=>R())}}function ze(l,g,f={}){if(!("argPackAdvance"in g))throw new TypeError("registerType registeredInstance requires argPackAdvance");return Hr(l,g,f)}var Ye=8,Xn=(l,g,f,C)=>{g=Qe(g),ze(l,{name:g,fromWireType:function(D){return!!D},toWireType:function(D,R){return R?f:C},argPackAdvance:Ye,readValueFromPointer:function(D){return this.fromWireType(Be[D])},destructorFunction:null})},Wn=l=>({count:l.count,deleteScheduled:l.deleteScheduled,preservePointerOnDelete:l.preservePointerOnDelete,ptr:l.ptr,ptrType:l.ptrType,smartPtr:l.smartPtr,smartPtrType:l.smartPtrType}),fr=l=>{function g(f){return f.$$.ptrType.registeredClass.name}V(g(l)+" instance already deleted")},Er=!1,Yr=l=>{},Zn=l=>{l.smartPtr?l.smartPtrType.rawDestructor(l.smartPtr):l.ptrType.registeredClass.rawDestructor(l.ptr)},Xr=l=>{l.count.value-=1;var g=l.count.value===0;g&&Zn(l)},st=(l,g,f)=>{if(g===f)return l;if(f.baseClass===void 0)return null;var C=st(l,g,f.baseClass);return C===null?null:f.downcast(C)},at={},Nt=()=>Object.keys(Ut).length,Ot=()=>{var l=[];for(var g in Ut)Ut.hasOwnProperty(g)&&l.push(Ut[g]);return l},Rt=[],Mt=()=>{for(;Rt.length;){var l=Rt.pop();l.$$.deleteScheduled=!1,l.delete()}},Ke,u=l=>{Ke=l,Rt.length&&Ke&&Ke(Mt)},Vn=()=>{T.getInheritedInstanceCount=Nt,T.getLiveInheritedInstances=Ot,T.flushPendingDeletes=Mt,T.setDelayFunction=u},Ut={},vA=(l,g)=>{for(g===void 0&&V("ptr should not be undefined");l.baseClass;)g=l.upcast(g),l=l.baseClass;return g},Z=(l,g)=>(g=vA(l,g),Ut[g]),$e=(l,g)=>{(!g.ptrType||!g.ptr)&&kt("makeClassHandle requires ptr and ptrType");var f=!!g.smartPtrType,C=!!g.smartPtr;return f!==C&&kt("Both smartPtrType and smartPtr must be specified"),g.count={value:1},xt(Object.create(l,{$$:{value:g,writable:!0}}))};function kA(l){var g=this.getPointee(l);if(!g)return this.destructor(l),null;var f=Z(this.registeredClass,g);if(f!==void 0){if(f.$$.count.value===0)return f.$$.ptr=g,f.$$.smartPtr=l,f.clone();var C=f.clone();return this.destructor(l),C}function D(){return this.isSmartPointer?$e(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:g,smartPtrType:this,smartPtr:l}):$e(this.registeredClass.instancePrototype,{ptrType:this,ptr:l})}var R=this.registeredClass.getActualType(g),M=at[R];if(!M)return D.call(this);var b;this.isConst?b=M.constPointerType:b=M.pointerType;var k=st(g,this.registeredClass,b.registeredClass);return k===null?D.call(this):this.isSmartPointer?$e(b.registeredClass.instancePrototype,{ptrType:b,ptr:k,smartPtrType:this,smartPtr:l}):$e(b.registeredClass.instancePrototype,{ptrType:b,ptr:k})}var xt=l=>typeof FinalizationRegistry=="undefined"?(xt=g=>g,l):(Er=new FinalizationRegistry(g=>{Xr(g.$$)}),xt=g=>{var f=g.$$,C=!!f.smartPtr;if(C){var D={$$:f};Er.register(g,D,g)}return g},Yr=g=>Er.unregister(g),xt(l)),fe=()=>{Object.assign(Pe.prototype,{isAliasOf(l){if(!(this instanceof Pe)||!(l instanceof Pe))return!1;var g=this.$$.ptrType.registeredClass,f=this.$$.ptr;l.$$=l.$$;for(var C=l.$$.ptrType.registeredClass,D=l.$$.ptr;g.baseClass;)f=g.upcast(f),g=g.baseClass;for(;C.baseClass;)D=C.upcast(D),C=C.baseClass;return g===C&&f===D},clone(){if(this.$$.ptr||fr(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var l=xt(Object.create(Object.getPrototypeOf(this),{$$:{value:Wn(this.$$)}}));return l.$$.count.value+=1,l.$$.deleteScheduled=!1,l},delete(){this.$$.ptr||fr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&V("Object already scheduled for deletion"),Yr(this),Xr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||fr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&V("Object already scheduled for deletion"),Rt.push(this),Rt.length===1&&Ke&&Ke(Mt),this.$$.deleteScheduled=!0,this}})};function Pe(){}var Lt=(l,g)=>Object.defineProperty(g,"name",{value:l}),Wr=(l,g,f)=>{if(l[g].overloadTable===void 0){var C=l[g];l[g]=function(...D){return l[g].overloadTable.hasOwnProperty(D.length)||V(`Function '${f}' called with an invalid number of arguments (${D.length}) - expects one of (${l[g].overloadTable})!`),l[g].overloadTable[D.length].apply(this,D)},l[g].overloadTable=[],l[g].overloadTable[C.argCount]=C}},Ir=(l,g,f)=>{T.hasOwnProperty(l)?((f===void 0||T[l].overloadTable!==void 0&&T[l].overloadTable[f]!==void 0)&&V(`Cannot register public name '${l}' twice`),Wr(T,l,l),T.hasOwnProperty(f)&&V(`Cannot register multiple overloads of a function with the same number of arguments (${f})!`),T[l].overloadTable[f]=g):(T[l]=g,f!==void 0&&(T[l].numArguments=f))},It=48,NA=57,Zr=l=>{if(l===void 0)return"_unknown";l=l.replace(/[^a-zA-Z0-9_]/g,"$");var g=l.charCodeAt(0);return g>=It&&g<=NA?`_${l}`:l};function Jn(l,g,f,C,D,R,M,b){this.name=l,this.constructor=g,this.instancePrototype=f,this.rawDestructor=C,this.baseClass=D,this.getActualType=R,this.upcast=M,this.downcast=b,this.pureVirtualFunctions=[]}var qt=(l,g,f)=>{for(;g!==f;)g.upcast||V(`Expected null or instance of ${f.name}, got an instance of ${g.name}`),l=g.upcast(l),g=g.baseClass;return l};function Cr(l,g){if(g===null)return this.isReference&&V(`null is not a valid ${this.name}`),0;g.$$||V(`Cannot pass "${Br(g)}" as a ${this.name}`),g.$$.ptr||V(`Cannot pass deleted object as a pointer of type ${this.name}`);var f=g.$$.ptrType.registeredClass,C=qt(g.$$.ptr,f,this.registeredClass);return C}function Vr(l,g){var f;if(g===null)return this.isReference&&V(`null is not a valid ${this.name}`),this.isSmartPointer?(f=this.rawConstructor(),l!==null&&l.push(this.rawDestructor,f),f):0;(!g||!g.$$)&&V(`Cannot pass "${Br(g)}" as a ${this.name}`),g.$$.ptr||V(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&g.$$.ptrType.isConst&&V(`Cannot convert argument of type ${g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name} to parameter type ${this.name}`);var C=g.$$.ptrType.registeredClass;if(f=qt(g.$$.ptr,C,this.registeredClass),this.isSmartPointer)switch(g.$$.smartPtr===void 0&&V("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:g.$$.smartPtrType===this?f=g.$$.smartPtr:V(`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 D=g.clone();f=this.rawShare(f,ct.toHandle(()=>D.delete())),l!==null&&l.push(this.rawDestructor,f)}break;default:V("Unsupporting sharing policy")}return f}function Q(l,g){if(g===null)return this.isReference&&V(`null is not a valid ${this.name}`),0;g.$$||V(`Cannot pass "${Br(g)}" as a ${this.name}`),g.$$.ptr||V(`Cannot pass deleted object as a pointer of type ${this.name}`),g.$$.ptrType.isConst&&V(`Cannot convert argument of type ${g.$$.ptrType.name} to parameter type ${this.name}`);var f=g.$$.ptrType.registeredClass,C=qt(g.$$.ptr,f,this.registeredClass);return C}function Pt(l){return this.fromWireType(Ae[l>>2])}var zn=()=>{Object.assign(Gt.prototype,{getPointee(l){return this.rawGetPointee&&(l=this.rawGetPointee(l)),l},destructor(l){var g;(g=this.rawDestructor)==null||g.call(this,l)},argPackAdvance:Ye,readValueFromPointer:Pt,fromWireType:kA})};function Gt(l,g,f,C,D,R,M,b,k,L,N){this.name=l,this.registeredClass=g,this.isReference=f,this.isConst=C,this.isSmartPointer=D,this.pointeeType=R,this.sharingPolicy=M,this.rawGetPointee=b,this.rawConstructor=k,this.rawShare=L,this.rawDestructor=N,!D&&g.baseClass===void 0?C?(this.toWireType=Cr,this.destructorFunction=null):(this.toWireType=Q,this.destructorFunction=null):this.toWireType=Vr}var Kn=(l,g,f)=>{T.hasOwnProperty(l)||kt("Replacing nonexistent public symbol"),T[l].overloadTable!==void 0&&f!==void 0?T[l].overloadTable[f]=g:(T[l]=g,T[l].argCount=f)},$n=(l,g,f)=>{l=l.replace(/p/g,"i");var C=T["dynCall_"+l];return C(g,...f)},er=[],qn,Jr=l=>{var g=er[l];return g||(l>=er.length&&(er.length=l+1),er[l]=g=qn.get(l)),g},jt=(l,g,f=[])=>{if(l.includes("j"))return $n(l,g,f);var C=Jr(g)(...f);return C},tr=(l,g)=>(...f)=>jt(l,g,f),Se=(l,g)=>{l=Qe(l);function f(){return l.includes("j")?tr(l,g):Jr(g)}var C=f();return typeof C!="function"&&V(`unknown function pointer with signature ${l}: ${g}`),C},eA=(l,g)=>{var f=Lt(g,function(C){this.name=g,this.message=C;var D=new Error(C).stack;D!==void 0&&(this.stack=this.toString()+`
31
- `+D.replace(/^Error(:[^\n]*)?\n/,""))});return f.prototype=Object.create(l.prototype),f.prototype.constructor=f,f.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},f},rr,zr=l=>{var g=Tr(l),f=Qe(g);return De(g),f},Ne=(l,g)=>{var f=[],C={};function D(R){if(!C[R]&&!ot[R]){if(Ve[R]){Ve[R].forEach(D);return}f.push(R),C[R]=!0}}throw g.forEach(D),new rr(`${l}: `+f.map(zr).join([", "]))},Kr=(l,g,f,C,D,R,M,b,k,L,N,$,re)=>{N=Qe(N),R=Se(D,R),b&&(b=Se(M,b)),L&&(L=Se(k,L)),re=Se($,re);var ne=Zr(N);Ir(ne,function(){Ne(`Cannot construct ${N} due to unbound types`,[C])}),Je([l,g,f],C?[C]:[],Ee=>{var un,dn;Ee=Ee[0];var ve,Oe;C?(ve=Ee.registeredClass,Oe=ve.instancePrototype):Oe=Pe.prototype;var ae=Lt(N,function(...Or){if(Object.getPrototypeOf(this)!==lt)throw new Et("Use 'new' to construct "+N);if(Ie.constructor_body===void 0)throw new Et(N+" has no accessible constructor");var fn=Ie.constructor_body[Or.length];if(fn===void 0)throw new Et(`Tried to invoke ctor of ${N} with invalid number of parameters (${Or.length}) - expected (${Object.keys(Ie.constructor_body).toString()}) parameters instead!`);return fn.apply(this,Or)}),lt=Object.create(Oe,{constructor:{value:ae}});ae.prototype=lt;var Ie=new Jn(N,ae,lt,re,ve,R,b,L);Ie.baseClass&&((dn=(un=Ie.baseClass).__derivedClasses)!=null||(un.__derivedClasses=[]),Ie.baseClass.__derivedClasses.push(Ie));var sr=new Gt(N,Ie,!0,!1,!1),tt=new Gt(N+"*",Ie,!1,!1,!1),ht=new Gt(N+" const*",Ie,!1,!0,!1);return at[l]={pointerType:tt,constPointerType:ht},Kn(ne,ae),[sr,tt,ht]})},$r=(l,g)=>{for(var f=[],C=0;C<l;C++)f.push(Ae[g+C*4>>2]);return f},pr=l=>{for(;l.length;){var g=l.pop(),f=l.pop();f(g)}};function tA(l){for(var g=1;g<l.length;++g)if(l[g]!==null&&l[g].destructorFunction===void 0)return!0;return!1}function qr(l,g,f,C,D,R){var M=g.length;M<2&&V("argTypes array size mismatch! Must at least get return value and 'this' types!");var b=g[1]!==null&&f!==null,k=tA(g),L=g[0].name!=="void",N=M-2,$=new Array(N),re=[],ne=[],Ee=function(...ve){ve.length!==N&&V(`function ${l} called with ${ve.length} arguments, expected ${N}`),ne.length=0;var Oe;re.length=b?2:1,re[0]=D,b&&(Oe=g[1].toWireType(ne,this),re[1]=Oe);for(var ae=0;ae<N;++ae)$[ae]=g[ae+2].toWireType(ne,ve[ae]),re.push($[ae]);var lt=C(...re);function Ie(sr){if(k)pr(ne);else for(var tt=b?1:2;tt<g.length;tt++){var ht=tt===1?Oe:$[tt-2];g[tt].destructorFunction!==null&&g[tt].destructorFunction(ht)}if(L)return g[0].fromWireType(sr)}return Ie(lt)};return Lt(l,Ee)}var rA=(l,g,f,C,D,R)=>{var M=$r(g,f);D=Se(C,D),Je([],[l],b=>{b=b[0];var k=`constructor ${b.name}`;if(b.registeredClass.constructor_body===void 0&&(b.registeredClass.constructor_body=[]),b.registeredClass.constructor_body[g-1]!==void 0)throw new Et(`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]=()=>{Ne(`Cannot construct ${b.name} due to unbound types`,M)},Je([],M,L=>(L.splice(1,0,null),b.registeredClass.constructor_body[g-1]=qr(k,L,null,D,R),[])),[]})},nA=l=>{l=l.trim();let g=l.indexOf("(");return g!==-1?l.substr(0,g):l},AA=(l,g,f,C,D,R,M,b,k)=>{var L=$r(f,C);g=Qe(g),g=nA(g),R=Se(D,R),Je([],[l],N=>{N=N[0];var $=`${N.name}.${g}`;g.startsWith("@@")&&(g=Symbol[g.substring(2)]),b&&N.registeredClass.pureVirtualFunctions.push(g);function re(){Ne(`Cannot call ${$} due to unbound types`,L)}var ne=N.registeredClass.instancePrototype,Ee=ne[g];return Ee===void 0||Ee.overloadTable===void 0&&Ee.className!==N.name&&Ee.argCount===f-2?(re.argCount=f-2,re.className=N.name,ne[g]=re):(Wr(ne,g,$),ne[g].overloadTable[f-2]=re),Je([],L,ve=>{var Oe=qr($,ve,N,R,M,k);return ne[g].overloadTable===void 0?(Oe.argCount=f-2,ne[g]=Oe):ne[g].overloadTable[f-2]=Oe,[]}),[]})},en=(l,g,f)=>(l instanceof Object||V(`${f} with invalid "this": ${l}`),l instanceof g.registeredClass.constructor||V(`${f} incompatible with "this" of type ${l.constructor.name}`),l.$$.ptr||V(`cannot call emscripten binding method ${f} on deleted object`),qt(l.$$.ptr,l.$$.ptrType.registeredClass,g.registeredClass)),tn=(l,g,f,C,D,R,M,b,k,L)=>{g=Qe(g),D=Se(C,D),Je([],[l],N=>{N=N[0];var $=`${N.name}.${g}`,re={get(){Ne(`Cannot access ${$} due to unbound types`,[f,M])},enumerable:!0,configurable:!0};return k?re.set=()=>Ne(`Cannot access ${$} due to unbound types`,[f,M]):re.set=ne=>V($+" is a read-only property"),Object.defineProperty(N.registeredClass.instancePrototype,g,re),Je([],k?[f,M]:[f],ne=>{var Ee=ne[0],ve={get(){var ae=en(this,N,$+" getter");return Ee.fromWireType(D(R,ae))},enumerable:!0};if(k){k=Se(b,k);var Oe=ne[1];ve.set=function(ae){var lt=en(this,N,$+" setter"),Ie=[];k(L,lt,Oe.toWireType(Ie,ae)),pr(Ie)}}return Object.defineProperty(N.registeredClass.instancePrototype,g,ve),[]}),[]})},ee=[],Xe=[],Ue=l=>{l>9&&--Xe[l+1]===0&&(Xe[l]=void 0,ee.push(l))},qe=()=>Xe.length/2-5-ee.length,iA=()=>{Xe.push(0,1,void 0,1,null,1,!0,1,!1,1),T.count_emval_handles=qe},ct={toValue:l=>(l||V("Cannot use deleted val. handle = "+l),Xe[l]),toHandle:l=>{switch(l){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let g=ee.pop()||Xe.length;return Xe[g]=l,Xe[g+1]=1,g}}}},rn={name:"emscripten::val",fromWireType:l=>{var g=ct.toValue(l);return Ue(l),g},toWireType:(l,g)=>ct.toHandle(g),argPackAdvance:Ye,readValueFromPointer:Pt,destructorFunction:null},X=l=>ze(l,rn),Br=l=>{if(l===null)return"null";var g=typeof l;return g==="object"||g==="array"||g==="function"?l.toString():""+l},oA=(l,g)=>{switch(g){case 4:return function(f){return this.fromWireType(He[f>>2])};case 8:return function(f){return this.fromWireType(vr[f>>3])};default:throw new TypeError(`invalid float width (${g}): ${l}`)}},nn=(l,g,f)=>{g=Qe(g),ze(l,{name:g,fromWireType:C=>C,toWireType:(C,D)=>D,argPackAdvance:Ye,readValueFromPointer:oA(g,f),destructorFunction:null})},a=(l,g,f)=>{switch(g){case 1:return f?C=>ft[C]:C=>Be[C];case 2:return f?C=>je[C>>1]:C=>Vt[C>>1];case 4:return f?C=>Jt[C>>2]:C=>Ae[C>>2];default:throw new TypeError(`invalid integer width (${g}): ${l}`)}},oe=(l,g,f,C,D)=>{g=Qe(g),D===-1&&(D=4294967295);var R=N=>N;if(C===0){var M=32-8*f;R=N=>N<<M>>>M}var b=g.includes("unsigned"),k=(N,$)=>{},L;b?L=function(N,$){return k($,this.name),$>>>0}:L=function(N,$){return k($,this.name),$},ze(l,{name:g,fromWireType:R,toWireType:L,argPackAdvance:Ye,readValueFromPointer:a(g,f,C!==0),destructorFunction:null})},sA=(l,g,f)=>{var C=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],D=C[g];function R(M){var b=Ae[M>>2],k=Ae[M+4>>2];return new D(ft.buffer,k,b)}f=Qe(f),ze(l,{name:f,fromWireType:R,argPackAdvance:Ye,readValueFromPointer:R},{ignoreDuplicateRegistrations:!0})},aA=(l,g,f,C)=>{if(!(C>0))return 0;for(var D=f,R=f+C-1,M=0;M<l.length;++M){var b=l.charCodeAt(M);if(b>=55296&&b<=57343){var k=l.charCodeAt(++M);b=65536+((b&1023)<<10)|k&1023}if(b<=127){if(f>=R)break;g[f++]=b}else if(b<=2047){if(f+1>=R)break;g[f++]=192|b>>6,g[f++]=128|b&63}else if(b<=65535){if(f+2>=R)break;g[f++]=224|b>>12,g[f++]=128|b>>6&63,g[f++]=128|b&63}else{if(f+3>=R)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-D},cA=(l,g,f)=>aA(l,Be,g,f),gA=l=>{for(var g=0,f=0;f<l.length;++f){var C=l.charCodeAt(f);C<=127?g++:C<=2047?g+=2:C>=55296&&C<=57343?(g+=4,++f):g+=3}return g},An=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,on=(l,g,f)=>{for(var C=g+f,D=g;l[D]&&!(D>=C);)++D;if(D-g>16&&l.buffer&&An)return An.decode(l.subarray(g,D));for(var R="";g<D;){var M=l[g++];if(!(M&128)){R+=String.fromCharCode(M);continue}var b=l[g++]&63;if((M&224)==192){R+=String.fromCharCode((M&31)<<6|b);continue}var k=l[g++]&63;if((M&240)==224?M=(M&15)<<12|b<<6|k:M=(M&7)<<18|b<<12|k<<6|l[g++]&63,M<65536)R+=String.fromCharCode(M);else{var L=M-65536;R+=String.fromCharCode(55296|L>>10,56320|L&1023)}}return R},lA=(l,g)=>l?on(Be,l,g):"",uA=(l,g)=>{g=Qe(g);var f=g==="std::string";ze(l,{name:g,fromWireType(C){var D=Ae[C>>2],R=C+4,M;if(f)for(var b=R,k=0;k<=D;++k){var L=R+k;if(k==D||Be[L]==0){var N=L-b,$=lA(b,N);M===void 0?M=$:(M+=String.fromCharCode(0),M+=$),b=L+1}}else{for(var re=new Array(D),k=0;k<D;++k)re[k]=String.fromCharCode(Be[R+k]);M=re.join("")}return De(C),M},toWireType(C,D){D instanceof ArrayBuffer&&(D=new Uint8Array(D));var R,M=typeof D=="string";M||D instanceof Uint8Array||D instanceof Uint8ClampedArray||D instanceof Int8Array||V("Cannot pass non-string to std::string"),f&&M?R=gA(D):R=D.length;var b=br(4+R+1),k=b+4;if(Ae[b>>2]=R,f&&M)cA(D,k,R+1);else if(M)for(var L=0;L<R;++L){var N=D.charCodeAt(L);N>255&&(De(k),V("String has UTF-16 code units that do not fit in 8 bits")),Be[k+L]=N}else for(var L=0;L<R;++L)Be[k+L]=D[L];return C!==null&&C.push(De,b),b},argPackAdvance:Ye,readValueFromPointer:Pt,destructorFunction(C){De(C)}})},Ht=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,nr=(l,g)=>{for(var f=l,C=f>>1,D=C+g/2;!(C>=D)&&Vt[C];)++C;if(f=C<<1,f-l>32&&Ht)return Ht.decode(Be.subarray(l,f));for(var R="",M=0;!(M>=g/2);++M){var b=je[l+M*2>>1];if(b==0)break;R+=String.fromCharCode(b)}return R},hr=(l,g,f)=>{if(f!=null||(f=2147483647),f<2)return 0;f-=2;for(var C=g,D=f<l.length*2?f/2:l.length,R=0;R<D;++R){var M=l.charCodeAt(R);je[g>>1]=M,g+=2}return je[g>>1]=0,g-C},Fe=l=>l.length*2,dA=(l,g)=>{for(var f=0,C="";!(f>=g/4);){var D=Jt[l+f*4>>2];if(D==0)break;if(++f,D>=65536){var R=D-65536;C+=String.fromCharCode(55296|R>>10,56320|R&1023)}else C+=String.fromCharCode(D)}return C},fA=(l,g,f)=>{if(f!=null||(f=2147483647),f<4)return 0;for(var C=g,D=C+f-4,R=0;R<l.length;++R){var M=l.charCodeAt(R);if(M>=55296&&M<=57343){var b=l.charCodeAt(++R);M=65536+((M&1023)<<10)|b&1023}if(Jt[g>>2]=M,g+=4,g+4>D)break}return Jt[g>>2]=0,g-C},EA=l=>{for(var g=0,f=0;f<l.length;++f){var C=l.charCodeAt(f);C>=55296&&C<=57343&&++f,g+=4}return g},Ar=(l,g,f)=>{f=Qe(f);var C,D,R,M;g===2?(C=nr,D=hr,M=Fe,R=b=>Vt[b>>1]):g===4&&(C=dA,D=fA,M=EA,R=b=>Ae[b>>2]),ze(l,{name:f,fromWireType:b=>{for(var k=Ae[b>>2],L,N=b+4,$=0;$<=k;++$){var re=b+4+$*g;if($==k||R(re)==0){var ne=re-N,Ee=C(N,ne);L===void 0?L=Ee:(L+=String.fromCharCode(0),L+=Ee),N=re+g}}return De(b),L},toWireType:(b,k)=>{typeof k!="string"&&V(`Cannot pass non-string to C++ string type ${f}`);var L=M(k),N=br(4+L+g);return Ae[N>>2]=L/g,D(k,N+4,L+g),b!==null&&b.push(De,N),N},argPackAdvance:Ye,readValueFromPointer:Pt,destructorFunction(b){De(b)}})},ir=(l,g)=>{g=Qe(g),ze(l,{isVoid:!0,name:g,argPackAdvance:0,fromWireType:()=>{},toWireType:(f,C)=>{}})},sn=(l,g,f)=>Be.copyWithin(l,g,g+f),mr=(l,g)=>{var f=ot[l];return f===void 0&&V(`${g} has unknown type ${zr(l)}`),f},Qr=(l,g,f)=>{var C=[],D=l.toWireType(C,f);return C.length&&(Ae[g>>2]=ct.toHandle(C)),D},ue=(l,g,f)=>(l=ct.toValue(l),g=mr(g,"emval::as"),Qr(g,f,l)),IA={},CA=l=>{var g=IA[l];return g===void 0?Qe(l):g},Ct=[],yr=(l,g,f,C,D)=>(l=Ct[l],g=ct.toValue(g),f=CA(f),l(g,g[f],C,D)),Yt=l=>{var g=Ct.length;return Ct.push(l),g},pA=(l,g)=>{for(var f=new Array(l),C=0;C<l;++C)f[C]=mr(Ae[g+C*4>>2],"parameter "+C);return f},BA=Reflect.construct,et=(l,g,f)=>{var C=pA(l,g),D=C.shift();l--;var R=new Array(l),M=(k,L,N,$)=>{for(var re=0,ne=0;ne<l;++ne)R[ne]=C[ne].readValueFromPointer($+re),re+=C[ne].argPackAdvance;var Ee=f===1?BA(L,R):L.apply(k,R);return Qr(D,N,Ee)},b=`methodCaller<(${C.map(k=>k.name).join(", ")}) => ${D.name}>`;return Yt(Lt(b,M))},St=l=>{l>9&&(Xe[l+1]+=1)},W=l=>{var g=ct.toValue(l);pr(g),Ue(l)},_r=(l,g)=>{l=mr(l,"_emval_take_value");var f=l.readValueFromPointer(g);return ct.toHandle(f)},hA=l=>{lr("OOM")},an=l=>{var g=Be.length;l>>>=0,hA(l)},pt=[null,[],[]],cn=(l,g)=>{var f=pt[l];g===0||g===10?((l===1?Fr:yt)(on(f,0)),f.length=0):f.push(g)},wr=(l,g,f,C)=>{for(var D=0,R=0;R<f;R++){var M=Ae[g>>2],b=Ae[g+4>>2];g+=8;for(var k=0;k<b;k++)cn(l,Be[M+k]);D+=b}return Ae[C>>2]=D,0};Gr(),Et=T.BindingError=class extends Error{constructor(g){super(g),this.name="BindingError"}},jr=T.InternalError=class extends Error{constructor(g){super(g),this.name="InternalError"}},fe(),Vn(),zn(),rr=T.UnboundTypeError=eA(Error,"UnboundTypeError"),iA();var mA={w:ie,q:he,p:dr,u:Xn,y:Kr,x:rA,h:AA,k:tn,t:X,o:nn,g:oe,a:sA,n:uA,l:Ar,v:ir,s:sn,j:ue,e:yr,c:Ue,f:et,d:St,b:W,i:_r,r:an,m:wr},we=vt(),Dr=()=>(Dr=we.A)(),br=l=>(br=we.B)(l),Tr=l=>(Tr=we.D)(l),De=l=>(De=we.E)(l),gn=l=>(gn=we.F)(l),or=T.dynCall_jiji=(l,g,f,C,D)=>(or=T.dynCall_jiji=we.G)(l,g,f,C,D),ln=T._vertexShaderSource=13312,gt;At=function l(){gt||Bt(),gt||(At=l)};function Bt(){if(de>0||(P(),de>0))return;function l(){gt||(gt=!0,T.calledRun=!0,!K&&(xn(),me(T),T.onRuntimeInitialized&&T.onRuntimeInitialized(),SA()))}T.setStatus?(T.setStatus("Running..."),setTimeout(function(){setTimeout(function(){T.setStatus("")},1),l()},1)):l()}if(T.preInit)for(typeof T.preInit=="function"&&(T.preInit=[T.preInit]);T.preInit.length>0;)T.preInit.pop()();return Bt(),n=ge,n}})(),ui=pc;var Fn=class{constructor(S,n){pe(this,"canvas");pe(this,"locateFile");pe(this,"_glName");pe(this,"_solutionWasm");pe(this,"ctx");pe(this,"fileDownloader");pe(this,"pl",{onResults:S=>this.onResults(S.get(0).glName)});this.locateFile=T=>`${S}/${T}`,this.fileDownloader=n}bindTexture(){var S;(S=this.ctx)==null||S.activeTexture(this.ctx.TEXTURE0),this.bindTexture2d(this._glName)}async initialize(){this._solutionWasm=new this.SolutionWasm;let S=new this.StringList;S.push_back("segmentation_mask");let n=this.PacketListener.implement(this.pl);return this._solutionWasm.attachMultiListener(S,n),S.delete(),this._solutionWasm.loadGraph(await this.fileDownloader.download(this.locateFile("selfie_segmentation.binarypb"),{type:"arraybuffer"})),this}setCanvas(S){this.canvas=S,this.createContext(S,!0,!0,{}),this._glName=this.createTexture()}fetchResponse(S){return this.fileDownloader.downloadWithFetch(S,"fetch-response")}loadWasm(S,n){return this.fileDownloader.loadWasm(S,n)}async changeModel(S="selfie_segmentation_landscape.tflite"){S=typeof S=="string"?await this.fileDownloader.download(this.locateFile(S),{type:"arraybuffer"}):S,this._solutionWasm.overrideFile("third_party/mediapipe/modules/selfie_segmentation/selfie_segmentation_landscape.tflite",S);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(S,n){let T=new this.PacketDataList;T.pushTexture2d({stream:"input_frames_gpu",timestamp:performance.now()*1e3,glName:this._glName,width:S,height:n}),this._solutionWasm.send(T),T.delete()}close(){var S,n,T;(S=this.canvas)==null||delete S.getContext,delete this.readyPromiseResolve,delete this.readyPromiseReject,this.pl.onResults=null,delete this.onResults,(n=this.deleteTexture)==null||n.call(this,this._glName),(T=this._solutionWasm)==null||T.delete();for(let me of Object.keys(this))delete this[me]}};var vn=0,kn=class kn{constructor(S){this.core=S;pe(this,"seq");pe(this,"_core");pe(this,"log");pe(this,"preLoadPromise");pe(this,"startResolve");pe(this,"startReject");pe(this,"mediaPipeSolutions");pe(this,"assetsPath");vn=vn+1,this.seq=vn,this._core=S,this.log=S.log.createChild({id:`${this.getAlias()}${vn}`}),this.log.info("created"),S.assetsPath&&(this.preLoadPromise=this.preload(S.assetsPath))}async preload(S="https://web.sdk.qcloud.com/trtc/webrtc/v5/assets/"){try{this._core.room.videoManager.Wasm||(this._core.room.videoManager.Wasm=await ui({print:console.warn})),this.assetsPath=`${S}/selfie_segmentation/`;let n=new Fn(this.assetsPath,this._core.fileDownloader);this.mediaPipeSolutions=await li(n),await this.mediaPipeSolutions.initialize(),await this._core.room.videoManager.initVirtualBackground(this.mediaPipeSolutions)}catch(n){let{RtcError:T,ErrorCode:me}=this._core.errorModule;throw new T({code:me.INVALID_OPERATION,message:`VirtualBackground preload error, please check your assetsPath. detail: ${n}`})}}getName(){return kn.Name}getAlias(){return"vb"}getValidateRule(S){switch(S){case"start":return ai(this._core);case"update":return ci(this._core);case"stop":return gi(this._core)}}getGroup(){return"vb"}async start(S){let{type:n="blur",src:T}=S,{auth:me,sign:ce,timestamp:ge}=await si({sdkAppId:S.sdkAppId,userId:S.userId,userSig:S.userSig,core:this._core});if(!me){let{RtcError:ye,ErrorCode:Te,ErrorCodeDictionary:Re}=this._core.errorModule;throw new ye({code:Te.SERVER_ERROR,extraCode:Re.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:T})}async update(S){let{type:n,src:T}=S;return this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:T})}async stop(){return this.core.room.videoManager.setVirtualBackground()}};pe(kn,"Name","VirtualBackground");var MA=kn;var dg=MA;export{MA as VirtualBackground,dg as default};
27
+ `,o.push(I);let h=kA(Function,o).apply(null,s);return Gi(h)}function Yi(e){e>4&&(Fe[e].refcount+=1)}function Xi(e,t){e=Dr(e,"_emval_take_value");let r=e.readValueFromPointer(t);return ir(r)}function Vi(){u()}let Ki=!0;function Wi(e,t){let r;if(e===0)r=Date.now();else if((e===1||e===4)&&Ki)r=Et();else return en(28),-1;return m[t>>2]=r/1e3|0,m[t+4>>2]=r%1e3*1e3*1e3|0,0}function Ji(e,t){u("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}function Zi(e,t){u("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}let un=[];function zi(e,t){P(Array.isArray(un)),P(t%16==0),un.length=0;let r;for(t>>=2;r=ge[e++];){P(r===100||r===102||r===105);let A=r<105;A&&t&1&&t++,un.push(A?dr[t++>>1]:m[t]),++t}return un}function $i(e,t,r){let A=zi(t,r);return Ut.hasOwnProperty(e)||u(`No EM_ASM constant found at address ${e}`),Ut[e].apply(null,A)}function qi(){return 2147483648}function eo(e,t,r){ge.copyWithin(e,t,t+r)}function to(e){u("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")}function ro(e){try{return mt.grow(e-St.byteLength+65535>>>16),Lr(mt.buffer),1}catch(t){$(`emscripten_realloc_buffer: Attempted to grow heap from ${St.byteLength} bytes to ${e} bytes, but got error: ${t}`)}}function no(e){let t=ge.length;e=e>>>0,P(e>t);let r=2147483648;if(e>r)return $(`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,xn(Math.max(e,o),65536));if(ro(A))return!0}return $(`Failed to grow the heap from ${t} bytes to ${A} bytes, not enough memory!`),!1}function dn(e){u("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}let cr={};function LA(e){e.forEach(t=>{let r=dn(t);r&&(cr[r]=t)})}function Ao(){let e=new Error().stack.split(`
28
+ `);return e[0]=="Error"&&e.shift(),LA(e),cr.last_addr=dn(e[2]),cr.last_stack=e,cr.last_addr}function io(e,t,r){let A;cr.last_addr==e?A=cr.last_stack:(A=new Error().stack.split(`
29
+ `),A[0]=="Error"&&A.shift(),LA(A));let i=2;for(;A[i]&&dn(A[i])!=e;)++i;for(var o=0;o<r&&A[o+i];++o)m[t+o*4>>2]=dn(A[o+i]);return o}function oo(e){let t=Et();for(;Et()-t<e;);}function so(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 ao(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 co(e){let t=e.getExtension("WEBGL_draw_buffers");if(t)return e.drawBuffers=function(r,A){t.drawBuffersWEBGL(r,A)},1}function go(e){return!!(e.dibvbi=e.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function lo(e){return!!(e.mdibvbi=e.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function uo(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=_.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=_.getParameter(34964);return A[i]=_.createBuffer(),_.bindBuffer(34962,A[i]),_.bufferData(34962,1<<r,35048),_.bindBuffer(34962,s),A[i]},getTempIndexBuffer:function(t){let r=C.log2ceilLookup(t),A=C.currentContext.tempIndexBuffers[r];if(A)return A;let i=_.getParameter(34965);return C.currentContext.tempIndexBuffers[r]=_.createBuffer(),_.bindBuffer(34963,C.currentContext.tempIndexBuffers[r]),_.bufferData(34963,1<<r,35048),_.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+=ue(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);_.bindBuffer(34962,o),_.bufferSubData(34962,0,ge.subarray(A.ptr,A.ptr+i)),A.vertexAttribPointerAdaptor.call(_,r,A.size,A.type,A.normalized,A.stride,0)}},postDrawHandleClientVertexAttribBindings:function(){C.resetBufferBinding&&_.bindBuffer(34962,C.buffers[_.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); }",f=t.createShader(35632);t.shaderSource(f,d),t.compileShader(f);let I=t.createProgram();t.attachShader(I,c),t.attachShader(I,f),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 U=function(){t.vertexAttribPointer(e.blitPosLoc,2,5126,!1,0,0),t.drawArrays(5,0,4)};var s=U;t.bindFramebuffer(36160,null);let c=t.getParameter(35725);t.useProgram(e.blitProgram);let d=t.getParameter(34964);t.bindBuffer(34962,e.blitVB);let f=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 y=t.getParameter(2929);y&&t.disable(2929);let T=t.getParameter(2960);if(T&&t.disable(2960),e.defaultVao){let Y=t.getParameter(34229);t.bindVertexArray(e.defaultVao),U(),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)},q=t.getParameter(34921),D=[];for(var i=0;i<q;++i){var o=t.getVertexAttrib(i,34338);let F=i==e.blitPosLoc;o&&!F&&t.disableVertexAttribArray(i),!o&&F&&t.enableVertexAttribArray(i),D[i]=o}U();for(var i=0;i<q;++i){var o=D[i];let x=i==e.blitPosLoc;o&&!x&&t.enableVertexAttribArray(i),!o&&x&&t.disableVertexAttribArray(i)}t.bindBuffer(34962,Y.buffer),t.vertexAttribPointer(e.blitPosLoc,Y.size,Y.type,Y.normalized,Y.stride,Y.offset)}T&&t.enable(2960),y&&t.enable(2929),h&&t.enable(2884),B&&t.enable(3042),t.bindTexture(3553,I),t.activeTexture(f),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=_=C.currentContext&&C.currentContext.GLctx,!(e&&!_)},getContext(e){return C.contexts[e]},deleteContext(e){C.currentContext===C.contexts[e]&&(C.currentContext=null),typeof Z=="object"&&Z.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;so(t),ao(t),co(t),go(t),lo(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")),uo(t),(t.getSupportedExtensions()||[]).forEach(A=>{!A.includes("lose_context")&&!A.includes("debug")&&t.getExtension(A)})}},Z={inEventHandler:0,removeAllEventListeners(){for(let e=Z.eventHandlers.length-1;e>=0;--e)Z._removeHandler(e);Z.eventHandlers=[],Z.deferredCalls=[]},registerRemoveEventListeners(){Z.removeEventListenersRegistered||(Gr.push(Z.removeAllEventListeners),Z.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 Z.deferredCalls){let o=Z.deferredCalls[i];if(o.targetFunction==e&&A(o.argsList,r))return}Z.deferredCalls.push({targetFunction:e,precedence:t,argsList:r}),Z.deferredCalls.sort((i,o)=>i.precedence<o.precedence)},removeDeferredCalls(e){for(let t=0;t<Z.deferredCalls.length;++t)Z.deferredCalls[t].targetFunction==e&&(Z.deferredCalls.splice(t,1),--t)},canPerformEventHandlerRequests(){return Z.inEventHandler&&Z.currentEventHandler.allowsDeferredCalls},runDeferredCalls(){if(Z.canPerformEventHandlerRequests())for(let e=0;e<Z.deferredCalls.length;++e){let t=Z.deferredCalls[e];Z.deferredCalls.splice(e,1),--e,t.targetFunction.apply(null,t.argsList)}},eventHandlers:[],removeAllHandlersOnTarget(e,t){for(let r=0;r<Z.eventHandlers.length;++r)Z.eventHandlers[r].target==e&&(!t||t==Z.eventHandlers[r].eventTypeString)&&Z._removeHandler(r--)},_removeHandler(e){let t=Z.eventHandlers[e];t.target.removeEventListener(t.eventTypeString,t.eventListenerFunc,t.useCapture),Z.eventHandlers.splice(e,1)},registerOrRemoveHandler(e){let t=function(A){++Z.inEventHandler,Z.currentEventHandler=e,Z.runDeferredCalls(),e.handlerFunc(A),Z.runDeferredCalls(),--Z.inEventHandler};if(e.callbackfunc)e.eventListenerFunc=t,e.target.addEventListener(e.eventTypeString,t,e.useCapture),Z.eventHandlers.push(e),Z.registerRemoveEventListeners();else for(let r=0;r<Z.eventHandlers.length;++r)Z.eventHandlers[r].target==e.target&&Z.eventHandlers[r].eventTypeString==e.eventTypeString&&Z._removeHandler(r--)},getNodeNameForTarget(e){return e?e==window?"#window":e==screen?"#screen":e&&e.nodeName?e.nodeName:"":""},fullscreenEnabled(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};let GA=["default","low-power","high-performance"],fo=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function Eo(e){Me("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=fo[e]||ue(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 BA(e){return typeof e=="number"&&(e=ue(e)),!e||e==="#canvas"?typeof C!="undefined"&&C.offscreenCanvases.canvas?C.offscreenCanvases.canvas:n.canvas:typeof C!="undefined"&&C.offscreenCanvases[e]?C.offscreenCanvases[e]:Eo(e)}function Io(e,t){P(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:GA[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=BA(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:Kt(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 Co(e,t){return Io(e,t)}function po(){return C.currentContext?C.currentContext.handle:0}function jA(){return po()}n._emscripten_webgl_get_current_context=jA;function HA(e){return C.makeContextCurrent(e)?0:-5}n._emscripten_webgl_make_context_current=HA;function Bo(e){C.currentContext==e&&(C.currentContext=0),C.deleteContext(e)}function ho(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&&GA.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 mo(e){P(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 hA={};function Qo(){return Oe||"./this.program"}function Rr(){if(!Rr.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`,_:Qo()};for(var e in hA)hA[e]===void 0?delete r[e]:r[e]=hA[e];let A=[];for(var e in r)A.push(`${e}=${r[e]}`);Rr.strings=A}return Rr.strings}function yo(e,t){let r=0;return Rr().forEach((A,i)=>{let o=t+r;m[e+i*4>>2]=o,Un(A,o),r+=A.length+1}),0}function _o(e,t){let r=Rr();m[e>>2]=r.length;let A=0;return r.forEach(i=>{A+=i.length+1}),m[t>>2]=A,0}function Do(e){try{let t=ie.getStreamFromFD(e);return a.close(t),0}catch(t){return(typeof a=="undefined"||!(t instanceof a.ErrnoError))&&u(t),t.errno}}function wo(e,t,r,A){try{let i=ie.getStreamFromFD(e),o=ie.doReadv(i,t,r);return m[A>>2]=o,0}catch(i){return(typeof a=="undefined"||!(i instanceof a.ErrnoError))&&u(i),i.errno}}function bo(e,t,r,A,i){try{let o=ie.getStreamFromFD(e),c=r*4294967296+(t>>>0),d=9007199254740992;return c<=-d||c>=d?-61:(a.llseek(o,c,A),Pe=[o.position>>>0,(de=o.position,+Math.abs(de)>=1?de>0?(Math.min(+Math.floor(de/4294967296),4294967295)|0)>>>0:~~+Math.ceil((de-+(~~de>>>0))/4294967296)>>>0:0)],m[i>>2]=Pe[0],m[i+4>>2]=Pe[1],o.getdents&&c===0&&A===0&&(o.getdents=null),0)}catch(o){return(typeof a=="undefined"||!(o instanceof a.ErrnoError))&&u(o),o.errno}}function Oo(e,t,r,A){try{let i=ie.getStreamFromFD(e),o=ie.doWritev(i,t,r);return m[A>>2]=o,0}catch(i){return(typeof a=="undefined"||!(i instanceof a.ErrnoError))&&u(i),i.errno}}function To(){return Fr()}function fn(e,t){fn.randomDevice||(fn.randomDevice=Ve());for(let r=0;r<t;r++)oe[e+r>>0]=fn.randomDevice();return 0}function Ro(e){_.activeTexture(e)}function Mo(e,t){_.attachShader(C.programs[e],C.shaders[t])}function Po(e,t,r){_.bindAttribLocation(C.programs[e],t,ue(r))}function So(e,t){e==34962?_.currentArrayBufferBinding=t:e==34963&&(_.currentElementArrayBufferBinding=t),e==35051?_.currentPixelPackBufferBinding=t:e==35052&&(_.currentPixelUnpackBufferBinding=t),_.bindBuffer(e,C.buffers[t])}function Fo(e,t,r){_.bindBufferBase(e,t,C.buffers[r])}function vo(e,t){_.bindFramebuffer(e,t?C.framebuffers[t]:C.currentContext.defaultFbo)}function No(e,t){_.bindTexture(e,C.textures[t])}function ko(e){_.bindVertexArray(C.vaos[e]);let t=_.getParameter(34965);_.currentElementArrayBufferBinding=t?t.name|0:0}function Uo(e,t,r,A){C.currentContext.version>=2?r?_.bufferData(e,ge,A,r,t):_.bufferData(e,t,A):_.bufferData(e,r?ge.subarray(r,r+t):t,A)}function xo(e,t){return P(t===(t|0)),(e>>>0)+t*4294967296}function Lo(e,t,r,A){return _.clientWaitSync(C.syncs[e],t,xo(r,A))}function Go(e){_.compileShader(C.shaders[e])}function jo(){let e=C.getNewId(C.programs),t=_.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,C.programs[e]=t,e}function Ho(e){let t=C.getNewId(C.shaders);return C.shaders[t]=_.createShader(e),t}function Yo(e,t){for(let r=0;r<e;r++){let A=m[t+r*4>>2],i=C.buffers[A];i&&(_.deleteBuffer(i),i.name=0,C.buffers[A]=null,A==_.currentArrayBufferBinding&&(_.currentArrayBufferBinding=0),A==_.currentElementArrayBufferBinding&&(_.currentElementArrayBufferBinding=0),A==_.currentPixelPackBufferBinding&&(_.currentPixelPackBufferBinding=0),A==_.currentPixelUnpackBufferBinding&&(_.currentPixelUnpackBufferBinding=0))}}function Xo(e,t){for(let r=0;r<e;++r){let A=m[t+r*4>>2],i=C.framebuffers[A];i&&(_.deleteFramebuffer(i),i.name=0,C.framebuffers[A]=null)}}function Vo(e){if(!e)return;let t=C.programs[e];if(!t){C.recordError(1281);return}_.deleteProgram(t),t.name=0,C.programs[e]=null}function Ko(e){if(!e)return;let t=C.shaders[e];if(!t){C.recordError(1281);return}_.deleteShader(t),C.shaders[e]=null}function Wo(e){if(!e)return;let t=C.syncs[e];if(!t){C.recordError(1281);return}_.deleteSync(t),t.name=0,C.syncs[e]=null}function Jo(e,t){for(let r=0;r<e;r++){let A=m[t+r*4>>2],i=C.textures[A];i&&(_.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];_.deleteVertexArray(C.vaos[A]),C.vaos[A]=null}}function zo(e){_.disable(e)}function $o(e){let t=C.currentContext.clientBuffers[e];t.enabled=!1,_.disableVertexAttribArray(e)}function qo(e,t,r){C.preDrawHandleClientVertexAttribBindings(t+r),_.drawArrays(e,t,r),C.postDrawHandleClientVertexAttribBindings()}let YA=[];function es(e,t){let r=YA[e];for(let A=0;A<e;A++)r[A]=m[t+A*4>>2];_.drawBuffers(r)}function ts(e){let t=C.currentContext.clientBuffers[e];t.enabled=!0,_.enableVertexAttribArray(e)}function rs(e,t){let r=_.fenceSync(e,t);if(r){let A=C.getNewId(C.syncs);return r.name=A,C.syncs[A]=r,A}return 0}function ns(){_.finish()}function As(){_.flush()}function is(e,t,r,A,i){_.framebufferTexture2D(e,t,r,C.textures[A],i)}function os(e,t,r,A,i){_.framebufferTextureLayer(e,t,C.textures[r],A,i)}function En(e,t,r,A){for(let i=0;i<e;i++){let o=_[r](),s=o&&C.getNewId(A);o?(o.name=s,A[s]=o):C.recordError(1282),m[t+i*4>>2]=s}}function ss(e,t){En(e,t,"createBuffer",C.buffers)}function as(e,t){En(e,t,"createFramebuffer",C.framebuffers)}function cs(e,t){En(e,t,"createTexture",C.textures)}function gs(e,t){En(e,t,"createVertexArray",C.vaos)}function ls(e,t){return _.getAttribLocation(C.programs[e],ue(t))}function us(){let e=_.getError()||C.lastError;return C.lastError=0,e}function ds(e){return Ae[e>>2]+m[e+4>>2]*4294967296}function fs(e){return Ae[e>>2]+Ae[e+4>>2]*4294967296}function Es(e,t){Ae[e>>2]=t,Ae[e+4>>2]=(t-Ae[e>>2])/4294967296;let r=t>=0?fs(e):ds(e);r!=t&&Me(`writeI53ToI64() out of range: serialized JS Number ${t} to Wasm heap as bytes lo=0x${Ae[e>>2].toString(16)}, hi=0x${Ae[e+4>>2].toString(16)}, which deserializes back to ${r} instead!`)}function Is(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=_.getParameter(34467);A=i?i.length:0;break;case 33309:if(C.currentContext.version<2){C.recordError(1282);return}var o=_.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=_.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:Ce[t+c*4>>2]=s[c];break;case 4:oe[t+c>>0]=s[c]?1:0;break}return}else try{A=s.name|0}catch(c){C.recordError(1280),$(`GL_INVALID_ENUM in glGet${r}v: Unknown object returned from WebGL getParameter(${e})! (error: ${c})`);return}break;default:C.recordError(1280),$(`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:Es(t,A);break;case 0:m[t>>2]=A;break;case 2:Ce[t>>2]=A;break;case 4:oe[t>>0]=A?1:0;break}}function Cs(e,t){Is(e,t,0)}function In(e){let t=_t(e)+1,r=Kt(t);return it(e,r,t),r}function ps(e){let t=C.stringCache[e];if(!t){switch(e){case 7939:var r=_.getSupportedExtensions()||[];r=r.concat(r.map(d=>`GL_${d}`)),t=In(r.join(" "));break;case 7936:case 7937:case 37445:case 37446:var A=_.getParameter(e);A||C.recordError(1280),t=A&&In(A);break;case 7938:var i=_.getParameter(7938);C.currentContext.version>=2?i=`OpenGL ES 3.0 (${i})`:i=`OpenGL ES 2.0 (${i})`,t=In(i);break;case 35724:var o=_.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=In(o);break;default:C.recordError(1280)}C.stringCache[e]=t}return t}function Bs(e,t){return _.getUniformBlockIndex(C.programs[e],ue(t))}function hs(e){return parseInt(e)}function XA(e){return e.slice(-1)=="]"&&e.lastIndexOf("[")}function ms(e){let{uniformLocsById:t}=e,{uniformSizeAndIdsByName:r}=e,A,i;if(!t)for(e.uniformLocsById=t={},e.uniformArrayNamesById={},A=0;A<_.getProgramParameter(e,35718);++A){let o=_.getActiveUniform(e,A),s=o.name,c=o.size,d=XA(s),f=d>0?s.slice(0,d):s,I=e.uniformIdCounter;for(e.uniformIdCounter+=c,r[f]=[c,I],i=0;i<c;++i)t[I]=i,e.uniformArrayNamesById[I++]=f}}function Qs(e,t){if(t=ue(t),e=C.programs[e]){ms(e);let{uniformLocsById:r}=e,A=0,i=t,o=XA(t);o>0&&(A=hs(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]||_.getUniformLocation(e,t)))return A}else C.recordError(1281);return-1}function ys(e){e=C.programs[e],_.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}}function _s(e,t){e==3317&&(C.unpackAlignment=t),_.pixelStorei(e,t)}function Ds(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 ws(e){return{5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[e-6402]||1}function Mr(e){return e-=5120,e==0?oe:e==1?ge:e==2?ot:e==4?m:e==6?Ce:e==5||e==28922||e==28520||e==30779||e==30782?Ae:Dt}function Pr(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function mA(e,t,r,A,i,o){let s=Mr(e),c=Pr(s),d=1<<c,f=ws(t)*d,I=Ds(r,A,f,C.unpackAlignment);return s.subarray(i>>c,i+I>>c)}function bs(e,t,r,A,i,o,s){if(C.currentContext.version>=2){if(_.currentPixelPackBufferBinding)_.readPixels(e,t,r,A,i,o,s);else{let d=Mr(o);_.readPixels(e,t,r,A,i,o,d,s>>Pr(d))}return}let c=mA(o,i,r,A,s,i);if(!c){C.recordError(1280);return}_.readPixels(e,t,r,A,i,o,c)}function Os(e,t,r,A){let i=C.getSource(e,t,r,A);_.shaderSource(C.shaders[e],i)}function Ts(e,t,r,A,i,o,s,c,d){if(C.currentContext.version>=2){if(_.currentPixelUnpackBufferBinding)_.texImage2D(e,t,r,A,i,o,s,c,d);else if(d){let f=Mr(c);_.texImage2D(e,t,r,A,i,o,s,c,f,d>>Pr(f))}else _.texImage2D(e,t,r,A,i,o,s,c,null);return}_.texImage2D(e,t,r,A,i,o,s,c,d?mA(c,s,A,i,d,r):null)}function Rs(e,t,r){let A=Ce[r>>2];_.texParameterf(e,t,A)}function Ms(e,t,r){_.texParameteri(e,t,r)}function Ps(e,t,r,A,i){_.texStorage2D(e,t,r,A,i)}function Ss(e,t,r,A,i,o){_.texStorage3D(e,t,r,A,i,o)}function Fs(e,t,r,A,i,o,s,c,d){if(C.currentContext.version>=2){if(_.currentPixelUnpackBufferBinding)_.texSubImage2D(e,t,r,A,i,o,s,c,d);else if(d){let I=Mr(c);_.texSubImage2D(e,t,r,A,i,o,s,c,I,d>>Pr(I))}else _.texSubImage2D(e,t,r,A,i,o,s,c,null);return}let f=null;d&&(f=mA(c,s,i,o,d,0)),_.texSubImage2D(e,t,r,A,i,o,s,c,f)}function vs(e,t,r,A,i,o,s,c,d,f,I){if(_.currentPixelUnpackBufferBinding)_.texSubImage3D(e,t,r,A,i,o,s,c,d,f,I);else if(I){let B=Mr(f);_.texSubImage3D(e,t,r,A,i,o,s,c,d,f,B,I>>Pr(B))}else _.texSubImage3D(e,t,r,A,i,o,s,c,d,f,null)}function lt(e){let t=_.currentProgram;if(t){let r=t.uniformLocsById[e];return typeof r=="number"&&(t.uniformLocsById[e]=r=_.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?`[${r}]`:""))),r}C.recordError(1282)}function Ns(e,t){_.uniform1f(lt(e),t)}function ks(e,t){_.uniform1i(lt(e),t)}let Cn=[];function Us(e,t,r){if(C.currentContext.version>=2){_.uniform2fv(lt(e),Ce,r>>2,t*2);return}if(t<=144){var A=Cn[2*t-1];for(let i=0;i<2*t;i+=2)A[i]=Ce[r+4*i>>2],A[i+1]=Ce[r+(4*i+4)>>2]}else var A=Ce.subarray(r>>2,r+t*8>>2);_.uniform2fv(lt(e),A)}function xs(e,t,r){if(C.currentContext.version>=2){_.uniform4fv(lt(e),Ce,r>>2,t*4);return}if(t<=72){var A=Cn[4*t-1];let i=Ce;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=Ce.subarray(r>>2,r+t*16>>2);_.uniform4fv(lt(e),A)}let VA=[];function Ls(e,t,r){if(C.currentContext.version>=2){_.uniform4iv(lt(e),m,r>>2,t*4);return}if(t<=72){var A=VA[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);_.uniform4iv(lt(e),A)}function Gs(e,t,r){e=C.programs[e],_.uniformBlockBinding(e,t,r)}function js(e,t,r,A){if(C.currentContext.version>=2){_.uniformMatrix4fv(lt(e),!!r,Ce,A>>2,t*16);return}if(t<=18){var i=Cn[16*t-1];let o=Ce;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=Ce.subarray(A>>2,A+t*64>>2);_.uniformMatrix4fv(lt(e),!!r,i)}function Hs(e){e=C.programs[e],_.useProgram(e),_.currentProgram=e}function Ys(e,t,r,A,i,o){let s=C.currentContext.clientBuffers[e];if(!_.currentArrayBufferBinding){s.size=t,s.type=r,s.normalized=A,s.stride=i,s.ptr=o,s.clientside=!0,s.vertexAttribPointerAdaptor=function(c,d,f,I,B,h){this.vertexAttribPointer(c,d,f,I,B,h)};return}s.clientside=!1,_.vertexAttribPointer(e,t,r,!!A,i,o)}function Xs(e,t,r,A){_.viewport(e,t,r,A)}function pn(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,pn.GMTString||(pn.GMTString=ur("GMT")),m[t+40>>2]=pn.GMTString,t}function Vs(e){return e}function Bn(){if(Bn.called)return;Bn.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[Aa()>>2]=o*60,m[na()>>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),f=ur(c),I=ur(d);i<A?(m[Sr()>>2]=f,m[Sr()+4>>2]=I):(m[Sr()>>2]=I,m[Sr()+4>>2]=f)}function Ks(e,t){Bn();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[Sr()+(c?4:0)>>2];return m[t+40>>2]=d,t}function Ws(e){Bn();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 f=Math.max(s,o),I=r>0?c:f;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 Js(e){qA(e)}function Zs(e){Ye(e)}function hn(e){return e%4===0&&(e%100!==0||e%400===0)}function QA(e,t){let r=0;for(let A=0;A<=t;r+=e[A++]);return r}let mn=[31,29,31,30,31,30,31,31,30,31,30,31],Qn=[31,28,31,30,31,30,31,31,30,31,30,31];function yn(e,t){let r=new Date(e.getTime());for(;t>0;){let A=hn(r.getFullYear()),i=r.getMonth(),o=(A?mn:Qn)[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 KA(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?ue(i):""},s=ue(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 f=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],I=["January","February","March","April","May","June","July","August","September","October","November","December"];function B(D,F,te){let x=typeof D=="number"?D.toString():D||"";for(;x.length<F;)x=te[0]+x;return x}function h(D,F){return B(D,F,"0")}function y(D,F){function te(Ee){return Ee<0?-1:Ee>0?1:0}let x;return(x=te(D.getFullYear()-F.getFullYear()))===0&&(x=te(D.getMonth()-F.getMonth()))===0&&(x=te(D.getDate()-F.getDate())),x}function T(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 U(D){let F=yn(new Date(D.tm_year+1900,0,1),D.tm_yday),te=new Date(F.getFullYear(),0,4),x=new Date(F.getFullYear()+1,0,4),Ee=T(te),be=T(x);return y(Ee,F)<=0?y(be,F)<=0?F.getFullYear()+1:F.getFullYear():F.getFullYear()-1}let Y={"%a"(D){return f[D.tm_wday].substring(0,3)},"%A"(D){return f[D.tm_wday]},"%b"(D){return I[D.tm_mon].substring(0,3)},"%B"(D){return I[D.tm_mon]},"%C"(D){let F=D.tm_year+1900;return h(F/100|0,2)},"%d"(D){return h(D.tm_mday,2)},"%e"(D){return B(D.tm_mday,2," ")},"%g"(D){return U(D).toString().substring(2)},"%G"(D){return U(D)},"%H"(D){return h(D.tm_hour,2)},"%I"(D){let F=D.tm_hour;return F==0?F=12:F>12&&(F-=12),h(F,2)},"%j"(D){return h(D.tm_mday+QA(hn(D.tm_year+1900)?mn:Qn,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 F=new Date(D.tm_year+1900,0,1),te=F.getDay()===0?F:yn(F,7-F.getDay()),x=new Date(D.tm_year+1900,D.tm_mon,D.tm_mday);if(y(te,x)<0){let Ee=QA(hn(x.getFullYear())?mn:Qn,x.getMonth()-1)-31,nt=31-te.getDate()+Ee+x.getDate();return h(Math.ceil(nt/7),2)}return y(te,F)===0?"01":"00"},"%V"(D){let F=new Date(D.tm_year+1900,0,4),te=new Date(D.tm_year+1901,0,4),x=T(F),Ee=T(te),be=yn(new Date(D.tm_year+1900,0,1),D.tm_yday);if(y(be,x)<0)return"53";if(y(Ee,be)<=0)return"01";let nt;return x.getFullYear()<D.tm_year+1900?nt=D.tm_yday+32-x.getDate():nt=D.tm_yday+1-x.getDate(),h(Math.ceil(nt/7),2)},"%w"(D){return D.tm_wday},"%W"(D){let F=new Date(D.tm_year,0,1),te=F.getDay()===1?F:yn(F,F.getDay()===0?1:7-F.getDay()+1),x=new Date(D.tm_year+1900,D.tm_mon,D.tm_mday);if(y(te,x)<0){let Ee=QA(hn(x.getFullYear())?mn:Qn,x.getMonth()-1)-31,nt=31-te.getDate()+Ee+x.getDate();return h(Math.ceil(nt/7),2)}return y(te,F)===0?"01":"00"},"%y"(D){return(D.tm_year+1900).toString().substring(2)},"%Y"(D){return D.tm_year+1900},"%z"(D){let F=D.tm_gmtoff,te=F>=0;return F=Math.abs(F)/60,F=F/60*100+F%60,(te?"+":"-")+`0000${F}`.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 q=wn(s,!1);return q.length>t?0:(xr(q,e),q.length-1)}function zs(e,t,r,A){return KA(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 WA=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},_n=365,Dn=146;Object.defineProperties(WA.prototype,{read:{get(){return(this.mode&_n)===_n},set(e){e?this.mode|=_n:this.mode&=~_n}},write:{get(){return(this.mode&Dn)===Dn},set(e){e?this.mode|=Dn:this.mode&=~Dn}},isFolder:{get(){return a.isDir(this.mode)}},isDevice:{get(){return a.isChrdev(this.mode)}}}),a.FSNode=WA,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,lA(),An=n.PureVirtualError=or(Error,"PureVirtualError"),mr(),EA(),Rt=n.BindingError=or(Error,"BindingError"),R=n.InternalError=or(Error,"InternalError"),br(),Ci(),NA=n.UnboundTypeError=or(Error,"UnboundTypeError");let _;for(var Le=0;Le<32;++Le)YA.push(new Array(Le));let $s=new Float32Array(288);for(var Le=0;Le<288;++Le)Cn[Le]=$s.subarray(0,Le+1);let qs=new Int32Array(288);for(var Le=0;Le<288;++Le)VA[Le]=qs.subarray(0,Le+1);let hc=!0;function wn(e,t,r){let A=r>0?r:_t(e)+1,i=new Array(A),o=yt(e,i,0,i.length);return t&&(i.length=o),i}let ea=typeof atob=="function"?atob:function(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",r="",A,i,o,s,c,d,f,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++)),f=t.indexOf(e.charAt(I++)),A=s<<2|c>>4,i=(c&15)<<4|d>>2,o=(d&3)<<6|f,r=r+String.fromCharCode(A),d!==64&&(r=r+String.fromCharCode(i)),f!==64&&(r=r+String.fromCharCode(o));while(I<e.length);return r};function mc(e){if(typeof ht=="boolean"&&ht){let t=Buffer.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}try{let t=ea(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 JA={HaveOffsetConverter:Xr,__cxa_allocate_exception:tr,__cxa_atexit:Wr,__cxa_begin_catch:Jr,__cxa_end_catch:pr,__cxa_find_matching_catch_2:$r,__cxa_find_matching_catch_3:zn,__cxa_free_exception:Zr,__cxa_rethrow:$n,__cxa_thread_atexit:qn,__cxa_throw:qr,__resumeException:Zn,__sys_fcntl64:rA,__sys_ioctl:nA,__sys_mmap2:iA,__sys_open:nn,__sys_stat64:oA,_embind_create_inheriting_constructor:an,_embind_finalize_value_object:N,_embind_register_bigint:L,_embind_register_bool:re,_embind_register_class:mi,_embind_register_class_class_function:Qi,_embind_register_class_constructor:yi,_embind_register_class_function:_i,_embind_register_class_property:Di,_embind_register_emval:wi,_embind_register_float:Oi,_embind_register_function:Ti,_embind_register_integer:Mi,_embind_register_memory_view:Pi,_embind_register_std_string:Si,_embind_register_std_wstring:Fi,_embind_register_value_object:vi,_embind_register_value_object_field:Ni,_embind_register_void:ki,_emval_call_void_method:Li,_emval_decref:xA,_emval_get_method_caller:Hi,_emval_incref:Yi,_emval_take_value:Xi,abort:Vi,clock_gettime:Wi,dlopen:Ji,dlsym:Zi,emscripten_asm_const_int:$i,emscripten_get_heap_max:qi,emscripten_memcpy_big:eo,emscripten_pc_get_function:to,emscripten_resize_heap:no,emscripten_stack_snapshot:Ao,emscripten_stack_unwind_buffer:io,emscripten_thread_sleep:oo,emscripten_webgl_create_context:Co,emscripten_webgl_destroy_context:Bo,emscripten_webgl_get_context_attributes:ho,emscripten_webgl_get_current_context:jA,emscripten_webgl_init_context_attributes:mo,emscripten_webgl_make_context_current:HA,environ_get:yo,environ_sizes_get:_o,exit:Vr,fd_close:Do,fd_read:wo,fd_seek:bo,fd_write:Oo,getTempRet0:To,getentropy:fn,glActiveTexture:Ro,glAttachShader:Mo,glBindAttribLocation:Po,glBindBuffer:So,glBindBufferBase:Fo,glBindFramebuffer:vo,glBindTexture:No,glBindVertexArray:ko,glBufferData:Uo,glClientWaitSync:Lo,glCompileShader:Go,glCreateProgram:jo,glCreateShader:Ho,glDeleteBuffers:Yo,glDeleteFramebuffers:Xo,glDeleteProgram:Vo,glDeleteShader:Ko,glDeleteSync:Wo,glDeleteTextures:Jo,glDeleteVertexArrays:Zo,glDisable:zo,glDisableVertexAttribArray:$o,glDrawArrays:qo,glDrawBuffers:es,glEnableVertexAttribArray:ts,glFenceSync:rs,glFinish:ns,glFlush:As,glFramebufferTexture2D:is,glFramebufferTextureLayer:os,glGenBuffers:ss,glGenFramebuffers:as,glGenTextures:cs,glGenVertexArrays:gs,glGetAttribLocation:ls,glGetError:us,glGetIntegerv:Cs,glGetString:ps,glGetUniformBlockIndex:Bs,glGetUniformLocation:Qs,glLinkProgram:ys,glPixelStorei:_s,glReadPixels:bs,glShaderSource:Os,glTexImage2D:Ts,glTexParameterfv:Rs,glTexParameteri:Ms,glTexStorage2D:Ps,glTexStorage3D:Ss,glTexSubImage2D:Fs,glTexSubImage3D:vs,glUniform1f:Ns,glUniform1i:ks,glUniform2fv:Us,glUniform4fv:xs,glUniform4iv:Ls,glUniformBlockBinding:Gs,glUniformMatrix4fv:js,glUseProgram:Hs,glVertexAttribPointer:Ys,glViewport:Xs,gmtime_r:pn,invoke_diii:Ta,invoke_i:Fa,invoke_ii:Ia,invoke_iii:ga,invoke_iiii:Ra,invoke_iiiii:ya,invoke_iiiiii:wa,invoke_iiiiiii:ua,invoke_iiiiiiiddi:tc,invoke_iiiiiiii:Oa,invoke_iiiiiiiii:Ua,invoke_v:da,invoke_vdiii:ic,invoke_vi:ca,invoke_vididdii:Za,invoke_vidii:$a,invoke_vii:Ea,invoke_viid:aa,invoke_viidi:Ac,invoke_viididii:ka,invoke_viii:Ca,invoke_viiid:za,invoke_viiidd:Da,invoke_viiiddi:Sa,invoke_viiidi:va,invoke_viiii:Qa,invoke_viiiid:rc,invoke_viiiidi:Na,invoke_viiiidid:nc,invoke_viiiidiidiiiiiii:Ja,invoke_viiiifiifiiiiiii:Wa,invoke_viiiii:la,invoke_viiiiid:Ga,invoke_viiiiif:Xa,invoke_viiiiii:pa,invoke_viiiiiid:ja,invoke_viiiiiif:Va,invoke_viiiiiii:Ba,invoke_viiiiiiiddi:ec,invoke_viiiiiiidiiii:Ya,invoke_viiiiiiifiiii:Ka,invoke_viiiiiiii:ha,invoke_viiiiiiiidd:La,invoke_viiiiiiiidf:xa,invoke_viiiiiiiii:ma,invoke_viiiiiiiiidd:Ma,invoke_viiiiiiiiiddi:Pa,invoke_viiiiiiiiii:fa,invoke_viiiiiiiiiiddi:qa,invoke_viiiiiiiiiii:_a,invoke_viiiiiiiiiiii:Ha,invoke_viiiiiiiiiiiii:ba,llvm_eh_typeid_for:Vs,localtime_r:Ks,mktime:Ws,proc_exit:Js,setTempRet0:Zs,strftime:KA,strftime_l:zs};let Qc=kt(),yc=n.___wasm_call_ctors=W("__wasm_call_ctors");var ut=n._free=W("free"),Kt=n._malloc=W("malloc"),ta=n.___errno_location=W("__errno_location");let _c=n._fflush=W("fflush");var ra=n.___getTypeName=W("__getTypeName");let Dc=n.___embind_register_native_and_builtin_types=W("__embind_register_native_and_builtin_types"),wc=n._emscripten_main_thread_process_queued_calls=W("emscripten_main_thread_process_queued_calls");var yA=n._emscripten_stack_get_end=function(){return(yA=n._emscripten_stack_get_end=n.asm.emscripten_stack_get_end).apply(null,arguments)},Sr=n.__get_tzname=W("_get_tzname"),na=n.__get_daylight=W("_get_daylight"),Aa=n.__get_timezone=W("_get_timezone"),G=n.stackSave=W("stackSave"),j=n.stackRestore=W("stackRestore"),ZA=n.stackAlloc=W("stackAlloc"),zA=n._emscripten_stack_init=function(){return(zA=n._emscripten_stack_init=n.asm.emscripten_stack_init).apply(null,arguments)},ia=n._emscripten_stack_get_free=function(){return(ia=n._emscripten_stack_get_free=n.asm.emscripten_stack_get_free).apply(null,arguments)};let bc=n._saveSetjmp=W("saveSetjmp");var H=n._setThrew=W("setThrew"),$A=n.___cxa_can_catch=W("__cxa_can_catch"),oa=n.___cxa_is_pointer_type=W("__cxa_is_pointer_type"),sa=n._memalign=W("memalign");let Oc=n._emscripten_builtin_malloc=W("emscripten_builtin_malloc"),Tc=n._emscripten_builtin_free=W("emscripten_builtin_free"),Rc=n._emscripten_builtin_memalign=W("emscripten_builtin_memalign"),Mc=n.dynCall_jii=W("dynCall_jii"),Pc=n.dynCall_viji=W("dynCall_viji"),Sc=n.dynCall_jjj=W("dynCall_jjj"),Fc=n.dynCall_iiiijj=W("dynCall_iiiijj"),vc=n.dynCall_viijj=W("dynCall_viijj"),Nc=n.dynCall_viiijjjj=W("dynCall_viiijjjj"),kc=n.dynCall_ji=W("dynCall_ji"),Uc=n.dynCall_vij=W("dynCall_vij"),xc=n.dynCall_viijii=W("dynCall_viijii"),Lc=n.dynCall_vj=W("dynCall_vj"),Gc=n.dynCall_viij=W("dynCall_viij"),jc=n.dynCall_viiiiij=W("dynCall_viiiiij"),Hc=n.dynCall_iijjiiii=W("dynCall_iijjiiii"),Yc=n.dynCall_jiji=W("dynCall_jiji"),Xc=n.dynCall_iiiiij=W("dynCall_iiiiij"),Vc=n.dynCall_iiiiijj=W("dynCall_iiiiijj"),Kc=n.dynCall_iiiiiijj=W("dynCall_iiiiiijj");function aa(e,t,r,A){let i=G();try{v.get(e)(t,r,A)}catch(o){if(j(i),o!==o+0&&o!=="longjmp")throw o;H(1,0)}}function ca(e,t){let r=G();try{v.get(e)(t)}catch(A){if(j(r),A!==A+0&&A!=="longjmp")throw A;H(1,0)}}function ga(e,t,r){let A=G();try{return v.get(e)(t,r)}catch(i){if(j(A),i!==i+0&&i!=="longjmp")throw i;H(1,0)}}function la(e,t,r,A,i,o){let s=G();try{v.get(e)(t,r,A,i,o)}catch(c){if(j(s),c!==c+0&&c!=="longjmp")throw c;H(1,0)}}function ua(e,t,r,A,i,o,s){let c=G();try{return v.get(e)(t,r,A,i,o,s)}catch(d){if(j(c),d!==d+0&&d!=="longjmp")throw d;H(1,0)}}function da(e){let t=G();try{v.get(e)()}catch(r){if(j(t),r!==r+0&&r!=="longjmp")throw r;H(1,0)}}function fa(e,t,r,A,i,o,s,c,d,f,I){let B=G();try{v.get(e)(t,r,A,i,o,s,c,d,f,I)}catch(h){if(j(B),h!==h+0&&h!=="longjmp")throw h;H(1,0)}}function Ea(e,t,r){let A=G();try{v.get(e)(t,r)}catch(i){if(j(A),i!==i+0&&i!=="longjmp")throw i;H(1,0)}}function Ia(e,t){let r=G();try{return v.get(e)(t)}catch(A){if(j(r),A!==A+0&&A!=="longjmp")throw A;H(1,0)}}function Ca(e,t,r,A){let i=G();try{v.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,i,o,s){let c=G();try{v.get(e)(t,r,A,i,o,s)}catch(d){if(j(c),d!==d+0&&d!=="longjmp")throw d;H(1,0)}}function Ba(e,t,r,A,i,o,s,c){let d=G();try{v.get(e)(t,r,A,i,o,s,c)}catch(f){if(j(d),f!==f+0&&f!=="longjmp")throw f;H(1,0)}}function ha(e,t,r,A,i,o,s,c,d){let f=G();try{v.get(e)(t,r,A,i,o,s,c,d)}catch(I){if(j(f),I!==I+0&&I!=="longjmp")throw I;H(1,0)}}function ma(e,t,r,A,i,o,s,c,d,f){let I=G();try{v.get(e)(t,r,A,i,o,s,c,d,f)}catch(B){if(j(I),B!==B+0&&B!=="longjmp")throw B;H(1,0)}}function Qa(e,t,r,A,i){let o=G();try{v.get(e)(t,r,A,i)}catch(s){if(j(o),s!==s+0&&s!=="longjmp")throw s;H(1,0)}}function ya(e,t,r,A,i){let o=G();try{return v.get(e)(t,r,A,i)}catch(s){if(j(o),s!==s+0&&s!=="longjmp")throw s;H(1,0)}}function _a(e,t,r,A,i,o,s,c,d,f,I,B){let h=G();try{v.get(e)(t,r,A,i,o,s,c,d,f,I,B)}catch(y){if(j(h),y!==y+0&&y!=="longjmp")throw y;H(1,0)}}function Da(e,t,r,A,i,o){let s=G();try{v.get(e)(t,r,A,i,o)}catch(c){if(j(s),c!==c+0&&c!=="longjmp")throw c;H(1,0)}}function wa(e,t,r,A,i,o){let s=G();try{return v.get(e)(t,r,A,i,o)}catch(c){if(j(s),c!==c+0&&c!=="longjmp")throw c;H(1,0)}}function ba(e,t,r,A,i,o,s,c,d,f,I,B,h,y){let T=G();try{v.get(e)(t,r,A,i,o,s,c,d,f,I,B,h,y)}catch(U){if(j(T),U!==U+0&&U!=="longjmp")throw U;H(1,0)}}function Oa(e,t,r,A,i,o,s,c){let d=G();try{return v.get(e)(t,r,A,i,o,s,c)}catch(f){if(j(d),f!==f+0&&f!=="longjmp")throw f;H(1,0)}}function Ta(e,t,r,A){let i=G();try{return v.get(e)(t,r,A)}catch(o){if(j(i),o!==o+0&&o!=="longjmp")throw o;H(1,0)}}function Ra(e,t,r,A){let i=G();try{return v.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,f,I,B){let h=G();try{v.get(e)(t,r,A,i,o,s,c,d,f,I,B)}catch(y){if(j(h),y!==y+0&&y!=="longjmp")throw y;H(1,0)}}function Pa(e,t,r,A,i,o,s,c,d,f,I,B,h){let y=G();try{v.get(e)(t,r,A,i,o,s,c,d,f,I,B,h)}catch(T){if(j(y),T!==T+0&&T!=="longjmp")throw T;H(1,0)}}function Sa(e,t,r,A,i,o,s){let c=G();try{v.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{return v.get(e)()}catch(r){if(j(t),r!==r+0&&r!=="longjmp")throw r;H(1,0)}}function va(e,t,r,A,i,o){let s=G();try{v.get(e)(t,r,A,i,o)}catch(c){if(j(s),c!==c+0&&c!=="longjmp")throw c;H(1,0)}}function Na(e,t,r,A,i,o,s){let c=G();try{v.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{v.get(e)(t,r,A,i,o,s,c)}catch(f){if(j(d),f!==f+0&&f!=="longjmp")throw f;H(1,0)}}function Ua(e,t,r,A,i,o,s,c,d){let f=G();try{return v.get(e)(t,r,A,i,o,s,c,d)}catch(I){if(j(f),I!==I+0&&I!=="longjmp")throw I;H(1,0)}}function xa(e,t,r,A,i,o,s,c,d,f,I){let B=G();try{v.get(e)(t,r,A,i,o,s,c,d,f,I)}catch(h){if(j(B),h!==h+0&&h!=="longjmp")throw h;H(1,0)}}function La(e,t,r,A,i,o,s,c,d,f,I){let B=G();try{v.get(e)(t,r,A,i,o,s,c,d,f,I)}catch(h){if(j(B),h!==h+0&&h!=="longjmp")throw h;H(1,0)}}function Ga(e,t,r,A,i,o,s){let c=G();try{v.get(e)(t,r,A,i,o,s)}catch(d){if(j(c),d!==d+0&&d!=="longjmp")throw d;H(1,0)}}function ja(e,t,r,A,i,o,s,c){let d=G();try{v.get(e)(t,r,A,i,o,s,c)}catch(f){if(j(d),f!==f+0&&f!=="longjmp")throw f;H(1,0)}}function Ha(e,t,r,A,i,o,s,c,d,f,I,B,h){let y=G();try{v.get(e)(t,r,A,i,o,s,c,d,f,I,B,h)}catch(T){if(j(y),T!==T+0&&T!=="longjmp")throw T;H(1,0)}}function Ya(e,t,r,A,i,o,s,c,d,f,I,B,h){let y=G();try{v.get(e)(t,r,A,i,o,s,c,d,f,I,B,h)}catch(T){if(j(y),T!==T+0&&T!=="longjmp")throw T;H(1,0)}}function Xa(e,t,r,A,i,o,s){let c=G();try{v.get(e)(t,r,A,i,o,s)}catch(d){if(j(c),d!==d+0&&d!=="longjmp")throw d;H(1,0)}}function Va(e,t,r,A,i,o,s,c){let d=G();try{v.get(e)(t,r,A,i,o,s,c)}catch(f){if(j(d),f!==f+0&&f!=="longjmp")throw f;H(1,0)}}function Ka(e,t,r,A,i,o,s,c,d,f,I,B,h){let y=G();try{v.get(e)(t,r,A,i,o,s,c,d,f,I,B,h)}catch(T){if(j(y),T!==T+0&&T!=="longjmp")throw T;H(1,0)}}function Wa(e,t,r,A,i,o,s,c,d,f,I,B,h,y,T,U){let Y=G();try{v.get(e)(t,r,A,i,o,s,c,d,f,I,B,h,y,T,U)}catch(q){if(j(Y),q!==q+0&&q!=="longjmp")throw q;H(1,0)}}function Ja(e,t,r,A,i,o,s,c,d,f,I,B,h,y,T,U){let Y=G();try{v.get(e)(t,r,A,i,o,s,c,d,f,I,B,h,y,T,U)}catch(q){if(j(Y),q!==q+0&&q!=="longjmp")throw q;H(1,0)}}function Za(e,t,r,A,i,o,s,c){let d=G();try{v.get(e)(t,r,A,i,o,s,c)}catch(f){if(j(d),f!==f+0&&f!=="longjmp")throw f;H(1,0)}}function za(e,t,r,A,i){let o=G();try{v.get(e)(t,r,A,i)}catch(s){if(j(o),s!==s+0&&s!=="longjmp")throw s;H(1,0)}}function $a(e,t,r,A,i){let o=G();try{v.get(e)(t,r,A,i)}catch(s){if(j(o),s!==s+0&&s!=="longjmp")throw s;H(1,0)}}function qa(e,t,r,A,i,o,s,c,d,f,I,B,h,y){let T=G();try{v.get(e)(t,r,A,i,o,s,c,d,f,I,B,h,y)}catch(U){if(j(T),U!==U+0&&U!=="longjmp")throw U;H(1,0)}}function ec(e,t,r,A,i,o,s,c,d,f,I){let B=G();try{v.get(e)(t,r,A,i,o,s,c,d,f,I)}catch(h){if(j(B),h!==h+0&&h!=="longjmp")throw h;H(1,0)}}function tc(e,t,r,A,i,o,s,c,d,f){let I=G();try{return v.get(e)(t,r,A,i,o,s,c,d,f)}catch(B){if(j(I),B!==B+0&&B!=="longjmp")throw B;H(1,0)}}function rc(e,t,r,A,i,o){let s=G();try{v.get(e)(t,r,A,i,o)}catch(c){if(j(s),c!==c+0&&c!=="longjmp")throw c;H(1,0)}}function nc(e,t,r,A,i,o,s,c){let d=G();try{v.get(e)(t,r,A,i,o,s,c)}catch(f){if(j(d),f!==f+0&&f!=="longjmp")throw f;H(1,0)}}function Ac(e,t,r,A,i){let o=G();try{v.get(e)(t,r,A,i)}catch(s){if(j(o),s!==s+0&&s!=="longjmp")throw s;H(1,0)}}function ic(e,t,r,A,i){let o=G();try{v.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(){u("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"intArrayToString")||(n.intArrayToString=function(){u("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ccall")||(n.ccall=function(){u("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"cwrap")||(n.cwrap=function(){u("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setValue")||(n.setValue=function(){u("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getValue")||(n.getValue=function(){u("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocate")||(n.allocate=function(){u("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ArrayToString")||(n.UTF8ArrayToString=function(){u("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ToString")||(n.UTF8ToString=function(){u("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8Array")||(n.stringToUTF8Array=function(){u("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8")||(n.stringToUTF8=function(){u("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF8")||(n.lengthBytesUTF8=function(){u("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){u("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreRun")||(n.addOnPreRun=function(){u("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnInit")||(n.addOnInit=function(){u("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreMain")||(n.addOnPreMain=function(){u("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnExit")||(n.addOnExit=function(){u("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPostRun")||(n.addOnPostRun=function(){u("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeStringToMemory")||(n.writeStringToMemory=function(){u("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeArrayToMemory")||(n.writeArrayToMemory=function(){u("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeAsciiToMemory")||(n.writeAsciiToMemory=function(){u("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.addRunDependency=Ot,n.removeRunDependency=$e,Object.getOwnPropertyDescriptor(n,"FS_createFolder")||(n.FS_createFolder=function(){u("'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(){u("'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(){u("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFunctionTables")||(n.getFunctionTables=function(){u("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignFunctionTables")||(n.alignFunctionTables=function(){u("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFunctions")||(n.registerFunctions=function(){u("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addFunction")||(n.addFunction=function(){u("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"removeFunction")||(n.removeFunction=function(){u("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){u("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"prettyPrint")||(n.prettyPrint=function(){u("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){u("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCompilerSetting")||(n.getCompilerSetting=function(){u("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"print")||(n.print=function(){u("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"printErr")||(n.printErr=function(){u("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTempRet0")||(n.getTempRet0=function(){u("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setTempRet0")||(n.setTempRet0=function(){u("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callMain")||(n.callMain=function(){u("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"abort")||(n.abort=function(){u("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"keepRuntimeAlive")||(n.keepRuntimeAlive=function(){u("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"zeroMemory")||(n.zeroMemory=function(){u("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToNewUTF8")||(n.stringToNewUTF8=function(){u("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setFileTime")||(n.setFileTime=function(){u("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscripten_realloc_buffer")||(n.emscripten_realloc_buffer=function(){u("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ENV")||(n.ENV=function(){u("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_CODES")||(n.ERRNO_CODES=function(){u("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_MESSAGES")||(n.ERRNO_MESSAGES=function(){u("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setErrNo")||(n.setErrNo=function(){u("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton4")||(n.inetPton4=function(){u("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop4")||(n.inetNtop4=function(){u("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton6")||(n.inetPton6=function(){u("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop6")||(n.inetNtop6=function(){u("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readSockaddr")||(n.readSockaddr=function(){u("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeSockaddr")||(n.writeSockaddr=function(){u("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"DNS")||(n.DNS=function(){u("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getHostByName")||(n.getHostByName=function(){u("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GAI_ERRNO_MESSAGES")||(n.GAI_ERRNO_MESSAGES=function(){u("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Protocols")||(n.Protocols=function(){u("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Sockets")||(n.Sockets=function(){u("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getRandomDevice")||(n.getRandomDevice=function(){u("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"traverseStack")||(n.traverseStack=function(){u("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UNWIND_CACHE")||(n.UNWIND_CACHE=function(){u("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"withBuiltinMalloc")||(n.withBuiltinMalloc=function(){u("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgsArray")||(n.readAsmConstArgsArray=function(){u("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgs")||(n.readAsmConstArgs=function(){u("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mainThreadEM_ASM")||(n.mainThreadEM_ASM=function(){u("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_q")||(n.jstoi_q=function(){u("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_s")||(n.jstoi_s=function(){u("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getExecutableName")||(n.getExecutableName=function(){u("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"listenOnce")||(n.listenOnce=function(){u("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"autoResumeAudioContext")||(n.autoResumeAudioContext=function(){u("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCallLegacy")||(n.dynCallLegacy=function(){u("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getDynCaller")||(n.getDynCaller=function(){u("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){u("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callRuntimeCallbacks")||(n.callRuntimeCallbacks=function(){u("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePush")||(n.runtimeKeepalivePush=function(){u("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePop")||(n.runtimeKeepalivePop=function(){u("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callUserCallback")||(n.callUserCallback=function(){u("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"maybeExit")||(n.maybeExit=function(){u("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"safeSetTimeout")||(n.safeSetTimeout=function(){u("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asmjsMangle")||(n.asmjsMangle=function(){u("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asyncLoad")||(n.asyncLoad=function(){u("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignMemory")||(n.alignMemory=function(){u("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mmapAlloc")||(n.mmapAlloc=function(){u("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reallyNegative")||(n.reallyNegative=function(){u("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unSign")||(n.unSign=function(){u("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reSign")||(n.reSign=function(){u("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"formatString")||(n.formatString=function(){u("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH")||(n.PATH=function(){u("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH_FS")||(n.PATH_FS=function(){u("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SYSCALLS")||(n.SYSCALLS=function(){u("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMmap2")||(n.syscallMmap2=function(){u("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMunmap")||(n.syscallMunmap=function(){u("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketFromFD")||(n.getSocketFromFD=function(){u("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketAddress")||(n.getSocketAddress=function(){u("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"JSEvents")||(n.JSEvents=function(){u("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerKeyEventCallback")||(n.registerKeyEventCallback=function(){u("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"specialHTMLTargets")||(n.specialHTMLTargets=function(){u("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findEventTarget")||(n.findEventTarget=function(){u("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findCanvasEventTarget")||(n.findCanvasEventTarget=function(){u("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBoundingClientRect")||(n.getBoundingClientRect=function(){u("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillMouseEventData")||(n.fillMouseEventData=function(){u("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerMouseEventCallback")||(n.registerMouseEventCallback=function(){u("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerWheelEventCallback")||(n.registerWheelEventCallback=function(){u("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerUiEventCallback")||(n.registerUiEventCallback=function(){u("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFocusEventCallback")||(n.registerFocusEventCallback=function(){u("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceOrientationEventData")||(n.fillDeviceOrientationEventData=function(){u("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceOrientationEventCallback")||(n.registerDeviceOrientationEventCallback=function(){u("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceMotionEventData")||(n.fillDeviceMotionEventData=function(){u("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceMotionEventCallback")||(n.registerDeviceMotionEventCallback=function(){u("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"screenOrientation")||(n.screenOrientation=function(){u("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillOrientationChangeEventData")||(n.fillOrientationChangeEventData=function(){u("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerOrientationChangeEventCallback")||(n.registerOrientationChangeEventCallback=function(){u("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillFullscreenChangeEventData")||(n.fillFullscreenChangeEventData=function(){u("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFullscreenChangeEventCallback")||(n.registerFullscreenChangeEventCallback=function(){u("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerRestoreOldStyle")||(n.registerRestoreOldStyle=function(){u("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"hideEverythingExceptGivenElement")||(n.hideEverythingExceptGivenElement=function(){u("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreHiddenElements")||(n.restoreHiddenElements=function(){u("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setLetterbox")||(n.setLetterbox=function(){u("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"currentFullscreenStrategy")||(n.currentFullscreenStrategy=function(){u("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreOldWindowedStyle")||(n.restoreOldWindowedStyle=function(){u("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"softFullscreenResizeWebGLRenderTarget")||(n.softFullscreenResizeWebGLRenderTarget=function(){u("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"doRequestFullscreen")||(n.doRequestFullscreen=function(){u("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillPointerlockChangeEventData")||(n.fillPointerlockChangeEventData=function(){u("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockChangeEventCallback")||(n.registerPointerlockChangeEventCallback=function(){u("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockErrorEventCallback")||(n.registerPointerlockErrorEventCallback=function(){u("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requestPointerLock")||(n.requestPointerLock=function(){u("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillVisibilityChangeEventData")||(n.fillVisibilityChangeEventData=function(){u("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerVisibilityChangeEventCallback")||(n.registerVisibilityChangeEventCallback=function(){u("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerTouchEventCallback")||(n.registerTouchEventCallback=function(){u("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillGamepadEventData")||(n.fillGamepadEventData=function(){u("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerGamepadEventCallback")||(n.registerGamepadEventCallback=function(){u("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBeforeUnloadEventCallback")||(n.registerBeforeUnloadEventCallback=function(){u("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillBatteryEventData")||(n.fillBatteryEventData=function(){u("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"battery")||(n.battery=function(){u("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBatteryEventCallback")||(n.registerBatteryEventCallback=function(){u("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setCanvasElementSize")||(n.setCanvasElementSize=function(){u("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCanvasElementSize")||(n.getCanvasElementSize=function(){u("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"polyfillSetImmediate")||(n.polyfillSetImmediate=function(){u("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangle")||(n.demangle=function(){u("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangleAll")||(n.demangleAll=function(){u("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jsStackTrace")||(n.jsStackTrace=function(){u("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){u("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getEnvStrings")||(n.getEnvStrings=function(){u("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"checkWasiClock")||(n.checkWasiClock=function(){u("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64")||(n.writeI53ToI64=function(){u("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Clamped")||(n.writeI53ToI64Clamped=function(){u("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Signaling")||(n.writeI53ToI64Signaling=function(){u("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Clamped")||(n.writeI53ToU64Clamped=function(){u("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Signaling")||(n.writeI53ToU64Signaling=function(){u("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromI64")||(n.readI53FromI64=function(){u("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromU64")||(n.readI53FromU64=function(){u("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertI32PairToI53")||(n.convertI32PairToI53=function(){u("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertU32PairToI53")||(n.convertU32PairToI53=function(){u("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"uncaughtExceptionCount")||(n.uncaughtExceptionCount=function(){u("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionLast")||(n.exceptionLast=function(){u("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionCaught")||(n.exceptionCaught=function(){u("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ExceptionInfo")||(n.ExceptionInfo=function(){u("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"CatchInfo")||(n.CatchInfo=function(){u("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_addRef")||(n.exception_addRef=function(){u("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_decRef")||(n.exception_decRef=function(){u("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Browser")||(n.Browser=function(){u("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"funcWrappers")||(n.funcWrappers=function(){u("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){u("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setMainLoop")||(n.setMainLoop=function(){u("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"wget")||(n.wget=function(){u("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"FS")||(n.FS=function(){u("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"MEMFS")||(n.MEMFS=function(){u("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"TTY")||(n.TTY=function(){u("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PIPEFS")||(n.PIPEFS=function(){u("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SOCKFS")||(n.SOCKFS=function(){u("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"_setNetworkCallback")||(n._setNetworkCallback=function(){u("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tempFixedLengthArray")||(n.tempFixedLengthArray=function(){u("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"miniTempWebGLFloatBuffers")||(n.miniTempWebGLFloatBuffers=function(){u("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapObjectForWebGLType")||(n.heapObjectForWebGLType=function(){u("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapAccessShiftForWebGLHeap")||(n.heapAccessShiftForWebGLHeap=function(){u("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.GL=C,Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGet")||(n.emscriptenWebGLGet=function(){u("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"computeUnpackAlignedImageSize")||(n.computeUnpackAlignedImageSize=function(){u("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetTexPixelData")||(n.emscriptenWebGLGetTexPixelData=function(){u("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetUniform")||(n.emscriptenWebGLGetUniform=function(){u("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetUniformLocation")||(n.webglGetUniformLocation=function(){u("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglPrepareUniformLocationsBeforeFirstUse")||(n.webglPrepareUniformLocationsBeforeFirstUse=function(){u("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetLeftBracePos")||(n.webglGetLeftBracePos=function(){u("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetVertexAttrib")||(n.emscriptenWebGLGetVertexAttrib=function(){u("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetBufferBinding")||(n.emscriptenWebGLGetBufferBinding=function(){u("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLValidateMapBufferTarget")||(n.emscriptenWebGLValidateMapBufferTarget=function(){u("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeGLArray")||(n.writeGLArray=function(){u("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AL")||(n.AL=function(){u("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_unicode")||(n.SDL_unicode=function(){u("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_ttfContext")||(n.SDL_ttfContext=function(){u("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_audio")||(n.SDL_audio=function(){u("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL")||(n.SDL=function(){u("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_gfx")||(n.SDL_gfx=function(){u("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLUT")||(n.GLUT=function(){u("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"EGL")||(n.EGL=function(){u("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW_Window")||(n.GLFW_Window=function(){u("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW")||(n.GLFW=function(){u("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLEW")||(n.GLEW=function(){u("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"IDBStore")||(n.IDBStore=function(){u("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runAndAbortIfError")||(n.runAndAbortIfError=function(){u("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_handle_array")||(n.emval_handle_array=function(){u("'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(){u("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_symbols")||(n.emval_symbols=function(){u("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_emval")||(n.init_emval=function(){u("'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(){u("'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(){u("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getStringOrSymbol")||(n.getStringOrSymbol=function(){u("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireHandle")||(n.requireHandle=function(){u("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_newers")||(n.emval_newers=function(){u("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftEmvalAllocator")||(n.craftEmvalAllocator=function(){u("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_get_global")||(n.emval_get_global=function(){u("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_methodCallers")||(n.emval_methodCallers=function(){u("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"InternalError")||(n.InternalError=function(){u("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"BindingError")||(n.BindingError=function(){u("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UnboundTypeError")||(n.UnboundTypeError=function(){u("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PureVirtualError")||(n.PureVirtualError=function(){u("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_embind")||(n.init_embind=function(){u("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInternalError")||(n.throwInternalError=function(){u("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwBindingError")||(n.throwBindingError=function(){u("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwUnboundTypeError")||(n.throwUnboundTypeError=function(){u("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ensureOverloadTable")||(n.ensureOverloadTable=function(){u("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exposePublicSymbol")||(n.exposePublicSymbol=function(){u("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"replacePublicSymbol")||(n.replacePublicSymbol=function(){u("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"extendError")||(n.extendError=function(){u("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"createNamedFunction")||(n.createNamedFunction=function(){u("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredInstances")||(n.registeredInstances=function(){u("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBasestPointer")||(n.getBasestPointer=function(){u("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerInheritedInstance")||(n.registerInheritedInstance=function(){u("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unregisterInheritedInstance")||(n.unregisterInheritedInstance=function(){u("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstance")||(n.getInheritedInstance=function(){u("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstanceCount")||(n.getInheritedInstanceCount=function(){u("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getLiveInheritedInstances")||(n.getLiveInheritedInstances=function(){u("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredTypes")||(n.registeredTypes=function(){u("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"awaitingDependencies")||(n.awaitingDependencies=function(){u("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"typeDependencies")||(n.typeDependencies=function(){u("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredPointers")||(n.registeredPointers=function(){u("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerType")||(n.registerType=function(){u("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"whenDependentTypesAreResolved")||(n.whenDependentTypesAreResolved=function(){u("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_charCodes")||(n.embind_charCodes=function(){u("'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(){u("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readLatin1String")||(n.readLatin1String=function(){u("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTypeName")||(n.getTypeName=function(){u("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heap32VectorToArray")||(n.heap32VectorToArray=function(){u("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireRegisteredType")||(n.requireRegisteredType=function(){u("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getShiftFromSize")||(n.getShiftFromSize=function(){u("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"integerReadValueFromPointer")||(n.integerReadValueFromPointer=function(){u("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"enumReadValueFromPointer")||(n.enumReadValueFromPointer=function(){u("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"floatReadValueFromPointer")||(n.floatReadValueFromPointer=function(){u("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"simpleReadValueFromPointer")||(n.simpleReadValueFromPointer=function(){u("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructors")||(n.runDestructors=function(){u("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"new_")||(n.new_=function(){u("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftInvokerFunction")||(n.craftInvokerFunction=function(){u("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind__requireFunction")||(n.embind__requireFunction=function(){u("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tupleRegistrations")||(n.tupleRegistrations=function(){u("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"structRegistrations")||(n.structRegistrations=function(){u("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"genericPointerToWireType")||(n.genericPointerToWireType=function(){u("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"constNoSmartPtrRawPointerToWireType")||(n.constNoSmartPtrRawPointerToWireType=function(){u("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"nonConstNoSmartPtrRawPointerToWireType")||(n.nonConstNoSmartPtrRawPointerToWireType=function(){u("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_RegisteredPointer")||(n.init_RegisteredPointer=function(){u("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer")||(n.RegisteredPointer=function(){u("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_getPointee")||(n.RegisteredPointer_getPointee=function(){u("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_destructor")||(n.RegisteredPointer_destructor=function(){u("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_deleteObject")||(n.RegisteredPointer_deleteObject=function(){u("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_fromWireType")||(n.RegisteredPointer_fromWireType=function(){u("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructor")||(n.runDestructor=function(){u("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"releaseClassHandle")||(n.releaseClassHandle=function(){u("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"finalizationGroup")||(n.finalizationGroup=function(){u("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer_deps")||(n.detachFinalizer_deps=function(){u("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer")||(n.detachFinalizer=function(){u("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"attachFinalizer")||(n.attachFinalizer=function(){u("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeClassHandle")||(n.makeClassHandle=function(){u("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_ClassHandle")||(n.init_ClassHandle=function(){u("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle")||(n.ClassHandle=function(){u("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isAliasOf")||(n.ClassHandle_isAliasOf=function(){u("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInstanceAlreadyDeleted")||(n.throwInstanceAlreadyDeleted=function(){u("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_clone")||(n.ClassHandle_clone=function(){u("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_delete")||(n.ClassHandle_delete=function(){u("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"deletionQueue")||(n.deletionQueue=function(){u("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isDeleted")||(n.ClassHandle_isDeleted=function(){u("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_deleteLater")||(n.ClassHandle_deleteLater=function(){u("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"flushPendingDeletes")||(n.flushPendingDeletes=function(){u("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"delayFunction")||(n.delayFunction=function(){u("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setDelayFunction")||(n.setDelayFunction=function(){u("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredClass")||(n.RegisteredClass=function(){u("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"shallowCopyInternalPointer")||(n.shallowCopyInternalPointer=function(){u("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"downcastPointer")||(n.downcastPointer=function(){u("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"upcastPointer")||(n.upcastPointer=function(){u("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"validateThis")||(n.validateThis=function(){u("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_0")||(n.char_0=function(){u("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_9")||(n.char_9=function(){u("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeLegalFunctionName")||(n.makeLegalFunctionName=function(){u("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetIndexed")||(n.emscriptenWebGLGetIndexed=function(){u("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"warnOnce")||(n.warnOnce=function(){u("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackSave")||(n.stackSave=function(){u("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackRestore")||(n.stackRestore=function(){u("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackAlloc")||(n.stackAlloc=function(){u("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AsciiToString")||(n.AsciiToString=function(){u("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToAscii")||(n.stringToAscii=function(){u("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF16ToString")||(n.UTF16ToString=function(){u("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF16")||(n.stringToUTF16=function(){u("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF16")||(n.lengthBytesUTF16=function(){u("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF32ToString")||(n.UTF32ToString=function(){u("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF32")||(n.stringToUTF32=function(){u("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF32")||(n.lengthBytesUTF32=function(){u("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8")||(n.allocateUTF8=function(){u("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8OnStack")||(n.allocateUTF8OnStack=function(){u("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.writeStackCookie=st,n.checkStackCookie=Je,Object.getOwnPropertyDescriptor(n,"ALLOC_NORMAL")||Object.defineProperty(n,"ALLOC_NORMAL",{configurable:!0,get(){u("'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(){u("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}});let bn;function _A(e){this.name="ExitStatus",this.message=`Program terminated with exit(${e})`,this.status=e}vt=function e(){bn||DA(),bn||(vt=e)};function oc(){zA(),st()}function DA(e){if(e=e||_e,at>0||(oc(),Ln(),at>0))return;function t(){bn||(bn=!0,n.calledRun=!0,!We&&(Gn(),O(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),P(!n._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),Er()))}n.setStatus?(n.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>{n.setStatus("")},1),t()},1)):t(),Je()}n.run=DA;function sc(){let e=De,t=$,r=!1;De=$=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=et.ttys[c];d&&d.output&&d.output.length&&(r=!0)})}catch(A){}De=e,$=t,r&&Me("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 ac(e,t){if(zt=e,sc(),Xe()){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)`;Be(r),$(r)}}else fr();qA(e)}function qA(e){zt=e,Xe()||(n.onExit&&n.onExit(e),We=!0),Re(e,new _A(e))}if(n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return DA(),S.ready}}(),si=Cc;var Bc={},pc=(()=>{var z=Bc.url;return function(S={}){var n,O=Object.assign({},S),Be,ae,ce=new Promise((l,g)=>{Be=l,ae=g}),_e=!0,Oe=!1,Re=Object.assign({},O),Ge=[],Ke="./this.program",ht=(l,g)=>{throw g},At="",je,Mn,Mt;(_e||Oe)&&(Oe?At=self.location.href:typeof document!="undefined"&&document.currentScript&&(At=document.currentScript.src),z&&(At=z),At.startsWith("blob:")?At="":At=At.substr(0,At.replace(/[?#].*/,"").lastIndexOf("/")+1),je=l=>{var g=new XMLHttpRequest;return g.open("GET",l,!1),g.send(null),g.responseText},Oe&&(Mt=l=>{var g=new XMLHttpRequest;return g.open("GET",l,!1),g.responseType="arraybuffer",g.send(null),new Uint8Array(g.response)}),Mn=(l,g,E)=>{var p=new XMLHttpRequest;p.open("GET",l,!0),p.responseType="arraybuffer",p.onload=()=>{if(p.status==200||p.status==0&&p.response){g(p.response);return}E()},p.onerror=E,p.send(null)});var Pn=O.print||console.log.bind(console),Pt=O.printErr||console.error.bind(console);Object.assign(O,Re),Re=null,O.arguments&&(Ge=O.arguments),O.thisProgram&&(Ke=O.thisProgram),O.quit&&(ht=O.quit);var Wt;O.wasmBinary&&(Wt=O.wasmBinary);function Sn(l){for(var g=atob(l),E=new Uint8Array(g.length),p=0;p<g.length;++p)E[p]=g.charCodeAt(p);return E}function OA(l){if(vn(l))return Sn(l.slice(Ur.length))}var De,$=!1,Me,dt,he,He,Jt,Zt,se,Ye,Fr;function gr(){var l=De.buffer;O.HEAP8=dt=new Int8Array(l),O.HEAP16=He=new Int16Array(l),O.HEAPU8=he=new Uint8Array(l),O.HEAPU16=Jt=new Uint16Array(l),O.HEAP32=Zt=new Int32Array(l),O.HEAPU32=se=new Uint32Array(l),O.HEAPF32=Ye=new Float32Array(l),O.HEAPF64=Fr=new Float64Array(l)}var vr=[],mt=[],We=[],zt=!1;function P(){if(O.preRun)for(typeof O.preRun=="function"&&(O.preRun=[O.preRun]);O.preRun.length;)RA(O.preRun.shift());oe(vr)}function Fn(){zt=!0,oe(mt)}function TA(){if(O.postRun)for(typeof O.postRun=="function"&&(O.postRun=[O.postRun]);O.postRun.length;)Qt(O.postRun.shift());oe(We)}function RA(l){vr.unshift(l)}function Nr(l){mt.unshift(l)}function Qt(l){We.unshift(l)}var ue=0,yt=null,it=null;function _t(l){var g;ue++,(g=O.monitorRunDependencies)==null||g.call(O,ue)}function kr(l){var E;if(ue--,(E=O.monitorRunDependencies)==null||E.call(O,ue),ue==0&&(yt!==null&&(clearInterval(yt),yt=null),it)){var g=it;it=null,g()}}function lr(l){var E;(E=O.onAbort)==null||E.call(O,l),l="Aborted("+l+")",Pt(l),$=!0,Me=1,l+=". Build with -sASSERTIONS for more info.";var g=new WebAssembly.RuntimeError(l);throw ae(g),g}var Ur="data:application/octet-stream;base64,",vn=l=>l.startsWith(Ur);function Nn(){var l="data:application/octet-stream;base64,AGFzbQEAAAAB0wEbYAJ/fwBgAX8Bf2ABfwBgA39/fwF/YAN/f38AYAJ/fwF/YAAAYAR/f39/AGAFf39/f38AYAZ/f39/f38AYAd/f39/f39/AGAFf3x8fHwAYAZ/fHx8fHwAYAV/f39/fwF8YAl/f39/f39/f38AYAN/f38BfGAKf39/f39/f39/fwBgDX9/f39/f39/f39/f38AYAJ/fABgAn5/AX9gAXwBfGAEf39+fgBgBn98f39/fwF/YAR/f39/AX9gAnx/AXxgBn9/fHx8fABgB39/fHx8fHwAApEBGAFhAWEABAFhAWIAAgFhAWMAAgFhAWQAAgFhAWUADQFhAWYAAwFhAWcACAFhAWgADgFhAWkABQFhAWoADwFhAWsAEAFhAWwABAFhAW0AAAFhAW4ABAFhAW8ACgFhAXAABgFhAXEAAQFhAXIABAFhAXMAAgFhAXQABwFhAXUAAAFhAXYABAFhAXcACQFhAXgAEQNhYAIFAQMEAwgSBQMEAwUGEwEBAgEAAAAEBQUFBQQUBgYVAgEHBQQFAAACAAACAwoDABYEARcYBQECAQYCBAcGAQEBBAkJCAgDBwcDAwAAAwEFBgIBAAIBAAIZCxoMAAAAAAQFAXABMjIFBgEBggKCAgYIAX8BQeDtBAsHHQcBeQIAAXoANgFBACoBQgEAAUMAagFEABgBRQBYCTcBAEEBCzFtaWdmZGM9WXd2dXRzcnFwb25saz05VVFIR2VQKU9PYilhWlxgKVtdXyleUClXOFY4CoyEAmDuCwEHfwJAIABFDQAgAEEIayIDIABBBGsoAgAiAUF4cSIAaiEFAkAgAUEBcQ0AIAFBAnFFDQEgAyADKAIAIgFrIgNB9OkAKAIASQ0BIAAgAWohAAJAAkACQEH46QAoAgAgA0cEQCADKAIMIQIgAUH/AU0EQCACIAMoAggiBEcNAkHk6QBB5OkAKAIAQX4gAUEDdndxNgIADAULIAMoAhghBiACIANHBEAgAygCCCIBIAI2AgwgAiABNgIIDAQLIAMoAhQiAQR/IANBFGoFIAMoAhAiAUUNAyADQRBqCyEEA0AgBCEHIAEiAkEUaiEEIAIoAhQiAQ0AIAJBEGohBCACKAIQIgENAAsgB0EANgIADAMLIAUoAgQiAUEDcUEDRw0DQezpACAANgIAIAUgAUF+cTYCBCADIABBAXI2AgQgBSAANgIADwsgBCACNgIMIAIgBDYCCAwCC0EAIQILIAZFDQACQCADKAIcIgFBAnRBlOwAaiIEKAIAIANGBEAgBCACNgIAIAINAUHo6QBB6OkAKAIAQX4gAXdxNgIADAILIAZBEEEUIAYoAhAgA0YbaiACNgIAIAJFDQELIAIgBjYCGCADKAIQIgEEQCACIAE2AhAgASACNgIYCyADKAIUIgFFDQAgAiABNgIUIAEgAjYCGAsgAyAFTw0AIAUoAgQiAUEBcUUNAAJAAkACQAJAIAFBAnFFBEBB/OkAKAIAIAVGBEBB/OkAIAM2AgBB8OkAQfDpACgCACAAaiIANgIAIAMgAEEBcjYCBCADQfjpACgCAEcNBkHs6QBBADYCAEH46QBBADYCAA8LQfjpACgCACAFRgRAQfjpACADNgIAQezpAEHs6QAoAgAgAGoiADYCACADIABBAXI2AgQgACADaiAANgIADwsgAUF4cSAAaiEAIAUoAgwhAiABQf8BTQRAIAUoAggiBCACRgRAQeTpAEHk6QAoAgBBfiABQQN2d3E2AgAMBQsgBCACNgIMIAIgBDYCCAwECyAFKAIYIQYgAiAFRwRAIAUoAggiASACNgIMIAIgATYCCAwDCyAFKAIUIgEEfyAFQRRqBSAFKAIQIgFFDQIgBUEQagshBANAIAQhByABIgJBFGohBCACKAIUIgENACACQRBqIQQgAigCECIBDQALIAdBADYCAAwCCyAFIAFBfnE2AgQgAyAAQQFyNgIEIAAgA2ogADYCAAwDC0EAIQILIAZFDQACQCAFKAIcIgFBAnRBlOwAaiIEKAIAIAVGBEAgBCACNgIAIAINAUHo6QBB6OkAKAIAQX4gAXdxNgIADAILIAZBEEEUIAYoAhAgBUYbaiACNgIAIAJFDQELIAIgBjYCGCAFKAIQIgEEQCACIAE2AhAgASACNgIYCyAFKAIUIgFFDQAgAiABNgIUIAEgAjYCGAsgAyAAQQFyNgIEIAAgA2ogADYCACADQfjpACgCAEcNAEHs6QAgADYCAA8LIABB/wFNBEAgAEF4cUGM6gBqIQECf0Hk6QAoAgAiBEEBIABBA3Z0IgBxRQRAQeTpACAAIARyNgIAIAEMAQsgASgCCAshACABIAM2AgggACADNgIMIAMgATYCDCADIAA2AggPC0EfIQIgAEH///8HTQRAIABBJiAAQQh2ZyIBa3ZBAXEgAUEBdGtBPmohAgsgAyACNgIcIANCADcCECACQQJ0QZTsAGohBwJ/AkACf0Ho6QAoAgAiAUEBIAJ0IgRxRQRAQejpACABIARyNgIAQRghAiAHIQRBCAwBCyAAQRkgAkEBdmtBACACQR9HG3QhAiAHKAIAIQQDQCAEIgEoAgRBeHEgAEYNAiACQR12IQQgAkEBdCECIAEgBEEEcWpBEGoiBygCACIEDQALQRghAiABIQRBCAshACADIgEMAQsgASgCCCIEIAM2AgxBCCECIAFBCGohB0EYIQBBAAshBSAHIAM2AgAgAiADaiAENgIAIAMgATYCDCAAIANqIAU2AgBBhOoAQYTqACgCAEEBayIAQX8gABs2AgALCwwAIAAgASABECgQGws7AQJ/QQEgACAAQQFNGyEBA0ACQCABECoiAA0AQdTtACgCACICRQ0AIAIRBgAMAQsLIABFBEAQJQsgAAu9AQEDfyMAQRBrIgUkAAJAIAIgAC0AC0EHdgR/IAAoAghB/////wdxQQFrBUEKCyIEAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0AC0H/AHELIgNrTQRAIAJFDQECfyAALQALQQd2BEAgACgCAAwBCyAACyIEIANqIAEgAhAiIAAgAiADaiIBEC0gBUEAOgAPIAEgBGogBS0ADzoAAAwBCyAAIAQgAiAEayADaiADIAMgAiABEEULIAVBEGokACAAC8EBAQN/IAAtAABBIHFFBEACQCACIAAoAhAiAwR/IAMFIAAQTg0BIAAoAhALIAAoAhQiBGtLBEAgACABIAIgACgCJBEDABoMAQsCQAJAIAAoAlBBAEgNACACRQ0AIAIhAwNAIAEgA2oiBUEBay0AAEEKRwRAIANBAWsiAw0BDAILCyAAIAEgAyAAKAIkEQMAIANJDQIgAiADayECIAAoAhQhBAwBCyABIQULIAQgBSACECEaIAAgACgCFCACajYCFAsLC3QBAX8gAkUEQCAAKAIEIAEoAgRGDwsgACABRgRAQQEPCyABKAIEIgItAAAhAQJAIAAoAgQiAy0AACIARQ0AIAAgAUcNAANAIAItAAEhASADLQABIgBFDQEgAkEBaiECIANBAWohAyAAIAFGDQALCyAAIAFGC2sBAX8jAEGAAmsiBSQAAkAgAiADTA0AIARBgMAEcQ0AIAUgASACIANrIgNBgAIgA0GAAkkiARsQIxogAUUEQANAIAAgBUGAAhAcIANBgAJrIgNB/wFLDQALCyAAIAUgAxAcCyAFQYACaiQAC7QBAQV/IwBBEGsiBiQAIAZBBGoiAhBAIwBBEGsiBSQAAn8gAi0AC0EHdgRAIAIoAgQMAQsgAi0AC0H/AHELIQQDQAJAAn8gAi0AC0EHdgRAIAIoAgAMAQsgAgshAyAFIAE5AwAgAgJ/IAMgBEEBaiAFEEYiA0EATgRAIAMgBE0NAiADDAELIARBAXRBAXILIgQQPwwBCwsgAiADED8gACACED4gBUEQaiQAIAIQQyAGQRBqJAAL5QMBBX8jAEEQayIDJAAgAyAAKAIAIgRBCGsoAgAiAjYCDCADIAAgAmo2AgQgAyAEQQRrKAIANgIIIAMoAggiBCABQQAQHSECIAMoAgQhBQJAIAIEQCADKAIMIQAjAEFAaiIBJAAgAUFAayQAQQAgBSAAGyECDAELIwBBQGoiAiQAIAAgBU4EQCACQgA3AhwgAkIANwIkIAJCADcCLCACQgA3AhQgAkEANgIQIAIgATYCDCACIAQ2AgQgAkEANgI8IAJCgYCAgICAgIABNwI0IAIgADYCCCAEIAJBBGogBSAFQQFBACAEKAIAKAIUEQkAIABBACACKAIcGyEGCyACQUBrJAAgBiICDQAjAEFAaiICJAAgAkEANgIQIAJB/OAANgIMIAIgADYCCCACIAE2AgRBACEAIAJBFGpBAEEnECMaIAJBADYCPCACQQE6ADsgBCACQQRqIAVBAUEAIAQoAgAoAhgRCAACQAJAAkAgAigCKA4CAAECCyACKAIYQQAgAigCJEEBRhtBACACKAIgQQFGG0EAIAIoAixBAUYbIQAMAQsgAigCHEEBRwRAIAIoAiwNASACKAIgQQFHDQEgAigCJEEBRw0BCyACKAIUIQALIAJBQGskACAAIQILIANBEGokACACC4AEAQN/IAJBgARPBEAgACABIAIQESAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAsLACABIAIgABBEGgvyAgICfwF+AkAgAkUNACAAIAE6AAAgACACaiIDQQFrIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0EDayABOgAAIANBAmsgAToAACACQQdJDQAgACABOgADIANBBGsgAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkEEayABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBCGsgATYCACACQQxrIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQRBrIAE2AgAgAkEUayABNgIAIAJBGGsgATYCACACQRxrIAE2AgAgBCADQQRxQRhyIgRrIgJBIEkNACABrUKBgICAEH4hBSADIARqIQEDQCABIAU3AxggASAFNwMQIAEgBTcDCCABIAU3AwAgAUEgaiEBIAJBIGsiAkEfSw0ACwsgAAsSACABQQF0QZDfAGpBAiAAEEQLBQAQaAALiAECAX4FfwJAIABCgICAgBBUBEAgACECDAELA0AgAUEBayIBIAAgAEIKgCICQgp+fadBMHI6AAAgAEL/////nwFWIQYgAiEAIAYNAAsLIAJCAFIEQCACpyEDA0AgAUEBayIBIAMgA0EKbiIEQQpsa0EwcjoA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yAFqIAFB0ABqIAIQS0EASARAQX8hAgwBCyAAKAJMQQBIIQcgACAAKAIAIgZBX3E2AgACfwJAAkAgACgCMEUEQCAAQdAANgIwIABBADYCHCAAQgA3AxAgACgCLCEDIAAgATYCLAwBCyAAKAIQDQELQX8gABBODQEaCyAAIAFByAFqIAFB0ABqIAFBoAFqEEsLIQIgAwRAIABBAEEAIAAoAiQRAwAaIABBADYCMCAAIAM2AiwgAEEANgIcIAAoAhQhAyAAQgA3AxAgAkF/IAMbIQILIAAgACgCACIDIAZBIHFyNgIAQX8gAiADQSBxGyECIAcNAAsgAUHQAWokACAAQaABaiQAIAVBEGokACACC54FAgZ+BH8gASABKAIAQQdqQXhxIgFBEGo2AgAgACELIAEpAwAhAyABKQMIIQcjAEEgayIIJAAgB0L///////8/gyEEAn4gB0IwiEL//wGDIgWnIgpBgfgAa0H9D00EQCAEQgSGIANCPIiEIQIgCkGA+ABrrSEFAkAgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILQgAgAiACQv////////8HViIAGyECIACtIAV8DAELAkAgAyAEhFANACAFQv//AVINACAEQgSGIANCPIiEQoCAgICAgIAEhCECQv8PDAELQv8PIApB/ocBSw0AGkIAQYD4AEGB+AAgBVAiARsiACAKayIJQfAASg0AGiADIQIgBCAEQoCAgICAgMAAhCABGyIGIQQCQEGAASAJayIBQcAAcQRAIAMgAUFAaq2GIQRCACECDAELIAFFDQAgBCABrSIFhiACQcAAIAFrrYiEIQQgAiAFhiECCyAIIAI3AxAgCCAENwMYAkAgCUHAAHEEQCAGIAlBQGqtiCEDQgAhBgwBCyAJRQ0AIAZBwAAgCWuthiADIAmtIgKIhCEDIAYgAoghBgsgCCADNwMAIAggBjcDCCAIKQMIQgSGIAgpAwAiAkI8iIQhAwJAIAAgCkcgCCkDECAIKQMYhEIAUnGtIAJC//////////8Pg4QiAkKBgICAgICAgAhaBEAgA0IBfCEDDAELIAJCgICAgICAgIAIUg0AIANCAYMgA3whAwsgA0KAgICAgICACIUgAyADQv////////8HViIAGyEC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f0EBIAAgAUEAEB0NABpBACABRQ0AGkEAIAFBrOEAECAiAUUNABogA0EIakEAQTgQIxogA0EBOgA7IANBfzYCECADIAA2AgwgAyABNgIEIANBATYCNCABIANBBGogAigCAEEBIAEoAgAoAhwRBwAgAygCHCIAQQFGBEAgAiADKAIUNgIACyAAQQFGCyEEIANBQGskACAECwoAIAAgAUEAEB0LTgIBfwF8IwBBEGsiAiQAIAJBADYCDCABKAIEQfTjACACQQxqEAkhAyACKAIMIgEEQCABEAELIAAgA0QAAAAAAAAAAGI6ADggAkEQaiQACzcBAX8jAEEQayICJAAgAiABLQA4NgIIIABB9OMAIAJBCGoQCDYCBCAAQdzoADYCACACQRBqJAALqAEBBX8gACgCVCIDKAIAIQUgAygCBCIEIAAoAhQgACgCHCIHayIGIAQgBkkbIgYEQCAFIAcgBhAhGiADIAMoAgAgBmoiBTYCACADIAMoAgQgBmsiBDYCBAsgBCACIAIgBEsbIgQEQCAFIAEgBBAhGiADIAMoAgAgBGoiBTYCACADIAMoAgQgBGs2AgQLIAVBADoAACAAIAAoAiwiATYCHCAAIAE2AhQgAgueAQECfyMAQRBrIgIkAEHEABAaIQEgACgCBCIAQQlPBEAgABADCyACIAA2AgggAUHgwQAgAkEIahAINgIEIAFB3OgANgIAIAFBAjYCHCABQdzoADYCGCABQQI2AhQgAUHc6AA2AhAgAUECNgIMIAFB3OgANgIIIAFBADoAICABQoCAgIAwNwI8IAFBADsANyABQQA7ACsgAkEQaiQAIAELQwECfyMAQRBrIgIkACACIAE2AgwgAkHc6AA2AgggAkEIaiAAEQEAIQMgAigCDCIBQQlPBEAgARACCyACQRBqJAAgAwsFABAPAAuKAQEBfyAABEAgACwAN0EASARAIAAoAiwQGAsgACwAK0EASARAIAAoAiAQGAsgACgCHCIBQQlPBEAgARACIABBADYCHAsgACgCFCIBQQlPBEAgARACIABBADYCFAsgACgCDCIBQQlPBEAgARACIABBADYCDAsgACgCBCIBQQlPBEAgARACCyAAEBgLCyQBAn8gACgCBCIAEChBAWoiARAqIgIEfyACIAAgARAhBUEACwugHgMOfwJ8AX0jAEFAaiIEJAAgBEHo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AGohCSAHIApqIg1B9////wdNBEACQCANQQtJBEAgCUIANwIAIAlBADYCCCAJIAktAAtBgAFxIA1B/wBxcjoACyAJIAktAAtB/wBxOgALDAELIA1BC08EfyANQQhqQXhxIgIgAkEBayICIAJBC0YbBUEKC0EBaiIDEBohAiAJIAkoAghBgICAgHhxIANB/////wdxcjYCCCAJIAkoAghBgICAgHhyNgIIIAkgAjYCACAJIA02AgQLIAZBEGokACAJDAELECUACyICLQALQQd2BEAgAigCAAwBCyACCyICQdY6IAoQIiACIApqIgICfyALLQALQQd2BEAgCygCAAwBCyALCyAHECIgAiAHakEBEEIgCEEQaiQAIA8gCUGwPhAZIgIpAgA3AgAgDyACKAIINgIIIAJCADcCACACQQA2AgggBSwAgwFBAEgEQCAFKAJ4EBgLIAUsAJMBQQBIBEAgBSgCiAEQGAsgBSgClAEiBgRAIAUoApgBIgMgBiICRwRAA0AgA0EMayICKAIAIggEQCADQQhrIAg2AgAgCBAYCyACIgMgBkcNAAsgBSgClAEhAgsgBSAGNgKYASACEBgLIAVBoAFqJAAgBEEwaiAEKAIgIA8gBCwAKyIDQQBIIgIbIAQoAiQgAyACGxAbGiAELAArQQBODQMgBCgCIBAYDAMLIARBMGpBkMAAEBkaDAILIARBMGpBvcAAEBkaDAELIARBMGpB+T8QGRoLAkACQCABKAIwIAEsADciAyADQQBIGyIGQQFqIghB+P///wdJBEACQAJAIAhBC08EQCAIQQdyQQFqIgIQGiEHIAQgCDYCJCAEIAc2AiAgBCACQYCAgIB4cjYCKAwBCyAEQQA2AiggBEIANwMgIAQgCDoAKyAEQSBqIQcgBkUNAQsgByABQSxqIgIoAgAgAiADQQBIGyAGEC4LIAYgB2pBCjsAACAEQTBqIAQoAiAgBEEgaiAELAArIgNBAEgiAhsgBCgCJCADIAIbEBsaIAQsACtBAEgEQCAEKAIgEBgLIAEoAiQgASwAKyIDIANBAEgbIgZBAmoiCEH4////B08NAQJAAkAgCEELTwRAIAhBB3JBAWoiAhAaIQcgBCAINgIkIAQgBzYCICAEIAJBgICAgHhyNgIoDAELIARBADYCKCAEQgA3AyAgBCAIOgArIARBIGohByAGRQ0B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dGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBpbmYAJWYAY2xvc2UAZG91YmxlAHZiTW9kZQBzaGFkZXJTb3VyY2UAdm9pZABOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50NjRfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50NjRfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGNoYXI+AHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxkb3VibGU+AHZlYzIgYyA9IHZfdGV4Q29vcmQ7AHZlYzIgYyA9IHZlYzIoMS4wIC0gdl90ZXhDb29yZC54LCB2X3RleENvb3JkLnkpOwBBbGxJbjEALgAuMCwALjApKm8pKgAobnVsbCkAKSpvLnkpOyAgICB2ZWMyIGNvb3JkMiA9IHZlYzIoZmxvYXQoACAgICBjID0gdmVjMih2X3RleENvb3JkLngsIDEuMCAtIHZfdGV4Q29vcmQueSk7ICAgIHZlYzIgY29vcmQxID0gdmVjMihmbG9hdCgAKSwgKGMueSAtY29vcmQxLnkpIC8gby55IC8gZmxvYXQoACkqby55KTsgICAgaWYgKGMueCA+IGNvb3JkMS54ICYmIGMueCA8IGNvb3JkMi54ICYmIGMueSA+IGNvb3JkMS55ICYmIGMueSA8IGNvb3JkMi55KSB7ICAgICAgdmVjNCB3YXRlckNvbG9yID0gdGV4dHVyZSh3YXRlck1hcmssIHZlYzIoKGMueCAtIGNvb3JkMS54KSAgLyBvLnggLyBmbG9hdCgAKSAqIG8ueCwgZmxvYXQoACk7ICAgIG91dENvbG9yLnJnYiA9IHZlYzMob3V0Q29sb3IucmdiICsgdmVjMygAZys9RyhjLHZlYzIoACAgICB2ZWMyIG9mZnNldCA9IHZlYzIoACksMC4wLDEuMCk7ICAgICB2ZWMzIHNjcmVlbiA9IHZlYzMoMS4wKSAtICh2ZWMzKDEuMCktc21vb3RoQ29sb3IpICogKHZlYzMoMS4wKS1vdXRDb2xvci5yZ2IpOyAgICAgdmVjMyBsaWdodGVuID0gbWF4KHNtb290aENvbG9yLCBvdXRDb2xvci5yZ2IpOyAgICAgdmVjMyBzb2Z0TGlnaHQgPSAyLjAgKiBvdXRDb2xvci5yZ2Iqc21vb3RoQ29sb3IgKyBvdXRDb2xvci5yZ2Iqb3V0Q29sb3IucmdiIC0gMi4wICogb3V0Q29sb3IucmdiKm91dENvbG9yLnJnYiAqIHNtb290aENvbG9yOyAgICAgb3V0Q29sb3IgPSB2ZWM0KG1peChvdXRDb2xvci5yZ2IsIHNjcmVlbiwgYWxwaGEpLCAxLjApOyAgICAgb3V0Q29sb3IucmdiID0gbWl4KG91dENvbG9yLnJnYiwgbGlnaHRlbiwgYWxwaGEpOyAgICAgb3V0Q29sb3IucmdiID0gbWl4KG91dENvbG9yLnJnYiwgc29mdExpZ2h0LCAAKTsgICAgIGNvbnN0IG1hdDMgc2F0dXJhdGVNYXRyaXggPSBtYXQzKDEuMTEwMiwtMC4wNTk4LC0wLjA2MSwtMC4wNzc0LDEuMDgyNiwtMC4xMTg2LC0wLjAyMjgsLTAuMDIyOCwxLjE3NzIpOyAgICB2ZWMzIHNhdENvbG9yID0gb3V0Q29sb3IucmdiICogc2F0dXJhdGVNYXRyaXg7ICAgIG91dENvbG9yLnJnYiA9IG1peChvdXRDb2xvci5yZ2IsIHNhdENvbG9yLCAAKTsgICAgIHZlYzMgc21vb3RoQ29sb3IgPSBvdXRDb2xvci5yZ2IgKyAob3V0Q29sb3IucmdiLXZlYzMoaGlnaFBhc3MpKSphbHBoYSowLjE7ICAgICBzbW9vdGhDb2xvci5yID0gY2xhbXAocG93KHNtb290aENvbG9yLnIsIAApLDAuMCwxLjApOyAgICAgc21vb3RoQ29sb3IuZyA9IGNsYW1wKHBvdyhzbW9vdGhDb2xvci5nLCAAKTsgICAgdmVjMiBibHVyQ29vcmRpbmF0ZXNbMjRdOyAgICBibHVyQ29vcmRpbmF0ZXNbMF0gPSB2X3RleENvb3JkLnh5ICsgb2Zmc2V0ICogdmVjMigwLjAsIC0xMC4wKTsgICAgIGJsdXJDb29yZGluYXRlc1sxXSA9IHZfdGV4Q29vcmQueHkgKyBvZmZzZXQgKiB2ZWMyKDAuMCwgMTAuMCk7ICAgICBibHVyQ29vcmRpbmF0ZXNbMl0gPSB2X3RleENvb3JkLnh5ICsgb2Zmc2V0ICogdmVjMigtMTAuMCwgMC4wKTsgICAgIGJsdXJDb29yZGluYXRlc1szXSA9IHZfdGV4Q29vcmQueHkgKyBvZmZzZXQgKiB2ZWMyKDEwLjAsIDAuMCk7ICAgICBibHVyQ29vcmRpbmF0ZXNbNF0gPSB2X3RleENvb3JkLnh5ICsgb2Zmc2V0ICogdmVjMig1LjAsIC04LjApOyAgICAgYmx1ckNvb3JkaW5hdGVzWzVdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoNS4wLCA4LjApOyAgICAgYmx1ckNvb3JkaW5hdGVzWzZdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoLTUuMCwgOC4wKTsgICAgIGJsdXJDb29yZGluYXRlc1s3XSA9IHZfdGV4Q29vcmQueHkgKyBvZmZzZXQgKiB2ZWMyKC01LjAsIC04LjApOyAgICAgYmx1ckNvb3JkaW5hdGVzWzhdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoOC4wLCAtNS4wKTsgICAgIGJsdXJDb29yZGluYXRlc1s5XSA9IHZfdGV4Q29vcmQueHkgKyBvZmZzZXQgKiB2ZWMyKDguMCwgNS4wKTsgICAgIGJsdXJDb29yZGluYXRlc1sxMF0gPSB2X3RleENvb3JkLnh5ICsgb2Zmc2V0ICogdmVjMigtOC4wLCA1LjApOyAgICAgYmx1ckNvb3JkaW5hdGVzWzExXSA9IHZfdGV4Q29vcmQueHkgKyBvZmZzZXQgKiB2ZWMyKC04LjAsIC01LjApOyAgICAgYmx1ckNvb3JkaW5hdGVzWzEyXSA9IHZfdGV4Q29vcmQueHkgKyBvZmZzZXQgKiB2ZWMyKDAuMCwgLTYuMCk7ICAgICBibHVyQ29vcmRpbmF0ZXNbMTNdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoMC4wLCA2LjApOyAgICAgYmx1ckNvb3JkaW5hdGVzWzE0XSA9IHZfdGV4Q29vcmQueHkgKyBvZmZzZXQgKiB2ZWMyKDYuMCwgMC4wKTsgICAgIGJsdXJDb29yZGluYXRlc1sxNV0gPSB2X3RleENvb3JkLnh5ICsgb2Zmc2V0ICogdmVjMigtNi4wLCAwLjApOyAgICAgYmx1ckNvb3JkaW5hdGVzWzE2XSA9IHZfdGV4Q29vcmQueHkgKyBvZmZzZXQgKiB2ZWMyKC00LjAsIC00LjApOyAgICAgYmx1ckNvb3JkaW5hdGVzWzE3XSA9IHZfdGV4Q29vcmQueHkgKyBvZmZzZXQgKiB2ZWMyKC00LjAsIDQuMCk7ICAgICBibHVyQ29vcmRpbmF0ZXNbMThdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoNC4wLCAtNC4wKTsgICAgIGJsdXJDb29yZGluYXRlc1sxOV0gPSB2X3RleENvb3JkLnh5ICsgb2Zmc2V0ICogdmVjMig0LjAsIDQuMCk7ICAgICBibHVyQ29vcmRpbmF0ZXNbMjBdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoLTIuMCwgLTIuMCk7ICAgICBibHVyQ29vcmRpbmF0ZXNbMjFdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoLTIuMCwgMi4wKTsgICAgIGJsdXJDb29yZGluYXRlc1syMl0gPSB2X3RleENvb3JkLnh5ICsgb2Zmc2V0ICogdmVjMigyLjAsIC0yLjApOyAgICAgYmx1ckNvb3JkaW5hdGVzWzIzXSA9IHZfdGV4Q29vcmQueHkgKyBvZmZzZXQgKiB2ZWMyKDIuMCwgMi4wKTsgICAgIGZsb2F0IHNhbXBsZUNvbG9yID0gb3V0Q29sb3IuZyAqIDIyLjA7ICAgICBzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbMF0pLmc7ICAgICBzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbMV0pLmc7ICAgICBzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbMl0pLmc7ICAgICBzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbM10pLmc7ICAgICBzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbNF0pLmc7ICAgICBzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbNV0pLmc7ICAgICBzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbNl0pLmc7ICAgICBzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbN10pLmc7ICAgICBzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbOF0pLmc7ICAgICBzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbOV0pLmc7ICAgICBzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbMTBdKS5nOyAgICAgc2FtcGxlQ29sb3IgKz0gdGV4dHVyZShmcmFtZSwgYmx1ckNvb3JkaW5hdGVzWzExXSkuZzsgICAgIHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sxMl0pLmcgKiAyLjA7ICAgICBzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbMTNdKS5nICogMi4wOyAgICAgc2FtcGxlQ29sb3IgKz0gdGV4dHVyZShmcmFtZSwgYmx1ckNvb3JkaW5hdGVzWzE0XSkuZyAqIDIuMDsgICAgIHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sxNV0pLmcgKiAyLjA7ICAgICBzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbMTZdKS5nICogMi4wOyAgICAgc2FtcGxlQ29sb3IgKz0gdGV4dHVyZShmcmFtZSwgYmx1ckNvb3JkaW5hdGVzWzE3XSkuZyAqIDIuMDsgICAgIHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sxOF0pLmcgKiAyLjA7ICAgICBzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbMTldKS5nICogMi4wOyAgICAgc2FtcGxlQ29sb3IgKz0gdGV4dHVyZShmcmFtZSwgYmx1ckNvb3JkaW5hdGVzWzIwXSkuZyAqIDMuMDsgICAgIHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1syMV0pLmcgKiAzLjA7ICAgICBzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbMjJdKS5nICogMy4wOyAgICAgc2FtcGxlQ29sb3IgKz0gdGV4dHVyZShmcmFtZSwgYmx1ckNvb3JkaW5hdGVzWzIzXSkuZyAqIDMuMDsgICAgIHNhbXBsZUNvbG9yID0gc2FtcGxlQ29sb3IgLyA2Mi4wOyAgICAgZmxvYXQgaGlnaFBhc3MgPSBvdXRDb2xvci5nIC0gc2FtcGxlQ29sb3IgKyAwLjU7ICAgICBmb3IoaW50IGkgPSAwOyBpIDwgNTsgaSsrKSB7ICAgICAgIGlmIChoaWdoUGFzcyA8PSAwLjUpIHsgICAgICAgICBoaWdoUGFzcyA9IGhpZ2hQYXNzICogaGlnaFBhc3MgKiAyLjA7ICAgICAgIH0gZWxzZSB7ICAgICAgICAgaGlnaFBhc3MgPSAxLjAgLSAoKDEuMCAtIGhpZ2hQYXNzKSooMS4wIC0gaGlnaFBhc3MpICogMi4wKTsgICAgICAgfSAgICAgfSAgICAgY29uc3QgaGlnaHAgdmVjMyBXID0gdmVjMygwLjI5OSwwLjU4NywwLjExNCk7ICAgIGZsb2F0IGx1bWluYW5jZSA9IGRvdChvdXRDb2xvci5yZ2IsIFcpOyAgICAgZmxvYXQgYWxwaGEgPSBwb3cobHVtaW5hbmNlLCAAKSwwLjAsMS4wKTsgICAgIHNtb290aENvbG9yLmIgPSBjbGFtcChwb3coc21vb3RoQ29sb3IuYiwgACkpOyAgACkpKTsgICAgICBvdXRDb2xvciA9IG1peChvdXRDb2xvcix3YXRlckNvbG9yLCAgd2F0ZXJDb2xvci5hKTsgICAgfSAgICAAI3ZlcnNpb24gMzAwIGVzCiAgICBwcmVjaXNpb24gaGlnaHAgZmxvYXQ7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBmcmFtZTsKICAgIHVuaWZvcm0gc2FtcGxlcjJEIG1hc2s7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBiZzsKICAgIHVuaWZvcm0gc2FtcGxlcjJEIHdhdGVyTWFyazsKICAgIHVuaWZvcm0gc2FtcGxlcjJEIGxhc3RNYXNrOwogICAgaW4gdmVjMiB2X3RleENvb3JkOwogICAgb3V0IHZlYzQgb3V0Q29sb3I7CiAgICB2ZWM0IEcodmVjMiBjLHZlYzIgcyl7CiAgICAgIHJldHVybiB0ZXh0dXJlKGZyYW1lLHRleHR1cmUobWFzayxjK3MpLmE+MC4zP2M6YytzKTsKICAgIH0KICAgIHZvaWQgbWFpbigpIHsKICAgICAgAAogICAgdmVjNCBnID0gdmVjNCgwLjApOwogICAgAAogICAgICBjLnkgPSAxLjAgLSBjLnk7CiAgICAgIHZlYzQgc3JjX2NvbG9yID0gdGV4dHVyZShmcmFtZSwgYyk7CiAgICAgIGZsb2F0IGEgPSB0ZXh0dXJlKG1hc2ssIGMpLmE7CiAgICAgIGEgPSBhPDAuNT8yLjAqYSphOjEuMC0yLjAqKDEuMC1hKSooMS4wLWEpOwogICAgICAvLyBmbG9hdCBhMiA9IHRleHR1cmUobGFzdE1hc2ssIGMpLmE7CiAgICAgIC8vIGEyID0gYTI8MC41PzIuMCphMiphMjoxLjAtMi4wKigxLjAtYTIpKigxLjAtYTIpOwogICAgICAvLyBmbG9hdCBkZWx0YSA9IGEgLSBhMjsKICAgICAgLy8gaWYgKGRlbHRhIDwgMC4yNSAmJiBkZWx0YSA+IC0wLjI1KQogICAgICAvLyB7CiAgICAgIC8vICAgICBhID0gYSArIDAuNSpkZWx0YTsKICAgICAgLy8gfQogICAgICAKICAgICAgdmVjMiBvID0gMS4wIC8gdmVjMih0ZXh0dXJlU2l6ZShmcmFtZSwgMCkpOwogICAgAAogICAgICBvdXRDb2xvciA9IGc7CiAgACN2ZXJzaW9uIDMwMCBlcwppbiB2ZWMyIGFfcG9zaXRpb247CmluIHZlYzIgYV90ZXhDb29yZDsKb3V0IHZlYzIgdl90ZXhDb29yZDsKdm9pZCBtYWluKCkgewogIGdsX1Bvc2l0aW9uID0gdmVjNChhX3Bvc2l0aW9uLngsIGFfcG9zaXRpb24ueSwgMCwgMSk7CiAgdl90ZXhDb29yZCA9IGFfdGV4Q29vcmQ7Cn0KAG91dENvbG9yID0gc3JjX2NvbG9yOwoAb3V0Q29sb3IgPSBtaXgodGV4dHVyZShiZywgYyksc3JjX2NvbG9yLGEpOwoAb3V0Q29sb3IgPSBtaXgodmVjNCgwLjAsMS4wLDAuMCwxLjApLHNyY19jb2xvcixhKTsKADZBbGxJbjEAAAAAoDIAAHEgAABQNkFsbEluMQAAAAAkMwAAhCAAAAAAAAB8IAAAUEs2QWxsSW4xAAAAJDMAAKAgAAABAAAAfCAAAHBwAHYAdnAAkCAAAOAgAABOMTBlbXNjcmlwdGVuM3ZhbEUAAKAyAADMIAAAcHBwAHZwcHAAQYDCAAsk3DEAAJAgAACQMgAAkDIAAJAyAACQMgAAkDIAAHZwcGRkZGRkAEGwwgALyAjcMQAAkCAAAJAyAACQMgAAkDIAAJAyAAB2cHBkZGRkANwxAACQIAAAdnBwANwxAADgIAAA4CAAAJAgAADgIAAAPDIAANwxAADgIAAAwCEAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAACgMgAAgCEAAOAgAADcMQAA4CAAAOAgAABOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQAAoDIAANghAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAoDIAACAiAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAKAyAABoIgAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAACgMgAAtCIAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWNFRQAAoDIAAAAjAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUAAKAyAAAoIwAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaEVFAACgMgAAUCMAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXNFRQAAoDIAAHgjAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUAAKAyAACgIwAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaUVFAACgMgAAyCMAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWpFRQAAoDIAAPAjAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUAAKAyAAAYJAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbUVFAACgMgAAQCQAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXhFRQAAoDIAAGgkAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l5RUUAAKAyAACQJAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAACgMgAAuCQAAE4xMGVtc2Ny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";return l}var $t;function kn(l){if(l==$t&&Wt)return new Uint8Array(Wt);var g=OA(l);if(g)return g;if(Mt)return Mt(l);throw"both async and sync fetching of the wasm failed"}function ur(l){return Promise.resolve().then(()=>kn(l))}function xr(l,g,E){return ur(l).then(p=>WebAssembly.instantiate(p,g)).then(E,p=>{Pt(`failed to asynchronously prepare wasm: ${p}`),lr(p)})}function Un(l,g,E,p){return xr(g,E,p)}function xn(){return{a:Ct}}function St(){var l=xn();function g(p,w){return Ue=p.exports,De=Ue.y,gr(),Wn=Ue.B,Nr(Ue.z),kr("wasm-instantiate"),Ue}_t("wasm-instantiate");function E(p){g(p.instance)}if(O.instantiateWasm)try{return O.instantiateWasm(l,g)}catch(p){Pt(`Module.instantiateWasm callback failed with error: ${p}`),ae(p)}return $t||($t=Nn()),Un(Wt,$t,l,E).catch(ae),{}}var oe=l=>{for(;l.length>0;)l.shift()(O)},ge=O.noExitRuntime||!0;class ot{constructor(g){this.excPtr=g,this.ptr=g-24}set_type(g){se[this.ptr+4>>2]=g}get_type(){return se[this.ptr+4>>2]}set_destructor(g){se[this.ptr+8>>2]=g}get_destructor(){return se[this.ptr+8>>2]}set_caught(g){g=g?1:0,dt[this.ptr+12]=g}get_caught(){return dt[this.ptr+12]!=0}set_rethrown(g){g=g?1:0,dt[this.ptr+13]=g}get_rethrown(){return dt[this.ptr+13]!=0}init(g,E){this.set_adjusted_ptr(0),this.set_type(g),this.set_destructor(E)}set_adjusted_ptr(g){se[this.ptr+16>>2]=g}get_adjusted_ptr(){return se[this.ptr+16>>2]}get_exception_ptr(){var g=sn(this.get_type());if(g)return se[this.excPtr>>2];var E=this.get_adjusted_ptr();return E!==0?E:this.excPtr}}var Dt=0,m=0,Ae=(l,g,E)=>{var p=new ot(l);throw p.init(g,E),Dt=l,m++,Dt},Ce=()=>{lr("")},dr=(l,g,E,p,w)=>{},Lr=()=>{for(var l=new Array(256),g=0;g<256;++g)l[g]=String.fromCharCode(g);qt=l},qt,me=l=>{for(var g="",E=l;he[E];)g+=qt[he[E++]];return g},v={},st={},Je={},ft,J=l=>{throw new ft(l)},Gr,Ft=l=>{throw new Gr(l)},Ze=(l,g,E)=>{l.forEach(function(b){Je[b]=g});function p(b){var N=E(b);N.length!==l.length&&Ft("Mismatched type converter count");for(var L=0;L<l.length;++L)ze(l[L],N[L])}var w=new Array(g.length),R=[],M=0;g.forEach((b,N)=>{st.hasOwnProperty(b)?w[N]=st[b]:(R.push(b),v.hasOwnProperty(b)||(v[b]=[]),v[b].push(()=>{w[N]=st[b],++M,M===R.length&&p(w)}))}),R.length===0&&p(w)};function jr(l,g,E={}){var p=g.name;if(l||J(`type "${p}" must have a positive integer typeid pointer`),st.hasOwnProperty(l)){if(E.ignoreDuplicateRegistrations)return;J(`Cannot register type '${p}' twice`)}if(st[l]=g,delete Je[l],v.hasOwnProperty(l)){var w=v[l];delete v[l],w.forEach(R=>R())}}function ze(l,g,E={}){if(!("argPackAdvance"in g))throw new TypeError("registerType registeredInstance requires argPackAdvance");return jr(l,g,E)}var Xe=8,Ln=(l,g,E,p)=>{g=me(g),ze(l,{name:g,fromWireType:function(w){return!!w},toWireType:function(w,R){return R?E:p},argPackAdvance:Xe,readValueFromPointer:function(w){return this.fromWireType(he[w])},destructorFunction:null})},Gn=l=>({count:l.count,deleteScheduled:l.deleteScheduled,preservePointerOnDelete:l.preservePointerOnDelete,ptr:l.ptr,ptrType:l.ptrType,smartPtr:l.smartPtr,smartPtrType:l.smartPtrType}),fr=l=>{function g(E){return E.$$.ptrType.registeredClass.name}J(g(l)+" instance already deleted")},Er=!1,Hr=l=>{},jn=l=>{l.smartPtr?l.smartPtrType.rawDestructor(l.smartPtr):l.ptrType.registeredClass.rawDestructor(l.ptr)},Yr=l=>{l.count.value-=1;var g=l.count.value===0;g&&jn(l)},at=(l,g,E)=>{if(g===E)return l;if(E.baseClass===void 0)return null;var p=at(l,g,E.baseClass);return p===null?null:E.downcast(p)},ct={},vt=()=>Object.keys(Nt).length,wt=()=>{var l=[];for(var g in Nt)Nt.hasOwnProperty(g)&&l.push(Nt[g]);return l},bt=[],Ot=()=>{for(;bt.length;){var l=bt.pop();l.$$.deleteScheduled=!1,l.delete()}},$e,u=l=>{$e=l,bt.length&&$e&&$e(Ot)},Hn=()=>{O.getInheritedInstanceCount=vt,O.getLiveInheritedInstances=wt,O.flushPendingDeletes=Ot,O.setDelayFunction=u},Nt={},MA=(l,g)=>{for(g===void 0&&J("ptr should not be undefined");l.baseClass;)g=l.upcast(g),l=l.baseClass;return g},W=(l,g)=>(g=MA(l,g),Nt[g]),qe=(l,g)=>{(!g.ptrType||!g.ptr)&&Ft("makeClassHandle requires ptr and ptrType");var E=!!g.smartPtrType,p=!!g.smartPtr;return E!==p&&Ft("Both smartPtrType and smartPtr must be specified"),g.count={value:1},kt(Object.create(l,{$$:{value:g,writable:!0}}))};function PA(l){var g=this.getPointee(l);if(!g)return this.destructor(l),null;var E=W(this.registeredClass,g);if(E!==void 0){if(E.$$.count.value===0)return E.$$.ptr=g,E.$$.smartPtr=l,E.clone();var p=E.clone();return this.destructor(l),p}function w(){return this.isSmartPointer?qe(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:g,smartPtrType:this,smartPtr:l}):qe(this.registeredClass.instancePrototype,{ptrType:this,ptr:l})}var R=this.registeredClass.getActualType(g),M=ct[R];if(!M)return w.call(this);var b;this.isConst?b=M.constPointerType:b=M.pointerType;var N=at(g,this.registeredClass,b.registeredClass);return N===null?w.call(this):this.isSmartPointer?qe(b.registeredClass.instancePrototype,{ptrType:b,ptr:N,smartPtrType:this,smartPtr:l}):qe(b.registeredClass.instancePrototype,{ptrType:b,ptr:N})}var kt=l=>typeof FinalizationRegistry=="undefined"?(kt=g=>g,l):(Er=new FinalizationRegistry(g=>{Yr(g.$$)}),kt=g=>{var E=g.$$,p=!!E.smartPtr;if(p){var w={$$:E};Er.register(g,w,g)}return g},Hr=g=>Er.unregister(g),kt(l)),de=()=>{Object.assign(Pe.prototype,{isAliasOf(l){if(!(this instanceof Pe)||!(l instanceof Pe))return!1;var g=this.$$.ptrType.registeredClass,E=this.$$.ptr;l.$$=l.$$;for(var p=l.$$.ptrType.registeredClass,w=l.$$.ptr;g.baseClass;)E=g.upcast(E),g=g.baseClass;for(;p.baseClass;)w=p.upcast(w),p=p.baseClass;return g===p&&E===w},clone(){if(this.$$.ptr||fr(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var l=kt(Object.create(Object.getPrototypeOf(this),{$$:{value:Gn(this.$$)}}));return l.$$.count.value+=1,l.$$.deleteScheduled=!1,l},delete(){this.$$.ptr||fr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&J("Object already scheduled for deletion"),Hr(this),Yr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||fr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&J("Object already scheduled for deletion"),bt.push(this),bt.length===1&&$e&&$e(Ot),this.$$.deleteScheduled=!0,this}})};function Pe(){}var Ut=(l,g)=>Object.defineProperty(g,"name",{value:l}),Xr=(l,g,E)=>{if(l[g].overloadTable===void 0){var p=l[g];l[g]=function(...w){return l[g].overloadTable.hasOwnProperty(w.length)||J(`Function '${E}' called with an invalid number of arguments (${w.length}) - expects one of (${l[g].overloadTable})!`),l[g].overloadTable[w.length].apply(this,w)},l[g].overloadTable=[],l[g].overloadTable[p.argCount]=p}},Ir=(l,g,E)=>{O.hasOwnProperty(l)?((E===void 0||O[l].overloadTable!==void 0&&O[l].overloadTable[E]!==void 0)&&J(`Cannot register public name '${l}' twice`),Xr(O,l,l),O.hasOwnProperty(E)&&J(`Cannot register multiple overloads of a function with the same number of arguments (${E})!`),O[l].overloadTable[E]=g):(O[l]=g,E!==void 0&&(O[l].numArguments=E))},Et=48,SA=57,Vr=l=>{if(l===void 0)return"_unknown";l=l.replace(/[^a-zA-Z0-9_]/g,"$");var g=l.charCodeAt(0);return g>=Et&&g<=SA?`_${l}`:l};function Yn(l,g,E,p,w,R,M,b){this.name=l,this.constructor=g,this.instancePrototype=E,this.rawDestructor=p,this.baseClass=w,this.getActualType=R,this.upcast=M,this.downcast=b,this.pureVirtualFunctions=[]}var er=(l,g,E)=>{for(;g!==E;)g.upcast||J(`Expected null or instance of ${E.name}, got an instance of ${g.name}`),l=g.upcast(l),g=g.baseClass;return l};function Cr(l,g){if(g===null)return this.isReference&&J(`null is not a valid ${this.name}`),0;g.$$||J(`Cannot pass "${Br(g)}" as a ${this.name}`),g.$$.ptr||J(`Cannot pass deleted object as a pointer of type ${this.name}`);var E=g.$$.ptrType.registeredClass,p=er(g.$$.ptr,E,this.registeredClass);return p}function Kr(l,g){var E;if(g===null)return this.isReference&&J(`null is not a valid ${this.name}`),this.isSmartPointer?(E=this.rawConstructor(),l!==null&&l.push(this.rawDestructor,E),E):0;(!g||!g.$$)&&J(`Cannot pass "${Br(g)}" as a ${this.name}`),g.$$.ptr||J(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&g.$$.ptrType.isConst&&J(`Cannot convert argument of type ${g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name} to parameter type ${this.name}`);var p=g.$$.ptrType.registeredClass;if(E=er(g.$$.ptr,p,this.registeredClass),this.isSmartPointer)switch(g.$$.smartPtr===void 0&&J("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:g.$$.smartPtrType===this?E=g.$$.smartPtr:J(`Cannot convert argument of type ${g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:E=g.$$.smartPtr;break;case 2:if(g.$$.smartPtrType===this)E=g.$$.smartPtr;else{var w=g.clone();E=this.rawShare(E,gt.toHandle(()=>w.delete())),l!==null&&l.push(this.rawDestructor,E)}break;default:J("Unsupporting sharing policy")}return E}function Q(l,g){if(g===null)return this.isReference&&J(`null is not a valid ${this.name}`),0;g.$$||J(`Cannot pass "${Br(g)}" as a ${this.name}`),g.$$.ptr||J(`Cannot pass deleted object as a pointer of type ${this.name}`),g.$$.ptrType.isConst&&J(`Cannot convert argument of type ${g.$$.ptrType.name} to parameter type ${this.name}`);var E=g.$$.ptrType.registeredClass,p=er(g.$$.ptr,E,this.registeredClass);return p}function Tt(l){return this.fromWireType(se[l>>2])}var Xn=()=>{Object.assign(xt.prototype,{getPointee(l){return this.rawGetPointee&&(l=this.rawGetPointee(l)),l},destructor(l){var g;(g=this.rawDestructor)==null||g.call(this,l)},argPackAdvance:Xe,readValueFromPointer:Tt,fromWireType:PA})};function xt(l,g,E,p,w,R,M,b,N,L,k){this.name=l,this.registeredClass=g,this.isReference=E,this.isConst=p,this.isSmartPointer=w,this.pointeeType=R,this.sharingPolicy=M,this.rawGetPointee=b,this.rawConstructor=N,this.rawShare=L,this.rawDestructor=k,!w&&g.baseClass===void 0?p?(this.toWireType=Cr,this.destructorFunction=null):(this.toWireType=Q,this.destructorFunction=null):this.toWireType=Kr}var Vn=(l,g,E)=>{O.hasOwnProperty(l)||Ft("Replacing nonexistent public symbol"),O[l].overloadTable!==void 0&&E!==void 0?O[l].overloadTable[E]=g:(O[l]=g,O[l].argCount=E)},Kn=(l,g,E)=>{l=l.replace(/p/g,"i");var p=O["dynCall_"+l];return p(g,...E)},tr=[],Wn,Wr=l=>{var g=tr[l];return g||(l>=tr.length&&(tr.length=l+1),tr[l]=g=Wn.get(l)),g},Lt=(l,g,E=[])=>{if(l.includes("j"))return Kn(l,g,E);var p=Wr(g)(...E);return p},rr=(l,g)=>(...E)=>Lt(l,g,E),Se=(l,g)=>{l=me(l);function E(){return l.includes("j")?rr(l,g):Wr(g)}var p=E();return typeof p!="function"&&J(`unknown function pointer with signature ${l}: ${g}`),p},Jn=(l,g)=>{var E=Ut(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 E.prototype=Object.create(l.prototype),E.prototype.constructor=E,E.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},E},nr,Jr=l=>{var g=Ht(l),E=me(g);return xe(g),E},Ne=(l,g)=>{var E=[],p={};function w(R){if(!p[R]&&!st[R]){if(Je[R]){Je[R].forEach(w);return}E.push(R),p[R]=!0}}throw g.forEach(w),new nr(`${l}: `+E.map(Jr).join([", "]))},Zr=(l,g,E,p,w,R,M,b,N,L,k,K,re)=>{k=me(k),R=Se(w,R),b&&(b=Se(M,b)),L&&(L=Se(N,L)),re=Se(K,re);var ne=Vr(k);Ir(ne,function(){Ne(`Cannot construct ${k} due to unbound types`,[p])}),Ze([l,g,E],p?[p]:[],fe=>{var sr,Or;fe=fe[0];var we,Te;p?(we=fe.registeredClass,Te=we.instancePrototype):Te=Pe.prototype;var Qe=Ut(k,function(...Tr){if(Object.getPrototypeOf(this)!==pt)throw new ft("Use 'new' to construct "+k);if(ye.constructor_body===void 0)throw new ft(k+" has no accessible constructor");var Xt=ye.constructor_body[Tr.length];if(Xt===void 0)throw new ft(`Tried to invoke ctor of ${k} with invalid number of parameters (${Tr.length}) - expected (${Object.keys(ye.constructor_body).toString()}) parameters instead!`);return Xt.apply(this,Tr)}),pt=Object.create(Te,{constructor:{value:Qe}});Qe.prototype=pt;var ye=new Yn(k,Qe,pt,re,we,R,b,L);ye.baseClass&&((Or=(sr=ye.baseClass).__derivedClasses)!=null||(sr.__derivedClasses=[]),ye.baseClass.__derivedClasses.push(ye));var br=new xt(k,ye,!0,!1,!1),pe=new xt(k+"*",ye,!1,!1,!1),Yt=new xt(k+" const*",ye,!1,!0,!1);return ct[l]={pointerType:pe,constPointerType:Yt},Vn(ne,Qe),[br,pe,Yt]})},zr=(l,g)=>{for(var E=[],p=0;p<l;p++)E.push(se[g+p*4>>2]);return E},pr=l=>{for(;l.length;){var g=l.pop(),E=l.pop();E(g)}};function Zn(l){for(var g=1;g<l.length;++g)if(l[g]!==null&&l[g].destructorFunction===void 0)return!0;return!1}function $r(l,g,E,p,w,R){var M=g.length;M<2&&J("argTypes array size mismatch! Must at least get return value and 'this' types!");var b=g[1]!==null&&E!==null,N=Zn(g),L=g[0].name!=="void",k=M-2,K=new Array(k),re=[],ne=[],fe=function(...we){we.length!==k&&J(`function ${l} called with ${we.length} arguments, expected ${k}`),ne.length=0;var Te;re.length=b?2:1,re[0]=w,b&&(Te=g[1].toWireType(ne,this),re[1]=Te);for(var Qe=0;Qe<k;++Qe)K[Qe]=g[Qe+2].toWireType(ne,we[Qe]),re.push(K[Qe]);var pt=p(...re);function ye(br){if(N)pr(ne);else for(var pe=b?1:2;pe<g.length;pe++){var Yt=pe===1?Te:K[pe-2];g[pe].destructorFunction!==null&&g[pe].destructorFunction(Yt)}if(L)return g[0].fromWireType(br)}return ye(pt)};return Ut(l,fe)}var zn=(l,g,E,p,w,R)=>{var M=zr(g,E);w=Se(p,w),Ze([],[l],b=>{b=b[0];var N=`constructor ${b.name}`;if(b.registeredClass.constructor_body===void 0&&(b.registeredClass.constructor_body=[]),b.registeredClass.constructor_body[g-1]!==void 0)throw new ft(`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]=()=>{Ne(`Cannot construct ${b.name} due to unbound types`,M)},Ze([],M,L=>(L.splice(1,0,null),b.registeredClass.constructor_body[g-1]=$r(N,L,null,w,R),[])),[]})},$n=l=>{l=l.trim();let g=l.indexOf("(");return g!==-1?l.substr(0,g):l},qn=(l,g,E,p,w,R,M,b,N)=>{var L=zr(E,p);g=me(g),g=$n(g),R=Se(w,R),Ze([],[l],k=>{k=k[0];var K=`${k.name}.${g}`;g.startsWith("@@")&&(g=Symbol[g.substring(2)]),b&&k.registeredClass.pureVirtualFunctions.push(g);function re(){Ne(`Cannot call ${K} due to unbound types`,L)}var ne=k.registeredClass.instancePrototype,fe=ne[g];return fe===void 0||fe.overloadTable===void 0&&fe.className!==k.name&&fe.argCount===E-2?(re.argCount=E-2,re.className=k.name,ne[g]=re):(Xr(ne,g,K),ne[g].overloadTable[E-2]=re),Ze([],L,we=>{var Te=$r(K,we,k,R,M,N);return ne[g].overloadTable===void 0?(Te.argCount=E-2,ne[g]=Te):ne[g].overloadTable[E-2]=Te,[]}),[]})},qr=(l,g,E)=>(l instanceof Object||J(`${E} with invalid "this": ${l}`),l instanceof g.registeredClass.constructor||J(`${E} incompatible with "this" of type ${l.constructor.name}`),l.$$.ptr||J(`cannot call emscripten binding method ${E} on deleted object`),er(l.$$.ptr,l.$$.ptrType.registeredClass,g.registeredClass)),en=(l,g,E,p,w,R,M,b,N,L)=>{g=me(g),w=Se(p,w),Ze([],[l],k=>{k=k[0];var K=`${k.name}.${g}`,re={get(){Ne(`Cannot access ${K} due to unbound types`,[E,M])},enumerable:!0,configurable:!0};return N?re.set=()=>Ne(`Cannot access ${K} due to unbound types`,[E,M]):re.set=ne=>J(K+" is a read-only property"),Object.defineProperty(k.registeredClass.instancePrototype,g,re),Ze([],N?[E,M]:[E],ne=>{var fe=ne[0],we={get(){var Qe=qr(this,k,K+" getter");return fe.fromWireType(w(R,Qe))},enumerable:!0};if(N){N=Se(b,N);var Te=ne[1];we.set=function(Qe){var pt=qr(this,k,K+" setter"),ye=[];N(L,pt,Te.toWireType(ye,Qe)),pr(ye)}}return Object.defineProperty(k.registeredClass.instancePrototype,g,we),[]}),[]})},ee=[],Ve=[],ke=l=>{l>9&&--Ve[l+1]===0&&(Ve[l]=void 0,ee.push(l))},et=()=>Ve.length/2-5-ee.length,eA=()=>{Ve.push(0,1,void 0,1,null,1,!0,1,!1,1),O.count_emval_handles=et},gt={toValue:l=>(l||J("Cannot use deleted val. handle = "+l),Ve[l]),toHandle:l=>{switch(l){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let g=ee.pop()||Ve.length;return Ve[g]=l,Ve[g+1]=1,g}}}},tn={name:"emscripten::val",fromWireType:l=>{var g=gt.toValue(l);return ke(l),g},toWireType:(l,g)=>gt.toHandle(g),argPackAdvance:Xe,readValueFromPointer:Tt,destructorFunction:null},X=l=>ze(l,tn),Br=l=>{if(l===null)return"null";var g=typeof l;return g==="object"||g==="array"||g==="function"?l.toString():""+l},tA=(l,g)=>{switch(g){case 4:return function(E){return this.fromWireType(Ye[E>>2])};case 8:return function(E){return this.fromWireType(Fr[E>>3])};default:throw new TypeError(`invalid float width (${g}): ${l}`)}},rn=(l,g,E)=>{g=me(g),ze(l,{name:g,fromWireType:p=>p,toWireType:(p,w)=>w,argPackAdvance:Xe,readValueFromPointer:tA(g,E),destructorFunction:null})},a=(l,g,E)=>{switch(g){case 1:return E?p=>dt[p]:p=>he[p];case 2:return E?p=>He[p>>1]:p=>Jt[p>>1];case 4:return E?p=>Zt[p>>2]:p=>se[p>>2];default:throw new TypeError(`invalid integer width (${g}): ${l}`)}},ie=(l,g,E,p,w)=>{g=me(g),w===-1&&(w=4294967295);var R=k=>k;if(p===0){var M=32-8*E;R=k=>k<<M>>>M}var b=g.includes("unsigned"),N=(k,K)=>{},L;b?L=function(k,K){return N(K,this.name),K>>>0}:L=function(k,K){return N(K,this.name),K},ze(l,{name:g,fromWireType:R,toWireType:L,argPackAdvance:Xe,readValueFromPointer:a(g,E,p!==0),destructorFunction:null})},rA=(l,g,E)=>{var p=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],w=p[g];function R(M){var b=se[M>>2],N=se[M+4>>2];return new w(dt.buffer,N,b)}E=me(E),ze(l,{name:E,fromWireType:R,argPackAdvance:Xe,readValueFromPointer:R},{ignoreDuplicateRegistrations:!0})},nA=(l,g,E,p)=>{if(!(p>0))return 0;for(var w=E,R=E+p-1,M=0;M<l.length;++M){var b=l.charCodeAt(M);if(b>=55296&&b<=57343){var N=l.charCodeAt(++M);b=65536+((b&1023)<<10)|N&1023}if(b<=127){if(E>=R)break;g[E++]=b}else if(b<=2047){if(E+1>=R)break;g[E++]=192|b>>6,g[E++]=128|b&63}else if(b<=65535){if(E+2>=R)break;g[E++]=224|b>>12,g[E++]=128|b>>6&63,g[E++]=128|b&63}else{if(E+3>=R)break;g[E++]=240|b>>18,g[E++]=128|b>>12&63,g[E++]=128|b>>6&63,g[E++]=128|b&63}}return g[E]=0,E-w},AA=(l,g,E)=>nA(l,he,g,E),iA=l=>{for(var g=0,E=0;E<l.length;++E){var p=l.charCodeAt(E);p<=127?g++:p<=2047?g+=2:p>=55296&&p<=57343?(g+=4,++E):g+=3}return g},nn=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,oA=(l,g,E)=>{for(var p=g+E,w=g;l[w]&&!(w>=p);)++w;if(w-g>16&&l.buffer&&nn)return nn.decode(l.subarray(g,w));for(var R="";g<w;){var M=l[g++];if(!(M&128)){R+=String.fromCharCode(M);continue}var b=l[g++]&63;if((M&224)==192){R+=String.fromCharCode((M&31)<<6|b);continue}var N=l[g++]&63;if((M&240)==224?M=(M&15)<<12|b<<6|N:M=(M&7)<<18|b<<12|N<<6|l[g++]&63,M<65536)R+=String.fromCharCode(M);else{var L=M-65536;R+=String.fromCharCode(55296|L>>10,56320|L&1023)}}return R},sA=(l,g)=>l?oA(he,l,g):"",aA=(l,g)=>{g=me(g);var E=g==="std::string";ze(l,{name:g,fromWireType(p){var w=se[p>>2],R=p+4,M;if(E)for(var b=R,N=0;N<=w;++N){var L=R+N;if(N==w||he[L]==0){var k=L-b,K=sA(b,k);M===void 0?M=K:(M+=String.fromCharCode(0),M+=K),b=L+1}}else{for(var re=new Array(w),N=0;N<w;++N)re[N]=String.fromCharCode(he[R+N]);M=re.join("")}return xe(p),M},toWireType(p,w){w instanceof ArrayBuffer&&(w=new Uint8Array(w));var R,M=typeof w=="string";M||w instanceof Uint8Array||w instanceof Uint8ClampedArray||w instanceof Int8Array||J("Cannot pass non-string to std::string"),E&&M?R=iA(w):R=w.length;var b=wr(4+R+1),N=b+4;if(se[b>>2]=R,E&&M)AA(w,N,R+1);else if(M)for(var L=0;L<R;++L){var k=w.charCodeAt(L);k>255&&(xe(N),J("String has UTF-16 code units that do not fit in 8 bits")),he[N+L]=k}else for(var L=0;L<R;++L)he[N+L]=w[L];return p!==null&&p.push(xe,b),b},argPackAdvance:Xe,readValueFromPointer:Tt,destructorFunction(p){xe(p)}})},Gt=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,Ar=(l,g)=>{for(var E=l,p=E>>1,w=p+g/2;!(p>=w)&&Jt[p];)++p;if(E=p<<1,E-l>32&&Gt)return Gt.decode(he.subarray(l,E));for(var R="",M=0;!(M>=g/2);++M){var b=He[l+M*2>>1];if(b==0)break;R+=String.fromCharCode(b)}return R},hr=(l,g,E)=>{if(E!=null||(E=2147483647),E<2)return 0;E-=2;for(var p=g,w=E<l.length*2?E/2:l.length,R=0;R<w;++R){var M=l.charCodeAt(R);He[g>>1]=M,g+=2}return He[g>>1]=0,g-p},Fe=l=>l.length*2,cA=(l,g)=>{for(var E=0,p="";!(E>=g/4);){var w=Zt[l+E*4>>2];if(w==0)break;if(++E,w>=65536){var R=w-65536;p+=String.fromCharCode(55296|R>>10,56320|R&1023)}else p+=String.fromCharCode(w)}return p},gA=(l,g,E)=>{if(E!=null||(E=2147483647),E<4)return 0;for(var p=g,w=p+E-4,R=0;R<l.length;++R){var M=l.charCodeAt(R);if(M>=55296&&M<=57343){var b=l.charCodeAt(++R);M=65536+((M&1023)<<10)|b&1023}if(Zt[g>>2]=M,g+=4,g+4>w)break}return Zt[g>>2]=0,g-p},lA=l=>{for(var g=0,E=0;E<l.length;++E){var p=l.charCodeAt(E);p>=55296&&p<=57343&&++E,g+=4}return g},ir=(l,g,E)=>{E=me(E);var p,w,R,M;g===2?(p=Ar,w=hr,M=Fe,R=b=>Jt[b>>1]):g===4&&(p=cA,w=gA,M=lA,R=b=>se[b>>2]),ze(l,{name:E,fromWireType:b=>{for(var N=se[b>>2],L,k=b+4,K=0;K<=N;++K){var re=b+4+K*g;if(K==N||R(re)==0){var ne=re-k,fe=p(k,ne);L===void 0?L=fe:(L+=String.fromCharCode(0),L+=fe),k=re+g}}return xe(b),L},toWireType:(b,N)=>{typeof N!="string"&&J(`Cannot pass non-string to C++ string type ${E}`);var L=M(N),k=wr(4+L+g);return se[k>>2]=L/g,w(N,k+4,L+g),b!==null&&b.push(xe,k),k},argPackAdvance:Xe,readValueFromPointer:Tt,destructorFunction(b){xe(b)}})},or=(l,g)=>{g=me(g),ze(l,{isVoid:!0,name:g,argPackAdvance:0,fromWireType:()=>{},toWireType:(E,p)=>{}})},An=(l,g,E)=>he.copyWithin(l,g,g+E),mr=(l,g)=>{var E=st[l];return E===void 0&&J(`${g} has unknown type ${Jr(l)}`),E},Qr=(l,g,E)=>{var p=[],w=l.toWireType(p,E);return p.length&&(se[g>>2]=gt.toHandle(p)),w},le=(l,g,E)=>(l=gt.toValue(l),g=mr(g,"emval::as"),Qr(g,E,l)),uA={},dA=l=>{var g=uA[l];return g===void 0?me(l):g},It=[],yr=(l,g,E,p,w)=>(l=It[l],g=gt.toValue(g),E=dA(E),l(g,g[E],p,w)),jt=l=>{var g=It.length;return It.push(l),g},fA=(l,g)=>{for(var E=new Array(l),p=0;p<l;++p)E[p]=mr(se[g+p*4>>2],"parameter "+p);return E},EA=Reflect.construct,tt=(l,g,E)=>{var p=fA(l,g),w=p.shift();l--;var R=new Array(l),M=(N,L,k,K)=>{for(var re=0,ne=0;ne<l;++ne)R[ne]=p[ne].readValueFromPointer(K+re),re+=p[ne].argPackAdvance;var fe=E===1?EA(L,R):L.apply(N,R);return Qr(w,k,fe)},b=`methodCaller<(${p.map(N=>N.name).join(", ")}) => ${w.name}>`;return jt(Ut(b,M))},Rt=l=>{l>9&&(Ve[l+1]+=1)},V=l=>{var g=gt.toValue(l);pr(g),ke(l)},_r=(l,g)=>{l=mr(l,"_emval_take_value");var E=l.readValueFromPointer(g);return gt.toHandle(E)},IA=l=>{lr("OOM")},on=l=>{var g=he.length;l>>>=0,IA(l)};Lr(),ft=O.BindingError=class extends Error{constructor(g){super(g),this.name="BindingError"}},Gr=O.InternalError=class extends Error{constructor(g){super(g),this.name="InternalError"}},de(),Hn(),Xn(),nr=O.UnboundTypeError=Jn(Error,"UnboundTypeError"),eA();var Ct={v:Ae,p:Ce,o:dr,t:Ln,x:Zr,w:zn,h:qn,k:en,s:X,n:rn,g:ie,a:rA,m:aA,l:ir,u:or,r:An,j:le,e:yr,c:ke,f:tt,d:Rt,b:V,i:_r,q:on},Ue=St(),Dr=()=>(Dr=Ue.z)(),wr=l=>(wr=Ue.A)(l),Ht=l=>(Ht=Ue.C)(l),xe=l=>(xe=Ue.D)(l),sn=l=>(sn=Ue.E)(l),CA=O._vertexShaderSource=13280,rt;it=function l(){rt||an(),rt||(it=l)};function an(){if(ue>0||(P(),ue>0))return;function l(){rt||(rt=!0,O.calledRun=!0,!$&&(Fn(),Be(O),O.onRuntimeInitialized&&O.onRuntimeInitialized(),TA()))}O.setStatus?(O.setStatus("Running..."),setTimeout(function(){setTimeout(function(){O.setStatus("")},1),l()},1)):l()}if(O.preInit)for(typeof O.preInit=="function"&&(O.preInit=[O.preInit]);O.preInit.length>0;)O.preInit.pop()();return an(),n=ce,n}})(),ai=pc;var On=class{constructor(S,n){Ie(this,"canvas");Ie(this,"locateFile");Ie(this,"_glName");Ie(this,"_solutionWasm");Ie(this,"ctx");Ie(this,"fileDownloader");Ie(this,"pl",{onResults:S=>this.onResults(S.get(0).glName)});this.locateFile=O=>`${S}/${O}`,this.fileDownloader=n}bindTexture(){var S;(S=this.ctx)==null||S.activeTexture(this.ctx.TEXTURE0),this.bindTexture2d(this._glName)}async initialize(){this._solutionWasm=new this.SolutionWasm;let S=new this.StringList;S.push_back("segmentation_mask");let n=this.PacketListener.implement(this.pl);return this._solutionWasm.attachMultiListener(S,n),S.delete(),this._solutionWasm.loadGraph(await this.fileDownloader.download(this.locateFile("selfie_segmentation.binarypb"),{type:"arraybuffer"})),this}setCanvas(S){this.canvas=S,this.createContext(S,!0,!0,{}),this._glName=this.createTexture()}fetchResponse(S){return this.fileDownloader.downloadWithFetch(S,"fetch-response")}loadWasm(S,n){return this.fileDownloader.loadWasm(S,n)}async changeModel(S="selfie_segmentation_landscape.tflite"){S=typeof S=="string"?await this.fileDownloader.download(this.locateFile(S),{type:"arraybuffer"}):S,this._solutionWasm.overrideFile("third_party/mediapipe/modules/selfie_segmentation/selfie_segmentation_landscape.tflite",S);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(S,n){let O=new this.PacketDataList;O.pushTexture2d({stream:"input_frames_gpu",timestamp:performance.now()*1e3,glName:this._glName,width:S,height:n}),this._solutionWasm.send(O),O.delete()}close(){var S,n,O;(S=this.canvas)==null||delete S.getContext,delete this.readyPromiseResolve,delete this.readyPromiseReject,this.pl.onResults=null,delete this.onResults,(n=this.deleteTexture)==null||n.call(this,this._glName),(O=this._solutionWasm)==null||O.delete();for(let Be of Object.keys(this))delete this[Be]}};var Tn=0,Rn=class Rn{constructor(S){this.core=S;Ie(this,"seq");Ie(this,"_core");Ie(this,"log");Ie(this,"preLoadPromise");Ie(this,"startResolve");Ie(this,"startReject");Ie(this,"mediaPipeSolutions");Ie(this,"assetsPath");Tn=Tn+1,this.seq=Tn,this._core=S,this.log=S.log.createChild({id:`${this.getAlias()}${Tn}`}),this.log.info("created"),S.assetsPath&&(this.preLoadPromise=this.preload(S.assetsPath))}async preload(S="https://web.sdk.qcloud.com/trtc/webrtc/v5/assets/"){try{this._core.room.videoManager.Wasm||(this._core.room.videoManager.Wasm=await ai({print:console.warn})),this.assetsPath=`${S}/selfie_segmentation/`;let n=new On(this.assetsPath,this._core.fileDownloader);this.mediaPipeSolutions=await si(n),await this.mediaPipeSolutions.initialize(),await this._core.room.videoManager.initVirtualBackground(this.mediaPipeSolutions)}catch(n){let{RtcError:O,ErrorCode:Be}=this._core.errorModule;throw new O({code:Be.INVALID_OPERATION,message:`VirtualBackground preload error, please check your assetsPath. detail: ${n}`})}}getName(){return Rn.Name}getAlias(){return"vb"}getValidateRule(S){switch(S){case"start":return Ai(this._core);case"update":return ii(this._core);case"stop":return oi(this._core)}}getGroup(){return"vb"}async start(S){let{type:n="blur",src:O}=S,{auth:Be,sign:ae,timestamp:ce}=await ni({sdkAppId:S.sdkAppId,userId:S.userId,userSig:S.userSig,core:this._core});if(!Be){let{RtcError:_e,ErrorCode:Oe,ErrorCodeDictionary:Re}=this._core.errorModule;throw new _e({code:Oe.SERVER_ERROR,extraCode:Re.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:O})}async update(S){let{type:n,src:O}=S;return this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:O})}async stop(){return this.core.room.videoManager.setVirtualBackground()}};Ie(Rn,"Name","VirtualBackground");var bA=Rn;var dg=bA;export{bA as VirtualBackground,dg as default};