trtc-sdk-v5 5.10.0-beta.4 → 5.10.0-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.
Files changed (59) hide show
  1. package/README-zh_CN.md +2 -1
  2. package/README.md +2 -1
  3. package/assets/debug-dialog.js +1 -0
  4. package/{plugins/ai-denoiser → assets}/denoiser-wasm.js +1 -1
  5. package/assets/selfie_segmentation/package.json +27 -0
  6. package/assets/selfie_segmentation/selfie_segmentation.binarypb +0 -0
  7. package/assets/selfie_segmentation/selfie_segmentation.tflite +0 -0
  8. package/assets/selfie_segmentation/selfie_segmentation_landscape.tflite +0 -0
  9. package/assets/selfie_segmentation/selfie_segmentation_solution_simd_wasm_bin.data +0 -0
  10. package/assets/selfie_segmentation/selfie_segmentation_solution_simd_wasm_bin.wasm +0 -0
  11. package/assets/selfie_segmentation/selfie_segmentation_solution_wasm_bin.wasm +0 -0
  12. package/assets/videodec.wasm +0 -0
  13. package/assets/videodec_simd.wasm +0 -0
  14. package/index.d.ts +1823 -1796
  15. package/package.json +1 -1
  16. package/plugins/cdn-streaming/cdn-streaming.esm.js +1 -1
  17. package/plugins/cdn-streaming/cdn-streaming.umd.js +1 -0
  18. package/plugins/cdn-streaming/package.json +1 -2
  19. package/plugins/cross-room/cross-room.esm.js +1 -1
  20. package/plugins/cross-room/cross-room.umd.js +1 -0
  21. package/plugins/cross-room/package.json +1 -2
  22. package/plugins/custom-encryption/custom-encryption.esm.d.ts +31 -0
  23. package/plugins/custom-encryption/custom-encryption.esm.js +1 -0
  24. package/plugins/custom-encryption/custom-encryption.umd.js +1 -0
  25. package/plugins/custom-encryption/package.json +7 -0
  26. package/plugins/device-detector/device-detector.esm.js +93 -1234
  27. package/plugins/device-detector/device-detector.umd.js +39 -0
  28. package/plugins/device-detector/package.json +1 -2
  29. package/plugins/video-decoder/package.json +1 -1
  30. package/plugins/video-decoder/video-decoder.esm.d.ts +20 -20
  31. package/plugins/video-decoder/video-decoder.esm.js +1 -43
  32. package/plugins/video-decoder/video-decoder.umd.js +1 -0
  33. package/plugins/video-effect/basic-beauty/basic-beauty.esm.js +1 -2
  34. package/plugins/video-effect/basic-beauty/basic-beauty.umd.js +1 -0
  35. package/plugins/video-effect/basic-beauty/package.json +1 -2
  36. package/plugins/video-effect/beauty/beauty.esm.js +1 -2954
  37. package/plugins/video-effect/beauty/beauty.umd.js +1 -0
  38. package/plugins/video-effect/beauty/package.json +1 -2
  39. package/plugins/video-effect/virtual-background/package.json +1 -2
  40. package/plugins/video-effect/virtual-background/virtual-background.esm.js +1 -60
  41. package/plugins/video-effect/virtual-background/virtual-background.umd.js +1 -0
  42. package/plugins/video-effect/watermark/package.json +1 -2
  43. package/plugins/video-effect/watermark/watermark.esm.d.ts +10 -2
  44. package/plugins/video-effect/watermark/watermark.esm.js +1 -1
  45. package/plugins/video-effect/watermark/watermark.umd.js +1 -0
  46. package/plugins/voice-changer/package.json +9 -0
  47. package/plugins/voice-changer/voice-changer.esm.d.ts +20 -0
  48. package/plugins/voice-changer/voice-changer.esm.js +1 -0
  49. package/plugins/voice-changer/voice-changer.umd.js +1 -0
  50. package/trtc.esm.js +28 -28
  51. package/trtc.js +1 -1
  52. package/plugins/cdn-streaming/cdn-streaming.iife.js +0 -1
  53. package/plugins/cross-room/cross-room.iife.js +0 -1
  54. package/plugins/device-detector/device-detector.iife.js +0 -1472
  55. package/plugins/video-decoder/video-decoder.iife.js +0 -43
  56. package/plugins/video-effect/basic-beauty/basic-beauty.iife.js +0 -2
  57. package/plugins/video-effect/beauty/beauty.iife.js +0 -2954
  58. package/plugins/video-effect/virtual-background/virtual-background.iife.js +0 -60
  59. package/plugins/video-effect/watermark/watermark.iife.js +0 -1
@@ -1,60 +1 @@
1
- var Iu=Object.defineProperty,mu=Object.defineProperties;var Cu=Object.getOwnPropertyDescriptors;var pc=Object.getOwnPropertySymbols;var yu=Object.prototype.hasOwnProperty,wu=Object.prototype.propertyIsEnumerable;var nc=(J,U,n)=>U in J?Iu(J,U,{enumerable:!0,configurable:!0,writable:!0,value:n}):J[U]=n,_c=(J,U)=>{for(var n in U||(U={}))yu.call(U,n)&&nc(J,n,U[n]);if(pc)for(var n of pc(U))wu.call(U,n)&&nc(J,n,U[n]);return J},hc=(J,U)=>mu(J,Cu(U));var Ic=(J=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(J,{get:(U,n)=>(typeof require!="undefined"?require:U)[n]}):J)(function(J){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+J+'" is not supported')});var Le=(J,U,n)=>nc(J,typeof U!="symbol"?U+"":U,n);async function mc({sdkAppId:J,userId:U,userSig:n,core:pe}){var st;let k=pe.schedule.getAbilityConfigUrl(J),Ne=Math.round(new Date().getTime()/1e3),we=`${k}?sdkAppId=${J}&userId=${U}&userSig=${n}&timestamp=${Ne}`;try{let Je=await(await fetch(we)).json();pe.log.info(`virtual background send ${we}, response: ${JSON.stringify(Je)}`);let{data:Xe}=Je;return(st=Xe==null?void 0:Xe.trtcAutoConf)!=null&&st.web_ar?{auth:!0,timestamp:Ne}:{auth:!1}}catch(mt){return pe.log.error("virtual background fetch error",mt),{auth:!1}}}var bu={sdkAppId:{required:!0,type:"number"},userId:{required:!0,type:"string"},userSig:{required:!0,type:"string"}};function Cc(J){return{name:"VirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:hc(_c({},bu),{type:{required:!1,type:"string",values:["image","blur"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10},onAbort:{required:!1}}),validate(U,n,pe,k){var ze;let{RtcError:Ne,ErrorCode:we,ErrorCodeDictionary:st}=J.errorModule;if(!U)return;let{type:mt,src:Je,onAbort:Xe}=U;if(mt==="image"&&!Je)throw new Ne({code:we.INVALID_PARAMETER,extraCode:st.INVALID_PARAMETER_REQUIRED,fnName:pe,messageParams:{key:"src"}});if(Xe&&!J.utils.isFunction(Xe))throw new Ne({code:we.INVALID_PARAMETER,extraCode:st.INVALID_PARAMETER_TYPE,fnName:pe,messageParams:{key:"onAbort",value:typeof Xe,rule:{type:"Function"}}});if(!((ze=J.room.videoManager.cameraTrack)!=null&&ze.mediaTrack))throw new Ne({code:we.INVALID_OPERATION,extraCode:st.INVALID_OPERATION_NEED_VIDEO,fnName:pe})}}}function yc(J){return{name:"UpdateVirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:{type:{required:!0,type:"string",values:["image","blur"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10}},validate(U,n,pe,k){if(!U)return;let{RtcError:Ne,ErrorCode:we,ErrorCodeDictionary:st}=J.errorModule,{type:mt,src:Je}=U;if(mt==="image"&&!Je)throw new Ne({code:we.INVALID_PARAMETER,extraCode:st.INVALID_PARAMETER_REQUIRED,fnName:pe,messageParams:{key:"src"}})}}}function wc(J){return{name:"StopVirtualBackgroundOptions",required:!1}}var Du=function(){let J=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(J=J||__filename),function(U){U=U||{};let n=typeof U!="undefined"?U:{},pe,k;n.ready=new Promise((e,t)=>{pe=e,k=t}),Object.getOwnPropertyDescriptor(n.ready,"_main")||(Object.defineProperty(n.ready,"_main",{configurable:!0,get(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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(){_("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 Ne={},we;for(we in n)n.hasOwnProperty(we)&&(Ne[we]=n[we]);let st=[],mt="./this.program",Je=function(e,t){throw t},Xe=typeof window=="object",ze=typeof importScripts=="function",Ct=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",Qi=!Xe&&!Ct&&!ze;if(n.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)");let Te="";function Pi(e){return n.locateFile?n.locateFile(e,Te):Te+e}let Mr,tr,Fr,on,Ze,ge;if(Xe||ze){if(ze?Te=self.location.href:typeof document!="undefined"&&document.currentScript&&(Te=document.currentScript.src),J&&(Te=J),Te.indexOf("blob:")!==0?Te=Te.substr(0,Te.lastIndexOf("/")+1):Te="",!(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?)");Mr=function(e){let t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},ze&&(Fr=function(e){let t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),tr=function(e,t,r){let o=new XMLHttpRequest;o.open("GET",e,!0),o.responseType="arraybuffer",o.onload=function(){if(o.status==200||o.status==0&&o.response){t(o.response);return}r()},o.onerror=r,o.send(null)},on=function(e){document.title=e}}else throw new Error("environment detection error");let Re=n.print||console.log.bind(console),_e=n.printErr||console.warn.bind(console);for(we in Ne)Ne.hasOwnProperty(we)&&(n[we]=Ne[we]);Ne=null,n.arguments&&(st=n.arguments),Object.getOwnPropertyDescriptor(n,"arguments")||Object.defineProperty(n,"arguments",{configurable:!0,get(){_("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&&(mt=n.thisProgram),Object.getOwnPropertyDescriptor(n,"thisProgram")||Object.defineProperty(n,"thisProgram",{configurable:!0,get(){_("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&&(Je=n.quit),Object.getOwnPropertyDescriptor(n,"quit")||Object.defineProperty(n,"quit",{configurable:!0,get(){_("Module.quit has been replaced with plain quit_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),z(typeof n.memoryInitializerPrefixURL=="undefined","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),z(typeof n.pthreadMainPrefixURL=="undefined","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),z(typeof n.cdInitializerPrefixURL=="undefined","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),z(typeof n.filePackagePrefixURL=="undefined","Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),z(typeof n.read=="undefined","Module.read option was removed (modify read_ in JS)"),z(typeof n.readAsync=="undefined","Module.readAsync option was removed (modify readAsync in JS)"),z(typeof n.readBinary=="undefined","Module.readBinary option was removed (modify readBinary in JS)"),z(typeof n.setWindowTitle=="undefined","Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),z(typeof n.TOTAL_MEMORY=="undefined","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Object.getOwnPropertyDescriptor(n,"read")||Object.defineProperty(n,"read",{configurable:!0,get(){_("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(){_("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(){_("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(){_("Module.setWindowTitle has been replaced with plain setWindowTitle (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),z(!Qi,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");function nt(e){nt.shown||(nt.shown={}),nt.shown[e]||(nt.shown[e]=1,_e(e))}function Ir(e,t){if(typeof WebAssembly.Function=="function"){let I={i:"i32",j:"i64",f:"f32",d:"f64"},m={parameters:[],results:t[0]=="v"?[]:[I[t[0]]]};for(var r=1;r<t.length;++r)m.parameters.push(I[t[r]]);return new WebAssembly.Function(m,e)}let o=[1,0,1,96],a=t.slice(0,1),s=t.slice(1),A={i:127,j:126,f:125,d:124};o.push(s.length);for(var r=0;r<s.length;++r)o.push(A[s[r]]);a=="v"?o.push(0):o=o.concat([1,A[a]]),o[1]=o.length-2;let c=new Uint8Array([0,97,115,109,1,0,0,0].concat(o,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0])),u=new WebAssembly.Module(c);return new WebAssembly.Instance(u,{e:{f:e}}).exports.f}let Lt=[],He;function mr(){if(Lt.length)return Lt.pop();try{W.grow(1)}catch(e){throw e instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":e}return W.length-1}function yt(e,t){if(!He){He=new WeakMap;for(let o=0;o<W.length;o++){let a=W.get(o);a&&He.set(a,o)}}if(He.has(e))return He.get(e);let r=mr();try{W.set(r,e)}catch(o){if(!(o instanceof TypeError))throw o;z(typeof t!="undefined",`Missing signature argument to addFunction: ${e}`);let a=Ir(e,t);W.set(r,a)}return He.set(e,r),r}let Cr=0,Ee=function(e){Cr=e},Gn=function(){return Cr},Ht;n.wasmBinary&&(Ht=n.wasmBinary),Object.getOwnPropertyDescriptor(n,"wasmBinary")||Object.defineProperty(n,"wasmBinary",{configurable:!0,get(){_("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 Gt=n.noExitRuntime||!0;Object.getOwnPropertyDescriptor(n,"noExitRuntime")||Object.defineProperty(n,"noExitRuntime",{configurable:!0,get(){_("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"&&_("no native wasm support detected");let Rt,V=!1,kr;function z(e,t){e||_(`Assertion failed: ${t}`)}function po(e){let t=n[`_${e}`];return z(t,`Cannot call unknown function ${e}, make sure it is exported`),t}function Ri(e,t,r,o,a){let s={string(m){let y=0;if(m!=null&&m!==0){let v=(m.length<<2)+1;y=lo(v),rr(m,y,v)}return y},array(m){let y=lo(m.length);return Vn(m,y),y}};function A(m){return t==="string"?et(m):t==="boolean"?!!m:m}let c=po(e),u=[],d=0;if(z(t!=="array",'Return type should not be "array".'),o)for(let m=0;m<o.length;m++){let y=s[r[m]];y?(d===0&&(d=L()),u[m]=y(o[m])):u[m]=o[m]}let h=c.apply(null,u);function I(m){return d!==0&&te(d),A(m)}return h=I(h),h}let Nr=1,At=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function St(e,t,r){let o=t+r,a=t;for(;e[a]&&!(a>=o);)++a;if(a-t>16&&e.subarray&&At)return At.decode(e.subarray(t,a));let s="";for(;t<a;){let A=e[t++];if(!(A&128)){s+=String.fromCharCode(A);continue}let c=e[t++]&63;if((A&224)==192){s+=String.fromCharCode((A&31)<<6|c);continue}let u=e[t++]&63;if((A&240)==224?A=(A&15)<<12|c<<6|u:((A&248)!=240&&nt(`Invalid UTF-8 leading byte 0x${A.toString(16)} encountered when deserializing a UTF-8 string in wasm memory to a JS string!`),A=(A&7)<<18|c<<12|u<<6|e[t++]&63),A<65536)s+=String.fromCharCode(A);else{let d=A-65536;s+=String.fromCharCode(55296|d>>10,56320|d&1023)}}return s}function et(e,t){return e?St(ve,e,t):""}function tt(e,t,r,o){if(!(o>0))return 0;let a=r,s=r+o-1;for(let A=0;A<e.length;++A){let c=e.charCodeAt(A);if(c>=55296&&c<=57343){let u=e.charCodeAt(++A);c=65536+((c&1023)<<10)|u&1023}if(c<=127){if(r>=s)break;t[r++]=c}else if(c<=2047){if(r+1>=s)break;t[r++]=192|c>>6,t[r++]=128|c&63}else if(c<=65535){if(r+2>=s)break;t[r++]=224|c>>12,t[r++]=128|c>>6&63,t[r++]=128|c&63}else{if(r+3>=s)break;c>=2097152&&nt(`Invalid Unicode code point 0x${c.toString(16)} encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x1FFFFF).`),t[r++]=240|c>>18,t[r++]=128|c>>12&63,t[r++]=128|c>>6&63,t[r++]=128|c&63}}return t[r]=0,r-a}function rr(e,t,r){return z(typeof r=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),tt(e,ve,t,r)}function Bt(e){let t=0;for(let r=0;r<e.length;++r){let o=e.charCodeAt(r);o>=55296&&o<=57343&&(o=65536+((o&1023)<<10)|e.charCodeAt(++r)&1023),o<=127?++t:o<=2047?t+=2:o<=65535?t+=3:t+=4}return t}let Yn=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function Si(e,t){z(e%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");let r=e,o=r>>1,a=o+t/2;for(;!(o>=a)&&De[o];)++o;if(r=o<<1,r-e>32&&Yn)return Yn.decode(ve.subarray(e,r));let s="";for(let A=0;!(A>=t/2);++A){let c=T[e+A*2>>1];if(c==0)break;s+=String.fromCharCode(c)}return s}function mn(e,t,r){if(z(t%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),z(typeof r=="number","stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),r===void 0&&(r=2147483647),r<2)return 0;r-=2;let o=t,a=r<e.length*2?r/2:e.length;for(let s=0;s<a;++s){let A=e.charCodeAt(s);T[t>>1]=A,t+=2}return T[t>>1]=0,t-o}function Xn(e){return e.length*2}function Mi(e,t){z(e%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");let r=0,o="";for(;!(r>=t/4);){let a=D[e+r*4>>2];if(a==0)break;if(++r,a>=65536){let s=a-65536;o+=String.fromCharCode(55296|s>>10,56320|s&1023)}else o+=String.fromCharCode(a)}return o}function Cn(e,t,r){if(z(t%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),z(typeof r=="number","stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),r===void 0&&(r=2147483647),r<4)return 0;let o=t,a=o+r-4;for(let s=0;s<e.length;++s){let A=e.charCodeAt(s);if(A>=55296&&A<=57343){let c=e.charCodeAt(++s);A=65536+((A&1023)<<10)|c&1023}if(D[t>>2]=A,t+=4,t+4>a)break}return D[t>>2]=0,t-o}function xr(e){let t=0;for(let r=0;r<e.length;++r){let o=e.charCodeAt(r);o>=55296&&o<=57343&&++r,t+=4}return t}function yn(e){let t=Bt(e)+1,r=rn(t);return r&&tt(e,be,r,t),r}function Vn(e,t){z(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),be.set(e,t)}function Ur(e,t,r){for(let o=0;o<e.length;++o)z(e.charCodeAt(o)===e.charCodeAt(o)&255),be[t++>>0]=e.charCodeAt(o);r||(be[t>>0]=0)}function xe(e,t){return e%t>0&&(e+=t-e%t),e}let Se,be,ve,T,De,D,Qe,$e,jr;function an(e){Se=e,n.HEAP8=be=new Int8Array(e),n.HEAP16=T=new Int16Array(e),n.HEAP32=D=new Int32Array(e),n.HEAPU8=ve=new Uint8Array(e),n.HEAPU16=De=new Uint16Array(e),n.HEAPU32=Qe=new Uint32Array(e),n.HEAPF32=$e=new Float32Array(e),n.HEAPF64=jr=new Float64Array(e)}let K=5242880;n.TOTAL_STACK&&z(K===n.TOTAL_STACK,"the stack size can no longer be determined at runtime");let Lr=n.INITIAL_MEMORY||16777216;Object.getOwnPropertyDescriptor(n,"INITIAL_MEMORY")||Object.defineProperty(n,"INITIAL_MEMORY",{configurable:!0,get(){_("Module.INITIAL_MEMORY has been replaced with plain INITIAL_MEMORY (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),z(Lr>=K,`INITIAL_MEMORY should be larger than TOTAL_STACK, was ${Lr}! (TOTAL_STACK=${K})`),z(typeof Int32Array!="undefined"&&typeof Float64Array!="undefined"&&Int32Array.prototype.subarray!==void 0&&Int32Array.prototype.set!==void 0,"JS engine does not provide full typed array support"),z(!n.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),z(Lr==16777216,"Detected runtime INITIAL_MEMORY setting. Use -s IMPORTED_MEMORY to define wasmMemory dynamically");let W;function Yt(){let e=nn();z((e&3)==0),Qe[(e>>2)+1]=34821223,Qe[(e>>2)+2]=2310721022,D[0]=1668509029}function ct(){if(V)return;let e=nn(),t=Qe[(e>>2)+1],r=Qe[(e>>2)+2];(t!=34821223||r!=2310721022)&&_(`Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x${r.toString(16)} ${t.toString(16)}`),D[0]!==1668509029&&_("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 Hr=[],Xt=[],de=[],sn=[],yr=!1,Ot=!1,Fi=0;function wt(){return Gt||Fi>0}function Vt(){if(n.preRun)for(typeof n.preRun=="function"&&(n.preRun=[n.preRun]);n.preRun.length;)bn(n.preRun.shift());Tn(Hr)}function ki(){ct(),z(!yr),yr=!0,!n.noFSInit&&!l.init.initialized&&l.init(),l.ignorePermissions=!1,bt.init(),Tn(Xt)}function Ni(){ct(),Ot=!0}function wn(){if(ct(),n.postRun)for(typeof n.postRun=="function"&&(n.postRun=[n.postRun]);n.postRun.length;)nr(n.postRun.shift());Tn(sn)}function bn(e){Hr.unshift(e)}function Wt(e){Xt.unshift(e)}function nr(e){sn.unshift(e)}z(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),z(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),z(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),z(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");let ft=0,ut=null,ir=null,Mt={};function wr(e){let t=e;for(;;){if(!Mt[e])return e;e=t+Math.random()}}function p(e){ft++,n.monitorRunDependencies&&n.monitorRunDependencies(ft),e?(z(!Mt[e]),Mt[e]=1,ut===null&&typeof setInterval!="undefined"&&(ut=setInterval(()=>{if(V){clearInterval(ut),ut=null;return}let t=!1;for(let r in Mt)t||(t=!0,_e("still waiting on run dependencies:")),_e(`dependency: ${r}`);t&&_e("(end of list)")},1e4))):_e("warning: run dependency added without ID")}function or(e){if(ft--,n.monitorRunDependencies&&n.monitorRunDependencies(ft),e?(z(Mt[e]),delete Mt[e]):_e("warning: run dependency removed without ID"),ft==0&&(ut!==null&&(clearInterval(ut),ut=null),ir)){let t=ir;ir=null,t()}}n.preloadedImages={},n.preloadedAudios={};function _(e){n.onAbort&&n.onAbort(e),e+="",_e(e),V=!0,kr=1,e=`abort(${e}) at ${ji()}`;let r=new WebAssembly.RuntimeError(e);throw k(r),r}let Dn="data:application/octet-stream;base64,";function le(e){return e.startsWith(Dn)}function Ge(e){return e.startsWith("file://")}function ce(e,t){return function(){let r=e,o=t;return t||(o=n.asm),z(yr,`native function \`${r}\` called before runtime initialization`),z(!Ot,`native function \`${r}\` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)`),o[e]||z(o[e],`exported native function \`${r}\` not found`),o[e].apply(null,arguments)}}let br;br="selfie_segmentation_solution_simd_wasm_bin.wasm",le(br)||(br=Pi(br));function Bn(e){try{if(e==br&&Ht)return new Uint8Array(Ht);if(Fr)return Fr(e);throw"both async and sync fetching of the wasm failed"}catch(t){_(t)}}function Ve(){let e={env:rA,wasi_snapshot_preview1:rA};function t(a,s){let{exports:A}=a;n.asm=A,Rt=n.asm.memory,z(Rt,"memory not found in wasm exports"),an(Rt.buffer),W=n.asm.__indirect_function_table,z(W,"table not found in wasm exports"),Wt(n.asm.__wasm_call_ctors),or("wasm-instantiate")}p("wasm-instantiate");let r=n;function o(a){z(n===r,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),r=null,t(a)}if(n.instantiateWasm)try{return n.instantiateWasm(e,t)}catch(a){return _e(`Module.instantiateWasm callback failed with error: ${a}`),!1}return n.loadWasm(br,e).then(o).catch(k),{}}let ye,Tt,Gr={460656(){let e=!0;if(e){let t=oo;if(typeof t!="function"){typeof console!="undefined"&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.');return}oo=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 Dr(){return typeof wasmOffsetConverter!="undefined"}function vt(e,t){if(Q.mainLoop.timingMode=e,Q.mainLoop.timingValue=t,!Q.mainLoop.func)return _e("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 o=Math.max(0,Q.mainLoop.tickStartTime+t-Br())|0;setTimeout(Q.mainLoop.runner,o)},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=[],o="setimmediate",a=function(s){(s.data===o||s.data.target===o)&&(s.stopPropagation(),r.shift()())};addEventListener("message",a,!0),setImmediate=function(A){r.push(A),ze?(n.setImmediates===void 0&&(n.setImmediates=[]),n.setImmediates.push(A),postMessage({target:o})):postMessage(o,"*")}}Q.mainLoop.scheduler=function(){setImmediate(Q.mainLoop.runner)},Q.mainLoop.method="immediate"}return 0}let Br;Ct?Br=function(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}:Br=function(){return performance.now()};function xi(){return!w.currentContext||!w.currentContext.GLctx?-3:w.currentContext.defaultFbo?(w.blitOffscreenFramebuffer(w.currentContext),0):w.currentContext.attributes.explicitSwapControl?0:-3}function Wn(e){Lo(e)}function Ui(){if(!wt())try{Wn(kr)}catch(e){if(e instanceof fo)return;throw e}}function On(e,t,r,o,a){z(!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=o;let s=Q.mainLoop.currentlyRunningMainloop;function A(){return s<Q.mainLoop.currentlyRunningMainloop?(Ui(),!1):!0}if(Q.mainLoop.running=!1,Q.mainLoop.runner=function(){if(!V){if(Q.mainLoop.queue.length>0){let u=Date.now(),d=Q.mainLoop.queue.shift();if(d.func(d.arg),Q.mainLoop.remainingBlockers){let h=Q.mainLoop.remainingBlockers,I=h%1==0?h-1:Math.floor(h);d.counted?Q.mainLoop.remainingBlockers=I:(I=I+.5,Q.mainLoop.remainingBlockers=(8*h+I)/9)}if(Re(`main loop blocker "${d.name}" took ${Date.now()-u} ms`),Q.mainLoop.updateStatus(),!A())return;setTimeout(Q.mainLoop.runner,0);return}if(A()){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=Br()),w.newRenderingFrameStarted(),typeof w!="undefined"&&w.currentContext&&!w.currentContextIsProxied&&!w.currentContext.attributes.explicitSwapControl&&w.currentContext.GLctx.commit&&w.currentContext.GLctx.commit(),Q.mainLoop.method==="timeout"&&n.ctx&&(nt("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),ct(),A()&&(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Q.mainLoop.scheduler())}}},a||(t&&t>0?vt(0,1e3/t):vt(1,1),Q.mainLoop.scheduler()),r)throw"unwind"}function ar(e,t){if(V){_e("user callback triggered after application aborted. Ignoring.");return}if(t){e();return}try{e()}catch(r){if(r instanceof fo)return;if(r!=="unwind")throw r&&typeof r=="object"&&r.stack&&_e(`exception thrown: ${[r,r.stack]}`),r}}function P(e,t){return setTimeout(()=>{ar(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,On(r,0,!1,Q.mainLoop.arg,!0),vt(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){V||n.preMainLoop&&n.preMainLoop()===!1||(ar(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(a){Q.hasBlobConstructor=!1,Re("warning: no blob constructor, cannot create blobs with mimetypes")}Q.BlobBuilder=typeof MozBlobBuilder!="undefined"?MozBlobBuilder:typeof WebKitBlobBuilder!="undefined"?WebKitBlobBuilder:Q.hasBlobConstructor?null:Re("warning: no BlobBuilder"),Q.URLObject=typeof window!="undefined"?window.URL?window.URL:window.webkitURL:void 0,!n.noImageDecoding&&typeof Q.URLObject=="undefined"&&(Re("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),n.noImageDecoding=!0);let e={};e.canHandle=function(s){return!n.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(s)},e.handle=function(s,A,c,u){let d=null;if(Q.hasBlobConstructor)try{d=new Blob([s],{type:Q.getMimetype(A)}),d.size!==s.length&&(d=new Blob([new Uint8Array(s).buffer],{type:Q.getMimetype(A)}))}catch(m){nt(`Blob constructor present but fails: ${m}; falling back to blob builder`)}if(!d){let m=new Q.BlobBuilder;m.append(new Uint8Array(s).buffer),d=m.getBlob()}let h=Q.URLObject.createObjectURL(d);z(typeof h=="string","createObjectURL must return a url as a string");let I=new Image;I.onload=function(){z(I.complete,`Image ${A} could not be decoded`);let y=document.createElement("canvas");y.width=I.width,y.height=I.height,y.getContext("2d").drawImage(I,0,0),n.preloadedImages[A]=y,Q.URLObject.revokeObjectURL(h),c&&c(s)},I.onerror=function(y){Re(`Image ${h} could not be decoded`),u&&u()},I.src=h},n.preloadPlugins.push(e);let t={};t.canHandle=function(s){return!n.noAudioDecoding&&s.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},t.handle=function(s,A,c,u){let d=!1;function h(y){d||(d=!0,n.preloadedAudios[A]=y,c&&c(s))}function I(){d||(d=!0,n.preloadedAudios[A]=new Audio,u&&u())}if(Q.hasBlobConstructor){try{var m=new Blob([s],{type:Q.getMimetype(A)})}catch(x){return I()}let y=Q.URLObject.createObjectURL(m);z(typeof y=="string","createObjectURL must return a url as a string");let v=new Audio;v.addEventListener("canplaythrough",()=>{h(v)},!1),v.onerror=function(G){if(d)return;Re(`warning: browser could not fully decode audio ${A}, trying slower base64 approach`);function R(b){let N="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",$="=",Y="",Ce=0,ke=0;for(let hr=0;hr<b.length;hr++)for(Ce=Ce<<8|b[hr],ke+=8;ke>=6;){let hu=Ce>>ke-6&63;ke-=6,Y+=N[hu]}return ke==2?(Y+=N[(Ce&3)<<4],Y+=$+$):ke==4&&(Y+=N[(Ce&15)<<2],Y+=$),Y}v.src=`data:audio/x-${A.substr(-3)};base64,${R(s)}`,h(v)},v.src=y,P(()=>{h(v)},1e4)}else return I()},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:o}=n},createContext(e,t,r,o){if(t&&n.ctx&&e==n.canvas)return n.ctx;let a,s;if(t){let A={antialias:!1,alpha:!1,majorVersion:typeof WebGL2RenderingContext!="undefined"?2:1};if(o)for(let c in o)A[c]=o[c];typeof w!="undefined"&&(s=w.createContext(e,A),s&&(a=w.getContext(s).GLctx))}else a=e.getContext("2d");return a?(r&&(t||z(typeof S=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),n.ctx=a,t&&w.makeContextCurrent(s),n.useWebGL=t,Q.moduleContextCreatedCallbacks.forEach(A=>{A()}),Q.init()),a):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 o(){Q.isFullscreen=!1;let s=r.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===s?(r.exitFullscreen=Q.exitFullscreen,Q.lockPointer&&r.requestPointerLock(),Q.isFullscreen=!0,Q.resizeCanvas?Q.setFullscreenCanvasSize():Q.updateCanvasDimensions(r)):(s.parentNode.insertBefore(r,s),s.parentNode.removeChild(s),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 a=document.createElement("div");r.parentNode.insertBefore(a,r),a.appendChild(r),a.requestFullscreen=a.requestFullscreen||a.mozRequestFullScreen||a.msRequestFullscreen||(a.webkitRequestFullscreen?function(){a.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(a.webkitRequestFullScreen?function(){a.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),a.requestFullscreen()},requestFullScreen(){_("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 P(e)},safeRequestAnimationFrame(e){return Q.requestAnimationFrame(()=>{ar(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,o=n.canvas.height,a=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset,s=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;if(z(typeof a!="undefined"&&typeof s!="undefined","Unable to retrieve scroll position, mouse positions likely broken."),e.type==="touchstart"||e.type==="touchend"||e.type==="touchmove"){let{touch:u}=e;if(u===void 0)return;let d=u.pageX-(a+t.left),h=u.pageY-(s+t.top);d=d*(r/t.width),h=h*(o/t.height);let I={x:d,y:h};if(e.type==="touchstart")Q.lastTouches[u.identifier]=I,Q.touches[u.identifier]=I;else if(e.type==="touchend"||e.type==="touchmove"){let m=Q.touches[u.identifier];m||(m=I),Q.lastTouches[u.identifier]=m,Q.touches[u.identifier]=I}return}let A=e.pageX-(a+t.left),c=e.pageY-(s+t.top);A=A*(r/t.width),c=c*(o/t.height),Q.mouseMovementX=A-Q.mouseX,Q.mouseMovementY=c-Q.mouseY,Q.mouseX=A,Q.mouseY=c}},resizeListeners:[],updateResizeListeners(){let{canvas:e}=n;Q.resizeListeners.forEach(t=>{t(e.width,e.height)})},setCanvasSize(e,t,r){let{canvas:o}=n;Q.updateCanvasDimensions(o,e,t),r||Q.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){if(typeof SDL!="undefined"){let e=Qe[SDL.screen>>2];e=e|8388608,D[SDL.screen>>2]=e}Q.updateCanvasDimensions(n.canvas),Q.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){let e=Qe[SDL.screen>>2];e=e&-8388609,D[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 o=t,a=r;if(n.forcedAspectRatio&&n.forcedAspectRatio>0&&(o/a<n.forcedAspectRatio?o=Math.round(a*n.forcedAspectRatio):a=Math.round(o/n.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e.parentNode&&typeof screen!="undefined"){let s=Math.min(screen.width/o,screen.height/a);o=Math.round(o*s),a=Math.round(a*s)}Q.resizeCanvas?(e.width!=o&&(e.width=o),e.height!=a&&(e.height=a),typeof e.style!="undefined"&&(e.style.removeProperty("width"),e.style.removeProperty("height"))):(e.width!=t&&(e.width=t),e.height!=r&&(e.height=r),typeof e.style!="undefined"&&(o!=t||a!=r?(e.style.setProperty("width",`${o}px`,"important"),e.style.setProperty("height",`${a}px`,"important")):(e.style.removeProperty("width"),e.style.removeProperty("height"))))}};function Tn(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?W.get(r)():W.get(r)(t.arg):r(t.arg===void 0?null:t.arg)}}function Yr(e){return nt("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),e}function zn(e){let t=/\b_Z[\w\d_]+/g;return e.replace(t,r=>{let o=Yr(r);return r===o?r:`${o} [${r}]`})}function An(){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 ji(){let e=An();return n.extraStackTrace&&(e+=`
2
- ${n.extraStackTrace()}`),zn(e)}function _o(e){return rn(e+16)+16}function vn(e,t){}function Or(e,t){return void 0}function Ft(e){this.excPtr=e,this.ptr=e-16,this.set_type=function(t){D[this.ptr+4>>2]=t},this.get_type=function(){return D[this.ptr+4>>2]},this.set_destructor=function(t){D[this.ptr+8>>2]=t},this.get_destructor=function(){return D[this.ptr+8>>2]},this.set_refcount=function(t){D[this.ptr>>2]=t},this.set_caught=function(t){t=t?1:0,be[this.ptr+12>>0]=t},this.get_caught=function(){return be[this.ptr+12>>0]!=0},this.set_rethrown=function(t){t=t?1:0,be[this.ptr+13>>0]=t},this.get_rethrown=function(){return be[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=D[this.ptr>>2];D[this.ptr>>2]=t+1},this.release_ref=function(){let t=D[this.ptr>>2];return D[this.ptr>>2]=t-1,z(t>0),t===1}}function zt(e){this.free=function(){at(this.ptr),this.ptr=0},this.set_base_ptr=function(t){D[this.ptr>>2]=t},this.get_base_ptr=function(){return D[this.ptr>>2]},this.set_adjusted_ptr=function(t){D[this.ptr+4>>2]=t},this.get_adjusted_ptr_addr=function(){return this.ptr+4},this.get_adjusted_ptr=function(){return D[this.ptr+4>>2]},this.get_exception_ptr=function(){if(iA(this.get_exception_info().get_type()))return D[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 Ft(this.get_base_ptr())},e===void 0?(this.ptr=rn(8),this.set_adjusted_ptr(0)):this.ptr=e}let Xr=[];function Qt(e){e.add_ref()}let Qn=0;function $t(e){let t=new zt(e),r=t.get_exception_info();return r.get_caught()||(r.set_caught(!0),Qn--),r.set_rethrown(!1),Xr.push(t),Qt(r),t.get_exception_ptr()}let kt=0;function Tr(e){try{return at(new Ft(e).ptr)}catch(t){_e(`exception during cxa_free_exception: ${t}`)}}function Li(e){if(e.release_ref()&&!e.get_rethrown()){let t=e.get_destructor();t&&W.get(t)(e.excPtr),Tr(e.excPtr)}}function $n(){re(0),z(Xr.length>0);let e=Xr.pop();Li(e.get_exception_info()),e.free(),kt=0}function Pn(e){let t=new zt(e),r=t.get_base_ptr();throw kt||(kt=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 Hi(){let e=kt;if(!e)return Ee(0),0;let r=new Ft(e).get_type(),o=new zt;if(o.set_base_ptr(e),o.set_adjusted_ptr(e),!r)return Ee(0),o.ptr|0;let a=Array.prototype.slice.call(arguments);for(let s=0;s<a.length;s++){let A=a[s];if(A===0||A===r)break;if(jo(A,r,o.get_adjusted_ptr_addr()))return Ee(A),o.ptr|0}return Ee(r),o.ptr|0}function Kn(){let e=kt;if(!e)return Ee(0),0;let r=new Ft(e).get_type(),o=new zt;if(o.set_base_ptr(e),o.set_adjusted_ptr(e),!r)return Ee(0),o.ptr|0;let a=Array.prototype.slice.call(arguments);for(let s=0;s<a.length;s++){let A=a[s];if(A===0||A===r)break;if(jo(A,r,o.get_adjusted_ptr_addr()))return Ee(A),o.ptr|0}return Ee(r),o.ptr|0}function Gi(){let e=Xr.pop();e||_("no exception to throw");let t=e.get_exception_info(),r=e.get_base_ptr();throw t.get_rethrown()?e.free():(Xr.push(e),t.set_rethrown(!0),t.set_caught(!1),Qn++),kt=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 Yi(e,t){return void 0}function Jn(e,t,r){throw new Ft(e).init(t,r),kt=e,Qn++,`${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 he(e){return D[uc()>>2]=e,e}var Ie={splitPath(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray(e,t){let r=0;for(let o=e.length-1;o>=0;o--){let a=e[o];a==="."?e.splice(o,1):a===".."?(e.splice(o,1),r++):r&&(e.splice(o,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize(e){let t=e.charAt(0)==="/",r=e.substr(-1)==="/";return e=Ie.normalizeArray(e.split("/").filter(o=>!!o),!t).join("/"),!e&&!t&&(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname(e){let t=Ie.splitPath(e),r=t[0],o=t[1];return!r&&!o?".":(o&&(o=o.substr(0,o.length-1)),r+o)},basename(e){if(e==="/")return"/";e=Ie.normalize(e),e=e.replace(/\/$/,"");let t=e.lastIndexOf("/");return t===-1?e:e.substr(t+1)},extname(e){return Ie.splitPath(e)[3]},join(){let e=Array.prototype.slice.call(arguments,0);return Ie.normalize(e.join("/"))},join2(e,t){return Ie.normalize(`${e}/${t}`)}};function gt(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){let e=new Uint8Array(1);return function(){return crypto.getRandomValues(e),e[0]}}if(Ct)try{let e=Ic("crypto");return function(){return e.randomBytes(1)[0]}}catch(e){}return function(){_("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 Pe={resolve(){let e="",t=!1;for(let r=arguments.length-1;r>=-1&&!t;r--){let o=r>=0?arguments[r]:l.cwd();if(typeof o!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!o)return"";e=`${o}/${e}`,t=o.charAt(0)==="/"}return e=Ie.normalizeArray(e.split("/").filter(r=>!!r),!t).join("/"),(t?"/":"")+e||"."},relative(e,t){e=Pe.resolve(e).substr(1),t=Pe.resolve(t).substr(1);function r(d){let h=0;for(;h<d.length&&d[h]==="";h++);let I=d.length-1;for(;I>=0&&d[I]==="";I--);return h>I?[]:d.slice(h,I-h+1)}let o=r(e.split("/")),a=r(t.split("/")),s=Math.min(o.length,a.length),A=s;for(var c=0;c<s;c++)if(o[c]!==a[c]){A=c;break}let u=[];for(var c=A;c<o.length;c++)u.push("..");return u=u.concat(a.slice(A)),u.join("/")}},bt={ttys:[],init(){},shutdown(){},register(e,t){bt.ttys[e]={input:[],output:[],ops:t},l.registerDevice(e,bt.stream_ops)},stream_ops:{open(e){let t=bt.ttys[e.node.rdev];if(!t)throw new l.ErrnoError(43);e.tty=t,e.seekable=!1},close(e){e.tty.ops.flush(e.tty)},flush(e){e.tty.ops.flush(e.tty)},read(e,t,r,o,a){if(!e.tty||!e.tty.ops.get_char)throw new l.ErrnoError(60);let s=0;for(let c=0;c<o;c++){var A;try{A=e.tty.ops.get_char(e.tty)}catch(u){throw new l.ErrnoError(29)}if(A===void 0&&s===0)throw new l.ErrnoError(6);if(A==null)break;s++,t[r+c]=A}return s&&(e.node.timestamp=Date.now()),s},write(e,t,r,o,a){if(!e.tty||!e.tty.ops.put_char)throw new l.ErrnoError(60);try{for(var s=0;s<o;s++)e.tty.ops.put_char(e.tty,t[r+s])}catch(A){throw new l.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),s}},default_tty_ops:{get_char(e){if(!e.input.length){let t=null;if(Ct){let o=Buffer.alloc(256),a=0;try{a=Ze.readSync(process.stdin.fd,o,0,256,null)}catch(s){if(s.toString().includes("EOF"))a=0;else throw s}a>0?t=o.slice(0,a).toString("utf-8"):t=null}else typeof window!="undefined"&&typeof window.prompt=="function"?(t=window.prompt("Input: "),t!==null&&(t+=`
3
- `)):typeof readline=="function"&&(t=readline(),t!==null&&(t+=`
4
- `));if(!t)return null;e.input=Oi(t,!0)}return e.input.shift()},put_char(e,t){t===null||t===10?(Re(St(e.output,0)),e.output=[]):t!=0&&e.output.push(t)},flush(e){e.output&&e.output.length>0&&(Re(St(e.output,0)),e.output=[])}},default_tty1_ops:{put_char(e,t){t===null||t===10?(_e(St(e.output,0)),e.output=[]):t!=0&&e.output.push(t)},flush(e){e.output&&e.output.length>0&&(_e(St(e.output,0)),e.output=[])}}};function Xi(e,t){ve.fill(0,e,e+t)}function Zn(e,t){return z(t,"alignment argument is required"),Math.ceil(e/t)*t}function ie(e){e=Zn(e,65536);let t=gc(65536,e);return t?(Xi(t,e),t):0}var se={ops_table:null,mount(e){return se.createNode(null,"/",16895,0)},createNode(e,t,r,o){if(l.isBlkdev(r)||l.isFIFO(r))throw new l.ErrnoError(63);se.ops_table||(se.ops_table={dir:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr,lookup:se.node_ops.lookup,mknod:se.node_ops.mknod,rename:se.node_ops.rename,unlink:se.node_ops.unlink,rmdir:se.node_ops.rmdir,readdir:se.node_ops.readdir,symlink:se.node_ops.symlink},stream:{llseek:se.stream_ops.llseek}},file:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr},stream:{llseek:se.stream_ops.llseek,read:se.stream_ops.read,write:se.stream_ops.write,allocate:se.stream_ops.allocate,mmap:se.stream_ops.mmap,msync:se.stream_ops.msync}},link:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr,readlink:se.node_ops.readlink},stream:{}},chrdev:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr},stream:l.chrdev_stream_ops}});let a=l.createNode(e,t,r,o);return l.isDir(a.mode)?(a.node_ops=se.ops_table.dir.node,a.stream_ops=se.ops_table.dir.stream,a.contents={}):l.isFile(a.mode)?(a.node_ops=se.ops_table.file.node,a.stream_ops=se.ops_table.file.stream,a.usedBytes=0,a.contents=null):l.isLink(a.mode)?(a.node_ops=se.ops_table.link.node,a.stream_ops=se.ops_table.link.stream):l.isChrdev(a.mode)&&(a.node_ops=se.ops_table.chrdev.node,a.stream_ops=se.ops_table.chrdev.stream),a.timestamp=Date.now(),e&&(e.contents[t]=a,e.timestamp=a.timestamp),a},getFileDataAsTypedArray(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage(e,t){let r=e.contents?e.contents.length:0;if(r>=t)return;let o=1024*1024;t=Math.max(t,r*(r<o?2:1.125)>>>0),r!=0&&(t=Math.max(t,256));let a=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(a.subarray(0,e.usedBytes),0)},resizeFileStorage(e,t){if(e.usedBytes!=t)if(t==0)e.contents=null,e.usedBytes=0;else{let r=e.contents;e.contents=new Uint8Array(t),r&&e.contents.set(r.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr(e){let t={};return t.dev=l.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,l.isDir(e.mode)?t.size=4096:l.isFile(e.mode)?t.size=e.usedBytes:l.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr(e,t){t.mode!==void 0&&(e.mode=t.mode),t.timestamp!==void 0&&(e.timestamp=t.timestamp),t.size!==void 0&&se.resizeFileStorage(e,t.size)},lookup(e,t){throw l.genericErrors[44]},mknod(e,t,r,o){return se.createNode(e,t,r,o)},rename(e,t,r){if(l.isDir(e.mode)){let o;try{o=l.lookupNode(t,r)}catch(a){}if(o)for(let a in o.contents)throw new l.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=r,t.contents[r]=e,t.timestamp=e.parent.timestamp,e.parent=t},unlink(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir(e,t){let r=l.lookupNode(e,t);for(let o in r.contents)throw new l.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir(e){let t=[".",".."];for(let r in e.contents)e.contents.hasOwnProperty(r)&&t.push(r);return t},symlink(e,t,r){let o=se.createNode(e,t,41471,0);return o.link=r,o},readlink(e){if(!l.isLink(e.mode))throw new l.ErrnoError(28);return e.link}},stream_ops:{read(e,t,r,o,a){let{contents:s}=e.node;if(a>=e.node.usedBytes)return 0;let A=Math.min(e.node.usedBytes-a,o);if(z(A>=0),A>8&&s.subarray)t.set(s.subarray(a,a+A),r);else for(let c=0;c<A;c++)t[r+c]=s[a+c];return A},write(e,t,r,o,a,s){if(z(!(t instanceof ArrayBuffer)),t.buffer===be.buffer&&(s=!1),!o)return 0;let{node:A}=e;if(A.timestamp=Date.now(),t.subarray&&(!A.contents||A.contents.subarray)){if(s)return z(a===0,"canOwn must imply no weird position inside the file"),A.contents=t.subarray(r,r+o),A.usedBytes=o,o;if(A.usedBytes===0&&a===0)return A.contents=t.slice(r,r+o),A.usedBytes=o,o;if(a+o<=A.usedBytes)return A.contents.set(t.subarray(r,r+o),a),o}if(se.expandFileStorage(A,a+o),A.contents.subarray&&t.subarray)A.contents.set(t.subarray(r,r+o),a);else for(let c=0;c<o;c++)A.contents[a+c]=t[r+c];return A.usedBytes=Math.max(A.usedBytes,a+o),o},llseek(e,t,r){let o=t;if(r===1?o+=e.position:r===2&&l.isFile(e.node.mode)&&(o+=e.node.usedBytes),o<0)throw new l.ErrnoError(28);return o},allocate(e,t,r){se.expandFileStorage(e.node,t+r),e.node.usedBytes=Math.max(e.node.usedBytes,t+r)},mmap(e,t,r,o,a,s){if(t!==0)throw new l.ErrnoError(28);if(!l.isFile(e.node.mode))throw new l.ErrnoError(43);let A,c,{contents:u}=e.node;if(!(s&2)&&u.buffer===Se)c=!1,A=u.byteOffset;else{if((o>0||o+r<u.length)&&(u.subarray?u=u.subarray(o,o+r):u=Array.prototype.slice.call(u,o,o+r)),c=!0,A=ie(r),!A)throw new l.ErrnoError(48);be.set(u,A)}return{ptr:A,allocated:c}},msync(e,t,r,o,a){if(!l.isFile(e.node.mode))throw new l.ErrnoError(43);if(a&2)return 0;let s=se.stream_ops.write(e,t,0,o,r,!1);return 0}}};function Vi(e,t,r,o){let a=o?"":wr(`al ${e}`);tr(e,s=>{z(s,`Loading data file "${e}" failed (no arrayBuffer).`),t(new Uint8Array(s)),a&&or(a)},s=>{if(r)r();else throw`Loading data file "${e}" failed.`}),a&&p(a)}let cn={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"},f={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var l={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath(e,t){if(e=Pe.resolve(l.cwd(),e),t=t||{},!e)return{path:"",node:null};let r={follow_mount:!0,recurse_count:0};for(let A in r)t[A]===void 0&&(t[A]=r[A]);if(t.recurse_count>8)throw new l.ErrnoError(32);let o=Ie.normalizeArray(e.split("/").filter(A=>!!A),!1),a=l.root,s="/";for(let A=0;A<o.length;A++){let c=A===o.length-1;if(c&&t.parent)break;if(a=l.lookupNode(a,o[A]),s=Ie.join2(s,o[A]),l.isMountpoint(a)&&(!c||c&&t.follow_mount)&&(a=a.mounted.root),!c||t.follow){let u=0;for(;l.isLink(a.mode);){let d=l.readlink(s);if(s=Pe.resolve(Ie.dirname(s),d),a=l.lookupPath(s,{recurse_count:t.recurse_count}).node,u++>40)throw new l.ErrnoError(32)}}}return{path:s,node:a}},getPath(e){let t;for(;;){if(l.isRoot(e)){let r=e.mount.mountpoint;return t?r[r.length-1]!=="/"?`${r}/${t}`:r+t:r}t=t?`${e.name}/${t}`:e.name,e=e.parent}},hashName(e,t){let r=0;for(let o=0;o<t.length;o++)r=(r<<5)-r+t.charCodeAt(o)|0;return(e+r>>>0)%l.nameTable.length},hashAddNode(e){let t=l.hashName(e.parent.id,e.name);e.name_next=l.nameTable[t],l.nameTable[t]=e},hashRemoveNode(e){let t=l.hashName(e.parent.id,e.name);if(l.nameTable[t]===e)l.nameTable[t]=e.name_next;else{let r=l.nameTable[t];for(;r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}}},lookupNode(e,t){let r=l.mayLookup(e);if(r)throw new l.ErrnoError(r,e);let o=l.hashName(e.id,t);for(let a=l.nameTable[o];a;a=a.name_next){let s=a.name;if(a.parent.id===e.id&&s===t)return a}return l.lookup(e,t)},createNode(e,t,r,o){z(typeof e=="object");let a=new l.FSNode(e,t,r,o);return l.hashAddNode(a),a},destroyNode(e){l.hashRemoveNode(e)},isRoot(e){return e===e.parent},isMountpoint(e){return!!e.mounted},isFile(e){return(e&61440)===32768},isDir(e){return(e&61440)===16384},isLink(e){return(e&61440)===40960},isChrdev(e){return(e&61440)===8192},isBlkdev(e){return(e&61440)===24576},isFIFO(e){return(e&61440)===4096},isSocket(e){return(e&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags(e){let t=l.flagModes[e];if(typeof t=="undefined")throw new Error(`Unknown file open mode: ${e}`);return t},flagsToPermissionString(e){let t=["r","w","rw"][e&3];return e&512&&(t+="w"),t},nodePermissions(e,t){return l.ignorePermissions?0:t.includes("r")&&!(e.mode&292)||t.includes("w")&&!(e.mode&146)||t.includes("x")&&!(e.mode&73)?2:0},mayLookup(e){let t=l.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate(e,t){try{let r=l.lookupNode(e,t);return 20}catch(r){}return l.nodePermissions(e,"wx")},mayDelete(e,t,r){let o;try{o=l.lookupNode(e,t)}catch(s){return s.errno}let a=l.nodePermissions(e,"wx");if(a)return a;if(r){if(!l.isDir(o.mode))return 54;if(l.isRoot(o)||l.getPath(o)===l.cwd())return 10}else if(l.isDir(o.mode))return 31;return 0},mayOpen(e,t){return e?l.isLink(e.mode)?32:l.isDir(e.mode)&&(l.flagsToPermissionString(t)!=="r"||t&512)?31:l.nodePermissions(e,l.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd(e,t){e=e||0,t=t||l.MAX_OPEN_FDS;for(let r=e;r<=t;r++)if(!l.streams[r])return r;throw new l.ErrnoError(33)},getStream(e){return l.streams[e]},createStream(e,t,r){l.FSStream||(l.FSStream=function(){},l.FSStream.prototype={object:{get(){return this.node},set(s){this.node=s}},isRead:{get(){return(this.flags&2097155)!==1}},isWrite:{get(){return(this.flags&2097155)!==0}},isAppend:{get(){return this.flags&1024}}});let o=new l.FSStream;for(let s in e)o[s]=e[s];e=o;let a=l.nextfd(t,r);return e.fd=a,l.streams[a]=e,e},closeStream(e){l.streams[e]=null},chrdev_stream_ops:{open(e){let t=l.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek(){throw new l.ErrnoError(70)}},major(e){return e>>8},minor(e){return e&255},makedev(e,t){return e<<8|t},registerDevice(e,t){l.devices[e]={stream_ops:t}},getDevice(e){return l.devices[e]},getMounts(e){let t=[],r=[e];for(;r.length;){let o=r.pop();t.push(o),r.push.apply(r,o.mounts)}return t},syncfs(e,t){typeof e=="function"&&(t=e,e=!1),l.syncFSRequests++,l.syncFSRequests>1&&_e(`warning: ${l.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);let r=l.getMounts(l.root.mount),o=0;function a(A){return z(l.syncFSRequests>0),l.syncFSRequests--,t(A)}function s(A){if(A)return s.errored?void 0:(s.errored=!0,a(A));++o>=r.length&&a(null)}r.forEach(A=>{if(!A.type.syncfs)return s(null);A.type.syncfs(A,e,s)})},mount(e,t,r){if(typeof e=="string")throw e;let o=r==="/",a=!r,s;if(o&&l.root)throw new l.ErrnoError(10);if(!o&&!a){let u=l.lookupPath(r,{follow_mount:!1});if(r=u.path,s=u.node,l.isMountpoint(s))throw new l.ErrnoError(10);if(!l.isDir(s.mode))throw new l.ErrnoError(54)}let A={type:e,opts:t,mountpoint:r,mounts:[]},c=e.mount(A);return c.mount=A,A.root=c,o?l.root=c:s&&(s.mounted=A,s.mount&&s.mount.mounts.push(A)),c},unmount(e){let t=l.lookupPath(e,{follow_mount:!1});if(!l.isMountpoint(t.node))throw new l.ErrnoError(28);let{node:r}=t,o=r.mounted,a=l.getMounts(o);Object.keys(l.nameTable).forEach(A=>{let c=l.nameTable[A];for(;c;){let u=c.name_next;a.includes(c.mount)&&l.destroyNode(c),c=u}}),r.mounted=null;let s=r.mount.mounts.indexOf(o);z(s!==-1),r.mount.mounts.splice(s,1)},lookup(e,t){return e.node_ops.lookup(e,t)},mknod(e,t,r){let a=l.lookupPath(e,{parent:!0}).node,s=Ie.basename(e);if(!s||s==="."||s==="..")throw new l.ErrnoError(28);let A=l.mayCreate(a,s);if(A)throw new l.ErrnoError(A);if(!a.node_ops.mknod)throw new l.ErrnoError(63);return a.node_ops.mknod(a,s,t,r)},create(e,t){return t=t!==void 0?t:438,t&=4095,t|=32768,l.mknod(e,t,0)},mkdir(e,t){return t=t!==void 0?t:511,t&=1023,t|=16384,l.mknod(e,t,0)},mkdirTree(e,t){let r=e.split("/"),o="";for(let a=0;a<r.length;++a)if(r[a]){o+=`/${r[a]}`;try{l.mkdir(o,t)}catch(s){if(s.errno!=20)throw s}}},mkdev(e,t,r){return typeof r=="undefined"&&(r=t,t=438),t|=8192,l.mknod(e,t,r)},symlink(e,t){if(!Pe.resolve(e))throw new l.ErrnoError(44);let o=l.lookupPath(t,{parent:!0}).node;if(!o)throw new l.ErrnoError(44);let a=Ie.basename(t),s=l.mayCreate(o,a);if(s)throw new l.ErrnoError(s);if(!o.node_ops.symlink)throw new l.ErrnoError(63);return o.node_ops.symlink(o,a,e)},rename(e,t){let r=Ie.dirname(e),o=Ie.dirname(t),a=Ie.basename(e),s=Ie.basename(t),A,c,u;if(A=l.lookupPath(e,{parent:!0}),c=A.node,A=l.lookupPath(t,{parent:!0}),u=A.node,!c||!u)throw new l.ErrnoError(44);if(c.mount!==u.mount)throw new l.ErrnoError(75);let d=l.lookupNode(c,a),h=Pe.relative(e,o);if(h.charAt(0)!==".")throw new l.ErrnoError(28);if(h=Pe.relative(t,r),h.charAt(0)!==".")throw new l.ErrnoError(55);let I;try{I=l.lookupNode(u,s)}catch(v){}if(d===I)return;let m=l.isDir(d.mode),y=l.mayDelete(c,a,m);if(y)throw new l.ErrnoError(y);if(y=I?l.mayDelete(u,s,m):l.mayCreate(u,s),y)throw new l.ErrnoError(y);if(!c.node_ops.rename)throw new l.ErrnoError(63);if(l.isMountpoint(d)||I&&l.isMountpoint(I))throw new l.ErrnoError(10);if(u!==c&&(y=l.nodePermissions(c,"w"),y))throw new l.ErrnoError(y);try{l.trackingDelegate.willMovePath&&l.trackingDelegate.willMovePath(e,t)}catch(v){_e(`FS.trackingDelegate['willMovePath']('${e}', '${t}') threw an exception: ${v.message}`)}l.hashRemoveNode(d);try{c.node_ops.rename(d,u,s)}catch(v){throw v}finally{l.hashAddNode(d)}try{l.trackingDelegate.onMovePath&&l.trackingDelegate.onMovePath(e,t)}catch(v){_e(`FS.trackingDelegate['onMovePath']('${e}', '${t}') threw an exception: ${v.message}`)}},rmdir(e){let r=l.lookupPath(e,{parent:!0}).node,o=Ie.basename(e),a=l.lookupNode(r,o),s=l.mayDelete(r,o,!0);if(s)throw new l.ErrnoError(s);if(!r.node_ops.rmdir)throw new l.ErrnoError(63);if(l.isMountpoint(a))throw new l.ErrnoError(10);try{l.trackingDelegate.willDeletePath&&l.trackingDelegate.willDeletePath(e)}catch(A){_e(`FS.trackingDelegate['willDeletePath']('${e}') threw an exception: ${A.message}`)}r.node_ops.rmdir(r,o),l.destroyNode(a);try{l.trackingDelegate.onDeletePath&&l.trackingDelegate.onDeletePath(e)}catch(A){_e(`FS.trackingDelegate['onDeletePath']('${e}') threw an exception: ${A.message}`)}},readdir(e){let t=l.lookupPath(e,{follow:!0}),{node:r}=t;if(!r.node_ops.readdir)throw new l.ErrnoError(54);return r.node_ops.readdir(r)},unlink(e){let r=l.lookupPath(e,{parent:!0}).node,o=Ie.basename(e),a=l.lookupNode(r,o),s=l.mayDelete(r,o,!1);if(s)throw new l.ErrnoError(s);if(!r.node_ops.unlink)throw new l.ErrnoError(63);if(l.isMountpoint(a))throw new l.ErrnoError(10);try{l.trackingDelegate.willDeletePath&&l.trackingDelegate.willDeletePath(e)}catch(A){_e(`FS.trackingDelegate['willDeletePath']('${e}') threw an exception: ${A.message}`)}r.node_ops.unlink(r,o),l.destroyNode(a);try{l.trackingDelegate.onDeletePath&&l.trackingDelegate.onDeletePath(e)}catch(A){_e(`FS.trackingDelegate['onDeletePath']('${e}') threw an exception: ${A.message}`)}},readlink(e){let r=l.lookupPath(e).node;if(!r)throw new l.ErrnoError(44);if(!r.node_ops.readlink)throw new l.ErrnoError(28);return Pe.resolve(l.getPath(r.parent),r.node_ops.readlink(r))},stat(e,t){let r=l.lookupPath(e,{follow:!t}),{node:o}=r;if(!o)throw new l.ErrnoError(44);if(!o.node_ops.getattr)throw new l.ErrnoError(63);return o.node_ops.getattr(o)},lstat(e){return l.stat(e,!0)},chmod(e,t,r){let o;if(typeof e=="string"?o=l.lookupPath(e,{follow:!r}).node:o=e,!o.node_ops.setattr)throw new l.ErrnoError(63);o.node_ops.setattr(o,{mode:t&4095|o.mode&-4096,timestamp:Date.now()})},lchmod(e,t){l.chmod(e,t,!0)},fchmod(e,t){let r=l.getStream(e);if(!r)throw new l.ErrnoError(8);l.chmod(r.node,t)},chown(e,t,r,o){let a;if(typeof e=="string"?a=l.lookupPath(e,{follow:!o}).node:a=e,!a.node_ops.setattr)throw new l.ErrnoError(63);a.node_ops.setattr(a,{timestamp:Date.now()})},lchown(e,t,r){l.chown(e,t,r,!0)},fchown(e,t,r){let o=l.getStream(e);if(!o)throw new l.ErrnoError(8);l.chown(o.node,t,r)},truncate(e,t){if(t<0)throw new l.ErrnoError(28);let r;if(typeof e=="string"?r=l.lookupPath(e,{follow:!0}).node:r=e,!r.node_ops.setattr)throw new l.ErrnoError(63);if(l.isDir(r.mode))throw new l.ErrnoError(31);if(!l.isFile(r.mode))throw new l.ErrnoError(28);let o=l.nodePermissions(r,"w");if(o)throw new l.ErrnoError(o);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate(e,t){let r=l.getStream(e);if(!r)throw new l.ErrnoError(8);if((r.flags&2097155)===0)throw new l.ErrnoError(28);l.truncate(r.node,t)},utime(e,t,r){let o=l.lookupPath(e,{follow:!0}),{node:a}=o;a.node_ops.setattr(a,{timestamp:Math.max(t,r)})},open(e,t,r,o,a){if(e==="")throw new l.ErrnoError(44);t=typeof t=="string"?l.modeStringToFlags(t):t,r=typeof r=="undefined"?438:r,t&64?r=r&4095|32768:r=0;let s;if(typeof e=="object")s=e;else{e=Ie.normalize(e);try{s=l.lookupPath(e,{follow:!(t&131072)}).node}catch(u){}}let A=!1;if(t&64)if(s){if(t&128)throw new l.ErrnoError(20)}else s=l.mknod(e,r,0),A=!0;if(!s)throw new l.ErrnoError(44);if(l.isChrdev(s.mode)&&(t&=-513),t&65536&&!l.isDir(s.mode))throw new l.ErrnoError(54);if(!A){let u=l.mayOpen(s,t);if(u)throw new l.ErrnoError(u)}t&512&&l.truncate(s,0),t&=-131713;let c=l.createStream({node:s,path:l.getPath(s),flags:t,seekable:!0,position:0,stream_ops:s.stream_ops,ungotten:[],error:!1},o,a);c.stream_ops.open&&c.stream_ops.open(c),n.logReadFiles&&!(t&1)&&(l.readFiles||(l.readFiles={}),e in l.readFiles||(l.readFiles[e]=1,_e(`FS.trackingDelegate error on read file: ${e}`)));try{if(l.trackingDelegate.onOpenFile){let u=0;(t&2097155)!==1&&(u|=l.tracking.openFlags.READ),(t&2097155)!==0&&(u|=l.tracking.openFlags.WRITE),l.trackingDelegate.onOpenFile(e,u)}}catch(u){_e(`FS.trackingDelegate['onOpenFile']('${e}', flags) threw an exception: ${u.message}`)}return c},close(e){if(l.isClosed(e))throw new l.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(t){throw t}finally{l.closeStream(e.fd)}e.fd=null},isClosed(e){return e.fd===null},llseek(e,t,r){if(l.isClosed(e))throw new l.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new l.ErrnoError(70);if(r!=0&&r!=1&&r!=2)throw new l.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read(e,t,r,o,a){if(o<0||a<0)throw new l.ErrnoError(28);if(l.isClosed(e))throw new l.ErrnoError(8);if((e.flags&2097155)===1)throw new l.ErrnoError(8);if(l.isDir(e.node.mode))throw new l.ErrnoError(31);if(!e.stream_ops.read)throw new l.ErrnoError(28);let s=typeof a!="undefined";if(!s)a=e.position;else if(!e.seekable)throw new l.ErrnoError(70);let A=e.stream_ops.read(e,t,r,o,a);return s||(e.position+=A),A},write(e,t,r,o,a,s){if(o<0||a<0)throw new l.ErrnoError(28);if(l.isClosed(e))throw new l.ErrnoError(8);if((e.flags&2097155)===0)throw new l.ErrnoError(8);if(l.isDir(e.node.mode))throw new l.ErrnoError(31);if(!e.stream_ops.write)throw new l.ErrnoError(28);e.seekable&&e.flags&1024&&l.llseek(e,0,2);let A=typeof a!="undefined";if(!A)a=e.position;else if(!e.seekable)throw new l.ErrnoError(70);let c=e.stream_ops.write(e,t,r,o,a,s);A||(e.position+=c);try{e.path&&l.trackingDelegate.onWriteToFile&&l.trackingDelegate.onWriteToFile(e.path)}catch(u){_e(`FS.trackingDelegate['onWriteToFile']('${e.path}') threw an exception: ${u.message}`)}return c},allocate(e,t,r){if(l.isClosed(e))throw new l.ErrnoError(8);if(t<0||r<=0)throw new l.ErrnoError(28);if((e.flags&2097155)===0)throw new l.ErrnoError(8);if(!l.isFile(e.node.mode)&&!l.isDir(e.node.mode))throw new l.ErrnoError(43);if(!e.stream_ops.allocate)throw new l.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap(e,t,r,o,a,s){if((a&2)!==0&&(s&2)===0&&(e.flags&2097155)!==2)throw new l.ErrnoError(2);if((e.flags&2097155)===1)throw new l.ErrnoError(2);if(!e.stream_ops.mmap)throw new l.ErrnoError(43);return e.stream_ops.mmap(e,t,r,o,a,s)},msync(e,t,r,o,a){return!e||!e.stream_ops.msync?0:e.stream_ops.msync(e,t,r,o,a)},munmap(e){return 0},ioctl(e,t,r){if(!e.stream_ops.ioctl)throw new l.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile(e,t){if(t=t||{},t.flags=t.flags||0,t.encoding=t.encoding||"binary",t.encoding!=="utf8"&&t.encoding!=="binary")throw new Error(`Invalid encoding type "${t.encoding}"`);let r,o=l.open(e,t.flags),s=l.stat(e).size,A=new Uint8Array(s);return l.read(o,A,0,s,0),t.encoding==="utf8"?r=St(A,0):t.encoding==="binary"&&(r=A),l.close(o),r},writeFile(e,t,r){r=r||{},r.flags=r.flags||577;let o=l.open(e,r.flags,r.mode);if(typeof t=="string"){let a=new Uint8Array(Bt(t)+1),s=tt(t,a,0,a.length);l.write(o,a,0,s,void 0,r.canOwn)}else if(ArrayBuffer.isView(t))l.write(o,t,0,t.byteLength,void 0,r.canOwn);else throw new Error("Unsupported data type");l.close(o)},cwd(){return l.currentPath},chdir(e){let t=l.lookupPath(e,{follow:!0});if(t.node===null)throw new l.ErrnoError(44);if(!l.isDir(t.node.mode))throw new l.ErrnoError(54);let r=l.nodePermissions(t.node,"x");if(r)throw new l.ErrnoError(r);l.currentPath=t.path},createDefaultDirectories(){l.mkdir("/tmp"),l.mkdir("/home"),l.mkdir("/home/web_user")},createDefaultDevices(){l.mkdir("/dev"),l.registerDevice(l.makedev(1,3),{read(){return 0},write(t,r,o,a,s){return a}}),l.mkdev("/dev/null",l.makedev(1,3)),bt.register(l.makedev(5,0),bt.default_tty_ops),bt.register(l.makedev(6,0),bt.default_tty1_ops),l.mkdev("/dev/tty",l.makedev(5,0)),l.mkdev("/dev/tty1",l.makedev(6,0));let e=gt();l.createDevice("/dev","random",e),l.createDevice("/dev","urandom",e),l.mkdir("/dev/shm"),l.mkdir("/dev/shm/tmp")},createSpecialDirectories(){l.mkdir("/proc");let e=l.mkdir("/proc/self");l.mkdir("/proc/self/fd"),l.mount({mount(){let t=l.createNode(e,"fd",16895,73);return t.node_ops={lookup(r,o){let a=+o,s=l.getStream(a);if(!s)throw new l.ErrnoError(8);let A={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink(){return s.path}}};return A.parent=A,A}},t}},{},"/proc/self/fd")},createStandardStreams(){n.stdin?l.createDevice("/dev","stdin",n.stdin):l.symlink("/dev/tty","/dev/stdin"),n.stdout?l.createDevice("/dev","stdout",null,n.stdout):l.symlink("/dev/tty","/dev/stdout"),n.stderr?l.createDevice("/dev","stderr",null,n.stderr):l.symlink("/dev/tty1","/dev/stderr");let e=l.open("/dev/stdin",0),t=l.open("/dev/stdout",1),r=l.open("/dev/stderr",1);z(e.fd===0,`invalid handle for stdin (${e.fd})`),z(t.fd===1,`invalid handle for stdout (${t.fd})`),z(r.fd===2,`invalid handle for stderr (${r.fd})`)},ensureErrnoError(){l.ErrnoError||(l.ErrnoError=function(t,r){this.node=r,this.setErrno=function(o){this.errno=o;for(let a in f)if(f[a]===o){this.code=a;break}},this.setErrno(t),this.message=cn[t],this.stack&&(Object.defineProperty(this,"stack",{value:new Error().stack,writable:!0}),this.stack=zn(this.stack))},l.ErrnoError.prototype=new Error,l.ErrnoError.prototype.constructor=l.ErrnoError,[44].forEach(e=>{l.genericErrors[e]=new l.ErrnoError(e),l.genericErrors[e].stack="<generic error, no stack>"}))},staticInit(){l.ensureErrnoError(),l.nameTable=new Array(4096),l.mount(se,{},"/"),l.createDefaultDirectories(),l.createDefaultDevices(),l.createSpecialDirectories(),l.filesystems={MEMFS:se}},init(e,t,r){z(!l.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),l.init.initialized=!0,l.ensureErrnoError(),n.stdin=e||n.stdin,n.stdout=t||n.stdout,n.stderr=r||n.stderr,l.createStandardStreams()},quit(){l.init.initialized=!1;let e=n._fflush;e&&e(0);for(let t=0;t<l.streams.length;t++){let r=l.streams[t];r&&l.close(r)}},getMode(e,t){let r=0;return e&&(r|=365),t&&(r|=146),r},findObject(e,t){let r=l.analyzePath(e,t);return r.exists?r.object:null},analyzePath(e,t){try{var r=l.lookupPath(e,{follow:!t});e=r.path}catch(a){}let o={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var r=l.lookupPath(e,{parent:!0});o.parentExists=!0,o.parentPath=r.path,o.parentObject=r.node,o.name=Ie.basename(e),r=l.lookupPath(e,{follow:!t}),o.exists=!0,o.path=r.path,o.object=r.node,o.name=r.node.name,o.isRoot=r.path==="/"}catch(a){o.error=a.errno}return o},createPath(e,t,r,o){e=typeof e=="string"?e:l.getPath(e);let a=t.split("/").reverse();for(;a.length;){let A=a.pop();if(A){var s=Ie.join2(e,A);try{l.mkdir(s)}catch(c){}e=s}}return s},createFile(e,t,r,o,a){let s=Ie.join2(typeof e=="string"?e:l.getPath(e),t),A=l.getMode(o,a);return l.create(s,A)},createDataFile(e,t,r,o,a,s){let A=t?Ie.join2(typeof e=="string"?e:l.getPath(e),t):e,c=l.getMode(o,a),u=l.create(A,c);if(r){if(typeof r=="string"){let h=new Array(r.length);for(let I=0,m=r.length;I<m;++I)h[I]=r.charCodeAt(I);r=h}l.chmod(u,c|146);let d=l.open(u,577);l.write(d,r,0,r.length,0,s),l.close(d),l.chmod(u,c)}return u},createDevice(e,t,r,o){let a=Ie.join2(typeof e=="string"?e:l.getPath(e),t),s=l.getMode(!!r,!!o);l.createDevice.major||(l.createDevice.major=64);let A=l.makedev(l.createDevice.major++,0);return l.registerDevice(A,{open(c){c.seekable=!1},close(c){o&&o.buffer&&o.buffer.length&&o(10)},read(c,u,d,h,I){let m=0;for(let v=0;v<h;v++){var y;try{y=r()}catch(x){throw new l.ErrnoError(29)}if(y===void 0&&m===0)throw new l.ErrnoError(6);if(y==null)break;m++,u[d+v]=y}return m&&(c.node.timestamp=Date.now()),m},write(c,u,d,h,I){for(var m=0;m<h;m++)try{o(u[d+m])}catch(y){throw new l.ErrnoError(29)}return h&&(c.node.timestamp=Date.now()),m}}),l.mkdev(a,s,A)},forceLoadFile(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if(typeof XMLHttpRequest!="undefined")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(Mr)try{e.contents=Oi(Mr(e.url),!0),e.usedBytes=e.contents.length}catch(t){throw new l.ErrnoError(29)}else throw new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile(e,t,r,o,a){function s(){this.lengthKnown=!1,this.chunks=[]}if(s.prototype.get=function(I){if(I>this.length-1||I<0)return;let m=I%this.chunkSize,y=I/this.chunkSize|0;return this.getter(y)[m]},s.prototype.setDataGetter=function(I){this.getter=I},s.prototype.cacheLength=function(){let I=new XMLHttpRequest;if(I.open("HEAD",r,!1),I.send(null),!(I.status>=200&&I.status<300||I.status===304))throw new Error(`Couldn't load ${r}. Status: ${I.status}`);let m=Number(I.getResponseHeader("Content-length")),y,v=(y=I.getResponseHeader("Accept-Ranges"))&&y==="bytes",x=(y=I.getResponseHeader("Content-Encoding"))&&y==="gzip",G=1024*1024;v||(G=m);let R=function(N,$){if(N>$)throw new Error(`invalid range (${N}, ${$}) or no bytes requested!`);if($>m-1)throw new Error(`only ${m} bytes available! programmer error!`);let Y=new XMLHttpRequest;if(Y.open("GET",r,!1),m!==G&&Y.setRequestHeader("Range",`bytes=${N}-${$}`),typeof Uint8Array!="undefined"&&(Y.responseType="arraybuffer"),Y.overrideMimeType&&Y.overrideMimeType("text/plain; charset=x-user-defined"),Y.send(null),!(Y.status>=200&&Y.status<300||Y.status===304))throw new Error(`Couldn't load ${r}. Status: ${Y.status}`);return Y.response!==void 0?new Uint8Array(Y.response||[]):Oi(Y.responseText||"",!0)},b=this;b.setDataGetter(N=>{let $=N*G,Y=(N+1)*G-1;if(Y=Math.min(Y,m-1),typeof b.chunks[N]=="undefined"&&(b.chunks[N]=R($,Y)),typeof b.chunks[N]=="undefined")throw new Error("doXHR failed!");return b.chunks[N]}),(x||!m)&&(G=m=1,m=this.getter(0).length,G=m,Re("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=m,this._chunkSize=G,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!ze)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";let h=new s;Object.defineProperties(h,{length:{get(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var A={isDevice:!1,contents:h}}else var A={isDevice:!1,url:r};let c=l.createFile(e,t,A,o,a);A.contents?c.contents=A.contents:A.url&&(c.contents=null,c.url=A.url),Object.defineProperties(c,{usedBytes:{get(){return this.contents.length}}});let u={};return Object.keys(c.stream_ops).forEach(h=>{let I=c.stream_ops[h];u[h]=function(){return l.forceLoadFile(c),I.apply(null,arguments)}}),u.read=function(I,m,y,v,x){l.forceLoadFile(c);let{contents:G}=I.node;if(x>=G.length)return 0;let R=Math.min(G.length-x,v);if(z(R>=0),G.slice)for(var b=0;b<R;b++)m[y+b]=G[x+b];else for(var b=0;b<R;b++)m[y+b]=G.get(x+b);return R},c.stream_ops=u,c},createPreloadedFile(e,t,r,o,a,s,A,c,u,d){Q.init();let h=t?Pe.resolve(Ie.join2(e,t)):e,I=wr(`cp ${h}`);function m(y){function v(G){d&&d(),c||l.createDataFile(e,t,G,o,a,u),s&&s(),or(I)}let x=!1;n.preloadPlugins.forEach(G=>{x||G.canHandle(h)&&(G.handle(y,h,v,()=>{A&&A(),or(I)}),x=!0)}),x||v(y)}p(I),typeof r=="string"?Vi(r,y=>{m(y)},A):m(r)},indexedDB(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME(){return`EM_FS_${window.location.pathname}`},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB(e,t,r){t=t||function(){},r=r||function(){};let o=l.indexedDB();try{var a=o.open(l.DB_NAME(),l.DB_VERSION)}catch(s){return r(s)}a.onupgradeneeded=function(){Re("creating db"),a.result.createObjectStore(l.DB_STORE_NAME)},a.onsuccess=function(){let c=a.result.transaction([l.DB_STORE_NAME],"readwrite"),u=c.objectStore(l.DB_STORE_NAME),d=0,h=0,I=e.length;function m(){h==0?t():r()}e.forEach(y=>{let v=u.put(l.analyzePath(y).object.contents,y);v.onsuccess=function(){d++,d+h==I&&m()},v.onerror=function(){h++,d+h==I&&m()}}),c.onerror=r},a.onerror=r},loadFilesFromDB(e,t,r){t=t||function(){},r=r||function(){};let o=l.indexedDB();try{var a=o.open(l.DB_NAME(),l.DB_VERSION)}catch(s){return r(s)}a.onupgradeneeded=r,a.onsuccess=function(){let A=a.result;try{var c=A.transaction([l.DB_STORE_NAME],"readonly")}catch(y){r(y);return}let u=c.objectStore(l.DB_STORE_NAME),d=0,h=0,I=e.length;function m(){h==0?t():r()}e.forEach(y=>{let v=u.get(y);v.onsuccess=function(){l.analyzePath(y).exists&&l.unlink(y),l.createDataFile(Ie.dirname(y),Ie.basename(y),v.result,!0,!0,!0),d++,d+h==I&&m()},v.onerror=function(){h++,d+h==I&&m()}}),c.onerror=r},a.onerror=r},absolutePath(){_("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder(){_("FS.createFolder has been removed; use FS.mkdir instead")},createLink(){_("FS.createLink has been removed; use FS.symlink instead")},joinPath(){_("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc(){_("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath(){_("FS.standardizePath has been removed; use PATH.normalize instead")}},Me={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt(e,t,r){if(t[0]==="/")return t;let o;if(e===-100)o=l.cwd();else{let a=l.getStream(e);if(!a)throw new l.ErrnoError(8);o=a.path}if(t.length==0){if(!r)throw new l.ErrnoError(44);return o}return Ie.join2(o,t)},doStat(e,t,r){try{var o=e(t)}catch(a){if(a&&a.node&&Ie.normalize(t)!==Ie.normalize(l.getPath(a.node)))return-54;throw a}return D[r>>2]=o.dev,D[r+4>>2]=0,D[r+8>>2]=o.ino,D[r+12>>2]=o.mode,D[r+16>>2]=o.nlink,D[r+20>>2]=o.uid,D[r+24>>2]=o.gid,D[r+28>>2]=o.rdev,D[r+32>>2]=0,Tt=[o.size>>>0,(ye=o.size,+Math.abs(ye)>=1?ye>0?(Math.min(+Math.floor(ye/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ye-+(~~ye>>>0))/4294967296)>>>0:0)],D[r+40>>2]=Tt[0],D[r+44>>2]=Tt[1],D[r+48>>2]=4096,D[r+52>>2]=o.blocks,D[r+56>>2]=o.atime.getTime()/1e3|0,D[r+60>>2]=0,D[r+64>>2]=o.mtime.getTime()/1e3|0,D[r+68>>2]=0,D[r+72>>2]=o.ctime.getTime()/1e3|0,D[r+76>>2]=0,Tt=[o.ino>>>0,(ye=o.ino,+Math.abs(ye)>=1?ye>0?(Math.min(+Math.floor(ye/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ye-+(~~ye>>>0))/4294967296)>>>0:0)],D[r+80>>2]=Tt[0],D[r+84>>2]=Tt[1],0},doMsync(e,t,r,o,a){let s=ve.slice(e,e+r);l.msync(t,s,a,r,o)},doMkdir(e,t){return e=Ie.normalize(e),e[e.length-1]==="/"&&(e=e.substr(0,e.length-1)),l.mkdir(e,t,0),0},doMknod(e,t,r){switch(t&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return l.mknod(e,t,r),0},doReadlink(e,t,r){if(r<=0)return-28;let o=l.readlink(e),a=Math.min(r,Bt(o)),s=be[t+a];return rr(o,t,r+1),be[t+a]=s,a},doAccess(e,t){if(t&-8)return-28;let r;if(r=l.lookupPath(e,{follow:!0}).node,!r)return-44;let a="";return t&4&&(a+="r"),t&2&&(a+="w"),t&1&&(a+="x"),a&&l.nodePermissions(r,a)?-2:0},doDup(e,t,r){let o=l.getStream(r);return o&&l.close(o),l.open(e,t,0,r,r).fd},doReadv(e,t,r,o){let a=0;for(let s=0;s<r;s++){let A=D[t+s*8>>2],c=D[t+(s*8+4)>>2],u=l.read(e,be,A,c,o);if(u<0)return-1;if(a+=u,u<c)break}return a},doWritev(e,t,r,o){let a=0;for(let s=0;s<r;s++){let A=D[t+s*8>>2],c=D[t+(s*8+4)>>2],u=l.write(e,be,A,c,o);if(u<0)return-1;a+=u}return a},varargs:void 0,get(){return z(Me.varargs!=null),Me.varargs+=4,D[Me.varargs-4>>2]},getStr(e){return et(e)},getStreamFromFD(e){let t=l.getStream(e);if(!t)throw new l.ErrnoError(8);return t},get64(e,t){return e>=0?z(t===0):z(t===-1),e}};function Wi(e,t,r){Me.varargs=r;try{let a=Me.getStreamFromFD(e);switch(t){case 0:{var o=Me.get();if(o<0)return-28;let s;return s=l.open(a.path,a.flags,0,o),s.fd}case 1:case 2:return 0;case 3:return a.flags;case 4:{var o=Me.get();return a.flags|=o,0}case 12:{var o=Me.get();let A=0;return T[o+A>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return he(28),-1;default:return-28}}catch(a){return(typeof l=="undefined"||!(a instanceof l.ErrnoError))&&_(a),-a.errno}}function zi(e,t,r){Me.varargs=r;try{let a=Me.getStreamFromFD(e);switch(t){case 21509:case 21505:return a.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return a.tty?0:-59;case 21519:{if(!a.tty)return-59;var o=Me.get();return D[o>>2]=0,0}case 21520:return a.tty?-28:-59;case 21531:{var o=Me.get();return l.ioctl(a,t,o)}case 21523:return a.tty?0:-59;case 21524:return a.tty?0:-59;default:_(`bad ioctl syscall ${t}`)}}catch(a){return(typeof l=="undefined"||!(a instanceof l.ErrnoError))&&_(a),-a.errno}}function $i(e,t,r,o,a,s){s<<=12;let A,c=!1;if((o&16)!==0&&e%65536!==0)return-28;if((o&32)!==0){if(A=ie(t),!A)return-48;c=!0}else{let u=l.getStream(a);if(!u)return-8;let d=l.mmap(u,e,t,s,r,o);A=d.ptr,c=d.allocated}return Me.mappings[A]={malloc:A,len:t,allocated:c,fd:a,prot:r,flags:o,offset:s},A}function Ki(e,t,r,o,a,s){try{return $i(e,t,r,o,a,s)}catch(A){return(typeof l=="undefined"||!(A instanceof l.ErrnoError))&&_(A),-A.errno}}function Ji(e,t,r){Me.varargs=r;try{let o=Me.getStr(e),a=r?Me.get():0;return l.open(o,t,a).fd}catch(o){return(typeof l=="undefined"||!(o instanceof l.ErrnoError))&&_(o),-o.errno}}function qn(e,t){try{return e=Me.getStr(e),Me.doStat(l.stat,e,t)}catch(r){return(typeof l=="undefined"||!(r instanceof l.ErrnoError))&&_(r),-r.errno}}let ei=48,un=57;function sr(e){if(e===void 0)return"_unknown";e=e.replace(/[^a-zA-Z0-9_]/g,"$");let t=e.charCodeAt(0);return t>=ei&&t<=un?`_${e}`:e}function Ar(e,t){return e=sr(e),new Function("body",`return function ${e}() {
5
- "use strict"; return body.apply(this, arguments);
6
- };
7
- `)(t)}let it=[],Et=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function Zi(){let e=0;for(let t=5;t<Et.length;++t)Et[t]!==void 0&&++e;return e}function qi(){for(let e=5;e<Et.length;++e)if(Et[e]!==void 0)return Et[e];return null}function ln(){n.count_emval_handles=Zi,n.get_first_emval=qi}function cr(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:{let t=it.length?it.pop():Et.length;return Et[t]={refcount:1,value:e},t}}}function Vr(e,t){let r=Ar(t,function(o){this.name=t,this.message=o;let{stack:a}=new Error(o);a!==void 0&&(this.stack=`${this.toString()}
8
- ${a.replace(/^Error(:[^\n]*)?\n/,"")}`)});return r.prototype=Object.create(e.prototype),r.prototype.constructor=r,r.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},r}let ti;function ri(){let e=new Array(256);for(let t=0;t<256;++t)e[t]=String.fromCharCode(t);Fe=e}var Fe=void 0;function je(e){let t="",r=e;for(;ve[r];)t+=Fe[ve[r++]];return t}function eo(){return Object.keys(ot).length}function Wr(){let e=[];for(let t in ot)ot.hasOwnProperty(t)&&e.push(ot[t]);return e}let ur=[];function Nt(){for(;ur.length;){let e=ur.pop();e.$$.deleteScheduled=!1,e.delete()}}let zr;function to(e){zr=e,ur.length&&zr&&zr(Nt)}function xt(){n.getInheritedInstanceCount=eo,n.getLiveInheritedInstances=Wr,n.flushPendingDeletes=Nt,n.setDelayFunction=to}var ot={};let ae;function Ae(e){throw new ae(e)}function Rn(e,t){for(t===void 0&&Ae("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function ni(e,t,r){t=Rn(e,t),ot.hasOwnProperty(t)?Ae(`Tried to register registered instance: ${t}`):ot[t]=r}function Kt(e){return e||Ae(`Cannot use deleted val. handle = ${e}`),Et[e].value}let Jt={};function dn(e){let t=dc(e),r=je(t);return at(t),r}function Sn(e,t){let r=Jt[e];return r===void 0&&Ae(`${t} has unknown type ${dn(e)}`),r}function fn(e,t){t=Rn(e,t),ot.hasOwnProperty(t)?delete ot[t]:Ae(`Tried to unregister unregistered instance: ${t}`)}function vr(e){}let lt=!1;function ii(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}function Ut(e){e.count.value-=1,e.count.value===0&&ii(e)}function lr(e){return typeof FinalizationGroup=="undefined"?(lr=function(t){return t},e):(lt=new FinalizationGroup(t=>{for(let r=t.next();!r.done;r=t.next()){let o=r.value;o.ptr?Ut(o):console.warn(`object already deleted: ${o.ptr}`)}}),lr=function(t){return lt.register(t,t.$$,t.$$),t},vr=function(t){lt.unregister(t.$$)},lr(e))}function pt(e,t,r){e=je(e),t=Sn(t,"wrapper"),r=Kt(r);let o=[].slice,{registeredClass:a}=t,s=a.instancePrototype,{baseClass:A}=a,c=A.instancePrototype,u=a.baseClass.constructor,d=Ar(e,function(){a.baseClass.pureVirtualFunctions.forEach(h=>{if(this[h]===c[h])throw new ti(`Pure virtual function ${h} must be implemented in JavaScript`)}),Object.defineProperty(this,"__parent",{value:s}),this.__construct.apply(this,o.call(arguments))});s.__construct=function(){this===s&&Ae("Pass correct 'this' to __construct");let I=u.implement.apply(void 0,[this].concat(o.call(arguments)));vr(I);let{$$:m}=I;I.notifyOnDestruction(),m.preservePointerOnDelete=!0,Object.defineProperties(this,{$$:{value:m}}),lr(this),ni(a,m.ptr,this)},s.__destruct=function(){this===s&&Ae("Pass correct 'this' to __destruct"),vr(this),fn(a,this.$$.ptr)},d.prototype=Object.create(s);for(let h in r)d.prototype[h]=r[h];return cr(d)}let dr={};function fr(e){for(;e.length;){let t=e.pop();e.pop()(t)}}function jt(e){return this.fromWireType(Qe[e>>2])}let _t={},Qr={},E;function g(e){throw new E(e)}function C(e,t,r){e.forEach(c=>{Qr[c]=t});function o(c){let u=r(c);u.length!==e.length&&g("Mismatched type converter count");for(let d=0;d<e.length;++d)X(e[d],u[d])}let a=new Array(t.length),s=[],A=0;t.forEach((c,u)=>{Jt.hasOwnProperty(c)?a[u]=Jt[c]:(s.push(c),_t.hasOwnProperty(c)||(_t[c]=[]),_t[c].push(()=>{a[u]=Jt[c],++A,A===s.length&&o(a)}))}),s.length===0&&o(a)}function O(e){let t=dr[e];delete dr[e];let{rawConstructor:r}=t,{rawDestructor:o}=t,a=t.fields,s=a.map(A=>A.getterReturnType).concat(a.map(A=>A.setterArgumentType));C([e],s,A=>{let c={};return a.forEach((u,d)=>{let{fieldName:h}=u,I=A[d],{getter:m}=u,{getterContext:y}=u,v=A[d+a.length],{setter:x}=u,{setterContext:G}=u;c[h]={read(R){return I.fromWireType(m(y,R))},write(R,b){let N=[];x(G,R,v.toWireType(N,b)),fr(N)}}}),[{name:t.name,fromWireType(u){let d={};for(let h in c)d[h]=c[h].read(u);return o(u),d},toWireType(u,d){for(var h in c)if(!(h in d))throw new TypeError(`Missing field: "${h}"`);let I=r();for(h in c)c[h].write(I,d[h]);return u!==null&&u.push(o,I),I},argPackAdvance:8,readValueFromPointer:jt,destructorFunction:o}]})}function F(e,t,r,o,a){}function H(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 X(e,t,r){if(r=r||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");let{name:o}=t;if(e||Ae(`type "${o}" must have a positive integer typeid pointer`),Jt.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;Ae(`Cannot register type '${o}' twice`)}if(Jt[e]=t,delete Qr[e],_t.hasOwnProperty(e)){let a=_t[e];delete _t[e],a.forEach(s=>{s()})}}function j(e,t,r,o,a){let s=H(r);t=je(t),X(e,{name:t,fromWireType(A){return!!A},toWireType(A,c){return c?o:a},argPackAdvance:8,readValueFromPointer(A){let c;if(r===1)c=be;else if(r===2)c=T;else if(r===4)c=D;else throw new TypeError(`Unknown boolean type size: ${t}`);return this.fromWireType(c[A>>s])},destructorFunction:null})}function Z(e){if(!(this instanceof Ue)||!(e instanceof Ue))return!1;let t=this.$$.ptrType.registeredClass,r=this.$$.ptr,o=e.$$.ptrType.registeredClass,a=e.$$.ptr;for(;t.baseClass;)r=t.upcast(r),t=t.baseClass;for(;o.baseClass;)a=o.upcast(a),o=o.baseClass;return t===o&&r===a}function ee(e){return{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}}function q(e){function t(r){return r.$$.ptrType.registeredClass.name}Ae(`${t(e)} instance already deleted`)}function me(){if(this.$$.ptr||q(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;let e=lr(Object.create(Object.getPrototypeOf(this),{$$:{value:ee(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function Be(){this.$$.ptr||q(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ae("Object already scheduled for deletion"),vr(this),Ut(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Oe(){return!this.$$.ptr}function Ke(){return this.$$.ptr||q(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ae("Object already scheduled for deletion"),ur.push(this),ur.length===1&&zr&&zr(Nt),this.$$.deleteScheduled=!0,this}function Ye(){Ue.prototype.isAliasOf=Z,Ue.prototype.clone=me,Ue.prototype.delete=Be,Ue.prototype.isDeleted=Oe,Ue.prototype.deleteLater=Ke}function Ue(){}let We={};function Pt(e,t,r){if(e[t].overloadTable===void 0){let o=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||Ae(`Function '${r}' called with an invalid number of arguments (${arguments.length}) - expects one of (${e[t].overloadTable})!`),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[o.argCount]=o}}function qe(e,t,r){n.hasOwnProperty(e)?((r===void 0||n[e].overloadTable!==void 0&&n[e].overloadTable[r]!==void 0)&&Ae(`Cannot register public name '${e}' twice`),Pt(n,e,e),n.hasOwnProperty(r)&&Ae(`Cannot register multiple overloads of a function with the same number of arguments (${r})!`),n[e].overloadTable[r]=t):(n[e]=t,r!==void 0&&(n[e].numArguments=r))}function Pr(e,t,r,o,a,s,A,c){this.name=e,this.constructor=t,this.instancePrototype=r,this.rawDestructor=o,this.baseClass=a,this.getActualType=s,this.upcast=A,this.downcast=c,this.pureVirtualFunctions=[]}function ht(e,t,r){for(;t!==r;)t.upcast||Ae(`Expected null or instance of ${r.name}, got an instance of ${t.name}`),e=t.upcast(e),t=t.baseClass;return e}function gn(e,t){if(t===null)return this.isReference&&Ae(`null is not a valid ${this.name}`),0;t.$$||Ae(`Cannot pass "${pn(t)}" as a ${this.name}`),t.$$.ptr||Ae(`Cannot pass deleted object as a pointer of type ${this.name}`);let r=t.$$.ptrType.registeredClass;return ht(t.$$.ptr,r,this.registeredClass)}function oi(e,t){let r;if(t===null)return this.isReference&&Ae(`null is not a valid ${this.name}`),this.isSmartPointer?(r=this.rawConstructor(),e!==null&&e.push(this.rawDestructor,r),r):0;t.$$||Ae(`Cannot pass "${pn(t)}" as a ${this.name}`),t.$$.ptr||Ae(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&t.$$.ptrType.isConst&&Ae(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);let o=t.$$.ptrType.registeredClass;if(r=ht(t.$$.ptr,o,this.registeredClass),this.isSmartPointer)switch(t.$$.smartPtr===void 0&&Ae("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:Ae(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:r=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)r=t.$$.smartPtr;else{let a=t.clone();r=this.rawShare(r,cr(()=>{a.delete()})),e!==null&&e.push(this.rawDestructor,r)}break;default:Ae("Unsupporting sharing policy")}return r}function ai(e,t){if(t===null)return this.isReference&&Ae(`null is not a valid ${this.name}`),0;t.$$||Ae(`Cannot pass "${pn(t)}" as a ${this.name}`),t.$$.ptr||Ae(`Cannot pass deleted object as a pointer of type ${this.name}`),t.$$.ptrType.isConst&&Ae(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);let r=t.$$.ptrType.registeredClass;return ht(t.$$.ptr,r,this.registeredClass)}function Mn(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function si(e){this.rawDestructor&&this.rawDestructor(e)}function ho(e){e!==null&&e.delete()}function Io(e,t,r){if(t===r)return e;if(r.baseClass===void 0)return null;let o=Io(e,t,r.baseClass);return o===null?null:r.downcast(o)}function Ai(e,t){return t=Rn(e,t),ot[t]}function ci(e,t){(!t.ptrType||!t.ptr)&&g("makeClassHandle requires ptr and ptrType");let r=!!t.smartPtrType,o=!!t.smartPtr;return r!==o&&g("Both smartPtrType and smartPtr must be specified"),t.count={value:1},lr(Object.create(e,{$$:{value:t}}))}function Vo(e){let t=this.getPointee(e);if(!t)return this.destructor(e),null;let r=Ai(this.registeredClass,t);if(r!==void 0){if(r.$$.count.value===0)return r.$$.ptr=t,r.$$.smartPtr=e,r.clone();let u=r.clone();return this.destructor(e),u}function o(){return this.isSmartPointer?ci(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):ci(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}let a=this.registeredClass.getActualType(t),s=We[a];if(!s)return o.call(this);let A;this.isConst?A=s.constPointerType:A=s.pointerType;let c=Io(t,this.registeredClass,A.registeredClass);return c===null?o.call(this):this.isSmartPointer?ci(A.registeredClass.instancePrototype,{ptrType:A,ptr:c,smartPtrType:this,smartPtr:e}):ci(A.registeredClass.instancePrototype,{ptrType:A,ptr:c})}function gr(){Zt.prototype.getPointee=Mn,Zt.prototype.destructor=si,Zt.prototype.argPackAdvance=8,Zt.prototype.readValueFromPointer=jt,Zt.prototype.deleteObject=ho,Zt.prototype.fromWireType=Vo}function Zt(e,t,r,o,a,s,A,c,u,d,h){this.name=e,this.registeredClass=t,this.isReference=r,this.isConst=o,this.isSmartPointer=a,this.pointeeType=s,this.sharingPolicy=A,this.rawGetPointee=c,this.rawConstructor=u,this.rawShare=d,this.rawDestructor=h,!a&&t.baseClass===void 0?o?(this.toWireType=gn,this.destructorFunction=null):(this.toWireType=ai,this.destructorFunction=null):this.toWireType=oi}function mo(e,t,r){n.hasOwnProperty(e)||g("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 Wo(e,t,r){z(`dynCall_${e}`in n,`bad function pointer type - no table for sig '${e}'`),r&&r.length?z(r.length===e.substring(1).replace(/j/g,"--").length):z(e.length==1);let o=n[`dynCall_${e}`];return r&&r.length?o.apply(null,[t].concat(r)):o.call(null,t)}function zo(e,t,r){return e.includes("j")?Wo(e,t,r):(z(W.get(t),`missing table entry in dynCall: ${t}`),W.get(t).apply(null,r))}function It(e,t){z(e.includes("j"),"getDynCaller should only be called with i64 sigs");let r=[];return function(){r.length=arguments.length;for(let o=0;o<arguments.length;o++)r[o]=arguments[o];return zo(e,t,r)}}function dt(e,t){e=je(e);function r(){return e.includes("j")?It(e,t):W.get(t)}let o=r();return typeof o!="function"&&Ae(`unknown function pointer with signature ${e}: ${t}`),o}let Rr;function $r(e,t){let r=[],o={};function a(s){if(!o[s]&&!Jt[s]){if(Qr[s]){Qr[s].forEach(a);return}r.push(s),o[s]=!0}}throw t.forEach(a),new Rr(`${e}: ${r.map(dn).join([", "])}`)}function Co(e,t,r,o,a,s,A,c,u,d,h,I,m){h=je(h),s=dt(a,s),c&&(c=dt(A,c)),d&&(d=dt(u,d)),m=dt(I,m);let y=sr(h);qe(y,()=>{$r(`Cannot construct ${h} due to unbound types`,[o])}),C([e,t,r],o?[o]:[],v=>{v=v[0];let x,G;o?(x=v.registeredClass,G=x.instancePrototype):G=Ue.prototype;let R=Ar(y,function(){if(Object.getPrototypeOf(this)!==b)throw new ae(`Use 'new' to construct ${h}`);if(N.constructor_body===void 0)throw new ae(`${h} has no accessible constructor`);let ke=N.constructor_body[arguments.length];if(ke===void 0)throw new ae(`Tried to invoke ctor of ${h} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(N.constructor_body).toString()}) parameters instead!`);return ke.apply(this,arguments)});var b=Object.create(G,{constructor:{value:R}});R.prototype=b;var N=new Pr(h,R,b,m,x,s,c,d);let $=new Zt(h,N,!0,!1,!1),Y=new Zt(`${h}*`,N,!1,!1,!1),Ce=new Zt(`${h} const*`,N,!1,!0,!1);return We[e]={pointerType:Y,constPointerType:Ce},mo(y,R),[$,Y,Ce]})}function Fn(e,t){if(!(e instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof e} which is not a function`);let r=Ar(e.name||"unknownFunctionName",()=>{});r.prototype=e.prototype;let o=new r,a=e.apply(o,t);return a instanceof Object?a:o}function Kr(e,t,r,o,a){let s=t.length;s<2&&Ae("argTypes array size mismatch! Must at least get return value and 'this' types!");let A=t[1]!==null&&r!==null,c=!1;for(var u=1;u<t.length;++u)if(t[u]!==null&&t[u].destructorFunction===void 0){c=!0;break}let d=t[0].name!=="void",h="",I="";for(var u=0;u<s-2;++u)h+=`${u!==0?", ":""}arg${u}`,I+=`${u!==0?", ":""}arg${u}Wired`;let m=`return function ${sr(e)}(${h}) {
9
- if (arguments.length !== ${s-2}) {
10
- throwBindingError('function ${e} called with ' + arguments.length + ' arguments, expected ${s-2} args!');
11
- }
12
- `;c&&(m+=`var destructors = [];
13
- `);let y=c?"destructors":"null",v=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],x=[Ae,o,a,fr,t[0],t[1]];A&&(m+=`var thisWired = classParam.toWireType(${y}, this);
14
- `);for(var u=0;u<s-2;++u)m+=`var arg${u}Wired = argType${u}.toWireType(${y}, arg${u}); // ${t[u+2].name}
15
- `,v.push(`argType${u}`),x.push(t[u+2]);if(A&&(I=`thisWired${I.length>0?", ":""}${I}`),m+=`${d?"var rv = ":""}invoker(fn${I.length>0?", ":""}${I});
16
- `,c)m+=`runDestructors(destructors);
17
- `;else for(var u=A?1:2;u<t.length;++u){let b=u===1?"thisWired":`arg${u-2}Wired`;t[u].destructorFunction!==null&&(m+=`${b}_dtor(${b}); // ${t[u].name}
18
- `,v.push(`${b}_dtor`),x.push(t[u].destructorFunction))}return d&&(m+=`var ret = retType.fromWireType(rv);
19
- return ret;
20
- `),m+=`}
21
- `,v.push(m),Fn(Function,v).apply(null,x)}function ui(e,t){let r=[];for(let o=0;o<e;o++)r.push(D[(t>>2)+o]);return r}function $o(e,t,r,o,a,s,A){let c=ui(r,o);t=je(t),s=dt(a,s),C([],[e],u=>{u=u[0];let d=`${u.name}.${t}`;function h(){$r(`Cannot call ${d} due to unbound types`,c)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]);let I=u.registeredClass.constructor;return I[t]===void 0?(h.argCount=r-1,I[t]=h):(Pt(I,t,d),I[t].overloadTable[r-1]=h),C([],c,m=>{let y=[m[0],null].concat(m.slice(1)),v=Kr(d,y,null,s,A);return I[t].overloadTable===void 0?(v.argCount=r-1,I[t]=v):I[t].overloadTable[r-1]=v,[]}),[]})}function Ko(e,t,r,o,a,s){z(t>0);let A=ui(t,r);a=dt(o,a),C([],[e],c=>{c=c[0];let u=`constructor ${c.name}`;if(c.registeredClass.constructor_body===void 0&&(c.registeredClass.constructor_body=[]),c.registeredClass.constructor_body[t-1]!==void 0)throw new ae(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${c.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return c.registeredClass.constructor_body[t-1]=function(){$r(`Cannot construct ${c.name} due to unbound types`,A)},C([],A,d=>(d.splice(1,0,null),c.registeredClass.constructor_body[t-1]=Kr(u,d,null,a,s),[])),[]})}function yo(e,t,r,o,a,s,A,c){let u=ui(r,o);t=je(t),s=dt(a,s),C([],[e],d=>{d=d[0];let h=`${d.name}.${t}`;t.startsWith("@@")&&(t=Symbol[t.substring(2)]),c&&d.registeredClass.pureVirtualFunctions.push(t);function I(){$r(`Cannot call ${h} due to unbound types`,u)}let m=d.registeredClass.instancePrototype,y=m[t];return y===void 0||y.overloadTable===void 0&&y.className!==d.name&&y.argCount===r-2?(I.argCount=r-2,I.className=d.name,m[t]=I):(Pt(m,t,h),m[t].overloadTable[r-2]=I),C([],u,v=>{let x=Kr(h,v,d,s,A);return m[t].overloadTable===void 0?(x.argCount=r-2,m[t]=x):m[t].overloadTable[r-2]=x,[]}),[]})}function wo(e,t,r){return e instanceof Object||Ae(`${r} with invalid "this": ${e}`),e instanceof t.registeredClass.constructor||Ae(`${r} incompatible with "this" of type ${e.constructor.name}`),e.$$.ptr||Ae(`cannot call emscripten binding method ${r} on deleted object`),ht(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)}function bo(e,t,r,o,a,s,A,c,u,d){t=je(t),a=dt(o,a),C([],[e],h=>{h=h[0];let I=`${h.name}.${t}`,m={get(){$r(`Cannot access ${I} due to unbound types`,[r,A])},enumerable:!0,configurable:!0};return u?m.set=function(){$r(`Cannot access ${I} due to unbound types`,[r,A])}:m.set=function(y){Ae(`${I} is a read-only property`)},Object.defineProperty(h.registeredClass.instancePrototype,t,m),C([],u?[r,A]:[r],y=>{let v=y[0],x={get(){let G=wo(this,h,`${I} getter`);return v.fromWireType(a(s,G))},enumerable:!0};if(u){u=dt(c,u);let G=y[1];x.set=function(R){let b=wo(this,h,`${I} setter`),N=[];u(d,b,G.toWireType(N,R)),fr(N)}}return Object.defineProperty(h.registeredClass.instancePrototype,t,x),[]}),[]})}function Do(e){e>4&&--Et[e].refcount===0&&(Et[e]=void 0,it.push(e))}function En(e,t){t=je(t),X(e,{name:t,fromWireType(r){let o=Et[r].value;return Do(r),o},toWireType(r,o){return cr(o)},argPackAdvance:8,readValueFromPointer:jt,destructorFunction:null})}function pn(e){if(e===null)return"null";let t=typeof e;return t==="object"||t==="array"||t==="function"?e.toString():`${e}`}function Jo(e,t){switch(t){case 2:return function(r){return this.fromWireType($e[r>>2])};case 3:return function(r){return this.fromWireType(jr[r>>3])};default:throw new TypeError(`Unknown float type: ${e}`)}}function Zo(e,t,r){let o=H(r);t=je(t),X(e,{name:t,fromWireType(a){return a},toWireType(a,s){if(typeof s!="number"&&typeof s!="boolean")throw new TypeError(`Cannot convert "${pn(s)}" to ${this.name}`);return s},argPackAdvance:8,readValueFromPointer:Jo(t,o),destructorFunction:null})}function qo(e,t,r,o,a,s){let A=ui(t,r);e=je(e),a=dt(o,a),qe(e,()=>{$r(`Cannot call ${e} due to unbound types`,A)},t-1),C([],A,c=>{let u=[c[0],null].concat(c.slice(1));return mo(e,Kr(e,u,null,a,s),t-1),[]})}function ea(e,t,r){switch(t){case 0:return r?function(a){return be[a]}:function(a){return ve[a]};case 1:return r?function(a){return T[a>>1]}:function(a){return De[a>>1]};case 2:return r?function(a){return D[a>>2]}:function(a){return Qe[a>>2]};default:throw new TypeError(`Unknown integer type: ${e}`)}}function ta(e,t,r,o,a){t=je(t),a===-1&&(a=4294967295);let s=H(r),A=function(u){return u};if(o===0){let u=32-8*r;A=function(d){return d<<u>>>u}}let c=t.includes("unsigned");X(e,{name:t,fromWireType:A,toWireType(u,d){if(typeof d!="number"&&typeof d!="boolean")throw new TypeError(`Cannot convert "${pn(d)}" to ${this.name}`);if(d<o||d>a)throw new TypeError(`Passing a number "${pn(d)}" from JS side to C/C++ side to an argument of type "${t}", which is outside the valid range [${o}, ${a}]!`);return c?d>>>0:d|0},argPackAdvance:8,readValueFromPointer:ea(t,s,o!==0),destructorFunction:null})}function ra(e,t,r){let a=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function s(A){A=A>>2;let c=Qe,u=c[A],d=c[A+1];return new a(Se,d,u)}r=je(r),X(e,{name:r,fromWireType:s,argPackAdvance:8,readValueFromPointer:s},{ignoreDuplicateRegistrations:!0})}function na(e,t){t=je(t);let r=t==="std::string";X(e,{name:t,fromWireType(o){let a=Qe[o>>2],s;if(r){let c=o+4;for(var A=0;A<=a;++A){let u=o+4+A;if(A==a||ve[u]==0){let d=u-c,h=et(c,d);s===void 0?s=h:(s+="\0",s+=h),c=u+1}}}else{let c=new Array(a);for(var A=0;A<a;++A)c[A]=String.fromCharCode(ve[o+4+A]);s=c.join("")}return at(o),s},toWireType(o,a){a instanceof ArrayBuffer&&(a=new Uint8Array(a));let s,A=typeof a=="string";A||a instanceof Uint8Array||a instanceof Uint8ClampedArray||a instanceof Int8Array||Ae("Cannot pass non-string to std::string"),r&&A?s=function(){return Bt(a)}:s=function(){return a.length};let c=s(),u=rn(4+c+1);if(Qe[u>>2]=c,r&&A)rr(a,u+4,c+1);else if(A)for(var d=0;d<c;++d){let h=a.charCodeAt(d);h>255&&(at(u),Ae("String has UTF-16 code units that do not fit in 8 bits")),ve[u+4+d]=h}else for(var d=0;d<c;++d)ve[u+4+d]=a[d];return o!==null&&o.push(at,u),u},argPackAdvance:8,readValueFromPointer:jt,destructorFunction(o){at(o)}})}function ia(e,t,r){r=je(r);let o,a,s,A,c;t===2?(o=Si,a=mn,A=Xn,s=function(){return De},c=1):t===4&&(o=Mi,a=Cn,A=xr,s=function(){return Qe},c=2),X(e,{name:r,fromWireType(u){let d=Qe[u>>2],h=s(),I,m=u+4;for(let y=0;y<=d;++y){let v=u+4+y*t;if(y==d||h[v>>c]==0){let x=v-m,G=o(m,x);I===void 0?I=G:(I+="\0",I+=G),m=v+t}}return at(u),I},toWireType(u,d){typeof d!="string"&&Ae(`Cannot pass non-string to C++ string type ${r}`);let h=A(d),I=rn(4+h+t);return Qe[I>>2]=h>>c,a(d,I+4,h+t),u!==null&&u.push(at,I),I},argPackAdvance:8,readValueFromPointer:jt,destructorFunction(u){at(u)}})}function oa(e,t,r,o,a,s){dr[e]={name:je(t),rawConstructor:dt(r,o),rawDestructor:dt(a,s),fields:[]}}function aa(e,t,r,o,a,s,A,c,u,d){dr[e].fields.push({fieldName:je(t),getterReturnType:r,getter:dt(o,a),getterContext:s,setterArgumentType:A,setter:dt(c,u),setterContext:d})}function sa(e,t){t=je(t),X(e,{isVoid:!0,name:t,argPackAdvance:0,fromWireType(){},toWireType(r,o){}})}let Aa={};function ro(e){let t=Aa[e];return t===void 0?je(e):t}let no=[];function ca(e,t,r,o){e=no[e],t=Kt(t),r=ro(r),e(t,r,null,o)}function ua(e){let t=no.length;return no.push(e),t}function la(e,t){let r=new Array(e);for(let o=0;o<e;++o)r[o]=Sn(D[(t>>2)+o],`parameter ${o}`);return r}function da(e,t){let r=la(e,t),o=r[0],a=`${o.name}_$${r.slice(1).map(y=>y.name).join("_")}$`,s=["retType"],A=[o],c="";for(var u=0;u<e-1;++u)c+=`${u!==0?", ":""}arg${u}`,s.push(`argType${u}`),A.push(r[1+u]);let h=`return function ${sr(`methodCaller_${a}`)}(handle, name, destructors, args) {
22
- `,I=0;for(var u=0;u<e-1;++u)h+=` var arg${u} = argType${u}.readValueFromPointer(args${I?`+${I}`:""});
23
- `,I+=r[u+1].argPackAdvance;h+=` var rv = handle[name](${c});
24
- `;for(var u=0;u<e-1;++u)r[u+1].deleteObject&&(h+=` argType${u}.deleteObject(arg${u});
25
- `);o.isVoid||(h+=` return retType.toWireType(destructors, rv);
26
- `),h+=`};
27
- `,s.push(h);let m=Fn(Function,s).apply(null,A);return ua(m)}function fa(e){e>4&&(Et[e].refcount+=1)}function ga(e,t){e=Sn(e,"_emval_take_value");let r=e.readValueFromPointer(t);return cr(r)}function Ea(){_()}let pa=!0;function _a(e,t){let r;if(e===0)r=Date.now();else if((e===1||e===4)&&pa)r=Br();else return he(28),-1;return D[t>>2]=r/1e3|0,D[t+4>>2]=r%1e3*1e3*1e3|0,0}function ha(e,t){_("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}function li(e,t){_("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}let di=[];function Ia(e,t){z(Array.isArray(di)),z(t%16==0),di.length=0;let r;for(t>>=2;r=ve[e++];){z(r===100||r===102||r===105);let o=r<105;o&&t&1&&t++,di.push(o?jr[t++>>1]:D[t]),++t}return di}function ma(e,t,r){let o=Ia(t,r);return Gr.hasOwnProperty(e)||_(`No EM_ASM constant found at address ${e}`),Gr[e].apply(null,o)}function Ca(){return 2147483648}function ya(e,t,r){ve.copyWithin(e,t,t+r)}function wa(e){_("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")}function ba(e){try{return Rt.grow(e-Se.byteLength+65535>>>16),an(Rt.buffer),1}catch(t){_e(`emscripten_realloc_buffer: Attempted to grow heap from ${Se.byteLength} bytes to ${e} bytes, but got error: ${t}`)}}function fi(e){let t=ve.length;e=e>>>0,z(e>t);let r=2147483648;if(e>r)return _e(`Cannot enlarge memory, asked to go up to ${e} bytes, but the limit is ${r} bytes!`),!1;for(let a=1;a<=4;a*=2){let s=t*(1+.2/a);s=Math.min(s,e+100663296);var o=Math.min(r,xe(Math.max(e,s),65536));if(ba(o))return!0}return _e(`Failed to grow the heap from ${t} bytes to ${o} bytes, not enough memory!`),!1}function Er(e){_("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}let Jr={};function Bo(e){e.forEach(t=>{let r=Er(t);r&&(Jr[r]=t)})}function Da(){let e=new Error().stack.split(`
28
- `);return e[0]=="Error"&&e.shift(),Bo(e),Jr.last_addr=Er(e[2]),Jr.last_stack=e,Jr.last_addr}function Ba(e,t,r){let o;Jr.last_addr==e?o=Jr.last_stack:(o=new Error().stack.split(`
29
- `),o[0]=="Error"&&o.shift(),Bo(o));let a=2;for(;o[a]&&Er(o[a])!=e;)++a;for(var s=0;s<r&&o[s+a];++s)D[t+s*4>>2]=Er(o[s+a]);return s}function Oa(e){let t=Br();for(;Br()-t<e;);}function Ta(e){let t=e.getExtension("ANGLE_instanced_arrays");if(t)return e.vertexAttribDivisor=function(r,o){t.vertexAttribDivisorANGLE(r,o)},e.drawArraysInstanced=function(r,o,a,s){t.drawArraysInstancedANGLE(r,o,a,s)},e.drawElementsInstanced=function(r,o,a,s,A){t.drawElementsInstancedANGLE(r,o,a,s,A)},1}function va(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 Qa(e){let t=e.getExtension("WEBGL_draw_buffers");if(t)return e.drawBuffers=function(r,o){t.drawBuffersWEBGL(r,o)},1}function Pa(e){return!!(e.dibvbi=e.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function Ra(e){return!!(e.mdibvbi=e.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function B(e){return!!(e.multiDrawWebgl=e.getExtension("WEBGL_multi_draw"))}var w={counter:1,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function(t){w.lastError||(w.lastError=t)},getNewId(e){let t=w.counter++;for(let r=e.length;r<t;r++)e[r]=null;return t},MAX_TEMP_BUFFER_SIZE:2097152,numTempVertexBuffersPerSize:64,log2ceilLookup(e){return 32-Math.clz32(e===0?0:e-1)},generateTempBuffers(e,t){let r=w.log2ceilLookup(w.MAX_TEMP_BUFFER_SIZE);t.tempVertexBufferCounters1=[],t.tempVertexBufferCounters2=[],t.tempVertexBufferCounters1.length=t.tempVertexBufferCounters2.length=r+1,t.tempVertexBuffers1=[],t.tempVertexBuffers2=[],t.tempVertexBuffers1.length=t.tempVertexBuffers2.length=r+1,t.tempIndexBuffers=[],t.tempIndexBuffers.length=r+1;for(var o=0;o<=r;++o){t.tempIndexBuffers[o]=null,t.tempVertexBufferCounters1[o]=t.tempVertexBufferCounters2[o]=0;let a=w.numTempVertexBuffersPerSize;t.tempVertexBuffers1[o]=[],t.tempVertexBuffers2[o]=[];let s=t.tempVertexBuffers1[o],A=t.tempVertexBuffers2[o];s.length=A.length=a;for(let c=0;c<a;++c)s[c]=A[c]=null}if(e){t.tempQuadIndexBuffer=S.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);let a=w.MAX_TEMP_BUFFER_SIZE>>1,s=new Uint16Array(a);var o=0;let c=0;for(;s[o++]=c,!(o>=a||(s[o++]=c+1,o>=a)||(s[o++]=c+2,o>=a)||(s[o++]=c,o>=a)||(s[o++]=c+2,o>=a)||(s[o++]=c+3,o>=a));)c+=4;t.GLctx.bufferData(34963,s,35044),t.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:function(t){let r=w.log2ceilLookup(t),o=w.currentContext.tempVertexBuffers1[r],a=w.currentContext.tempVertexBufferCounters1[r];w.currentContext.tempVertexBufferCounters1[r]=w.currentContext.tempVertexBufferCounters1[r]+1&w.numTempVertexBuffersPerSize-1;let s=o[a];if(s)return s;let A=S.getParameter(34964);return o[a]=S.createBuffer(),S.bindBuffer(34962,o[a]),S.bufferData(34962,1<<r,35048),S.bindBuffer(34962,A),o[a]},getTempIndexBuffer:function(t){let r=w.log2ceilLookup(t),o=w.currentContext.tempIndexBuffers[r];if(o)return o;let a=S.getParameter(34965);return w.currentContext.tempIndexBuffers[r]=S.createBuffer(),S.bindBuffer(34963,w.currentContext.tempIndexBuffers[r]),S.bufferData(34963,1<<r,35048),S.bindBuffer(34963,a),w.currentContext.tempIndexBuffers[r]},newRenderingFrameStarted:function(){if(!w.currentContext)return;let t=w.currentContext.tempVertexBuffers1;w.currentContext.tempVertexBuffers1=w.currentContext.tempVertexBuffers2,w.currentContext.tempVertexBuffers2=t,t=w.currentContext.tempVertexBufferCounters1,w.currentContext.tempVertexBufferCounters1=w.currentContext.tempVertexBufferCounters2,w.currentContext.tempVertexBufferCounters2=t;let r=w.log2ceilLookup(w.MAX_TEMP_BUFFER_SIZE);for(let o=0;o<=r;++o)w.currentContext.tempVertexBufferCounters1[o]=0},getSource(e,t,r,o){let a="";for(let s=0;s<t;++s){let A=o?D[o+s*4>>2]:-1;a+=et(D[r+s*4>>2],A<0?void 0:A)}return a},calcBufLength:function(t,r,o,a){if(o>0)return a*o;let s=w.byteSizeByType[r-w.byteSizeByTypeRoot];return t*s*a},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(t){w.resetBufferBinding=!1;for(let r=0;r<w.currentContext.maxVertexAttribs;++r){let o=w.currentContext.clientBuffers[r];if(!o.clientside||!o.enabled)continue;w.resetBufferBinding=!0;let a=w.calcBufLength(o.size,o.type,o.stride,t),s=w.getTempVertexBuffer(a);S.bindBuffer(34962,s),S.bufferSubData(34962,0,ve.subarray(o.ptr,o.ptr+a)),o.vertexAttribPointerAdaptor.call(S,r,o.size,o.type,o.normalized,o.stride,0)}},postDrawHandleClientVertexAttribBindings:function(){w.resetBufferBinding&&S.bindBuffer(34962,w.buffers[S.currentArrayBufferBinding])},createContext(e,t){t.renderViaOffscreenBackBuffer&&(t.preserveDrawingBuffer=!0);let r=t.majorVersion>1?e.getContext("webgl2",t):e.getContext("webgl",t);return r?w.registerContext(r,t):0},enableOffscreenFramebufferAttributes(e){e.renderViaOffscreenBackBuffer=!0,e.preserveDrawingBuffer=!0},createOffscreenFramebuffer(e){let t=e.GLctx,r=t.createFramebuffer();if(t.bindFramebuffer(36160,r),e.defaultFbo=r,e.defaultFboForbidBlitFramebuffer=!1,t.getContextAttributes().antialias)e.defaultFboForbidBlitFramebuffer=!0;else{let I=navigator.userAgent.toLowerCase().match(/firefox\/(\d\d)/);if(I!=null){let m=I[1];e.defaultFboForbidBlitFramebuffer=m<67}}e.defaultColorTarget=t.createTexture(),e.defaultDepthTarget=t.createRenderbuffer(),w.resizeOffscreenFramebuffer(e),t.bindTexture(3553,e.defaultColorTarget),t.texParameteri(3553,10241,9728),t.texParameteri(3553,10240,9728),t.texParameteri(3553,10242,33071),t.texParameteri(3553,10243,33071),t.texImage2D(3553,0,6408,t.canvas.width,t.canvas.height,0,6408,5121,null),t.framebufferTexture2D(36160,36064,3553,e.defaultColorTarget,0),t.bindTexture(3553,null);let o=t.createRenderbuffer();t.bindRenderbuffer(36161,e.defaultDepthTarget),t.renderbufferStorage(36161,33189,t.canvas.width,t.canvas.height),t.framebufferRenderbuffer(36160,36096,36161,e.defaultDepthTarget),t.bindRenderbuffer(36161,null);let a=[-1,-1,-1,1,1,-1,1,1],s=t.createBuffer();t.bindBuffer(34962,s),t.bufferData(34962,new Float32Array(a),35044),t.bindBuffer(34962,null),e.blitVB=s;let A="attribute vec2 pos;varying lowp vec2 tex;void main() { tex = pos * 0.5 + vec2(0.5,0.5); gl_Position = vec4(pos, 0.0, 1.0); }",c=t.createShader(35633);t.shaderSource(c,A),t.compileShader(c);let u="varying lowp vec2 tex;uniform sampler2D sampler;void main() { gl_FragColor = texture2D(sampler, tex); }",d=t.createShader(35632);t.shaderSource(d,u),t.compileShader(d);let h=t.createProgram();t.attachShader(h,c),t.attachShader(h,d),t.linkProgram(h),e.blitProgram=h,e.blitPosLoc=t.getAttribLocation(h,"pos"),t.useProgram(h),t.uniform1i(t.getUniformLocation(h,"sampler"),0),t.useProgram(null),e.defaultVao=void 0,t.createVertexArray&&(e.defaultVao=t.createVertexArray(),t.bindVertexArray(e.defaultVao),t.enableVertexAttribArray(e.blitPosLoc),t.bindVertexArray(null))},resizeOffscreenFramebuffer(e){let t=e.GLctx;if(e.defaultColorTarget){let r=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget),t.texImage2D(3553,0,6408,t.drawingBufferWidth,t.drawingBufferHeight,0,6408,5121,null),t.bindTexture(3553,r)}if(e.defaultDepthTarget){let r=t.getParameter(36007);t.bindRenderbuffer(36161,e.defaultDepthTarget),t.renderbufferStorage(36161,33189,t.drawingBufferWidth,t.drawingBufferHeight),t.bindRenderbuffer(36161,r)}},blitOffscreenFramebuffer(e){let t=e.GLctx,r=t.getParameter(3089);r&&t.disable(3089);let o=t.getParameter(36006);if(t.blitFramebuffer&&!e.defaultFboForbidBlitFramebuffer)t.bindFramebuffer(36008,e.defaultFbo),t.bindFramebuffer(36009,null),t.blitFramebuffer(0,0,t.canvas.width,t.canvas.height,0,0,t.canvas.width,t.canvas.height,16384,9728);else{let x=function(){t.vertexAttribPointer(e.blitPosLoc,2,5126,!1,0,0),t.drawArrays(5,0,4)};var A=x;t.bindFramebuffer(36160,null);let c=t.getParameter(35725);t.useProgram(e.blitProgram);let u=t.getParameter(34964);t.bindBuffer(34962,e.blitVB);let d=t.getParameter(34016);t.activeTexture(33984);let h=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget);let I=t.getParameter(3042);I&&t.disable(3042);let m=t.getParameter(2884);m&&t.disable(2884);let y=t.getParameter(2929);y&&t.disable(2929);let v=t.getParameter(2960);if(v&&t.disable(2960),e.defaultVao){let G=t.getParameter(34229);t.bindVertexArray(e.defaultVao),x(),t.bindVertexArray(G)}else{let G={buffer:t.getVertexAttrib(e.blitPosLoc,34975),size:t.getVertexAttrib(e.blitPosLoc,34339),stride:t.getVertexAttrib(e.blitPosLoc,34340),type:t.getVertexAttrib(e.blitPosLoc,34341),normalized:t.getVertexAttrib(e.blitPosLoc,34922),pointer:t.getVertexAttribOffset(e.blitPosLoc,34373)},R=t.getParameter(34921),b=[];for(var a=0;a<R;++a){var s=t.getVertexAttrib(a,34338);let N=a==e.blitPosLoc;s&&!N&&t.disableVertexAttribArray(a),!s&&N&&t.enableVertexAttribArray(a),b[a]=s}x();for(var a=0;a<R;++a){var s=b[a];let Y=a==e.blitPosLoc;s&&!Y&&t.enableVertexAttribArray(a),!s&&Y&&t.disableVertexAttribArray(a)}t.bindBuffer(34962,G.buffer),t.vertexAttribPointer(e.blitPosLoc,G.size,G.type,G.normalized,G.stride,G.offset)}v&&t.enable(2960),y&&t.enable(2929),m&&t.enable(2884),I&&t.enable(3042),t.bindTexture(3553,h),t.activeTexture(d),t.bindBuffer(34962,u),t.useProgram(c)}t.bindFramebuffer(36160,o),r&&t.enable(3089)},registerContext(e,t){let r=w.getNewId(w.contexts),o={handle:r,attributes:t,version:t.majorVersion,GLctx:e};e.canvas&&(e.canvas.GLctxObject=o),w.contexts[r]=o,(typeof t.enableExtensionsByDefault=="undefined"||t.enableExtensionsByDefault)&&w.initExtensions(o),o.maxVertexAttribs=o.GLctx.getParameter(34921),o.clientBuffers=[];for(let a=0;a<o.maxVertexAttribs;a++)o.clientBuffers[a]={enabled:!1,clientside:!1,size:0,type:0,normalized:0,stride:0,ptr:0,vertexAttribPointerAdaptor:null};return w.generateTempBuffers(!1,o),t.renderViaOffscreenBackBuffer&&w.createOffscreenFramebuffer(o),r},makeContextCurrent(e){return w.currentContext=w.contexts[e],n.ctx=S=w.currentContext&&w.currentContext.GLctx,!(e&&!S)},getContext(e){return w.contexts[e]},deleteContext(e){w.currentContext===w.contexts[e]&&(w.currentContext=null),typeof fe=="object"&&fe.removeAllHandlersOnTarget(w.contexts[e].GLctx.canvas),w.contexts[e]&&w.contexts[e].GLctx.canvas&&(w.contexts[e].GLctx.canvas.GLctxObject=void 0),w.contexts[e]=null},initExtensions(e){if(e||(e=w.currentContext),e.initExtensionsDone)return;e.initExtensionsDone=!0;let{GLctx:t}=e;Ta(t),va(t),Qa(t),Pa(t),Ra(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")),B(t),(t.getSupportedExtensions()||[]).forEach(o=>{!o.includes("lose_context")&&!o.includes("debug")&&t.getExtension(o)})}},fe={inEventHandler:0,removeAllEventListeners(){for(let e=fe.eventHandlers.length-1;e>=0;--e)fe._removeHandler(e);fe.eventHandlers=[],fe.deferredCalls=[]},registerRemoveEventListeners(){fe.removeEventListenersRegistered||(de.push(fe.removeAllEventListeners),fe.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall(e,t,r){function o(a,s){if(a.length!=s.length)return!1;for(let A in a)if(a[A]!=s[A])return!1;return!0}for(let a in fe.deferredCalls){let s=fe.deferredCalls[a];if(s.targetFunction==e&&o(s.argsList,r))return}fe.deferredCalls.push({targetFunction:e,precedence:t,argsList:r}),fe.deferredCalls.sort((a,s)=>a.precedence<s.precedence)},removeDeferredCalls(e){for(let t=0;t<fe.deferredCalls.length;++t)fe.deferredCalls[t].targetFunction==e&&(fe.deferredCalls.splice(t,1),--t)},canPerformEventHandlerRequests(){return fe.inEventHandler&&fe.currentEventHandler.allowsDeferredCalls},runDeferredCalls(){if(fe.canPerformEventHandlerRequests())for(let e=0;e<fe.deferredCalls.length;++e){let t=fe.deferredCalls[e];fe.deferredCalls.splice(e,1),--e,t.targetFunction.apply(null,t.argsList)}},eventHandlers:[],removeAllHandlersOnTarget(e,t){for(let r=0;r<fe.eventHandlers.length;++r)fe.eventHandlers[r].target==e&&(!t||t==fe.eventHandlers[r].eventTypeString)&&fe._removeHandler(r--)},_removeHandler(e){let t=fe.eventHandlers[e];t.target.removeEventListener(t.eventTypeString,t.eventListenerFunc,t.useCapture),fe.eventHandlers.splice(e,1)},registerOrRemoveHandler(e){let t=function(o){++fe.inEventHandler,fe.currentEventHandler=e,fe.runDeferredCalls(),e.handlerFunc(o),fe.runDeferredCalls(),--fe.inEventHandler};if(e.callbackfunc)e.eventListenerFunc=t,e.target.addEventListener(e.eventTypeString,t,e.useCapture),fe.eventHandlers.push(e),fe.registerRemoveEventListeners();else for(let r=0;r<fe.eventHandlers.length;++r)fe.eventHandlers[r].target==e.target&&fe.eventHandlers[r].eventTypeString==e.eventTypeString&&fe._removeHandler(r--)},getNodeNameForTarget(e){return e?e==window?"#window":e==screen?"#screen":e&&e.nodeName?e.nodeName:"":""},fullscreenEnabled(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};let Oo=["default","low-power","high-performance"],Sa=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function io(e){nt("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=Sa[e]||et(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 oo(e){return typeof e=="number"&&(e=et(e)),!e||e==="#canvas"?typeof w!="undefined"&&w.offscreenCanvases.canvas?w.offscreenCanvases.canvas:n.canvas:typeof w!="undefined"&&w.offscreenCanvases[e]?w.offscreenCanvases[e]:io(e)}function Ma(e,t){z(t);let r=t>>2,o=D[r+6],a={alpha:!!D[r+0],depth:!!D[r+1],stencil:!!D[r+2],antialias:!!D[r+3],premultipliedAlpha:!!D[r+4],preserveDrawingBuffer:!!D[r+5],powerPreference:Oo[o],failIfMajorPerformanceCaveat:!!D[r+7],majorVersion:D[r+8],minorVersion:D[r+9],enableExtensionsByDefault:D[r+10],explicitSwapControl:D[r+11],proxyContextToMainThread:D[r+12],renderViaOffscreenBackBuffer:D[r+13]},s=oo(e);if(!s)return 0;if(s.offscreenCanvas&&(s=s.offscreenCanvas),a.explicitSwapControl&&(s.transferControlToOffscreen||typeof OffscreenCanvas!="undefined"&&s instanceof OffscreenCanvas||a.renderViaOffscreenBackBuffer||(a.renderViaOffscreenBackBuffer=!0),s.transferControlToOffscreen)){if(!s.controlTransferredOffscreen)w.offscreenCanvases[s.id]={canvas:s.transferControlToOffscreen(),canvasSharedPtr:rn(12),id:s.id},s.controlTransferredOffscreen=!0;else if(!w.offscreenCanvases[s.id])return 0;s=w.offscreenCanvases[s.id]}return w.createContext(s,a)}function Fa(e,t){return Ma(e,t)}function To(){return w.currentContext?w.currentContext.handle:0}function ao(){return To()}n._emscripten_webgl_get_current_context=ao;function vo(e){return w.makeContextCurrent(e)?0:-5}n._emscripten_webgl_make_context_current=vo;function ka(e){w.currentContext==e&&(w.currentContext=0),w.deleteContext(e)}function Na(e,t){if(!t)return-5;if(e=w.contexts[e],!e)return-3;let r=e.GLctx;if(!r)return-3;r=r.getContextAttributes(),D[t>>2]=r.alpha,D[t+4>>2]=r.depth,D[t+8>>2]=r.stencil,D[t+12>>2]=r.antialias,D[t+16>>2]=r.premultipliedAlpha,D[t+20>>2]=r.preserveDrawingBuffer;let o=r.powerPreference&&Oo.indexOf(r.powerPreference);return D[t+24>>2]=o,D[t+28>>2]=r.failIfMajorPerformanceCaveat,D[t+32>>2]=e.version,D[t+36>>2]=0,D[t+40>>2]=e.attributes.enableExtensionsByDefault,0}function so(e){z(e);let t=e>>2;for(let r=0;r<14;++r)D[t+r]=0;D[t+0]=D[t+1]=D[t+3]=D[t+4]=D[t+8]=D[t+10]=1}let Ao={};function kn(){return mt||"./this.program"}function Nn(){if(!Nn.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`,_:kn()};for(var e in Ao)Ao[e]===void 0?delete r[e]:r[e]=Ao[e];let o=[];for(var e in r)o.push(`${e}=${r[e]}`);Nn.strings=o}return Nn.strings}function xa(e,t){let r=0;return Nn().forEach((o,a)=>{let s=t+r;D[e+a*4>>2]=s,Ur(o,s),r+=o.length+1}),0}function Ua(e,t){let r=Nn();D[e>>2]=r.length;let o=0;return r.forEach(a=>{o+=a.length+1}),D[t>>2]=o,0}function ja(e){try{let t=Me.getStreamFromFD(e);return l.close(t),0}catch(t){return(typeof l=="undefined"||!(t instanceof l.ErrnoError))&&_(t),t.errno}}function La(e,t,r,o){try{let a=Me.getStreamFromFD(e),s=Me.doReadv(a,t,r);return D[o>>2]=s,0}catch(a){return(typeof l=="undefined"||!(a instanceof l.ErrnoError))&&_(a),a.errno}}function Ha(e,t,r,o,a){try{let s=Me.getStreamFromFD(e),c=r*4294967296+(t>>>0),u=9007199254740992;return c<=-u||c>=u?-61:(l.llseek(s,c,o),Tt=[s.position>>>0,(ye=s.position,+Math.abs(ye)>=1?ye>0?(Math.min(+Math.floor(ye/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ye-+(~~ye>>>0))/4294967296)>>>0:0)],D[a>>2]=Tt[0],D[a+4>>2]=Tt[1],s.getdents&&c===0&&o===0&&(s.getdents=null),0)}catch(s){return(typeof l=="undefined"||!(s instanceof l.ErrnoError))&&_(s),s.errno}}function Ga(e,t,r,o){try{let a=Me.getStreamFromFD(e),s=Me.doWritev(a,t,r);return D[o>>2]=s,0}catch(a){return(typeof l=="undefined"||!(a instanceof l.ErrnoError))&&_(a),a.errno}}function gi(){return Gn()}function Ei(e,t){Ei.randomDevice||(Ei.randomDevice=gt());for(let r=0;r<t;r++)be[e+r>>0]=Ei.randomDevice();return 0}function Ya(e){S.activeTexture(e)}function Xa(e,t){S.attachShader(w.programs[e],w.shaders[t])}function Va(e,t,r){S.bindAttribLocation(w.programs[e],t,et(r))}function Wa(e,t){e==34962?S.currentArrayBufferBinding=t:e==34963&&(S.currentElementArrayBufferBinding=t),e==35051?S.currentPixelPackBufferBinding=t:e==35052&&(S.currentPixelUnpackBufferBinding=t),S.bindBuffer(e,w.buffers[t])}function za(e,t,r){S.bindBufferBase(e,t,w.buffers[r])}function $a(e,t){S.bindFramebuffer(e,t?w.framebuffers[t]:w.currentContext.defaultFbo)}function Ka(e,t){S.bindTexture(e,w.textures[t])}function Ja(e){S.bindVertexArray(w.vaos[e]);let t=S.getParameter(34965);S.currentElementArrayBufferBinding=t?t.name|0:0}function Za(e,t,r,o){w.currentContext.version>=2?r?S.bufferData(e,ve,o,r,t):S.bufferData(e,t,o):S.bufferData(e,r?ve.subarray(r,r+t):t,o)}function qa(e,t){return z(t===(t|0)),(e>>>0)+t*4294967296}function es(e,t,r,o){return S.clientWaitSync(w.syncs[e],t,qa(r,o))}function ts(e){S.compileShader(w.shaders[e])}function rs(){let e=w.getNewId(w.programs),t=S.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,w.programs[e]=t,e}function ns(e){let t=w.getNewId(w.shaders);return w.shaders[t]=S.createShader(e),t}function is(e,t){for(let r=0;r<e;r++){let o=D[t+r*4>>2],a=w.buffers[o];a&&(S.deleteBuffer(a),a.name=0,w.buffers[o]=null,o==S.currentArrayBufferBinding&&(S.currentArrayBufferBinding=0),o==S.currentElementArrayBufferBinding&&(S.currentElementArrayBufferBinding=0),o==S.currentPixelPackBufferBinding&&(S.currentPixelPackBufferBinding=0),o==S.currentPixelUnpackBufferBinding&&(S.currentPixelUnpackBufferBinding=0))}}function os(e,t){for(let r=0;r<e;++r){let o=D[t+r*4>>2],a=w.framebuffers[o];a&&(S.deleteFramebuffer(a),a.name=0,w.framebuffers[o]=null)}}function as(e){if(!e)return;let t=w.programs[e];if(!t){w.recordError(1281);return}S.deleteProgram(t),t.name=0,w.programs[e]=null}function ss(e){if(!e)return;let t=w.shaders[e];if(!t){w.recordError(1281);return}S.deleteShader(t),w.shaders[e]=null}function As(e){if(!e)return;let t=w.syncs[e];if(!t){w.recordError(1281);return}S.deleteSync(t),t.name=0,w.syncs[e]=null}function cs(e,t){for(let r=0;r<e;r++){let o=D[t+r*4>>2],a=w.textures[o];a&&(S.deleteTexture(a),a.name=0,w.textures[o]=null)}}function us(e,t){for(let r=0;r<e;r++){let o=D[t+r*4>>2];S.deleteVertexArray(w.vaos[o]),w.vaos[o]=null}}function ls(e){S.disable(e)}function ds(e){let t=w.currentContext.clientBuffers[e];t.enabled=!1,S.disableVertexAttribArray(e)}function Qo(e,t,r){w.preDrawHandleClientVertexAttribBindings(t+r),S.drawArrays(e,t,r),w.postDrawHandleClientVertexAttribBindings()}let Po=[];function fs(e,t){let r=Po[e];for(let o=0;o<e;o++)r[o]=D[t+o*4>>2];S.drawBuffers(r)}function gs(e){let t=w.currentContext.clientBuffers[e];t.enabled=!0,S.enableVertexAttribArray(e)}function Es(e,t){let r=S.fenceSync(e,t);if(r){let o=w.getNewId(w.syncs);return r.name=o,w.syncs[o]=r,o}return 0}function ps(){S.finish()}function _s(){S.flush()}function hs(e,t,r,o,a){S.framebufferTexture2D(e,t,r,w.textures[o],a)}function pi(e,t,r,o,a){S.framebufferTextureLayer(e,t,w.textures[r],o,a)}function _i(e,t,r,o){for(let a=0;a<e;a++){let s=S[r](),A=s&&w.getNewId(o);s?(s.name=A,o[A]=s):w.recordError(1282),D[t+a*4>>2]=A}}function Is(e,t){_i(e,t,"createBuffer",w.buffers)}function ms(e,t){_i(e,t,"createFramebuffer",w.framebuffers)}function Cs(e,t){_i(e,t,"createTexture",w.textures)}function ys(e,t){_i(e,t,"createVertexArray",w.vaos)}function ws(e,t){return S.getAttribLocation(w.programs[e],et(t))}function bs(){let e=S.getError()||w.lastError;return w.lastError=0,e}function Ds(e){return Qe[e>>2]+D[e+4>>2]*4294967296}function Bs(e){return Qe[e>>2]+Qe[e+4>>2]*4294967296}function Os(e,t){Qe[e>>2]=t,Qe[e+4>>2]=(t-Qe[e>>2])/4294967296;let r=t>=0?Bs(e):Ds(e);r!=t&&nt(`writeI53ToI64() out of range: serialized JS Number ${t} to Wasm heap as bytes lo=0x${Qe[e>>2].toString(16)}, hi=0x${Qe[e+4>>2].toString(16)}, which deserializes back to ${r} instead!`)}function Ts(e,t,r){if(!t){w.recordError(1281);return}let o;switch(e){case 36346:o=1;break;case 36344:r!=0&&r!=1&&w.recordError(1280);return;case 34814:case 36345:o=0;break;case 34466:var a=S.getParameter(34467);o=a?a.length:0;break;case 33309:if(w.currentContext.version<2){w.recordError(1282);return}var s=S.getSupportedExtensions()||[];o=2*s.length;break;case 33307:case 33308:if(w.currentContext.version<2){w.recordError(1280);return}o=e==33307?3:0;break}if(o===void 0){let A=S.getParameter(e);switch(typeof A){case"number":o=A;break;case"boolean":o=A?1:0;break;case"string":w.recordError(1280);return;case"object":if(A===null)switch(e){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:{o=0;break}default:{w.recordError(1280);return}}else if(A instanceof Float32Array||A instanceof Uint32Array||A instanceof Int32Array||A instanceof Array){for(let c=0;c<A.length;++c)switch(r){case 0:D[t+c*4>>2]=A[c];break;case 2:$e[t+c*4>>2]=A[c];break;case 4:be[t+c>>0]=A[c]?1:0;break}return}else try{o=A.name|0}catch(c){w.recordError(1280),_e(`GL_INVALID_ENUM in glGet${r}v: Unknown object returned from WebGL getParameter(${e})! (error: ${c})`);return}break;default:w.recordError(1280),_e(`GL_INVALID_ENUM in glGet${r}v: Native code calling glGet${r}v(${e}) and it returns ${A} of type ${typeof A}!`);return}}switch(r){case 1:Os(t,o);break;case 0:D[t>>2]=o;break;case 2:$e[t>>2]=o;break;case 4:be[t>>0]=o?1:0;break}}function hi(e,t){Ts(e,t,0)}function Ii(e){let t=Bt(e)+1,r=rn(t);return rr(e,r,t),r}function vs(e){let t=w.stringCache[e];if(!t){switch(e){case 7939:var r=S.getSupportedExtensions()||[];r=r.concat(r.map(u=>`GL_${u}`)),t=Ii(r.join(" "));break;case 7936:case 7937:case 37445:case 37446:var o=S.getParameter(e);o||w.recordError(1280),t=o&&Ii(o);break;case 7938:var a=S.getParameter(7938);w.currentContext.version>=2?a=`OpenGL ES 3.0 (${a})`:a=`OpenGL ES 2.0 (${a})`,t=Ii(a);break;case 35724:var s=S.getParameter(35724),A=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/,c=s.match(A);c!==null&&(c[1].length==3&&(c[1]=`${c[1]}0`),s=`OpenGL ES GLSL ES ${c[1]} (${s})`),t=Ii(s);break;default:w.recordError(1280)}w.stringCache[e]=t}return t}function Qs(e,t){return S.getUniformBlockIndex(w.programs[e],et(t))}function Ro(e){return parseInt(e)}function So(e){return e.slice(-1)=="]"&&e.lastIndexOf("[")}function Ps(e){let{uniformLocsById:t}=e,{uniformSizeAndIdsByName:r}=e,o,a;if(!t)for(e.uniformLocsById=t={},e.uniformArrayNamesById={},o=0;o<S.getProgramParameter(e,35718);++o){let s=S.getActiveUniform(e,o),A=s.name,c=s.size,u=So(A),d=u>0?A.slice(0,u):A,h=e.uniformIdCounter;for(e.uniformIdCounter+=c,r[d]=[c,h],a=0;a<c;++a)t[h]=a,e.uniformArrayNamesById[h++]=d}}function Rs(e,t){if(t=et(t),e=w.programs[e]){Ps(e);let{uniformLocsById:r}=e,o=0,a=t,s=So(t);s>0&&(o=Ro(t.slice(s+1))>>>0,a=t.slice(0,s));let A=e.uniformSizeAndIdsByName[a];if(A&&o<A[0]&&(o+=A[1],r[o]=r[o]||S.getUniformLocation(e,t)))return o}else w.recordError(1281);return-1}function Ss(e){e=w.programs[e],S.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}}function Ms(e,t){e==3317&&(w.unpackAlignment=t),S.pixelStorei(e,t)}function Fs(e,t,r,o){function a(c,u){return c+u-1&-u}let s=e*r,A=a(s,o);return t*A}function xn(e){return{5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[e-6402]||1}function pr(e){return e-=5120,e==0?be:e==1?ve:e==2?T:e==4?D:e==6?$e:e==5||e==28922||e==28520||e==30779||e==30782?Qe:De}function Zr(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function co(e,t,r,o,a,s){let A=pr(e),c=Zr(A),u=1<<c,d=xn(t)*u,h=Fs(r,o,d,w.unpackAlignment);return A.subarray(a>>c,a+h>>c)}function ks(e,t,r,o,a,s,A){if(w.currentContext.version>=2){if(S.currentPixelPackBufferBinding)S.readPixels(e,t,r,o,a,s,A);else{let u=pr(s);S.readPixels(e,t,r,o,a,s,u,A>>Zr(u))}return}let c=co(s,a,r,o,A,a);if(!c){w.recordError(1280);return}S.readPixels(e,t,r,o,a,s,c)}function Ns(e,t,r,o){let a=w.getSource(e,t,r,o);S.shaderSource(w.shaders[e],a)}function xs(e,t,r,o,a,s,A,c,u){if(w.currentContext.version>=2){if(S.currentPixelUnpackBufferBinding)S.texImage2D(e,t,r,o,a,s,A,c,u);else if(u){let d=pr(c);S.texImage2D(e,t,r,o,a,s,A,c,d,u>>Zr(d))}else S.texImage2D(e,t,r,o,a,s,A,c,null);return}S.texImage2D(e,t,r,o,a,s,A,c,u?co(c,A,o,a,u,r):null)}function Us(e,t,r){let o=$e[r>>2];S.texParameterf(e,t,o)}function js(e,t,r){S.texParameteri(e,t,r)}function Ls(e,t,r,o,a){S.texStorage2D(e,t,r,o,a)}function Hs(e,t,r,o,a,s){S.texStorage3D(e,t,r,o,a,s)}function Gs(e,t,r,o,a,s,A,c,u){if(w.currentContext.version>=2){if(S.currentPixelUnpackBufferBinding)S.texSubImage2D(e,t,r,o,a,s,A,c,u);else if(u){let h=pr(c);S.texSubImage2D(e,t,r,o,a,s,A,c,h,u>>Zr(h))}else S.texSubImage2D(e,t,r,o,a,s,A,c,null);return}let d=null;u&&(d=co(c,A,a,s,u,0)),S.texSubImage2D(e,t,r,o,a,s,A,c,d)}function qt(e,t,r,o,a,s,A,c,u,d,h){if(S.currentPixelUnpackBufferBinding)S.texSubImage3D(e,t,r,o,a,s,A,c,u,d,h);else if(h){let I=pr(d);S.texSubImage3D(e,t,r,o,a,s,A,c,u,d,I,h>>Zr(I))}else S.texSubImage3D(e,t,r,o,a,s,A,c,u,d,null)}function er(e){let t=S.currentProgram;if(t){let r=t.uniformLocsById[e];return typeof r=="number"&&(t.uniformLocsById[e]=r=S.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?`[${r}]`:""))),r}w.recordError(1282)}function Ys(e,t){S.uniform1f(er(e),t)}function mi(e,t){S.uniform1i(er(e),t)}let Ci=[];function Xs(e,t,r){if(w.currentContext.version>=2){S.uniform2fv(er(e),$e,r>>2,t*2);return}if(t<=144){var o=Ci[2*t-1];for(let a=0;a<2*t;a+=2)o[a]=$e[r+4*a>>2],o[a+1]=$e[r+(4*a+4)>>2]}else var o=$e.subarray(r>>2,r+t*8>>2);S.uniform2fv(er(e),o)}function Mo(e,t,r){if(w.currentContext.version>=2){S.uniform4fv(er(e),$e,r>>2,t*4);return}if(t<=72){var o=Ci[4*t-1];let a=$e;r>>=2;for(let s=0;s<4*t;s+=4){let A=r+s;o[s]=a[A],o[s+1]=a[A+1],o[s+2]=a[A+2],o[s+3]=a[A+3]}}else var o=$e.subarray(r>>2,r+t*16>>2);S.uniform4fv(er(e),o)}let Fo=[];function Vs(e,t,r){if(w.currentContext.version>=2){S.uniform4iv(er(e),D,r>>2,t*4);return}if(t<=72){var o=Fo[4*t-1];for(let a=0;a<4*t;a+=4)o[a]=D[r+4*a>>2],o[a+1]=D[r+(4*a+4)>>2],o[a+2]=D[r+(4*a+8)>>2],o[a+3]=D[r+(4*a+12)>>2]}else var o=D.subarray(r>>2,r+t*16>>2);S.uniform4iv(er(e),o)}function Ws(e,t,r){e=w.programs[e],S.uniformBlockBinding(e,t,r)}function zs(e,t,r,o){if(w.currentContext.version>=2){S.uniformMatrix4fv(er(e),!!r,$e,o>>2,t*16);return}if(t<=18){var a=Ci[16*t-1];let s=$e;o>>=2;for(let A=0;A<16*t;A+=16){let c=o+A;a[A]=s[c],a[A+1]=s[c+1],a[A+2]=s[c+2],a[A+3]=s[c+3],a[A+4]=s[c+4],a[A+5]=s[c+5],a[A+6]=s[c+6],a[A+7]=s[c+7],a[A+8]=s[c+8],a[A+9]=s[c+9],a[A+10]=s[c+10],a[A+11]=s[c+11],a[A+12]=s[c+12],a[A+13]=s[c+13],a[A+14]=s[c+14],a[A+15]=s[c+15]}}else var a=$e.subarray(o>>2,o+t*64>>2);S.uniformMatrix4fv(er(e),!!r,a)}function $s(e){e=w.programs[e],S.useProgram(e),S.currentProgram=e}function Ks(e,t,r,o,a,s){let A=w.currentContext.clientBuffers[e];if(!S.currentArrayBufferBinding){A.size=t,A.type=r,A.normalized=o,A.stride=a,A.ptr=s,A.clientside=!0,A.vertexAttribPointerAdaptor=function(c,u,d,h,I,m){this.vertexAttribPointer(c,u,d,h,I,m)};return}A.clientside=!1,S.vertexAttribPointer(e,t,r,!!o,a,s)}function yi(e,t,r,o){S.viewport(e,t,r,o)}function wi(e,t){let r=new Date(D[e>>2]*1e3);D[t>>2]=r.getUTCSeconds(),D[t+4>>2]=r.getUTCMinutes(),D[t+8>>2]=r.getUTCHours(),D[t+12>>2]=r.getUTCDate(),D[t+16>>2]=r.getUTCMonth(),D[t+20>>2]=r.getUTCFullYear()-1900,D[t+24>>2]=r.getUTCDay(),D[t+36>>2]=0,D[t+32>>2]=0;let o=Date.UTC(r.getUTCFullYear(),0,1,0,0,0,0),a=(r.getTime()-o)/(1e3*60*60*24)|0;return D[t+28>>2]=a,wi.GMTString||(wi.GMTString=yn("GMT")),D[t+40>>2]=wi.GMTString,t}function bi(e){return e}function Di(){if(Di.called)return;Di.called=!0;let e=new Date().getFullYear(),t=new Date(e,0,1),r=new Date(e,6,1),o=t.getTimezoneOffset(),a=r.getTimezoneOffset(),s=Math.max(o,a);D[ne()>>2]=s*60,D[nA()>>2]=+(o!=a);function A(I){let m=I.toTimeString().match(/\(([A-Za-z ]+)\)$/);return m?m[1]:"GMT"}let c=A(t),u=A(r),d=yn(c),h=yn(u);a<o?(D[Ln()>>2]=d,D[Ln()+4>>2]=h):(D[Ln()>>2]=h,D[Ln()+4>>2]=d)}function Js(e,t){Di();let r=new Date(D[e>>2]*1e3);D[t>>2]=r.getSeconds(),D[t+4>>2]=r.getMinutes(),D[t+8>>2]=r.getHours(),D[t+12>>2]=r.getDate(),D[t+16>>2]=r.getMonth(),D[t+20>>2]=r.getFullYear()-1900,D[t+24>>2]=r.getDay();let o=new Date(r.getFullYear(),0,1),a=(r.getTime()-o.getTime())/(1e3*60*60*24)|0;D[t+28>>2]=a,D[t+36>>2]=-(r.getTimezoneOffset()*60);let s=new Date(r.getFullYear(),6,1).getTimezoneOffset(),A=o.getTimezoneOffset(),c=(s!=A&&r.getTimezoneOffset()==Math.min(A,s))|0;D[t+32>>2]=c;let u=D[Ln()+(c?4:0)>>2];return D[t+40>>2]=u,t}function Zs(e){Di();let t=new Date(D[e+20>>2]+1900,D[e+16>>2],D[e+12>>2],D[e+8>>2],D[e+4>>2],D[e>>2],0),r=D[e+32>>2],o=t.getTimezoneOffset(),a=new Date(t.getFullYear(),0,1),s=new Date(t.getFullYear(),6,1).getTimezoneOffset(),A=a.getTimezoneOffset(),c=Math.min(A,s);if(r<0)D[e+32>>2]=+(s!=A&&c==o);else if(r>0!=(c==o)){let d=Math.max(A,s),h=r>0?c:d;t.setTime(t.getTime()+(h-o)*6e4)}D[e+24>>2]=t.getDay();let u=(t.getTime()-a.getTime())/(1e3*60*60*24)|0;return D[e+28>>2]=u,D[e>>2]=t.getSeconds(),D[e+4>>2]=t.getMinutes(),D[e+8>>2]=t.getHours(),D[e+12>>2]=t.getDate(),D[e+16>>2]=t.getMonth(),t.getTime()/1e3|0}function qs(e){i(e)}function Bi(e){Ee(e)}function _n(e){return e%4===0&&(e%100!==0||e%400===0)}function hn(e,t){let r=0;for(let o=0;o<=t;r+=e[o++]);return r}let qr=[31,29,31,30,31,30,31,31,30,31,30,31],en=[31,28,31,30,31,30,31,31,30,31,30,31];function Un(e,t){let r=new Date(e.getTime());for(;t>0;){let o=_n(r.getFullYear()),a=r.getMonth(),s=(o?qr:en)[a];if(t>s-r.getDate())t-=s-r.getDate()+1,r.setDate(1),a<11?r.setMonth(a+1):(r.setMonth(0),r.setFullYear(r.getFullYear()+1));else return r.setDate(r.getDate()+t),r}return r}function ko(e,t,r,o){let a=D[o+40>>2],s={tm_sec:D[o>>2],tm_min:D[o+4>>2],tm_hour:D[o+8>>2],tm_mday:D[o+12>>2],tm_mon:D[o+16>>2],tm_year:D[o+20>>2],tm_wday:D[o+24>>2],tm_yday:D[o+28>>2],tm_isdst:D[o+32>>2],tm_gmtoff:D[o+36>>2],tm_zone:a?et(a):""},A=et(r),c={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var u in c)A=A.replace(new RegExp(u,"g"),c[u]);let d=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],h=["January","February","March","April","May","June","July","August","September","October","November","December"];function I(b,N,$){let Y=typeof b=="number"?b.toString():b||"";for(;Y.length<N;)Y=$[0]+Y;return Y}function m(b,N){return I(b,N,"0")}function y(b,N){function $(Ce){return Ce<0?-1:Ce>0?1:0}let Y;return(Y=$(b.getFullYear()-N.getFullYear()))===0&&(Y=$(b.getMonth()-N.getMonth()))===0&&(Y=$(b.getDate()-N.getDate())),Y}function v(b){switch(b.getDay()){case 0:return new Date(b.getFullYear()-1,11,29);case 1:return b;case 2:return new Date(b.getFullYear(),0,3);case 3:return new Date(b.getFullYear(),0,2);case 4:return new Date(b.getFullYear(),0,1);case 5:return new Date(b.getFullYear()-1,11,31);case 6:return new Date(b.getFullYear()-1,11,30)}}function x(b){let N=Un(new Date(b.tm_year+1900,0,1),b.tm_yday),$=new Date(N.getFullYear(),0,4),Y=new Date(N.getFullYear()+1,0,4),Ce=v($),ke=v(Y);return y(Ce,N)<=0?y(ke,N)<=0?N.getFullYear()+1:N.getFullYear():N.getFullYear()-1}let G={"%a"(b){return d[b.tm_wday].substring(0,3)},"%A"(b){return d[b.tm_wday]},"%b"(b){return h[b.tm_mon].substring(0,3)},"%B"(b){return h[b.tm_mon]},"%C"(b){let N=b.tm_year+1900;return m(N/100|0,2)},"%d"(b){return m(b.tm_mday,2)},"%e"(b){return I(b.tm_mday,2," ")},"%g"(b){return x(b).toString().substring(2)},"%G"(b){return x(b)},"%H"(b){return m(b.tm_hour,2)},"%I"(b){let N=b.tm_hour;return N==0?N=12:N>12&&(N-=12),m(N,2)},"%j"(b){return m(b.tm_mday+hn(_n(b.tm_year+1900)?qr:en,b.tm_mon-1),3)},"%m"(b){return m(b.tm_mon+1,2)},"%M"(b){return m(b.tm_min,2)},"%n"(){return`
30
- `},"%p"(b){return b.tm_hour>=0&&b.tm_hour<12?"AM":"PM"},"%S"(b){return m(b.tm_sec,2)},"%t"(){return" "},"%u"(b){return b.tm_wday||7},"%U"(b){let N=new Date(b.tm_year+1900,0,1),$=N.getDay()===0?N:Un(N,7-N.getDay()),Y=new Date(b.tm_year+1900,b.tm_mon,b.tm_mday);if(y($,Y)<0){let Ce=hn(_n(Y.getFullYear())?qr:en,Y.getMonth()-1)-31,hr=31-$.getDate()+Ce+Y.getDate();return m(Math.ceil(hr/7),2)}return y($,N)===0?"01":"00"},"%V"(b){let N=new Date(b.tm_year+1900,0,4),$=new Date(b.tm_year+1901,0,4),Y=v(N),Ce=v($),ke=Un(new Date(b.tm_year+1900,0,1),b.tm_yday);if(y(ke,Y)<0)return"53";if(y(Ce,ke)<=0)return"01";let hr;return Y.getFullYear()<b.tm_year+1900?hr=b.tm_yday+32-Y.getDate():hr=b.tm_yday+1-Y.getDate(),m(Math.ceil(hr/7),2)},"%w"(b){return b.tm_wday},"%W"(b){let N=new Date(b.tm_year,0,1),$=N.getDay()===1?N:Un(N,N.getDay()===0?1:7-N.getDay()+1),Y=new Date(b.tm_year+1900,b.tm_mon,b.tm_mday);if(y($,Y)<0){let Ce=hn(_n(Y.getFullYear())?qr:en,Y.getMonth()-1)-31,hr=31-$.getDate()+Ce+Y.getDate();return m(Math.ceil(hr/7),2)}return y($,N)===0?"01":"00"},"%y"(b){return(b.tm_year+1900).toString().substring(2)},"%Y"(b){return b.tm_year+1900},"%z"(b){let N=b.tm_gmtoff,$=N>=0;return N=Math.abs(N)/60,N=N/60*100+N%60,($?"+":"-")+`0000${N}`.slice(-4)},"%Z"(b){return b.tm_zone},"%%"(){return"%"}};for(var u in G)A.includes(u)&&(A=A.replace(new RegExp(u,"g"),G[u](s)));let R=Oi(A,!1);return R.length>t?0:(Vn(R,e),R.length-1)}function No(e,t,r,o){return ko(e,t,r,o)}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,o){Q.setCanvasSize(t,r,o)},n.pauseMainLoop=function(){Q.mainLoop.pause()},n.resumeMainLoop=function(){Q.mainLoop.resume()},n.getUserMedia=function(){Q.getUserMedia()},n.createContext=function(t,r,o,a){return Q.createContext(t,r,o,a)};let jn=function(e,t,r,o){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=l.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=o},tn=365,M=146;Object.defineProperties(jn.prototype,{read:{get(){return(this.mode&tn)===tn},set(e){e?this.mode|=tn:this.mode&=~tn}},write:{get(){return(this.mode&M)===M},set(e){e?this.mode|=M:this.mode&=~M}},isFolder:{get(){return l.isDir(this.mode)}},isDevice:{get(){return l.isChrdev(this.mode)}}}),l.FSNode=jn,l.staticInit(),n.FS_createPath=l.createPath,n.FS_createDataFile=l.createDataFile,n.FS_createPreloadedFile=l.createPreloadedFile,n.FS_createLazyFile=l.createLazyFile,n.FS_createDevice=l.createDevice,n.FS_unlink=l.unlink,ln(),ti=n.PureVirtualError=Vr(Error,"PureVirtualError"),ri(),xt(),ae=n.BindingError=Vr(Error,"BindingError"),E=n.InternalError=Vr(Error,"InternalError"),Ye(),gr(),Rr=n.UnboundTypeError=Vr(Error,"UnboundTypeError");let S;for(var Dt=0;Dt<32;++Dt)Po.push(new Array(Dt));let eA=new Float32Array(288);for(var Dt=0;Dt<288;++Dt)Ci[Dt]=eA.subarray(0,Dt+1);let Ac=new Int32Array(288);for(var Dt=0;Dt<288;++Dt)Fo[Dt]=Ac.subarray(0,Dt+1);let uo=!0;function Oi(e,t,r){let o=r>0?r:Bt(e)+1,a=new Array(o),s=tt(e,a,0,a.length);return t&&(a.length=s),a}let cc=typeof atob=="function"?atob:function(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",r="",o,a,s,A,c,u,d,h=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");do A=t.indexOf(e.charAt(h++)),c=t.indexOf(e.charAt(h++)),u=t.indexOf(e.charAt(h++)),d=t.indexOf(e.charAt(h++)),o=A<<2|c>>4,a=(c&15)<<4|u>>2,s=(u&3)<<6|d,r=r+String.fromCharCode(o),u!==64&&(r=r+String.fromCharCode(a)),d!==64&&(r=r+String.fromCharCode(s));while(h<e.length);return r};function tA(e){if(typeof Ct=="boolean"&&Ct){let t=Buffer.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}try{let t=cc(e),r=new Uint8Array(t.length);for(let o=0;o<t.length;++o)r[o]=t.charCodeAt(o);return r}catch(t){throw new Error("Converting base64 string to bytes failed.")}}var rA={HaveOffsetConverter:Dr,__cxa_allocate_exception:_o,__cxa_atexit:Or,__cxa_begin_catch:$t,__cxa_end_catch:$n,__cxa_find_matching_catch_2:Hi,__cxa_find_matching_catch_3:Kn,__cxa_free_exception:Tr,__cxa_rethrow:Gi,__cxa_thread_atexit:Yi,__cxa_throw:Jn,__resumeException:Pn,__sys_fcntl64:Wi,__sys_ioctl:zi,__sys_mmap2:Ki,__sys_open:Ji,__sys_stat64:qn,_embind_create_inheriting_constructor:pt,_embind_finalize_value_object:O,_embind_register_bigint:F,_embind_register_bool:j,_embind_register_class:Co,_embind_register_class_class_function:$o,_embind_register_class_constructor:Ko,_embind_register_class_function:yo,_embind_register_class_property:bo,_embind_register_emval:En,_embind_register_float:Zo,_embind_register_function:qo,_embind_register_integer:ta,_embind_register_memory_view:ra,_embind_register_std_string:na,_embind_register_std_wstring:ia,_embind_register_value_object:oa,_embind_register_value_object_field:aa,_embind_register_void:sa,_emval_call_void_method:ca,_emval_decref:Do,_emval_get_method_caller:da,_emval_incref:fa,_emval_take_value:ga,abort:Ea,clock_gettime:_a,dlopen:ha,dlsym:li,emscripten_asm_const_int:ma,emscripten_get_heap_max:Ca,emscripten_memcpy_big:ya,emscripten_pc_get_function:wa,emscripten_resize_heap:fi,emscripten_stack_snapshot:Da,emscripten_stack_unwind_buffer:Ba,emscripten_thread_sleep:Oa,emscripten_webgl_create_context:Fa,emscripten_webgl_destroy_context:ka,emscripten_webgl_get_context_attributes:Na,emscripten_webgl_get_current_context:ao,emscripten_webgl_init_context_attributes:so,emscripten_webgl_make_context_current:vo,environ_get:xa,environ_sizes_get:Ua,exit:Wn,fd_close:ja,fd_read:La,fd_seek:Ha,fd_write:Ga,getTempRet0:gi,getentropy:Ei,glActiveTexture:Ya,glAttachShader:Xa,glBindAttribLocation:Va,glBindBuffer:Wa,glBindBufferBase:za,glBindFramebuffer:$a,glBindTexture:Ka,glBindVertexArray:Ja,glBufferData:Za,glClientWaitSync:es,glCompileShader:ts,glCreateProgram:rs,glCreateShader:ns,glDeleteBuffers:is,glDeleteFramebuffers:os,glDeleteProgram:as,glDeleteShader:ss,glDeleteSync:As,glDeleteTextures:cs,glDeleteVertexArrays:us,glDisable:ls,glDisableVertexAttribArray:ds,glDrawArrays:Qo,glDrawBuffers:fs,glEnableVertexAttribArray:gs,glFenceSync:Es,glFinish:ps,glFlush:_s,glFramebufferTexture2D:hs,glFramebufferTextureLayer:pi,glGenBuffers:Is,glGenFramebuffers:ms,glGenTextures:Cs,glGenVertexArrays:ys,glGetAttribLocation:ws,glGetError:bs,glGetIntegerv:hi,glGetString:vs,glGetUniformBlockIndex:Qs,glGetUniformLocation:Rs,glLinkProgram:Ss,glPixelStorei:Ms,glReadPixels:ks,glShaderSource:Ns,glTexImage2D:xs,glTexParameterfv:Us,glTexParameteri:js,glTexStorage2D:Ls,glTexStorage3D:Hs,glTexSubImage2D:Gs,glTexSubImage3D:qt,glUniform1f:Ys,glUniform1i:mi,glUniform2fv:Xs,glUniform4fv:Mo,glUniform4iv:Vs,glUniformBlockBinding:Ws,glUniformMatrix4fv:zs,glUseProgram:$s,glVertexAttribPointer:Ks,glViewport:yi,gmtime_r:wi,invoke_diii:BA,invoke_i:PA,invoke_ii:fA,invoke_iii:sA,invoke_iiii:OA,invoke_iiiii:mA,invoke_iiiiii:wA,invoke_iiiiiii:cA,invoke_iiiiiiiddi:ZA,invoke_iiiiiiii:DA,invoke_iiiiiiiii:FA,invoke_v:uA,invoke_vdiii:Ti,invoke_vi:aA,invoke_vididdii:WA,invoke_vidii:$A,invoke_vii:dA,invoke_viid:oA,invoke_viidi:tc,invoke_viididii:MA,invoke_viii:gA,invoke_viiid:zA,invoke_viiidd:yA,invoke_viiiddi:QA,invoke_viiidi:RA,invoke_viiii:IA,invoke_viiiid:qA,invoke_viiiidi:SA,invoke_viiiidid:ec,invoke_viiiidiidiiiiiii:VA,invoke_viiiifiifiiiiiii:XA,invoke_viiiii:AA,invoke_viiiiid:xA,invoke_viiiiif:HA,invoke_viiiiii:EA,invoke_viiiiiid:UA,invoke_viiiiiif:GA,invoke_viiiiiii:pA,invoke_viiiiiiiddi:JA,invoke_viiiiiiidiiii:LA,invoke_viiiiiiifiiii:YA,invoke_viiiiiiii:_A,invoke_viiiiiiiidd:NA,invoke_viiiiiiiidf:kA,invoke_viiiiiiiii:hA,invoke_viiiiiiiiidd:TA,invoke_viiiiiiiiiddi:vA,invoke_viiiiiiiiii:lA,invoke_viiiiiiiiiiddi:KA,invoke_viiiiiiiiiii:CA,invoke_viiiiiiiiiiii:jA,invoke_viiiiiiiiiiiii:bA,llvm_eh_typeid_for:bi,localtime_r:Js,mktime:Zs,proc_exit:qs,setTempRet0:Bi,strftime:ko,strftime_l:No};let Jc=Ve(),_r=n.___wasm_call_ctors=ce("__wasm_call_ctors");var at=n._free=ce("free"),rn=n._malloc=ce("malloc"),uc=n.___errno_location=ce("__errno_location");let lc=n._fflush=ce("fflush");var dc=n.___getTypeName=ce("__getTypeName");let Zc=n.___embind_register_native_and_builtin_types=ce("__embind_register_native_and_builtin_types"),xo=n._emscripten_main_thread_process_queued_calls=ce("emscripten_main_thread_process_queued_calls");var nn=n._emscripten_stack_get_end=function(){return(nn=n._emscripten_stack_get_end=n.asm.emscripten_stack_get_end).apply(null,arguments)},Ln=n.__get_tzname=ce("_get_tzname"),nA=n.__get_daylight=ce("_get_daylight"),ne=n.__get_timezone=ce("_get_timezone"),L=n.stackSave=ce("stackSave"),te=n.stackRestore=ce("stackRestore"),lo=n.stackAlloc=ce("stackAlloc"),Uo=n._emscripten_stack_init=function(){return(Uo=n._emscripten_stack_init=n.asm.emscripten_stack_init).apply(null,arguments)},fc=n._emscripten_stack_get_free=function(){return(fc=n._emscripten_stack_get_free=n.asm.emscripten_stack_get_free).apply(null,arguments)};let oe=n._saveSetjmp=ce("saveSetjmp");var re=n._setThrew=ce("setThrew"),jo=n.___cxa_can_catch=ce("__cxa_can_catch"),iA=n.___cxa_is_pointer_type=ce("__cxa_is_pointer_type"),gc=n._memalign=ce("memalign");let qc=n._emscripten_builtin_malloc=ce("emscripten_builtin_malloc"),eu=n._emscripten_builtin_free=ce("emscripten_builtin_free"),tu=n._emscripten_builtin_memalign=ce("emscripten_builtin_memalign"),ru=n.dynCall_jii=ce("dynCall_jii"),nu=n.dynCall_viji=ce("dynCall_viji"),iu=n.dynCall_jjj=ce("dynCall_jjj"),ou=n.dynCall_iiiijj=ce("dynCall_iiiijj"),au=n.dynCall_viijj=ce("dynCall_viijj"),su=n.dynCall_viiijjjj=ce("dynCall_viiijjjj"),Au=n.dynCall_ji=ce("dynCall_ji"),cu=n.dynCall_vij=ce("dynCall_vij"),uu=n.dynCall_viijii=ce("dynCall_viijii"),lu=n.dynCall_vj=ce("dynCall_vj"),du=n.dynCall_viij=ce("dynCall_viij"),fu=n.dynCall_viiiiij=ce("dynCall_viiiiij"),gu=n.dynCall_iijjiiii=ce("dynCall_iijjiiii"),Eu=n.dynCall_jiji=ce("dynCall_jiji"),pu=n.dynCall_iiiiij=ce("dynCall_iiiiij"),_u=n.dynCall_iiiiijj=ce("dynCall_iiiiijj"),Ec=n.dynCall_iiiiiijj=ce("dynCall_iiiiiijj");function oA(e,t,r,o){let a=L();try{W.get(e)(t,r,o)}catch(s){if(te(a),s!==s+0&&s!=="longjmp")throw s;re(1,0)}}function aA(e,t){let r=L();try{W.get(e)(t)}catch(o){if(te(r),o!==o+0&&o!=="longjmp")throw o;re(1,0)}}function sA(e,t,r){let o=L();try{return W.get(e)(t,r)}catch(a){if(te(o),a!==a+0&&a!=="longjmp")throw a;re(1,0)}}function AA(e,t,r,o,a,s){let A=L();try{W.get(e)(t,r,o,a,s)}catch(c){if(te(A),c!==c+0&&c!=="longjmp")throw c;re(1,0)}}function cA(e,t,r,o,a,s,A){let c=L();try{return W.get(e)(t,r,o,a,s,A)}catch(u){if(te(c),u!==u+0&&u!=="longjmp")throw u;re(1,0)}}function uA(e){let t=L();try{W.get(e)()}catch(r){if(te(t),r!==r+0&&r!=="longjmp")throw r;re(1,0)}}function lA(e,t,r,o,a,s,A,c,u,d,h){let I=L();try{W.get(e)(t,r,o,a,s,A,c,u,d,h)}catch(m){if(te(I),m!==m+0&&m!=="longjmp")throw m;re(1,0)}}function dA(e,t,r){let o=L();try{W.get(e)(t,r)}catch(a){if(te(o),a!==a+0&&a!=="longjmp")throw a;re(1,0)}}function fA(e,t){let r=L();try{return W.get(e)(t)}catch(o){if(te(r),o!==o+0&&o!=="longjmp")throw o;re(1,0)}}function gA(e,t,r,o){let a=L();try{W.get(e)(t,r,o)}catch(s){if(te(a),s!==s+0&&s!=="longjmp")throw s;re(1,0)}}function EA(e,t,r,o,a,s,A){let c=L();try{W.get(e)(t,r,o,a,s,A)}catch(u){if(te(c),u!==u+0&&u!=="longjmp")throw u;re(1,0)}}function pA(e,t,r,o,a,s,A,c){let u=L();try{W.get(e)(t,r,o,a,s,A,c)}catch(d){if(te(u),d!==d+0&&d!=="longjmp")throw d;re(1,0)}}function _A(e,t,r,o,a,s,A,c,u){let d=L();try{W.get(e)(t,r,o,a,s,A,c,u)}catch(h){if(te(d),h!==h+0&&h!=="longjmp")throw h;re(1,0)}}function hA(e,t,r,o,a,s,A,c,u,d){let h=L();try{W.get(e)(t,r,o,a,s,A,c,u,d)}catch(I){if(te(h),I!==I+0&&I!=="longjmp")throw I;re(1,0)}}function IA(e,t,r,o,a){let s=L();try{W.get(e)(t,r,o,a)}catch(A){if(te(s),A!==A+0&&A!=="longjmp")throw A;re(1,0)}}function mA(e,t,r,o,a){let s=L();try{return W.get(e)(t,r,o,a)}catch(A){if(te(s),A!==A+0&&A!=="longjmp")throw A;re(1,0)}}function CA(e,t,r,o,a,s,A,c,u,d,h,I){let m=L();try{W.get(e)(t,r,o,a,s,A,c,u,d,h,I)}catch(y){if(te(m),y!==y+0&&y!=="longjmp")throw y;re(1,0)}}function yA(e,t,r,o,a,s){let A=L();try{W.get(e)(t,r,o,a,s)}catch(c){if(te(A),c!==c+0&&c!=="longjmp")throw c;re(1,0)}}function wA(e,t,r,o,a,s){let A=L();try{return W.get(e)(t,r,o,a,s)}catch(c){if(te(A),c!==c+0&&c!=="longjmp")throw c;re(1,0)}}function bA(e,t,r,o,a,s,A,c,u,d,h,I,m,y){let v=L();try{W.get(e)(t,r,o,a,s,A,c,u,d,h,I,m,y)}catch(x){if(te(v),x!==x+0&&x!=="longjmp")throw x;re(1,0)}}function DA(e,t,r,o,a,s,A,c){let u=L();try{return W.get(e)(t,r,o,a,s,A,c)}catch(d){if(te(u),d!==d+0&&d!=="longjmp")throw d;re(1,0)}}function BA(e,t,r,o){let a=L();try{return W.get(e)(t,r,o)}catch(s){if(te(a),s!==s+0&&s!=="longjmp")throw s;re(1,0)}}function OA(e,t,r,o){let a=L();try{return W.get(e)(t,r,o)}catch(s){if(te(a),s!==s+0&&s!=="longjmp")throw s;re(1,0)}}function TA(e,t,r,o,a,s,A,c,u,d,h,I){let m=L();try{W.get(e)(t,r,o,a,s,A,c,u,d,h,I)}catch(y){if(te(m),y!==y+0&&y!=="longjmp")throw y;re(1,0)}}function vA(e,t,r,o,a,s,A,c,u,d,h,I,m){let y=L();try{W.get(e)(t,r,o,a,s,A,c,u,d,h,I,m)}catch(v){if(te(y),v!==v+0&&v!=="longjmp")throw v;re(1,0)}}function QA(e,t,r,o,a,s,A){let c=L();try{W.get(e)(t,r,o,a,s,A)}catch(u){if(te(c),u!==u+0&&u!=="longjmp")throw u;re(1,0)}}function PA(e){let t=L();try{return W.get(e)()}catch(r){if(te(t),r!==r+0&&r!=="longjmp")throw r;re(1,0)}}function RA(e,t,r,o,a,s){let A=L();try{W.get(e)(t,r,o,a,s)}catch(c){if(te(A),c!==c+0&&c!=="longjmp")throw c;re(1,0)}}function SA(e,t,r,o,a,s,A){let c=L();try{W.get(e)(t,r,o,a,s,A)}catch(u){if(te(c),u!==u+0&&u!=="longjmp")throw u;re(1,0)}}function MA(e,t,r,o,a,s,A,c){let u=L();try{W.get(e)(t,r,o,a,s,A,c)}catch(d){if(te(u),d!==d+0&&d!=="longjmp")throw d;re(1,0)}}function FA(e,t,r,o,a,s,A,c,u){let d=L();try{return W.get(e)(t,r,o,a,s,A,c,u)}catch(h){if(te(d),h!==h+0&&h!=="longjmp")throw h;re(1,0)}}function kA(e,t,r,o,a,s,A,c,u,d,h){let I=L();try{W.get(e)(t,r,o,a,s,A,c,u,d,h)}catch(m){if(te(I),m!==m+0&&m!=="longjmp")throw m;re(1,0)}}function NA(e,t,r,o,a,s,A,c,u,d,h){let I=L();try{W.get(e)(t,r,o,a,s,A,c,u,d,h)}catch(m){if(te(I),m!==m+0&&m!=="longjmp")throw m;re(1,0)}}function xA(e,t,r,o,a,s,A){let c=L();try{W.get(e)(t,r,o,a,s,A)}catch(u){if(te(c),u!==u+0&&u!=="longjmp")throw u;re(1,0)}}function UA(e,t,r,o,a,s,A,c){let u=L();try{W.get(e)(t,r,o,a,s,A,c)}catch(d){if(te(u),d!==d+0&&d!=="longjmp")throw d;re(1,0)}}function jA(e,t,r,o,a,s,A,c,u,d,h,I,m){let y=L();try{W.get(e)(t,r,o,a,s,A,c,u,d,h,I,m)}catch(v){if(te(y),v!==v+0&&v!=="longjmp")throw v;re(1,0)}}function LA(e,t,r,o,a,s,A,c,u,d,h,I,m){let y=L();try{W.get(e)(t,r,o,a,s,A,c,u,d,h,I,m)}catch(v){if(te(y),v!==v+0&&v!=="longjmp")throw v;re(1,0)}}function HA(e,t,r,o,a,s,A){let c=L();try{W.get(e)(t,r,o,a,s,A)}catch(u){if(te(c),u!==u+0&&u!=="longjmp")throw u;re(1,0)}}function GA(e,t,r,o,a,s,A,c){let u=L();try{W.get(e)(t,r,o,a,s,A,c)}catch(d){if(te(u),d!==d+0&&d!=="longjmp")throw d;re(1,0)}}function YA(e,t,r,o,a,s,A,c,u,d,h,I,m){let y=L();try{W.get(e)(t,r,o,a,s,A,c,u,d,h,I,m)}catch(v){if(te(y),v!==v+0&&v!=="longjmp")throw v;re(1,0)}}function XA(e,t,r,o,a,s,A,c,u,d,h,I,m,y,v,x){let G=L();try{W.get(e)(t,r,o,a,s,A,c,u,d,h,I,m,y,v,x)}catch(R){if(te(G),R!==R+0&&R!=="longjmp")throw R;re(1,0)}}function VA(e,t,r,o,a,s,A,c,u,d,h,I,m,y,v,x){let G=L();try{W.get(e)(t,r,o,a,s,A,c,u,d,h,I,m,y,v,x)}catch(R){if(te(G),R!==R+0&&R!=="longjmp")throw R;re(1,0)}}function WA(e,t,r,o,a,s,A,c){let u=L();try{W.get(e)(t,r,o,a,s,A,c)}catch(d){if(te(u),d!==d+0&&d!=="longjmp")throw d;re(1,0)}}function zA(e,t,r,o,a){let s=L();try{W.get(e)(t,r,o,a)}catch(A){if(te(s),A!==A+0&&A!=="longjmp")throw A;re(1,0)}}function $A(e,t,r,o,a){let s=L();try{W.get(e)(t,r,o,a)}catch(A){if(te(s),A!==A+0&&A!=="longjmp")throw A;re(1,0)}}function KA(e,t,r,o,a,s,A,c,u,d,h,I,m,y){let v=L();try{W.get(e)(t,r,o,a,s,A,c,u,d,h,I,m,y)}catch(x){if(te(v),x!==x+0&&x!=="longjmp")throw x;re(1,0)}}function JA(e,t,r,o,a,s,A,c,u,d,h){let I=L();try{W.get(e)(t,r,o,a,s,A,c,u,d,h)}catch(m){if(te(I),m!==m+0&&m!=="longjmp")throw m;re(1,0)}}function ZA(e,t,r,o,a,s,A,c,u,d){let h=L();try{return W.get(e)(t,r,o,a,s,A,c,u,d)}catch(I){if(te(h),I!==I+0&&I!=="longjmp")throw I;re(1,0)}}function qA(e,t,r,o,a,s){let A=L();try{W.get(e)(t,r,o,a,s)}catch(c){if(te(A),c!==c+0&&c!=="longjmp")throw c;re(1,0)}}function ec(e,t,r,o,a,s,A,c){let u=L();try{W.get(e)(t,r,o,a,s,A,c)}catch(d){if(te(u),d!==d+0&&d!=="longjmp")throw d;re(1,0)}}function tc(e,t,r,o,a){let s=L();try{W.get(e)(t,r,o,a)}catch(A){if(te(s),A!==A+0&&A!=="longjmp")throw A;re(1,0)}}function Ti(e,t,r,o,a){let s=L();try{W.get(e)(t,r,o,a)}catch(A){if(te(s),A!==A+0&&A!=="longjmp")throw A;re(1,0)}}Object.getOwnPropertyDescriptor(n,"intArrayFromString")||(n.intArrayFromString=function(){_("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"intArrayToString")||(n.intArrayToString=function(){_("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ccall")||(n.ccall=function(){_("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"cwrap")||(n.cwrap=function(){_("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setValue")||(n.setValue=function(){_("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getValue")||(n.getValue=function(){_("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocate")||(n.allocate=function(){_("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ArrayToString")||(n.UTF8ArrayToString=function(){_("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ToString")||(n.UTF8ToString=function(){_("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8Array")||(n.stringToUTF8Array=function(){_("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8")||(n.stringToUTF8=function(){_("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF8")||(n.lengthBytesUTF8=function(){_("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){_("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreRun")||(n.addOnPreRun=function(){_("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnInit")||(n.addOnInit=function(){_("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreMain")||(n.addOnPreMain=function(){_("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnExit")||(n.addOnExit=function(){_("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPostRun")||(n.addOnPostRun=function(){_("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeStringToMemory")||(n.writeStringToMemory=function(){_("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeArrayToMemory")||(n.writeArrayToMemory=function(){_("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeAsciiToMemory")||(n.writeAsciiToMemory=function(){_("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.addRunDependency=p,n.removeRunDependency=or,Object.getOwnPropertyDescriptor(n,"FS_createFolder")||(n.FS_createFolder=function(){_("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createPath=l.createPath,n.FS_createDataFile=l.createDataFile,n.FS_createPreloadedFile=l.createPreloadedFile,n.FS_createLazyFile=l.createLazyFile,Object.getOwnPropertyDescriptor(n,"FS_createLink")||(n.FS_createLink=function(){_("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createDevice=l.createDevice,n.FS_unlink=l.unlink,Object.getOwnPropertyDescriptor(n,"getLEB")||(n.getLEB=function(){_("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFunctionTables")||(n.getFunctionTables=function(){_("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignFunctionTables")||(n.alignFunctionTables=function(){_("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFunctions")||(n.registerFunctions=function(){_("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addFunction")||(n.addFunction=function(){_("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"removeFunction")||(n.removeFunction=function(){_("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){_("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"prettyPrint")||(n.prettyPrint=function(){_("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){_("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCompilerSetting")||(n.getCompilerSetting=function(){_("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"print")||(n.print=function(){_("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"printErr")||(n.printErr=function(){_("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTempRet0")||(n.getTempRet0=function(){_("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setTempRet0")||(n.setTempRet0=function(){_("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callMain")||(n.callMain=function(){_("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"abort")||(n.abort=function(){_("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"keepRuntimeAlive")||(n.keepRuntimeAlive=function(){_("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"zeroMemory")||(n.zeroMemory=function(){_("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToNewUTF8")||(n.stringToNewUTF8=function(){_("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setFileTime")||(n.setFileTime=function(){_("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscripten_realloc_buffer")||(n.emscripten_realloc_buffer=function(){_("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ENV")||(n.ENV=function(){_("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_CODES")||(n.ERRNO_CODES=function(){_("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_MESSAGES")||(n.ERRNO_MESSAGES=function(){_("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setErrNo")||(n.setErrNo=function(){_("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton4")||(n.inetPton4=function(){_("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop4")||(n.inetNtop4=function(){_("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton6")||(n.inetPton6=function(){_("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop6")||(n.inetNtop6=function(){_("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readSockaddr")||(n.readSockaddr=function(){_("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeSockaddr")||(n.writeSockaddr=function(){_("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"DNS")||(n.DNS=function(){_("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getHostByName")||(n.getHostByName=function(){_("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GAI_ERRNO_MESSAGES")||(n.GAI_ERRNO_MESSAGES=function(){_("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Protocols")||(n.Protocols=function(){_("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Sockets")||(n.Sockets=function(){_("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getRandomDevice")||(n.getRandomDevice=function(){_("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"traverseStack")||(n.traverseStack=function(){_("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UNWIND_CACHE")||(n.UNWIND_CACHE=function(){_("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"withBuiltinMalloc")||(n.withBuiltinMalloc=function(){_("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgsArray")||(n.readAsmConstArgsArray=function(){_("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgs")||(n.readAsmConstArgs=function(){_("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mainThreadEM_ASM")||(n.mainThreadEM_ASM=function(){_("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_q")||(n.jstoi_q=function(){_("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_s")||(n.jstoi_s=function(){_("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getExecutableName")||(n.getExecutableName=function(){_("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"listenOnce")||(n.listenOnce=function(){_("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"autoResumeAudioContext")||(n.autoResumeAudioContext=function(){_("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCallLegacy")||(n.dynCallLegacy=function(){_("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getDynCaller")||(n.getDynCaller=function(){_("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){_("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callRuntimeCallbacks")||(n.callRuntimeCallbacks=function(){_("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePush")||(n.runtimeKeepalivePush=function(){_("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePop")||(n.runtimeKeepalivePop=function(){_("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callUserCallback")||(n.callUserCallback=function(){_("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"maybeExit")||(n.maybeExit=function(){_("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"safeSetTimeout")||(n.safeSetTimeout=function(){_("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asmjsMangle")||(n.asmjsMangle=function(){_("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asyncLoad")||(n.asyncLoad=function(){_("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignMemory")||(n.alignMemory=function(){_("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mmapAlloc")||(n.mmapAlloc=function(){_("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reallyNegative")||(n.reallyNegative=function(){_("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unSign")||(n.unSign=function(){_("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reSign")||(n.reSign=function(){_("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"formatString")||(n.formatString=function(){_("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH")||(n.PATH=function(){_("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH_FS")||(n.PATH_FS=function(){_("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SYSCALLS")||(n.SYSCALLS=function(){_("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMmap2")||(n.syscallMmap2=function(){_("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMunmap")||(n.syscallMunmap=function(){_("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketFromFD")||(n.getSocketFromFD=function(){_("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketAddress")||(n.getSocketAddress=function(){_("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"JSEvents")||(n.JSEvents=function(){_("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerKeyEventCallback")||(n.registerKeyEventCallback=function(){_("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"specialHTMLTargets")||(n.specialHTMLTargets=function(){_("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findEventTarget")||(n.findEventTarget=function(){_("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findCanvasEventTarget")||(n.findCanvasEventTarget=function(){_("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBoundingClientRect")||(n.getBoundingClientRect=function(){_("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillMouseEventData")||(n.fillMouseEventData=function(){_("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerMouseEventCallback")||(n.registerMouseEventCallback=function(){_("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerWheelEventCallback")||(n.registerWheelEventCallback=function(){_("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerUiEventCallback")||(n.registerUiEventCallback=function(){_("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFocusEventCallback")||(n.registerFocusEventCallback=function(){_("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceOrientationEventData")||(n.fillDeviceOrientationEventData=function(){_("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceOrientationEventCallback")||(n.registerDeviceOrientationEventCallback=function(){_("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceMotionEventData")||(n.fillDeviceMotionEventData=function(){_("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceMotionEventCallback")||(n.registerDeviceMotionEventCallback=function(){_("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"screenOrientation")||(n.screenOrientation=function(){_("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillOrientationChangeEventData")||(n.fillOrientationChangeEventData=function(){_("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerOrientationChangeEventCallback")||(n.registerOrientationChangeEventCallback=function(){_("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillFullscreenChangeEventData")||(n.fillFullscreenChangeEventData=function(){_("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFullscreenChangeEventCallback")||(n.registerFullscreenChangeEventCallback=function(){_("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerRestoreOldStyle")||(n.registerRestoreOldStyle=function(){_("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"hideEverythingExceptGivenElement")||(n.hideEverythingExceptGivenElement=function(){_("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreHiddenElements")||(n.restoreHiddenElements=function(){_("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setLetterbox")||(n.setLetterbox=function(){_("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"currentFullscreenStrategy")||(n.currentFullscreenStrategy=function(){_("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreOldWindowedStyle")||(n.restoreOldWindowedStyle=function(){_("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"softFullscreenResizeWebGLRenderTarget")||(n.softFullscreenResizeWebGLRenderTarget=function(){_("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"doRequestFullscreen")||(n.doRequestFullscreen=function(){_("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillPointerlockChangeEventData")||(n.fillPointerlockChangeEventData=function(){_("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockChangeEventCallback")||(n.registerPointerlockChangeEventCallback=function(){_("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockErrorEventCallback")||(n.registerPointerlockErrorEventCallback=function(){_("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requestPointerLock")||(n.requestPointerLock=function(){_("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillVisibilityChangeEventData")||(n.fillVisibilityChangeEventData=function(){_("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerVisibilityChangeEventCallback")||(n.registerVisibilityChangeEventCallback=function(){_("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerTouchEventCallback")||(n.registerTouchEventCallback=function(){_("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillGamepadEventData")||(n.fillGamepadEventData=function(){_("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerGamepadEventCallback")||(n.registerGamepadEventCallback=function(){_("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBeforeUnloadEventCallback")||(n.registerBeforeUnloadEventCallback=function(){_("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillBatteryEventData")||(n.fillBatteryEventData=function(){_("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"battery")||(n.battery=function(){_("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBatteryEventCallback")||(n.registerBatteryEventCallback=function(){_("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setCanvasElementSize")||(n.setCanvasElementSize=function(){_("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCanvasElementSize")||(n.getCanvasElementSize=function(){_("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"polyfillSetImmediate")||(n.polyfillSetImmediate=function(){_("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangle")||(n.demangle=function(){_("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangleAll")||(n.demangleAll=function(){_("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jsStackTrace")||(n.jsStackTrace=function(){_("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){_("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getEnvStrings")||(n.getEnvStrings=function(){_("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"checkWasiClock")||(n.checkWasiClock=function(){_("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64")||(n.writeI53ToI64=function(){_("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Clamped")||(n.writeI53ToI64Clamped=function(){_("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Signaling")||(n.writeI53ToI64Signaling=function(){_("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Clamped")||(n.writeI53ToU64Clamped=function(){_("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Signaling")||(n.writeI53ToU64Signaling=function(){_("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromI64")||(n.readI53FromI64=function(){_("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromU64")||(n.readI53FromU64=function(){_("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertI32PairToI53")||(n.convertI32PairToI53=function(){_("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertU32PairToI53")||(n.convertU32PairToI53=function(){_("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"uncaughtExceptionCount")||(n.uncaughtExceptionCount=function(){_("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionLast")||(n.exceptionLast=function(){_("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionCaught")||(n.exceptionCaught=function(){_("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ExceptionInfo")||(n.ExceptionInfo=function(){_("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"CatchInfo")||(n.CatchInfo=function(){_("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_addRef")||(n.exception_addRef=function(){_("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_decRef")||(n.exception_decRef=function(){_("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Browser")||(n.Browser=function(){_("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"funcWrappers")||(n.funcWrappers=function(){_("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){_("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setMainLoop")||(n.setMainLoop=function(){_("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"wget")||(n.wget=function(){_("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"FS")||(n.FS=function(){_("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"MEMFS")||(n.MEMFS=function(){_("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"TTY")||(n.TTY=function(){_("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PIPEFS")||(n.PIPEFS=function(){_("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SOCKFS")||(n.SOCKFS=function(){_("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"_setNetworkCallback")||(n._setNetworkCallback=function(){_("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tempFixedLengthArray")||(n.tempFixedLengthArray=function(){_("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"miniTempWebGLFloatBuffers")||(n.miniTempWebGLFloatBuffers=function(){_("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapObjectForWebGLType")||(n.heapObjectForWebGLType=function(){_("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapAccessShiftForWebGLHeap")||(n.heapAccessShiftForWebGLHeap=function(){_("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.GL=w,Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGet")||(n.emscriptenWebGLGet=function(){_("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"computeUnpackAlignedImageSize")||(n.computeUnpackAlignedImageSize=function(){_("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetTexPixelData")||(n.emscriptenWebGLGetTexPixelData=function(){_("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetUniform")||(n.emscriptenWebGLGetUniform=function(){_("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetUniformLocation")||(n.webglGetUniformLocation=function(){_("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglPrepareUniformLocationsBeforeFirstUse")||(n.webglPrepareUniformLocationsBeforeFirstUse=function(){_("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetLeftBracePos")||(n.webglGetLeftBracePos=function(){_("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetVertexAttrib")||(n.emscriptenWebGLGetVertexAttrib=function(){_("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetBufferBinding")||(n.emscriptenWebGLGetBufferBinding=function(){_("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLValidateMapBufferTarget")||(n.emscriptenWebGLValidateMapBufferTarget=function(){_("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeGLArray")||(n.writeGLArray=function(){_("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AL")||(n.AL=function(){_("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_unicode")||(n.SDL_unicode=function(){_("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_ttfContext")||(n.SDL_ttfContext=function(){_("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_audio")||(n.SDL_audio=function(){_("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL")||(n.SDL=function(){_("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_gfx")||(n.SDL_gfx=function(){_("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLUT")||(n.GLUT=function(){_("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"EGL")||(n.EGL=function(){_("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW_Window")||(n.GLFW_Window=function(){_("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW")||(n.GLFW=function(){_("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLEW")||(n.GLEW=function(){_("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"IDBStore")||(n.IDBStore=function(){_("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runAndAbortIfError")||(n.runAndAbortIfError=function(){_("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_handle_array")||(n.emval_handle_array=function(){_("'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(){_("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_symbols")||(n.emval_symbols=function(){_("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_emval")||(n.init_emval=function(){_("'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(){_("'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(){_("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getStringOrSymbol")||(n.getStringOrSymbol=function(){_("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireHandle")||(n.requireHandle=function(){_("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_newers")||(n.emval_newers=function(){_("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftEmvalAllocator")||(n.craftEmvalAllocator=function(){_("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_get_global")||(n.emval_get_global=function(){_("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_methodCallers")||(n.emval_methodCallers=function(){_("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"InternalError")||(n.InternalError=function(){_("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"BindingError")||(n.BindingError=function(){_("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UnboundTypeError")||(n.UnboundTypeError=function(){_("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PureVirtualError")||(n.PureVirtualError=function(){_("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_embind")||(n.init_embind=function(){_("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInternalError")||(n.throwInternalError=function(){_("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwBindingError")||(n.throwBindingError=function(){_("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwUnboundTypeError")||(n.throwUnboundTypeError=function(){_("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ensureOverloadTable")||(n.ensureOverloadTable=function(){_("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exposePublicSymbol")||(n.exposePublicSymbol=function(){_("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"replacePublicSymbol")||(n.replacePublicSymbol=function(){_("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"extendError")||(n.extendError=function(){_("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"createNamedFunction")||(n.createNamedFunction=function(){_("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredInstances")||(n.registeredInstances=function(){_("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBasestPointer")||(n.getBasestPointer=function(){_("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerInheritedInstance")||(n.registerInheritedInstance=function(){_("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unregisterInheritedInstance")||(n.unregisterInheritedInstance=function(){_("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstance")||(n.getInheritedInstance=function(){_("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstanceCount")||(n.getInheritedInstanceCount=function(){_("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getLiveInheritedInstances")||(n.getLiveInheritedInstances=function(){_("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredTypes")||(n.registeredTypes=function(){_("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"awaitingDependencies")||(n.awaitingDependencies=function(){_("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"typeDependencies")||(n.typeDependencies=function(){_("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredPointers")||(n.registeredPointers=function(){_("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerType")||(n.registerType=function(){_("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"whenDependentTypesAreResolved")||(n.whenDependentTypesAreResolved=function(){_("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_charCodes")||(n.embind_charCodes=function(){_("'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(){_("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readLatin1String")||(n.readLatin1String=function(){_("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTypeName")||(n.getTypeName=function(){_("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heap32VectorToArray")||(n.heap32VectorToArray=function(){_("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireRegisteredType")||(n.requireRegisteredType=function(){_("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getShiftFromSize")||(n.getShiftFromSize=function(){_("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"integerReadValueFromPointer")||(n.integerReadValueFromPointer=function(){_("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"enumReadValueFromPointer")||(n.enumReadValueFromPointer=function(){_("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"floatReadValueFromPointer")||(n.floatReadValueFromPointer=function(){_("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"simpleReadValueFromPointer")||(n.simpleReadValueFromPointer=function(){_("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructors")||(n.runDestructors=function(){_("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"new_")||(n.new_=function(){_("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftInvokerFunction")||(n.craftInvokerFunction=function(){_("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind__requireFunction")||(n.embind__requireFunction=function(){_("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tupleRegistrations")||(n.tupleRegistrations=function(){_("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"structRegistrations")||(n.structRegistrations=function(){_("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"genericPointerToWireType")||(n.genericPointerToWireType=function(){_("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"constNoSmartPtrRawPointerToWireType")||(n.constNoSmartPtrRawPointerToWireType=function(){_("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"nonConstNoSmartPtrRawPointerToWireType")||(n.nonConstNoSmartPtrRawPointerToWireType=function(){_("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_RegisteredPointer")||(n.init_RegisteredPointer=function(){_("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer")||(n.RegisteredPointer=function(){_("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_getPointee")||(n.RegisteredPointer_getPointee=function(){_("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_destructor")||(n.RegisteredPointer_destructor=function(){_("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_deleteObject")||(n.RegisteredPointer_deleteObject=function(){_("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_fromWireType")||(n.RegisteredPointer_fromWireType=function(){_("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructor")||(n.runDestructor=function(){_("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"releaseClassHandle")||(n.releaseClassHandle=function(){_("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"finalizationGroup")||(n.finalizationGroup=function(){_("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer_deps")||(n.detachFinalizer_deps=function(){_("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer")||(n.detachFinalizer=function(){_("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"attachFinalizer")||(n.attachFinalizer=function(){_("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeClassHandle")||(n.makeClassHandle=function(){_("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_ClassHandle")||(n.init_ClassHandle=function(){_("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle")||(n.ClassHandle=function(){_("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isAliasOf")||(n.ClassHandle_isAliasOf=function(){_("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInstanceAlreadyDeleted")||(n.throwInstanceAlreadyDeleted=function(){_("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_clone")||(n.ClassHandle_clone=function(){_("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_delete")||(n.ClassHandle_delete=function(){_("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"deletionQueue")||(n.deletionQueue=function(){_("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isDeleted")||(n.ClassHandle_isDeleted=function(){_("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_deleteLater")||(n.ClassHandle_deleteLater=function(){_("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"flushPendingDeletes")||(n.flushPendingDeletes=function(){_("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"delayFunction")||(n.delayFunction=function(){_("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setDelayFunction")||(n.setDelayFunction=function(){_("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredClass")||(n.RegisteredClass=function(){_("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"shallowCopyInternalPointer")||(n.shallowCopyInternalPointer=function(){_("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"downcastPointer")||(n.downcastPointer=function(){_("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"upcastPointer")||(n.upcastPointer=function(){_("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"validateThis")||(n.validateThis=function(){_("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_0")||(n.char_0=function(){_("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_9")||(n.char_9=function(){_("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeLegalFunctionName")||(n.makeLegalFunctionName=function(){_("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetIndexed")||(n.emscriptenWebGLGetIndexed=function(){_("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"warnOnce")||(n.warnOnce=function(){_("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackSave")||(n.stackSave=function(){_("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackRestore")||(n.stackRestore=function(){_("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackAlloc")||(n.stackAlloc=function(){_("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AsciiToString")||(n.AsciiToString=function(){_("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToAscii")||(n.stringToAscii=function(){_("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF16ToString")||(n.UTF16ToString=function(){_("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF16")||(n.stringToUTF16=function(){_("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF16")||(n.lengthBytesUTF16=function(){_("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF32ToString")||(n.UTF32ToString=function(){_("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF32")||(n.stringToUTF32=function(){_("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF32")||(n.lengthBytesUTF32=function(){_("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8")||(n.allocateUTF8=function(){_("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8OnStack")||(n.allocateUTF8OnStack=function(){_("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.writeStackCookie=Yt,n.checkStackCookie=ct,Object.getOwnPropertyDescriptor(n,"ALLOC_NORMAL")||Object.defineProperty(n,"ALLOC_NORMAL",{configurable:!0,get(){_("'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(){_("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}});let In;function fo(e){this.name="ExitStatus",this.message=`Program terminated with exit(${e})`,this.status=e}ir=function e(){In||Eo(),In||(ir=e)};function go(){Uo(),Yt()}function Eo(e){if(e=e||st,ft>0||(go(),Vt(),ft>0))return;function t(){In||(In=!0,n.calledRun=!0,!V&&(ki(),pe(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),z(!n._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),wn()))}n.setStatus?(n.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>{n.setStatus("")},1),t()},1)):t(),ct()}n.run=Eo;function rc(){let e=Re,t=_e,r=!1;Re=_e=function(o){r=!0};try{let o=n._fflush;o&&o(0),["stdout","stderr"].forEach(a=>{let s=l.analyzePath(`/dev/${a}`);if(!s)return;let A=s.object,{rdev:c}=A,u=bt.ttys[c];u&&u.output&&u.output.length&&(r=!0)})}catch(o){}Re=e,_e=t,r&&nt("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 Lo(e,t){if(kr=e,rc(),wt()){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)`;k(r),_e(r)}}else Ni();i(e)}function i(e){kr=e,wt()||(n.onExit&&n.onExit(e),V=!0),Je(e,new fo(e))}if(n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return Eo(),U.ready}}(),bc=Du;var Bu=function(){var J=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(J=J||__filename),function(U){U=U||{};var n=typeof U!="undefined"?U:{},pe,k;n.ready=new Promise(function(i,e){pe=i,k=e}),Object.getOwnPropertyDescriptor(n.ready,"_main")||(Object.defineProperty(n.ready,"_main",{configurable:!0,get:function(){p("You are getting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_main",{configurable:!0,set:function(){p("You are setting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_get_end")||(Object.defineProperty(n.ready,"_emscripten_stack_get_end",{configurable:!0,get:function(){p("You are getting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_get_end",{configurable:!0,set:function(){p("You are setting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_get_free")||(Object.defineProperty(n.ready,"_emscripten_stack_get_free",{configurable:!0,get:function(){p("You are getting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_get_free",{configurable:!0,set:function(){p("You are setting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_init")||(Object.defineProperty(n.ready,"_emscripten_stack_init",{configurable:!0,get:function(){p("You are getting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_init",{configurable:!0,set:function(){p("You are setting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackSave")||(Object.defineProperty(n.ready,"_stackSave",{configurable:!0,get:function(){p("You are getting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackSave",{configurable:!0,set:function(){p("You are setting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackRestore")||(Object.defineProperty(n.ready,"_stackRestore",{configurable:!0,get:function(){p("You are getting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackRestore",{configurable:!0,set:function(){p("You are setting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackAlloc")||(Object.defineProperty(n.ready,"_stackAlloc",{configurable:!0,get:function(){p("You are getting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackAlloc",{configurable:!0,set:function(){p("You are setting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___wasm_call_ctors")||(Object.defineProperty(n.ready,"___wasm_call_ctors",{configurable:!0,get:function(){p("You are getting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___wasm_call_ctors",{configurable:!0,set:function(){p("You are setting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_fflush")||(Object.defineProperty(n.ready,"_fflush",{configurable:!0,get:function(){p("You are getting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_fflush",{configurable:!0,set:function(){p("You are setting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___errno_location")||(Object.defineProperty(n.ready,"___errno_location",{configurable:!0,get:function(){p("You are getting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___errno_location",{configurable:!0,set:function(){p("You are setting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_malloc")||(Object.defineProperty(n.ready,"_malloc",{configurable:!0,get:function(){p("You are getting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_malloc",{configurable:!0,set:function(){p("You are setting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_free")||(Object.defineProperty(n.ready,"_free",{configurable:!0,get:function(){p("You are getting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_free",{configurable:!0,set:function(){p("You are setting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_setThrew")||(Object.defineProperty(n.ready,"_setThrew",{configurable:!0,get:function(){p("You are getting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_setThrew",{configurable:!0,set:function(){p("You are setting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___cxa_is_pointer_type")||(Object.defineProperty(n.ready,"___cxa_is_pointer_type",{configurable:!0,get:function(){p("You are getting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___cxa_is_pointer_type",{configurable:!0,set:function(){p("You are setting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___cxa_can_catch")||(Object.defineProperty(n.ready,"___cxa_can_catch",{configurable:!0,get:function(){p("You are getting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___cxa_can_catch",{configurable:!0,set:function(){p("You are setting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_saveSetjmp")||(Object.defineProperty(n.ready,"_saveSetjmp",{configurable:!0,get:function(){p("You are getting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_saveSetjmp",{configurable:!0,set:function(){p("You are setting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_memalign")||(Object.defineProperty(n.ready,"_memalign",{configurable:!0,get:function(){p("You are getting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_memalign",{configurable:!0,set:function(){p("You are setting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_main_thread_process_queued_calls")||(Object.defineProperty(n.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,get:function(){p("You are getting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,set:function(){p("You are setting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_webgl_make_context_current")||(Object.defineProperty(n.ready,"_emscripten_webgl_make_context_current",{configurable:!0,get:function(){p("You are getting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_webgl_make_context_current",{configurable:!0,set:function(){p("You are setting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_webgl_get_current_context")||(Object.defineProperty(n.ready,"_emscripten_webgl_get_current_context",{configurable:!0,get:function(){p("You are getting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_webgl_get_current_context",{configurable:!0,set:function(){p("You are setting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_tzname")||(Object.defineProperty(n.ready,"__get_tzname",{configurable:!0,get:function(){p("You are getting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_tzname",{configurable:!0,set:function(){p("You are setting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_daylight")||(Object.defineProperty(n.ready,"__get_daylight",{configurable:!0,get:function(){p("You are getting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_daylight",{configurable:!0,set:function(){p("You are setting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_timezone")||(Object.defineProperty(n.ready,"__get_timezone",{configurable:!0,get:function(){p("You are getting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_timezone",{configurable:!0,set:function(){p("You are setting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_malloc")||(Object.defineProperty(n.ready,"_emscripten_builtin_malloc",{configurable:!0,get:function(){p("You are getting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_malloc",{configurable:!0,set:function(){p("You are setting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_free")||(Object.defineProperty(n.ready,"_emscripten_builtin_free",{configurable:!0,get:function(){p("You are getting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_free",{configurable:!0,set:function(){p("You are setting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_memalign")||(Object.defineProperty(n.ready,"_emscripten_builtin_memalign",{configurable:!0,get:function(){p("You are getting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_memalign",{configurable:!0,set:function(){p("You are setting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___getTypeName")||(Object.defineProperty(n.ready,"___getTypeName",{configurable:!0,get:function(){p("You are getting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___getTypeName",{configurable:!0,set:function(){p("You are setting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___embind_register_native_and_builtin_types")||(Object.defineProperty(n.ready,"___embind_register_native_and_builtin_types",{configurable:!0,get:function(){p("You are getting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___embind_register_native_and_builtin_types",{configurable:!0,set:function(){p("You are setting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"onRuntimeInitialized")||(Object.defineProperty(n.ready,"onRuntimeInitialized",{configurable:!0,get:function(){p("You are getting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"onRuntimeInitialized",{configurable:!0,set:function(){p("You are setting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));var Ne={},we;for(we in n)n.hasOwnProperty(we)&&(Ne[we]=n[we]);var st=[],mt="./this.program",Je=function(i,e){throw e},Xe=typeof window=="object",ze=typeof importScripts=="function",Ct=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",Qi=!Xe&&!Ct&&!ze;if(n.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)");var Te="";function Pi(i){return n.locateFile?n.locateFile(i,Te):Te+i}var Mr,tr,Fr,on;if(Xe||ze){if(ze?Te=self.location.href:typeof document!="undefined"&&document.currentScript&&(Te=document.currentScript.src),J&&(Te=J),Te.indexOf("blob:")!==0?Te=Te.substr(0,Te.lastIndexOf("/")+1):Te="",!(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?)");Mr=function(i){var e=new XMLHttpRequest;return e.open("GET",i,!1),e.send(null),e.responseText},ze&&(Fr=function(i){var e=new XMLHttpRequest;return e.open("GET",i,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}),tr=function(i,e,t){var r=new XMLHttpRequest;r.open("GET",i,!0),r.responseType="arraybuffer",r.onload=function(){if(r.status==200||r.status==0&&r.response){e(r.response);return}t()},r.onerror=t,r.send(null)},on=function(i){document.title=i}}else throw new Error("environment detection error");var Ze=n.print||console.log.bind(console),ge=n.printErr||console.warn.bind(console);for(we in Ne)Ne.hasOwnProperty(we)&&(n[we]=Ne[we]);Ne=null,n.arguments&&(st=n.arguments),Object.getOwnPropertyDescriptor(n,"arguments")||Object.defineProperty(n,"arguments",{configurable:!0,get:function(){p("Module.arguments has been replaced with plain arguments_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),n.thisProgram&&(mt=n.thisProgram),Object.getOwnPropertyDescriptor(n,"thisProgram")||Object.defineProperty(n,"thisProgram",{configurable:!0,get:function(){p("Module.thisProgram has been replaced with plain thisProgram (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),n.quit&&(Je=n.quit),Object.getOwnPropertyDescriptor(n,"quit")||Object.defineProperty(n,"quit",{configurable:!0,get:function(){p("Module.quit has been replaced with plain quit_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),V(typeof n.memoryInitializerPrefixURL=="undefined","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),V(typeof n.pthreadMainPrefixURL=="undefined","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),V(typeof n.cdInitializerPrefixURL=="undefined","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),V(typeof n.filePackagePrefixURL=="undefined","Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),V(typeof n.read=="undefined","Module.read option was removed (modify read_ in JS)"),V(typeof n.readAsync=="undefined","Module.readAsync option was removed (modify readAsync in JS)"),V(typeof n.readBinary=="undefined","Module.readBinary option was removed (modify readBinary in JS)"),V(typeof n.setWindowTitle=="undefined","Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),V(typeof n.TOTAL_MEMORY=="undefined","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Object.getOwnPropertyDescriptor(n,"read")||Object.defineProperty(n,"read",{configurable:!0,get:function(){p("Module.read has been replaced with plain read_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(n,"readAsync")||Object.defineProperty(n,"readAsync",{configurable:!0,get:function(){p("Module.readAsync has been replaced with plain readAsync (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(n,"readBinary")||Object.defineProperty(n,"readBinary",{configurable:!0,get:function(){p("Module.readBinary has been replaced with plain readBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(n,"setWindowTitle")||Object.defineProperty(n,"setWindowTitle",{configurable:!0,get:function(){p("Module.setWindowTitle has been replaced with plain setWindowTitle (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),V(!Qi,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");function Re(i){Re.shown||(Re.shown={}),Re.shown[i]||(Re.shown[i]=1,ge(i))}function _e(i,e){if(typeof WebAssembly.Function=="function"){for(var t={i:"i32",j:"i64",f:"f32",d:"f64"},r={parameters:[],results:e[0]=="v"?[]:[t[e[0]]]},o=1;o<e.length;++o)r.parameters.push(t[e[o]]);return new WebAssembly.Function(r,i)}var a=[1,0,1,96],s=e.slice(0,1),A=e.slice(1),c={i:127,j:126,f:125,d:124};a.push(A.length);for(var o=0;o<A.length;++o)a.push(c[A[o]]);s=="v"?a.push(0):a=a.concat([1,c[s]]),a[1]=a.length-2;var u=new Uint8Array([0,97,115,109,1,0,0,0].concat(a,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0])),d=new WebAssembly.Module(u),h=new WebAssembly.Instance(d,{e:{f:i}}),I=h.exports.f;return I}var nt=[],Ir;function Lt(){if(nt.length)return nt.pop();try{K.grow(1)}catch(i){throw i instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":i}return K.length-1}function He(i,e){if(!Ir){Ir=new WeakMap;for(var t=0;t<K.length;t++){var r=K.get(t);r&&Ir.set(r,t)}}if(Ir.has(i))return Ir.get(i);var o=Lt();try{K.set(o,i)}catch(s){if(!(s instanceof TypeError))throw s;V(typeof e!="undefined","Missing signature argument to addFunction: "+i);var a=_e(i,e);K.set(o,a)}return Ir.set(i,o),o}var mr=0,yt=function(i){mr=i},Cr=function(){return mr},Ee;n.wasmBinary&&(Ee=n.wasmBinary),Object.getOwnPropertyDescriptor(n,"wasmBinary")||Object.defineProperty(n,"wasmBinary",{configurable:!0,get:function(){p("Module.wasmBinary has been replaced with plain wasmBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}});var Gn=n.noExitRuntime||!0;Object.getOwnPropertyDescriptor(n,"noExitRuntime")||Object.defineProperty(n,"noExitRuntime",{configurable:!0,get:function(){p("Module.noExitRuntime has been replaced with plain noExitRuntime (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),typeof WebAssembly!="object"&&p("no native wasm support detected");var Ht,Gt=!1,Rt;function V(i,e){i||p("Assertion failed: "+e)}function kr(i){var e=n["_"+i];return V(e,"Cannot call unknown function "+i+", make sure it is exported"),e}function z(i,e,t,r,o){var a={string:function(y){var v=0;if(y!=null&&y!==0){var x=(y.length<<2)+1;v=te(x),et(y,v,x)}return v},array:function(y){var v=te(y.length);return xr(y,v),v}};function s(y){return e==="string"?At(y):e==="boolean"?!!y:y}var A=kr(i),c=[],u=0;if(V(e!=="array",'Return type should not be "array".'),r)for(var d=0;d<r.length;d++){var h=a[t[d]];h?(u===0&&(u=ne()),c[d]=h(r[d])):c[d]=r[d]}var I=A.apply(null,c);function m(y){return u!==0&&L(u),s(y)}return I=m(I),I}var po=1,Ri=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Nr(i,e,t){for(var r=e+t,o=e;i[o]&&!(o>=r);)++o;if(o-e>16&&i.subarray&&Ri)return Ri.decode(i.subarray(e,o));for(var a="";e<o;){var s=i[e++];if(!(s&128)){a+=String.fromCharCode(s);continue}var A=i[e++]&63;if((s&224)==192){a+=String.fromCharCode((s&31)<<6|A);continue}var c=i[e++]&63;if((s&240)==224?s=(s&15)<<12|A<<6|c:((s&248)!=240&&Re("Invalid UTF-8 leading byte 0x"+s.toString(16)+" encountered when deserializing a UTF-8 string in wasm memory to a JS string!"),s=(s&7)<<18|A<<12|c<<6|i[e++]&63),s<65536)a+=String.fromCharCode(s);else{var u=s-65536;a+=String.fromCharCode(55296|u>>10,56320|u&1023)}}return a}function At(i,e){return i?Nr(Se,i,e):""}function St(i,e,t,r){if(!(r>0))return 0;for(var o=t,a=t+r-1,s=0;s<i.length;++s){var A=i.charCodeAt(s);if(A>=55296&&A<=57343){var c=i.charCodeAt(++s);A=65536+((A&1023)<<10)|c&1023}if(A<=127){if(t>=a)break;e[t++]=A}else if(A<=2047){if(t+1>=a)break;e[t++]=192|A>>6,e[t++]=128|A&63}else if(A<=65535){if(t+2>=a)break;e[t++]=224|A>>12,e[t++]=128|A>>6&63,e[t++]=128|A&63}else{if(t+3>=a)break;A>=2097152&&Re("Invalid Unicode code point 0x"+A.toString(16)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x1FFFFF)."),e[t++]=240|A>>18,e[t++]=128|A>>12&63,e[t++]=128|A>>6&63,e[t++]=128|A&63}}return e[t]=0,t-o}function et(i,e,t){return V(typeof t=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),St(i,Se,e,t)}function tt(i){for(var e=0,t=0;t<i.length;++t){var r=i.charCodeAt(t);r>=55296&&r<=57343&&(r=65536+((r&1023)<<10)|i.charCodeAt(++t)&1023),r<=127?++e:r<=2047?e+=2:r<=65535?e+=3:e+=4}return e}var rr=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function Bt(i,e){V(i%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");for(var t=i,r=t>>1,o=r+e/2;!(r>=o)&&ve[r];)++r;if(t=r<<1,t-i>32&&rr)return rr.decode(Se.subarray(i,t));for(var a="",s=0;!(s>=e/2);++s){var A=be[i+s*2>>1];if(A==0)break;a+=String.fromCharCode(A)}return a}function Yn(i,e,t){if(V(e%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),V(typeof t=="number","stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),t===void 0&&(t=2147483647),t<2)return 0;t-=2;for(var r=e,o=t<i.length*2?t/2:i.length,a=0;a<o;++a){var s=i.charCodeAt(a);be[e>>1]=s,e+=2}return be[e>>1]=0,e-r}function Si(i){return i.length*2}function mn(i,e){V(i%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");for(var t=0,r="";!(t>=e/4);){var o=T[i+t*4>>2];if(o==0)break;if(++t,o>=65536){var a=o-65536;r+=String.fromCharCode(55296|a>>10,56320|a&1023)}else r+=String.fromCharCode(o)}return r}function Xn(i,e,t){if(V(e%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),V(typeof t=="number","stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),t===void 0&&(t=2147483647),t<4)return 0;for(var r=e,o=r+t-4,a=0;a<i.length;++a){var s=i.charCodeAt(a);if(s>=55296&&s<=57343){var A=i.charCodeAt(++a);s=65536+((s&1023)<<10)|A&1023}if(T[e>>2]=s,e+=4,e+4>o)break}return T[e>>2]=0,e-r}function Mi(i){for(var e=0,t=0;t<i.length;++t){var r=i.charCodeAt(t);r>=55296&&r<=57343&&++t,e+=4}return e}function Cn(i){var e=tt(i)+1,t=at(e);return t&&St(i,xe,t,e),t}function xr(i,e){V(i.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),xe.set(i,e)}function yn(i,e,t){for(var r=0;r<i.length;++r)V(i.charCodeAt(r)===i.charCodeAt(r)&255),xe[e++>>0]=i.charCodeAt(r);t||(xe[e>>0]=0)}function Vn(i,e){return i%e>0&&(i+=e-i%e),i}var Ur,xe,Se,be,ve,T,De,D,Qe;function $e(i){Ur=i,n.HEAP8=xe=new Int8Array(i),n.HEAP16=be=new Int16Array(i),n.HEAP32=T=new Int32Array(i),n.HEAPU8=Se=new Uint8Array(i),n.HEAPU16=ve=new Uint16Array(i),n.HEAPU32=De=new Uint32Array(i),n.HEAPF32=D=new Float32Array(i),n.HEAPF64=Qe=new Float64Array(i)}var jr=5242880;n.TOTAL_STACK&&V(jr===n.TOTAL_STACK,"the stack size can no longer be determined at runtime");var an=n.INITIAL_MEMORY||16777216;Object.getOwnPropertyDescriptor(n,"INITIAL_MEMORY")||Object.defineProperty(n,"INITIAL_MEMORY",{configurable:!0,get:function(){p("Module.INITIAL_MEMORY has been replaced with plain INITIAL_MEMORY (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),V(an>=jr,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+an+"! (TOTAL_STACK="+jr+")"),V(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"),V(!n.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),V(an==16777216,"Detected runtime INITIAL_MEMORY setting. Use -s IMPORTED_MEMORY to define wasmMemory dynamically");var K;function Lr(){var i=xo();V((i&3)==0),De[(i>>2)+1]=34821223,De[(i>>2)+2]=2310721022,T[0]=1668509029}function W(){if(!Gt){var i=xo(),e=De[(i>>2)+1],t=De[(i>>2)+2];(e!=34821223||t!=2310721022)&&p("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+t.toString(16)+" "+e.toString(16)),T[0]!==1668509029&&p("Runtime error: The application has corrupted its heap memory area (address zero)!")}}(function(){var i=new Int16Array(1),e=new Int8Array(i.buffer);if(i[0]=25459,e[0]!==115||e[1]!==99)throw"Runtime error: expected the system to be little-endian! (Run with -s SUPPORT_BIG_ENDIAN=1 to bypass)"})();var Yt=[],ct=[],Hr=[],Xt=[],de=!1,sn=!1,yr=0;function Ot(){return Gn||yr>0}function Fi(){if(n.preRun)for(typeof n.preRun=="function"&&(n.preRun=[n.preRun]);n.preRun.length;)Ni(n.preRun.shift());Q(Yt)}function wt(){W(),V(!de),de=!0,!n.noFSInit&&!f.init.initialized&&f.init(),f.ignorePermissions=!1,Pe.init(),Q(ct)}function Vt(){W(),sn=!0}function ki(){if(W(),n.postRun)for(typeof n.postRun=="function"&&(n.postRun=[n.postRun]);n.postRun.length;)bn(n.postRun.shift());Q(Xt)}function Ni(i){Yt.unshift(i)}function wn(i){ct.unshift(i)}function bn(i){Xt.unshift(i)}V(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),V(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),V(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),V(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var Wt=0,nr=null,ft=null,ut={};function ir(i){for(var e=i;;){if(!ut[i])return i;i=e+Math.random()}}function Mt(i){Wt++,n.monitorRunDependencies&&n.monitorRunDependencies(Wt),i?(V(!ut[i]),ut[i]=1,nr===null&&typeof setInterval!="undefined"&&(nr=setInterval(function(){if(Gt){clearInterval(nr),nr=null;return}var e=!1;for(var t in ut)e||(e=!0,ge("still waiting on run dependencies:")),ge("dependency: "+t);e&&ge("(end of list)")},1e4))):ge("warning: run dependency added without ID")}function wr(i){if(Wt--,n.monitorRunDependencies&&n.monitorRunDependencies(Wt),i?(V(ut[i]),delete ut[i]):ge("warning: run dependency removed without ID"),Wt==0&&(nr!==null&&(clearInterval(nr),nr=null),ft)){var e=ft;ft=null,e()}}n.preloadedImages={},n.preloadedAudios={};function p(i){n.onAbort&&n.onAbort(i),i+="",ge(i),Gt=!0,Rt=1;var e="abort("+i+") at "+An();i=e;var t=new WebAssembly.RuntimeError(i);throw k(t),t}var or="data:application/octet-stream;base64,";function _(i){return i.startsWith(or)}function Dn(i){return i.startsWith("file://")}function le(i,e){return function(){var t=i,r=e;return e||(r=n.asm),V(de,"native function `"+t+"` called before runtime initialization"),V(!sn,"native function `"+t+"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),r[i]||V(r[i],"exported native function `"+t+"` not found"),r[i].apply(null,arguments)}}var Ge;Ge="selfie_segmentation_solution_wasm_bin.wasm",_(Ge)||(Ge=Pi(Ge));function ce(i){try{if(i==Ge&&Ee)return new Uint8Array(Ee);if(Fr)return Fr(i);throw"both async and sync fetching of the wasm failed"}catch(e){p(e)}}function br(){if(!Ee&&(Xe||ze)){if(typeof fetch=="function"&&!Dn(Ge))return fetch(Ge,{credentials:"same-origin"}).then(function(i){if(!i.ok)throw"failed to load wasm binary file at '"+Ge+"'";return i.arrayBuffer()}).catch(function(){return ce(Ge)});if(tr)return new Promise(function(i,e){tr(Ge,function(t){i(new Uint8Array(t))},e)})}return Promise.resolve().then(function(){return ce(Ge)})}function Bn(){var i={env:tA,wasi_snapshot_preview1:tA};function e(A,c){var u=A.exports;n.asm=u,Ht=n.asm.memory,V(Ht,"memory not found in wasm exports"),$e(Ht.buffer),K=n.asm.__indirect_function_table,V(K,"table not found in wasm exports"),wn(n.asm.__wasm_call_ctors),wr("wasm-instantiate")}Mt("wasm-instantiate");var t=n;function r(A){V(n===t,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),t=null,e(A.instance)}function o(A){return br().then(function(c){var u=WebAssembly.instantiate(c,i);return u}).then(A,function(c){ge("failed to asynchronously prepare wasm: "+c),Dn(Ge)&&ge("warning: Loading from a file URI ("+Ge+") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing"),p(c)})}function a(){return!Ee&&typeof WebAssembly.instantiateStreaming=="function"&&!_(Ge)&&!Dn(Ge)&&typeof fetch=="function"?fetch(Ge,{credentials:"same-origin"}).then(function(A){var c=WebAssembly.instantiateStreaming(A,i);return c.then(r,function(u){return ge("wasm streaming compile failed: "+u),ge("falling back to ArrayBuffer instantiation"),o(r)})}):o(r)}if(n.instantiateWasm)try{var s=n.instantiateWasm(i,e);return s}catch(A){return ge("Module.instantiateWasm callback failed with error: "+A),!1}return a().catch(k),{}}var Ve,ye,Tt={460976:function(){let i=!0;if(i){let e=io;if(typeof e!="function"){typeof console!="undefined"&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.');return}io=function(t){if(t==0){if(n&&n.canvas)return n.canvas;if(n&&n.canvasCssSelector)return e(n.canvasCssSelector);typeof console!="undefined"&&console.warn("Module properties canvas and canvasCssSelector not found during WebGL context creation.")}return e(t)},i=!1}},461761:function(){return typeof wasmOffsetConverter!="undefined"}};function Gr(){return typeof wasmOffsetConverter!="undefined"}function Dr(i,e){if(P.mainLoop.timingMode=i,P.mainLoop.timingValue=e,!P.mainLoop.func)return ge("emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up."),1;if(P.mainLoop.running||(P.mainLoop.running=!0),i==0)P.mainLoop.scheduler=function(){var s=Math.max(0,P.mainLoop.tickStartTime+e-vt())|0;setTimeout(P.mainLoop.runner,s)},P.mainLoop.method="timeout";else if(i==1)P.mainLoop.scheduler=function(){P.requestAnimationFrame(P.mainLoop.runner)},P.mainLoop.method="rAF";else if(i==2){if(typeof setImmediate=="undefined"){var t=[],r="setimmediate",o=function(a){(a.data===r||a.data.target===r)&&(a.stopPropagation(),t.shift()())};addEventListener("message",o,!0),setImmediate=function(s){t.push(s),ze?(n.setImmediates===void 0&&(n.setImmediates=[]),n.setImmediates.push(s),postMessage({target:r})):postMessage(r,"*")}}P.mainLoop.scheduler=function(){setImmediate(P.mainLoop.runner)},P.mainLoop.method="immediate"}return 0}var vt;Ct?vt=function(){var i=process.hrtime();return i[0]*1e3+i[1]/1e6}:vt=function(){return performance.now()};function Br(){return!B.currentContext||!B.currentContext.GLctx?-3:B.currentContext.defaultFbo?(B.blitOffscreenFramebuffer(B.currentContext),0):B.currentContext.attributes.explicitSwapControl?0:-3}function xi(i){rc(i)}function Wn(){if(!Ot())try{xi(Rt)}catch(i){if(i instanceof In)return;throw i}}function Ui(i,e,t,r,o){V(!P.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),P.mainLoop.func=i,P.mainLoop.arg=r;var a=P.mainLoop.currentlyRunningMainloop;function s(){return a<P.mainLoop.currentlyRunningMainloop?(Wn(),!1):!0}if(P.mainLoop.running=!1,P.mainLoop.runner=function(){if(!Gt){if(P.mainLoop.queue.length>0){var c=Date.now(),u=P.mainLoop.queue.shift();if(u.func(u.arg),P.mainLoop.remainingBlockers){var d=P.mainLoop.remainingBlockers,h=d%1==0?d-1:Math.floor(d);u.counted?P.mainLoop.remainingBlockers=h:(h=h+.5,P.mainLoop.remainingBlockers=(8*d+h)/9)}if(Ze('main loop blocker "'+u.name+'" took '+(Date.now()-c)+" ms"),P.mainLoop.updateStatus(),!s())return;setTimeout(P.mainLoop.runner,0);return}if(s()){if(P.mainLoop.currentFrameNumber=P.mainLoop.currentFrameNumber+1|0,P.mainLoop.timingMode==1&&P.mainLoop.timingValue>1&&P.mainLoop.currentFrameNumber%P.mainLoop.timingValue!=0){P.mainLoop.scheduler();return}else P.mainLoop.timingMode==0&&(P.mainLoop.tickStartTime=vt());B.newRenderingFrameStarted(),typeof B!="undefined"&&B.currentContext&&!B.currentContextIsProxied&&!B.currentContext.attributes.explicitSwapControl&&B.currentContext.GLctx.commit&&B.currentContext.GLctx.commit(),P.mainLoop.method==="timeout"&&n.ctx&&(Re("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),P.mainLoop.method=""),P.mainLoop.runIter(i),W(),s()&&(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),P.mainLoop.scheduler())}}},o||(e&&e>0?Dr(0,1e3/e):Dr(1,1),P.mainLoop.scheduler()),t)throw"unwind"}function On(i,e){if(Gt){ge("user callback triggered after application aborted. Ignoring.");return}if(e){i();return}try{i()}catch(t){if(t instanceof In)return;if(t!=="unwind")throw t&&typeof t=="object"&&t.stack&&ge("exception thrown: "+[t,t.stack]),t}}function ar(i,e){return setTimeout(function(){On(i)},e)}var P={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){P.mainLoop.scheduler=null,P.mainLoop.currentlyRunningMainloop++},resume:function(){P.mainLoop.currentlyRunningMainloop++;var i=P.mainLoop.timingMode,e=P.mainLoop.timingValue,t=P.mainLoop.func;P.mainLoop.func=null,Ui(t,0,!1,P.mainLoop.arg,!0),Dr(i,e),P.mainLoop.scheduler()},updateStatus:function(){if(n.setStatus){var i=n.statusMessage||"Please wait...",e=P.mainLoop.remainingBlockers,t=P.mainLoop.expectedBlockers;e?e<t?n.setStatus(i+" ("+(t-e)+"/"+t+")"):n.setStatus(i):n.setStatus("")}},runIter:function(i){if(!Gt){if(n.preMainLoop){var e=n.preMainLoop();if(e===!1)return}On(i),n.postMainLoop&&n.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(n.preloadPlugins||(n.preloadPlugins=[]),!P.initted){P.initted=!0;try{new Blob,P.hasBlobConstructor=!0}catch(r){P.hasBlobConstructor=!1,Ze("warning: no blob constructor, cannot create blobs with mimetypes")}P.BlobBuilder=typeof MozBlobBuilder!="undefined"?MozBlobBuilder:typeof WebKitBlobBuilder!="undefined"?WebKitBlobBuilder:P.hasBlobConstructor?null:Ze("warning: no BlobBuilder"),P.URLObject=typeof window!="undefined"?window.URL?window.URL:window.webkitURL:void 0,!n.noImageDecoding&&typeof P.URLObject=="undefined"&&(Ze("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),n.noImageDecoding=!0);var i={};i.canHandle=function(o){return!n.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(o)},i.handle=function(o,a,s,A){var c=null;if(P.hasBlobConstructor)try{c=new Blob([o],{type:P.getMimetype(a)}),c.size!==o.length&&(c=new Blob([new Uint8Array(o).buffer],{type:P.getMimetype(a)}))}catch(I){Re("Blob constructor present but fails: "+I+"; falling back to blob builder")}if(!c){var u=new P.BlobBuilder;u.append(new Uint8Array(o).buffer),c=u.getBlob()}var d=P.URLObject.createObjectURL(c);V(typeof d=="string","createObjectURL must return a url as a string");var h=new Image;h.onload=function(){V(h.complete,"Image "+a+" could not be decoded");var m=document.createElement("canvas");m.width=h.width,m.height=h.height;var y=m.getContext("2d");y.drawImage(h,0,0),n.preloadedImages[a]=m,P.URLObject.revokeObjectURL(d),s&&s(o)},h.onerror=function(m){Ze("Image "+d+" could not be decoded"),A&&A()},h.src=d},n.preloadPlugins.push(i);var e={};e.canHandle=function(o){return!n.noAudioDecoding&&o.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},e.handle=function(o,a,s,A){var c=!1;function u(y){c||(c=!0,n.preloadedAudios[a]=y,s&&s(o))}function d(){c||(c=!0,n.preloadedAudios[a]=new Audio,A&&A())}if(P.hasBlobConstructor){try{var h=new Blob([o],{type:P.getMimetype(a)})}catch(y){return d()}var I=P.URLObject.createObjectURL(h);V(typeof I=="string","createObjectURL must return a url as a string");var m=new Audio;m.addEventListener("canplaythrough",function(){u(m)},!1),m.onerror=function(v){if(c)return;Ze("warning: browser could not fully decode audio "+a+", trying slower base64 approach");function x(G){for(var R="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",b="=",N="",$=0,Y=0,Ce=0;Ce<G.length;Ce++)for($=$<<8|G[Ce],Y+=8;Y>=6;){var ke=$>>Y-6&63;Y-=6,N+=R[ke]}return Y==2?(N+=R[($&3)<<4],N+=b+b):Y==4&&(N+=R[($&15)<<2],N+=b),N}m.src="data:audio/x-"+a.substr(-3)+";base64,"+x(o),u(m)},m.src=I,ar(function(){u(m)},1e4)}else return d()},n.preloadPlugins.push(e);var t=n.canvas;t&&(t.requestPointerLock=t.requestPointerLock||t.mozRequestPointerLock||t.webkitRequestPointerLock||t.msRequestPointerLock||function(){},t.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},t.exitPointerLock=t.exitPointerLock.bind(document),n.elementPointerLock&&t.addEventListener("click",function(r){!P.pointerLock&&n.canvas.requestPointerLock&&(n.canvas.requestPointerLock(),r.preventDefault())},!1))}},createContext:function(i,e,t,r){if(e&&n.ctx&&i==n.canvas)return n.ctx;var o,a;if(e){var s={antialias:!1,alpha:!1,majorVersion:typeof WebGL2RenderingContext!="undefined"?2:1};if(r)for(var A in r)s[A]=r[A];typeof B!="undefined"&&(a=B.createContext(i,s),a&&(o=B.getContext(a).GLctx))}else o=i.getContext("2d");return o?(t&&(e||V(typeof M=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),n.ctx=o,e&&B.makeContextCurrent(a),n.useWebGL=e,P.moduleContextCreatedCallbacks.forEach(function(c){c()}),P.init()),o):null},destroyContext:function(i,e,t){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(i,e){P.lockPointer=i,P.resizeCanvas=e,typeof P.lockPointer=="undefined"&&(P.lockPointer=!0),typeof P.resizeCanvas=="undefined"&&(P.resizeCanvas=!1);var t=n.canvas;function r(){P.isFullscreen=!1;var a=t.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===a?(t.exitFullscreen=P.exitFullscreen,P.lockPointer&&t.requestPointerLock(),P.isFullscreen=!0,P.resizeCanvas?P.setFullscreenCanvasSize():P.updateCanvasDimensions(t)):(a.parentNode.insertBefore(t,a),a.parentNode.removeChild(a),P.resizeCanvas?P.setWindowedCanvasSize():P.updateCanvasDimensions(t)),n.onFullScreen&&n.onFullScreen(P.isFullscreen),n.onFullscreen&&n.onFullscreen(P.isFullscreen)}P.fullscreenHandlersInstalled||(P.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",r,!1),document.addEventListener("mozfullscreenchange",r,!1),document.addEventListener("webkitfullscreenchange",r,!1),document.addEventListener("MSFullscreenChange",r,!1));var o=document.createElement("div");t.parentNode.insertBefore(o,t),o.appendChild(t),o.requestFullscreen=o.requestFullscreen||o.mozRequestFullScreen||o.msRequestFullscreen||(o.webkitRequestFullscreen?function(){o.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(o.webkitRequestFullScreen?function(){o.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),o.requestFullscreen()},requestFullScreen:function(){p("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen:function(){if(!P.isFullscreen)return!1;var i=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){};return i.apply(document,[]),!0},nextRAF:0,fakeRequestAnimationFrame:function(i){var e=Date.now();if(P.nextRAF===0)P.nextRAF=e+1e3/60;else for(;e+2>=P.nextRAF;)P.nextRAF+=1e3/60;var t=Math.max(P.nextRAF-e,0);setTimeout(i,t)},requestAnimationFrame:function(i){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(i);return}var e=P.fakeRequestAnimationFrame;e(i)},safeSetTimeout:function(i){return ar(i)},safeRequestAnimationFrame:function(i){return P.requestAnimationFrame(function(){On(i)})},getMimetype:function(i){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[i.substr(i.lastIndexOf(".")+1)]},getUserMedia:function(i){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(i)},getMovementX:function(i){return i.movementX||i.mozMovementX||i.webkitMovementX||0},getMovementY:function(i){return i.movementY||i.mozMovementY||i.webkitMovementY||0},getMouseWheelDelta:function(i){var e=0;switch(i.type){case"DOMMouseScroll":e=i.detail/3;break;case"mousewheel":e=i.wheelDelta/120;break;case"wheel":switch(e=i.deltaY,i.deltaMode){case 0:e/=100;break;case 1:e/=3;break;case 2:e*=80;break;default:throw"unrecognized mouse wheel delta mode: "+i.deltaMode}break;default:throw"unrecognized mouse wheel event: "+i.type}return e},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(i){if(P.pointerLock)i.type!="mousemove"&&"mozMovementX"in i?P.mouseMovementX=P.mouseMovementY=0:(P.mouseMovementX=P.getMovementX(i),P.mouseMovementY=P.getMovementY(i)),typeof SDL!="undefined"?(P.mouseX=SDL.mouseX+P.mouseMovementX,P.mouseY=SDL.mouseY+P.mouseMovementY):(P.mouseX+=P.mouseMovementX,P.mouseY+=P.mouseMovementY);else{var e=n.canvas.getBoundingClientRect(),t=n.canvas.width,r=n.canvas.height,o=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset,a=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;if(V(typeof o!="undefined"&&typeof a!="undefined","Unable to retrieve scroll position, mouse positions likely broken."),i.type==="touchstart"||i.type==="touchend"||i.type==="touchmove"){var s=i.touch;if(s===void 0)return;var A=s.pageX-(o+e.left),c=s.pageY-(a+e.top);A=A*(t/e.width),c=c*(r/e.height);var u={x:A,y:c};if(i.type==="touchstart")P.lastTouches[s.identifier]=u,P.touches[s.identifier]=u;else if(i.type==="touchend"||i.type==="touchmove"){var d=P.touches[s.identifier];d||(d=u),P.lastTouches[s.identifier]=d,P.touches[s.identifier]=u}return}var h=i.pageX-(o+e.left),I=i.pageY-(a+e.top);h=h*(t/e.width),I=I*(r/e.height),P.mouseMovementX=h-P.mouseX,P.mouseMovementY=I-P.mouseY,P.mouseX=h,P.mouseY=I}},resizeListeners:[],updateResizeListeners:function(){var i=n.canvas;P.resizeListeners.forEach(function(e){e(i.width,i.height)})},setCanvasSize:function(i,e,t){var r=n.canvas;P.updateCanvasDimensions(r,i,e),t||P.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var i=De[SDL.screen>>2];i=i|8388608,T[SDL.screen>>2]=i}P.updateCanvasDimensions(n.canvas),P.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var i=De[SDL.screen>>2];i=i&-8388609,T[SDL.screen>>2]=i}P.updateCanvasDimensions(n.canvas),P.updateResizeListeners()},updateCanvasDimensions:function(i,e,t){e&&t?(i.widthNative=e,i.heightNative=t):(e=i.widthNative,t=i.heightNative);var r=e,o=t;if(n.forcedAspectRatio&&n.forcedAspectRatio>0&&(r/o<n.forcedAspectRatio?r=Math.round(o*n.forcedAspectRatio):o=Math.round(r/n.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===i.parentNode&&typeof screen!="undefined"){var a=Math.min(screen.width/r,screen.height/o);r=Math.round(r*a),o=Math.round(o*a)}P.resizeCanvas?(i.width!=r&&(i.width=r),i.height!=o&&(i.height=o),typeof i.style!="undefined"&&(i.style.removeProperty("width"),i.style.removeProperty("height"))):(i.width!=e&&(i.width=e),i.height!=t&&(i.height=t),typeof i.style!="undefined"&&(r!=e||o!=t?(i.style.setProperty("width",r+"px","important"),i.style.setProperty("height",o+"px","important")):(i.style.removeProperty("width"),i.style.removeProperty("height"))))}};function Q(i){for(;i.length>0;){var e=i.shift();if(typeof e=="function"){e(n);continue}var t=e.func;typeof t=="number"?e.arg===void 0?K.get(t)():K.get(t)(e.arg):t(e.arg===void 0?null:e.arg)}}function Tn(i){return Re("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),i}function Yr(i){var e=/\b_Z[\w\d_]+/g;return i.replace(e,function(t){var r=Tn(t);return t===r?t:r+" ["+t+"]"})}function zn(){var i=new Error;if(!i.stack){try{throw new Error}catch(e){i=e}if(!i.stack)return"(no stack trace available)"}return i.stack.toString()}function An(){var i=zn();return n.extraStackTrace&&(i+=`
31
- `+n.extraStackTrace()),Yr(i)}function ji(i){return at(i+16)+16}function _o(i,e){}function vn(i,e){return void 0}function Or(i){this.excPtr=i,this.ptr=i-16,this.set_type=function(e){T[this.ptr+4>>2]=e},this.get_type=function(){return T[this.ptr+4>>2]},this.set_destructor=function(e){T[this.ptr+8>>2]=e},this.get_destructor=function(){return T[this.ptr+8>>2]},this.set_refcount=function(e){T[this.ptr>>2]=e},this.set_caught=function(e){e=e?1:0,xe[this.ptr+12>>0]=e},this.get_caught=function(){return xe[this.ptr+12>>0]!=0},this.set_rethrown=function(e){e=e?1:0,xe[this.ptr+13>>0]=e},this.get_rethrown=function(){return xe[this.ptr+13>>0]!=0},this.init=function(e,t){this.set_type(e),this.set_destructor(t),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var e=T[this.ptr>>2];T[this.ptr>>2]=e+1},this.release_ref=function(){var e=T[this.ptr>>2];return T[this.ptr>>2]=e-1,V(e>0),e===1}}function Ft(i){this.free=function(){_r(this.ptr),this.ptr=0},this.set_base_ptr=function(e){T[this.ptr>>2]=e},this.get_base_ptr=function(){return T[this.ptr>>2]},this.set_adjusted_ptr=function(e){T[this.ptr+4>>2]=e},this.get_adjusted_ptr_addr=function(){return this.ptr+4},this.get_adjusted_ptr=function(){return T[this.ptr+4>>2]},this.get_exception_ptr=function(){var e=jo(this.get_exception_info().get_type());if(e)return T[this.get_base_ptr()>>2];var t=this.get_adjusted_ptr();return t!==0?t:this.get_base_ptr()},this.get_exception_info=function(){return new Or(this.get_base_ptr())},i===void 0?(this.ptr=at(8),this.set_adjusted_ptr(0)):this.ptr=i}var zt=[];function Xr(i){i.add_ref()}var Qt=0;function Qn(i){var e=new Ft(i),t=e.get_exception_info();return t.get_caught()||(t.set_caught(!0),Qt--),t.set_rethrown(!1),zt.push(e),Xr(t),e.get_exception_ptr()}var $t=0;function kt(i){try{return _r(new Or(i).ptr)}catch(e){ge("exception during cxa_free_exception: "+e)}}function Tr(i){if(i.release_ref()&&!i.get_rethrown()){var e=i.get_destructor();e&&K.get(e)(i.excPtr),kt(i.excPtr)}}function Li(){oe(0),V(zt.length>0);var i=zt.pop();Tr(i.get_exception_info()),i.free(),$t=0}function $n(i){var e=new Ft(i),t=e.get_base_ptr();throw $t||($t=t),e.free(),t+" - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch."}function Pn(){var i=$t;if(!i)return yt(0),0;var e=new Or(i),t=e.get_type(),r=new Ft;if(r.set_base_ptr(i),r.set_adjusted_ptr(i),!t)return yt(0),r.ptr|0;for(var o=Array.prototype.slice.call(arguments),a=0;a<o.length;a++){var s=o[a];if(s===0||s===t)break;if(re(s,t,r.get_adjusted_ptr_addr()))return yt(s),r.ptr|0}return yt(t),r.ptr|0}function Hi(){var i=$t;if(!i)return yt(0),0;var e=new Or(i),t=e.get_type(),r=new Ft;if(r.set_base_ptr(i),r.set_adjusted_ptr(i),!t)return yt(0),r.ptr|0;for(var o=Array.prototype.slice.call(arguments),a=0;a<o.length;a++){var s=o[a];if(s===0||s===t)break;if(re(s,t,r.get_adjusted_ptr_addr()))return yt(s),r.ptr|0}return yt(t),r.ptr|0}function Kn(){var i=zt.pop();i||p("no exception to throw");var e=i.get_exception_info(),t=i.get_base_ptr();throw e.get_rethrown()?i.free():(zt.push(i),e.set_rethrown(!0),e.set_caught(!1),Qt++),$t=t,t+" - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch."}function Gi(i,e){return void 0}function Yi(i,e,t){var r=new Or(i);throw r.init(e,t),$t=i,Qt++,i+" - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch."}function Jn(i){return T[rn()>>2]=i,i}var he={splitPath:function(i){var e=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return e.exec(i).slice(1)},normalizeArray:function(i,e){for(var t=0,r=i.length-1;r>=0;r--){var o=i[r];o==="."?i.splice(r,1):o===".."?(i.splice(r,1),t++):t&&(i.splice(r,1),t--)}if(e)for(;t;t--)i.unshift("..");return i},normalize:function(i){var e=i.charAt(0)==="/",t=i.substr(-1)==="/";return i=he.normalizeArray(i.split("/").filter(function(r){return!!r}),!e).join("/"),!i&&!e&&(i="."),i&&t&&(i+="/"),(e?"/":"")+i},dirname:function(i){var e=he.splitPath(i),t=e[0],r=e[1];return!t&&!r?".":(r&&(r=r.substr(0,r.length-1)),t+r)},basename:function(i){if(i==="/")return"/";i=he.normalize(i),i=i.replace(/\/$/,"");var e=i.lastIndexOf("/");return e===-1?i:i.substr(e+1)},extname:function(i){return he.splitPath(i)[3]},join:function(){var i=Array.prototype.slice.call(arguments,0);return he.normalize(i.join("/"))},join2:function(i,e){return he.normalize(i+"/"+e)}};function Ie(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var i=new Uint8Array(1);return function(){return crypto.getRandomValues(i),i[0]}}else if(Ct)try{var e=Ic("crypto");return function(){return e.randomBytes(1)[0]}}catch(t){}return function(){p("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };")}}var gt={resolve:function(){for(var i="",e=!1,t=arguments.length-1;t>=-1&&!e;t--){var r=t>=0?arguments[t]:f.cwd();if(typeof r!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!r)return"";i=r+"/"+i,e=r.charAt(0)==="/"}return i=he.normalizeArray(i.split("/").filter(function(o){return!!o}),!e).join("/"),(e?"/":"")+i||"."},relative:function(i,e){i=gt.resolve(i).substr(1),e=gt.resolve(e).substr(1);function t(u){for(var d=0;d<u.length&&u[d]==="";d++);for(var h=u.length-1;h>=0&&u[h]==="";h--);return d>h?[]:u.slice(d,h-d+1)}for(var r=t(i.split("/")),o=t(e.split("/")),a=Math.min(r.length,o.length),s=a,A=0;A<a;A++)if(r[A]!==o[A]){s=A;break}for(var c=[],A=s;A<r.length;A++)c.push("..");return c=c.concat(o.slice(s)),c.join("/")}},Pe={ttys:[],init:function(){},shutdown:function(){},register:function(i,e){Pe.ttys[i]={input:[],output:[],ops:e},f.registerDevice(i,Pe.stream_ops)},stream_ops:{open:function(i){var e=Pe.ttys[i.node.rdev];if(!e)throw new f.ErrnoError(43);i.tty=e,i.seekable=!1},close:function(i){i.tty.ops.flush(i.tty)},flush:function(i){i.tty.ops.flush(i.tty)},read:function(i,e,t,r,o){if(!i.tty||!i.tty.ops.get_char)throw new f.ErrnoError(60);for(var a=0,s=0;s<r;s++){var A;try{A=i.tty.ops.get_char(i.tty)}catch(c){throw new f.ErrnoError(29)}if(A===void 0&&a===0)throw new f.ErrnoError(6);if(A==null)break;a++,e[t+s]=A}return a&&(i.node.timestamp=Date.now()),a},write:function(i,e,t,r,o){if(!i.tty||!i.tty.ops.put_char)throw new f.ErrnoError(60);try{for(var a=0;a<r;a++)i.tty.ops.put_char(i.tty,e[t+a])}catch(s){throw new f.ErrnoError(29)}return r&&(i.node.timestamp=Date.now()),a}},default_tty_ops:{get_char:function(i){if(!i.input.length){var e=null;if(Ct){var t=256,r=Buffer.alloc(t),o=0;try{o=nodeFS.readSync(process.stdin.fd,r,0,t,null)}catch(a){if(a.toString().includes("EOF"))o=0;else throw a}o>0?e=r.slice(0,o).toString("utf-8"):e=null}else typeof window!="undefined"&&typeof window.prompt=="function"?(e=window.prompt("Input: "),e!==null&&(e+=`
32
- `)):typeof readline=="function"&&(e=readline(),e!==null&&(e+=`
33
- `));if(!e)return null;i.input=uo(e,!0)}return i.input.shift()},put_char:function(i,e){e===null||e===10?(Ze(Nr(i.output,0)),i.output=[]):e!=0&&i.output.push(e)},flush:function(i){i.output&&i.output.length>0&&(Ze(Nr(i.output,0)),i.output=[])}},default_tty1_ops:{put_char:function(i,e){e===null||e===10?(ge(Nr(i.output,0)),i.output=[]):e!=0&&i.output.push(e)},flush:function(i){i.output&&i.output.length>0&&(ge(Nr(i.output,0)),i.output=[])}}};function bt(i,e){Se.fill(0,i,i+e)}function Xi(i,e){return V(e,"alignment argument is required"),Math.ceil(i/e)*e}function Zn(i){i=Xi(i,65536);var e=iA(65536,i);return e?(bt(e,i),e):0}var ie={ops_table:null,mount:function(i){return ie.createNode(null,"/",16895,0)},createNode:function(i,e,t,r){if(f.isBlkdev(t)||f.isFIFO(t))throw new f.ErrnoError(63);ie.ops_table||(ie.ops_table={dir:{node:{getattr:ie.node_ops.getattr,setattr:ie.node_ops.setattr,lookup:ie.node_ops.lookup,mknod:ie.node_ops.mknod,rename:ie.node_ops.rename,unlink:ie.node_ops.unlink,rmdir:ie.node_ops.rmdir,readdir:ie.node_ops.readdir,symlink:ie.node_ops.symlink},stream:{llseek:ie.stream_ops.llseek}},file:{node:{getattr:ie.node_ops.getattr,setattr:ie.node_ops.setattr},stream:{llseek:ie.stream_ops.llseek,read:ie.stream_ops.read,write:ie.stream_ops.write,allocate:ie.stream_ops.allocate,mmap:ie.stream_ops.mmap,msync:ie.stream_ops.msync}},link:{node:{getattr:ie.node_ops.getattr,setattr:ie.node_ops.setattr,readlink:ie.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ie.node_ops.getattr,setattr:ie.node_ops.setattr},stream:f.chrdev_stream_ops}});var o=f.createNode(i,e,t,r);return f.isDir(o.mode)?(o.node_ops=ie.ops_table.dir.node,o.stream_ops=ie.ops_table.dir.stream,o.contents={}):f.isFile(o.mode)?(o.node_ops=ie.ops_table.file.node,o.stream_ops=ie.ops_table.file.stream,o.usedBytes=0,o.contents=null):f.isLink(o.mode)?(o.node_ops=ie.ops_table.link.node,o.stream_ops=ie.ops_table.link.stream):f.isChrdev(o.mode)&&(o.node_ops=ie.ops_table.chrdev.node,o.stream_ops=ie.ops_table.chrdev.stream),o.timestamp=Date.now(),i&&(i.contents[e]=o,i.timestamp=o.timestamp),o},getFileDataAsTypedArray:function(i){return i.contents?i.contents.subarray?i.contents.subarray(0,i.usedBytes):new Uint8Array(i.contents):new Uint8Array(0)},expandFileStorage:function(i,e){var t=i.contents?i.contents.length:0;if(!(t>=e)){var r=1024*1024;e=Math.max(e,t*(t<r?2:1.125)>>>0),t!=0&&(e=Math.max(e,256));var o=i.contents;i.contents=new Uint8Array(e),i.usedBytes>0&&i.contents.set(o.subarray(0,i.usedBytes),0)}},resizeFileStorage:function(i,e){if(i.usedBytes!=e)if(e==0)i.contents=null,i.usedBytes=0;else{var t=i.contents;i.contents=new Uint8Array(e),t&&i.contents.set(t.subarray(0,Math.min(e,i.usedBytes))),i.usedBytes=e}},node_ops:{getattr:function(i){var e={};return e.dev=f.isChrdev(i.mode)?i.id:1,e.ino=i.id,e.mode=i.mode,e.nlink=1,e.uid=0,e.gid=0,e.rdev=i.rdev,f.isDir(i.mode)?e.size=4096:f.isFile(i.mode)?e.size=i.usedBytes:f.isLink(i.mode)?e.size=i.link.length:e.size=0,e.atime=new Date(i.timestamp),e.mtime=new Date(i.timestamp),e.ctime=new Date(i.timestamp),e.blksize=4096,e.blocks=Math.ceil(e.size/e.blksize),e},setattr:function(i,e){e.mode!==void 0&&(i.mode=e.mode),e.timestamp!==void 0&&(i.timestamp=e.timestamp),e.size!==void 0&&ie.resizeFileStorage(i,e.size)},lookup:function(i,e){throw f.genericErrors[44]},mknod:function(i,e,t,r){return ie.createNode(i,e,t,r)},rename:function(i,e,t){if(f.isDir(i.mode)){var r;try{r=f.lookupNode(e,t)}catch(a){}if(r)for(var o in r.contents)throw new f.ErrnoError(55)}delete i.parent.contents[i.name],i.parent.timestamp=Date.now(),i.name=t,e.contents[t]=i,e.timestamp=i.parent.timestamp,i.parent=e},unlink:function(i,e){delete i.contents[e],i.timestamp=Date.now()},rmdir:function(i,e){var t=f.lookupNode(i,e);for(var r in t.contents)throw new f.ErrnoError(55);delete i.contents[e],i.timestamp=Date.now()},readdir:function(i){var e=[".",".."];for(var t in i.contents)i.contents.hasOwnProperty(t)&&e.push(t);return e},symlink:function(i,e,t){var r=ie.createNode(i,e,41471,0);return r.link=t,r},readlink:function(i){if(!f.isLink(i.mode))throw new f.ErrnoError(28);return i.link}},stream_ops:{read:function(i,e,t,r,o){var a=i.node.contents;if(o>=i.node.usedBytes)return 0;var s=Math.min(i.node.usedBytes-o,r);if(V(s>=0),s>8&&a.subarray)e.set(a.subarray(o,o+s),t);else for(var A=0;A<s;A++)e[t+A]=a[o+A];return s},write:function(i,e,t,r,o,a){if(V(!(e instanceof ArrayBuffer)),e.buffer===xe.buffer&&(a=!1),!r)return 0;var s=i.node;if(s.timestamp=Date.now(),e.subarray&&(!s.contents||s.contents.subarray)){if(a)return V(o===0,"canOwn must imply no weird position inside the file"),s.contents=e.subarray(t,t+r),s.usedBytes=r,r;if(s.usedBytes===0&&o===0)return s.contents=e.slice(t,t+r),s.usedBytes=r,r;if(o+r<=s.usedBytes)return s.contents.set(e.subarray(t,t+r),o),r}if(ie.expandFileStorage(s,o+r),s.contents.subarray&&e.subarray)s.contents.set(e.subarray(t,t+r),o);else for(var A=0;A<r;A++)s.contents[o+A]=e[t+A];return s.usedBytes=Math.max(s.usedBytes,o+r),r},llseek:function(i,e,t){var r=e;if(t===1?r+=i.position:t===2&&f.isFile(i.node.mode)&&(r+=i.node.usedBytes),r<0)throw new f.ErrnoError(28);return r},allocate:function(i,e,t){ie.expandFileStorage(i.node,e+t),i.node.usedBytes=Math.max(i.node.usedBytes,e+t)},mmap:function(i,e,t,r,o,a){if(e!==0)throw new f.ErrnoError(28);if(!f.isFile(i.node.mode))throw new f.ErrnoError(43);var s,A,c=i.node.contents;if(!(a&2)&&c.buffer===Ur)A=!1,s=c.byteOffset;else{if((r>0||r+t<c.length)&&(c.subarray?c=c.subarray(r,r+t):c=Array.prototype.slice.call(c,r,r+t)),A=!0,s=Zn(t),!s)throw new f.ErrnoError(48);xe.set(c,s)}return{ptr:s,allocated:A}},msync:function(i,e,t,r,o){if(!f.isFile(i.node.mode))throw new f.ErrnoError(43);if(o&2)return 0;var a=ie.stream_ops.write(i,e,0,r,t,!1);return 0}}};function se(i,e,t,r){var o=r?"":ir("al "+i);tr(i,function(a){V(a,'Loading data file "'+i+'" failed (no arrayBuffer).'),e(new Uint8Array(a)),o&&wr(o)},function(a){if(t)t();else throw'Loading data file "'+i+'" failed.'}),o&&Mt(o)}var Vi={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"},cn={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},f={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(i,e){if(i=gt.resolve(f.cwd(),i),e=e||{},!i)return{path:"",node:null};var t={follow_mount:!0,recurse_count:0};for(var r in t)e[r]===void 0&&(e[r]=t[r]);if(e.recurse_count>8)throw new f.ErrnoError(32);for(var o=he.normalizeArray(i.split("/").filter(function(I){return!!I}),!1),a=f.root,s="/",A=0;A<o.length;A++){var c=A===o.length-1;if(c&&e.parent)break;if(a=f.lookupNode(a,o[A]),s=he.join2(s,o[A]),f.isMountpoint(a)&&(!c||c&&e.follow_mount)&&(a=a.mounted.root),!c||e.follow)for(var u=0;f.isLink(a.mode);){var d=f.readlink(s);s=gt.resolve(he.dirname(s),d);var h=f.lookupPath(s,{recurse_count:e.recurse_count});if(a=h.node,u++>40)throw new f.ErrnoError(32)}}return{path:s,node:a}},getPath:function(i){for(var e;;){if(f.isRoot(i)){var t=i.mount.mountpoint;return e?t[t.length-1]!=="/"?t+"/"+e:t+e:t}e=e?i.name+"/"+e:i.name,i=i.parent}},hashName:function(i,e){for(var t=0,r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r)|0;return(i+t>>>0)%f.nameTable.length},hashAddNode:function(i){var e=f.hashName(i.parent.id,i.name);i.name_next=f.nameTable[e],f.nameTable[e]=i},hashRemoveNode:function(i){var e=f.hashName(i.parent.id,i.name);if(f.nameTable[e]===i)f.nameTable[e]=i.name_next;else for(var t=f.nameTable[e];t;){if(t.name_next===i){t.name_next=i.name_next;break}t=t.name_next}},lookupNode:function(i,e){var t=f.mayLookup(i);if(t)throw new f.ErrnoError(t,i);for(var r=f.hashName(i.id,e),o=f.nameTable[r];o;o=o.name_next){var a=o.name;if(o.parent.id===i.id&&a===e)return o}return f.lookup(i,e)},createNode:function(i,e,t,r){V(typeof i=="object");var o=new f.FSNode(i,e,t,r);return f.hashAddNode(o),o},destroyNode:function(i){f.hashRemoveNode(i)},isRoot:function(i){return i===i.parent},isMountpoint:function(i){return!!i.mounted},isFile:function(i){return(i&61440)===32768},isDir:function(i){return(i&61440)===16384},isLink:function(i){return(i&61440)===40960},isChrdev:function(i){return(i&61440)===8192},isBlkdev:function(i){return(i&61440)===24576},isFIFO:function(i){return(i&61440)===4096},isSocket:function(i){return(i&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(i){var e=f.flagModes[i];if(typeof e=="undefined")throw new Error("Unknown file open mode: "+i);return e},flagsToPermissionString:function(i){var e=["r","w","rw"][i&3];return i&512&&(e+="w"),e},nodePermissions:function(i,e){return f.ignorePermissions?0:e.includes("r")&&!(i.mode&292)||e.includes("w")&&!(i.mode&146)||e.includes("x")&&!(i.mode&73)?2:0},mayLookup:function(i){var e=f.nodePermissions(i,"x");return e||(i.node_ops.lookup?0:2)},mayCreate:function(i,e){try{var t=f.lookupNode(i,e);return 20}catch(r){}return f.nodePermissions(i,"wx")},mayDelete:function(i,e,t){var r;try{r=f.lookupNode(i,e)}catch(a){return a.errno}var o=f.nodePermissions(i,"wx");if(o)return o;if(t){if(!f.isDir(r.mode))return 54;if(f.isRoot(r)||f.getPath(r)===f.cwd())return 10}else if(f.isDir(r.mode))return 31;return 0},mayOpen:function(i,e){return i?f.isLink(i.mode)?32:f.isDir(i.mode)&&(f.flagsToPermissionString(e)!=="r"||e&512)?31:f.nodePermissions(i,f.flagsToPermissionString(e)):44},MAX_OPEN_FDS:4096,nextfd:function(i,e){i=i||0,e=e||f.MAX_OPEN_FDS;for(var t=i;t<=e;t++)if(!f.streams[t])return t;throw new f.ErrnoError(33)},getStream:function(i){return f.streams[i]},createStream:function(i,e,t){f.FSStream||(f.FSStream=function(){},f.FSStream.prototype={object:{get:function(){return this.node},set:function(s){this.node=s}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}});var r=new f.FSStream;for(var o in i)r[o]=i[o];i=r;var a=f.nextfd(e,t);return i.fd=a,f.streams[a]=i,i},closeStream:function(i){f.streams[i]=null},chrdev_stream_ops:{open:function(i){var e=f.getDevice(i.node.rdev);i.stream_ops=e.stream_ops,i.stream_ops.open&&i.stream_ops.open(i)},llseek:function(){throw new f.ErrnoError(70)}},major:function(i){return i>>8},minor:function(i){return i&255},makedev:function(i,e){return i<<8|e},registerDevice:function(i,e){f.devices[i]={stream_ops:e}},getDevice:function(i){return f.devices[i]},getMounts:function(i){for(var e=[],t=[i];t.length;){var r=t.pop();e.push(r),t.push.apply(t,r.mounts)}return e},syncfs:function(i,e){typeof i=="function"&&(e=i,i=!1),f.syncFSRequests++,f.syncFSRequests>1&&ge("warning: "+f.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var t=f.getMounts(f.root.mount),r=0;function o(s){return V(f.syncFSRequests>0),f.syncFSRequests--,e(s)}function a(s){if(s)return a.errored?void 0:(a.errored=!0,o(s));++r>=t.length&&o(null)}t.forEach(function(s){if(!s.type.syncfs)return a(null);s.type.syncfs(s,i,a)})},mount:function(i,e,t){if(typeof i=="string")throw i;var r=t==="/",o=!t,a;if(r&&f.root)throw new f.ErrnoError(10);if(!r&&!o){var s=f.lookupPath(t,{follow_mount:!1});if(t=s.path,a=s.node,f.isMountpoint(a))throw new f.ErrnoError(10);if(!f.isDir(a.mode))throw new f.ErrnoError(54)}var A={type:i,opts:e,mountpoint:t,mounts:[]},c=i.mount(A);return c.mount=A,A.root=c,r?f.root=c:a&&(a.mounted=A,a.mount&&a.mount.mounts.push(A)),c},unmount:function(i){var e=f.lookupPath(i,{follow_mount:!1});if(!f.isMountpoint(e.node))throw new f.ErrnoError(28);var t=e.node,r=t.mounted,o=f.getMounts(r);Object.keys(f.nameTable).forEach(function(s){for(var A=f.nameTable[s];A;){var c=A.name_next;o.includes(A.mount)&&f.destroyNode(A),A=c}}),t.mounted=null;var a=t.mount.mounts.indexOf(r);V(a!==-1),t.mount.mounts.splice(a,1)},lookup:function(i,e){return i.node_ops.lookup(i,e)},mknod:function(i,e,t){var r=f.lookupPath(i,{parent:!0}),o=r.node,a=he.basename(i);if(!a||a==="."||a==="..")throw new f.ErrnoError(28);var s=f.mayCreate(o,a);if(s)throw new f.ErrnoError(s);if(!o.node_ops.mknod)throw new f.ErrnoError(63);return o.node_ops.mknod(o,a,e,t)},create:function(i,e){return e=e!==void 0?e:438,e&=4095,e|=32768,f.mknod(i,e,0)},mkdir:function(i,e){return e=e!==void 0?e:511,e&=1023,e|=16384,f.mknod(i,e,0)},mkdirTree:function(i,e){for(var t=i.split("/"),r="",o=0;o<t.length;++o)if(t[o]){r+="/"+t[o];try{f.mkdir(r,e)}catch(a){if(a.errno!=20)throw a}}},mkdev:function(i,e,t){return typeof t=="undefined"&&(t=e,e=438),e|=8192,f.mknod(i,e,t)},symlink:function(i,e){if(!gt.resolve(i))throw new f.ErrnoError(44);var t=f.lookupPath(e,{parent:!0}),r=t.node;if(!r)throw new f.ErrnoError(44);var o=he.basename(e),a=f.mayCreate(r,o);if(a)throw new f.ErrnoError(a);if(!r.node_ops.symlink)throw new f.ErrnoError(63);return r.node_ops.symlink(r,o,i)},rename:function(i,e){var t=he.dirname(i),r=he.dirname(e),o=he.basename(i),a=he.basename(e),s,A,c;if(s=f.lookupPath(i,{parent:!0}),A=s.node,s=f.lookupPath(e,{parent:!0}),c=s.node,!A||!c)throw new f.ErrnoError(44);if(A.mount!==c.mount)throw new f.ErrnoError(75);var u=f.lookupNode(A,o),d=gt.relative(i,r);if(d.charAt(0)!==".")throw new f.ErrnoError(28);if(d=gt.relative(e,t),d.charAt(0)!==".")throw new f.ErrnoError(55);var h;try{h=f.lookupNode(c,a)}catch(y){}if(u!==h){var I=f.isDir(u.mode),m=f.mayDelete(A,o,I);if(m)throw new f.ErrnoError(m);if(m=h?f.mayDelete(c,a,I):f.mayCreate(c,a),m)throw new f.ErrnoError(m);if(!A.node_ops.rename)throw new f.ErrnoError(63);if(f.isMountpoint(u)||h&&f.isMountpoint(h))throw new f.ErrnoError(10);if(c!==A&&(m=f.nodePermissions(A,"w"),m))throw new f.ErrnoError(m);try{f.trackingDelegate.willMovePath&&f.trackingDelegate.willMovePath(i,e)}catch(y){ge("FS.trackingDelegate['willMovePath']('"+i+"', '"+e+"') threw an exception: "+y.message)}f.hashRemoveNode(u);try{A.node_ops.rename(u,c,a)}catch(y){throw y}finally{f.hashAddNode(u)}try{f.trackingDelegate.onMovePath&&f.trackingDelegate.onMovePath(i,e)}catch(y){ge("FS.trackingDelegate['onMovePath']('"+i+"', '"+e+"') threw an exception: "+y.message)}}},rmdir:function(i){var e=f.lookupPath(i,{parent:!0}),t=e.node,r=he.basename(i),o=f.lookupNode(t,r),a=f.mayDelete(t,r,!0);if(a)throw new f.ErrnoError(a);if(!t.node_ops.rmdir)throw new f.ErrnoError(63);if(f.isMountpoint(o))throw new f.ErrnoError(10);try{f.trackingDelegate.willDeletePath&&f.trackingDelegate.willDeletePath(i)}catch(s){ge("FS.trackingDelegate['willDeletePath']('"+i+"') threw an exception: "+s.message)}t.node_ops.rmdir(t,r),f.destroyNode(o);try{f.trackingDelegate.onDeletePath&&f.trackingDelegate.onDeletePath(i)}catch(s){ge("FS.trackingDelegate['onDeletePath']('"+i+"') threw an exception: "+s.message)}},readdir:function(i){var e=f.lookupPath(i,{follow:!0}),t=e.node;if(!t.node_ops.readdir)throw new f.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(i){var e=f.lookupPath(i,{parent:!0}),t=e.node,r=he.basename(i),o=f.lookupNode(t,r),a=f.mayDelete(t,r,!1);if(a)throw new f.ErrnoError(a);if(!t.node_ops.unlink)throw new f.ErrnoError(63);if(f.isMountpoint(o))throw new f.ErrnoError(10);try{f.trackingDelegate.willDeletePath&&f.trackingDelegate.willDeletePath(i)}catch(s){ge("FS.trackingDelegate['willDeletePath']('"+i+"') threw an exception: "+s.message)}t.node_ops.unlink(t,r),f.destroyNode(o);try{f.trackingDelegate.onDeletePath&&f.trackingDelegate.onDeletePath(i)}catch(s){ge("FS.trackingDelegate['onDeletePath']('"+i+"') threw an exception: "+s.message)}},readlink:function(i){var e=f.lookupPath(i),t=e.node;if(!t)throw new f.ErrnoError(44);if(!t.node_ops.readlink)throw new f.ErrnoError(28);return gt.resolve(f.getPath(t.parent),t.node_ops.readlink(t))},stat:function(i,e){var t=f.lookupPath(i,{follow:!e}),r=t.node;if(!r)throw new f.ErrnoError(44);if(!r.node_ops.getattr)throw new f.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(i){return f.stat(i,!0)},chmod:function(i,e,t){var r;if(typeof i=="string"){var o=f.lookupPath(i,{follow:!t});r=o.node}else r=i;if(!r.node_ops.setattr)throw new f.ErrnoError(63);r.node_ops.setattr(r,{mode:e&4095|r.mode&-4096,timestamp:Date.now()})},lchmod:function(i,e){f.chmod(i,e,!0)},fchmod:function(i,e){var t=f.getStream(i);if(!t)throw new f.ErrnoError(8);f.chmod(t.node,e)},chown:function(i,e,t,r){var o;if(typeof i=="string"){var a=f.lookupPath(i,{follow:!r});o=a.node}else o=i;if(!o.node_ops.setattr)throw new f.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:function(i,e,t){f.chown(i,e,t,!0)},fchown:function(i,e,t){var r=f.getStream(i);if(!r)throw new f.ErrnoError(8);f.chown(r.node,e,t)},truncate:function(i,e){if(e<0)throw new f.ErrnoError(28);var t;if(typeof i=="string"){var r=f.lookupPath(i,{follow:!0});t=r.node}else t=i;if(!t.node_ops.setattr)throw new f.ErrnoError(63);if(f.isDir(t.mode))throw new f.ErrnoError(31);if(!f.isFile(t.mode))throw new f.ErrnoError(28);var o=f.nodePermissions(t,"w");if(o)throw new f.ErrnoError(o);t.node_ops.setattr(t,{size:e,timestamp:Date.now()})},ftruncate:function(i,e){var t=f.getStream(i);if(!t)throw new f.ErrnoError(8);if((t.flags&2097155)===0)throw new f.ErrnoError(28);f.truncate(t.node,e)},utime:function(i,e,t){var r=f.lookupPath(i,{follow:!0}),o=r.node;o.node_ops.setattr(o,{timestamp:Math.max(e,t)})},open:function(i,e,t,r,o){if(i==="")throw new f.ErrnoError(44);e=typeof e=="string"?f.modeStringToFlags(e):e,t=typeof t=="undefined"?438:t,e&64?t=t&4095|32768:t=0;var a;if(typeof i=="object")a=i;else{i=he.normalize(i);try{var s=f.lookupPath(i,{follow:!(e&131072)});a=s.node}catch(h){}}var A=!1;if(e&64)if(a){if(e&128)throw new f.ErrnoError(20)}else a=f.mknod(i,t,0),A=!0;if(!a)throw new f.ErrnoError(44);if(f.isChrdev(a.mode)&&(e&=-513),e&65536&&!f.isDir(a.mode))throw new f.ErrnoError(54);if(!A){var c=f.mayOpen(a,e);if(c)throw new f.ErrnoError(c)}e&512&&f.truncate(a,0),e&=-131713;var u=f.createStream({node:a,path:f.getPath(a),flags:e,seekable:!0,position:0,stream_ops:a.stream_ops,ungotten:[],error:!1},r,o);u.stream_ops.open&&u.stream_ops.open(u),n.logReadFiles&&!(e&1)&&(f.readFiles||(f.readFiles={}),i in f.readFiles||(f.readFiles[i]=1,ge("FS.trackingDelegate error on read file: "+i)));try{if(f.trackingDelegate.onOpenFile){var d=0;(e&2097155)!==1&&(d|=f.tracking.openFlags.READ),(e&2097155)!==0&&(d|=f.tracking.openFlags.WRITE),f.trackingDelegate.onOpenFile(i,d)}}catch(h){ge("FS.trackingDelegate['onOpenFile']('"+i+"', flags) threw an exception: "+h.message)}return u},close:function(i){if(f.isClosed(i))throw new f.ErrnoError(8);i.getdents&&(i.getdents=null);try{i.stream_ops.close&&i.stream_ops.close(i)}catch(e){throw e}finally{f.closeStream(i.fd)}i.fd=null},isClosed:function(i){return i.fd===null},llseek:function(i,e,t){if(f.isClosed(i))throw new f.ErrnoError(8);if(!i.seekable||!i.stream_ops.llseek)throw new f.ErrnoError(70);if(t!=0&&t!=1&&t!=2)throw new f.ErrnoError(28);return i.position=i.stream_ops.llseek(i,e,t),i.ungotten=[],i.position},read:function(i,e,t,r,o){if(r<0||o<0)throw new f.ErrnoError(28);if(f.isClosed(i))throw new f.ErrnoError(8);if((i.flags&2097155)===1)throw new f.ErrnoError(8);if(f.isDir(i.node.mode))throw new f.ErrnoError(31);if(!i.stream_ops.read)throw new f.ErrnoError(28);var a=typeof o!="undefined";if(!a)o=i.position;else if(!i.seekable)throw new f.ErrnoError(70);var s=i.stream_ops.read(i,e,t,r,o);return a||(i.position+=s),s},write:function(i,e,t,r,o,a){if(r<0||o<0)throw new f.ErrnoError(28);if(f.isClosed(i))throw new f.ErrnoError(8);if((i.flags&2097155)===0)throw new f.ErrnoError(8);if(f.isDir(i.node.mode))throw new f.ErrnoError(31);if(!i.stream_ops.write)throw new f.ErrnoError(28);i.seekable&&i.flags&1024&&f.llseek(i,0,2);var s=typeof o!="undefined";if(!s)o=i.position;else if(!i.seekable)throw new f.ErrnoError(70);var A=i.stream_ops.write(i,e,t,r,o,a);s||(i.position+=A);try{i.path&&f.trackingDelegate.onWriteToFile&&f.trackingDelegate.onWriteToFile(i.path)}catch(c){ge("FS.trackingDelegate['onWriteToFile']('"+i.path+"') threw an exception: "+c.message)}return A},allocate:function(i,e,t){if(f.isClosed(i))throw new f.ErrnoError(8);if(e<0||t<=0)throw new f.ErrnoError(28);if((i.flags&2097155)===0)throw new f.ErrnoError(8);if(!f.isFile(i.node.mode)&&!f.isDir(i.node.mode))throw new f.ErrnoError(43);if(!i.stream_ops.allocate)throw new f.ErrnoError(138);i.stream_ops.allocate(i,e,t)},mmap:function(i,e,t,r,o,a){if((o&2)!==0&&(a&2)===0&&(i.flags&2097155)!==2)throw new f.ErrnoError(2);if((i.flags&2097155)===1)throw new f.ErrnoError(2);if(!i.stream_ops.mmap)throw new f.ErrnoError(43);return i.stream_ops.mmap(i,e,t,r,o,a)},msync:function(i,e,t,r,o){return!i||!i.stream_ops.msync?0:i.stream_ops.msync(i,e,t,r,o)},munmap:function(i){return 0},ioctl:function(i,e,t){if(!i.stream_ops.ioctl)throw new f.ErrnoError(59);return i.stream_ops.ioctl(i,e,t)},readFile:function(i,e){if(e=e||{},e.flags=e.flags||0,e.encoding=e.encoding||"binary",e.encoding!=="utf8"&&e.encoding!=="binary")throw new Error('Invalid encoding type "'+e.encoding+'"');var t,r=f.open(i,e.flags),o=f.stat(i),a=o.size,s=new Uint8Array(a);return f.read(r,s,0,a,0),e.encoding==="utf8"?t=Nr(s,0):e.encoding==="binary"&&(t=s),f.close(r),t},writeFile:function(i,e,t){t=t||{},t.flags=t.flags||577;var r=f.open(i,t.flags,t.mode);if(typeof e=="string"){var o=new Uint8Array(tt(e)+1),a=St(e,o,0,o.length);f.write(r,o,0,a,void 0,t.canOwn)}else if(ArrayBuffer.isView(e))f.write(r,e,0,e.byteLength,void 0,t.canOwn);else throw new Error("Unsupported data type");f.close(r)},cwd:function(){return f.currentPath},chdir:function(i){var e=f.lookupPath(i,{follow:!0});if(e.node===null)throw new f.ErrnoError(44);if(!f.isDir(e.node.mode))throw new f.ErrnoError(54);var t=f.nodePermissions(e.node,"x");if(t)throw new f.ErrnoError(t);f.currentPath=e.path},createDefaultDirectories:function(){f.mkdir("/tmp"),f.mkdir("/home"),f.mkdir("/home/web_user")},createDefaultDevices:function(){f.mkdir("/dev"),f.registerDevice(f.makedev(1,3),{read:function(){return 0},write:function(e,t,r,o,a){return o}}),f.mkdev("/dev/null",f.makedev(1,3)),Pe.register(f.makedev(5,0),Pe.default_tty_ops),Pe.register(f.makedev(6,0),Pe.default_tty1_ops),f.mkdev("/dev/tty",f.makedev(5,0)),f.mkdev("/dev/tty1",f.makedev(6,0));var i=Ie();f.createDevice("/dev","random",i),f.createDevice("/dev","urandom",i),f.mkdir("/dev/shm"),f.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){f.mkdir("/proc");var i=f.mkdir("/proc/self");f.mkdir("/proc/self/fd"),f.mount({mount:function(){var e=f.createNode(i,"fd",16895,73);return e.node_ops={lookup:function(t,r){var o=+r,a=f.getStream(o);if(!a)throw new f.ErrnoError(8);var s={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return a.path}}};return s.parent=s,s}},e}},{},"/proc/self/fd")},createStandardStreams:function(){n.stdin?f.createDevice("/dev","stdin",n.stdin):f.symlink("/dev/tty","/dev/stdin"),n.stdout?f.createDevice("/dev","stdout",null,n.stdout):f.symlink("/dev/tty","/dev/stdout"),n.stderr?f.createDevice("/dev","stderr",null,n.stderr):f.symlink("/dev/tty1","/dev/stderr");var i=f.open("/dev/stdin",0),e=f.open("/dev/stdout",1),t=f.open("/dev/stderr",1);V(i.fd===0,"invalid handle for stdin ("+i.fd+")"),V(e.fd===1,"invalid handle for stdout ("+e.fd+")"),V(t.fd===2,"invalid handle for stderr ("+t.fd+")")},ensureErrnoError:function(){f.ErrnoError||(f.ErrnoError=function(e,t){this.node=t,this.setErrno=function(r){this.errno=r;for(var o in cn)if(cn[o]===r){this.code=o;break}},this.setErrno(e),this.message=Vi[e],this.stack&&(Object.defineProperty(this,"stack",{value:new Error().stack,writable:!0}),this.stack=Yr(this.stack))},f.ErrnoError.prototype=new Error,f.ErrnoError.prototype.constructor=f.ErrnoError,[44].forEach(function(i){f.genericErrors[i]=new f.ErrnoError(i),f.genericErrors[i].stack="<generic error, no stack>"}))},staticInit:function(){f.ensureErrnoError(),f.nameTable=new Array(4096),f.mount(ie,{},"/"),f.createDefaultDirectories(),f.createDefaultDevices(),f.createSpecialDirectories(),f.filesystems={MEMFS:ie}},init:function(i,e,t){V(!f.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),f.init.initialized=!0,f.ensureErrnoError(),n.stdin=i||n.stdin,n.stdout=e||n.stdout,n.stderr=t||n.stderr,f.createStandardStreams()},quit:function(){f.init.initialized=!1;var i=n._fflush;i&&i(0);for(var e=0;e<f.streams.length;e++){var t=f.streams[e];t&&f.close(t)}},getMode:function(i,e){var t=0;return i&&(t|=365),e&&(t|=146),t},findObject:function(i,e){var t=f.analyzePath(i,e);return t.exists?t.object:null},analyzePath:function(i,e){try{var t=f.lookupPath(i,{follow:!e});i=t.path}catch(o){}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var t=f.lookupPath(i,{parent:!0});r.parentExists=!0,r.parentPath=t.path,r.parentObject=t.node,r.name=he.basename(i),t=f.lookupPath(i,{follow:!e}),r.exists=!0,r.path=t.path,r.object=t.node,r.name=t.node.name,r.isRoot=t.path==="/"}catch(o){r.error=o.errno}return r},createPath:function(i,e,t,r){i=typeof i=="string"?i:f.getPath(i);for(var o=e.split("/").reverse();o.length;){var a=o.pop();if(a){var s=he.join2(i,a);try{f.mkdir(s)}catch(A){}i=s}}return s},createFile:function(i,e,t,r,o){var a=he.join2(typeof i=="string"?i:f.getPath(i),e),s=f.getMode(r,o);return f.create(a,s)},createDataFile:function(i,e,t,r,o,a){var s=e?he.join2(typeof i=="string"?i:f.getPath(i),e):i,A=f.getMode(r,o),c=f.create(s,A);if(t){if(typeof t=="string"){for(var u=new Array(t.length),d=0,h=t.length;d<h;++d)u[d]=t.charCodeAt(d);t=u}f.chmod(c,A|146);var I=f.open(c,577);f.write(I,t,0,t.length,0,a),f.close(I),f.chmod(c,A)}return c},createDevice:function(i,e,t,r){var o=he.join2(typeof i=="string"?i:f.getPath(i),e),a=f.getMode(!!t,!!r);f.createDevice.major||(f.createDevice.major=64);var s=f.makedev(f.createDevice.major++,0);return f.registerDevice(s,{open:function(A){A.seekable=!1},close:function(A){r&&r.buffer&&r.buffer.length&&r(10)},read:function(A,c,u,d,h){for(var I=0,m=0;m<d;m++){var y;try{y=t()}catch(v){throw new f.ErrnoError(29)}if(y===void 0&&I===0)throw new f.ErrnoError(6);if(y==null)break;I++,c[u+m]=y}return I&&(A.node.timestamp=Date.now()),I},write:function(A,c,u,d,h){for(var I=0;I<d;I++)try{r(c[u+I])}catch(m){throw new f.ErrnoError(29)}return d&&(A.node.timestamp=Date.now()),I}}),f.mkdev(o,a,s)},forceLoadFile:function(i){if(i.isDevice||i.isFolder||i.link||i.contents)return!0;if(typeof XMLHttpRequest!="undefined")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(Mr)try{i.contents=uo(Mr(i.url),!0),i.usedBytes=i.contents.length}catch(e){throw new f.ErrnoError(29)}else throw new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile:function(i,e,t,r,o){function a(){this.lengthKnown=!1,this.chunks=[]}if(a.prototype.get=function(I){if(!(I>this.length-1||I<0)){var m=I%this.chunkSize,y=I/this.chunkSize|0;return this.getter(y)[m]}},a.prototype.setDataGetter=function(I){this.getter=I},a.prototype.cacheLength=function(){var I=new XMLHttpRequest;if(I.open("HEAD",t,!1),I.send(null),!(I.status>=200&&I.status<300||I.status===304))throw new Error("Couldn't load "+t+". Status: "+I.status);var m=Number(I.getResponseHeader("Content-length")),y,v=(y=I.getResponseHeader("Accept-Ranges"))&&y==="bytes",x=(y=I.getResponseHeader("Content-Encoding"))&&y==="gzip",G=1024*1024;v||(G=m);var R=function(N,$){if(N>$)throw new Error("invalid range ("+N+", "+$+") or no bytes requested!");if($>m-1)throw new Error("only "+m+" bytes available! programmer error!");var Y=new XMLHttpRequest;if(Y.open("GET",t,!1),m!==G&&Y.setRequestHeader("Range","bytes="+N+"-"+$),typeof Uint8Array!="undefined"&&(Y.responseType="arraybuffer"),Y.overrideMimeType&&Y.overrideMimeType("text/plain; charset=x-user-defined"),Y.send(null),!(Y.status>=200&&Y.status<300||Y.status===304))throw new Error("Couldn't load "+t+". Status: "+Y.status);return Y.response!==void 0?new Uint8Array(Y.response||[]):uo(Y.responseText||"",!0)},b=this;b.setDataGetter(function(N){var $=N*G,Y=(N+1)*G-1;if(Y=Math.min(Y,m-1),typeof b.chunks[N]=="undefined"&&(b.chunks[N]=R($,Y)),typeof b.chunks[N]=="undefined")throw new Error("doXHR failed!");return b.chunks[N]}),(x||!m)&&(G=m=1,m=this.getter(0).length,G=m,Ze("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=m,this._chunkSize=G,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!ze)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var s=new a;Object.defineProperties(s,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var A={isDevice:!1,contents:s}}else var A={isDevice:!1,url:t};var c=f.createFile(i,e,A,r,o);A.contents?c.contents=A.contents:A.url&&(c.contents=null,c.url=A.url),Object.defineProperties(c,{usedBytes:{get:function(){return this.contents.length}}});var u={},d=Object.keys(c.stream_ops);return d.forEach(function(h){var I=c.stream_ops[h];u[h]=function(){return f.forceLoadFile(c),I.apply(null,arguments)}}),u.read=function(I,m,y,v,x){f.forceLoadFile(c);var G=I.node.contents;if(x>=G.length)return 0;var R=Math.min(G.length-x,v);if(V(R>=0),G.slice)for(var b=0;b<R;b++)m[y+b]=G[x+b];else for(var b=0;b<R;b++)m[y+b]=G.get(x+b);return R},c.stream_ops=u,c},createPreloadedFile:function(i,e,t,r,o,a,s,A,c,u){P.init();var d=e?gt.resolve(he.join2(i,e)):i,h=ir("cp "+d);function I(m){function y(x){u&&u(),A||f.createDataFile(i,e,x,r,o,c),a&&a(),wr(h)}var v=!1;n.preloadPlugins.forEach(function(x){v||x.canHandle(d)&&(x.handle(m,d,y,function(){s&&s(),wr(h)}),v=!0)}),v||y(m)}Mt(h),typeof t=="string"?se(t,function(m){I(m)},s):I(t)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(i,e,t){e=e||function(){},t=t||function(){};var r=f.indexedDB();try{var o=r.open(f.DB_NAME(),f.DB_VERSION)}catch(a){return t(a)}o.onupgradeneeded=function(){Ze("creating db");var s=o.result;s.createObjectStore(f.DB_STORE_NAME)},o.onsuccess=function(){var s=o.result,A=s.transaction([f.DB_STORE_NAME],"readwrite"),c=A.objectStore(f.DB_STORE_NAME),u=0,d=0,h=i.length;function I(){d==0?e():t()}i.forEach(function(m){var y=c.put(f.analyzePath(m).object.contents,m);y.onsuccess=function(){u++,u+d==h&&I()},y.onerror=function(){d++,u+d==h&&I()}}),A.onerror=t},o.onerror=t},loadFilesFromDB:function(i,e,t){e=e||function(){},t=t||function(){};var r=f.indexedDB();try{var o=r.open(f.DB_NAME(),f.DB_VERSION)}catch(a){return t(a)}o.onupgradeneeded=t,o.onsuccess=function(){var s=o.result;try{var A=s.transaction([f.DB_STORE_NAME],"readonly")}catch(m){t(m);return}var c=A.objectStore(f.DB_STORE_NAME),u=0,d=0,h=i.length;function I(){d==0?e():t()}i.forEach(function(m){var y=c.get(m);y.onsuccess=function(){f.analyzePath(m).exists&&f.unlink(m),f.createDataFile(he.dirname(m),he.basename(m),y.result,!0,!0,!0),u++,u+d==h&&I()},y.onerror=function(){d++,u+d==h&&I()}}),A.onerror=t},o.onerror=t},absolutePath:function(){p("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder:function(){p("FS.createFolder has been removed; use FS.mkdir instead")},createLink:function(){p("FS.createLink has been removed; use FS.symlink instead")},joinPath:function(){p("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc:function(){p("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath:function(){p("FS.standardizePath has been removed; use PATH.normalize instead")}},l={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(i,e,t){if(e[0]==="/")return e;var r;if(i===-100)r=f.cwd();else{var o=f.getStream(i);if(!o)throw new f.ErrnoError(8);r=o.path}if(e.length==0){if(!t)throw new f.ErrnoError(44);return r}return he.join2(r,e)},doStat:function(i,e,t){try{var r=i(e)}catch(o){if(o&&o.node&&he.normalize(e)!==he.normalize(f.getPath(o.node)))return-54;throw o}return T[t>>2]=r.dev,T[t+4>>2]=0,T[t+8>>2]=r.ino,T[t+12>>2]=r.mode,T[t+16>>2]=r.nlink,T[t+20>>2]=r.uid,T[t+24>>2]=r.gid,T[t+28>>2]=r.rdev,T[t+32>>2]=0,ye=[r.size>>>0,(Ve=r.size,+Math.abs(Ve)>=1?Ve>0?(Math.min(+Math.floor(Ve/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Ve-+(~~Ve>>>0))/4294967296)>>>0:0)],T[t+40>>2]=ye[0],T[t+44>>2]=ye[1],T[t+48>>2]=4096,T[t+52>>2]=r.blocks,T[t+56>>2]=r.atime.getTime()/1e3|0,T[t+60>>2]=0,T[t+64>>2]=r.mtime.getTime()/1e3|0,T[t+68>>2]=0,T[t+72>>2]=r.ctime.getTime()/1e3|0,T[t+76>>2]=0,ye=[r.ino>>>0,(Ve=r.ino,+Math.abs(Ve)>=1?Ve>0?(Math.min(+Math.floor(Ve/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Ve-+(~~Ve>>>0))/4294967296)>>>0:0)],T[t+80>>2]=ye[0],T[t+84>>2]=ye[1],0},doMsync:function(i,e,t,r,o){var a=Se.slice(i,i+t);f.msync(e,a,o,t,r)},doMkdir:function(i,e){return i=he.normalize(i),i[i.length-1]==="/"&&(i=i.substr(0,i.length-1)),f.mkdir(i,e,0),0},doMknod:function(i,e,t){switch(e&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return f.mknod(i,e,t),0},doReadlink:function(i,e,t){if(t<=0)return-28;var r=f.readlink(i),o=Math.min(t,tt(r)),a=xe[e+o];return et(r,e,t+1),xe[e+o]=a,o},doAccess:function(i,e){if(e&-8)return-28;var t,r=f.lookupPath(i,{follow:!0});if(t=r.node,!t)return-44;var o="";return e&4&&(o+="r"),e&2&&(o+="w"),e&1&&(o+="x"),o&&f.nodePermissions(t,o)?-2:0},doDup:function(i,e,t){var r=f.getStream(t);return r&&f.close(r),f.open(i,e,0,t,t).fd},doReadv:function(i,e,t,r){for(var o=0,a=0;a<t;a++){var s=T[e+a*8>>2],A=T[e+(a*8+4)>>2],c=f.read(i,xe,s,A,r);if(c<0)return-1;if(o+=c,c<A)break}return o},doWritev:function(i,e,t,r){for(var o=0,a=0;a<t;a++){var s=T[e+a*8>>2],A=T[e+(a*8+4)>>2],c=f.write(i,xe,s,A,r);if(c<0)return-1;o+=c}return o},varargs:void 0,get:function(){V(l.varargs!=null),l.varargs+=4;var i=T[l.varargs-4>>2];return i},getStr:function(i){var e=At(i);return e},getStreamFromFD:function(i){var e=f.getStream(i);if(!e)throw new f.ErrnoError(8);return e},get64:function(i,e){return i>=0?V(e===0):V(e===-1),i}};function Me(i,e,t){l.varargs=t;try{var r=l.getStreamFromFD(i);switch(e){case 0:{var o=l.get();if(o<0)return-28;var a;return a=f.open(r.path,r.flags,0,o),a.fd}case 1:case 2:return 0;case 3:return r.flags;case 4:{var o=l.get();return r.flags|=o,0}case 12:{var o=l.get(),s=0;return be[o+s>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Jn(28),-1;default:return-28}}catch(A){return(typeof f=="undefined"||!(A instanceof f.ErrnoError))&&p(A),-A.errno}}function Wi(i,e,t){l.varargs=t;try{var r=l.getStreamFromFD(i);switch(e){case 21509:case 21505:return r.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return r.tty?0:-59;case 21519:{if(!r.tty)return-59;var o=l.get();return T[o>>2]=0,0}case 21520:return r.tty?-28:-59;case 21531:{var o=l.get();return f.ioctl(r,e,o)}case 21523:return r.tty?0:-59;case 21524:return r.tty?0:-59;default:p("bad ioctl syscall "+e)}}catch(a){return(typeof f=="undefined"||!(a instanceof f.ErrnoError))&&p(a),-a.errno}}function zi(i,e,t,r,o,a){a<<=12;var s,A=!1;if((r&16)!==0&&i%65536!==0)return-28;if((r&32)!==0){if(s=Zn(e),!s)return-48;A=!0}else{var c=f.getStream(o);if(!c)return-8;var u=f.mmap(c,i,e,a,t,r);s=u.ptr,A=u.allocated}return l.mappings[s]={malloc:s,len:e,allocated:A,fd:o,prot:t,flags:r,offset:a},s}function $i(i,e,t,r,o,a){try{return zi(i,e,t,r,o,a)}catch(s){return(typeof f=="undefined"||!(s instanceof f.ErrnoError))&&p(s),-s.errno}}function Ki(i,e,t){l.varargs=t;try{var r=l.getStr(i),o=t?l.get():0,a=f.open(r,e,o);return a.fd}catch(s){return(typeof f=="undefined"||!(s instanceof f.ErrnoError))&&p(s),-s.errno}}function Ji(i,e){try{return i=l.getStr(i),l.doStat(f.stat,i,e)}catch(t){return(typeof f=="undefined"||!(t instanceof f.ErrnoError))&&p(t),-t.errno}}var qn=48,ei=57;function un(i){if(i===void 0)return"_unknown";i=i.replace(/[^a-zA-Z0-9_]/g,"$");var e=i.charCodeAt(0);return e>=qn&&e<=ei?"_"+i:i}function sr(i,e){return i=un(i),new Function("body","return function "+i+`() {
34
- "use strict"; return body.apply(this, arguments);
35
- };
36
- `)(e)}var Ar=[],it=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function Et(){for(var i=0,e=5;e<it.length;++e)it[e]!==void 0&&++i;return i}function Zi(){for(var i=5;i<it.length;++i)if(it[i]!==void 0)return it[i];return null}function qi(){n.count_emval_handles=Et,n.get_first_emval=Zi}function ln(i){switch(i){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:{var e=Ar.length?Ar.pop():it.length;return it[e]={refcount:1,value:i},e}}}function cr(i,e){var t=sr(e,function(r){this.name=e,this.message=r;var o=new Error(r).stack;o!==void 0&&(this.stack=this.toString()+`
37
- `+o.replace(/^Error(:[^\n]*)?\n/,""))});return t.prototype=Object.create(i.prototype),t.prototype.constructor=t,t.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},t}var Vr=void 0;function ti(){for(var i=new Array(256),e=0;e<256;++e)i[e]=String.fromCharCode(e);ri=i}var ri=void 0;function Fe(i){for(var e="",t=i;Se[t];)e+=ri[Se[t++]];return e}function je(){return Object.keys(xt).length}function eo(){var i=[];for(var e in xt)xt.hasOwnProperty(e)&&i.push(xt[e]);return i}var Wr=[];function ur(){for(;Wr.length;){var i=Wr.pop();i.$$.deleteScheduled=!1,i.delete()}}var Nt=void 0;function zr(i){Nt=i,Wr.length&&Nt&&Nt(ur)}function to(){n.getInheritedInstanceCount=je,n.getLiveInheritedInstances=eo,n.flushPendingDeletes=ur,n.setDelayFunction=zr}var xt={},ot=void 0;function ae(i){throw new ot(i)}function Ae(i,e){for(e===void 0&&ae("ptr should not be undefined");i.baseClass;)e=i.upcast(e),i=i.baseClass;return e}function Rn(i,e,t){e=Ae(i,e),xt.hasOwnProperty(e)?ae("Tried to register registered instance: "+e):xt[e]=t}function ni(i){return i||ae("Cannot use deleted val. handle = "+i),it[i].value}var Kt={};function Jt(i){var e=lc(i),t=Fe(e);return _r(e),t}function dn(i,e){var t=Kt[i];return t===void 0&&ae(e+" has unknown type "+Jt(i)),t}function Sn(i,e){e=Ae(i,e),xt.hasOwnProperty(e)?delete xt[e]:ae("Tried to unregister unregistered instance: "+e)}function fn(i){}var vr=!1;function lt(i){i.smartPtr?i.smartPtrType.rawDestructor(i.smartPtr):i.ptrType.registeredClass.rawDestructor(i.ptr)}function ii(i){i.count.value-=1;var e=i.count.value===0;e&&lt(i)}function Ut(i){return typeof FinalizationGroup=="undefined"?(Ut=function(e){return e},i):(vr=new FinalizationGroup(function(e){for(var t=e.next();!t.done;t=e.next()){var r=t.value;r.ptr?ii(r):console.warn("object already deleted: "+r.ptr)}}),Ut=function(e){return vr.register(e,e.$$,e.$$),e},fn=function(e){vr.unregister(e.$$)},Ut(i))}function lr(i,e,t){i=Fe(i),e=dn(e,"wrapper"),t=ni(t);var r=[].slice,o=e.registeredClass,a=o.instancePrototype,s=o.baseClass,A=s.instancePrototype,c=o.baseClass.constructor,u=sr(i,function(){o.baseClass.pureVirtualFunctions.forEach(function(h){if(this[h]===A[h])throw new Vr("Pure virtual function "+h+" must be implemented in JavaScript")}.bind(this)),Object.defineProperty(this,"__parent",{value:a}),this.__construct.apply(this,r.call(arguments))});a.__construct=function(){this===a&&ae("Pass correct 'this' to __construct");var I=c.implement.apply(void 0,[this].concat(r.call(arguments)));fn(I);var m=I.$$;I.notifyOnDestruction(),m.preservePointerOnDelete=!0,Object.defineProperties(this,{$$:{value:m}}),Ut(this),Rn(o,m.ptr,this)},a.__destruct=function(){this===a&&ae("Pass correct 'this' to __destruct"),fn(this),Sn(o,this.$$.ptr)},u.prototype=Object.create(a);for(var d in t)u.prototype[d]=t[d];return ln(u)}var pt={};function dr(i){for(;i.length;){var e=i.pop(),t=i.pop();t(e)}}function fr(i){return this.fromWireType(De[i>>2])}var jt={},_t={},Qr=void 0;function E(i){throw new Qr(i)}function g(i,e,t){i.forEach(function(A){_t[A]=e});function r(A){var c=t(A);c.length!==i.length&&E("Mismatched type converter count");for(var u=0;u<i.length;++u)H(i[u],c[u])}var o=new Array(e.length),a=[],s=0;e.forEach(function(A,c){Kt.hasOwnProperty(A)?o[c]=Kt[A]:(a.push(A),jt.hasOwnProperty(A)||(jt[A]=[]),jt[A].push(function(){o[c]=Kt[A],++s,s===a.length&&r(o)}))}),a.length===0&&r(o)}function C(i){var e=pt[i];delete pt[i];var t=e.rawConstructor,r=e.rawDestructor,o=e.fields,a=o.map(function(s){return s.getterReturnType}).concat(o.map(function(s){return s.setterArgumentType}));g([i],a,function(s){var A={};return o.forEach(function(c,u){var d=c.fieldName,h=s[u],I=c.getter,m=c.getterContext,y=s[u+o.length],v=c.setter,x=c.setterContext;A[d]={read:function(G){return h.fromWireType(I(m,G))},write:function(G,R){var b=[];v(x,G,y.toWireType(b,R)),dr(b)}}}),[{name:e.name,fromWireType:function(c){var u={};for(var d in A)u[d]=A[d].read(c);return r(c),u},toWireType:function(c,u){for(var d in A)if(!(d in u))throw new TypeError('Missing field: "'+d+'"');var h=t();for(d in A)A[d].write(h,u[d]);return c!==null&&c.push(r,h),h},argPackAdvance:8,readValueFromPointer:fr,destructorFunction:r}]})}function O(i,e,t,r,o){}function F(i){switch(i){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+i)}}function H(i,e,t){if(t=t||{},!("argPackAdvance"in e))throw new TypeError("registerType registeredInstance requires argPackAdvance");var r=e.name;if(i||ae('type "'+r+'" must have a positive integer typeid pointer'),Kt.hasOwnProperty(i)){if(t.ignoreDuplicateRegistrations)return;ae("Cannot register type '"+r+"' twice")}if(Kt[i]=e,delete _t[i],jt.hasOwnProperty(i)){var o=jt[i];delete jt[i],o.forEach(function(a){a()})}}function X(i,e,t,r,o){var a=F(t);e=Fe(e),H(i,{name:e,fromWireType:function(s){return!!s},toWireType:function(s,A){return A?r:o},argPackAdvance:8,readValueFromPointer:function(s){var A;if(t===1)A=xe;else if(t===2)A=be;else if(t===4)A=T;else throw new TypeError("Unknown boolean type size: "+e);return this.fromWireType(A[s>>a])},destructorFunction:null})}function j(i){if(!(this instanceof Ye)||!(i instanceof Ye))return!1;for(var e=this.$$.ptrType.registeredClass,t=this.$$.ptr,r=i.$$.ptrType.registeredClass,o=i.$$.ptr;e.baseClass;)t=e.upcast(t),e=e.baseClass;for(;r.baseClass;)o=r.upcast(o),r=r.baseClass;return e===r&&t===o}function Z(i){return{count:i.count,deleteScheduled:i.deleteScheduled,preservePointerOnDelete:i.preservePointerOnDelete,ptr:i.ptr,ptrType:i.ptrType,smartPtr:i.smartPtr,smartPtrType:i.smartPtrType}}function ee(i){function e(t){return t.$$.ptrType.registeredClass.name}ae(e(i)+" instance already deleted")}function q(){if(this.$$.ptr||ee(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var i=Ut(Object.create(Object.getPrototypeOf(this),{$$:{value:Z(this.$$)}}));return i.$$.count.value+=1,i.$$.deleteScheduled=!1,i}function me(){this.$$.ptr||ee(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ae("Object already scheduled for deletion"),fn(this),ii(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Be(){return!this.$$.ptr}function Oe(){return this.$$.ptr||ee(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ae("Object already scheduled for deletion"),Wr.push(this),Wr.length===1&&Nt&&Nt(ur),this.$$.deleteScheduled=!0,this}function Ke(){Ye.prototype.isAliasOf=j,Ye.prototype.clone=q,Ye.prototype.delete=me,Ye.prototype.isDeleted=Be,Ye.prototype.deleteLater=Oe}function Ye(){}var Ue={};function We(i,e,t){if(i[e].overloadTable===void 0){var r=i[e];i[e]=function(){return i[e].overloadTable.hasOwnProperty(arguments.length)||ae("Function '"+t+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+i[e].overloadTable+")!"),i[e].overloadTable[arguments.length].apply(this,arguments)},i[e].overloadTable=[],i[e].overloadTable[r.argCount]=r}}function Pt(i,e,t){n.hasOwnProperty(i)?((t===void 0||n[i].overloadTable!==void 0&&n[i].overloadTable[t]!==void 0)&&ae("Cannot register public name '"+i+"' twice"),We(n,i,i),n.hasOwnProperty(t)&&ae("Cannot register multiple overloads of a function with the same number of arguments ("+t+")!"),n[i].overloadTable[t]=e):(n[i]=e,t!==void 0&&(n[i].numArguments=t))}function qe(i,e,t,r,o,a,s,A){this.name=i,this.constructor=e,this.instancePrototype=t,this.rawDestructor=r,this.baseClass=o,this.getActualType=a,this.upcast=s,this.downcast=A,this.pureVirtualFunctions=[]}function Pr(i,e,t){for(;e!==t;)e.upcast||ae("Expected null or instance of "+t.name+", got an instance of "+e.name),i=e.upcast(i),e=e.baseClass;return i}function ht(i,e){if(e===null)return this.isReference&&ae("null is not a valid "+this.name),0;e.$$||ae('Cannot pass "'+En(e)+'" as a '+this.name),e.$$.ptr||ae("Cannot pass deleted object as a pointer of type "+this.name);var t=e.$$.ptrType.registeredClass,r=Pr(e.$$.ptr,t,this.registeredClass);return r}function gn(i,e){var t;if(e===null)return this.isReference&&ae("null is not a valid "+this.name),this.isSmartPointer?(t=this.rawConstructor(),i!==null&&i.push(this.rawDestructor,t),t):0;e.$$||ae('Cannot pass "'+En(e)+'" as a '+this.name),e.$$.ptr||ae("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&e.$$.ptrType.isConst&&ae("Cannot convert argument of type "+(e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name)+" to parameter type "+this.name);var r=e.$$.ptrType.registeredClass;if(t=Pr(e.$$.ptr,r,this.registeredClass),this.isSmartPointer)switch(e.$$.smartPtr===void 0&&ae("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:e.$$.smartPtrType===this?t=e.$$.smartPtr:ae("Cannot convert argument of type "+(e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:t=e.$$.smartPtr;break;case 2:if(e.$$.smartPtrType===this)t=e.$$.smartPtr;else{var o=e.clone();t=this.rawShare(t,ln(function(){o.delete()})),i!==null&&i.push(this.rawDestructor,t)}break;default:ae("Unsupporting sharing policy")}return t}function oi(i,e){if(e===null)return this.isReference&&ae("null is not a valid "+this.name),0;e.$$||ae('Cannot pass "'+En(e)+'" as a '+this.name),e.$$.ptr||ae("Cannot pass deleted object as a pointer of type "+this.name),e.$$.ptrType.isConst&&ae("Cannot convert argument of type "+e.$$.ptrType.name+" to parameter type "+this.name);var t=e.$$.ptrType.registeredClass,r=Pr(e.$$.ptr,t,this.registeredClass);return r}function ai(i){return this.rawGetPointee&&(i=this.rawGetPointee(i)),i}function Mn(i){this.rawDestructor&&this.rawDestructor(i)}function si(i){i!==null&&i.delete()}function ho(i,e,t){if(e===t)return i;if(t.baseClass===void 0)return null;var r=ho(i,e,t.baseClass);return r===null?null:t.downcast(r)}function Io(i,e){return e=Ae(i,e),xt[e]}function Ai(i,e){(!e.ptrType||!e.ptr)&&E("makeClassHandle requires ptr and ptrType");var t=!!e.smartPtrType,r=!!e.smartPtr;return t!==r&&E("Both smartPtrType and smartPtr must be specified"),e.count={value:1},Ut(Object.create(i,{$$:{value:e}}))}function ci(i){var e=this.getPointee(i);if(!e)return this.destructor(i),null;var t=Io(this.registeredClass,e);if(t!==void 0){if(t.$$.count.value===0)return t.$$.ptr=e,t.$$.smartPtr=i,t.clone();var r=t.clone();return this.destructor(i),r}function o(){return this.isSmartPointer?Ai(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:e,smartPtrType:this,smartPtr:i}):Ai(this.registeredClass.instancePrototype,{ptrType:this,ptr:i})}var a=this.registeredClass.getActualType(e),s=Ue[a];if(!s)return o.call(this);var A;this.isConst?A=s.constPointerType:A=s.pointerType;var c=ho(e,this.registeredClass,A.registeredClass);return c===null?o.call(this):this.isSmartPointer?Ai(A.registeredClass.instancePrototype,{ptrType:A,ptr:c,smartPtrType:this,smartPtr:i}):Ai(A.registeredClass.instancePrototype,{ptrType:A,ptr:c})}function Vo(){gr.prototype.getPointee=ai,gr.prototype.destructor=Mn,gr.prototype.argPackAdvance=8,gr.prototype.readValueFromPointer=fr,gr.prototype.deleteObject=si,gr.prototype.fromWireType=ci}function gr(i,e,t,r,o,a,s,A,c,u,d){this.name=i,this.registeredClass=e,this.isReference=t,this.isConst=r,this.isSmartPointer=o,this.pointeeType=a,this.sharingPolicy=s,this.rawGetPointee=A,this.rawConstructor=c,this.rawShare=u,this.rawDestructor=d,!o&&e.baseClass===void 0?r?(this.toWireType=ht,this.destructorFunction=null):(this.toWireType=oi,this.destructorFunction=null):this.toWireType=gn}function Zt(i,e,t){n.hasOwnProperty(i)||E("Replacing nonexistant public symbol"),n[i].overloadTable!==void 0&&t!==void 0?n[i].overloadTable[t]=e:(n[i]=e,n[i].argCount=t)}function mo(i,e,t){V("dynCall_"+i in n,"bad function pointer type - no table for sig '"+i+"'"),t&&t.length?V(t.length===i.substring(1).replace(/j/g,"--").length):V(i.length==1);var r=n["dynCall_"+i];return t&&t.length?r.apply(null,[e].concat(t)):r.call(null,e)}function Wo(i,e,t){return i.includes("j")?mo(i,e,t):(V(K.get(e),"missing table entry in dynCall: "+e),K.get(e).apply(null,t))}function zo(i,e){V(i.includes("j"),"getDynCaller should only be called with i64 sigs");var t=[];return function(){t.length=arguments.length;for(var r=0;r<arguments.length;r++)t[r]=arguments[r];return Wo(i,e,t)}}function It(i,e){i=Fe(i);function t(){return i.includes("j")?zo(i,e):K.get(e)}var r=t();return typeof r!="function"&&ae("unknown function pointer with signature "+i+": "+e),r}var dt=void 0;function Rr(i,e){var t=[],r={};function o(a){if(!r[a]&&!Kt[a]){if(_t[a]){_t[a].forEach(o);return}t.push(a),r[a]=!0}}throw e.forEach(o),new dt(i+": "+t.map(Jt).join([", "]))}function $r(i,e,t,r,o,a,s,A,c,u,d,h,I){d=Fe(d),a=It(o,a),A&&(A=It(s,A)),u&&(u=It(c,u)),I=It(h,I);var m=un(d);Pt(m,function(){Rr("Cannot construct "+d+" due to unbound types",[r])}),g([i,e,t],r?[r]:[],function(y){y=y[0];var v,x;r?(v=y.registeredClass,x=v.instancePrototype):x=Ye.prototype;var G=sr(m,function(){if(Object.getPrototypeOf(this)!==R)throw new ot("Use 'new' to construct "+d);if(b.constructor_body===void 0)throw new ot(d+" has no accessible constructor");var Ce=b.constructor_body[arguments.length];if(Ce===void 0)throw new ot("Tried to invoke ctor of "+d+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(b.constructor_body).toString()+") parameters instead!");return Ce.apply(this,arguments)}),R=Object.create(x,{constructor:{value:G}});G.prototype=R;var b=new qe(d,G,R,I,v,a,A,u),N=new gr(d,b,!0,!1,!1),$=new gr(d+"*",b,!1,!1,!1),Y=new gr(d+" const*",b,!1,!0,!1);return Ue[i]={pointerType:$,constPointerType:Y},Zt(m,G),[N,$,Y]})}function Co(i,e){if(!(i instanceof Function))throw new TypeError("new_ called with constructor type "+typeof i+" which is not a function");var t=sr(i.name||"unknownFunctionName",function(){});t.prototype=i.prototype;var r=new t,o=i.apply(r,e);return o instanceof Object?o:r}function Fn(i,e,t,r,o){var a=e.length;a<2&&ae("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var s=e[1]!==null&&t!==null,A=!1,c=1;c<e.length;++c)if(e[c]!==null&&e[c].destructorFunction===void 0){A=!0;break}for(var u=e[0].name!=="void",d="",h="",c=0;c<a-2;++c)d+=(c!==0?", ":"")+"arg"+c,h+=(c!==0?", ":"")+"arg"+c+"Wired";var I="return function "+un(i)+"("+d+`) {
38
- if (arguments.length !== `+(a-2)+`) {
39
- throwBindingError('function `+i+" called with ' + arguments.length + ' arguments, expected "+(a-2)+` args!');
40
- }
41
- `;A&&(I+=`var destructors = [];
42
- `);var m=A?"destructors":"null",y=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],v=[ae,r,o,dr,e[0],e[1]];s&&(I+="var thisWired = classParam.toWireType("+m+`, this);
43
- `);for(var c=0;c<a-2;++c)I+="var arg"+c+"Wired = argType"+c+".toWireType("+m+", arg"+c+"); // "+e[c+2].name+`
44
- `,y.push("argType"+c),v.push(e[c+2]);if(s&&(h="thisWired"+(h.length>0?", ":"")+h),I+=(u?"var rv = ":"")+"invoker(fn"+(h.length>0?", ":"")+h+`);
45
- `,A)I+=`runDestructors(destructors);
46
- `;else for(var c=s?1:2;c<e.length;++c){var x=c===1?"thisWired":"arg"+(c-2)+"Wired";e[c].destructorFunction!==null&&(I+=x+"_dtor("+x+"); // "+e[c].name+`
47
- `,y.push(x+"_dtor"),v.push(e[c].destructorFunction))}u&&(I+=`var ret = retType.fromWireType(rv);
48
- return ret;
49
- `),I+=`}
50
- `,y.push(I);var G=Co(Function,y).apply(null,v);return G}function Kr(i,e){for(var t=[],r=0;r<i;r++)t.push(T[(e>>2)+r]);return t}function ui(i,e,t,r,o,a,s){var A=Kr(t,r);e=Fe(e),a=It(o,a),g([],[i],function(c){c=c[0];var u=c.name+"."+e;function d(){Rr("Cannot call "+u+" due to unbound types",A)}e.startsWith("@@")&&(e=Symbol[e.substring(2)]);var h=c.registeredClass.constructor;return h[e]===void 0?(d.argCount=t-1,h[e]=d):(We(h,e,u),h[e].overloadTable[t-1]=d),g([],A,function(I){var m=[I[0],null].concat(I.slice(1)),y=Fn(u,m,null,a,s);return h[e].overloadTable===void 0?(y.argCount=t-1,h[e]=y):h[e].overloadTable[t-1]=y,[]}),[]})}function $o(i,e,t,r,o,a){V(e>0);var s=Kr(e,t);o=It(r,o),g([],[i],function(A){A=A[0];var c="constructor "+A.name;if(A.registeredClass.constructor_body===void 0&&(A.registeredClass.constructor_body=[]),A.registeredClass.constructor_body[e-1]!==void 0)throw new ot("Cannot register multiple constructors with identical number of parameters ("+(e-1)+") for class '"+A.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return A.registeredClass.constructor_body[e-1]=function(){Rr("Cannot construct "+A.name+" due to unbound types",s)},g([],s,function(u){return u.splice(1,0,null),A.registeredClass.constructor_body[e-1]=Fn(c,u,null,o,a),[]}),[]})}function Ko(i,e,t,r,o,a,s,A){var c=Kr(t,r);e=Fe(e),a=It(o,a),g([],[i],function(u){u=u[0];var d=u.name+"."+e;e.startsWith("@@")&&(e=Symbol[e.substring(2)]),A&&u.registeredClass.pureVirtualFunctions.push(e);function h(){Rr("Cannot call "+d+" due to unbound types",c)}var I=u.registeredClass.instancePrototype,m=I[e];return m===void 0||m.overloadTable===void 0&&m.className!==u.name&&m.argCount===t-2?(h.argCount=t-2,h.className=u.name,I[e]=h):(We(I,e,d),I[e].overloadTable[t-2]=h),g([],c,function(y){var v=Fn(d,y,u,a,s);return I[e].overloadTable===void 0?(v.argCount=t-2,I[e]=v):I[e].overloadTable[t-2]=v,[]}),[]})}function yo(i,e,t){return i instanceof Object||ae(t+' with invalid "this": '+i),i instanceof e.registeredClass.constructor||ae(t+' incompatible with "this" of type '+i.constructor.name),i.$$.ptr||ae("cannot call emscripten binding method "+t+" on deleted object"),Pr(i.$$.ptr,i.$$.ptrType.registeredClass,e.registeredClass)}function wo(i,e,t,r,o,a,s,A,c,u){e=Fe(e),o=It(r,o),g([],[i],function(d){d=d[0];var h=d.name+"."+e,I={get:function(){Rr("Cannot access "+h+" due to unbound types",[t,s])},enumerable:!0,configurable:!0};return c?I.set=function(){Rr("Cannot access "+h+" due to unbound types",[t,s])}:I.set=function(m){ae(h+" is a read-only property")},Object.defineProperty(d.registeredClass.instancePrototype,e,I),g([],c?[t,s]:[t],function(m){var y=m[0],v={get:function(){var G=yo(this,d,h+" getter");return y.fromWireType(o(a,G))},enumerable:!0};if(c){c=It(A,c);var x=m[1];v.set=function(G){var R=yo(this,d,h+" setter"),b=[];c(u,R,x.toWireType(b,G)),dr(b)}}return Object.defineProperty(d.registeredClass.instancePrototype,e,v),[]}),[]})}function bo(i){i>4&&--it[i].refcount===0&&(it[i]=void 0,Ar.push(i))}function Do(i,e){e=Fe(e),H(i,{name:e,fromWireType:function(t){var r=it[t].value;return bo(t),r},toWireType:function(t,r){return ln(r)},argPackAdvance:8,readValueFromPointer:fr,destructorFunction:null})}function En(i){if(i===null)return"null";var e=typeof i;return e==="object"||e==="array"||e==="function"?i.toString():""+i}function pn(i,e){switch(e){case 2:return function(t){return this.fromWireType(D[t>>2])};case 3:return function(t){return this.fromWireType(Qe[t>>3])};default:throw new TypeError("Unknown float type: "+i)}}function Jo(i,e,t){var r=F(t);e=Fe(e),H(i,{name:e,fromWireType:function(o){return o},toWireType:function(o,a){if(typeof a!="number"&&typeof a!="boolean")throw new TypeError('Cannot convert "'+En(a)+'" to '+this.name);return a},argPackAdvance:8,readValueFromPointer:pn(e,r),destructorFunction:null})}function Zo(i,e,t,r,o,a){var s=Kr(e,t);i=Fe(i),o=It(r,o),Pt(i,function(){Rr("Cannot call "+i+" due to unbound types",s)},e-1),g([],s,function(A){var c=[A[0],null].concat(A.slice(1));return Zt(i,Fn(i,c,null,o,a),e-1),[]})}function qo(i,e,t){switch(e){case 0:return t?function(o){return xe[o]}:function(o){return Se[o]};case 1:return t?function(o){return be[o>>1]}:function(o){return ve[o>>1]};case 2:return t?function(o){return T[o>>2]}:function(o){return De[o>>2]};default:throw new TypeError("Unknown integer type: "+i)}}function ea(i,e,t,r,o){e=Fe(e),o===-1&&(o=4294967295);var a=F(t),s=function(u){return u};if(r===0){var A=32-8*t;s=function(u){return u<<A>>>A}}var c=e.includes("unsigned");H(i,{name:e,fromWireType:s,toWireType:function(u,d){if(typeof d!="number"&&typeof d!="boolean")throw new TypeError('Cannot convert "'+En(d)+'" to '+this.name);if(d<r||d>o)throw new TypeError('Passing a number "'+En(d)+'" from JS side to C/C++ side to an argument of type "'+e+'", which is outside the valid range ['+r+", "+o+"]!");return c?d>>>0:d|0},argPackAdvance:8,readValueFromPointer:qo(e,a,r!==0),destructorFunction:null})}function ta(i,e,t){var r=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],o=r[e];function a(s){s=s>>2;var A=De,c=A[s],u=A[s+1];return new o(Ur,u,c)}t=Fe(t),H(i,{name:t,fromWireType:a,argPackAdvance:8,readValueFromPointer:a},{ignoreDuplicateRegistrations:!0})}function ra(i,e){e=Fe(e);var t=e==="std::string";H(i,{name:e,fromWireType:function(r){var o=De[r>>2],a;if(t)for(var s=r+4,A=0;A<=o;++A){var c=r+4+A;if(A==o||Se[c]==0){var u=c-s,d=At(s,u);a===void 0?a=d:(a+="\0",a+=d),s=c+1}}else{for(var h=new Array(o),A=0;A<o;++A)h[A]=String.fromCharCode(Se[r+4+A]);a=h.join("")}return _r(r),a},toWireType:function(r,o){o instanceof ArrayBuffer&&(o=new Uint8Array(o));var a,s=typeof o=="string";s||o instanceof Uint8Array||o instanceof Uint8ClampedArray||o instanceof Int8Array||ae("Cannot pass non-string to std::string"),t&&s?a=function(){return tt(o)}:a=function(){return o.length};var A=a(),c=at(4+A+1);if(De[c>>2]=A,t&&s)et(o,c+4,A+1);else if(s)for(var u=0;u<A;++u){var d=o.charCodeAt(u);d>255&&(_r(c),ae("String has UTF-16 code units that do not fit in 8 bits")),Se[c+4+u]=d}else for(var u=0;u<A;++u)Se[c+4+u]=o[u];return r!==null&&r.push(_r,c),c},argPackAdvance:8,readValueFromPointer:fr,destructorFunction:function(r){_r(r)}})}function na(i,e,t){t=Fe(t);var r,o,a,s,A;e===2?(r=Bt,o=Yn,s=Si,a=function(){return ve},A=1):e===4&&(r=mn,o=Xn,s=Mi,a=function(){return De},A=2),H(i,{name:t,fromWireType:function(c){for(var u=De[c>>2],d=a(),h,I=c+4,m=0;m<=u;++m){var y=c+4+m*e;if(m==u||d[y>>A]==0){var v=y-I,x=r(I,v);h===void 0?h=x:(h+="\0",h+=x),I=y+e}}return _r(c),h},toWireType:function(c,u){typeof u!="string"&&ae("Cannot pass non-string to C++ string type "+t);var d=s(u),h=at(4+d+e);return De[h>>2]=d>>A,o(u,h+4,d+e),c!==null&&c.push(_r,h),h},argPackAdvance:8,readValueFromPointer:fr,destructorFunction:function(c){_r(c)}})}function ia(i,e,t,r,o,a){pt[i]={name:Fe(e),rawConstructor:It(t,r),rawDestructor:It(o,a),fields:[]}}function oa(i,e,t,r,o,a,s,A,c,u){pt[i].fields.push({fieldName:Fe(e),getterReturnType:t,getter:It(r,o),getterContext:a,setterArgumentType:s,setter:It(A,c),setterContext:u})}function aa(i,e){e=Fe(e),H(i,{isVoid:!0,name:e,argPackAdvance:0,fromWireType:function(){},toWireType:function(t,r){}})}var sa={};function Aa(i){var e=sa[i];return e===void 0?Fe(i):e}var ro=[];function no(i,e,t,r){i=ro[i],e=ni(e),t=Aa(t),i(e,t,null,r)}function ca(i){var e=ro.length;return ro.push(i),e}function ua(i,e){for(var t=new Array(i),r=0;r<i;++r)t[r]=dn(T[(e>>2)+r],"parameter "+r);return t}function la(i,e){for(var t=ua(i,e),r=t[0],o=r.name+"_$"+t.slice(1).map(function(m){return m.name}).join("_")+"$",a=["retType"],s=[r],A="",c=0;c<i-1;++c)A+=(c!==0?", ":"")+"arg"+c,a.push("argType"+c),s.push(t[1+c]);for(var u=un("methodCaller_"+o),d="return function "+u+`(handle, name, destructors, args) {
51
- `,h=0,c=0;c<i-1;++c)d+=" var arg"+c+" = argType"+c+".readValueFromPointer(args"+(h?"+"+h:"")+`);
52
- `,h+=t[c+1].argPackAdvance;d+=" var rv = handle[name]("+A+`);
53
- `;for(var c=0;c<i-1;++c)t[c+1].deleteObject&&(d+=" argType"+c+".deleteObject(arg"+c+`);
54
- `);r.isVoid||(d+=` return retType.toWireType(destructors, rv);
55
- `),d+=`};
56
- `,a.push(d);var I=Co(Function,a).apply(null,s);return ca(I)}function da(i){i>4&&(it[i].refcount+=1)}function fa(i,e){i=dn(i,"_emval_take_value");var t=i.readValueFromPointer(e);return ln(t)}function ga(){p()}var Ea=!0;function pa(i,e){var t;if(i===0)t=Date.now();else if((i===1||i===4)&&Ea)t=vt();else return Jn(28),-1;return T[e>>2]=t/1e3|0,T[e+4>>2]=t%1e3*1e3*1e3|0,0}function _a(i,e){p("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}function ha(i,e){p("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}var li=[];function di(i,e){V(Array.isArray(li)),V(e%16==0),li.length=0;var t;for(e>>=2;t=Se[i++];){V(t===100||t===102||t===105);var r=t<105;r&&e&1&&e++,li.push(r?Qe[e++>>1]:T[e]),++e}return li}function Ia(i,e,t){var r=di(e,t);return Tt.hasOwnProperty(i)||p("No EM_ASM constant found at address "+i),Tt[i].apply(null,r)}function ma(){return 2147483648}function Ca(i,e,t){Se.copyWithin(i,e,e+t)}function ya(i){p("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")}function wa(i){try{return Ht.grow(i-Ur.byteLength+65535>>>16),$e(Ht.buffer),1}catch(e){ge("emscripten_realloc_buffer: Attempted to grow heap from "+Ur.byteLength+" bytes to "+i+" bytes, but got error: "+e)}}function ba(i){var e=Se.length;i=i>>>0,V(i>e);var t=2147483648;if(i>t)return ge("Cannot enlarge memory, asked to go up to "+i+" bytes, but the limit is "+t+" bytes!"),!1;for(var r=1;r<=4;r*=2){var o=e*(1+.2/r);o=Math.min(o,i+100663296);var a=Math.min(t,Vn(Math.max(i,o),65536)),s=wa(a);if(s)return!0}return ge("Failed to grow the heap from "+e+" bytes to "+a+" bytes, not enough memory!"),!1}function fi(i){p("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}var Er={};function Jr(i){i.forEach(function(e){var t=fi(e);t&&(Er[t]=e)})}function Bo(){var i=new Error().stack.split(`
57
- `);return i[0]=="Error"&&i.shift(),Jr(i),Er.last_addr=fi(i[2]),Er.last_stack=i,Er.last_addr}function Da(i,e,t){var r;Er.last_addr==i?r=Er.last_stack:(r=new Error().stack.split(`
58
- `),r[0]=="Error"&&r.shift(),Jr(r));for(var o=2;r[o]&&fi(r[o])!=i;)++o;for(var a=0;a<t&&r[a+o];++a)T[e+a*4>>2]=fi(r[a+o]);return a}function Ba(i){for(var e=vt();vt()-e<i;);}function Oa(i){var e=i.getExtension("ANGLE_instanced_arrays");if(e)return i.vertexAttribDivisor=function(t,r){e.vertexAttribDivisorANGLE(t,r)},i.drawArraysInstanced=function(t,r,o,a){e.drawArraysInstancedANGLE(t,r,o,a)},i.drawElementsInstanced=function(t,r,o,a,s){e.drawElementsInstancedANGLE(t,r,o,a,s)},1}function Ta(i){var e=i.getExtension("OES_vertex_array_object");if(e)return i.createVertexArray=function(){return e.createVertexArrayOES()},i.deleteVertexArray=function(t){e.deleteVertexArrayOES(t)},i.bindVertexArray=function(t){e.bindVertexArrayOES(t)},i.isVertexArray=function(t){return e.isVertexArrayOES(t)},1}function va(i){var e=i.getExtension("WEBGL_draw_buffers");if(e)return i.drawBuffers=function(t,r){e.drawBuffersWEBGL(t,r)},1}function Qa(i){return!!(i.dibvbi=i.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function Pa(i){return!!(i.mdibvbi=i.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function Ra(i){return!!(i.multiDrawWebgl=i.getExtension("WEBGL_multi_draw"))}var B={counter:1,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function(e){B.lastError||(B.lastError=e)},getNewId:function(i){for(var e=B.counter++,t=i.length;t<e;t++)i[t]=null;return e},MAX_TEMP_BUFFER_SIZE:2097152,numTempVertexBuffersPerSize:64,log2ceilLookup:function(i){return 32-Math.clz32(i===0?0:i-1)},generateTempBuffers:function(i,e){var t=B.log2ceilLookup(B.MAX_TEMP_BUFFER_SIZE);e.tempVertexBufferCounters1=[],e.tempVertexBufferCounters2=[],e.tempVertexBufferCounters1.length=e.tempVertexBufferCounters2.length=t+1,e.tempVertexBuffers1=[],e.tempVertexBuffers2=[],e.tempVertexBuffers1.length=e.tempVertexBuffers2.length=t+1,e.tempIndexBuffers=[],e.tempIndexBuffers.length=t+1;for(var r=0;r<=t;++r){e.tempIndexBuffers[r]=null,e.tempVertexBufferCounters1[r]=e.tempVertexBufferCounters2[r]=0;var o=B.numTempVertexBuffersPerSize;e.tempVertexBuffers1[r]=[],e.tempVertexBuffers2[r]=[];var a=e.tempVertexBuffers1[r],s=e.tempVertexBuffers2[r];a.length=s.length=o;for(var A=0;A<o;++A)a[A]=s[A]=null}if(i){e.tempQuadIndexBuffer=M.createBuffer(),e.GLctx.bindBuffer(34963,e.tempQuadIndexBuffer);for(var c=B.MAX_TEMP_BUFFER_SIZE>>1,u=new Uint16Array(c),r=0,d=0;u[r++]=d,!(r>=c||(u[r++]=d+1,r>=c)||(u[r++]=d+2,r>=c)||(u[r++]=d,r>=c)||(u[r++]=d+2,r>=c)||(u[r++]=d+3,r>=c));)d+=4;e.GLctx.bufferData(34963,u,35044),e.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:function(e){var t=B.log2ceilLookup(e),r=B.currentContext.tempVertexBuffers1[t],o=B.currentContext.tempVertexBufferCounters1[t];B.currentContext.tempVertexBufferCounters1[t]=B.currentContext.tempVertexBufferCounters1[t]+1&B.numTempVertexBuffersPerSize-1;var a=r[o];if(a)return a;var s=M.getParameter(34964);return r[o]=M.createBuffer(),M.bindBuffer(34962,r[o]),M.bufferData(34962,1<<t,35048),M.bindBuffer(34962,s),r[o]},getTempIndexBuffer:function(e){var t=B.log2ceilLookup(e),r=B.currentContext.tempIndexBuffers[t];if(r)return r;var o=M.getParameter(34965);return B.currentContext.tempIndexBuffers[t]=M.createBuffer(),M.bindBuffer(34963,B.currentContext.tempIndexBuffers[t]),M.bufferData(34963,1<<t,35048),M.bindBuffer(34963,o),B.currentContext.tempIndexBuffers[t]},newRenderingFrameStarted:function(){if(B.currentContext){var e=B.currentContext.tempVertexBuffers1;B.currentContext.tempVertexBuffers1=B.currentContext.tempVertexBuffers2,B.currentContext.tempVertexBuffers2=e,e=B.currentContext.tempVertexBufferCounters1,B.currentContext.tempVertexBufferCounters1=B.currentContext.tempVertexBufferCounters2,B.currentContext.tempVertexBufferCounters2=e;for(var t=B.log2ceilLookup(B.MAX_TEMP_BUFFER_SIZE),r=0;r<=t;++r)B.currentContext.tempVertexBufferCounters1[r]=0}},getSource:function(i,e,t,r){for(var o="",a=0;a<e;++a){var s=r?T[r+a*4>>2]:-1;o+=At(T[t+a*4>>2],s<0?void 0:s)}return o},calcBufLength:function(e,t,r,o){if(r>0)return o*r;var a=B.byteSizeByType[t-B.byteSizeByTypeRoot];return e*a*o},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(e){B.resetBufferBinding=!1;for(var t=0;t<B.currentContext.maxVertexAttribs;++t){var r=B.currentContext.clientBuffers[t];if(!(!r.clientside||!r.enabled)){B.resetBufferBinding=!0;var o=B.calcBufLength(r.size,r.type,r.stride,e),a=B.getTempVertexBuffer(o);M.bindBuffer(34962,a),M.bufferSubData(34962,0,Se.subarray(r.ptr,r.ptr+o)),r.vertexAttribPointerAdaptor.call(M,t,r.size,r.type,r.normalized,r.stride,0)}}},postDrawHandleClientVertexAttribBindings:function(){B.resetBufferBinding&&M.bindBuffer(34962,B.buffers[M.currentArrayBufferBinding])},createContext:function(i,e){e.renderViaOffscreenBackBuffer&&(e.preserveDrawingBuffer=!0);var t=e.majorVersion>1?i.getContext("webgl2",e):i.getContext("webgl",e);if(!t)return 0;var r=B.registerContext(t,e);return r},enableOffscreenFramebufferAttributes:function(i){i.renderViaOffscreenBackBuffer=!0,i.preserveDrawingBuffer=!0},createOffscreenFramebuffer:function(i){var e=i.GLctx,t=e.createFramebuffer();if(e.bindFramebuffer(36160,t),i.defaultFbo=t,i.defaultFboForbidBlitFramebuffer=!1,e.getContextAttributes().antialias)i.defaultFboForbidBlitFramebuffer=!0;else{var r=navigator.userAgent.toLowerCase().match(/firefox\/(\d\d)/);if(r!=null){var o=r[1];i.defaultFboForbidBlitFramebuffer=o<67}}i.defaultColorTarget=e.createTexture(),i.defaultDepthTarget=e.createRenderbuffer(),B.resizeOffscreenFramebuffer(i),e.bindTexture(3553,i.defaultColorTarget),e.texParameteri(3553,10241,9728),e.texParameteri(3553,10240,9728),e.texParameteri(3553,10242,33071),e.texParameteri(3553,10243,33071),e.texImage2D(3553,0,6408,e.canvas.width,e.canvas.height,0,6408,5121,null),e.framebufferTexture2D(36160,36064,3553,i.defaultColorTarget,0),e.bindTexture(3553,null);var a=e.createRenderbuffer();e.bindRenderbuffer(36161,i.defaultDepthTarget),e.renderbufferStorage(36161,33189,e.canvas.width,e.canvas.height),e.framebufferRenderbuffer(36160,36096,36161,i.defaultDepthTarget),e.bindRenderbuffer(36161,null);var s=[-1,-1,-1,1,1,-1,1,1],A=e.createBuffer();e.bindBuffer(34962,A),e.bufferData(34962,new Float32Array(s),35044),e.bindBuffer(34962,null),i.blitVB=A;var c="attribute vec2 pos;varying lowp vec2 tex;void main() { tex = pos * 0.5 + vec2(0.5,0.5); gl_Position = vec4(pos, 0.0, 1.0); }",u=e.createShader(35633);e.shaderSource(u,c),e.compileShader(u);var d="varying lowp vec2 tex;uniform sampler2D sampler;void main() { gl_FragColor = texture2D(sampler, tex); }",h=e.createShader(35632);e.shaderSource(h,d),e.compileShader(h);var I=e.createProgram();e.attachShader(I,u),e.attachShader(I,h),e.linkProgram(I),i.blitProgram=I,i.blitPosLoc=e.getAttribLocation(I,"pos"),e.useProgram(I),e.uniform1i(e.getUniformLocation(I,"sampler"),0),e.useProgram(null),i.defaultVao=void 0,e.createVertexArray&&(i.defaultVao=e.createVertexArray(),e.bindVertexArray(i.defaultVao),e.enableVertexAttribArray(i.blitPosLoc),e.bindVertexArray(null))},resizeOffscreenFramebuffer:function(i){var e=i.GLctx;if(i.defaultColorTarget){var t=e.getParameter(32873);e.bindTexture(3553,i.defaultColorTarget),e.texImage2D(3553,0,6408,e.drawingBufferWidth,e.drawingBufferHeight,0,6408,5121,null),e.bindTexture(3553,t)}if(i.defaultDepthTarget){var r=e.getParameter(36007);e.bindRenderbuffer(36161,i.defaultDepthTarget),e.renderbufferStorage(36161,33189,e.drawingBufferWidth,e.drawingBufferHeight),e.bindRenderbuffer(36161,r)}},blitOffscreenFramebuffer:function(i){var e=i.GLctx,t=e.getParameter(3089);t&&e.disable(3089);var r=e.getParameter(36006);if(e.blitFramebuffer&&!i.defaultFboForbidBlitFramebuffer)e.bindFramebuffer(36008,i.defaultFbo),e.bindFramebuffer(36009,null),e.blitFramebuffer(0,0,e.canvas.width,e.canvas.height,0,0,e.canvas.width,e.canvas.height,16384,9728);else{let $=function(){e.vertexAttribPointer(i.blitPosLoc,2,5126,!1,0,0),e.drawArrays(5,0,4)};var N=$;e.bindFramebuffer(36160,null);var o=e.getParameter(35725);e.useProgram(i.blitProgram);var a=e.getParameter(34964);e.bindBuffer(34962,i.blitVB);var s=e.getParameter(34016);e.activeTexture(33984);var A=e.getParameter(32873);e.bindTexture(3553,i.defaultColorTarget);var c=e.getParameter(3042);c&&e.disable(3042);var u=e.getParameter(2884);u&&e.disable(2884);var d=e.getParameter(2929);d&&e.disable(2929);var h=e.getParameter(2960);if(h&&e.disable(2960),i.defaultVao){var I=e.getParameter(34229);e.bindVertexArray(i.defaultVao),$(),e.bindVertexArray(I)}else{for(var m={buffer:e.getVertexAttrib(i.blitPosLoc,34975),size:e.getVertexAttrib(i.blitPosLoc,34339),stride:e.getVertexAttrib(i.blitPosLoc,34340),type:e.getVertexAttrib(i.blitPosLoc,34341),normalized:e.getVertexAttrib(i.blitPosLoc,34922),pointer:e.getVertexAttribOffset(i.blitPosLoc,34373)},y=e.getParameter(34921),v=[],x=0;x<y;++x){var G=e.getVertexAttrib(x,34338),R=x==i.blitPosLoc;G&&!R&&e.disableVertexAttribArray(x),!G&&R&&e.enableVertexAttribArray(x),v[x]=G}$();for(var x=0;x<y;++x){var G=v[x],b=x==i.blitPosLoc;G&&!b&&e.enableVertexAttribArray(x),!G&&b&&e.disableVertexAttribArray(x)}e.bindBuffer(34962,m.buffer),e.vertexAttribPointer(i.blitPosLoc,m.size,m.type,m.normalized,m.stride,m.offset)}h&&e.enable(2960),d&&e.enable(2929),u&&e.enable(2884),c&&e.enable(3042),e.bindTexture(3553,A),e.activeTexture(s),e.bindBuffer(34962,a),e.useProgram(o)}e.bindFramebuffer(36160,r),t&&e.enable(3089)},registerContext:function(i,e){var t=B.getNewId(B.contexts),r={handle:t,attributes:e,version:e.majorVersion,GLctx:i};i.canvas&&(i.canvas.GLctxObject=r),B.contexts[t]=r,(typeof e.enableExtensionsByDefault=="undefined"||e.enableExtensionsByDefault)&&B.initExtensions(r),r.maxVertexAttribs=r.GLctx.getParameter(34921),r.clientBuffers=[];for(var o=0;o<r.maxVertexAttribs;o++)r.clientBuffers[o]={enabled:!1,clientside:!1,size:0,type:0,normalized:0,stride:0,ptr:0,vertexAttribPointerAdaptor:null};return B.generateTempBuffers(!1,r),e.renderViaOffscreenBackBuffer&&B.createOffscreenFramebuffer(r),t},makeContextCurrent:function(i){return B.currentContext=B.contexts[i],n.ctx=M=B.currentContext&&B.currentContext.GLctx,!(i&&!M)},getContext:function(i){return B.contexts[i]},deleteContext:function(i){B.currentContext===B.contexts[i]&&(B.currentContext=null),typeof w=="object"&&w.removeAllHandlersOnTarget(B.contexts[i].GLctx.canvas),B.contexts[i]&&B.contexts[i].GLctx.canvas&&(B.contexts[i].GLctx.canvas.GLctxObject=void 0),B.contexts[i]=null},initExtensions:function(i){if(i||(i=B.currentContext),!i.initExtensionsDone){i.initExtensionsDone=!0;var e=i.GLctx;Oa(e),Ta(e),va(e),Qa(e),Pa(e),i.version>=2&&(e.disjointTimerQueryExt=e.getExtension("EXT_disjoint_timer_query_webgl2")),(i.version<2||!e.disjointTimerQueryExt)&&(e.disjointTimerQueryExt=e.getExtension("EXT_disjoint_timer_query")),Ra(e);var t=e.getSupportedExtensions()||[];t.forEach(function(r){!r.includes("lose_context")&&!r.includes("debug")&&e.getExtension(r)})}}},w={inEventHandler:0,removeAllEventListeners:function(){for(var i=w.eventHandlers.length-1;i>=0;--i)w._removeHandler(i);w.eventHandlers=[],w.deferredCalls=[]},registerRemoveEventListeners:function(){w.removeEventListenersRegistered||(Hr.push(w.removeAllEventListeners),w.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(i,e,t){function r(s,A){if(s.length!=A.length)return!1;for(var c in s)if(s[c]!=A[c])return!1;return!0}for(var o in w.deferredCalls){var a=w.deferredCalls[o];if(a.targetFunction==i&&r(a.argsList,t))return}w.deferredCalls.push({targetFunction:i,precedence:e,argsList:t}),w.deferredCalls.sort(function(s,A){return s.precedence<A.precedence})},removeDeferredCalls:function(i){for(var e=0;e<w.deferredCalls.length;++e)w.deferredCalls[e].targetFunction==i&&(w.deferredCalls.splice(e,1),--e)},canPerformEventHandlerRequests:function(){return w.inEventHandler&&w.currentEventHandler.allowsDeferredCalls},runDeferredCalls:function(){if(w.canPerformEventHandlerRequests())for(var i=0;i<w.deferredCalls.length;++i){var e=w.deferredCalls[i];w.deferredCalls.splice(i,1),--i,e.targetFunction.apply(null,e.argsList)}},eventHandlers:[],removeAllHandlersOnTarget:function(i,e){for(var t=0;t<w.eventHandlers.length;++t)w.eventHandlers[t].target==i&&(!e||e==w.eventHandlers[t].eventTypeString)&&w._removeHandler(t--)},_removeHandler:function(i){var e=w.eventHandlers[i];e.target.removeEventListener(e.eventTypeString,e.eventListenerFunc,e.useCapture),w.eventHandlers.splice(i,1)},registerOrRemoveHandler:function(i){var e=function(o){++w.inEventHandler,w.currentEventHandler=i,w.runDeferredCalls(),i.handlerFunc(o),w.runDeferredCalls(),--w.inEventHandler};if(i.callbackfunc)i.eventListenerFunc=e,i.target.addEventListener(i.eventTypeString,e,i.useCapture),w.eventHandlers.push(i),w.registerRemoveEventListeners();else for(var t=0;t<w.eventHandlers.length;++t)w.eventHandlers[t].target==i.target&&w.eventHandlers[t].eventTypeString==i.eventTypeString&&w._removeHandler(t--)},getNodeNameForTarget:function(i){return i?i==window?"#window":i==screen?"#screen":i&&i.nodeName?i.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}},fe=["default","low-power","high-performance"],Oo=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function Sa(i){Re("Rules for selecting event targets in HTML5 API are changing: instead of using document.getElementById() that only can refer to elements by their DOM ID, new event target selection mechanism uses the more flexible function document.querySelector() that can look up element names, classes, and complex CSS selectors. Build with -s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1 to change to the new lookup rules. See https://github.com/emscripten-core/emscripten/pull/7977 for more details.");try{return!i||(typeof i=="number"&&(i=Oo[i]||At(i)),i==="#window")?window:i==="#document"?document:i==="#screen"?screen:i==="#canvas"?n.canvas:typeof i=="string"?document.getElementById(i):i}catch(e){return null}}function io(i){return typeof i=="number"&&(i=At(i)),!i||i==="#canvas"?typeof B!="undefined"&&B.offscreenCanvases.canvas?B.offscreenCanvases.canvas:n.canvas:typeof B!="undefined"&&B.offscreenCanvases[i]?B.offscreenCanvases[i]:Sa(i)}function oo(i,e){V(e);var t=e>>2,r=T[t+6],o={alpha:!!T[t+0],depth:!!T[t+1],stencil:!!T[t+2],antialias:!!T[t+3],premultipliedAlpha:!!T[t+4],preserveDrawingBuffer:!!T[t+5],powerPreference:fe[r],failIfMajorPerformanceCaveat:!!T[t+7],majorVersion:T[t+8],minorVersion:T[t+9],enableExtensionsByDefault:T[t+10],explicitSwapControl:T[t+11],proxyContextToMainThread:T[t+12],renderViaOffscreenBackBuffer:T[t+13]},a=io(i);if(!a)return 0;if(a.offscreenCanvas&&(a=a.offscreenCanvas),o.explicitSwapControl){var s=a.transferControlToOffscreen||typeof OffscreenCanvas!="undefined"&&a instanceof OffscreenCanvas;if(s||o.renderViaOffscreenBackBuffer||(o.renderViaOffscreenBackBuffer=!0),a.transferControlToOffscreen){if(!a.controlTransferredOffscreen)B.offscreenCanvases[a.id]={canvas:a.transferControlToOffscreen(),canvasSharedPtr:at(12),id:a.id},a.controlTransferredOffscreen=!0;else if(!B.offscreenCanvases[a.id])return 0;a=B.offscreenCanvases[a.id]}}var A=B.createContext(a,o);return A}function Ma(i,e){return oo(i,e)}function Fa(){return B.currentContext?B.currentContext.handle:0}function To(){return Fa()}n._emscripten_webgl_get_current_context=To;function ao(i){var e=B.makeContextCurrent(i);return e?0:-5}n._emscripten_webgl_make_context_current=ao;function vo(i){B.currentContext==i&&(B.currentContext=0),B.deleteContext(i)}function ka(i,e){if(!e)return-5;if(i=B.contexts[i],!i)return-3;var t=i.GLctx;if(!t)return-3;t=t.getContextAttributes(),T[e>>2]=t.alpha,T[e+4>>2]=t.depth,T[e+8>>2]=t.stencil,T[e+12>>2]=t.antialias,T[e+16>>2]=t.premultipliedAlpha,T[e+20>>2]=t.preserveDrawingBuffer;var r=t.powerPreference&&fe.indexOf(t.powerPreference);return T[e+24>>2]=r,T[e+28>>2]=t.failIfMajorPerformanceCaveat,T[e+32>>2]=i.version,T[e+36>>2]=0,T[e+40>>2]=i.attributes.enableExtensionsByDefault,0}function Na(i){V(i);for(var e=i>>2,t=0;t<14;++t)T[e+t]=0;T[e+0]=T[e+1]=T[e+3]=T[e+4]=T[e+8]=T[e+10]=1}var so={};function Ao(){return mt||"./this.program"}function kn(){if(!kn.strings){var i=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:i,_:Ao()};for(var t in so)so[t]===void 0?delete e[t]:e[t]=so[t];var r=[];for(var t in e)r.push(t+"="+e[t]);kn.strings=r}return kn.strings}function Nn(i,e){var t=0;return kn().forEach(function(r,o){var a=e+t;T[i+o*4>>2]=a,yn(r,a),t+=r.length+1}),0}function xa(i,e){var t=kn();T[i>>2]=t.length;var r=0;return t.forEach(function(o){r+=o.length+1}),T[e>>2]=r,0}function Ua(i){try{var e=l.getStreamFromFD(i);return f.close(e),0}catch(t){return(typeof f=="undefined"||!(t instanceof f.ErrnoError))&&p(t),t.errno}}function ja(i,e,t,r){try{var o=l.getStreamFromFD(i),a=l.doReadv(o,e,t);return T[r>>2]=a,0}catch(s){return(typeof f=="undefined"||!(s instanceof f.ErrnoError))&&p(s),s.errno}}function La(i,e,t,r,o){try{var a=l.getStreamFromFD(i),s=4294967296,A=t*s+(e>>>0),c=9007199254740992;return A<=-c||A>=c?-61:(f.llseek(a,A,r),ye=[a.position>>>0,(Ve=a.position,+Math.abs(Ve)>=1?Ve>0?(Math.min(+Math.floor(Ve/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Ve-+(~~Ve>>>0))/4294967296)>>>0:0)],T[o>>2]=ye[0],T[o+4>>2]=ye[1],a.getdents&&A===0&&r===0&&(a.getdents=null),0)}catch(u){return(typeof f=="undefined"||!(u instanceof f.ErrnoError))&&p(u),u.errno}}function Ha(i,e,t,r){try{var o=l.getStreamFromFD(i),a=l.doWritev(o,e,t);return T[r>>2]=a,0}catch(s){return(typeof f=="undefined"||!(s instanceof f.ErrnoError))&&p(s),s.errno}}function Ga(){return Cr()}function gi(i,e){gi.randomDevice||(gi.randomDevice=Ie());for(var t=0;t<e;t++)xe[i+t>>0]=gi.randomDevice();return 0}function Ei(i){M.activeTexture(i)}function Ya(i,e){M.attachShader(B.programs[i],B.shaders[e])}function Xa(i,e,t){M.bindAttribLocation(B.programs[i],e,At(t))}function Va(i,e){i==34962?M.currentArrayBufferBinding=e:i==34963&&(M.currentElementArrayBufferBinding=e),i==35051?M.currentPixelPackBufferBinding=e:i==35052&&(M.currentPixelUnpackBufferBinding=e),M.bindBuffer(i,B.buffers[e])}function Wa(i,e,t){M.bindBufferBase(i,e,B.buffers[t])}function za(i,e){M.bindFramebuffer(i,e?B.framebuffers[e]:B.currentContext.defaultFbo)}function $a(i,e){M.bindTexture(i,B.textures[e])}function Ka(i){M.bindVertexArray(B.vaos[i]);var e=M.getParameter(34965);M.currentElementArrayBufferBinding=e?e.name|0:0}function Ja(i,e,t,r){B.currentContext.version>=2?t?M.bufferData(i,Se,r,t,e):M.bufferData(i,e,r):M.bufferData(i,t?Se.subarray(t,t+e):e,r)}function Za(i,e){return V(e===(e|0)),(i>>>0)+e*4294967296}function qa(i,e,t,r){return M.clientWaitSync(B.syncs[i],e,Za(t,r))}function es(i){M.compileShader(B.shaders[i])}function ts(){var i=B.getNewId(B.programs),e=M.createProgram();return e.name=i,e.maxUniformLength=e.maxAttributeLength=e.maxUniformBlockNameLength=0,e.uniformIdCounter=1,B.programs[i]=e,i}function rs(i){var e=B.getNewId(B.shaders);return B.shaders[e]=M.createShader(i),e}function ns(i,e){for(var t=0;t<i;t++){var r=T[e+t*4>>2],o=B.buffers[r];o&&(M.deleteBuffer(o),o.name=0,B.buffers[r]=null,r==M.currentArrayBufferBinding&&(M.currentArrayBufferBinding=0),r==M.currentElementArrayBufferBinding&&(M.currentElementArrayBufferBinding=0),r==M.currentPixelPackBufferBinding&&(M.currentPixelPackBufferBinding=0),r==M.currentPixelUnpackBufferBinding&&(M.currentPixelUnpackBufferBinding=0))}}function is(i,e){for(var t=0;t<i;++t){var r=T[e+t*4>>2],o=B.framebuffers[r];o&&(M.deleteFramebuffer(o),o.name=0,B.framebuffers[r]=null)}}function os(i){if(i){var e=B.programs[i];if(!e){B.recordError(1281);return}M.deleteProgram(e),e.name=0,B.programs[i]=null}}function as(i){if(i){var e=B.shaders[i];if(!e){B.recordError(1281);return}M.deleteShader(e),B.shaders[i]=null}}function ss(i){if(i){var e=B.syncs[i];if(!e){B.recordError(1281);return}M.deleteSync(e),e.name=0,B.syncs[i]=null}}function As(i,e){for(var t=0;t<i;t++){var r=T[e+t*4>>2],o=B.textures[r];o&&(M.deleteTexture(o),o.name=0,B.textures[r]=null)}}function cs(i,e){for(var t=0;t<i;t++){var r=T[e+t*4>>2];M.deleteVertexArray(B.vaos[r]),B.vaos[r]=null}}function us(i){M.disable(i)}function ls(i){var e=B.currentContext.clientBuffers[i];e.enabled=!1,M.disableVertexAttribArray(i)}function ds(i,e,t){B.preDrawHandleClientVertexAttribBindings(e+t),M.drawArrays(i,e,t),B.postDrawHandleClientVertexAttribBindings()}var Qo=[];function Po(i,e){for(var t=Qo[i],r=0;r<i;r++)t[r]=T[e+r*4>>2];M.drawBuffers(t)}function fs(i){var e=B.currentContext.clientBuffers[i];e.enabled=!0,M.enableVertexAttribArray(i)}function gs(i,e){var t=M.fenceSync(i,e);if(t){var r=B.getNewId(B.syncs);return t.name=r,B.syncs[r]=t,r}else return 0}function Es(){M.finish()}function ps(){M.flush()}function _s(i,e,t,r,o){M.framebufferTexture2D(i,e,t,B.textures[r],o)}function hs(i,e,t,r,o){M.framebufferTextureLayer(i,e,B.textures[t],r,o)}function pi(i,e,t,r){for(var o=0;o<i;o++){var a=M[t](),s=a&&B.getNewId(r);a?(a.name=s,r[s]=a):B.recordError(1282),T[e+o*4>>2]=s}}function _i(i,e){pi(i,e,"createBuffer",B.buffers)}function Is(i,e){pi(i,e,"createFramebuffer",B.framebuffers)}function ms(i,e){pi(i,e,"createTexture",B.textures)}function Cs(i,e){pi(i,e,"createVertexArray",B.vaos)}function ys(i,e){return M.getAttribLocation(B.programs[i],At(e))}function ws(){var i=M.getError()||B.lastError;return B.lastError=0,i}function bs(i){return De[i>>2]+T[i+4>>2]*4294967296}function Ds(i){return De[i>>2]+De[i+4>>2]*4294967296}function Bs(i,e){De[i>>2]=e,De[i+4>>2]=(e-De[i>>2])/4294967296;var t=e>=0?Ds(i):bs(i);t!=e&&Re("writeI53ToI64() out of range: serialized JS Number "+e+" to Wasm heap as bytes lo=0x"+De[i>>2].toString(16)+", hi=0x"+De[i+4>>2].toString(16)+", which deserializes back to "+t+" instead!")}function Os(i,e,t){if(!e){B.recordError(1281);return}var r=void 0;switch(i){case 36346:r=1;break;case 36344:t!=0&&t!=1&&B.recordError(1280);return;case 34814:case 36345:r=0;break;case 34466:var o=M.getParameter(34467);r=o?o.length:0;break;case 33309:if(B.currentContext.version<2){B.recordError(1282);return}var a=M.getSupportedExtensions()||[];r=2*a.length;break;case 33307:case 33308:if(B.currentContext.version<2){B.recordError(1280);return}r=i==33307?3:0;break}if(r===void 0){var s=M.getParameter(i);switch(typeof s){case"number":r=s;break;case"boolean":r=s?1:0;break;case"string":B.recordError(1280);return;case"object":if(s===null)switch(i){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:{r=0;break}default:{B.recordError(1280);return}}else if(s instanceof Float32Array||s instanceof Uint32Array||s instanceof Int32Array||s instanceof Array){for(var A=0;A<s.length;++A)switch(t){case 0:T[e+A*4>>2]=s[A];break;case 2:D[e+A*4>>2]=s[A];break;case 4:xe[e+A>>0]=s[A]?1:0;break}return}else try{r=s.name|0}catch(c){B.recordError(1280),ge("GL_INVALID_ENUM in glGet"+t+"v: Unknown object returned from WebGL getParameter("+i+")! (error: "+c+")");return}break;default:B.recordError(1280),ge("GL_INVALID_ENUM in glGet"+t+"v: Native code calling glGet"+t+"v("+i+") and it returns "+s+" of type "+typeof s+"!");return}}switch(t){case 1:Bs(e,r);break;case 0:T[e>>2]=r;break;case 2:D[e>>2]=r;break;case 4:xe[e>>0]=r?1:0;break}}function Ts(i,e){Os(i,e,0)}function hi(i){var e=tt(i)+1,t=at(e);return et(i,t,e),t}function Ii(i){var e=B.stringCache[i];if(!e){switch(i){case 7939:var t=M.getSupportedExtensions()||[];t=t.concat(t.map(function(c){return"GL_"+c})),e=hi(t.join(" "));break;case 7936:case 7937:case 37445:case 37446:var r=M.getParameter(i);r||B.recordError(1280),e=r&&hi(r);break;case 7938:var o=M.getParameter(7938);B.currentContext.version>=2?o="OpenGL ES 3.0 ("+o+")":o="OpenGL ES 2.0 ("+o+")",e=hi(o);break;case 35724:var a=M.getParameter(35724),s=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/,A=a.match(s);A!==null&&(A[1].length==3&&(A[1]=A[1]+"0"),a="OpenGL ES GLSL ES "+A[1]+" ("+a+")"),e=hi(a);break;default:B.recordError(1280)}B.stringCache[i]=e}return e}function vs(i,e){return M.getUniformBlockIndex(B.programs[i],At(e))}function Qs(i){return parseInt(i)}function Ro(i){return i.slice(-1)=="]"&&i.lastIndexOf("[")}function So(i){var e=i.uniformLocsById,t=i.uniformSizeAndIdsByName,r,o;if(!e)for(i.uniformLocsById=e={},i.uniformArrayNamesById={},r=0;r<M.getProgramParameter(i,35718);++r){var a=M.getActiveUniform(i,r),s=a.name,A=a.size,c=Ro(s),u=c>0?s.slice(0,c):s,d=i.uniformIdCounter;for(i.uniformIdCounter+=A,t[u]=[A,d],o=0;o<A;++o)e[d]=o,i.uniformArrayNamesById[d++]=u}}function Ps(i,e){if(e=At(e),i=B.programs[i]){So(i);var t=i.uniformLocsById,r=0,o=e,a=Ro(e);a>0&&(r=Qs(e.slice(a+1))>>>0,o=e.slice(0,a));var s=i.uniformSizeAndIdsByName[o];if(s&&r<s[0]&&(r+=s[1],t[r]=t[r]||M.getUniformLocation(i,e)))return r}else B.recordError(1281);return-1}function Rs(i){i=B.programs[i],M.linkProgram(i),i.uniformLocsById=0,i.uniformSizeAndIdsByName={}}function Ss(i,e){i==3317&&(B.unpackAlignment=e),M.pixelStorei(i,e)}function Ms(i,e,t,r){function o(A,c){return A+c-1&-c}var a=i*t,s=o(a,r);return e*s}function Fs(i){var e={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return e[i-6402]||1}function xn(i){return i-=5120,i==0?xe:i==1?Se:i==2?be:i==4?T:i==6?D:i==5||i==28922||i==28520||i==30779||i==30782?De:ve}function pr(i){return 31-Math.clz32(i.BYTES_PER_ELEMENT)}function Zr(i,e,t,r,o,a){var s=xn(i),A=pr(s),c=1<<A,u=Fs(e)*c,d=Ms(t,r,u,B.unpackAlignment);return s.subarray(o>>A,o+d>>A)}function co(i,e,t,r,o,a,s){if(B.currentContext.version>=2){if(M.currentPixelPackBufferBinding)M.readPixels(i,e,t,r,o,a,s);else{var A=xn(a);M.readPixels(i,e,t,r,o,a,A,s>>pr(A))}return}var c=Zr(a,o,t,r,s,o);if(!c){B.recordError(1280);return}M.readPixels(i,e,t,r,o,a,c)}function ks(i,e,t,r){var o=B.getSource(i,e,t,r);M.shaderSource(B.shaders[i],o)}function Ns(i,e,t,r,o,a,s,A,c){if(B.currentContext.version>=2){if(M.currentPixelUnpackBufferBinding)M.texImage2D(i,e,t,r,o,a,s,A,c);else if(c){var u=xn(A);M.texImage2D(i,e,t,r,o,a,s,A,u,c>>pr(u))}else M.texImage2D(i,e,t,r,o,a,s,A,null);return}M.texImage2D(i,e,t,r,o,a,s,A,c?Zr(A,s,r,o,c,t):null)}function xs(i,e,t){var r=D[t>>2];M.texParameterf(i,e,r)}function Us(i,e,t){M.texParameteri(i,e,t)}function js(i,e,t,r,o){M.texStorage2D(i,e,t,r,o)}function Ls(i,e,t,r,o,a){M.texStorage3D(i,e,t,r,o,a)}function Hs(i,e,t,r,o,a,s,A,c){if(B.currentContext.version>=2){if(M.currentPixelUnpackBufferBinding)M.texSubImage2D(i,e,t,r,o,a,s,A,c);else if(c){var u=xn(A);M.texSubImage2D(i,e,t,r,o,a,s,A,u,c>>pr(u))}else M.texSubImage2D(i,e,t,r,o,a,s,A,null);return}var d=null;c&&(d=Zr(A,s,o,a,c,0)),M.texSubImage2D(i,e,t,r,o,a,s,A,d)}function Gs(i,e,t,r,o,a,s,A,c,u,d){if(M.currentPixelUnpackBufferBinding)M.texSubImage3D(i,e,t,r,o,a,s,A,c,u,d);else if(d){var h=xn(u);M.texSubImage3D(i,e,t,r,o,a,s,A,c,u,h,d>>pr(h))}else M.texSubImage3D(i,e,t,r,o,a,s,A,c,u,null)}function qt(i){var e=M.currentProgram;if(e){var t=e.uniformLocsById[i];return typeof t=="number"&&(e.uniformLocsById[i]=t=M.getUniformLocation(e,e.uniformArrayNamesById[i]+(t>0?"["+t+"]":""))),t}else B.recordError(1282)}function er(i,e){M.uniform1f(qt(i),e)}function Ys(i,e){M.uniform1i(qt(i),e)}var mi=[];function Ci(i,e,t){if(B.currentContext.version>=2){M.uniform2fv(qt(i),D,t>>2,e*2);return}if(e<=144)for(var r=mi[2*e-1],o=0;o<2*e;o+=2)r[o]=D[t+4*o>>2],r[o+1]=D[t+(4*o+4)>>2];else var r=D.subarray(t>>2,t+e*8>>2);M.uniform2fv(qt(i),r)}function Xs(i,e,t){if(B.currentContext.version>=2){M.uniform4fv(qt(i),D,t>>2,e*4);return}if(e<=72){var r=mi[4*e-1],o=D;t>>=2;for(var a=0;a<4*e;a+=4){var s=t+a;r[a]=o[s],r[a+1]=o[s+1],r[a+2]=o[s+2],r[a+3]=o[s+3]}}else var r=D.subarray(t>>2,t+e*16>>2);M.uniform4fv(qt(i),r)}var Mo=[];function Fo(i,e,t){if(B.currentContext.version>=2){M.uniform4iv(qt(i),T,t>>2,e*4);return}if(e<=72)for(var r=Mo[4*e-1],o=0;o<4*e;o+=4)r[o]=T[t+4*o>>2],r[o+1]=T[t+(4*o+4)>>2],r[o+2]=T[t+(4*o+8)>>2],r[o+3]=T[t+(4*o+12)>>2];else var r=T.subarray(t>>2,t+e*16>>2);M.uniform4iv(qt(i),r)}function Vs(i,e,t){i=B.programs[i],M.uniformBlockBinding(i,e,t)}function Ws(i,e,t,r){if(B.currentContext.version>=2){M.uniformMatrix4fv(qt(i),!!t,D,r>>2,e*16);return}if(e<=18){var o=mi[16*e-1],a=D;r>>=2;for(var s=0;s<16*e;s+=16){var A=r+s;o[s]=a[A],o[s+1]=a[A+1],o[s+2]=a[A+2],o[s+3]=a[A+3],o[s+4]=a[A+4],o[s+5]=a[A+5],o[s+6]=a[A+6],o[s+7]=a[A+7],o[s+8]=a[A+8],o[s+9]=a[A+9],o[s+10]=a[A+10],o[s+11]=a[A+11],o[s+12]=a[A+12],o[s+13]=a[A+13],o[s+14]=a[A+14],o[s+15]=a[A+15]}}else var o=D.subarray(r>>2,r+e*64>>2);M.uniformMatrix4fv(qt(i),!!t,o)}function zs(i){i=B.programs[i],M.useProgram(i),M.currentProgram=i}function $s(i,e,t,r,o,a){var s=B.currentContext.clientBuffers[i];if(!M.currentArrayBufferBinding){s.size=e,s.type=t,s.normalized=r,s.stride=o,s.ptr=a,s.clientside=!0,s.vertexAttribPointerAdaptor=function(A,c,u,d,h,I){this.vertexAttribPointer(A,c,u,d,h,I)};return}s.clientside=!1,M.vertexAttribPointer(i,e,t,!!r,o,a)}function Ks(i,e,t,r){M.viewport(i,e,t,r)}function yi(i,e){var t=new Date(T[i>>2]*1e3);T[e>>2]=t.getUTCSeconds(),T[e+4>>2]=t.getUTCMinutes(),T[e+8>>2]=t.getUTCHours(),T[e+12>>2]=t.getUTCDate(),T[e+16>>2]=t.getUTCMonth(),T[e+20>>2]=t.getUTCFullYear()-1900,T[e+24>>2]=t.getUTCDay(),T[e+36>>2]=0,T[e+32>>2]=0;var r=Date.UTC(t.getUTCFullYear(),0,1,0,0,0,0),o=(t.getTime()-r)/(1e3*60*60*24)|0;return T[e+28>>2]=o,yi.GMTString||(yi.GMTString=Cn("GMT")),T[e+40>>2]=yi.GMTString,e}function wi(i){return i}function bi(){if(bi.called)return;bi.called=!0;var i=new Date().getFullYear(),e=new Date(i,0,1),t=new Date(i,6,1),r=e.getTimezoneOffset(),o=t.getTimezoneOffset(),a=Math.max(r,o);T[nA()>>2]=a*60,T[Ln()>>2]=+(r!=o);function s(h){var I=h.toTimeString().match(/\(([A-Za-z ]+)\)$/);return I?I[1]:"GMT"}var A=s(e),c=s(t),u=Cn(A),d=Cn(c);o<r?(T[nn()>>2]=u,T[nn()+4>>2]=d):(T[nn()>>2]=d,T[nn()+4>>2]=u)}function Di(i,e){bi();var t=new Date(T[i>>2]*1e3);T[e>>2]=t.getSeconds(),T[e+4>>2]=t.getMinutes(),T[e+8>>2]=t.getHours(),T[e+12>>2]=t.getDate(),T[e+16>>2]=t.getMonth(),T[e+20>>2]=t.getFullYear()-1900,T[e+24>>2]=t.getDay();var r=new Date(t.getFullYear(),0,1),o=(t.getTime()-r.getTime())/(1e3*60*60*24)|0;T[e+28>>2]=o,T[e+36>>2]=-(t.getTimezoneOffset()*60);var a=new Date(t.getFullYear(),6,1).getTimezoneOffset(),s=r.getTimezoneOffset(),A=(a!=s&&t.getTimezoneOffset()==Math.min(s,a))|0;T[e+32>>2]=A;var c=T[nn()+(A?4:0)>>2];return T[e+40>>2]=c,e}function Js(i){bi();var e=new Date(T[i+20>>2]+1900,T[i+16>>2],T[i+12>>2],T[i+8>>2],T[i+4>>2],T[i>>2],0),t=T[i+32>>2],r=e.getTimezoneOffset(),o=new Date(e.getFullYear(),0,1),a=new Date(e.getFullYear(),6,1).getTimezoneOffset(),s=o.getTimezoneOffset(),A=Math.min(s,a);if(t<0)T[i+32>>2]=+(a!=s&&A==r);else if(t>0!=(A==r)){var c=Math.max(s,a),u=t>0?A:c;e.setTime(e.getTime()+(u-r)*6e4)}T[i+24>>2]=e.getDay();var d=(e.getTime()-o.getTime())/(1e3*60*60*24)|0;return T[i+28>>2]=d,T[i>>2]=e.getSeconds(),T[i+4>>2]=e.getMinutes(),T[i+8>>2]=e.getHours(),T[i+12>>2]=e.getDate(),T[i+16>>2]=e.getMonth(),e.getTime()/1e3|0}function Zs(i){Lo(i)}function qs(i){yt(i)}function Bi(i){return i%4===0&&(i%100!==0||i%400===0)}function _n(i,e){for(var t=0,r=0;r<=e;t+=i[r++]);return t}var hn=[31,29,31,30,31,30,31,31,30,31,30,31],qr=[31,28,31,30,31,30,31,31,30,31,30,31];function en(i,e){for(var t=new Date(i.getTime());e>0;){var r=Bi(t.getFullYear()),o=t.getMonth(),a=(r?hn:qr)[o];if(e>a-t.getDate())e-=a-t.getDate()+1,t.setDate(1),o<11?t.setMonth(o+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1));else return t.setDate(t.getDate()+e),t}return t}function Un(i,e,t,r){var o=T[r+40>>2],a={tm_sec:T[r>>2],tm_min:T[r+4>>2],tm_hour:T[r+8>>2],tm_mday:T[r+12>>2],tm_mon:T[r+16>>2],tm_year:T[r+20>>2],tm_wday:T[r+24>>2],tm_yday:T[r+28>>2],tm_isdst:T[r+32>>2],tm_gmtoff:T[r+36>>2],tm_zone:o?At(o):""},s=At(t),A={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var c in A)s=s.replace(new RegExp(c,"g"),A[c]);var u=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],d=["January","February","March","April","May","June","July","August","September","October","November","December"];function h(R,b,N){for(var $=typeof R=="number"?R.toString():R||"";$.length<b;)$=N[0]+$;return $}function I(R,b){return h(R,b,"0")}function m(R,b){function N(Y){return Y<0?-1:Y>0?1:0}var $;return($=N(R.getFullYear()-b.getFullYear()))===0&&($=N(R.getMonth()-b.getMonth()))===0&&($=N(R.getDate()-b.getDate())),$}function y(R){switch(R.getDay()){case 0:return new Date(R.getFullYear()-1,11,29);case 1:return R;case 2:return new Date(R.getFullYear(),0,3);case 3:return new Date(R.getFullYear(),0,2);case 4:return new Date(R.getFullYear(),0,1);case 5:return new Date(R.getFullYear()-1,11,31);case 6:return new Date(R.getFullYear()-1,11,30)}}function v(R){var b=en(new Date(R.tm_year+1900,0,1),R.tm_yday),N=new Date(b.getFullYear(),0,4),$=new Date(b.getFullYear()+1,0,4),Y=y(N),Ce=y($);return m(Y,b)<=0?m(Ce,b)<=0?b.getFullYear()+1:b.getFullYear():b.getFullYear()-1}var x={"%a":function(R){return u[R.tm_wday].substring(0,3)},"%A":function(R){return u[R.tm_wday]},"%b":function(R){return d[R.tm_mon].substring(0,3)},"%B":function(R){return d[R.tm_mon]},"%C":function(R){var b=R.tm_year+1900;return I(b/100|0,2)},"%d":function(R){return I(R.tm_mday,2)},"%e":function(R){return h(R.tm_mday,2," ")},"%g":function(R){return v(R).toString().substring(2)},"%G":function(R){return v(R)},"%H":function(R){return I(R.tm_hour,2)},"%I":function(R){var b=R.tm_hour;return b==0?b=12:b>12&&(b-=12),I(b,2)},"%j":function(R){return I(R.tm_mday+_n(Bi(R.tm_year+1900)?hn:qr,R.tm_mon-1),3)},"%m":function(R){return I(R.tm_mon+1,2)},"%M":function(R){return I(R.tm_min,2)},"%n":function(){return`
59
- `},"%p":function(R){return R.tm_hour>=0&&R.tm_hour<12?"AM":"PM"},"%S":function(R){return I(R.tm_sec,2)},"%t":function(){return" "},"%u":function(R){return R.tm_wday||7},"%U":function(R){var b=new Date(R.tm_year+1900,0,1),N=b.getDay()===0?b:en(b,7-b.getDay()),$=new Date(R.tm_year+1900,R.tm_mon,R.tm_mday);if(m(N,$)<0){var Y=_n(Bi($.getFullYear())?hn:qr,$.getMonth()-1)-31,Ce=31-N.getDate(),ke=Ce+Y+$.getDate();return I(Math.ceil(ke/7),2)}return m(N,b)===0?"01":"00"},"%V":function(R){var b=new Date(R.tm_year+1900,0,4),N=new Date(R.tm_year+1901,0,4),$=y(b),Y=y(N),Ce=en(new Date(R.tm_year+1900,0,1),R.tm_yday);if(m(Ce,$)<0)return"53";if(m(Y,Ce)<=0)return"01";var ke;return $.getFullYear()<R.tm_year+1900?ke=R.tm_yday+32-$.getDate():ke=R.tm_yday+1-$.getDate(),I(Math.ceil(ke/7),2)},"%w":function(R){return R.tm_wday},"%W":function(R){var b=new Date(R.tm_year,0,1),N=b.getDay()===1?b:en(b,b.getDay()===0?1:7-b.getDay()+1),$=new Date(R.tm_year+1900,R.tm_mon,R.tm_mday);if(m(N,$)<0){var Y=_n(Bi($.getFullYear())?hn:qr,$.getMonth()-1)-31,Ce=31-N.getDate(),ke=Ce+Y+$.getDate();return I(Math.ceil(ke/7),2)}return m(N,b)===0?"01":"00"},"%y":function(R){return(R.tm_year+1900).toString().substring(2)},"%Y":function(R){return R.tm_year+1900},"%z":function(R){var b=R.tm_gmtoff,N=b>=0;return b=Math.abs(b)/60,b=b/60*100+b%60,(N?"+":"-")+("0000"+b).slice(-4)},"%Z":function(R){return R.tm_zone},"%%":function(){return"%"}};for(var c in x)s.includes(c)&&(s=s.replace(new RegExp(c,"g"),x[c](a)));var G=uo(s,!1);return G.length>e?0:(xr(G,i),G.length-1)}function ko(i,e,t,r){return Un(i,e,t,r)}n.requestFullscreen=function(e,t){P.requestFullscreen(e,t)},n.requestFullScreen=function(){P.requestFullScreen()},n.requestAnimationFrame=function(e){P.requestAnimationFrame(e)},n.setCanvasSize=function(e,t,r){P.setCanvasSize(e,t,r)},n.pauseMainLoop=function(){P.mainLoop.pause()},n.resumeMainLoop=function(){P.mainLoop.resume()},n.getUserMedia=function(){P.getUserMedia()},n.createContext=function(e,t,r,o){return P.createContext(e,t,r,o)};var No=function(i,e,t,r){i||(i=this),this.parent=i,this.mount=i.mount,this.mounted=null,this.id=f.nextInode++,this.name=e,this.mode=t,this.node_ops={},this.stream_ops={},this.rdev=r},jn=365,tn=146;Object.defineProperties(No.prototype,{read:{get:function(){return(this.mode&jn)===jn},set:function(i){i?this.mode|=jn:this.mode&=~jn}},write:{get:function(){return(this.mode&tn)===tn},set:function(i){i?this.mode|=tn:this.mode&=~tn}},isFolder:{get:function(){return f.isDir(this.mode)}},isDevice:{get:function(){return f.isChrdev(this.mode)}}}),f.FSNode=No,f.staticInit(),n.FS_createPath=f.createPath,n.FS_createDataFile=f.createDataFile,n.FS_createPreloadedFile=f.createPreloadedFile,n.FS_createLazyFile=f.createLazyFile,n.FS_createDevice=f.createDevice,n.FS_unlink=f.unlink,qi(),Vr=n.PureVirtualError=cr(Error,"PureVirtualError"),ti(),to(),ot=n.BindingError=cr(Error,"BindingError"),Qr=n.InternalError=cr(Error,"InternalError"),Ke(),Vo(),dt=n.UnboundTypeError=cr(Error,"UnboundTypeError");for(var M,S=0;S<32;++S)Qo.push(new Array(S));for(var Dt=new Float32Array(288),S=0;S<288;++S)mi[S]=Dt.subarray(0,S+1);for(var eA=new Int32Array(288),S=0;S<288;++S)Mo[S]=eA.subarray(0,S+1);var Ac=!0;function uo(i,e,t){var r=t>0?t:tt(i)+1,o=new Array(r),a=St(i,o,0,o.length);return e&&(o.length=a),o}var Oi=typeof atob=="function"?atob:function(i){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t="",r,o,a,s,A,c,u,d=0;i=i.replace(/[^A-Za-z0-9\+\/\=]/g,"");do s=e.indexOf(i.charAt(d++)),A=e.indexOf(i.charAt(d++)),c=e.indexOf(i.charAt(d++)),u=e.indexOf(i.charAt(d++)),r=s<<2|A>>4,o=(A&15)<<4|c>>2,a=(c&3)<<6|u,t=t+String.fromCharCode(r),c!==64&&(t=t+String.fromCharCode(o)),u!==64&&(t=t+String.fromCharCode(a));while(d<i.length);return t};function cc(i){if(typeof Ct=="boolean"&&Ct){var e=Buffer.from(i,"base64");return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}try{for(var t=Oi(i),r=new Uint8Array(t.length),o=0;o<t.length;++o)r[o]=t.charCodeAt(o);return r}catch(a){throw new Error("Converting base64 string to bytes failed.")}}var tA={HaveOffsetConverter:Gr,__cxa_allocate_exception:ji,__cxa_atexit:vn,__cxa_begin_catch:Qn,__cxa_end_catch:Li,__cxa_find_matching_catch_2:Pn,__cxa_find_matching_catch_3:Hi,__cxa_free_exception:kt,__cxa_rethrow:Kn,__cxa_thread_atexit:Gi,__cxa_throw:Yi,__resumeException:$n,__sys_fcntl64:Me,__sys_ioctl:Wi,__sys_mmap2:$i,__sys_open:Ki,__sys_stat64:Ji,_embind_create_inheriting_constructor:lr,_embind_finalize_value_object:C,_embind_register_bigint:O,_embind_register_bool:X,_embind_register_class:$r,_embind_register_class_class_function:ui,_embind_register_class_constructor:$o,_embind_register_class_function:Ko,_embind_register_class_property:wo,_embind_register_emval:Do,_embind_register_float:Jo,_embind_register_function:Zo,_embind_register_integer:ea,_embind_register_memory_view:ta,_embind_register_std_string:ra,_embind_register_std_wstring:na,_embind_register_value_object:ia,_embind_register_value_object_field:oa,_embind_register_void:aa,_emval_call_void_method:no,_emval_decref:bo,_emval_get_method_caller:la,_emval_incref:da,_emval_take_value:fa,abort:ga,clock_gettime:pa,dlopen:_a,dlsym:ha,emscripten_asm_const_int:Ia,emscripten_get_heap_max:ma,emscripten_memcpy_big:Ca,emscripten_pc_get_function:ya,emscripten_resize_heap:ba,emscripten_stack_snapshot:Bo,emscripten_stack_unwind_buffer:Da,emscripten_thread_sleep:Ba,emscripten_webgl_create_context:Ma,emscripten_webgl_destroy_context:vo,emscripten_webgl_get_context_attributes:ka,emscripten_webgl_get_current_context:To,emscripten_webgl_init_context_attributes:Na,emscripten_webgl_make_context_current:ao,environ_get:Nn,environ_sizes_get:xa,exit:xi,fd_close:Ua,fd_read:ja,fd_seek:La,fd_write:Ha,getTempRet0:Ga,getentropy:gi,glActiveTexture:Ei,glAttachShader:Ya,glBindAttribLocation:Xa,glBindBuffer:Va,glBindBufferBase:Wa,glBindFramebuffer:za,glBindTexture:$a,glBindVertexArray:Ka,glBufferData:Ja,glClientWaitSync:qa,glCompileShader:es,glCreateProgram:ts,glCreateShader:rs,glDeleteBuffers:ns,glDeleteFramebuffers:is,glDeleteProgram:os,glDeleteShader:as,glDeleteSync:ss,glDeleteTextures:As,glDeleteVertexArrays:cs,glDisable:us,glDisableVertexAttribArray:ls,glDrawArrays:ds,glDrawBuffers:Po,glEnableVertexAttribArray:fs,glFenceSync:gs,glFinish:Es,glFlush:ps,glFramebufferTexture2D:_s,glFramebufferTextureLayer:hs,glGenBuffers:_i,glGenFramebuffers:Is,glGenTextures:ms,glGenVertexArrays:Cs,glGetAttribLocation:ys,glGetError:ws,glGetIntegerv:Ts,glGetString:Ii,glGetUniformBlockIndex:vs,glGetUniformLocation:Ps,glLinkProgram:Rs,glPixelStorei:Ss,glReadPixels:co,glShaderSource:ks,glTexImage2D:Ns,glTexParameterfv:xs,glTexParameteri:Us,glTexStorage2D:js,glTexStorage3D:Ls,glTexSubImage2D:Hs,glTexSubImage3D:Gs,glUniform1f:er,glUniform1i:Ys,glUniform2fv:Ci,glUniform4fv:Xs,glUniform4iv:Fo,glUniformBlockBinding:Vs,glUniformMatrix4fv:Ws,glUseProgram:zs,glVertexAttribPointer:$s,glViewport:Ks,gmtime_r:yi,invoke_diii:DA,invoke_i:QA,invoke_ii:dA,invoke_iii:aA,invoke_iiii:BA,invoke_iiiii:IA,invoke_iiiiii:yA,invoke_iiiiiii:AA,invoke_iiiiiiiddi:JA,invoke_iiiiiiii:bA,invoke_iiiiiiiii:MA,invoke_v:cA,invoke_vdiii:tc,invoke_vi:oA,invoke_vididdii:VA,invoke_vidii:zA,invoke_vii:lA,invoke_viid:Ec,invoke_viidi:ec,invoke_viididii:SA,invoke_viii:fA,invoke_viiid:WA,invoke_viiidd:CA,invoke_viiiddi:vA,invoke_viiidi:PA,invoke_viiii:hA,invoke_viiiid:ZA,invoke_viiiidi:RA,invoke_viiiidid:qA,invoke_viiiidiidiiiiiii:XA,invoke_viiiifiifiiiiiii:YA,invoke_viiiii:sA,invoke_viiiiid:NA,invoke_viiiiif:LA,invoke_viiiiii:gA,invoke_viiiiiid:xA,invoke_viiiiiif:HA,invoke_viiiiiii:EA,invoke_viiiiiiiddi:KA,invoke_viiiiiiidiiii:jA,invoke_viiiiiiifiiii:GA,invoke_viiiiiiii:pA,invoke_viiiiiiiidd:kA,invoke_viiiiiiiidf:FA,invoke_viiiiiiiii:_A,invoke_viiiiiiiiidd:OA,invoke_viiiiiiiiiddi:TA,invoke_viiiiiiiiii:uA,invoke_viiiiiiiiiiddi:$A,invoke_viiiiiiiiiii:mA,invoke_viiiiiiiiiiii:UA,invoke_viiiiiiiiiiiii:wA,llvm_eh_typeid_for:wi,localtime_r:Di,mktime:Js,proc_exit:Zs,setTempRet0:qs,strftime:Un,strftime_l:ko},rA=Bn(),Jc=n.___wasm_call_ctors=le("__wasm_call_ctors"),_r=n._free=le("free"),at=n._malloc=le("malloc"),rn=n.___errno_location=le("__errno_location"),uc=n._fflush=le("fflush"),lc=n.___getTypeName=le("__getTypeName"),dc=n.___embind_register_native_and_builtin_types=le("__embind_register_native_and_builtin_types"),Zc=n._emscripten_main_thread_process_queued_calls=le("emscripten_main_thread_process_queued_calls"),xo=n._emscripten_stack_get_end=function(){return(xo=n._emscripten_stack_get_end=n.asm.emscripten_stack_get_end).apply(null,arguments)},nn=n.__get_tzname=le("_get_tzname"),Ln=n.__get_daylight=le("_get_daylight"),nA=n.__get_timezone=le("_get_timezone"),ne=n.stackSave=le("stackSave"),L=n.stackRestore=le("stackRestore"),te=n.stackAlloc=le("stackAlloc"),lo=n._emscripten_stack_init=function(){return(lo=n._emscripten_stack_init=n.asm.emscripten_stack_init).apply(null,arguments)},Uo=n._emscripten_stack_get_free=function(){return(Uo=n._emscripten_stack_get_free=n.asm.emscripten_stack_get_free).apply(null,arguments)},fc=n._saveSetjmp=le("saveSetjmp"),oe=n._setThrew=le("setThrew"),re=n.___cxa_can_catch=le("__cxa_can_catch"),jo=n.___cxa_is_pointer_type=le("__cxa_is_pointer_type"),iA=n._memalign=le("memalign"),gc=n._emscripten_builtin_malloc=le("emscripten_builtin_malloc"),qc=n._emscripten_builtin_free=le("emscripten_builtin_free"),eu=n._emscripten_builtin_memalign=le("emscripten_builtin_memalign"),tu=n.dynCall_jii=le("dynCall_jii"),ru=n.dynCall_viji=le("dynCall_viji"),nu=n.dynCall_jjj=le("dynCall_jjj"),iu=n.dynCall_iiiijj=le("dynCall_iiiijj"),ou=n.dynCall_viijj=le("dynCall_viijj"),au=n.dynCall_viiijjjj=le("dynCall_viiijjjj"),su=n.dynCall_ji=le("dynCall_ji"),Au=n.dynCall_vij=le("dynCall_vij"),cu=n.dynCall_viijii=le("dynCall_viijii"),uu=n.dynCall_vj=le("dynCall_vj"),lu=n.dynCall_viij=le("dynCall_viij"),du=n.dynCall_viiiiij=le("dynCall_viiiiij"),fu=n.dynCall_iijjiiii=le("dynCall_iijjiiii"),gu=n.dynCall_jiji=le("dynCall_jiji"),Eu=n.dynCall_iiiiij=le("dynCall_iiiiij"),pu=n.dynCall_iiiiijj=le("dynCall_iiiiijj"),_u=n.dynCall_iiiiiijj=le("dynCall_iiiiiijj");function Ec(i,e,t,r){var o=ne();try{K.get(i)(e,t,r)}catch(a){if(L(o),a!==a+0&&a!=="longjmp")throw a;oe(1,0)}}function oA(i,e){var t=ne();try{K.get(i)(e)}catch(r){if(L(t),r!==r+0&&r!=="longjmp")throw r;oe(1,0)}}function aA(i,e,t){var r=ne();try{return K.get(i)(e,t)}catch(o){if(L(r),o!==o+0&&o!=="longjmp")throw o;oe(1,0)}}function sA(i,e,t,r,o,a){var s=ne();try{K.get(i)(e,t,r,o,a)}catch(A){if(L(s),A!==A+0&&A!=="longjmp")throw A;oe(1,0)}}function AA(i,e,t,r,o,a,s){var A=ne();try{return K.get(i)(e,t,r,o,a,s)}catch(c){if(L(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function cA(i){var e=ne();try{K.get(i)()}catch(t){if(L(e),t!==t+0&&t!=="longjmp")throw t;oe(1,0)}}function uA(i,e,t,r,o,a,s,A,c,u,d){var h=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d)}catch(I){if(L(h),I!==I+0&&I!=="longjmp")throw I;oe(1,0)}}function lA(i,e,t){var r=ne();try{K.get(i)(e,t)}catch(o){if(L(r),o!==o+0&&o!=="longjmp")throw o;oe(1,0)}}function dA(i,e){var t=ne();try{return K.get(i)(e)}catch(r){if(L(t),r!==r+0&&r!=="longjmp")throw r;oe(1,0)}}function fA(i,e,t,r){var o=ne();try{K.get(i)(e,t,r)}catch(a){if(L(o),a!==a+0&&a!=="longjmp")throw a;oe(1,0)}}function gA(i,e,t,r,o,a,s){var A=ne();try{K.get(i)(e,t,r,o,a,s)}catch(c){if(L(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function EA(i,e,t,r,o,a,s,A){var c=ne();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(L(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function pA(i,e,t,r,o,a,s,A,c){var u=ne();try{K.get(i)(e,t,r,o,a,s,A,c)}catch(d){if(L(u),d!==d+0&&d!=="longjmp")throw d;oe(1,0)}}function _A(i,e,t,r,o,a,s,A,c,u){var d=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u)}catch(h){if(L(d),h!==h+0&&h!=="longjmp")throw h;oe(1,0)}}function hA(i,e,t,r,o){var a=ne();try{K.get(i)(e,t,r,o)}catch(s){if(L(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}function IA(i,e,t,r,o){var a=ne();try{return K.get(i)(e,t,r,o)}catch(s){if(L(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}function mA(i,e,t,r,o,a,s,A,c,u,d,h){var I=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h)}catch(m){if(L(I),m!==m+0&&m!=="longjmp")throw m;oe(1,0)}}function CA(i,e,t,r,o,a){var s=ne();try{K.get(i)(e,t,r,o,a)}catch(A){if(L(s),A!==A+0&&A!=="longjmp")throw A;oe(1,0)}}function yA(i,e,t,r,o,a){var s=ne();try{return K.get(i)(e,t,r,o,a)}catch(A){if(L(s),A!==A+0&&A!=="longjmp")throw A;oe(1,0)}}function wA(i,e,t,r,o,a,s,A,c,u,d,h,I,m){var y=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I,m)}catch(v){if(L(y),v!==v+0&&v!=="longjmp")throw v;oe(1,0)}}function bA(i,e,t,r,o,a,s,A){var c=ne();try{return K.get(i)(e,t,r,o,a,s,A)}catch(u){if(L(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function DA(i,e,t,r){var o=ne();try{return K.get(i)(e,t,r)}catch(a){if(L(o),a!==a+0&&a!=="longjmp")throw a;oe(1,0)}}function BA(i,e,t,r){var o=ne();try{return K.get(i)(e,t,r)}catch(a){if(L(o),a!==a+0&&a!=="longjmp")throw a;oe(1,0)}}function OA(i,e,t,r,o,a,s,A,c,u,d,h){var I=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h)}catch(m){if(L(I),m!==m+0&&m!=="longjmp")throw m;oe(1,0)}}function TA(i,e,t,r,o,a,s,A,c,u,d,h,I){var m=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I)}catch(y){if(L(m),y!==y+0&&y!=="longjmp")throw y;oe(1,0)}}function vA(i,e,t,r,o,a,s){var A=ne();try{K.get(i)(e,t,r,o,a,s)}catch(c){if(L(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function QA(i){var e=ne();try{return K.get(i)()}catch(t){if(L(e),t!==t+0&&t!=="longjmp")throw t;oe(1,0)}}function PA(i,e,t,r,o,a){var s=ne();try{K.get(i)(e,t,r,o,a)}catch(A){if(L(s),A!==A+0&&A!=="longjmp")throw A;oe(1,0)}}function RA(i,e,t,r,o,a,s){var A=ne();try{K.get(i)(e,t,r,o,a,s)}catch(c){if(L(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function SA(i,e,t,r,o,a,s,A){var c=ne();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(L(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function MA(i,e,t,r,o,a,s,A,c){var u=ne();try{return K.get(i)(e,t,r,o,a,s,A,c)}catch(d){if(L(u),d!==d+0&&d!=="longjmp")throw d;oe(1,0)}}function FA(i,e,t,r,o,a,s,A,c,u,d){var h=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d)}catch(I){if(L(h),I!==I+0&&I!=="longjmp")throw I;oe(1,0)}}function kA(i,e,t,r,o,a,s,A,c,u,d){var h=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d)}catch(I){if(L(h),I!==I+0&&I!=="longjmp")throw I;oe(1,0)}}function NA(i,e,t,r,o,a,s){var A=ne();try{K.get(i)(e,t,r,o,a,s)}catch(c){if(L(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function xA(i,e,t,r,o,a,s,A){var c=ne();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(L(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function UA(i,e,t,r,o,a,s,A,c,u,d,h,I){var m=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I)}catch(y){if(L(m),y!==y+0&&y!=="longjmp")throw y;oe(1,0)}}function jA(i,e,t,r,o,a,s,A,c,u,d,h,I){var m=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I)}catch(y){if(L(m),y!==y+0&&y!=="longjmp")throw y;oe(1,0)}}function LA(i,e,t,r,o,a,s){var A=ne();try{K.get(i)(e,t,r,o,a,s)}catch(c){if(L(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function HA(i,e,t,r,o,a,s,A){var c=ne();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(L(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function GA(i,e,t,r,o,a,s,A,c,u,d,h,I){var m=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I)}catch(y){if(L(m),y!==y+0&&y!=="longjmp")throw y;oe(1,0)}}function YA(i,e,t,r,o,a,s,A,c,u,d,h,I,m,y,v){var x=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I,m,y,v)}catch(G){if(L(x),G!==G+0&&G!=="longjmp")throw G;oe(1,0)}}function XA(i,e,t,r,o,a,s,A,c,u,d,h,I,m,y,v){var x=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I,m,y,v)}catch(G){if(L(x),G!==G+0&&G!=="longjmp")throw G;oe(1,0)}}function VA(i,e,t,r,o,a,s,A){var c=ne();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(L(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function WA(i,e,t,r,o){var a=ne();try{K.get(i)(e,t,r,o)}catch(s){if(L(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}function zA(i,e,t,r,o){var a=ne();try{K.get(i)(e,t,r,o)}catch(s){if(L(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}function $A(i,e,t,r,o,a,s,A,c,u,d,h,I,m){var y=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I,m)}catch(v){if(L(y),v!==v+0&&v!=="longjmp")throw v;oe(1,0)}}function KA(i,e,t,r,o,a,s,A,c,u,d){var h=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d)}catch(I){if(L(h),I!==I+0&&I!=="longjmp")throw I;oe(1,0)}}function JA(i,e,t,r,o,a,s,A,c,u){var d=ne();try{return K.get(i)(e,t,r,o,a,s,A,c,u)}catch(h){if(L(d),h!==h+0&&h!=="longjmp")throw h;oe(1,0)}}function ZA(i,e,t,r,o,a){var s=ne();try{K.get(i)(e,t,r,o,a)}catch(A){if(L(s),A!==A+0&&A!=="longjmp")throw A;oe(1,0)}}function qA(i,e,t,r,o,a,s,A){var c=ne();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(L(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function ec(i,e,t,r,o){var a=ne();try{K.get(i)(e,t,r,o)}catch(s){if(L(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}function tc(i,e,t,r,o){var a=ne();try{K.get(i)(e,t,r,o)}catch(s){if(L(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}Object.getOwnPropertyDescriptor(n,"intArrayFromString")||(n.intArrayFromString=function(){p("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"intArrayToString")||(n.intArrayToString=function(){p("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ccall")||(n.ccall=function(){p("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"cwrap")||(n.cwrap=function(){p("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setValue")||(n.setValue=function(){p("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getValue")||(n.getValue=function(){p("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocate")||(n.allocate=function(){p("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ArrayToString")||(n.UTF8ArrayToString=function(){p("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ToString")||(n.UTF8ToString=function(){p("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8Array")||(n.stringToUTF8Array=function(){p("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8")||(n.stringToUTF8=function(){p("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF8")||(n.lengthBytesUTF8=function(){p("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){p("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreRun")||(n.addOnPreRun=function(){p("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnInit")||(n.addOnInit=function(){p("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreMain")||(n.addOnPreMain=function(){p("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnExit")||(n.addOnExit=function(){p("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPostRun")||(n.addOnPostRun=function(){p("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeStringToMemory")||(n.writeStringToMemory=function(){p("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeArrayToMemory")||(n.writeArrayToMemory=function(){p("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeAsciiToMemory")||(n.writeAsciiToMemory=function(){p("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.addRunDependency=Mt,n.removeRunDependency=wr,Object.getOwnPropertyDescriptor(n,"FS_createFolder")||(n.FS_createFolder=function(){p("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createPath=f.createPath,n.FS_createDataFile=f.createDataFile,n.FS_createPreloadedFile=f.createPreloadedFile,n.FS_createLazyFile=f.createLazyFile,Object.getOwnPropertyDescriptor(n,"FS_createLink")||(n.FS_createLink=function(){p("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createDevice=f.createDevice,n.FS_unlink=f.unlink,Object.getOwnPropertyDescriptor(n,"getLEB")||(n.getLEB=function(){p("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFunctionTables")||(n.getFunctionTables=function(){p("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignFunctionTables")||(n.alignFunctionTables=function(){p("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFunctions")||(n.registerFunctions=function(){p("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addFunction")||(n.addFunction=function(){p("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"removeFunction")||(n.removeFunction=function(){p("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){p("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"prettyPrint")||(n.prettyPrint=function(){p("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){p("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCompilerSetting")||(n.getCompilerSetting=function(){p("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"print")||(n.print=function(){p("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"printErr")||(n.printErr=function(){p("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTempRet0")||(n.getTempRet0=function(){p("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setTempRet0")||(n.setTempRet0=function(){p("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callMain")||(n.callMain=function(){p("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"abort")||(n.abort=function(){p("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"keepRuntimeAlive")||(n.keepRuntimeAlive=function(){p("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"zeroMemory")||(n.zeroMemory=function(){p("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToNewUTF8")||(n.stringToNewUTF8=function(){p("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setFileTime")||(n.setFileTime=function(){p("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscripten_realloc_buffer")||(n.emscripten_realloc_buffer=function(){p("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ENV")||(n.ENV=function(){p("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_CODES")||(n.ERRNO_CODES=function(){p("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_MESSAGES")||(n.ERRNO_MESSAGES=function(){p("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setErrNo")||(n.setErrNo=function(){p("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton4")||(n.inetPton4=function(){p("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop4")||(n.inetNtop4=function(){p("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton6")||(n.inetPton6=function(){p("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop6")||(n.inetNtop6=function(){p("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readSockaddr")||(n.readSockaddr=function(){p("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeSockaddr")||(n.writeSockaddr=function(){p("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"DNS")||(n.DNS=function(){p("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getHostByName")||(n.getHostByName=function(){p("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GAI_ERRNO_MESSAGES")||(n.GAI_ERRNO_MESSAGES=function(){p("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Protocols")||(n.Protocols=function(){p("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Sockets")||(n.Sockets=function(){p("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getRandomDevice")||(n.getRandomDevice=function(){p("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"traverseStack")||(n.traverseStack=function(){p("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UNWIND_CACHE")||(n.UNWIND_CACHE=function(){p("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"withBuiltinMalloc")||(n.withBuiltinMalloc=function(){p("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgsArray")||(n.readAsmConstArgsArray=function(){p("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgs")||(n.readAsmConstArgs=function(){p("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mainThreadEM_ASM")||(n.mainThreadEM_ASM=function(){p("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_q")||(n.jstoi_q=function(){p("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_s")||(n.jstoi_s=function(){p("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getExecutableName")||(n.getExecutableName=function(){p("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"listenOnce")||(n.listenOnce=function(){p("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"autoResumeAudioContext")||(n.autoResumeAudioContext=function(){p("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCallLegacy")||(n.dynCallLegacy=function(){p("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getDynCaller")||(n.getDynCaller=function(){p("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){p("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callRuntimeCallbacks")||(n.callRuntimeCallbacks=function(){p("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePush")||(n.runtimeKeepalivePush=function(){p("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePop")||(n.runtimeKeepalivePop=function(){p("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callUserCallback")||(n.callUserCallback=function(){p("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"maybeExit")||(n.maybeExit=function(){p("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"safeSetTimeout")||(n.safeSetTimeout=function(){p("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asmjsMangle")||(n.asmjsMangle=function(){p("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asyncLoad")||(n.asyncLoad=function(){p("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignMemory")||(n.alignMemory=function(){p("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mmapAlloc")||(n.mmapAlloc=function(){p("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reallyNegative")||(n.reallyNegative=function(){p("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unSign")||(n.unSign=function(){p("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reSign")||(n.reSign=function(){p("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"formatString")||(n.formatString=function(){p("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH")||(n.PATH=function(){p("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH_FS")||(n.PATH_FS=function(){p("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SYSCALLS")||(n.SYSCALLS=function(){p("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMmap2")||(n.syscallMmap2=function(){p("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMunmap")||(n.syscallMunmap=function(){p("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketFromFD")||(n.getSocketFromFD=function(){p("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketAddress")||(n.getSocketAddress=function(){p("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"JSEvents")||(n.JSEvents=function(){p("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerKeyEventCallback")||(n.registerKeyEventCallback=function(){p("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"specialHTMLTargets")||(n.specialHTMLTargets=function(){p("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findEventTarget")||(n.findEventTarget=function(){p("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findCanvasEventTarget")||(n.findCanvasEventTarget=function(){p("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBoundingClientRect")||(n.getBoundingClientRect=function(){p("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillMouseEventData")||(n.fillMouseEventData=function(){p("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerMouseEventCallback")||(n.registerMouseEventCallback=function(){p("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerWheelEventCallback")||(n.registerWheelEventCallback=function(){p("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerUiEventCallback")||(n.registerUiEventCallback=function(){p("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFocusEventCallback")||(n.registerFocusEventCallback=function(){p("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceOrientationEventData")||(n.fillDeviceOrientationEventData=function(){p("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceOrientationEventCallback")||(n.registerDeviceOrientationEventCallback=function(){p("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceMotionEventData")||(n.fillDeviceMotionEventData=function(){p("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceMotionEventCallback")||(n.registerDeviceMotionEventCallback=function(){p("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"screenOrientation")||(n.screenOrientation=function(){p("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillOrientationChangeEventData")||(n.fillOrientationChangeEventData=function(){p("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerOrientationChangeEventCallback")||(n.registerOrientationChangeEventCallback=function(){p("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillFullscreenChangeEventData")||(n.fillFullscreenChangeEventData=function(){p("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFullscreenChangeEventCallback")||(n.registerFullscreenChangeEventCallback=function(){p("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerRestoreOldStyle")||(n.registerRestoreOldStyle=function(){p("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"hideEverythingExceptGivenElement")||(n.hideEverythingExceptGivenElement=function(){p("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreHiddenElements")||(n.restoreHiddenElements=function(){p("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setLetterbox")||(n.setLetterbox=function(){p("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"currentFullscreenStrategy")||(n.currentFullscreenStrategy=function(){p("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreOldWindowedStyle")||(n.restoreOldWindowedStyle=function(){p("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"softFullscreenResizeWebGLRenderTarget")||(n.softFullscreenResizeWebGLRenderTarget=function(){p("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"doRequestFullscreen")||(n.doRequestFullscreen=function(){p("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillPointerlockChangeEventData")||(n.fillPointerlockChangeEventData=function(){p("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockChangeEventCallback")||(n.registerPointerlockChangeEventCallback=function(){p("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockErrorEventCallback")||(n.registerPointerlockErrorEventCallback=function(){p("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requestPointerLock")||(n.requestPointerLock=function(){p("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillVisibilityChangeEventData")||(n.fillVisibilityChangeEventData=function(){p("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerVisibilityChangeEventCallback")||(n.registerVisibilityChangeEventCallback=function(){p("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerTouchEventCallback")||(n.registerTouchEventCallback=function(){p("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillGamepadEventData")||(n.fillGamepadEventData=function(){p("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerGamepadEventCallback")||(n.registerGamepadEventCallback=function(){p("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBeforeUnloadEventCallback")||(n.registerBeforeUnloadEventCallback=function(){p("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillBatteryEventData")||(n.fillBatteryEventData=function(){p("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"battery")||(n.battery=function(){p("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBatteryEventCallback")||(n.registerBatteryEventCallback=function(){p("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setCanvasElementSize")||(n.setCanvasElementSize=function(){p("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCanvasElementSize")||(n.getCanvasElementSize=function(){p("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"polyfillSetImmediate")||(n.polyfillSetImmediate=function(){p("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangle")||(n.demangle=function(){p("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangleAll")||(n.demangleAll=function(){p("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jsStackTrace")||(n.jsStackTrace=function(){p("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){p("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getEnvStrings")||(n.getEnvStrings=function(){p("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"checkWasiClock")||(n.checkWasiClock=function(){p("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64")||(n.writeI53ToI64=function(){p("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Clamped")||(n.writeI53ToI64Clamped=function(){p("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Signaling")||(n.writeI53ToI64Signaling=function(){p("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Clamped")||(n.writeI53ToU64Clamped=function(){p("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Signaling")||(n.writeI53ToU64Signaling=function(){p("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromI64")||(n.readI53FromI64=function(){p("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromU64")||(n.readI53FromU64=function(){p("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertI32PairToI53")||(n.convertI32PairToI53=function(){p("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertU32PairToI53")||(n.convertU32PairToI53=function(){p("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"uncaughtExceptionCount")||(n.uncaughtExceptionCount=function(){p("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionLast")||(n.exceptionLast=function(){p("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionCaught")||(n.exceptionCaught=function(){p("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ExceptionInfo")||(n.ExceptionInfo=function(){p("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"CatchInfo")||(n.CatchInfo=function(){p("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_addRef")||(n.exception_addRef=function(){p("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_decRef")||(n.exception_decRef=function(){p("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Browser")||(n.Browser=function(){p("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"funcWrappers")||(n.funcWrappers=function(){p("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){p("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setMainLoop")||(n.setMainLoop=function(){p("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"wget")||(n.wget=function(){p("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"FS")||(n.FS=function(){p("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"MEMFS")||(n.MEMFS=function(){p("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"TTY")||(n.TTY=function(){p("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PIPEFS")||(n.PIPEFS=function(){p("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SOCKFS")||(n.SOCKFS=function(){p("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"_setNetworkCallback")||(n._setNetworkCallback=function(){p("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tempFixedLengthArray")||(n.tempFixedLengthArray=function(){p("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"miniTempWebGLFloatBuffers")||(n.miniTempWebGLFloatBuffers=function(){p("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapObjectForWebGLType")||(n.heapObjectForWebGLType=function(){p("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapAccessShiftForWebGLHeap")||(n.heapAccessShiftForWebGLHeap=function(){p("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.GL=B,Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGet")||(n.emscriptenWebGLGet=function(){p("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"computeUnpackAlignedImageSize")||(n.computeUnpackAlignedImageSize=function(){p("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetTexPixelData")||(n.emscriptenWebGLGetTexPixelData=function(){p("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetUniform")||(n.emscriptenWebGLGetUniform=function(){p("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetUniformLocation")||(n.webglGetUniformLocation=function(){p("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglPrepareUniformLocationsBeforeFirstUse")||(n.webglPrepareUniformLocationsBeforeFirstUse=function(){p("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetLeftBracePos")||(n.webglGetLeftBracePos=function(){p("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetVertexAttrib")||(n.emscriptenWebGLGetVertexAttrib=function(){p("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetBufferBinding")||(n.emscriptenWebGLGetBufferBinding=function(){p("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLValidateMapBufferTarget")||(n.emscriptenWebGLValidateMapBufferTarget=function(){p("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeGLArray")||(n.writeGLArray=function(){p("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AL")||(n.AL=function(){p("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_unicode")||(n.SDL_unicode=function(){p("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_ttfContext")||(n.SDL_ttfContext=function(){p("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_audio")||(n.SDL_audio=function(){p("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL")||(n.SDL=function(){p("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_gfx")||(n.SDL_gfx=function(){p("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLUT")||(n.GLUT=function(){p("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"EGL")||(n.EGL=function(){p("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW_Window")||(n.GLFW_Window=function(){p("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW")||(n.GLFW=function(){p("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLEW")||(n.GLEW=function(){p("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"IDBStore")||(n.IDBStore=function(){p("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runAndAbortIfError")||(n.runAndAbortIfError=function(){p("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_handle_array")||(n.emval_handle_array=function(){p("'emval_handle_array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_free_list")||(n.emval_free_list=function(){p("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_symbols")||(n.emval_symbols=function(){p("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_emval")||(n.init_emval=function(){p("'init_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"count_emval_handles")||(n.count_emval_handles=function(){p("'count_emval_handles' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"get_first_emval")||(n.get_first_emval=function(){p("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getStringOrSymbol")||(n.getStringOrSymbol=function(){p("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireHandle")||(n.requireHandle=function(){p("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_newers")||(n.emval_newers=function(){p("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftEmvalAllocator")||(n.craftEmvalAllocator=function(){p("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_get_global")||(n.emval_get_global=function(){p("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_methodCallers")||(n.emval_methodCallers=function(){p("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"InternalError")||(n.InternalError=function(){p("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"BindingError")||(n.BindingError=function(){p("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UnboundTypeError")||(n.UnboundTypeError=function(){p("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PureVirtualError")||(n.PureVirtualError=function(){p("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_embind")||(n.init_embind=function(){p("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInternalError")||(n.throwInternalError=function(){p("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwBindingError")||(n.throwBindingError=function(){p("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwUnboundTypeError")||(n.throwUnboundTypeError=function(){p("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ensureOverloadTable")||(n.ensureOverloadTable=function(){p("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exposePublicSymbol")||(n.exposePublicSymbol=function(){p("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"replacePublicSymbol")||(n.replacePublicSymbol=function(){p("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"extendError")||(n.extendError=function(){p("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"createNamedFunction")||(n.createNamedFunction=function(){p("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredInstances")||(n.registeredInstances=function(){p("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBasestPointer")||(n.getBasestPointer=function(){p("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerInheritedInstance")||(n.registerInheritedInstance=function(){p("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unregisterInheritedInstance")||(n.unregisterInheritedInstance=function(){p("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstance")||(n.getInheritedInstance=function(){p("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstanceCount")||(n.getInheritedInstanceCount=function(){p("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getLiveInheritedInstances")||(n.getLiveInheritedInstances=function(){p("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredTypes")||(n.registeredTypes=function(){p("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"awaitingDependencies")||(n.awaitingDependencies=function(){p("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"typeDependencies")||(n.typeDependencies=function(){p("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredPointers")||(n.registeredPointers=function(){p("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerType")||(n.registerType=function(){p("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"whenDependentTypesAreResolved")||(n.whenDependentTypesAreResolved=function(){p("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_charCodes")||(n.embind_charCodes=function(){p("'embind_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_init_charCodes")||(n.embind_init_charCodes=function(){p("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readLatin1String")||(n.readLatin1String=function(){p("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTypeName")||(n.getTypeName=function(){p("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heap32VectorToArray")||(n.heap32VectorToArray=function(){p("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireRegisteredType")||(n.requireRegisteredType=function(){p("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getShiftFromSize")||(n.getShiftFromSize=function(){p("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"integerReadValueFromPointer")||(n.integerReadValueFromPointer=function(){p("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"enumReadValueFromPointer")||(n.enumReadValueFromPointer=function(){p("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"floatReadValueFromPointer")||(n.floatReadValueFromPointer=function(){p("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"simpleReadValueFromPointer")||(n.simpleReadValueFromPointer=function(){p("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructors")||(n.runDestructors=function(){p("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"new_")||(n.new_=function(){p("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftInvokerFunction")||(n.craftInvokerFunction=function(){p("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind__requireFunction")||(n.embind__requireFunction=function(){p("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tupleRegistrations")||(n.tupleRegistrations=function(){p("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"structRegistrations")||(n.structRegistrations=function(){p("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"genericPointerToWireType")||(n.genericPointerToWireType=function(){p("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"constNoSmartPtrRawPointerToWireType")||(n.constNoSmartPtrRawPointerToWireType=function(){p("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"nonConstNoSmartPtrRawPointerToWireType")||(n.nonConstNoSmartPtrRawPointerToWireType=function(){p("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_RegisteredPointer")||(n.init_RegisteredPointer=function(){p("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer")||(n.RegisteredPointer=function(){p("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_getPointee")||(n.RegisteredPointer_getPointee=function(){p("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_destructor")||(n.RegisteredPointer_destructor=function(){p("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_deleteObject")||(n.RegisteredPointer_deleteObject=function(){p("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_fromWireType")||(n.RegisteredPointer_fromWireType=function(){p("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructor")||(n.runDestructor=function(){p("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"releaseClassHandle")||(n.releaseClassHandle=function(){p("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"finalizationGroup")||(n.finalizationGroup=function(){p("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer_deps")||(n.detachFinalizer_deps=function(){p("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer")||(n.detachFinalizer=function(){p("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"attachFinalizer")||(n.attachFinalizer=function(){p("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeClassHandle")||(n.makeClassHandle=function(){p("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_ClassHandle")||(n.init_ClassHandle=function(){p("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle")||(n.ClassHandle=function(){p("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isAliasOf")||(n.ClassHandle_isAliasOf=function(){p("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInstanceAlreadyDeleted")||(n.throwInstanceAlreadyDeleted=function(){p("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_clone")||(n.ClassHandle_clone=function(){p("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_delete")||(n.ClassHandle_delete=function(){p("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"deletionQueue")||(n.deletionQueue=function(){p("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isDeleted")||(n.ClassHandle_isDeleted=function(){p("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_deleteLater")||(n.ClassHandle_deleteLater=function(){p("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"flushPendingDeletes")||(n.flushPendingDeletes=function(){p("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"delayFunction")||(n.delayFunction=function(){p("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setDelayFunction")||(n.setDelayFunction=function(){p("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredClass")||(n.RegisteredClass=function(){p("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"shallowCopyInternalPointer")||(n.shallowCopyInternalPointer=function(){p("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"downcastPointer")||(n.downcastPointer=function(){p("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"upcastPointer")||(n.upcastPointer=function(){p("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"validateThis")||(n.validateThis=function(){p("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_0")||(n.char_0=function(){p("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_9")||(n.char_9=function(){p("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeLegalFunctionName")||(n.makeLegalFunctionName=function(){p("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetIndexed")||(n.emscriptenWebGLGetIndexed=function(){p("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"warnOnce")||(n.warnOnce=function(){p("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackSave")||(n.stackSave=function(){p("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackRestore")||(n.stackRestore=function(){p("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackAlloc")||(n.stackAlloc=function(){p("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AsciiToString")||(n.AsciiToString=function(){p("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToAscii")||(n.stringToAscii=function(){p("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF16ToString")||(n.UTF16ToString=function(){p("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF16")||(n.stringToUTF16=function(){p("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF16")||(n.lengthBytesUTF16=function(){p("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF32ToString")||(n.UTF32ToString=function(){p("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF32")||(n.stringToUTF32=function(){p("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF32")||(n.lengthBytesUTF32=function(){p("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8")||(n.allocateUTF8=function(){p("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8OnStack")||(n.allocateUTF8OnStack=function(){p("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.writeStackCookie=Lr,n.checkStackCookie=W,Object.getOwnPropertyDescriptor(n,"ALLOC_NORMAL")||Object.defineProperty(n,"ALLOC_NORMAL",{configurable:!0,get:function(){p("'ALLOC_NORMAL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(n,"ALLOC_STACK")||Object.defineProperty(n,"ALLOC_STACK",{configurable:!0,get:function(){p("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}});var Ti;function In(i){this.name="ExitStatus",this.message="Program terminated with exit("+i+")",this.status=i}ft=function i(){Ti||go(),Ti||(ft=i)};function fo(){lo(),Lr()}function go(i){if(i=i||st,Wt>0||(fo(),Fi(),Wt>0))return;function e(){Ti||(Ti=!0,n.calledRun=!0,!Gt&&(wt(),pe(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),V(!n._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),ki()))}n.setStatus?(n.setStatus("Running..."),setTimeout(function(){setTimeout(function(){n.setStatus("")},1),e()},1)):e(),W()}n.run=go;function Eo(){var i=Ze,e=ge,t=!1;Ze=ge=function(o){t=!0};try{var r=n._fflush;r&&r(0),["stdout","stderr"].forEach(function(o){var a=f.analyzePath("/dev/"+o);if(a){var s=a.object,A=s.rdev,c=Pe.ttys[A];c&&c.output&&c.output.length&&(t=!0)}})}catch(o){}Ze=i,ge=e,t&&Re("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 rc(i,e){if(Rt=i,Eo(),Ot()){if(!e){var t="program exited (with status: "+i+"), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)";k(t),ge(t)}}else Vt();Lo(i)}function Lo(i){Rt=i,Ot()||(n.onExit&&n.onExit(i),Gt=!0),Je(i,new In(i))}if(n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return go(),U.ready}}(),Dc=Bu;var Ou=(()=>{var U;var J=typeof document!="undefined"?(U=document.currentScript)==null?void 0:U.src:void 0;return function(n={}){var pe,k=Object.assign({},n),Ne,we,st=new Promise((E,g)=>{Ne=E,we=g}),mt=!0,Je=!1,Xe=Object.assign({},k),ze=[],Ct="./this.program",Qi=(E,g)=>{throw g},Te="",Pi,Mr,tr;(mt||Je)&&(Je?Te=self.location.href:typeof document!="undefined"&&document.currentScript&&(Te=document.currentScript.src),J&&(Te=J),Te.startsWith("blob:")?Te="":Te=Te.substr(0,Te.replace(/[?#].*/,"").lastIndexOf("/")+1),Pi=E=>{var g=new XMLHttpRequest;return g.open("GET",E,!1),g.send(null),g.responseText},Je&&(tr=E=>{var g=new XMLHttpRequest;return g.open("GET",E,!1),g.responseType="arraybuffer",g.send(null),new Uint8Array(g.response)}),Mr=(E,g,C)=>{var O=new XMLHttpRequest;O.open("GET",E,!0),O.responseType="arraybuffer",O.onload=()=>{if(O.status==200||O.status==0&&O.response){g(O.response);return}C()},O.onerror=C,O.send(null)});var Fr=k.print||console.log.bind(console),on=k.printErr||console.error.bind(console);Object.assign(k,Xe),Xe=null,k.arguments&&(ze=k.arguments),k.thisProgram&&(Ct=k.thisProgram),k.quit&&(Qi=k.quit);var Ze;k.wasmBinary&&(Ze=k.wasmBinary);function ge(E){for(var g=atob(E),C=new Uint8Array(g.length),O=0;O<g.length;++O)C[O]=g.charCodeAt(O);return C}function Re(E){if(Mi(E))return ge(E.slice(Xn.length))}var _e,nt=!1,Ir,Lt,He,mr,yt,Cr,Ee,Gn,Ht;function Gt(){var E=_e.buffer;k.HEAP8=Lt=new Int8Array(E),k.HEAP16=mr=new Int16Array(E),k.HEAPU8=He=new Uint8Array(E),k.HEAPU16=yt=new Uint16Array(E),k.HEAP32=Cr=new Int32Array(E),k.HEAPU32=Ee=new Uint32Array(E),k.HEAPF32=Gn=new Float32Array(E),k.HEAPF64=Ht=new Float64Array(E)}var Rt=[],V=[],kr=[],z=!1;function po(){if(k.preRun)for(typeof k.preRun=="function"&&(k.preRun=[k.preRun]);k.preRun.length;)At(k.preRun.shift());ve(Rt)}function Ri(){z=!0,ve(V)}function Nr(){if(k.postRun)for(typeof k.postRun=="function"&&(k.postRun=[k.postRun]);k.postRun.length;)et(k.postRun.shift());ve(kr)}function At(E){Rt.unshift(E)}function St(E){V.unshift(E)}function et(E){kr.unshift(E)}var tt=0,rr=null,Bt=null;function Yn(E){var g;tt++,(g=k.monitorRunDependencies)==null||g.call(k,tt)}function Si(E){var C;if(tt--,(C=k.monitorRunDependencies)==null||C.call(k,tt),tt==0&&(rr!==null&&(clearInterval(rr),rr=null),Bt)){var g=Bt;Bt=null,g()}}function mn(E){var C;(C=k.onAbort)==null||C.call(k,E),E="Aborted("+E+")",on(E),nt=!0,Ir=1,E+=". Build with -sASSERTIONS for more info.";var g=new WebAssembly.RuntimeError(E);throw we(g),g}var Xn="data:application/octet-stream;base64,",Mi=E=>E.startsWith(Xn);function Cn(){var E="data:application/octet-stream;base64,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Ay0AASIARQ0BIAJBAWohAiADQQFqIQMgACABRg0ACwsgACABRgtrAQF/IwBBgAJrIgUkAAJAIAIgA0wNACAEQYDABHENACAFIAEgAiADayIDQYACIANBgAJJIgEbECQaIAFFBEADQCAAIAVBgAIQHSADQYACayIDQf8BSw0ACwsgACAFIAMQHQsgBUGAAmokAAvlAwEFfyMAQRBrIgMkACADIAAoAgAiBEEIaygCACICNgIMIAMgACACajYCBCADIARBBGsoAgA2AgggAygCCCIEIAFBABAeIQIgAygCBCEFAkAgAgRAIAMoAgwhACMAQUBqIgEkACABQUBrJABBACAFIAAbIQIMAQsjAEFAaiICJAAgACAFTgRAIAJCADcCHCACQgA3AiQgAkIANwIsIAJCADcCFCACQQA2AhAgAiABNgIMIAIgBDYCBCACQQA2AjwgAkKBgICAgICAgAE3AjQgAiAANgIIIAQgAkEEaiAFIAVBAUEAIAQoAgAoAhQRCQAgAEEAIAIoAhwbIQYLIAJBQGskACAGIgINACMAQUBqIgIkACACQQA2AhAgAkGsxgA2AgwgAiAANgIIIAIgATYCBEEAIQAgAkEUakEAQScQJBogAkEANgI8IAJBAToAOyAEIAJBBGogBUEBQQAgBCgCACgCGBEIAAJAAkACQCACKAIoDgIAAQILIAIoAhhBACACKAIkQQFGG0EAIAIoAiBBAUYbQQAgAigCLEEBRhshAAwBCyACKAIcQQFHBEAgAigCLA0BIAIoAiBBAUcNASACKAIkQQFHDQELIAIoAhQhAAsgAkFAayQAIAAhAgsgA0EQaiQAIAILtAEBBX8jAEEQayIGJAAgBkEEaiICEEEjAEEQayIFJAACfyACLQALQQd2BEAgAigCBAwBCyACLQALQf8AcQshBANAAkACfyACLQALQQd2BEAgAigCAAwBCyACCyEDIAUgATkDACACAn8gAyAEQQFqIAUQRyIDQQBOBEAgAyAETQ0CIAMMAQsgBEEBdEEBcgsiBBAtDAELCyACIAMQLSAAIAIQQCAFQRBqJAAgAhBEIAZBEGokAAuABAEDfyACQYAETwRAIAAgASACEBIgAA8LIAAgAmohAwJAIAAgAXNBA3FFBEACQCAAQQNxRQRAIAAhAgwBCyACRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAkEDcUUNASACIANJDQALCwJAIANBfHEiBEHAAEkNACACIARBQGoiBUsNAANAIAIgASgCADYCACACIAEoAgQ2AgQgAiABKAIINgIIIAIgASgCDDYCDCACIAEoAhA2AhAgAiABKAIUNgIUIAIgASgCGDYCGCACIAEoAhw2AhwgAiABKAIgNgIgIAIgASgCJDYCJCACIAEoAig2AiggAiABKAIsNgIsIAIgASgCMDYCMCACIAEoAjQ2AjQgAiABKAI4NgI4IAIgASgCPDYCPCABQUBrIQEgAkFAayICIAVNDQALCyACIARPDQEDQCACIAEoAgA2AgAgAUEEaiEBIAJBBGoiAiAESQ0ACwwBCyADQQRJBEAgACECDAELIAAgA0EEayIESwRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAiABLQABOgABIAIgAS0AAjoAAiACIAEtAAM6AAMgAUEEaiEBIAJBBGoiAiAETQ0ACwsgAiADSQRAA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgIgA0cNAAsLIAALCwAgASACIAAQRRoL8gICAn8BfgJAIAJFDQAgACABOgAAIAAgAmoiA0EBayABOgAAIAJBA0kNACAAIAE6AAIgACABOgABIANBA2sgAToAACADQQJrIAE6AAAgAkEHSQ0AIAAgAToAAyADQQRrIAE6AAAgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBBGsgATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQQhrIAE2AgAgAkEMayABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkEQayABNgIAIAJBFGsgATYCACACQRhrIAE2AgAgAkEcayABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa1CgYCAgBB+IQUgAyAEaiEBA0AgASAFNwMYIAEgBTcDECABIAU3AwggASAFNwMAIAFBIGohASACQSBrIgJBH0sNAAsLIAALEgAgAUEBdEHAxABqQQIgABBFC60CAQd/An8gARAqIQMjAEEQayIGJAACfyAALQALQQd2BEAgACgCBAwBCyAALQALQf8AcQsiBEEATwRAAkAgAyAALQAL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eHEgBCgCCEH/////B3FyNgIIIAAgACgCCEGAgICAeHI2AgggBEEQaiQADAELECcACyAAIAE2AgQLIAECfyAALQALQQd2BEAgACgCAAwBCyAACyICaiAFEEMgACABIAVqIgAQMSAGQQA6AA8gACACaiAGLQAPOgAACyAGQRBqJAAPCwJ/IAAtAAtBB3YEQCAAKAIADAELIAALIQQjAEEQayICJAACfyAALQALQQd2BEAgACgCBAwBCyAALQALCxogACABEDEgAkEAOgAPIAEgBGogAi0ADzoAACACQRBqJAALPQEBfyMAQRBrIgIkACACQQA6AA8DQCABBEAgACACLQAPOgAAIAFBAWshASAAQQFqIQAMAQsLIAJBEGokAAsaACAALQALQQd2BEAgACgCCBogACgCABAZCwvmAQEFfyMAQRBrIgUkACMAQSBrIgMkACMAQRBrIgQkACAEIAA2AgwgBCAAIAFqNgIIIAMgBCgCDDYCGCADIAQoAgg2AhwgBEEQaiQAIAMoAhghBCADKAIcIQYjAEEQayIBJAAgASAGNgIMIAIgBCAGIARrIgQQNiABIAIgBGo2AgggAyABKAIMNgIQIAMgASgCCDYCFCABQRBqJAAgAyAAIAMoAhAgAGtqNgIMIAMgAiADKAIUIAJrajYCCCAFIAMoAgw2AgggBSADKAIINgIMIANBIGokACAFKAIMIQcgBUEQaiQAIAcL8wIBBX8jAEEQayIHJAAgAiABQX9zQff///8Hak0EQAJ/IAAtAAtBB3YEQCAAKAIADAELIAALIQggB0EEaiIJIAFB8////wNJBH8gByABQQF0NgIMIAcgASACajYCBCMAQRBrIgIkACAJKAIAIAdBDGoiCigCAEkhCyACQRBqJAAgCiAJIAsbKAIAIgJBC08EfyACQQhqQXhxIgIgAkEBayICIAJBC0YbBUEKC0EBagVB9////wcLEDAgBygCBCECIAcoAggaIAQEQCACIAggBBAjCyAFBEAgAiAEaiAGIAUQIwsgAyAEayEGIAMgBEcEQCACIARqIAVqIAQgCGogBhAjCyABQQpHBEAgCBAZCyAAIAI2AgAgACAAKAIIQYCAgIB4cSAHKAIIQf////8HcXI2AgggACAAKAIIQYCAgIB4cjYCCCAAIAQgBWogBmoiADYCBCAHQQA6AAwgACACaiAH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IwBBEGsiAiQAQcQAEBwhASAAKAIEIgBBCU8EQCAAEAMLIAIgADYCCCABQZQnIAJBCGoQCDYCBCABQaTPADYCACABQQI2AhwgAUGkzwA2AhggAUECNgIUIAFBpM8ANgIQIAFBAjYCDCABQaTPADYCCCABQQA6ACAgAUKAgICAMDcCPCABQQA7ADcgAUEAOwArIAJBEGokACABC54FAgZ+BH8gASABKAIAQQdqQXhxIgFBEGo2AgAgACELIAEpAwAhAyABKQMIIQcjAEEgayIBJAAgB0L///////8/gyEFAn4gB0IwiEL//wGDIgSnIglBgfgAa0H9D00EQCAFQgSGIANCPIiEIQIgCUGA+ABrrSEEAkAgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILQgAgAiACQv////////8HViIAGyECIACtIAR8DAELAkAgAyAFhFANACAEQv//AVINACAFQgSGIANCPIiEQoCAgICAgIAEhCECQv8PDAELQv8PIAlB/ocBSw0AGkIAQYD4AEGB+AAgBFAiCBsiCiAJayIAQfAASg0AGiADIQIgBSAFQoCAgICAgMAAhCAIGyIEIQYCQEGAASAAayIIQcAAcQRAIAIgCEFAaq2GIQZCACECDAELIAhFDQAgBiAIrSIFhiACQcAAIAhrrYiEIQYgAiAFhiECCyABIAI3AxAgASAGNwMYAkAgAEHAAHEEQCAEIABBQGqtiCEDQgAhBAwBCyAARQ0AIARBwAAgAGuthiADIACtIgKIhCEDIAQgAoghBAsgASADNwMAIAEgBDcDCCABKQMIQgSGIAEpAwAiA0I8iIQhAgJAIAkgCkcgASkDECABKQMYhEIAUnGtIANC//////////8Pg4QiA0KBgICAgICAgAhaBEAgAkIBfCECDAELIANCgICAgICAgIAIUg0AIAJCAYMgAnwhAgsgAkKAgICAgICACIUgAiACQv////////8HViIAGyECIACtCyEDIAFBIGokACALIAdCgICAgICAgICAf4MgA0I0hoQgAoS/OQMAC0MBAn8jAEEQayICJAAgAiABNgIMIAJBpM8ANgIIIAJBCGogABEBACEDIAIoAgwiAUEJTwRAIAEQAgsgAkEQaiQAIAMLBABCAAsE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IgdBAEgiAxsgBSgCCCAHIAMbEBsiAygCCDYCcCAFIAMpAgA3A2ggA0IANwIAIANBADYCCCAFIAVB6ABqQasREBoiAygCCDYCgAEgBSADKQIANwN4IANCADcCACADQQA2AgggBUGIAWogBSgCeCAFQfgAaiAFLACDASIHQQBIIgMbIAUoAnwgByADGxAbGiAFLACDAUEASARAIAUoAngQGQsgBSwAc0EASARAIAUoAmgQGQsgBSwAD0EASARAIAUoAgQQGQsgBSwAY0EASARAIAUoAlgQGQsgBSwAU0EASARAIAUoAkgQGQsgBSwAG0EASARAIAUoAhAQGQsgBSwAQ0EASARAIAUoAjgQGQsgBSwAM0EASARAIAUoAigQGQsgBSwAJ0EATg0AIAUoAhwQGQsgAkEBaiICQQdHDQALIAlBAWoiCUEHRw0ACyMAQRBrIggkAEHzHxAqIQwCfyAFQYgBaiILLQALQQd2BEAgCygCBAwBCyALLQALQf8AcQshBgJ/An8jAEEQayIHJAAgBUH4AGohCiAGIAxqIglB9////wdNBEACQCAJQQtJBEAgCkIANwIAIApBADYCCCAKIAotAAtBgAFxIAlB/wBxcjoACyAKIAotAAtB/wBxOgALDAELIAlBC08EfyAJQQhqQXhxIgIgAkEBayICIAJBC0YbBUEKC0EBaiIDEBwhAiAKIAooAghBgICAgHhxIANB/////wdxcjYCCCAKIAooAghBgICAgHhyNgIIIAogAjYCACAKIAk2AgQLIAdBEGokACAKDAELECcACyICLQALQQd2BEAgAigCAAwBCyACCyICQfMfIAwQIyACIAxqIgICfyALLQALQQd2BEAgCygCAAwBCyALCyAGECMgAiAGakEBEEMgCEEQaiQAIA0gCkHNIxAaIgIpAgA3AgAgDSACKAIINgIIIAJCADcCACACQQA2AgggBSwAgwFBAEgEQCAFKAJ4EBkLIAUsAJMBQQBIBEAgBSgCiAEQGQsgBSgClAEiBwRAIAUoApgBIgMgByICRwRAA0AgA0EMayICKAIAIggEQCADQQhrIAg2AgAgCBAZCyACIgMgB0cNAAsgBSgClAEhAgsgBSAHNgKYASACEBkLIAVBoAFqJAAgBEEwaiAEKAIgIA0gBCwAKyIDQQBIIgIbIAQoAiQgAyACGxAbGiAELAAr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AAsLvUQWAEGACAukH3NldEJlYXV0eQAtKyAgIDBYMHgALTBYKzBYIDBYLTB4KzB4IDB4AHVuc2lnbmVkIHNob3J0AHVuc2lnbmVkIGludABpbml0AGZsb2F0AHVpbnQ2NF90AGJsdXJSYWRpdXMAdmVjdG9yAG1pcnJvcgBhdHRhY2hTaGFkZXIAZGVsZXRlU2hhZGVyAGNyZWF0ZVNoYWRlcgBjb21waWxlU2hhZGVyAHVuc2lnbmVkIGNoYXIAc3RkOjpleGNlcHRpb24AbmFuAGxpbmtQcm9ncmFtAGRlbGV0ZVByb2dyYW0AY3JlYXRlUHJvZ3JhbQBib29sAHNldFdhdGVyTWFyawBzdG9wV2F0ZXJNYXJrAHVuc2lnbmVkIGxvbmcAc3RkOjp3c3RyaW5nAGJhc2ljX3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBpbmYAJWYAY2xvc2UAZG91YmxlAHZiTW9kZQBzaGFkZXJTb3VyY2UAdm9pZABzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbAE5BTgBJTkYAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ2NF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ2NF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AdmVjMiBjID0gdl90ZXhDb29yZDsAdmVjMiBjID0gdmVjMigxLjAgLSB2X3RleENvb3JkLngsIHZfdGV4Q29vcmQueSk7AEFsbEluMQAuAC4wLAAuMCkqbykqAChudWxsKQApKm8ueSk7ICAgIHZlYzIgY29vcmQyID0gdmVjMihmbG9hdCgAICAgIGMgPSB2ZWMyKHZfdGV4Q29vcmQueCwgMS4wIC0gdl90ZXhDb29yZC55KTsgICAgdmVjMiBjb29yZDEgPSB2ZWMyKGZsb2F0KAApLCAoYy55IC1jb29yZDEueSkgLyBvLnkgLyBmbG9hdCgAKSpvLnkpOyAgICBpZiAoYy54ID4gY29vcmQxLnggJiYgYy54IDwgY29vcmQyLnggJiYgYy55ID4gY29vcmQxLnkgJiYgYy55IDwgY29vcmQyLnkpIHsgICAgICB2ZWM0IHdhdGVyQ29sb3IgPSB0ZXh0dXJlKHdhdGVyTWFyaywgdmVjMigoYy54IC0gY29vcmQxLngpICAvIG8ueCAvIGZsb2F0KAApICogby54LCBmbG9hdCgAb3V0Q29sb3IucmdiICs9IHZlYzMoACk7ICAgICAgIHZlYzMgc21vb3RoQ29sb3IgPSBvdXRDb2xvci5yZ2IgKyAob3V0Q29sb3IucmdiLXZlYzMoaGlnaFBhc3MpKSphbHBoYSowLjE7ICAgICAgIHNtb290aENvbG9yID0gY2xhbXAocG93KHNtb290aENvbG9yLCB2ZWMzKABnKz1HKGMsdmVjMigAICAgICAgdmVjMiBvZmZzZXQgPSB2ZWMyKABdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoADsgACkpLCB2ZWMzKDAuMCksIHZlYzMoMS4wKSk7ICAgICAgdmVjMyBzY3JlZW4gPSB2ZWMzKDEuMCkgLSAodmVjMygxLjApLXNtb290aENvbG9yKSAqICh2ZWMzKDEuMCktb3V0Q29sb3IucmdiKTsgICAgICAgdmVjMyBsaWdodGVuID0gbWF4KHNtb290aENvbG9yLCBvdXRDb2xvci5yZ2IpOyAgICAgICB2ZWMzIGJlYXV0eUNvbG9yID0gbWl4KG1peChvdXRDb2xvci5yZ2IsIHNjcmVlbiwgYWxwaGEpLCBsaWdodGVuLCBhbHBoYSk7ICAgICAgb3V0Q29sb3IucmdiID0gbWl4KG91dENvbG9yLnJnYiwgYmVhdXR5Q29sb3IsIAAKICAgICAgY29uc3QgbWF0MyBzYXR1cmF0ZU1hdHJpeCA9IG1hdDMoMS4xMTAyLC0wLjA1OTgsLTAuMDYxLC0wLjA3NzQsMS4wODI2LC0wLjExODYsLTAuMDIyOCwtMC4wMjI4LDEuMTc3Mik7CiAgICAgIHZlYzMgd2FybUNvbG9yID0gb3V0Q29sb3IucmdiICogc2F0dXJhdGVNYXRyaXg7CiAgICAgIG91dENvbG9yLnJnYiA9IG1peChvdXRDb2xvci5yZ2IsIHdhcm1Db2xvciwgACAgICAgIHNhbXBsZUNvbG9yID0gc2FtcGxlQ29sb3IgLyA2Mi4wOyAgICAgICBmbG9hdCBoaWdoUGFzcyA9IG91dENvbG9yLmcgLSBzYW1wbGVDb2xvciArIDAuNTsgICAgICAgY29uc3QgaGlnaHAgdmVjMyBXID0gdmVjMygwLjI5OSwwLjU4NywwLjExNCk7ICAgICAgZmxvYXQgbHVtaW5hbmNlID0gZG90KG91dENvbG9yLnJnYiwgVyk7ICAgICAgIGZsb2F0IGFscGhhID0gcG93KGx1bWluYW5jZSwgAF0pLmcgKiAAKSkpOyAgICAgIG91dENvbG9yID0gbWl4KG91dENvbG9yLHdhdGVyQ29sb3IsICB3YXRlckNvbG9yLmEpOyAgICB9ICAgIAApOyAgICAAKTsgICAgICB2ZWMyIGJsdXJDb29yZGluYXRlc1syNF07ICAgICAgACAgICAgIGZsb2F0IHNhbXBsZUNvbG9yID0gb3V0Q29sb3IuZyAqIDIyLjA7ICAgICAgIAAjdmVyc2lvbiAzMDAgZXMKICAgIHByZWNpc2lvbiBoaWdocCBmbG9hdDsKICAgIHVuaWZvcm0gc2FtcGxlcjJEIGZyYW1lOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgbWFzazsKICAgIHVuaWZvcm0gc2FtcGxlcjJEIGJnOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgd2F0ZXJNYXJrOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgbGFzdE1hc2s7CiAgICBpbiB2ZWMyIHZfdGV4Q29vcmQ7CiAgICBvdXQgdmVjNCBvdXRDb2xvcjsKICAgIHZlYzQgRyh2ZWMyIGMsdmVjMiBzKXsKICAgICAgcmV0dXJuIHRleHR1cmUoZnJhbWUsdGV4dHVyZShtYXNrLGMrcykuYT4wLjM/YzpjK3MpOwogICAgfQogICAgdm9pZCBtYWluKCkgewogICAgICAACiAgICB2ZWM0IGcgPSB2ZWM0KDAuMCk7CiAgICAACiAgICAgIGMueSA9IDEuMCAtIGMueTsKICAgICAgdmVjNCBzcmNfY29sb3IgPSB0ZXh0dXJlKGZyYW1lLCBjKTsKICAgICAgZmxvYXQgYSA9IHRleHR1cmUobWFzaywgYykuYTsKICAgICAgYSA9IGE8MC41PzIuMCphKmE6MS4wLTIuMCooMS4wLWEpKigxLjAtYSk7CiAgICAgIC8vIGZsb2F0IGEyID0gdGV4dHVyZShsYXN0TWFzaywgYykuYTsKICAgICAgLy8gYTIgPSBhMjwwLjU/Mi4wKmEyKmEyOjEuMC0yLjAqKDEuMC1hMikqKDEuMC1hMik7CiAgICAgIC8vIGZsb2F0IGRlbHRhID0gYSAtIGEyOwogICAgICAvLyBpZiAoZGVsdGEgPCAwLjI1ICYmIGRlbHRhID4gLTAuMjUpCiAgICAgIC8vIHsKICAgICAgLy8gICAgIGEgPSBhICsgMC41KmRlbHRhOwogICAgICAvLyB9CiAgICAgIAogICAgICB2ZWMyIG8gPSAxLjAgLyB2ZWMyKHRleHR1cmVTaXplKGZyYW1lLCAwKSk7CiAgICAACiAgICAgIG91dENvbG9yID0gZzsKICAAI3ZlcnNpb24gMzAwIGVzCmluIHZlYzIgYV9wb3NpdGlvbjsKaW4gdmVjMiBhX3RleENvb3JkOwpvdXQgdmVjMiB2X3RleENvb3JkOwp2b2lkIG1haW4oKSB7CiAgZ2xfUG9zaXRpb24gPSB2ZWM0KGFfcG9zaXRpb24ueCwgYV9wb3NpdGlvbi55LCAwLCAxKTsKICB2X3RleENvb3JkID0gYV90ZXhDb29yZDsKfQoAc2V0QmVhdXR5ICVmICVmICVmICVmICVmCgBvdXRDb2xvciA9IHNyY19jb2xvcjsKAG91dENvbG9yID0gbWl4KHRleHR1cmUoYmcsIGMpLHNyY19jb2xvcixhKTsKAG91dENvbG9yID0gbWl4KHZlYzQoMC4wLDEuMCwwLjAsMS4wKSxzcmNfY29sb3IsYSk7CgA2QWxsSW4xAFAlAAAoEwAAUDZBbGxJbjEAAAAA1CUAADgTAAAAAAAAMBMAAFBLNkFsbEluMQAAANQlAABUEwAAAQAAADATAABwcAB2AHZwAEQTAACUEwAATjEwZW1zY3JpcHRlbjN2YWxFAABQJQAAgBMAAHBwcAB2cHBwAEGwJwskjCQAAEQTAABAJQAAQCUAAEAlAABAJQAAQCUAAHZwcGRkZGRkAEHgJwvICIwkAABEEwAAQCUAAEAlAABAJQAAQCUAAHZwcGRkZGQAjCQAAEQTAAB2cHAAjCQAAJQTAACUEwAARBMAAJQTAADsJAAAjCQAAJQTAABwFAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAAFAlAAAwFAAAlBMAAIwkAACUEwAAlBMAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0loTlNfMTFjaGFyX3RyYWl0c0loRUVOU185YWxsb2NhdG9ySWhFRUVFAABQJQAAiBQAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVOU185YWxsb2NhdG9ySXdFRUVFAABQJQAA0BQAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEc05TXzExY2hhcl90cmFpdHNJRHNFRU5TXzlhbGxvY2F0b3JJRHNFRUVFAAAAUCUAABgVAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRGlOU18xMWNoYXJfdHJhaXRzSURpRUVO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";return E}var xr;function yn(E){if(E==xr&&Ze)return new Uint8Array(Ze);var g=Re(E);if(g)return g;if(tr)return tr(E);throw"both async and sync fetching of the wasm failed"}function Vn(E){return Promise.resolve().then(()=>yn(E))}function Ur(E,g,C){return Vn(E).then(O=>WebAssembly.instantiate(O,g)).then(C,O=>{on(`failed to asynchronously prepare wasm: ${O}`),mn(O)})}function xe(E,g,C,O){return Ur(g,C,O)}function Se(){return{a:vr}}function be(){var E=Se();function g(O,F){return lt=O.exports,_e=lt.z,Gt(),Or=lt.C,St(lt.A),Si("wasm-instantiate"),lt}Yn("wasm-instantiate");function C(O){g(O.instance)}if(k.instantiateWasm)try{return k.instantiateWasm(E,g)}catch(O){on(`Module.instantiateWasm callback failed with error: ${O}`),we(O)}return xr||(xr=Cn()),xe(Ze,xr,E,C).catch(we),{}}var ve=E=>{for(;E.length>0;)E.shift()(k)},T=k.noExitRuntime||!0;class De{constructor(g){this.excPtr=g,this.ptr=g-24}set_type(g){Ee[this.ptr+4>>2]=g}get_type(){return Ee[this.ptr+4>>2]}set_destructor(g){Ee[this.ptr+8>>2]=g}get_destructor(){return Ee[this.ptr+8>>2]}set_caught(g){g=g?1:0,Lt[this.ptr+12]=g}get_caught(){return Lt[this.ptr+12]!=0}set_rethrown(g){g=g?1:0,Lt[this.ptr+13]=g}get_rethrown(){return Lt[this.ptr+13]!=0}init(g,C){this.set_adjusted_ptr(0),this.set_type(g),this.set_destructor(C)}set_adjusted_ptr(g){Ee[this.ptr+16>>2]=g}get_adjusted_ptr(){return Ee[this.ptr+16>>2]}get_exception_ptr(){var g=dr(this.get_type());if(g)return Ee[this.excPtr>>2];var C=this.get_adjusted_ptr();return C!==0?C:this.excPtr}}var D=0,Qe=0,$e=(E,g,C)=>{var O=new De(E);throw O.init(g,C),D=E,Qe++,D},jr=()=>{mn("")},an=(E,g,C,O,F)=>{},K=()=>{for(var E=new Array(256),g=0;g<256;++g)E[g]=String.fromCharCode(g);Lr=E},Lr,W=E=>{for(var g="",C=E;He[C];)g+=Lr[He[C++]];return g},Yt={},ct={},Hr={},Xt,de=E=>{throw new Xt(E)},sn,yr=E=>{throw new sn(E)},Ot=(E,g,C)=>{E.forEach(function(j){Hr[j]=g});function O(j){var Z=C(j);Z.length!==E.length&&yr("Mismatched type converter count");for(var ee=0;ee<E.length;++ee)wt(E[ee],Z[ee])}var F=new Array(g.length),H=[],X=0;g.forEach((j,Z)=>{ct.hasOwnProperty(j)?F[Z]=ct[j]:(H.push(j),Yt.hasOwnProperty(j)||(Yt[j]=[]),Yt[j].push(()=>{F[Z]=ct[j],++X,X===H.length&&O(F)}))}),H.length===0&&O(F)};function Fi(E,g,C={}){var O=g.name;if(E||de(`type "${O}" must have a positive integer typeid pointer`),ct.hasOwnProperty(E)){if(C.ignoreDuplicateRegistrations)return;de(`Cannot register type '${O}' twice`)}if(ct[E]=g,delete Hr[E],Yt.hasOwnProperty(E)){var F=Yt[E];delete Yt[E],F.forEach(H=>H())}}function wt(E,g,C={}){if(!("argPackAdvance"in g))throw new TypeError("registerType registeredInstance requires argPackAdvance");return Fi(E,g,C)}var Vt=8,ki=(E,g,C,O)=>{g=W(g),wt(E,{name:g,fromWireType:function(F){return!!F},toWireType:function(F,H){return H?C:O},argPackAdvance:Vt,readValueFromPointer:function(F){return this.fromWireType(He[F])},destructorFunction:null})},Ni=E=>({count:E.count,deleteScheduled:E.deleteScheduled,preservePointerOnDelete:E.preservePointerOnDelete,ptr:E.ptr,ptrType:E.ptrType,smartPtr:E.smartPtr,smartPtrType:E.smartPtrType}),wn=E=>{function g(C){return C.$$.ptrType.registeredClass.name}de(g(E)+" instance already deleted")},bn=!1,Wt=E=>{},nr=E=>{E.smartPtr?E.smartPtrType.rawDestructor(E.smartPtr):E.ptrType.registeredClass.rawDestructor(E.ptr)},ft=E=>{E.count.value-=1;var g=E.count.value===0;g&&nr(E)},ut=(E,g,C)=>{if(g===C)return E;if(C.baseClass===void 0)return null;var O=ut(E,g,C.baseClass);return O===null?null:C.downcast(O)},ir={},Mt=()=>Object.keys(Ge).length,wr=()=>{var E=[];for(var g in Ge)Ge.hasOwnProperty(g)&&E.push(Ge[g]);return E},p=[],or=()=>{for(;p.length;){var E=p.pop();E.$$.deleteScheduled=!1,E.delete()}},_,Dn=E=>{_=E,p.length&&_&&_(or)},le=()=>{k.getInheritedInstanceCount=Mt,k.getLiveInheritedInstances=wr,k.flushPendingDeletes=or,k.setDelayFunction=Dn},Ge={},ce=(E,g)=>{for(g===void 0&&de("ptr should not be undefined");E.baseClass;)g=E.upcast(g),E=E.baseClass;return g},br=(E,g)=>(g=ce(E,g),Ge[g]),Bn=(E,g)=>{(!g.ptrType||!g.ptr)&&yr("makeClassHandle requires ptr and ptrType");var C=!!g.smartPtrType,O=!!g.smartPtr;return C!==O&&yr("Both smartPtrType and smartPtr must be specified"),g.count={value:1},ye(Object.create(E,{$$:{value:g,writable:!0}}))};function Ve(E){var g=this.getPointee(E);if(!g)return this.destructor(E),null;var C=br(this.registeredClass,g);if(C!==void 0){if(C.$$.count.value===0)return C.$$.ptr=g,C.$$.smartPtr=E,C.clone();var O=C.clone();return this.destructor(E),O}function F(){return this.isSmartPointer?Bn(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:g,smartPtrType:this,smartPtr:E}):Bn(this.registeredClass.instancePrototype,{ptrType:this,ptr:E})}var H=this.registeredClass.getActualType(g),X=ir[H];if(!X)return F.call(this);var j;this.isConst?j=X.constPointerType:j=X.pointerType;var Z=ut(g,this.registeredClass,j.registeredClass);return Z===null?F.call(this):this.isSmartPointer?Bn(j.registeredClass.instancePrototype,{ptrType:j,ptr:Z,smartPtrType:this,smartPtr:E}):Bn(j.registeredClass.instancePrototype,{ptrType:j,ptr:Z})}var ye=E=>typeof FinalizationRegistry=="undefined"?(ye=g=>g,E):(bn=new FinalizationRegistry(g=>{ft(g.$$)}),ye=g=>{var C=g.$$,O=!!C.smartPtr;if(O){var F={$$:C};bn.register(g,F,g)}return g},Wt=g=>bn.unregister(g),ye(E)),Tt=()=>{Object.assign(Gr.prototype,{isAliasOf(E){if(!(this instanceof Gr)||!(E instanceof Gr))return!1;var g=this.$$.ptrType.registeredClass,C=this.$$.ptr;E.$$=E.$$;for(var O=E.$$.ptrType.registeredClass,F=E.$$.ptr;g.baseClass;)C=g.upcast(C),g=g.baseClass;for(;O.baseClass;)F=O.upcast(F),O=O.baseClass;return g===O&&C===F},clone(){if(this.$$.ptr||wn(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var E=ye(Object.create(Object.getPrototypeOf(this),{$$:{value:Ni(this.$$)}}));return E.$$.count.value+=1,E.$$.deleteScheduled=!1,E},delete(){this.$$.ptr||wn(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&de("Object already scheduled for deletion"),Wt(this),ft(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||wn(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&de("Object already scheduled for deletion"),p.push(this),p.length===1&&_&&_(or),this.$$.deleteScheduled=!0,this}})};function Gr(){}var Dr=(E,g)=>Object.defineProperty(g,"name",{value:E}),vt=(E,g,C)=>{if(E[g].overloadTable===void 0){var O=E[g];E[g]=function(...F){return E[g].overloadTable.hasOwnProperty(F.length)||de(`Function '${C}' called with an invalid number of arguments (${F.length}) - expects one of (${E[g].overloadTable})!`),E[g].overloadTable[F.length].apply(this,F)},E[g].overloadTable=[],E[g].overloadTable[O.argCount]=O}},Br=(E,g,C)=>{k.hasOwnProperty(E)?((C===void 0||k[E].overloadTable!==void 0&&k[E].overloadTable[C]!==void 0)&&de(`Cannot register public name '${E}' twice`),vt(k,E,E),k.hasOwnProperty(C)&&de(`Cannot register multiple overloads of a function with the same number of arguments (${C})!`),k[E].overloadTable[C]=g):(k[E]=g,C!==void 0&&(k[E].numArguments=C))},xi=48,Wn=57,Ui=E=>{if(E===void 0)return"_unknown";E=E.replace(/[^a-zA-Z0-9_]/g,"$");var g=E.charCodeAt(0);return g>=xi&&g<=Wn?`_${E}`:E};function On(E,g,C,O,F,H,X,j){this.name=E,this.constructor=g,this.instancePrototype=C,this.rawDestructor=O,this.baseClass=F,this.getActualType=H,this.upcast=X,this.downcast=j,this.pureVirtualFunctions=[]}var ar=(E,g,C)=>{for(;g!==C;)g.upcast||de(`Expected null or instance of ${C.name}, got an instance of ${g.name}`),E=g.upcast(E),g=g.baseClass;return E};function P(E,g){if(g===null)return this.isReference&&de(`null is not a valid ${this.name}`),0;g.$$||de(`Cannot pass "${cn(g)}" as a ${this.name}`),g.$$.ptr||de(`Cannot pass deleted object as a pointer of type ${this.name}`);var C=g.$$.ptrType.registeredClass,O=ar(g.$$.ptr,C,this.registeredClass);return O}function Q(E,g){var C;if(g===null)return this.isReference&&de(`null is not a valid ${this.name}`),this.isSmartPointer?(C=this.rawConstructor(),E!==null&&E.push(this.rawDestructor,C),C):0;(!g||!g.$$)&&de(`Cannot pass "${cn(g)}" as a ${this.name}`),g.$$.ptr||de(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&g.$$.ptrType.isConst&&de(`Cannot convert argument of type ${g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name} to parameter type ${this.name}`);var O=g.$$.ptrType.registeredClass;if(C=ar(g.$$.ptr,O,this.registeredClass),this.isSmartPointer)switch(g.$$.smartPtr===void 0&&de("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:g.$$.smartPtrType===this?C=g.$$.smartPtr:de(`Cannot convert argument of type ${g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:C=g.$$.smartPtr;break;case 2:if(g.$$.smartPtrType===this)C=g.$$.smartPtr;else{var F=g.clone();C=this.rawShare(C,ie.toHandle(()=>F.delete())),E!==null&&E.push(this.rawDestructor,C)}break;default:de("Unsupporting sharing policy")}return C}function Tn(E,g){if(g===null)return this.isReference&&de(`null is not a valid ${this.name}`),0;g.$$||de(`Cannot pass "${cn(g)}" as a ${this.name}`),g.$$.ptr||de(`Cannot pass deleted object as a pointer of type ${this.name}`),g.$$.ptrType.isConst&&de(`Cannot convert argument of type ${g.$$.ptrType.name} to parameter type ${this.name}`);var C=g.$$.ptrType.registeredClass,O=ar(g.$$.ptr,C,this.registeredClass);return O}function Yr(E){return this.fromWireType(Ee[E>>2])}var zn=()=>{Object.assign(An.prototype,{getPointee(E){return this.rawGetPointee&&(E=this.rawGetPointee(E)),E},destructor(E){var g;(g=this.rawDestructor)==null||g.call(this,E)},argPackAdvance:Vt,readValueFromPointer:Yr,fromWireType:Ve})};function An(E,g,C,O,F,H,X,j,Z,ee,q){this.name=E,this.registeredClass=g,this.isReference=C,this.isConst=O,this.isSmartPointer=F,this.pointeeType=H,this.sharingPolicy=X,this.rawGetPointee=j,this.rawConstructor=Z,this.rawShare=ee,this.rawDestructor=q,!F&&g.baseClass===void 0?O?(this.toWireType=P,this.destructorFunction=null):(this.toWireType=Tn,this.destructorFunction=null):this.toWireType=Q}var ji=(E,g,C)=>{k.hasOwnProperty(E)||yr("Replacing nonexistent public symbol"),k[E].overloadTable!==void 0&&C!==void 0?k[E].overloadTable[C]=g:(k[E]=g,k[E].argCount=C)},_o=(E,g,C)=>{E=E.replace(/p/g,"i");var O=k["dynCall_"+E];return O(g,...C)},vn=[],Or,Ft=E=>{var g=vn[E];return g||(E>=vn.length&&(vn.length=E+1),vn[E]=g=Or.get(E)),g},zt=(E,g,C=[])=>{if(E.includes("j"))return _o(E,g,C);var O=Ft(g)(...C);return O},Xr=(E,g)=>(...C)=>zt(E,g,C),Qt=(E,g)=>{E=W(E);function C(){return E.includes("j")?Xr(E,g):Ft(g)}var O=C();return typeof O!="function"&&de(`unknown function pointer with signature ${E}: ${g}`),O},Qn=(E,g)=>{var C=Dr(g,function(O){this.name=g,this.message=O;var F=new Error(O).stack;F!==void 0&&(this.stack=this.toString()+`
60
- `+F.replace(/^Error(:[^\n]*)?\n/,""))});return C.prototype=Object.create(E.prototype),C.prototype.constructor=C,C.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},C},$t,kt=E=>{var g=lr(E),C=W(g);return pt(g),C},Tr=(E,g)=>{var C=[],O={};function F(H){if(!O[H]&&!ct[H]){if(Hr[H]){Hr[H].forEach(F);return}C.push(H),O[H]=!0}}throw g.forEach(F),new $t(`${E}: `+C.map(kt).join([", "]))},Li=(E,g,C,O,F,H,X,j,Z,ee,q,me,Be)=>{q=W(q),H=Qt(F,H),j&&(j=Qt(X,j)),ee&&(ee=Qt(Z,ee)),Be=Qt(me,Be);var Oe=Ui(q);Br(Oe,function(){Tr(`Cannot construct ${q} due to unbound types`,[O])}),Ot([E,g,C],O?[O]:[],Ke=>{var oi,ai;Ke=Ke[0];var Ye,Ue;O?(Ye=Ke.registeredClass,Ue=Ye.instancePrototype):Ue=Gr.prototype;var We=Dr(q,function(...Mn){if(Object.getPrototypeOf(this)!==Pt)throw new Xt("Use 'new' to construct "+q);if(qe.constructor_body===void 0)throw new Xt(q+" has no accessible constructor");var si=qe.constructor_body[Mn.length];if(si===void 0)throw new Xt(`Tried to invoke ctor of ${q} with invalid number of parameters (${Mn.length}) - expected (${Object.keys(qe.constructor_body).toString()}) parameters instead!`);return si.apply(this,Mn)}),Pt=Object.create(Ue,{constructor:{value:We}});We.prototype=Pt;var qe=new On(q,We,Pt,Be,Ye,H,j,ee);qe.baseClass&&((ai=(oi=qe.baseClass).__derivedClasses)!=null||(oi.__derivedClasses=[]),qe.baseClass.__derivedClasses.push(qe));var Pr=new An(q,qe,!0,!1,!1),ht=new An(q+"*",qe,!1,!1,!1),gn=new An(q+" const*",qe,!1,!0,!1);return ir[E]={pointerType:ht,constPointerType:gn},ji(Oe,We),[Pr,ht,gn]})},$n=(E,g)=>{for(var C=[],O=0;O<E;O++)C.push(Ee[g+O*4>>2]);return C},Pn=E=>{for(;E.length;){var g=E.pop(),C=E.pop();C(g)}};function Hi(E){for(var g=1;g<E.length;++g)if(E[g]!==null&&E[g].destructorFunction===void 0)return!0;return!1}function Kn(E,g,C,O,F,H){var X=g.length;X<2&&de("argTypes array size mismatch! Must at least get return value and 'this' types!");var j=g[1]!==null&&C!==null,Z=Hi(g),ee=g[0].name!=="void",q=X-2,me=new Array(q),Be=[],Oe=[],Ke=function(...Ye){Ye.length!==q&&de(`function ${E} called with ${Ye.length} arguments, expected ${q}`),Oe.length=0;var Ue;Be.length=j?2:1,Be[0]=F,j&&(Ue=g[1].toWireType(Oe,this),Be[1]=Ue);for(var We=0;We<q;++We)me[We]=g[We+2].toWireType(Oe,Ye[We]),Be.push(me[We]);var Pt=O(...Be);function qe(Pr){if(Z)Pn(Oe);else for(var ht=j?1:2;ht<g.length;ht++){var gn=ht===1?Ue:me[ht-2];g[ht].destructorFunction!==null&&g[ht].destructorFunction(gn)}if(ee)return g[0].fromWireType(Pr)}return qe(Pt)};return Dr(E,Ke)}var Gi=(E,g,C,O,F,H)=>{var X=$n(g,C);F=Qt(O,F),Ot([],[E],j=>{j=j[0];var Z=`constructor ${j.name}`;if(j.registeredClass.constructor_body===void 0&&(j.registeredClass.constructor_body=[]),j.registeredClass.constructor_body[g-1]!==void 0)throw new Xt(`Cannot register multiple constructors with identical number of parameters (${g-1}) for class '${j.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return j.registeredClass.constructor_body[g-1]=()=>{Tr(`Cannot construct ${j.name} due to unbound types`,X)},Ot([],X,ee=>(ee.splice(1,0,null),j.registeredClass.constructor_body[g-1]=Kn(Z,ee,null,F,H),[])),[]})},Yi=E=>{E=E.trim();let g=E.indexOf("(");return g!==-1?E.substr(0,g):E},Jn=(E,g,C,O,F,H,X,j,Z)=>{var ee=$n(C,O);g=W(g),g=Yi(g),H=Qt(F,H),Ot([],[E],q=>{q=q[0];var me=`${q.name}.${g}`;g.startsWith("@@")&&(g=Symbol[g.substring(2)]),j&&q.registeredClass.pureVirtualFunctions.push(g);function Be(){Tr(`Cannot call ${me} due to unbound types`,ee)}var Oe=q.registeredClass.instancePrototype,Ke=Oe[g];return Ke===void 0||Ke.overloadTable===void 0&&Ke.className!==q.name&&Ke.argCount===C-2?(Be.argCount=C-2,Be.className=q.name,Oe[g]=Be):(vt(Oe,g,me),Oe[g].overloadTable[C-2]=Be),Ot([],ee,Ye=>{var Ue=Kn(me,Ye,q,H,X,Z);return Oe[g].overloadTable===void 0?(Ue.argCount=C-2,Oe[g]=Ue):Oe[g].overloadTable[C-2]=Ue,[]}),[]})},he=(E,g,C)=>(E instanceof Object||de(`${C} with invalid "this": ${E}`),E instanceof g.registeredClass.constructor||de(`${C} incompatible with "this" of type ${E.constructor.name}`),E.$$.ptr||de(`cannot call emscripten binding method ${C} on deleted object`),ar(E.$$.ptr,E.$$.ptrType.registeredClass,g.registeredClass)),Ie=(E,g,C,O,F,H,X,j,Z,ee)=>{g=W(g),F=Qt(O,F),Ot([],[E],q=>{q=q[0];var me=`${q.name}.${g}`,Be={get(){Tr(`Cannot access ${me} due to unbound types`,[C,X])},enumerable:!0,configurable:!0};return Z?Be.set=()=>Tr(`Cannot access ${me} due to unbound types`,[C,X]):Be.set=Oe=>de(me+" is a read-only property"),Object.defineProperty(q.registeredClass.instancePrototype,g,Be),Ot([],Z?[C,X]:[C],Oe=>{var Ke=Oe[0],Ye={get(){var We=he(this,q,me+" getter");return Ke.fromWireType(F(H,We))},enumerable:!0};if(Z){Z=Qt(j,Z);var Ue=Oe[1];Ye.set=function(We){var Pt=he(this,q,me+" setter"),qe=[];Z(ee,Pt,Ue.toWireType(qe,We)),Pn(qe)}}return Object.defineProperty(q.registeredClass.instancePrototype,g,Ye),[]}),[]})},gt=[],Pe=[],bt=E=>{E>9&&--Pe[E+1]===0&&(Pe[E]=void 0,gt.push(E))},Xi=()=>Pe.length/2-5-gt.length,Zn=()=>{Pe.push(0,1,void 0,1,null,1,!0,1,!1,1),k.count_emval_handles=Xi},ie={toValue:E=>(E||de("Cannot use deleted val. handle = "+E),Pe[E]),toHandle:E=>{switch(E){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let g=gt.pop()||Pe.length;return Pe[g]=E,Pe[g+1]=1,g}}}},se={name:"emscripten::val",fromWireType:E=>{var g=ie.toValue(E);return bt(E),g},toWireType:(E,g)=>ie.toHandle(g),argPackAdvance:Vt,readValueFromPointer:Yr,destructorFunction:null},Vi=E=>wt(E,se),cn=E=>{if(E===null)return"null";var g=typeof E;return g==="object"||g==="array"||g==="function"?E.toString():""+E},f=(E,g)=>{switch(g){case 4:return function(C){return this.fromWireType(Gn[C>>2])};case 8:return function(C){return this.fromWireType(Ht[C>>3])};default:throw new TypeError(`invalid float width (${g}): ${E}`)}},l=(E,g,C)=>{g=W(g),wt(E,{name:g,fromWireType:O=>O,toWireType:(O,F)=>F,argPackAdvance:Vt,readValueFromPointer:f(g,C),destructorFunction:null})},Me=(E,g,C)=>{switch(g){case 1:return C?O=>Lt[O]:O=>He[O];case 2:return C?O=>mr[O>>1]:O=>yt[O>>1];case 4:return C?O=>Cr[O>>2]:O=>Ee[O>>2];default:throw new TypeError(`invalid integer width (${g}): ${E}`)}},Wi=(E,g,C,O,F)=>{g=W(g),F===-1&&(F=4294967295);var H=q=>q;if(O===0){var X=32-8*C;H=q=>q<<X>>>X}var j=g.includes("unsigned"),Z=(q,me)=>{},ee;j?ee=function(q,me){return Z(me,this.name),me>>>0}:ee=function(q,me){return Z(me,this.name),me},wt(E,{name:g,fromWireType:H,toWireType:ee,argPackAdvance:Vt,readValueFromPointer:Me(g,C,O!==0),destructorFunction:null})},zi=(E,g,C)=>{var O=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],F=O[g];function H(X){var j=Ee[X>>2],Z=Ee[X+4>>2];return new F(Lt.buffer,Z,j)}C=W(C),wt(E,{name:C,fromWireType:H,argPackAdvance:Vt,readValueFromPointer:H},{ignoreDuplicateRegistrations:!0})},$i=(E,g,C,O)=>{if(!(O>0))return 0;for(var F=C,H=C+O-1,X=0;X<E.length;++X){var j=E.charCodeAt(X);if(j>=55296&&j<=57343){var Z=E.charCodeAt(++X);j=65536+((j&1023)<<10)|Z&1023}if(j<=127){if(C>=H)break;g[C++]=j}else if(j<=2047){if(C+1>=H)break;g[C++]=192|j>>6,g[C++]=128|j&63}else if(j<=65535){if(C+2>=H)break;g[C++]=224|j>>12,g[C++]=128|j>>6&63,g[C++]=128|j&63}else{if(C+3>=H)break;g[C++]=240|j>>18,g[C++]=128|j>>12&63,g[C++]=128|j>>6&63,g[C++]=128|j&63}}return g[C]=0,C-F},Ki=(E,g,C)=>$i(E,He,g,C),Ji=E=>{for(var g=0,C=0;C<E.length;++C){var O=E.charCodeAt(C);O<=127?g++:O<=2047?g+=2:O>=55296&&O<=57343?(g+=4,++C):g+=3}return g},qn=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,ei=(E,g,C)=>{for(var O=g+C,F=g;E[F]&&!(F>=O);)++F;if(F-g>16&&E.buffer&&qn)return qn.decode(E.subarray(g,F));for(var H="";g<F;){var X=E[g++];if(!(X&128)){H+=String.fromCharCode(X);continue}var j=E[g++]&63;if((X&224)==192){H+=String.fromCharCode((X&31)<<6|j);continue}var Z=E[g++]&63;if((X&240)==224?X=(X&15)<<12|j<<6|Z:X=(X&7)<<18|j<<12|Z<<6|E[g++]&63,X<65536)H+=String.fromCharCode(X);else{var ee=X-65536;H+=String.fromCharCode(55296|ee>>10,56320|ee&1023)}}return H},un=(E,g)=>E?ei(He,E,g):"",sr=(E,g)=>{g=W(g);var C=g==="std::string";wt(E,{name:g,fromWireType(O){var F=Ee[O>>2],H=O+4,X;if(C)for(var j=H,Z=0;Z<=F;++Z){var ee=H+Z;if(Z==F||He[ee]==0){var q=ee-j,me=un(j,q);X===void 0?X=me:(X+="\0",X+=me),j=ee+1}}else{for(var Be=new Array(F),Z=0;Z<F;++Z)Be[Z]=String.fromCharCode(He[H+Z]);X=Be.join("")}return pt(O),X},toWireType(O,F){F instanceof ArrayBuffer&&(F=new Uint8Array(F));var H,X=typeof F=="string";X||F instanceof Uint8Array||F instanceof Uint8ClampedArray||F instanceof Int8Array||de("Cannot pass non-string to std::string"),C&&X?H=Ji(F):H=F.length;var j=Ut(4+H+1),Z=j+4;if(Ee[j>>2]=H,C&&X)Ki(F,Z,H+1);else if(X)for(var ee=0;ee<H;++ee){var q=F.charCodeAt(ee);q>255&&(pt(Z),de("String has UTF-16 code units that do not fit in 8 bits")),He[Z+ee]=q}else for(var ee=0;ee<H;++ee)He[Z+ee]=F[ee];return O!==null&&O.push(pt,j),j},argPackAdvance:Vt,readValueFromPointer:Yr,destructorFunction(O){pt(O)}})},Ar=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,it=(E,g)=>{for(var C=E,O=C>>1,F=O+g/2;!(O>=F)&&yt[O];)++O;if(C=O<<1,C-E>32&&Ar)return Ar.decode(He.subarray(E,C));for(var H="",X=0;!(X>=g/2);++X){var j=mr[E+X*2>>1];if(j==0)break;H+=String.fromCharCode(j)}return H},Et=(E,g,C)=>{if(C!=null||(C=2147483647),C<2)return 0;C-=2;for(var O=g,F=C<E.length*2?C/2:E.length,H=0;H<F;++H){var X=E.charCodeAt(H);mr[g>>1]=X,g+=2}return mr[g>>1]=0,g-O},Zi=E=>E.length*2,qi=(E,g)=>{for(var C=0,O="";!(C>=g/4);){var F=Cr[E+C*4>>2];if(F==0)break;if(++C,F>=65536){var H=F-65536;O+=String.fromCharCode(55296|H>>10,56320|H&1023)}else O+=String.fromCharCode(F)}return O},ln=(E,g,C)=>{if(C!=null||(C=2147483647),C<4)return 0;for(var O=g,F=O+C-4,H=0;H<E.length;++H){var X=E.charCodeAt(H);if(X>=55296&&X<=57343){var j=E.charCodeAt(++H);X=65536+((X&1023)<<10)|j&1023}if(Cr[g>>2]=X,g+=4,g+4>F)break}return Cr[g>>2]=0,g-O},cr=E=>{for(var g=0,C=0;C<E.length;++C){var O=E.charCodeAt(C);O>=55296&&O<=57343&&++C,g+=4}return g},Vr=(E,g,C)=>{C=W(C);var O,F,H,X;g===2?(O=it,F=Et,X=Zi,H=j=>yt[j>>1]):g===4&&(O=qi,F=ln,X=cr,H=j=>Ee[j>>2]),wt(E,{name:C,fromWireType:j=>{for(var Z=Ee[j>>2],ee,q=j+4,me=0;me<=Z;++me){var Be=j+4+me*g;if(me==Z||H(Be)==0){var Oe=Be-q,Ke=O(q,Oe);ee===void 0?ee=Ke:(ee+="\0",ee+=Ke),q=Be+g}}return pt(j),ee},toWireType:(j,Z)=>{typeof Z!="string"&&de(`Cannot pass non-string to C++ string type ${C}`);var ee=X(Z),q=Ut(4+ee+g);return Ee[q>>2]=ee/g,F(Z,q+4,ee+g),j!==null&&j.push(pt,q),q},argPackAdvance:Vt,readValueFromPointer:Yr,destructorFunction(j){pt(j)}})},ti=(E,g)=>{g=W(g),wt(E,{isVoid:!0,name:g,argPackAdvance:0,fromWireType:()=>{},toWireType:(C,O)=>{}})},ri=(E,g,C)=>He.copyWithin(E,g,g+C),Fe=(E,g)=>{var C=ct[E];return C===void 0&&de(`${g} has unknown type ${kt(E)}`),C},je=(E,g,C)=>{var O=[],F=E.toWireType(O,C);return O.length&&(Ee[g>>2]=ie.toHandle(O)),F},eo=(E,g,C)=>(E=ie.toValue(E),g=Fe(g,"emval::as"),je(g,C,E)),Wr={},ur=E=>{var g=Wr[E];return g===void 0?W(E):g},Nt=[],zr=(E,g,C,O,F)=>(E=Nt[E],g=ie.toValue(g),C=ur(C),E(g,g[C],O,F)),to=E=>{var g=Nt.length;return Nt.push(E),g},xt=(E,g)=>{for(var C=new Array(E),O=0;O<E;++O)C[O]=Fe(Ee[g+O*4>>2],"parameter "+O);return C},ot=Reflect.construct,ae=(E,g,C)=>{var O=xt(E,g),F=O.shift();E--;var H=new Array(E),X=(Z,ee,q,me)=>{for(var Be=0,Oe=0;Oe<E;++Oe)H[Oe]=O[Oe].readValueFromPointer(me+Be),Be+=O[Oe].argPackAdvance;var Ke=C===1?ot(ee,H):ee.apply(Z,H);return je(F,q,Ke)},j=`methodCaller<(${O.map(Z=>Z.name).join(", ")}) => ${F.name}>`;return to(Dr(j,X))},Ae=E=>{E>9&&(Pe[E+1]+=1)},Rn=E=>{var g=ie.toValue(E);Pn(g),bt(E)},ni=(E,g)=>{E=Fe(E,"_emval_take_value");var C=E.readValueFromPointer(g);return ie.toHandle(C)},Kt=E=>{mn("OOM")},Jt=E=>{var g=He.length;E>>>=0,Kt(E)},dn=[null,[],[]],Sn=(E,g)=>{var C=dn[E];g===0||g===10?((E===1?Fr:on)(ei(C,0)),C.length=0):C.push(g)},fn=(E,g,C,O)=>{for(var F=0,H=0;H<C;H++){var X=Ee[g>>2],j=Ee[g+4>>2];g+=8;for(var Z=0;Z<j;Z++)Sn(E,He[X+Z]);F+=j}return Ee[O>>2]=F,0};K(),Xt=k.BindingError=class extends Error{constructor(g){super(g),this.name="BindingError"}},sn=k.InternalError=class extends Error{constructor(g){super(g),this.name="InternalError"}},Tt(),le(),zn(),$t=k.UnboundTypeError=Qn(Error,"UnboundTypeError"),Zn();var vr={w:$e,q:jr,p:an,u:ki,y:Li,x:Gi,h:Jn,k:Ie,t:Vi,o:l,g:Wi,a:zi,n:sr,l:Vr,v:ti,s:ri,j:eo,e:zr,c:bt,f:ae,d:Ae,b:Rn,i:ni,r:Jt,m:fn},lt=be(),ii=()=>(ii=lt.A)(),Ut=E=>(Ut=lt.B)(E),lr=E=>(lr=lt.D)(E),pt=E=>(pt=lt.E)(E),dr=E=>(dr=lt.F)(E),fr=k.dynCall_jiji=(E,g,C,O,F)=>(fr=k.dynCall_jiji=lt.G)(E,g,C,O,F),jt=k._vertexShaderSource=9872,_t;Bt=function E(){_t||Qr(),_t||(Bt=E)};function Qr(){if(tt>0||(po(),tt>0))return;function E(){_t||(_t=!0,k.calledRun=!0,!nt&&(Ri(),Ne(k),k.onRuntimeInitialized&&k.onRuntimeInitialized(),Nr()))}k.setStatus?(k.setStatus("Running..."),setTimeout(function(){setTimeout(function(){k.setStatus("")},1),E()},1)):E()}if(k.preInit)for(typeof k.preInit=="function"&&(k.preInit=[k.preInit]);k.preInit.length>0;)k.preInit.pop()();return Qr(),pe=st,pe}})(),Bc=Ou;var Ho=class{constructor(U,n){Le(this,"canvas");Le(this,"locateFile");Le(this,"_glName");Le(this,"_solutionWasm");Le(this,"ctx");Le(this,"fileDownloader");Le(this,"startTime");Le(this,"lastTimestamp");Le(this,"pl",{onResults:U=>this.onResults(U.get(0).glName)});this.locateFile=pe=>`${U}/${pe}`.replace(/([^:]\/)\/+/g,"$1"),this.fileDownloader=n}bindTexture(){var U;(U=this.ctx)==null||U.activeTexture(this.ctx.TEXTURE0),this.bindTexture2d(this._glName)}async initialize(){this._solutionWasm=new this.SolutionWasm;let U=new this.StringList;U.push_back("segmentation_mask");let n=this.PacketListener.implement(this.pl);return this._solutionWasm.attachMultiListener(U,n),U.delete(),this._solutionWasm.loadGraph(await this.fileDownloader.download(this.locateFile("selfie_segmentation.binarypb"),{type:"arraybuffer"})),this}setCanvas(U){this.canvas=U,this.createContext(U,!0,!0,{}),this._glName=this.createTexture()}fetchResponse(U){return this.fileDownloader.downloadWithFetch(U,"fetch-response")}loadWasm(U,n){return this.fileDownloader.loadWasm(U,n)}async changeModel(U="selfie_segmentation_landscape.tflite"){U=typeof U=="string"?await this.fileDownloader.download(this.locateFile(U),{type:"arraybuffer"}):U,this._solutionWasm.overrideFile("third_party/mediapipe/modules/selfie_segmentation/selfie_segmentation_landscape.tflite",U);let n=new this.GraphOptionChangeRequestList;n.push_back({calculatorIndex:1,calculatorName:"",calculatorType:"GlScalerCalculator",fieldName:"flip_horizontal",valueBoolean:!1,valueNumber:0,valueString:""}),n.push_back({calculatorIndex:0,calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelSelection",fieldName:"int_value",valueBoolean:!1,valueNumber:1,valueString:""}),n.push_back({calculatorIndex:0,calculatorType:"InferenceCalculator",calculatorName:"",fieldName:"use_cpu_inference",valueBoolean:!1,valueNumber:0,valueString:""}),this._solutionWasm.changeOptions(n),this.startTime=Date.now()}send(U,n){let pe=new this.PacketDataList,k=Date.now()-this.startTime;this.lastTimestamp&&this.lastTimestamp>=k?this.lastTimestamp++:this.lastTimestamp=k,pe.pushTexture2d({stream:"input_frames_gpu",timestamp:this.lastTimestamp,glName:this._glName,width:U,height:n}),this._solutionWasm.send(pe),pe.delete()}close(){var U,n,pe;(U=this.canvas)==null||delete U.getContext,delete this.readyPromiseResolve,delete this.readyPromiseReject,this.pl.onResults=null,delete this.onResults,(n=this.deleteTexture)==null||n.call(this,this._glName),(pe=this._solutionWasm)==null||pe.delete();for(let k of Object.keys(this))delete this[k]}};var Sr=typeof navigator=="undefined"?"":navigator.userAgent,ue=J=>new RegExp(J,"i").test(Sr),rt=J=>{if(ue(J)){let U=new RegExp(`${J}\\/([\\d.]+)`),n=Sr.match(U);if(n&&n[1])return n[1]}return""},ic=J=>{if(ue(J)){let U=new RegExp(`${J}\\/(\\d+)`),n=Sr.match(U);if(n&&n[1])return parseFloat(n[1])}return NaN},Oc=/AppleWebKit\/([\d.]+)/i.exec(Sr),Tu=Oc?parseFloat(Oc[1]):NaN,vc=ue("iPad"),Qc=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&ue("Macintosh"),Pc=ue("iPhone")&&!vc,vu=ue("iPod"),Rc=Pc||vc||vu||Qc,Go=ue("Android"),Sc=function(){if(Go){let J=Sr.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(J){let U=J[1]&&parseFloat(J[1]),n=J[2]&&parseFloat(J[2]);if(U&&n)return parseFloat(`${J[1]}.${J[2]}`);if(U)return U}}return NaN}(),El=Go&&ue("webkit")&&Sc<2.3,pl=Go&&Sc<5&&Tu<537,Qu=ue("Firefox"),Pu=rt("Firefox"),_l=ic("Firefox"),Mc=ue("Edge"),Ru=rt("Edge"),Fc=ue("Edg"),Su=rt("Edg"),hl=ic("Edg"),kc=ue("SogouMobileBrowser"),Mu=rt("SogouMobileBrowser"),Nc=ue("MetaSr\\s"),Fu=rt("MetaSr\\s"),Hn=ue("TBS"),ku=rt("TBS"),xc=ue("XWEB"),Nu=rt("XWEB"),Il=ue("MSIE\\s8\\.0"),xu=ue("MSIE\\/\\d+"),ml=function(){if(xu){let J=/MSIE\s(\d+)\.\d/.exec(Sr),U=J&&parseFloat(J[1]);return!U&&/Trident\/7.0/i.test(Sr)&&/rv:11.0/.test(Sr)&&(U=11),U}return NaN}(),Uu=ue("(micromessenger|webbrowser)"),ju=rt("MicroMessenger"),oc=!Hn&&ue("MQQBrowser")&&ue("COVC"),ac=!Hn&&ue("MQQBrowser")&&!ue("COVC"),Tc=ac||oc?rt("MQQBrowser"):"",Uc=!Hn&&ue(" QQBrowser"),Lu=rt(" QQBrowser"),jc=!Hn&&ue("QQBrowserLite"),Hu=rt("QQBrowserLite"),Lc=!Hn&&ue("MQBHD"),Gu=rt("MQBHD"),Cl=ue("Windows"),yl=!Rc&&ue("MAC OS X"),wl=!Go&&ue("Linux"),bl=ue("CrOS"),Dl=ue("MicroMessenger"),Bl=ue("UCBrowser"),Ol=ue("Electron"),Hc=ue("MiuiBrowser"),Yu=rt("MiuiBrowser"),Gc=ue("HuaweiBrowser"),Tl=ue("Huawei")||ue("HUAWEI"),vl=ue("Honor")||ue("HONOR"),Xu=rt("HuaweiBrowser"),Yc=ue("SamsungBrowser"),Vu=rt("SamsungBrowser"),Xc=ue("HeyTapBrowser"),Wu=rt("HeyTapBrowser"),Vc=ue("VivoBrowser"),zu=rt("VivoBrowser"),$u=()=>ic("Chrome"),Wc=ue("Chrome"),Ku=!Mc&&!Nc&&!kc&&!Hn&&!xc&&!Fc&&!Uc&&!Hc&&!Gc&&!Yc&&!Xc&&!Vc&&Wc,Ql=ue("HeadlessChrome"),zc=$u(),Ju=rt("Chrome"),Zu=!Wc&&!ac&&!oc&&!jc&&!Lc&&ue("Safari");var $c=rt("Version"),Pl=/Android.*(wv|.0.0.0)/.test(Sr),Kc=(()=>{if(Qc)return $c;if(Rc){let J=Sr.match(/OS (\d+)_(\d+)/i);if(J&&J[1]){let U=J[1];return J[2]&&(U+=`.${J[2]}`),U}}return""})(),Rl=Number(Kc.split(".")[0]);var Sl=(()=>{let J=Number(Kc.split(".")[0]);return J===14||J===13})(),Ml=typeof location=="undefined"?!1:location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1";var Fl=qu();function qu(){let J=new Map([[Qu,["Firefox",Pu]],[Fc,["Edg",Su]],[Ku,["Chrome",Ju]],[Zu,["Safari",$c]],[Hn,["TBS",ku]],[xc,["XWEB",Nu]],[Uu&&Pc,["WeChat",ju]],[Uc,["QQ(Win)",Lu]],[ac,["QQ(Mobile)",Tc]],[oc,["QQ(Mobile X5)",Tc]],[jc,["QQ(Mac)",Hu]],[Lc,["QQ(iPad)",Gu]],[Hc,["MI",Yu]],[Gc,["HW",Xu]],[Yc,["Samsung",Vu]],[Xc,["OPPO",Wu]],[Vc,["VIVO",zu]],[Mc,["EDGE",Ru]],[kc,["SogouMobile",Mu]],[Nc,["Sogou",Fu]]]),U="unknown",n="unknown";return J.has(!0)&&([U,n]=J.get(!0)),{name:U,version:n}}var vi=570703;var Yo=0,Xo=class Xo{constructor(U){this.core=U;Le(this,"seq");Le(this,"_core");Le(this,"log");Le(this,"preLoadPromise");Le(this,"startResolve");Le(this,"startReject");Le(this,"mediaPipeSolutions");Le(this,"assetsPath");Le(this,"currentType");Le(this,"onAbort");Le(this,"isAborted",!1);Yo=Yo+1,this.seq=Yo,this._core=U,this.log=U.log.createChild({id:`${this.getAlias()}${Yo}`}),this.log.info("created"),U.assetsPath&&(this.preLoadPromise=this.preload(U.assetsPath))}static isSupported(){if(zc<90)return!1;let n=document.createElement("canvas").getContext("webgl2");return!!(n&&n instanceof WebGL2RenderingContext)}async preload(U="https://web.sdk.qcloud.com/trtc/webrtc/v5/assets/"){try{this._core.room.videoManager.Wasm||(this._core.room.videoManager.Wasm=await Bc()),this.assetsPath=`${U}/selfie_segmentation/`;let n=new Ho(this.assetsPath,this._core.fileDownloader);n.onAbort=pe=>{var k;this.core.kvStatManager.addEnum({key:vi,value:this.getKVTypeValue(!1,this.isAborted,"ABORT_IN_INFERENCE")}),this.isAborted=!0,this.log.error("mediaPipeSolutions abort",pe),this.core.clearStarted(this,this.getGroup()),this.stop(),(k=this.onAbort)==null||k.call(this,pe)},n.print=this.log.info.bind(this.log),n.printErr=this.log.warn.bind(this.log),this.mediaPipeSolutions=await(this.core.rtcDectection.isSIMDSupported()?bc:Dc)(n),await this.mediaPipeSolutions.initialize(),await this._core.room.videoManager.initVirtualBackground(this.mediaPipeSolutions)}catch(n){let{RtcError:pe,ErrorCode:k}=this._core.errorModule;throw new pe({code:k.INVALID_OPERATION,message:`VirtualBackground preload error, please check your assetsPath. detail: ${n}`})}}getName(){return Xo.Name}getAlias(){return"vb"}getValidateRule(U){switch(U){case"start":return Cc(this._core);case"update":return yc(this._core);case"stop":return wc(this._core)}}getGroup(){return"vb"}getKVTypeValue(U=!1,n=!1,pe="NONE"){let k=0;switch(this.currentType){case"blur":k|=0;break;case"image":k|=1;break;case"green":k|=2;break}switch(U&&(k|=256),n&&(k|=512),pe){case"ABORT_IN_INFERENCE":k|=4096;break;case"ABORT_IN_VIDEO_MANAGER":k|=8192;break;case"OTHER":k|=61440}return k}async start(U){let{type:n="blur",src:pe,blurLevel:k=3,onAbort:Ne}=U;this.currentType=n,this.onAbort=Ne;let{auth:we,sign:st,timestamp:mt}=await mc({sdkAppId:U.sdkAppId,userId:U.userId,userSig:U.userSig,core:this._core});if(!we){let{RtcError:Je,ErrorCode:Xe,ErrorCodeDictionary:ze}=this._core.errorModule;throw new Je({code:Xe.SERVER_ERROR,extraCode:ze.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:pe,blurLevel:k,onAbort:Je=>{var Xe;this.core.kvStatManager.addEnum({key:vi,value:this.getKVTypeValue(!0,this.isAborted,"ABORT_IN_VIDEO_MANAGER")}),this.isAborted=!0,this.core.clearStarted(this,this.getGroup()),this.stop(),delete this.preLoadPromise,(Xe=this.onAbort)==null||Xe.call(this,Je)}}).then(()=>{this.core.kvStatManager.addEnum({key:vi,value:this.getKVTypeValue(!1,this.isAborted,"NONE")})}).catch(()=>{this.core.kvStatManager.addEnum({key:vi,value:this.getKVTypeValue(!0,this.isAborted,"OTHER")})})}async update(U){let{type:n,src:pe}=U;return n!==this.currentType&&(this.currentType=n),this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:pe,blurLevel:U.blurLevel}).then(()=>{this.core.kvStatManager.addEnum({key:vi,value:this.getKVTypeValue(!1,!1,"NONE")})}).catch(()=>{this.core.kvStatManager.addEnum({key:vi,value:this.getKVTypeValue(!0,!1,"OTHER")})})}async stop(){return this.core.room.videoManager.setVirtualBackground()}};Le(Xo,"Name","VirtualBackground");var sc=Xo;var Yl=sc;export{sc as VirtualBackground,Yl as default};
1
+ var __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,r)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__spreadValues=(e,t)=>{for(var r in t||(t={}))__hasOwnProp.call(t,r)&&__defNormalProp(e,r,t[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(t))__propIsEnum.call(t,r)&&__defNormalProp(e,r,t[r]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t)),__require=(e=>"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(e,{get:(e,t)=>("undefined"!=typeof require?require:e)[t]}):e)((function(e){if("undefined"!=typeof require)return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')})),__publicField=(e,t,r)=>__defNormalProp(e,"symbol"!=typeof t?t+"":t,r);async function authEffect({sdkAppId:e,userId:t,userSig:r,core:n}){var o;const i=Math.round((new Date).getTime()/1e3);try{const a=await n.schedule.getAbilityConfig(e,n.schedule.ScheduleRequestType.TRTC_AUTO_CONF,{sdkAppId:e,userId:t,userSig:r,timestamp:i});n.log.info(`virtual background ability response: ${JSON.stringify(a)}`);const{data:s}=a;return(null==(o=null==s?void 0:s.trtcAutoConf)?void 0:o.web_ar)?{auth:!0,timestamp:i}:{auth:!1}}catch(e){return n.log.error("virtual background fetch error",e),{auth:!1}}}var UserRule={sdkAppId:{required:!0,type:"number"},userId:{required:!0,type:"string"},userSig:{required:!0,type:"string"}};function startValidateRule(e){return{name:"VirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:__spreadProps(__spreadValues({},UserRule),{type:{required:!1,type:"string",values:["image","blur"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10},onAbort:{required:!1}}),validate(t,r,n,o){var i;const{RtcError:a,ErrorCode:s,ErrorCodeDictionary:A}=e.errorModule;if(!t)return;const{type:c,src:g,onAbort:d}=t;if("image"===c&&!g)throw new a({code:s.INVALID_PARAMETER,extraCode:A.INVALID_PARAMETER_REQUIRED,fnName:n,messageParams:{key:"src"}});if(d&&!e.utils.isFunction(d))throw new a({code:s.INVALID_PARAMETER,extraCode:A.INVALID_PARAMETER_TYPE,fnName:n,messageParams:{key:"onAbort",value:typeof d,rule:{type:"Function"}}});if(!(null==(i=e.room.videoManager.cameraTrack)?void 0:i.mediaTrack))throw new a({code:s.INVALID_OPERATION,extraCode:A.INVALID_OPERATION_NEED_VIDEO,fnName:n})}}}function updateValidateRule(e){return{name:"UpdateVirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:{type:{required:!0,type:"string",values:["image","blur"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10}},validate(t,r,n,o){if(!t)return;const{RtcError:i,ErrorCode:a,ErrorCodeDictionary:s}=e.errorModule,{type:A,src:c}=t;if("image"===A&&!c)throw new i({code:a.INVALID_PARAMETER,extraCode:s.INVALID_PARAMETER_REQUIRED,fnName:n,messageParams:{key:"src"}})}}}function stopValidateRule(e){return{name:"StopVirtualBackgroundOptions",required:!1}}var createMediapipeSolutionsWasm=function(){let e="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0;return"undefined"!=typeof __filename&&(e=e||__filename),function(t){const r=void 0!==(t=t||{})?t:{};let n,o;r.ready=new Promise(((e,t)=>{n=e,o=t})),Object.getOwnPropertyDescriptor(r.ready,"_main")||(Object.defineProperty(r.ready,"_main",{configurable:!0,get(){ye("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(r.ready,"_main",{configurable:!0,set(){ye("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(r.ready,"_emscripten_stack_get_end")||(Object.defineProperty(r.ready,"_emscripten_stack_get_end",{configurable:!0,get(){ye("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(r.ready,"_emscripten_stack_get_end",{configurable:!0,set(){ye("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(r.ready,"_emscripten_stack_get_free")||(Object.defineProperty(r.ready,"_emscripten_stack_get_free",{configurable:!0,get(){ye("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(r.ready,"_emscripten_stack_get_free",{configurable:!0,set(){ye("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(r.ready,"_emscripten_stack_init")||(Object.defineProperty(r.ready,"_emscripten_stack_init",{configurable:!0,get(){ye("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(r.ready,"_emscripten_stack_init",{configurable:!0,set(){ye("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(r.ready,"_stackSave")||(Object.defineProperty(r.ready,"_stackSave",{configurable:!0,get(){ye("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(r.ready,"_stackSave",{configurable:!0,set(){ye("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(r.ready,"_stackRestore")||(Object.defineProperty(r.ready,"_stackRestore",{configurable:!0,get(){ye("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(r.ready,"_stackRestore",{configurable:!0,set(){ye("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(r.ready,"_stackAlloc")||(Object.defineProperty(r.ready,"_stackAlloc",{configurable:!0,get(){ye("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(r.ready,"_stackAlloc",{configurable:!0,set(){ye("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(r.ready,"___wasm_call_ctors")||(Object.defineProperty(r.ready,"___wasm_call_ctors",{configurable:!0,get(){ye("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(r.ready,"___wasm_call_ctors",{configurable:!0,set(){ye("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(r.ready,"_fflush")||(Object.defineProperty(r.ready,"_fflush",{configurable:!0,get(){ye("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(r.ready,"_fflush",{configurable:!0,set(){ye("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(r.ready,"___errno_location")||(Object.defineProperty(r.ready,"___errno_location",{configurable:!0,get(){ye("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(r.ready,"___errno_location",{configurable:!0,set(){ye("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(r.ready,"_malloc")||(Object.defineProperty(r.ready,"_malloc",{configurable:!0,get(){ye("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(r.ready,"_malloc",{configurable:!0,set(){ye("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(r.ready,"_free")||(Object.defineProperty(r.ready,"_free",{configurable:!0,get(){ye("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(r.ready,"_free",{configurable:!0,set(){ye("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(r.ready,"_setThrew")||(Object.defineProperty(r.ready,"_setThrew",{configurable:!0,get(){ye("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(r.ready,"_setThrew",{configurable:!0,set(){ye("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(r.ready,"___cxa_is_pointer_type")||(Object.defineProperty(r.ready,"___cxa_is_pointer_type",{configurable:!0,get(){ye("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(r.ready,"___cxa_is_pointer_type",{configurable:!0,set(){ye("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(r.ready,"___cxa_can_catch")||(Object.defineProperty(r.ready,"___cxa_can_catch",{configurable:!0,get(){ye("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(r.ready,"___cxa_can_catch",{configurable:!0,set(){ye("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(r.ready,"_saveSetjmp")||(Object.defineProperty(r.ready,"_saveSetjmp",{configurable:!0,get(){ye("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(r.ready,"_saveSetjmp",{configurable:!0,set(){ye("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(r.ready,"_memalign")||(Object.defineProperty(r.ready,"_memalign",{configurable:!0,get(){ye("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(r.ready,"_memalign",{configurable:!0,set(){ye("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(r.ready,"_emscripten_main_thread_process_queued_calls")||(Object.defineProperty(r.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,get(){ye("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(r.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,set(){ye("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(r.ready,"_emscripten_webgl_make_context_current")||(Object.defineProperty(r.ready,"_emscripten_webgl_make_context_current",{configurable:!0,get(){ye("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(r.ready,"_emscripten_webgl_make_context_current",{configurable:!0,set(){ye("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(r.ready,"_emscripten_webgl_get_current_context")||(Object.defineProperty(r.ready,"_emscripten_webgl_get_current_context",{configurable:!0,get(){ye("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(r.ready,"_emscripten_webgl_get_current_context",{configurable:!0,set(){ye("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(r.ready,"__get_tzname")||(Object.defineProperty(r.ready,"__get_tzname",{configurable:!0,get(){ye("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(r.ready,"__get_tzname",{configurable:!0,set(){ye("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(r.ready,"__get_daylight")||(Object.defineProperty(r.ready,"__get_daylight",{configurable:!0,get(){ye("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(r.ready,"__get_daylight",{configurable:!0,set(){ye("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(r.ready,"__get_timezone")||(Object.defineProperty(r.ready,"__get_timezone",{configurable:!0,get(){ye("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(r.ready,"__get_timezone",{configurable:!0,set(){ye("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(r.ready,"_emscripten_builtin_malloc")||(Object.defineProperty(r.ready,"_emscripten_builtin_malloc",{configurable:!0,get(){ye("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(r.ready,"_emscripten_builtin_malloc",{configurable:!0,set(){ye("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(r.ready,"_emscripten_builtin_free")||(Object.defineProperty(r.ready,"_emscripten_builtin_free",{configurable:!0,get(){ye("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(r.ready,"_emscripten_builtin_free",{configurable:!0,set(){ye("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(r.ready,"_emscripten_builtin_memalign")||(Object.defineProperty(r.ready,"_emscripten_builtin_memalign",{configurable:!0,get(){ye("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(r.ready,"_emscripten_builtin_memalign",{configurable:!0,set(){ye("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(r.ready,"___getTypeName")||(Object.defineProperty(r.ready,"___getTypeName",{configurable:!0,get(){ye("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(r.ready,"___getTypeName",{configurable:!0,set(){ye("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(r.ready,"___embind_register_native_and_builtin_types")||(Object.defineProperty(r.ready,"___embind_register_native_and_builtin_types",{configurable:!0,get(){ye("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(r.ready,"___embind_register_native_and_builtin_types",{configurable:!0,set(){ye("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(r.ready,"onRuntimeInitialized")||(Object.defineProperty(r.ready,"onRuntimeInitialized",{configurable:!0,get(){ye("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(r.ready,"onRuntimeInitialized",{configurable:!0,set(){ye("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 i,a={};for(i in r)r.hasOwnProperty(i)&&(a[i]=r[i]);let s=[],A="./this.program",c=function(e,t){throw t};const g="object"==typeof window,d="function"==typeof importScripts,u="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,l=!g&&!u&&!d;if(r.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 E,f,p,h,I="";if(!g&&!d)throw new Error("environment detection error");if(d?I=self.location.href:"undefined"!=typeof document&&document.currentScript&&(I=document.currentScript.src),e&&(I=e),I=0!==I.indexOf("blob:")?I.substr(0,I.lastIndexOf("/")+1):"","object"!=typeof window&&"function"!=typeof importScripts)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?)");E=function(e){const t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},d&&(p=function(e){const t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),f=function(e,t,r){const n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=function(){200==n.status||0==n.status&&n.response?t(n.response):r()},n.onerror=r,n.send(null)},h=function(e){document.title=e};let m=r.print||console.log.bind(console),C=r.printErr||console.warn.bind(console);for(i in a)a.hasOwnProperty(i)&&(r[i]=a[i]);function y(e){y.shown||(y.shown={}),y.shown[e]||(y.shown[e]=1,C(e))}a=null,r.arguments&&(s=r.arguments),Object.getOwnPropertyDescriptor(r,"arguments")||Object.defineProperty(r,"arguments",{configurable:!0,get(){ye("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)")}}),r.thisProgram&&(A=r.thisProgram),Object.getOwnPropertyDescriptor(r,"thisProgram")||Object.defineProperty(r,"thisProgram",{configurable:!0,get(){ye("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)")}}),r.quit&&(c=r.quit),Object.getOwnPropertyDescriptor(r,"quit")||Object.defineProperty(r,"quit",{configurable:!0,get(){ye("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)")}}),T(void 0===r.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),T(void 0===r.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),T(void 0===r.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),T(void 0===r.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),T(void 0===r.read,"Module.read option was removed (modify read_ in JS)"),T(void 0===r.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),T(void 0===r.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),T(void 0===r.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),T(void 0===r.TOTAL_MEMORY,"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Object.getOwnPropertyDescriptor(r,"read")||Object.defineProperty(r,"read",{configurable:!0,get(){ye("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(r,"readAsync")||Object.defineProperty(r,"readAsync",{configurable:!0,get(){ye("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(r,"readBinary")||Object.defineProperty(r,"readBinary",{configurable:!0,get(){ye("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(r,"setWindowTitle")||Object.defineProperty(r,"setWindowTitle",{configurable:!0,get(){ye("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)")}}),T(!l,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");let _=0;const w=function(e){_=e};let B;r.wasmBinary&&(B=r.wasmBinary),Object.getOwnPropertyDescriptor(r,"wasmBinary")||Object.defineProperty(r,"wasmBinary",{configurable:!0,get(){ye("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)")}});const D=r.noExitRuntime||!0;let O;Object.getOwnPropertyDescriptor(r,"noExitRuntime")||Object.defineProperty(r,"noExitRuntime",{configurable:!0,get(){ye("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)")}}),"object"!=typeof WebAssembly&&ye("no native wasm support detected");let b,Q=!1;function T(e,t){e||ye(`Assertion failed: ${t}`)}const v="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function P(e,t,r){const n=t+r;let o=t;for(;e[o]&&!(o>=n);)++o;if(o-t>16&&e.subarray&&v)return v.decode(e.subarray(t,o));let i="";for(;t<o;){let r=e[t++];if(!(128&r)){i+=String.fromCharCode(r);continue}const n=63&e[t++];if(192==(224&r)){i+=String.fromCharCode((31&r)<<6|n);continue}const o=63&e[t++];if(224==(240&r)?r=(15&r)<<12|n<<6|o:(240!=(248&r)&&y(`Invalid UTF-8 leading byte 0x${r.toString(16)} encountered when deserializing a UTF-8 string in wasm memory to a JS string!`),r=(7&r)<<18|n<<12|o<<6|63&e[t++]),r<65536)i+=String.fromCharCode(r);else{const e=r-65536;i+=String.fromCharCode(55296|e>>10,56320|1023&e)}}return i}function R(e,t){return e?P(W,e,t):""}function M(e,t,r,n){if(!(n>0))return 0;const o=r,i=r+n-1;for(let n=0;n<e.length;++n){let o=e.charCodeAt(n);if(o>=55296&&o<=57343){o=65536+((1023&o)<<10)|1023&e.charCodeAt(++n)}if(o<=127){if(r>=i)break;t[r++]=o}else if(o<=2047){if(r+1>=i)break;t[r++]=192|o>>6,t[r++]=128|63&o}else if(o<=65535){if(r+2>=i)break;t[r++]=224|o>>12,t[r++]=128|o>>6&63,t[r++]=128|63&o}else{if(r+3>=i)break;o>=2097152&&y(`Invalid Unicode code point 0x${o.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|o>>18,t[r++]=128|o>>12&63,t[r++]=128|o>>6&63,t[r++]=128|63&o}}return t[r]=0,r-o}function S(e,t,r){return T("number"==typeof r,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),M(e,W,t,r)}function F(e){let t=0;for(let r=0;r<e.length;++r){let n=e.charCodeAt(r);n>=55296&&n<=57343&&(n=65536+((1023&n)<<10)|1023&e.charCodeAt(++r)),n<=127?++t:t+=n<=2047?2:n<=65535?3:4}return t}const N="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function k(e,t){T(e%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");let r=e,n=r>>1;const o=n+t/2;for(;!(n>=o)&&$[n];)++n;if(r=n<<1,r-e>32&&N)return N.decode(W.subarray(e,r));let i="";for(let r=0;!(r>=t/2);++r){const t=z[e+2*r>>1];if(0==t)break;i+=String.fromCharCode(t)}return i}function x(e,t,r){if(T(t%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),T("number"==typeof r,"stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),void 0===r&&(r=2147483647),r<2)return 0;const n=t,o=(r-=2)<2*e.length?r/2:e.length;for(let r=0;r<o;++r){const n=e.charCodeAt(r);z[t>>1]=n,t+=2}return z[t>>1]=0,t-n}function U(e){return 2*e.length}function j(e,t){T(e%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");let r=0,n="";for(;!(r>=t/4);){const t=K[e+4*r>>2];if(0==t)break;if(++r,t>=65536){const e=t-65536;n+=String.fromCharCode(55296|e>>10,56320|1023&e)}else n+=String.fromCharCode(t)}return n}function L(e,t,r){if(T(t%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),T("number"==typeof r,"stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),void 0===r&&(r=2147483647),r<4)return 0;const n=t,o=n+r-4;for(let r=0;r<e.length;++r){let n=e.charCodeAt(r);if(n>=55296&&n<=57343){n=65536+((1023&n)<<10)|1023&e.charCodeAt(++r)}if(K[t>>2]=n,(t+=4)+4>o)break}return K[t>>2]=0,t-n}function H(e){let t=0;for(let r=0;r<e.length;++r){const n=e.charCodeAt(r);n>=55296&&n<=57343&&++r,t+=4}return t}function G(e){const t=F(e)+1,r=un(t);return r&&M(e,V,r,t),r}function Y(e,t){T(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),V.set(e,t)}let X,V,W,z,$,K,J,Z,q;function ee(e){X=e,r.HEAP8=V=new Int8Array(e),r.HEAP16=z=new Int16Array(e),r.HEAP32=K=new Int32Array(e),r.HEAPU8=W=new Uint8Array(e),r.HEAPU16=$=new Uint16Array(e),r.HEAPU32=J=new Uint32Array(e),r.HEAPF32=Z=new Float32Array(e),r.HEAPF64=q=new Float64Array(e)}const te=5242880;r.TOTAL_STACK&&T(te===r.TOTAL_STACK,"the stack size can no longer be determined at runtime");const re=r.INITIAL_MEMORY||16777216;let ne;function oe(){const e=fn();T(!(3&e)),J[1+(e>>2)]=34821223,J[2+(e>>2)]=2310721022,K[0]=1668509029}function ie(){if(Q)return;const e=fn(),t=J[1+(e>>2)],r=J[2+(e>>2)];34821223==t&&2310721022==r||ye(`Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x${r.toString(16)} ${t.toString(16)}`),1668509029!==K[0]&&ye("Runtime error: The application has corrupted its heap memory area (address zero)!")}Object.getOwnPropertyDescriptor(r,"INITIAL_MEMORY")||Object.defineProperty(r,"INITIAL_MEMORY",{configurable:!0,get(){ye("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)")}}),T(re>=te,`INITIAL_MEMORY should be larger than TOTAL_STACK, was ${re}! (TOTAL_STACK=5242880)`),T("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&void 0!==Int32Array.prototype.subarray&&void 0!==Int32Array.prototype.set,"JS engine does not provide full typed array support"),T(!r.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),T(16777216==re,"Detected runtime INITIAL_MEMORY setting. Use -s IMPORTED_MEMORY to define wasmMemory dynamically"),function(){const e=new Int16Array(1),t=new Int8Array(e.buffer);if(e[0]=25459,115!==t[0]||99!==t[1])throw"Runtime error: expected the system to be little-endian! (Run with -s SUPPORT_BIG_ENDIAN=1 to bypass)"}();const ae=[],se=[],Ae=[],ce=[];let ge=!1,de=!1;const ue=0;function le(){return D||ue>0}T(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),T(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),T(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),T(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 Ee=0,fe=null,pe=null;const he={};function Ie(e){const t=e;for(;;){if(!he[e])return e;e=t+Math.random()}}function me(e){Ee++,r.monitorRunDependencies&&r.monitorRunDependencies(Ee),e?(T(!he[e]),he[e]=1,null===fe&&"undefined"!=typeof setInterval&&(fe=setInterval((()=>{if(Q)return clearInterval(fe),void(fe=null);let e=!1;for(const t in he)e||(e=!0,C("still waiting on run dependencies:")),C(`dependency: ${t}`);e&&C("(end of list)")}),1e4))):C("warning: run dependency added without ID")}function Ce(e){if(Ee--,r.monitorRunDependencies&&r.monitorRunDependencies(Ee),e?(T(he[e]),delete he[e]):C("warning: run dependency removed without ID"),0==Ee&&(null!==fe&&(clearInterval(fe),fe=null),pe)){const e=pe;pe=null,e()}}function ye(e){r.onAbort&&r.onAbort(e),C(e+=""),Q=!0,b=1;const t=`abort(${e}) at ${function(){let e=function(){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()}();r.extraStackTrace&&(e+=`\n${r.extraStackTrace()}`);return Ne(e)}()}`;e=t;const n=new WebAssembly.RuntimeError(e);throw o(n),n}r.preloadedImages={},r.preloadedAudios={};function _e(e,t){return function(){const n=e;let o=t;return t||(o=r.asm),T(ge,`native function \`${n}\` called before runtime initialization`),T(!de,`native function \`${n}\` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)`),o[e]||T(o[e],`exported native function \`${n}\` not found`),o[e].apply(null,arguments)}}let we;var Be;let De,Oe;we="selfie_segmentation_solution_simd_wasm_bin.wasm",we.startsWith("data:application/octet-stream;base64,")||(Be=we,we=r.locateFile?r.locateFile(Be,I):I+Be);const be={460656(){let e=!0;if(e){const t=Rr;if("function"!=typeof t)return void("undefined"!=typeof console&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.'));Rr=function(e){if(0==e){if(r&&r.canvas)return r.canvas;if(r&&r.canvasCssSelector)return t(r.canvasCssSelector);"undefined"!=typeof console&&console.warn("Module properties canvas and canvasCssSelector not found during WebGL context creation.")}return t(e)},e=!1}},461441:()=>"undefined"!=typeof wasmOffsetConverter};function Qe(e,t){if(Se.mainLoop.timingMode=e,Se.mainLoop.timingValue=t,!Se.mainLoop.func)return C("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(Se.mainLoop.running||(Se.mainLoop.running=!0),0==e)Se.mainLoop.scheduler=function(){const e=0|Math.max(0,Se.mainLoop.tickStartTime+t-Te());setTimeout(Se.mainLoop.runner,e)},Se.mainLoop.method="timeout";else if(1==e)Se.mainLoop.scheduler=function(){Se.requestAnimationFrame(Se.mainLoop.runner)},Se.mainLoop.method="rAF";else if(2==e){if("undefined"==typeof setImmediate){const e=[],t="setimmediate";addEventListener("message",(function(r){r.data!==t&&r.data.target!==t||(r.stopPropagation(),e.shift()())}),!0),setImmediate=function(n){e.push(n),d?(void 0===r.setImmediates&&(r.setImmediates=[]),r.setImmediates.push(n),postMessage({target:t})):postMessage(t,"*")}}Se.mainLoop.scheduler=function(){setImmediate(Se.mainLoop.runner)},Se.mainLoop.method="immediate"}return 0}let Te;function ve(e){!function(e,t){if(b=e,function(){const e=m,t=C;let n=!1;m=C=function(e){n=!0};try{const e=r._fflush;e&&e(0),["stdout","stderr"].forEach((e=>{const t=Je.analyzePath(`/dev/${e}`);if(!t)return;const r=t.object,{rdev:o}=r,i=Ve.ttys[o];i&&i.output&&i.output.length&&(n=!0)}))}catch(e){}m=e,C=t,n&&y("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.")}(),le()){if(!t){const t=`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)`;o(t),C(t)}}else ie(),de=!0;Tn(e)}(e)}function Pe(e,t,n,o,i){T(!Se.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."),Se.mainLoop.func=e,Se.mainLoop.arg=o;const a=Se.mainLoop.currentlyRunningMainloop;function s(){return!(a<Se.mainLoop.currentlyRunningMainloop)||(function(){if(!le())try{ve(b)}catch(e){if(e instanceof bn)return;throw e}}(),!1)}if(Se.mainLoop.running=!1,Se.mainLoop.runner=function(){if(!Q)if(Se.mainLoop.queue.length>0){const e=Date.now(),t=Se.mainLoop.queue.shift();if(t.func(t.arg),Se.mainLoop.remainingBlockers){const e=Se.mainLoop.remainingBlockers;let r=e%1==0?e-1:Math.floor(e);t.counted?Se.mainLoop.remainingBlockers=r:(r+=.5,Se.mainLoop.remainingBlockers=(8*e+r)/9)}if(m(`main loop blocker "${t.name}" took ${Date.now()-e} ms`),Se.mainLoop.updateStatus(),!s())return;setTimeout(Se.mainLoop.runner,0)}else s()&&(Se.mainLoop.currentFrameNumber=Se.mainLoop.currentFrameNumber+1|0,1==Se.mainLoop.timingMode&&Se.mainLoop.timingValue>1&&Se.mainLoop.currentFrameNumber%Se.mainLoop.timingValue!=0?Se.mainLoop.scheduler():(0==Se.mainLoop.timingMode&&(Se.mainLoop.tickStartTime=Te()),Qr.newRenderingFrameStarted(),void 0!==Qr&&Qr.currentContext&&!Qr.currentContextIsProxied&&!Qr.currentContext.attributes.explicitSwapControl&&Qr.currentContext.GLctx.commit&&Qr.currentContext.GLctx.commit(),"timeout"===Se.mainLoop.method&&r.ctx&&(y("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!"),Se.mainLoop.method=""),Se.mainLoop.runIter(e),ie(),s()&&("object"==typeof SDL&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Se.mainLoop.scheduler())))},i||(t&&t>0?Qe(0,1e3/t):Qe(1,1),Se.mainLoop.scheduler()),n)throw"unwind"}function Re(e,t){if(Q)C("user callback triggered after application aborted. Ignoring.");else if(t)e();else try{e()}catch(e){if(e instanceof bn)return;if("unwind"!==e)throw e&&"object"==typeof e&&e.stack&&C(`exception thrown: ${[e,e.stack]}`),e}}function Me(e,t){return setTimeout((()=>{Re(e)}),t)}Te=u?function(){const e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:function(){return performance.now()};var Se={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause(){Se.mainLoop.scheduler=null,Se.mainLoop.currentlyRunningMainloop++},resume(){Se.mainLoop.currentlyRunningMainloop++;const{timingMode:e}=Se.mainLoop,{timingValue:t}=Se.mainLoop,{func:r}=Se.mainLoop;Se.mainLoop.func=null,Pe(r,0,!1,Se.mainLoop.arg,!0),Qe(e,t),Se.mainLoop.scheduler()},updateStatus(){if(r.setStatus){const e=r.statusMessage||"Please wait...",t=Se.mainLoop.remainingBlockers,n=Se.mainLoop.expectedBlockers;t?t<n?r.setStatus(`${e} (${n-t}/${n})`):r.setStatus(e):r.setStatus("")}},runIter(e){if(!Q){if(r.preMainLoop){if(!1===r.preMainLoop())return}Re(e),r.postMainLoop&&r.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init(){if(r.preloadPlugins||(r.preloadPlugins=[]),Se.initted)return;Se.initted=!0;try{new Blob,Se.hasBlobConstructor=!0}catch(e){Se.hasBlobConstructor=!1,m("warning: no blob constructor, cannot create blobs with mimetypes")}Se.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:Se.hasBlobConstructor?null:m("warning: no BlobBuilder"),Se.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,r.noImageDecoding||void 0!==Se.URLObject||(m("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),r.noImageDecoding=!0);const e={canHandle:function(e){return!r.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(e)},handle:function(e,t,n,o){let i=null;if(Se.hasBlobConstructor)try{i=new Blob([e],{type:Se.getMimetype(t)}),i.size!==e.length&&(i=new Blob([new Uint8Array(e).buffer],{type:Se.getMimetype(t)}))}catch(e){y(`Blob constructor present but fails: ${e}; falling back to blob builder`)}if(!i){const t=new Se.BlobBuilder;t.append(new Uint8Array(e).buffer),i=t.getBlob()}const a=Se.URLObject.createObjectURL(i);T("string"==typeof a,"createObjectURL must return a url as a string");const s=new Image;s.onload=function(){T(s.complete,`Image ${t} could not be decoded`);const o=document.createElement("canvas");o.width=s.width,o.height=s.height;o.getContext("2d").drawImage(s,0,0),r.preloadedImages[t]=o,Se.URLObject.revokeObjectURL(a),n&&n(e)},s.onerror=function(e){m(`Image ${a} could not be decoded`),o&&o()},s.src=a}};r.preloadPlugins.push(e);const t={};t.canHandle=function(e){return!r.noAudioDecoding&&e.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},t.handle=function(e,t,n,o){let i=!1;function a(o){i||(i=!0,r.preloadedAudios[t]=o,n&&n(e))}function s(){i||(i=!0,r.preloadedAudios[t]=new Audio,o&&o())}if(!Se.hasBlobConstructor)return s();{try{var A=new Blob([e],{type:Se.getMimetype(t)})}catch(e){return s()}const r=Se.URLObject.createObjectURL(A);T("string"==typeof r,"createObjectURL must return a url as a string");const n=new Audio;n.addEventListener("canplaythrough",(()=>{a(n)}),!1),n.onerror=function(r){i||(m(`warning: browser could not fully decode audio ${t}, trying slower base64 approach`),n.src=`data:audio/x-${t.substr(-3)};base64,${function(e){const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let r="",n=0,o=0;for(let i=0;i<e.length;i++)for(n=n<<8|e[i],o+=8;o>=6;){const e=n>>o-6&63;o-=6,r+=t[e]}return 2==o?(r+=t[(3&n)<<4],r+="=="):4==o&&(r+=t[(15&n)<<2],r+="="),r}(e)}`,a(n))},n.src=r,Me((()=>{a(n)}),1e4)}},r.preloadPlugins.push(t);const{canvas:n}=r},createContext(e,t,n,o){if(t&&r.ctx&&e==r.canvas)return r.ctx;let i,a;if(t){const t={antialias:!1,alpha:!1,majorVersion:"undefined"!=typeof WebGL2RenderingContext?2:1};if(o)for(const e in o)t[e]=o[e];void 0!==Qr&&(a=Qr.createContext(e,t),a&&(i=Qr.getContext(a).GLctx))}else i=e.getContext("2d");return i?(n&&(t||T(void 0===on,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),r.ctx=i,t&&Qr.makeContextCurrent(a),r.useWebGL=t,Se.moduleContextCreatedCallbacks.forEach((e=>{e()})),Se.init()),i):null},destroyContext(e,t,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen(e,t){Se.lockPointer=e,Se.resizeCanvas=t,void 0===Se.lockPointer&&(Se.lockPointer=!0),void 0===Se.resizeCanvas&&(Se.resizeCanvas=!1);const{canvas:n}=r;Se.fullscreenHandlersInstalled||(Se.fullscreenHandlersInstalled=!0);const o=document.createElement("div");n.parentNode.insertBefore(o,n),o.appendChild(n),o.requestFullscreen=o.requestFullscreen||o.mozRequestFullScreen||o.msRequestFullscreen||(o.webkitRequestFullscreen?function(){o.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(o.webkitRequestFullScreen?function(){o.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),o.requestFullscreen()},requestFullScreen(){ye("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen(){if(!Se.isFullscreen)return!1;return(document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){}).apply(document,[]),!0},nextRAF:0,fakeRequestAnimationFrame(e){const t=Date.now();if(0===Se.nextRAF)Se.nextRAF=t+1e3/60;else for(;t+2>=Se.nextRAF;)Se.nextRAF+=1e3/60;const r=Math.max(Se.nextRAF-t,0);setTimeout(e,r)},requestAnimationFrame(e){if("function"==typeof requestAnimationFrame)return void requestAnimationFrame(e);(0,Se.fakeRequestAnimationFrame)(e)},safeSetTimeout:e=>Me(e),safeRequestAnimationFrame:e=>Se.requestAnimationFrame((()=>{Re(e)})),getMimetype:e=>({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=>e.movementX||e.mozMovementX||e.webkitMovementX||0,getMovementY:e=>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(Se.pointerLock)"mousemove"!=e.type&&"mozMovementX"in e?Se.mouseMovementX=Se.mouseMovementY=0:(Se.mouseMovementX=Se.getMovementX(e),Se.mouseMovementY=Se.getMovementY(e)),"undefined"!=typeof SDL?(Se.mouseX=SDL.mouseX+Se.mouseMovementX,Se.mouseY=SDL.mouseY+Se.mouseMovementY):(Se.mouseX+=Se.mouseMovementX,Se.mouseY+=Se.mouseMovementY);else{const t=r.canvas.getBoundingClientRect(),n=r.canvas.width,o=r.canvas.height,i=void 0!==window.scrollX?window.scrollX:window.pageXOffset,a=void 0!==window.scrollY?window.scrollY:window.pageYOffset;if(T(void 0!==i&&void 0!==a,"Unable to retrieve scroll position, mouse positions likely broken."),"touchstart"===e.type||"touchend"===e.type||"touchmove"===e.type){const{touch:r}=e;if(void 0===r)return;let s=r.pageX-(i+t.left),A=r.pageY-(a+t.top);s*=n/t.width,A*=o/t.height;const c={x:s,y:A};if("touchstart"===e.type)Se.lastTouches[r.identifier]=c,Se.touches[r.identifier]=c;else if("touchend"===e.type||"touchmove"===e.type){let e=Se.touches[r.identifier];e||(e=c),Se.lastTouches[r.identifier]=e,Se.touches[r.identifier]=c}return}let s=e.pageX-(i+t.left),A=e.pageY-(a+t.top);s*=n/t.width,A*=o/t.height,Se.mouseMovementX=s-Se.mouseX,Se.mouseMovementY=A-Se.mouseY,Se.mouseX=s,Se.mouseY=A}},resizeListeners:[],updateResizeListeners(){const{canvas:e}=r;Se.resizeListeners.forEach((t=>{t(e.width,e.height)}))},setCanvasSize(e,t,n){const{canvas:o}=r;Se.updateCanvasDimensions(o,e,t),n||Se.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){if("undefined"!=typeof SDL){let e=J[SDL.screen>>2];e|=8388608,K[SDL.screen>>2]=e}Se.updateCanvasDimensions(r.canvas),Se.updateResizeListeners()},setWindowedCanvasSize(){if("undefined"!=typeof SDL){let e=J[SDL.screen>>2];e&=-8388609,K[SDL.screen>>2]=e}Se.updateCanvasDimensions(r.canvas),Se.updateResizeListeners()},updateCanvasDimensions(e,t,n){t&&n?(e.widthNative=t,e.heightNative=n):(t=e.widthNative,n=e.heightNative);let o=t,i=n;if(r.forcedAspectRatio&&r.forcedAspectRatio>0&&(o/i<r.forcedAspectRatio?o=Math.round(i*r.forcedAspectRatio):i=Math.round(o/r.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e.parentNode&&"undefined"!=typeof screen){const e=Math.min(screen.width/o,screen.height/i);o=Math.round(o*e),i=Math.round(i*e)}Se.resizeCanvas?(e.width!=o&&(e.width=o),e.height!=i&&(e.height=i),void 0!==e.style&&(e.style.removeProperty("width"),e.style.removeProperty("height"))):(e.width!=t&&(e.width=t),e.height!=n&&(e.height=n),void 0!==e.style&&(o!=t||i!=n?(e.style.setProperty("width",`${o}px`,"important"),e.style.setProperty("height",`${i}px`,"important")):(e.style.removeProperty("width"),e.style.removeProperty("height"))))}};function Fe(e){for(;e.length>0;){const t=e.shift();if("function"==typeof t){t(r);continue}const{func:n}=t;"number"==typeof n?void 0===t.arg?ne.get(n)():ne.get(n)(t.arg):n(void 0===t.arg?null:t.arg)}}function Ne(e){return e.replace(/\b_Z[\w\d_]+/g,(e=>{const t=(r=e,y("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),r);var r;return e===t?e:`${t} [${e}]`}))}function ke(e){this.excPtr=e,this.ptr=e-16,this.set_type=function(e){K[this.ptr+4>>2]=e},this.get_type=function(){return K[this.ptr+4>>2]},this.set_destructor=function(e){K[this.ptr+8>>2]=e},this.get_destructor=function(){return K[this.ptr+8>>2]},this.set_refcount=function(e){K[this.ptr>>2]=e},this.set_caught=function(e){e=e?1:0,V[this.ptr+12|0]=e},this.get_caught=function(){return 0!=V[this.ptr+12|0]},this.set_rethrown=function(e){e=e?1:0,V[this.ptr+13|0]=e},this.get_rethrown=function(){return 0!=V[this.ptr+13|0]},this.init=function(e,t){this.set_type(e),this.set_destructor(t),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){const e=K[this.ptr>>2];K[this.ptr>>2]=e+1},this.release_ref=function(){const e=K[this.ptr>>2];return K[this.ptr>>2]=e-1,T(e>0),1===e}}function xe(e){this.free=function(){dn(this.ptr),this.ptr=0},this.set_base_ptr=function(e){K[this.ptr>>2]=e},this.get_base_ptr=function(){return K[this.ptr>>2]},this.set_adjusted_ptr=function(e){K[this.ptr+4>>2]=e},this.get_adjusted_ptr_addr=function(){return this.ptr+4},this.get_adjusted_ptr=function(){return K[this.ptr+4>>2]},this.get_exception_ptr=function(){if(Bn(this.get_exception_info().get_type()))return K[this.get_base_ptr()>>2];const e=this.get_adjusted_ptr();return 0!==e?e:this.get_base_ptr()},this.get_exception_info=function(){return new ke(this.get_base_ptr())},void 0===e?(this.ptr=un(8),this.set_adjusted_ptr(0)):this.ptr=e}const Ue=[];let je=0;function Le(e){try{return dn(new ke(e).ptr)}catch(e){C(`exception during cxa_free_exception: ${e}`)}}function He(e){return K[ln()>>2]=e,e}var Ge={splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray(e,t){let r=0;for(let t=e.length-1;t>=0;t--){const n=e[t];"."===n?e.splice(t,1):".."===n?(e.splice(t,1),r++):r&&(e.splice(t,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize(e){const t="/"===e.charAt(0),r="/"===e.substr(-1);return(e=Ge.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname(e){const t=Ge.splitPath(e),r=t[0];let n=t[1];return r||n?(n&&(n=n.substr(0,n.length-1)),r+n):"."},basename(e){if("/"===e)return"/";const t=(e=(e=Ge.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},extname:e=>Ge.splitPath(e)[3],join(){const e=Array.prototype.slice.call(arguments,0);return Ge.normalize(e.join("/"))},join2:(e,t)=>Ge.normalize(`${e}/${t}`)};function Ye(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){const e=new Uint8Array(1);return function(){return crypto.getRandomValues(e),e[0]}}if(u)try{const e=__require("crypto");return function(){return e.randomBytes(1)[0]}}catch(e){}return function(){ye("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 Xe={resolve(){let e="",t=!1;for(let r=arguments.length-1;r>=-1&&!t;r--){const n=r>=0?arguments[r]:Je.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=`${n}/${e}`,t="/"===n.charAt(0)}return e=Ge.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"),(t?"/":"")+e||"."},relative(e,t){function r(e){let t=0;for(;t<e.length&&""===e[t];t++);let r=e.length-1;for(;r>=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=Xe.resolve(e).substr(1),t=Xe.resolve(t).substr(1);const n=r(e.split("/")),o=r(t.split("/")),i=Math.min(n.length,o.length);let a=i;for(var s=0;s<i;s++)if(n[s]!==o[s]){a=s;break}let A=[];for(s=a;s<n.length;s++)A.push("..");return A=A.concat(o.slice(a)),A.join("/")}},Ve={ttys:[],init(){},shutdown(){},register(e,t){Ve.ttys[e]={input:[],output:[],ops:t},Je.registerDevice(e,Ve.stream_ops)},stream_ops:{open(e){const t=Ve.ttys[e.node.rdev];if(!t)throw new Je.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,n,o){if(!e.tty||!e.tty.ops.get_char)throw new Je.ErrnoError(60);let i=0;for(let o=0;o<n;o++){var a;try{a=e.tty.ops.get_char(e.tty)}catch(e){throw new Je.ErrnoError(29)}if(void 0===a&&0===i)throw new Je.ErrnoError(6);if(null==a)break;i++,t[r+o]=a}return i&&(e.node.timestamp=Date.now()),i},write(e,t,r,n,o){if(!e.tty||!e.tty.ops.put_char)throw new Je.ErrnoError(60);try{for(var i=0;i<n;i++)e.tty.ops.put_char(e.tty,t[r+i])}catch(e){throw new Je.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),i}},default_tty_ops:{get_char(e){if(!e.input.length){let t=null;if(u){const e=256,r=Buffer.alloc(e);let n=0;try{n=undefined.readSync(process.stdin.fd,r,0,e,null)}catch(e){if(!e.toString().includes("EOF"))throw e;n=0}t=n>0?r.slice(0,n).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?(t=window.prompt("Input: "),null!==t&&(t+="\n")):"function"==typeof readline&&(t=readline(),null!==t&&(t+="\n"));if(!t)return null;e.input=cn(t,!0)}return e.input.shift()},put_char(e,t){null===t||10===t?(m(P(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush(e){e.output&&e.output.length>0&&(m(P(e.output,0)),e.output=[])}},default_tty1_ops:{put_char(e,t){null===t||10===t?(C(P(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush(e){e.output&&e.output.length>0&&(C(P(e.output,0)),e.output=[])}}};function We(e){e=function(e,t){return T(t,"alignment argument is required"),Math.ceil(e/t)*t}(e,65536);const t=Dn(65536,e);return t?(function(e,t){W.fill(0,e,e+t)}(t,e),t):0}var ze={ops_table:null,mount:e=>ze.createNode(null,"/",16895,0),createNode(e,t,r,n){if(Je.isBlkdev(r)||Je.isFIFO(r))throw new Je.ErrnoError(63);ze.ops_table||(ze.ops_table={dir:{node:{getattr:ze.node_ops.getattr,setattr:ze.node_ops.setattr,lookup:ze.node_ops.lookup,mknod:ze.node_ops.mknod,rename:ze.node_ops.rename,unlink:ze.node_ops.unlink,rmdir:ze.node_ops.rmdir,readdir:ze.node_ops.readdir,symlink:ze.node_ops.symlink},stream:{llseek:ze.stream_ops.llseek}},file:{node:{getattr:ze.node_ops.getattr,setattr:ze.node_ops.setattr},stream:{llseek:ze.stream_ops.llseek,read:ze.stream_ops.read,write:ze.stream_ops.write,allocate:ze.stream_ops.allocate,mmap:ze.stream_ops.mmap,msync:ze.stream_ops.msync}},link:{node:{getattr:ze.node_ops.getattr,setattr:ze.node_ops.setattr,readlink:ze.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ze.node_ops.getattr,setattr:ze.node_ops.setattr},stream:Je.chrdev_stream_ops}});const o=Je.createNode(e,t,r,n);return Je.isDir(o.mode)?(o.node_ops=ze.ops_table.dir.node,o.stream_ops=ze.ops_table.dir.stream,o.contents={}):Je.isFile(o.mode)?(o.node_ops=ze.ops_table.file.node,o.stream_ops=ze.ops_table.file.stream,o.usedBytes=0,o.contents=null):Je.isLink(o.mode)?(o.node_ops=ze.ops_table.link.node,o.stream_ops=ze.ops_table.link.stream):Je.isChrdev(o.mode)&&(o.node_ops=ze.ops_table.chrdev.node,o.stream_ops=ze.ops_table.chrdev.stream),o.timestamp=Date.now(),e&&(e.contents[t]=o,e.timestamp=o.timestamp),o},getFileDataAsTypedArray:e=>e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0),expandFileStorage(e,t){const r=e.contents?e.contents.length:0;if(r>=t)return;t=Math.max(t,r*(r<1048576?2:1.125)>>>0),0!=r&&(t=Math.max(t,256));const n=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)},resizeFileStorage(e,t){if(e.usedBytes!=t)if(0==t)e.contents=null,e.usedBytes=0;else{const 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){const t={};return t.dev=Je.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,Je.isDir(e.mode)?t.size=4096:Je.isFile(e.mode)?t.size=e.usedBytes:Je.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){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&ze.resizeFileStorage(e,t.size)},lookup(e,t){throw Je.genericErrors[44]},mknod:(e,t,r,n)=>ze.createNode(e,t,r,n),rename(e,t,r){if(Je.isDir(e.mode)){let e;try{e=Je.lookupNode(t,r)}catch(e){}if(e)for(const t in e.contents)throw new Je.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){const r=Je.lookupNode(e,t);for(const e in r.contents)throw new Je.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir(e){const t=[".",".."];for(const r in e.contents)e.contents.hasOwnProperty(r)&&t.push(r);return t},symlink(e,t,r){const n=ze.createNode(e,t,41471,0);return n.link=r,n},readlink(e){if(!Je.isLink(e.mode))throw new Je.ErrnoError(28);return e.link}},stream_ops:{read(e,t,r,n,o){const{contents:i}=e.node;if(o>=e.node.usedBytes)return 0;const a=Math.min(e.node.usedBytes-o,n);if(T(a>=0),a>8&&i.subarray)t.set(i.subarray(o,o+a),r);else for(let e=0;e<a;e++)t[r+e]=i[o+e];return a},write(e,t,r,n,o,i){if(T(!(t instanceof ArrayBuffer)),t.buffer===V.buffer&&(i=!1),!n)return 0;const{node:a}=e;if(a.timestamp=Date.now(),t.subarray&&(!a.contents||a.contents.subarray)){if(i)return T(0===o,"canOwn must imply no weird position inside the file"),a.contents=t.subarray(r,r+n),a.usedBytes=n,n;if(0===a.usedBytes&&0===o)return a.contents=t.slice(r,r+n),a.usedBytes=n,n;if(o+n<=a.usedBytes)return a.contents.set(t.subarray(r,r+n),o),n}if(ze.expandFileStorage(a,o+n),a.contents.subarray&&t.subarray)a.contents.set(t.subarray(r,r+n),o);else for(let e=0;e<n;e++)a.contents[o+e]=t[r+e];return a.usedBytes=Math.max(a.usedBytes,o+n),n},llseek(e,t,r){let n=t;if(1===r?n+=e.position:2===r&&Je.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new Je.ErrnoError(28);return n},allocate(e,t,r){ze.expandFileStorage(e.node,t+r),e.node.usedBytes=Math.max(e.node.usedBytes,t+r)},mmap(e,t,r,n,o,i){if(0!==t)throw new Je.ErrnoError(28);if(!Je.isFile(e.node.mode))throw new Je.ErrnoError(43);let a,s,{contents:A}=e.node;if(2&i||A.buffer!==X){if((n>0||n+r<A.length)&&(A=A.subarray?A.subarray(n,n+r):Array.prototype.slice.call(A,n,n+r)),s=!0,a=We(r),!a)throw new Je.ErrnoError(48);V.set(A,a)}else s=!1,a=A.byteOffset;return{ptr:a,allocated:s}},msync(e,t,r,n,o){if(!Je.isFile(e.node.mode))throw new Je.ErrnoError(43);if(2&o)return 0;ze.stream_ops.write(e,t,0,n,r,!1);return 0}}};const $e={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"},Ke={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 Je={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(t=t||{},!(e=Xe.resolve(Je.cwd(),e)))return{path:"",node:null};const r={follow_mount:!0,recurse_count:0};for(const e in r)void 0===t[e]&&(t[e]=r[e]);if(t.recurse_count>8)throw new Je.ErrnoError(32);const n=Ge.normalizeArray(e.split("/").filter((e=>!!e)),!1);let o=Je.root,i="/";for(let e=0;e<n.length;e++){const r=e===n.length-1;if(r&&t.parent)break;if(o=Je.lookupNode(o,n[e]),i=Ge.join2(i,n[e]),Je.isMountpoint(o)&&(!r||r&&t.follow_mount)&&(o=o.mounted.root),!r||t.follow){let e=0;for(;Je.isLink(o.mode);){const r=Je.readlink(i);i=Xe.resolve(Ge.dirname(i),r);if(o=Je.lookupPath(i,{recurse_count:t.recurse_count}).node,e++>40)throw new Je.ErrnoError(32)}}}return{path:i,node:o}},getPath(e){let t;for(;;){if(Je.isRoot(e)){const 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 e=0;e<t.length;e++)r=(r<<5)-r+t.charCodeAt(e)|0;return(e+r>>>0)%Je.nameTable.length},hashAddNode(e){const t=Je.hashName(e.parent.id,e.name);e.name_next=Je.nameTable[t],Je.nameTable[t]=e},hashRemoveNode(e){const t=Je.hashName(e.parent.id,e.name);if(Je.nameTable[t]===e)Je.nameTable[t]=e.name_next;else{let r=Je.nameTable[t];for(;r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}}},lookupNode(e,t){const r=Je.mayLookup(e);if(r)throw new Je.ErrnoError(r,e);const n=Je.hashName(e.id,t);for(let r=Je.nameTable[n];r;r=r.name_next){const n=r.name;if(r.parent.id===e.id&&n===t)return r}return Je.lookup(e,t)},createNode(e,t,r,n){T("object"==typeof e);const o=new Je.FSNode(e,t,r,n);return Je.hashAddNode(o),o},destroyNode(e){Je.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>!(49152&~e),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags(e){const t=Je.flagModes[e];if(void 0===t)throw new Error(`Unknown file open mode: ${e}`);return t},flagsToPermissionString(e){let t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:(e,t)=>Je.ignorePermissions||(!t.includes("r")||292&e.mode)&&(!t.includes("w")||146&e.mode)&&(!t.includes("x")||73&e.mode)?0:2,mayLookup(e){const t=Je.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate(e,t){try{Je.lookupNode(e,t);return 20}catch(e){}return Je.nodePermissions(e,"wx")},mayDelete(e,t,r){let n;try{n=Je.lookupNode(e,t)}catch(e){return e.errno}const o=Je.nodePermissions(e,"wx");if(o)return o;if(r){if(!Je.isDir(n.mode))return 54;if(Je.isRoot(n)||Je.getPath(n)===Je.cwd())return 10}else if(Je.isDir(n.mode))return 31;return 0},mayOpen:(e,t)=>e?Je.isLink(e.mode)?32:Je.isDir(e.mode)&&("r"!==Je.flagsToPermissionString(t)||512&t)?31:Je.nodePermissions(e,Je.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd(e,t){e=e||0,t=t||Je.MAX_OPEN_FDS;for(let r=e;r<=t;r++)if(!Je.streams[r])return r;throw new Je.ErrnoError(33)},getStream:e=>Je.streams[e],createStream(e,t,r){Je.FSStream||(Je.FSStream=function(){},Je.FSStream.prototype={object:{get(){return this.node},set(e){this.node=e}},isRead:{get(){return 1!=(2097155&this.flags)}},isWrite:{get(){return!!(2097155&this.flags)}},isAppend:{get(){return 1024&this.flags}}});const n=new Je.FSStream;for(const t in e)n[t]=e[t];e=n;const o=Je.nextfd(t,r);return e.fd=o,Je.streams[o]=e,e},closeStream(e){Je.streams[e]=null},chrdev_stream_ops:{open(e){const t=Je.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek(){throw new Je.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice(e,t){Je.devices[e]={stream_ops:t}},getDevice:e=>Je.devices[e],getMounts(e){const t=[],r=[e];for(;r.length;){const e=r.pop();t.push(e),r.push.apply(r,e.mounts)}return t},syncfs(e,t){"function"==typeof e&&(t=e,e=!1),Je.syncFSRequests++,Je.syncFSRequests>1&&C(`warning: ${Je.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);const r=Je.getMounts(Je.root.mount);let n=0;function o(e){return T(Je.syncFSRequests>0),Je.syncFSRequests--,t(e)}function i(e){if(e)return i.errored?void 0:(i.errored=!0,o(e));++n>=r.length&&o(null)}r.forEach((t=>{if(!t.type.syncfs)return i(null);t.type.syncfs(t,e,i)}))},mount(e,t,r){if("string"==typeof e)throw e;const n="/"===r,o=!r;let i;if(n&&Je.root)throw new Je.ErrnoError(10);if(!n&&!o){const e=Je.lookupPath(r,{follow_mount:!1});if(r=e.path,i=e.node,Je.isMountpoint(i))throw new Je.ErrnoError(10);if(!Je.isDir(i.mode))throw new Je.ErrnoError(54)}const a={type:e,opts:t,mountpoint:r,mounts:[]},s=e.mount(a);return s.mount=a,a.root=s,n?Je.root=s:i&&(i.mounted=a,i.mount&&i.mount.mounts.push(a)),s},unmount(e){const t=Je.lookupPath(e,{follow_mount:!1});if(!Je.isMountpoint(t.node))throw new Je.ErrnoError(28);const{node:r}=t,n=r.mounted,o=Je.getMounts(n);Object.keys(Je.nameTable).forEach((e=>{let t=Je.nameTable[e];for(;t;){const e=t.name_next;o.includes(t.mount)&&Je.destroyNode(t),t=e}})),r.mounted=null;const i=r.mount.mounts.indexOf(n);T(-1!==i),r.mount.mounts.splice(i,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod(e,t,r){const n=Je.lookupPath(e,{parent:!0}).node,o=Ge.basename(e);if(!o||"."===o||".."===o)throw new Je.ErrnoError(28);const i=Je.mayCreate(n,o);if(i)throw new Je.ErrnoError(i);if(!n.node_ops.mknod)throw new Je.ErrnoError(63);return n.node_ops.mknod(n,o,t,r)},create:(e,t)=>(t=void 0!==t?t:438,t&=4095,t|=32768,Je.mknod(e,t,0)),mkdir:(e,t)=>(t=void 0!==t?t:511,t&=1023,t|=16384,Je.mknod(e,t,0)),mkdirTree(e,t){const r=e.split("/");let n="";for(let e=0;e<r.length;++e)if(r[e]){n+=`/${r[e]}`;try{Je.mkdir(n,t)}catch(e){if(20!=e.errno)throw e}}},mkdev:(e,t,r)=>(void 0===r&&(r=t,t=438),t|=8192,Je.mknod(e,t,r)),symlink(e,t){if(!Xe.resolve(e))throw new Je.ErrnoError(44);const r=Je.lookupPath(t,{parent:!0}).node;if(!r)throw new Je.ErrnoError(44);const n=Ge.basename(t),o=Je.mayCreate(r,n);if(o)throw new Je.ErrnoError(o);if(!r.node_ops.symlink)throw new Je.ErrnoError(63);return r.node_ops.symlink(r,n,e)},rename(e,t){const r=Ge.dirname(e),n=Ge.dirname(t),o=Ge.basename(e),i=Ge.basename(t);let a,s,A;if(a=Je.lookupPath(e,{parent:!0}),s=a.node,a=Je.lookupPath(t,{parent:!0}),A=a.node,!s||!A)throw new Je.ErrnoError(44);if(s.mount!==A.mount)throw new Je.ErrnoError(75);const c=Je.lookupNode(s,o);let g,d=Xe.relative(e,n);if("."!==d.charAt(0))throw new Je.ErrnoError(28);if(d=Xe.relative(t,r),"."!==d.charAt(0))throw new Je.ErrnoError(55);try{g=Je.lookupNode(A,i)}catch(e){}if(c===g)return;const u=Je.isDir(c.mode);let l=Je.mayDelete(s,o,u);if(l)throw new Je.ErrnoError(l);if(l=g?Je.mayDelete(A,i,u):Je.mayCreate(A,i),l)throw new Je.ErrnoError(l);if(!s.node_ops.rename)throw new Je.ErrnoError(63);if(Je.isMountpoint(c)||g&&Je.isMountpoint(g))throw new Je.ErrnoError(10);if(A!==s&&(l=Je.nodePermissions(s,"w"),l))throw new Je.ErrnoError(l);try{Je.trackingDelegate.willMovePath&&Je.trackingDelegate.willMovePath(e,t)}catch(r){C(`FS.trackingDelegate['willMovePath']('${e}', '${t}') threw an exception: ${r.message}`)}Je.hashRemoveNode(c);try{s.node_ops.rename(c,A,i)}catch(e){throw e}finally{Je.hashAddNode(c)}try{Je.trackingDelegate.onMovePath&&Je.trackingDelegate.onMovePath(e,t)}catch(r){C(`FS.trackingDelegate['onMovePath']('${e}', '${t}') threw an exception: ${r.message}`)}},rmdir(e){const t=Je.lookupPath(e,{parent:!0}).node,r=Ge.basename(e),n=Je.lookupNode(t,r),o=Je.mayDelete(t,r,!0);if(o)throw new Je.ErrnoError(o);if(!t.node_ops.rmdir)throw new Je.ErrnoError(63);if(Je.isMountpoint(n))throw new Je.ErrnoError(10);try{Je.trackingDelegate.willDeletePath&&Je.trackingDelegate.willDeletePath(e)}catch(t){C(`FS.trackingDelegate['willDeletePath']('${e}') threw an exception: ${t.message}`)}t.node_ops.rmdir(t,r),Je.destroyNode(n);try{Je.trackingDelegate.onDeletePath&&Je.trackingDelegate.onDeletePath(e)}catch(t){C(`FS.trackingDelegate['onDeletePath']('${e}') threw an exception: ${t.message}`)}},readdir(e){const t=Je.lookupPath(e,{follow:!0}),{node:r}=t;if(!r.node_ops.readdir)throw new Je.ErrnoError(54);return r.node_ops.readdir(r)},unlink(e){const t=Je.lookupPath(e,{parent:!0}).node,r=Ge.basename(e),n=Je.lookupNode(t,r),o=Je.mayDelete(t,r,!1);if(o)throw new Je.ErrnoError(o);if(!t.node_ops.unlink)throw new Je.ErrnoError(63);if(Je.isMountpoint(n))throw new Je.ErrnoError(10);try{Je.trackingDelegate.willDeletePath&&Je.trackingDelegate.willDeletePath(e)}catch(t){C(`FS.trackingDelegate['willDeletePath']('${e}') threw an exception: ${t.message}`)}t.node_ops.unlink(t,r),Je.destroyNode(n);try{Je.trackingDelegate.onDeletePath&&Je.trackingDelegate.onDeletePath(e)}catch(t){C(`FS.trackingDelegate['onDeletePath']('${e}') threw an exception: ${t.message}`)}},readlink(e){const t=Je.lookupPath(e).node;if(!t)throw new Je.ErrnoError(44);if(!t.node_ops.readlink)throw new Je.ErrnoError(28);return Xe.resolve(Je.getPath(t.parent),t.node_ops.readlink(t))},stat(e,t){const r=Je.lookupPath(e,{follow:!t}),{node:n}=r;if(!n)throw new Je.ErrnoError(44);if(!n.node_ops.getattr)throw new Je.ErrnoError(63);return n.node_ops.getattr(n)},lstat:e=>Je.stat(e,!0),chmod(e,t,r){let n;if("string"==typeof e){n=Je.lookupPath(e,{follow:!r}).node}else n=e;if(!n.node_ops.setattr)throw new Je.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod(e,t){Je.chmod(e,t,!0)},fchmod(e,t){const r=Je.getStream(e);if(!r)throw new Je.ErrnoError(8);Je.chmod(r.node,t)},chown(e,t,r,n){let o;if("string"==typeof e){o=Je.lookupPath(e,{follow:!n}).node}else o=e;if(!o.node_ops.setattr)throw new Je.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown(e,t,r){Je.chown(e,t,r,!0)},fchown(e,t,r){const n=Je.getStream(e);if(!n)throw new Je.ErrnoError(8);Je.chown(n.node,t,r)},truncate(e,t){if(t<0)throw new Je.ErrnoError(28);let r;if("string"==typeof e){r=Je.lookupPath(e,{follow:!0}).node}else r=e;if(!r.node_ops.setattr)throw new Je.ErrnoError(63);if(Je.isDir(r.mode))throw new Je.ErrnoError(31);if(!Je.isFile(r.mode))throw new Je.ErrnoError(28);const n=Je.nodePermissions(r,"w");if(n)throw new Je.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate(e,t){const r=Je.getStream(e);if(!r)throw new Je.ErrnoError(8);if(!(2097155&r.flags))throw new Je.ErrnoError(28);Je.truncate(r.node,t)},utime(e,t,r){const n=Je.lookupPath(e,{follow:!0}),{node:o}=n;o.node_ops.setattr(o,{timestamp:Math.max(t,r)})},open(e,t,n,o,i){if(""===e)throw new Je.ErrnoError(44);let a;if(n=void 0===n?438:n,n=64&(t="string"==typeof t?Je.modeStringToFlags(t):t)?4095&n|32768:0,"object"==typeof e)a=e;else{e=Ge.normalize(e);try{a=Je.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}let s=!1;if(64&t)if(a){if(128&t)throw new Je.ErrnoError(20)}else a=Je.mknod(e,n,0),s=!0;if(!a)throw new Je.ErrnoError(44);if(Je.isChrdev(a.mode)&&(t&=-513),65536&t&&!Je.isDir(a.mode))throw new Je.ErrnoError(54);if(!s){const e=Je.mayOpen(a,t);if(e)throw new Je.ErrnoError(e)}512&t&&Je.truncate(a,0),t&=-131713;const A=Je.createStream({node:a,path:Je.getPath(a),flags:t,seekable:!0,position:0,stream_ops:a.stream_ops,ungotten:[],error:!1},o,i);A.stream_ops.open&&A.stream_ops.open(A),!r.logReadFiles||1&t||(Je.readFiles||(Je.readFiles={}),e in Je.readFiles||(Je.readFiles[e]=1,C(`FS.trackingDelegate error on read file: ${e}`)));try{if(Je.trackingDelegate.onOpenFile){let r=0;1!=(2097155&t)&&(r|=Je.tracking.openFlags.READ),2097155&t&&(r|=Je.tracking.openFlags.WRITE),Je.trackingDelegate.onOpenFile(e,r)}}catch(t){C(`FS.trackingDelegate['onOpenFile']('${e}', flags) threw an exception: ${t.message}`)}return A},close(e){if(Je.isClosed(e))throw new Je.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{Je.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek(e,t,r){if(Je.isClosed(e))throw new Je.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new Je.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new Je.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read(e,t,r,n,o){if(n<0||o<0)throw new Je.ErrnoError(28);if(Je.isClosed(e))throw new Je.ErrnoError(8);if(1==(2097155&e.flags))throw new Je.ErrnoError(8);if(Je.isDir(e.node.mode))throw new Je.ErrnoError(31);if(!e.stream_ops.read)throw new Je.ErrnoError(28);const i=void 0!==o;if(i){if(!e.seekable)throw new Je.ErrnoError(70)}else o=e.position;const a=e.stream_ops.read(e,t,r,n,o);return i||(e.position+=a),a},write(e,t,r,n,o,i){if(n<0||o<0)throw new Je.ErrnoError(28);if(Je.isClosed(e))throw new Je.ErrnoError(8);if(!(2097155&e.flags))throw new Je.ErrnoError(8);if(Je.isDir(e.node.mode))throw new Je.ErrnoError(31);if(!e.stream_ops.write)throw new Je.ErrnoError(28);e.seekable&&1024&e.flags&&Je.llseek(e,0,2);const a=void 0!==o;if(a){if(!e.seekable)throw new Je.ErrnoError(70)}else o=e.position;const s=e.stream_ops.write(e,t,r,n,o,i);a||(e.position+=s);try{e.path&&Je.trackingDelegate.onWriteToFile&&Je.trackingDelegate.onWriteToFile(e.path)}catch(t){C(`FS.trackingDelegate['onWriteToFile']('${e.path}') threw an exception: ${t.message}`)}return s},allocate(e,t,r){if(Je.isClosed(e))throw new Je.ErrnoError(8);if(t<0||r<=0)throw new Je.ErrnoError(28);if(!(2097155&e.flags))throw new Je.ErrnoError(8);if(!Je.isFile(e.node.mode)&&!Je.isDir(e.node.mode))throw new Je.ErrnoError(43);if(!e.stream_ops.allocate)throw new Je.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap(e,t,r,n,o,i){if(2&o&&!(2&i)&&2!=(2097155&e.flags))throw new Je.ErrnoError(2);if(1==(2097155&e.flags))throw new Je.ErrnoError(2);if(!e.stream_ops.mmap)throw new Je.ErrnoError(43);return e.stream_ops.mmap(e,t,r,n,o,i)},msync:(e,t,r,n,o)=>e&&e.stream_ops.msync?e.stream_ops.msync(e,t,r,n,o):0,munmap:e=>0,ioctl(e,t,r){if(!e.stream_ops.ioctl)throw new Je.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile(e,t){if((t=t||{}).flags=t.flags||0,t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error(`Invalid encoding type "${t.encoding}"`);let r;const n=Je.open(e,t.flags),o=Je.stat(e).size,i=new Uint8Array(o);return Je.read(n,i,0,o,0),"utf8"===t.encoding?r=P(i,0):"binary"===t.encoding&&(r=i),Je.close(n),r},writeFile(e,t,r){(r=r||{}).flags=r.flags||577;const n=Je.open(e,r.flags,r.mode);if("string"==typeof t){const e=new Uint8Array(F(t)+1),o=M(t,e,0,e.length);Je.write(n,e,0,o,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");Je.write(n,t,0,t.byteLength,void 0,r.canOwn)}Je.close(n)},cwd:()=>Je.currentPath,chdir(e){const t=Je.lookupPath(e,{follow:!0});if(null===t.node)throw new Je.ErrnoError(44);if(!Je.isDir(t.node.mode))throw new Je.ErrnoError(54);const r=Je.nodePermissions(t.node,"x");if(r)throw new Je.ErrnoError(r);Je.currentPath=t.path},createDefaultDirectories(){Je.mkdir("/tmp"),Je.mkdir("/home"),Je.mkdir("/home/web_user")},createDefaultDevices(){Je.mkdir("/dev"),Je.registerDevice(Je.makedev(1,3),{read:()=>0,write:(e,t,r,n,o)=>n}),Je.mkdev("/dev/null",Je.makedev(1,3)),Ve.register(Je.makedev(5,0),Ve.default_tty_ops),Ve.register(Je.makedev(6,0),Ve.default_tty1_ops),Je.mkdev("/dev/tty",Je.makedev(5,0)),Je.mkdev("/dev/tty1",Je.makedev(6,0));const e=Ye();Je.createDevice("/dev","random",e),Je.createDevice("/dev","urandom",e),Je.mkdir("/dev/shm"),Je.mkdir("/dev/shm/tmp")},createSpecialDirectories(){Je.mkdir("/proc");const e=Je.mkdir("/proc/self");Je.mkdir("/proc/self/fd"),Je.mount({mount(){const t=Je.createNode(e,"fd",16895,73);return t.node_ops={lookup(e,t){const r=+t,n=Je.getStream(r);if(!n)throw new Je.ErrnoError(8);const o={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path}};return o.parent=o,o}},t}},{},"/proc/self/fd")},createStandardStreams(){r.stdin?Je.createDevice("/dev","stdin",r.stdin):Je.symlink("/dev/tty","/dev/stdin"),r.stdout?Je.createDevice("/dev","stdout",null,r.stdout):Je.symlink("/dev/tty","/dev/stdout"),r.stderr?Je.createDevice("/dev","stderr",null,r.stderr):Je.symlink("/dev/tty1","/dev/stderr");const e=Je.open("/dev/stdin",0),t=Je.open("/dev/stdout",1),n=Je.open("/dev/stderr",1);T(0===e.fd,`invalid handle for stdin (${e.fd})`),T(1===t.fd,`invalid handle for stdout (${t.fd})`),T(2===n.fd,`invalid handle for stderr (${n.fd})`)},ensureErrnoError(){Je.ErrnoError||(Je.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){this.errno=e;for(const t in Ke)if(Ke[t]===e){this.code=t;break}},this.setErrno(e),this.message=$e[e],this.stack&&(Object.defineProperty(this,"stack",{value:(new Error).stack,writable:!0}),this.stack=Ne(this.stack))},Je.ErrnoError.prototype=new Error,Je.ErrnoError.prototype.constructor=Je.ErrnoError,[44].forEach((e=>{Je.genericErrors[e]=new Je.ErrnoError(e),Je.genericErrors[e].stack="<generic error, no stack>"})))},staticInit(){Je.ensureErrnoError(),Je.nameTable=new Array(4096),Je.mount(ze,{},"/"),Je.createDefaultDirectories(),Je.createDefaultDevices(),Je.createSpecialDirectories(),Je.filesystems={MEMFS:ze}},init(e,t,n){T(!Je.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)"),Je.init.initialized=!0,Je.ensureErrnoError(),r.stdin=e||r.stdin,r.stdout=t||r.stdout,r.stderr=n||r.stderr,Je.createStandardStreams()},quit(){Je.init.initialized=!1;const e=r._fflush;e&&e(0);for(let e=0;e<Je.streams.length;e++){const t=Je.streams[e];t&&Je.close(t)}},getMode(e,t){let r=0;return e&&(r|=365),t&&(r|=146),r},findObject(e,t){const r=Je.analyzePath(e,t);return r.exists?r.object:null},analyzePath(e,t){try{e=(n=Je.lookupPath(e,{follow:!t})).path}catch(e){}const r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=Je.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=Ge.basename(e),n=Je.lookupPath(e,{follow:!t}),r.exists=!0,r.path=n.path,r.object=n.node,r.name=n.node.name,r.isRoot="/"===n.path}catch(e){r.error=e.errno}return r},createPath(e,t,r,n){e="string"==typeof e?e:Je.getPath(e);const o=t.split("/").reverse();for(;o.length;){const t=o.pop();if(t){var i=Ge.join2(e,t);try{Je.mkdir(i)}catch(e){}e=i}}return i},createFile(e,t,r,n,o){const i=Ge.join2("string"==typeof e?e:Je.getPath(e),t),a=Je.getMode(n,o);return Je.create(i,a)},createDataFile(e,t,r,n,o,i){const a=t?Ge.join2("string"==typeof e?e:Je.getPath(e),t):e,s=Je.getMode(n,o),A=Je.create(a,s);if(r){if("string"==typeof r){const e=new Array(r.length);for(let t=0,n=r.length;t<n;++t)e[t]=r.charCodeAt(t);r=e}Je.chmod(A,146|s);const e=Je.open(A,577);Je.write(e,r,0,r.length,0,i),Je.close(e),Je.chmod(A,s)}return A},createDevice(e,t,r,n){const o=Ge.join2("string"==typeof e?e:Je.getPath(e),t),i=Je.getMode(!!r,!!n);Je.createDevice.major||(Je.createDevice.major=64);const a=Je.makedev(Je.createDevice.major++,0);return Je.registerDevice(a,{open(e){e.seekable=!1},close(e){n&&n.buffer&&n.buffer.length&&n(10)},read(e,t,n,o,i){let a=0;for(let e=0;e<o;e++){var s;try{s=r()}catch(e){throw new Je.ErrnoError(29)}if(void 0===s&&0===a)throw new Je.ErrnoError(6);if(null==s)break;a++,t[n+e]=s}return a&&(e.node.timestamp=Date.now()),a},write(e,t,r,o,i){for(var a=0;a<o;a++)try{n(t[r+a])}catch(e){throw new Je.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),a}}),Je.mkdev(o,i,a)},forceLoadFile(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)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(!E)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=cn(E(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new Je.ErrnoError(29)}},createLazyFile(e,t,r,n,o){function i(){this.lengthKnown=!1,this.chunks=[]}if(i.prototype.get=function(e){if(e>this.length-1||e<0)return;const t=e%this.chunkSize,r=e/this.chunkSize|0;return this.getter(r)[t]},i.prototype.setDataGetter=function(e){this.getter=e},i.prototype.cacheLength=function(){const e=new XMLHttpRequest;if(e.open("HEAD",r,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error(`Couldn't load ${r}. Status: ${e.status}`);let t,n=Number(e.getResponseHeader("Content-length"));const o=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,i=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t;let a=1048576;o||(a=n);const s=this;s.setDataGetter((e=>{const t=e*a;let o=(e+1)*a-1;if(o=Math.min(o,n-1),void 0===s.chunks[e]&&(s.chunks[e]=function(e,t){if(e>t)throw new Error(`invalid range (${e}, ${t}) or no bytes requested!`);if(t>n-1)throw new Error(`only ${n} bytes available! programmer error!`);const o=new XMLHttpRequest;if(o.open("GET",r,!1),n!==a&&o.setRequestHeader("Range",`bytes=${e}-${t}`),"undefined"!=typeof Uint8Array&&(o.responseType="arraybuffer"),o.overrideMimeType&&o.overrideMimeType("text/plain; charset=x-user-defined"),o.send(null),!(o.status>=200&&o.status<300||304===o.status))throw new Error(`Couldn't load ${r}. Status: ${o.status}`);return void 0!==o.response?new Uint8Array(o.response||[]):cn(o.responseText||"",!0)}(t,o)),void 0===s.chunks[e])throw new Error("doXHR failed!");return s.chunks[e]})),!i&&n||(a=n=1,n=this.getter(0).length,a=n,m("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=a,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!d)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";const e=new i;Object.defineProperties(e,{length:{get(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var a={isDevice:!1,contents:e}}else a={isDevice:!1,url:r};const s=Je.createFile(e,t,a,n,o);a.contents?s.contents=a.contents:a.url&&(s.contents=null,s.url=a.url),Object.defineProperties(s,{usedBytes:{get(){return this.contents.length}}});const A={};return Object.keys(s.stream_ops).forEach((e=>{const t=s.stream_ops[e];A[e]=function(){return Je.forceLoadFile(s),t.apply(null,arguments)}})),A.read=function(e,t,r,n,o){Je.forceLoadFile(s);const{contents:i}=e.node;if(o>=i.length)return 0;const a=Math.min(i.length-o,n);if(T(a>=0),i.slice)for(var A=0;A<a;A++)t[r+A]=i[o+A];else for(A=0;A<a;A++)t[r+A]=i.get(o+A);return a},s.stream_ops=A,s},createPreloadedFile(e,t,n,o,i,a,s,A,c,g){Se.init();const d=t?Xe.resolve(Ge.join2(e,t)):e,u=Ie(`cp ${d}`);function l(n){function l(r){g&&g(),A||Je.createDataFile(e,t,r,o,i,c),a&&a(),Ce(u)}let E=!1;r.preloadPlugins.forEach((e=>{E||e.canHandle(d)&&(e.handle(n,d,l,(()=>{s&&s(),Ce(u)})),E=!0)})),E||l(n)}me(u),"string"==typeof n?function(e,t,r,n){const o=n?"":Ie(`al ${e}`);f(e,(r=>{T(r,`Loading data file "${e}" failed (no arrayBuffer).`),t(new Uint8Array(r)),o&&Ce(o)}),(t=>{if(!r)throw`Loading data file "${e}" failed.`;r()})),o&&me(o)}(n,(e=>{l(e)}),s):l(n)},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>`EM_FS_${window.location.pathname}`,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB(e,t,r){t=t||function(){},r=r||function(){};const n=Je.indexedDB();try{var o=n.open(Je.DB_NAME(),Je.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=function(){m("creating db");o.result.createObjectStore(Je.DB_STORE_NAME)},o.onsuccess=function(){const n=o.result.transaction([Je.DB_STORE_NAME],"readwrite"),i=n.objectStore(Je.DB_STORE_NAME);let a=0,s=0;const A=e.length;function c(){0==s?t():r()}e.forEach((e=>{const t=i.put(Je.analyzePath(e).object.contents,e);t.onsuccess=function(){a++,a+s==A&&c()},t.onerror=function(){s++,a+s==A&&c()}})),n.onerror=r},o.onerror=r},loadFilesFromDB(e,t,r){t=t||function(){},r=r||function(){};const n=Je.indexedDB();try{var o=n.open(Je.DB_NAME(),Je.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=r,o.onsuccess=function(){const n=o.result;try{var i=n.transaction([Je.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}const a=i.objectStore(Je.DB_STORE_NAME);let s=0,A=0;const c=e.length;function g(){0==A?t():r()}e.forEach((e=>{const t=a.get(e);t.onsuccess=function(){Je.analyzePath(e).exists&&Je.unlink(e),Je.createDataFile(Ge.dirname(e),Ge.basename(e),t.result,!0,!0,!0),s++,s+A==c&&g()},t.onerror=function(){A++,s+A==c&&g()}})),i.onerror=r},o.onerror=r},absolutePath(){ye("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder(){ye("FS.createFolder has been removed; use FS.mkdir instead")},createLink(){ye("FS.createLink has been removed; use FS.symlink instead")},joinPath(){ye("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc(){ye("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath(){ye("FS.standardizePath has been removed; use PATH.normalize instead")}},Ze={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt(e,t,r){if("/"===t[0])return t;let n;if(-100===e)n=Je.cwd();else{const t=Je.getStream(e);if(!t)throw new Je.ErrnoError(8);n=t.path}if(0==t.length){if(!r)throw new Je.ErrnoError(44);return n}return Ge.join2(n,t)},doStat(e,t,r){try{var n=e(t)}catch(e){if(e&&e.node&&Ge.normalize(t)!==Ge.normalize(Je.getPath(e.node)))return-54;throw e}return K[r>>2]=n.dev,K[r+4>>2]=0,K[r+8>>2]=n.ino,K[r+12>>2]=n.mode,K[r+16>>2]=n.nlink,K[r+20>>2]=n.uid,K[r+24>>2]=n.gid,K[r+28>>2]=n.rdev,K[r+32>>2]=0,Oe=[n.size>>>0,(De=n.size,+Math.abs(De)>=1?De>0?(0|Math.min(+Math.floor(De/4294967296),4294967295))>>>0:~~+Math.ceil((De-+(~~De>>>0))/4294967296)>>>0:0)],K[r+40>>2]=Oe[0],K[r+44>>2]=Oe[1],K[r+48>>2]=4096,K[r+52>>2]=n.blocks,K[r+56>>2]=n.atime.getTime()/1e3|0,K[r+60>>2]=0,K[r+64>>2]=n.mtime.getTime()/1e3|0,K[r+68>>2]=0,K[r+72>>2]=n.ctime.getTime()/1e3|0,K[r+76>>2]=0,Oe=[n.ino>>>0,(De=n.ino,+Math.abs(De)>=1?De>0?(0|Math.min(+Math.floor(De/4294967296),4294967295))>>>0:~~+Math.ceil((De-+(~~De>>>0))/4294967296)>>>0:0)],K[r+80>>2]=Oe[0],K[r+84>>2]=Oe[1],0},doMsync(e,t,r,n,o){const i=W.slice(e,e+r);Je.msync(t,i,o,r,n)},doMkdir:(e,t)=>("/"===(e=Ge.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),Je.mkdir(e,t,0),0),doMknod(e,t,r){switch(61440&t){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return Je.mknod(e,t,r),0},doReadlink(e,t,r){if(r<=0)return-28;const n=Je.readlink(e),o=Math.min(r,F(n)),i=V[t+o];return S(n,t,r+1),V[t+o]=i,o},doAccess(e,t){if(-8&t)return-28;let r;if(r=Je.lookupPath(e,{follow:!0}).node,!r)return-44;let n="";return 4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&Je.nodePermissions(r,n)?-2:0},doDup(e,t,r){const n=Je.getStream(r);return n&&Je.close(n),Je.open(e,t,0,r,r).fd},doReadv(e,t,r,n){let o=0;for(let i=0;i<r;i++){const r=K[t+8*i>>2],a=K[t+(8*i+4)>>2],s=Je.read(e,V,r,a,n);if(s<0)return-1;if(o+=s,s<a)break}return o},doWritev(e,t,r,n){let o=0;for(let i=0;i<r;i++){const r=K[t+8*i>>2],a=K[t+(8*i+4)>>2],s=Je.write(e,V,r,a,n);if(s<0)return-1;o+=s}return o},varargs:void 0,get(){T(null!=Ze.varargs),Ze.varargs+=4;return K[Ze.varargs-4>>2]},getStr:e=>R(e),getStreamFromFD(e){const t=Je.getStream(e);if(!t)throw new Je.ErrnoError(8);return t},get64:(e,t)=>(T(e>=0?0===t:-1===t),e)};const qe=48,et=57;function tt(e){if(void 0===e)return"_unknown";const t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=qe&&t<=et?`_${e}`:e}function rt(e,t){return e=tt(e),new Function("body",`return function ${e}() {\n "use strict"; return body.apply(this, arguments);\n};\n`)(t)}const nt=[],ot=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function it(){let e=0;for(let t=5;t<ot.length;++t)void 0!==ot[t]&&++e;return e}function at(){for(let e=5;e<ot.length;++e)if(void 0!==ot[e])return ot[e];return null}function st(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:{const t=nt.length?nt.pop():ot.length;return ot[t]={refcount:1,value:e},t}}}function At(e,t){const r=rt(t,(function(e){this.name=t,this.message=e;const{stack:r}=new Error(e);void 0!==r&&(this.stack=`${this.toString()}\n${r.replace(/^Error(:[^\n]*)?\n/,"")}`)}));return r.prototype=Object.create(e.prototype),r.prototype.constructor=r,r.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`},r}let ct;var gt=void 0;function dt(e){let t="",r=e;for(;W[r];)t+=gt[W[r++]];return t}function ut(){return Object.keys(It).length}function lt(){const e=[];for(const t in It)It.hasOwnProperty(t)&&e.push(It[t]);return e}const Et=[];function ft(){for(;Et.length;){const e=Et.pop();e.$$.deleteScheduled=!1,e.delete()}}let pt;function ht(e){pt=e,Et.length&&pt&&pt(ft)}var It={};let mt;function Ct(e){throw new mt(e)}function yt(e,t){for(void 0===t&&Ct("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function _t(e){return e||Ct(`Cannot use deleted val. handle = ${e}`),ot[e].value}const wt={};function Bt(e){const t=En(e),r=dt(t);return dn(t),r}function Dt(e,t){const r=wt[e];return void 0===r&&Ct(`${t} has unknown type ${Bt(e)}`),r}function Ot(e){}let bt=!1;function Qt(e){e.count.value-=1;0===e.count.value&&function(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}(e)}function Tt(e){return"undefined"==typeof FinalizationGroup?(Tt=function(e){return e},e):(bt=new FinalizationGroup((e=>{for(let t=e.next();!t.done;t=e.next()){const e=t.value;e.ptr?Qt(e):console.warn(`object already deleted: ${e.ptr}`)}})),Ot=function(e){bt.unregister(e.$$)},(Tt=function(e){return bt.register(e,e.$$,e.$$),e})(e))}const vt={};function Pt(e){for(;e.length;){const t=e.pop();e.pop()(t)}}function Rt(e){return this.fromWireType(J[e>>2])}const Mt={},St={};let Ft;function Nt(e){throw new Ft(e)}function kt(e,t,r){function n(t){const n=r(t);n.length!==e.length&&Nt("Mismatched type converter count");for(let t=0;t<e.length;++t)Ut(e[t],n[t])}e.forEach((e=>{St[e]=t}));const o=new Array(t.length),i=[];let a=0;t.forEach(((e,t)=>{wt.hasOwnProperty(e)?o[t]=wt[e]:(i.push(e),Mt.hasOwnProperty(e)||(Mt[e]=[]),Mt[e].push((()=>{o[t]=wt[e],++a,a===i.length&&n(o)})))})),0===i.length&&n(o)}function xt(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 Ut(e,t,r){if(r=r||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");const{name:n}=t;if(e||Ct(`type "${n}" must have a positive integer typeid pointer`),wt.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;Ct(`Cannot register type '${n}' twice`)}if(wt[e]=t,delete St[e],Mt.hasOwnProperty(e)){const t=Mt[e];delete Mt[e],t.forEach((e=>{e()}))}}function jt(e){if(!(this instanceof Vt))return!1;if(!(e instanceof Vt))return!1;let t=this.$$.ptrType.registeredClass,r=this.$$.ptr,n=e.$$.ptrType.registeredClass,o=e.$$.ptr;for(;t.baseClass;)r=t.upcast(r),t=t.baseClass;for(;n.baseClass;)o=n.upcast(o),n=n.baseClass;return t===n&&r===o}function Lt(e){var t;Ct(`${t=e,t.$$.ptrType.registeredClass.name} instance already deleted`)}function Ht(){if(this.$$.ptr||Lt(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;const e=Tt(Object.create(Object.getPrototypeOf(this),{$$:{value:(t=this.$$,{count:t.count,deleteScheduled:t.deleteScheduled,preservePointerOnDelete:t.preservePointerOnDelete,ptr:t.ptr,ptrType:t.ptrType,smartPtr:t.smartPtr,smartPtrType:t.smartPtrType})}}));var t;return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function Gt(){this.$$.ptr||Lt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ct("Object already scheduled for deletion"),Ot(this),Qt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Yt(){return!this.$$.ptr}function Xt(){return this.$$.ptr||Lt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ct("Object already scheduled for deletion"),Et.push(this),1===Et.length&&pt&&pt(ft),this.$$.deleteScheduled=!0,this}function Vt(){}const Wt={};function zt(e,t,r){if(void 0===e[t].overloadTable){const n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||Ct(`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[n.argCount]=n}}function $t(e,t,n){r.hasOwnProperty(e)?((void 0===n||void 0!==r[e].overloadTable&&void 0!==r[e].overloadTable[n])&&Ct(`Cannot register public name '${e}' twice`),zt(r,e,e),r.hasOwnProperty(n)&&Ct(`Cannot register multiple overloads of a function with the same number of arguments (${n})!`),r[e].overloadTable[n]=t):(r[e]=t,void 0!==n&&(r[e].numArguments=n))}function Kt(e,t,r,n,o,i,a,s){this.name=e,this.constructor=t,this.instancePrototype=r,this.rawDestructor=n,this.baseClass=o,this.getActualType=i,this.upcast=a,this.downcast=s,this.pureVirtualFunctions=[]}function Jt(e,t,r){for(;t!==r;)t.upcast||Ct(`Expected null or instance of ${r.name}, got an instance of ${t.name}`),e=t.upcast(e),t=t.baseClass;return e}function Zt(e,t){if(null===t)return this.isReference&&Ct(`null is not a valid ${this.name}`),0;t.$$||Ct(`Cannot pass "${Ir(t)}" as a ${this.name}`),t.$$.ptr||Ct(`Cannot pass deleted object as a pointer of type ${this.name}`);const r=t.$$.ptrType.registeredClass;return Jt(t.$$.ptr,r,this.registeredClass)}function qt(e,t){let r;if(null===t)return this.isReference&&Ct(`null is not a valid ${this.name}`),this.isSmartPointer?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t.$$||Ct(`Cannot pass "${Ir(t)}" as a ${this.name}`),t.$$.ptr||Ct(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&t.$$.ptrType.isConst&&Ct(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);const n=t.$$.ptrType.registeredClass;if(r=Jt(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&Ct("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:Ct(`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{const n=t.clone();r=this.rawShare(r,st((()=>{n.delete()}))),null!==e&&e.push(this.rawDestructor,r)}break;default:Ct("Unsupporting sharing policy")}return r}function er(e,t){if(null===t)return this.isReference&&Ct(`null is not a valid ${this.name}`),0;t.$$||Ct(`Cannot pass "${Ir(t)}" as a ${this.name}`),t.$$.ptr||Ct(`Cannot pass deleted object as a pointer of type ${this.name}`),t.$$.ptrType.isConst&&Ct(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);const r=t.$$.ptrType.registeredClass;return Jt(t.$$.ptr,r,this.registeredClass)}function tr(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function rr(e){this.rawDestructor&&this.rawDestructor(e)}function nr(e){null!==e&&e.delete()}function or(e,t,r){if(t===r)return e;if(void 0===r.baseClass)return null;const n=or(e,t,r.baseClass);return null===n?null:r.downcast(n)}function ir(e,t){t.ptrType&&t.ptr||Nt("makeClassHandle requires ptr and ptrType");return!!t.smartPtrType!==!!t.smartPtr&&Nt("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Tt(Object.create(e,{$$:{value:t}}))}function ar(e){const t=this.getPointee(e);if(!t)return this.destructor(e),null;const r=function(e,t){return t=yt(e,t),It[t]}(this.registeredClass,t);if(void 0!==r){if(0===r.$$.count.value)return r.$$.ptr=t,r.$$.smartPtr=e,r.clone();const n=r.clone();return this.destructor(e),n}function n(){return this.isSmartPointer?ir(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):ir(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}const o=this.registeredClass.getActualType(t),i=Wt[o];if(!i)return n.call(this);let a;a=this.isConst?i.constPointerType:i.pointerType;const s=or(t,this.registeredClass,a.registeredClass);return null===s?n.call(this):this.isSmartPointer?ir(a.registeredClass.instancePrototype,{ptrType:a,ptr:s,smartPtrType:this,smartPtr:e}):ir(a.registeredClass.instancePrototype,{ptrType:a,ptr:s})}function sr(e,t,r,n,o,i,a,s,A,c,g){this.name=e,this.registeredClass=t,this.isReference=r,this.isConst=n,this.isSmartPointer=o,this.pointeeType=i,this.sharingPolicy=a,this.rawGetPointee=s,this.rawConstructor=A,this.rawShare=c,this.rawDestructor=g,o||void 0!==t.baseClass?this.toWireType=qt:n?(this.toWireType=Zt,this.destructorFunction=null):(this.toWireType=er,this.destructorFunction=null)}function Ar(e,t,n){r.hasOwnProperty(e)||Nt("Replacing nonexistant public symbol"),void 0!==r[e].overloadTable&&void 0!==n?r[e].overloadTable[n]=t:(r[e]=t,r[e].argCount=n)}function cr(e,t,n){return e.includes("j")?function(e,t,n){T(`dynCall_${e}`in r,`bad function pointer type - no table for sig '${e}'`),n&&n.length?T(n.length===e.substring(1).replace(/j/g,"--").length):T(1==e.length);const o=r[`dynCall_${e}`];return n&&n.length?o.apply(null,[t].concat(n)):o.call(null,t)}(e,t,n):(T(ne.get(t),`missing table entry in dynCall: ${t}`),ne.get(t).apply(null,n))}function gr(e,t){const r=(e=dt(e)).includes("j")?function(e,t){T(e.includes("j"),"getDynCaller should only be called with i64 sigs");const r=[];return function(){r.length=arguments.length;for(let e=0;e<arguments.length;e++)r[e]=arguments[e];return cr(e,t,r)}}(e,t):ne.get(t);return"function"!=typeof r&&Ct(`unknown function pointer with signature ${e}: ${t}`),r}let dr;function ur(e,t){const r=[],n={};throw t.forEach((function e(t){n[t]||wt[t]||(St[t]?St[t].forEach(e):(r.push(t),n[t]=!0))})),new dr(`${e}: ${r.map(Bt).join([", "])}`)}function lr(e,t){if(!(e instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof e} which is not a function`);const r=rt(e.name||"unknownFunctionName",(()=>{}));r.prototype=e.prototype;const n=new r,o=e.apply(n,t);return o instanceof Object?o:n}function Er(e,t,r,n,o){const i=t.length;i<2&&Ct("argTypes array size mismatch! Must at least get return value and 'this' types!");const a=null!==t[1]&&null!==r;let s=!1;for(var A=1;A<t.length;++A)if(null!==t[A]&&void 0===t[A].destructorFunction){s=!0;break}const c="void"!==t[0].name;let g="",d="";for(A=0;A<i-2;++A)g+=`${0!==A?", ":""}arg${A}`,d+=`${0!==A?", ":""}arg${A}Wired`;let u=`return function ${tt(e)}(${g}) {\nif (arguments.length !== ${i-2}) {\nthrowBindingError('function ${e} called with ' + arguments.length + ' arguments, expected ${i-2} args!');\n}\n`;s&&(u+="var destructors = [];\n");const l=s?"destructors":"null",E=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],f=[Ct,n,o,Pt,t[0],t[1]];a&&(u+=`var thisWired = classParam.toWireType(${l}, this);\n`);for(A=0;A<i-2;++A)u+=`var arg${A}Wired = argType${A}.toWireType(${l}, arg${A}); // ${t[A+2].name}\n`,E.push(`argType${A}`),f.push(t[A+2]);if(a&&(d=`thisWired${d.length>0?", ":""}${d}`),u+=`${c?"var rv = ":""}invoker(fn${d.length>0?", ":""}${d});\n`,s)u+="runDestructors(destructors);\n";else for(A=a?1:2;A<t.length;++A){const e=1===A?"thisWired":`arg${A-2}Wired`;null!==t[A].destructorFunction&&(u+=`${e}_dtor(${e}); // ${t[A].name}\n`,E.push(`${e}_dtor`),f.push(t[A].destructorFunction))}c&&(u+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),u+="}\n",E.push(u);return lr(Function,E).apply(null,f)}function fr(e,t){const r=[];for(let n=0;n<e;n++)r.push(K[(t>>2)+n]);return r}function pr(e,t,r){return e instanceof Object||Ct(`${r} with invalid "this": ${e}`),e instanceof t.registeredClass.constructor||Ct(`${r} incompatible with "this" of type ${e.constructor.name}`),e.$$.ptr||Ct(`cannot call emscripten binding method ${r} on deleted object`),Jt(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)}function hr(e){e>4&&0==--ot[e].refcount&&(ot[e]=void 0,nt.push(e))}function Ir(e){if(null===e)return"null";const t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():`${e}`}function mr(e,t){switch(t){case 2:return function(e){return this.fromWireType(Z[e>>2])};case 3:return function(e){return this.fromWireType(q[e>>3])};default:throw new TypeError(`Unknown float type: ${e}`)}}function Cr(e,t,r){switch(t){case 0:return r?function(e){return V[e]}:function(e){return W[e]};case 1:return r?function(e){return z[e>>1]}:function(e){return $[e>>1]};case 2:return r?function(e){return K[e>>2]}:function(e){return J[e>>2]};default:throw new TypeError(`Unknown integer type: ${e}`)}}const yr={};const _r=[];const wr=[];function Br(e){try{return O.grow(e-X.byteLength+65535>>>16),ee(O.buffer),1}catch(t){C(`emscripten_realloc_buffer: Attempted to grow heap from ${X.byteLength} bytes to ${e} bytes, but got error: ${t}`)}}function Dr(e){ye("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}const Or={};function br(e){e.forEach((e=>{const t=Dr();t&&(Or[t]=e)}))}var Qr={counter:1,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function(e){Qr.lastError||(Qr.lastError=e)},getNewId(e){const t=Qr.counter++;for(let r=e.length;r<t;r++)e[r]=null;return t},MAX_TEMP_BUFFER_SIZE:2097152,numTempVertexBuffersPerSize:64,log2ceilLookup:e=>32-Math.clz32(0===e?0:e-1),generateTempBuffers(e,t){const r=Qr.log2ceilLookup(Qr.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 n=0;n<=r;++n){t.tempIndexBuffers[n]=null,t.tempVertexBufferCounters1[n]=t.tempVertexBufferCounters2[n]=0;const e=Qr.numTempVertexBuffersPerSize;t.tempVertexBuffers1[n]=[],t.tempVertexBuffers2[n]=[];const r=t.tempVertexBuffers1[n],o=t.tempVertexBuffers2[n];r.length=o.length=e;for(let t=0;t<e;++t)r[t]=o[t]=null}if(e){t.tempQuadIndexBuffer=on.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);const e=Qr.MAX_TEMP_BUFFER_SIZE>>1,r=new Uint16Array(e);n=0;let o=0;for(;!(r[n++]=o,n>=e||(r[n++]=o+1,n>=e)||(r[n++]=o+2,n>=e)||(r[n++]=o,n>=e)||(r[n++]=o+2,n>=e)||(r[n++]=o+3,n>=e));)o+=4;t.GLctx.bufferData(34963,r,35044),t.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:function(e){const t=Qr.log2ceilLookup(e),r=Qr.currentContext.tempVertexBuffers1[t],n=Qr.currentContext.tempVertexBufferCounters1[t];Qr.currentContext.tempVertexBufferCounters1[t]=Qr.currentContext.tempVertexBufferCounters1[t]+1&Qr.numTempVertexBuffersPerSize-1;const o=r[n];if(o)return o;const i=on.getParameter(34964);return r[n]=on.createBuffer(),on.bindBuffer(34962,r[n]),on.bufferData(34962,1<<t,35048),on.bindBuffer(34962,i),r[n]},getTempIndexBuffer:function(e){const t=Qr.log2ceilLookup(e),r=Qr.currentContext.tempIndexBuffers[t];if(r)return r;const n=on.getParameter(34965);return Qr.currentContext.tempIndexBuffers[t]=on.createBuffer(),on.bindBuffer(34963,Qr.currentContext.tempIndexBuffers[t]),on.bufferData(34963,1<<t,35048),on.bindBuffer(34963,n),Qr.currentContext.tempIndexBuffers[t]},newRenderingFrameStarted:function(){if(!Qr.currentContext)return;let e=Qr.currentContext.tempVertexBuffers1;Qr.currentContext.tempVertexBuffers1=Qr.currentContext.tempVertexBuffers2,Qr.currentContext.tempVertexBuffers2=e,e=Qr.currentContext.tempVertexBufferCounters1,Qr.currentContext.tempVertexBufferCounters1=Qr.currentContext.tempVertexBufferCounters2,Qr.currentContext.tempVertexBufferCounters2=e;const t=Qr.log2ceilLookup(Qr.MAX_TEMP_BUFFER_SIZE);for(let e=0;e<=t;++e)Qr.currentContext.tempVertexBufferCounters1[e]=0},getSource(e,t,r,n){let o="";for(let e=0;e<t;++e){const t=n?K[n+4*e>>2]:-1;o+=R(K[r+4*e>>2],t<0?void 0:t)}return o},calcBufLength:function(e,t,r,n){if(r>0)return n*r;return e*Qr.byteSizeByType[t-Qr.byteSizeByTypeRoot]*n},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(e){Qr.resetBufferBinding=!1;for(let t=0;t<Qr.currentContext.maxVertexAttribs;++t){const r=Qr.currentContext.clientBuffers[t];if(!r.clientside||!r.enabled)continue;Qr.resetBufferBinding=!0;const n=Qr.calcBufLength(r.size,r.type,r.stride,e),o=Qr.getTempVertexBuffer(n);on.bindBuffer(34962,o),on.bufferSubData(34962,0,W.subarray(r.ptr,r.ptr+n)),r.vertexAttribPointerAdaptor.call(on,t,r.size,r.type,r.normalized,r.stride,0)}},postDrawHandleClientVertexAttribBindings:function(){Qr.resetBufferBinding&&on.bindBuffer(34962,Qr.buffers[on.currentArrayBufferBinding])},createContext(e,t){t.renderViaOffscreenBackBuffer&&(t.preserveDrawingBuffer=!0);const r=t.majorVersion>1?e.getContext("webgl2",t):e.getContext("webgl",t);if(!r)return 0;return Qr.registerContext(r,t)},enableOffscreenFramebufferAttributes(e){e.renderViaOffscreenBackBuffer=!0,e.preserveDrawingBuffer=!0},createOffscreenFramebuffer(e){const t=e.GLctx,r=t.createFramebuffer();if(t.bindFramebuffer(36160,r),e.defaultFbo=r,e.defaultFboForbidBlitFramebuffer=!1,t.getContextAttributes().antialias)e.defaultFboForbidBlitFramebuffer=!0;else{const t=navigator.userAgent.toLowerCase().match(/firefox\/(\d\d)/);if(null!=t){const r=t[1];e.defaultFboForbidBlitFramebuffer=r<67}}e.defaultColorTarget=t.createTexture(),e.defaultDepthTarget=t.createRenderbuffer(),Qr.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);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);const n=t.createBuffer();t.bindBuffer(34962,n),t.bufferData(34962,new Float32Array([-1,-1,-1,1,1,-1,1,1]),35044),t.bindBuffer(34962,null),e.blitVB=n;const o=t.createShader(35633);t.shaderSource(o,"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); }"),t.compileShader(o);const i=t.createShader(35632);t.shaderSource(i,"varying lowp vec2 tex;uniform sampler2D sampler;void main() { gl_FragColor = texture2D(sampler, tex); }"),t.compileShader(i);const a=t.createProgram();t.attachShader(a,o),t.attachShader(a,i),t.linkProgram(a),e.blitProgram=a,e.blitPosLoc=t.getAttribLocation(a,"pos"),t.useProgram(a),t.uniform1i(t.getUniformLocation(a,"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){const t=e.GLctx;if(e.defaultColorTarget){const 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){const r=t.getParameter(36007);t.bindRenderbuffer(36161,e.defaultDepthTarget),t.renderbufferStorage(36161,33189,t.drawingBufferWidth,t.drawingBufferHeight),t.bindRenderbuffer(36161,r)}},blitOffscreenFramebuffer(e){const t=e.GLctx,r=t.getParameter(3089);r&&t.disable(3089);const n=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 r=function(){t.vertexAttribPointer(e.blitPosLoc,2,5126,!1,0,0),t.drawArrays(5,0,4)};t.bindFramebuffer(36160,null);const n=t.getParameter(35725);t.useProgram(e.blitProgram);const a=t.getParameter(34964);t.bindBuffer(34962,e.blitVB);const s=t.getParameter(34016);t.activeTexture(33984);const A=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget);const c=t.getParameter(3042);c&&t.disable(3042);const g=t.getParameter(2884);g&&t.disable(2884);const d=t.getParameter(2929);d&&t.disable(2929);const u=t.getParameter(2960);if(u&&t.disable(2960),e.defaultVao){const n=t.getParameter(34229);t.bindVertexArray(e.defaultVao),r(),t.bindVertexArray(n)}else{const n={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)},a=t.getParameter(34921),s=[];for(var o=0;o<a;++o){var i=t.getVertexAttrib(o,34338);const r=o==e.blitPosLoc;i&&!r&&t.disableVertexAttribArray(o),!i&&r&&t.enableVertexAttribArray(o),s[o]=i}r();for(o=0;o<a;++o){i=s[o];const r=o==e.blitPosLoc;i&&!r&&t.enableVertexAttribArray(o),!i&&r&&t.disableVertexAttribArray(o)}t.bindBuffer(34962,n.buffer),t.vertexAttribPointer(e.blitPosLoc,n.size,n.type,n.normalized,n.stride,n.offset)}u&&t.enable(2960),d&&t.enable(2929),g&&t.enable(2884),c&&t.enable(3042),t.bindTexture(3553,A),t.activeTexture(s),t.bindBuffer(34962,a),t.useProgram(n)}t.bindFramebuffer(36160,n),r&&t.enable(3089)},registerContext(e,t){const r=Qr.getNewId(Qr.contexts),n={handle:r,attributes:t,version:t.majorVersion,GLctx:e};e.canvas&&(e.canvas.GLctxObject=n),Qr.contexts[r]=n,(void 0===t.enableExtensionsByDefault||t.enableExtensionsByDefault)&&Qr.initExtensions(n),n.maxVertexAttribs=n.GLctx.getParameter(34921),n.clientBuffers=[];for(let e=0;e<n.maxVertexAttribs;e++)n.clientBuffers[e]={enabled:!1,clientside:!1,size:0,type:0,normalized:0,stride:0,ptr:0,vertexAttribPointerAdaptor:null};return Qr.generateTempBuffers(!1,n),t.renderViaOffscreenBackBuffer&&Qr.createOffscreenFramebuffer(n),r},makeContextCurrent:e=>(Qr.currentContext=Qr.contexts[e],r.ctx=on=Qr.currentContext&&Qr.currentContext.GLctx,!(e&&!on)),getContext:e=>Qr.contexts[e],deleteContext(e){Qr.currentContext===Qr.contexts[e]&&(Qr.currentContext=null),"object"==typeof Tr&&Tr.removeAllHandlersOnTarget(Qr.contexts[e].GLctx.canvas),Qr.contexts[e]&&Qr.contexts[e].GLctx.canvas&&(Qr.contexts[e].GLctx.canvas.GLctxObject=void 0),Qr.contexts[e]=null},initExtensions(e){if(e||(e=Qr.currentContext),e.initExtensionsDone)return;e.initExtensionsDone=!0;const{GLctx:t}=e;var r;!function(e){const t=e.getExtension("ANGLE_instanced_arrays");if(t)e.vertexAttribDivisor=function(e,r){t.vertexAttribDivisorANGLE(e,r)},e.drawArraysInstanced=function(e,r,n,o){t.drawArraysInstancedANGLE(e,r,n,o)},e.drawElementsInstanced=function(e,r,n,o,i){t.drawElementsInstancedANGLE(e,r,n,o,i)}}(t),function(e){const t=e.getExtension("OES_vertex_array_object");if(t)e.createVertexArray=function(){return t.createVertexArrayOES()},e.deleteVertexArray=function(e){t.deleteVertexArrayOES(e)},e.bindVertexArray=function(e){t.bindVertexArrayOES(e)},e.isVertexArray=function(e){return t.isVertexArrayOES(e)}}(t),function(e){const t=e.getExtension("WEBGL_draw_buffers");if(t)e.drawBuffers=function(e,r){t.drawBuffersWEBGL(e,r)}}(t),(r=t).dibvbi=r.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"),function(e){e.mdibvbi=e.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance")}(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")),function(e){e.multiDrawWebgl=e.getExtension("WEBGL_multi_draw")}(t);(t.getSupportedExtensions()||[]).forEach((e=>{e.includes("lose_context")||e.includes("debug")||t.getExtension(e)}))}},Tr={inEventHandler:0,removeAllEventListeners(){for(let e=Tr.eventHandlers.length-1;e>=0;--e)Tr._removeHandler(e);Tr.eventHandlers=[],Tr.deferredCalls=[]},registerRemoveEventListeners(){Tr.removeEventListenersRegistered||(Ae.push(Tr.removeAllEventListeners),Tr.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall(e,t,r){function n(e,t){if(e.length!=t.length)return!1;for(const r in e)if(e[r]!=t[r])return!1;return!0}for(const t in Tr.deferredCalls){const o=Tr.deferredCalls[t];if(o.targetFunction==e&&n(o.argsList,r))return}Tr.deferredCalls.push({targetFunction:e,precedence:t,argsList:r}),Tr.deferredCalls.sort(((e,t)=>e.precedence<t.precedence))},removeDeferredCalls(e){for(let t=0;t<Tr.deferredCalls.length;++t)Tr.deferredCalls[t].targetFunction==e&&(Tr.deferredCalls.splice(t,1),--t)},canPerformEventHandlerRequests:()=>Tr.inEventHandler&&Tr.currentEventHandler.allowsDeferredCalls,runDeferredCalls(){if(Tr.canPerformEventHandlerRequests())for(let e=0;e<Tr.deferredCalls.length;++e){const t=Tr.deferredCalls[e];Tr.deferredCalls.splice(e,1),--e,t.targetFunction.apply(null,t.argsList)}},eventHandlers:[],removeAllHandlersOnTarget(e,t){for(let r=0;r<Tr.eventHandlers.length;++r)Tr.eventHandlers[r].target!=e||t&&t!=Tr.eventHandlers[r].eventTypeString||Tr._removeHandler(r--)},_removeHandler(e){const t=Tr.eventHandlers[e];t.target.removeEventListener(t.eventTypeString,t.eventListenerFunc,t.useCapture),Tr.eventHandlers.splice(e,1)},registerOrRemoveHandler(e){const t=function(t){++Tr.inEventHandler,Tr.currentEventHandler=e,Tr.runDeferredCalls(),e.handlerFunc(t),Tr.runDeferredCalls(),--Tr.inEventHandler};if(e.callbackfunc)e.eventListenerFunc=t,e.target.addEventListener(e.eventTypeString,t,e.useCapture),Tr.eventHandlers.push(e),Tr.registerRemoveEventListeners();else for(let t=0;t<Tr.eventHandlers.length;++t)Tr.eventHandlers[t].target==e.target&&Tr.eventHandlers[t].eventTypeString==e.eventTypeString&&Tr._removeHandler(t--)},getNodeNameForTarget:e=>e?e==window?"#window":e==screen?"#screen":e&&e.nodeName?e.nodeName:"":"",fullscreenEnabled:()=>document.fullscreenEnabled||document.webkitFullscreenEnabled};const vr=["default","low-power","high-performance"],Pr=[0,"undefined"!=typeof document?document:0,"undefined"!=typeof window?window:0];function Rr(e){return"number"==typeof e&&(e=R(e)),e&&"#canvas"!==e?void 0!==Qr&&Qr.offscreenCanvases[e]?Qr.offscreenCanvases[e]:function(e){y("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?("number"==typeof e&&(e=Pr[e]||R(e)),"#window"===e?window:"#document"===e?document:"#screen"===e?screen:"#canvas"===e?r.canvas:"string"==typeof e?document.getElementById(e):e):window}catch(e){return null}}(e):void 0!==Qr&&Qr.offscreenCanvases.canvas?Qr.offscreenCanvases.canvas:r.canvas}function Mr(){return Qr.currentContext?Qr.currentContext.handle:0}function Sr(e){return Qr.makeContextCurrent(e)?0:-5}r._emscripten_webgl_get_current_context=Mr,r._emscripten_webgl_make_context_current=Sr;const Fr={};function Nr(){if(!Nr.strings){const t={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:`${("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")}.UTF-8`,_:A||"./this.program"};for(var e in Fr)void 0===Fr[e]?delete t[e]:t[e]=Fr[e];const r=[];for(var e in t)r.push(`${e}=${t[e]}`);Nr.strings=r}return Nr.strings}const kr=[];function xr(e,t,r,n){for(let o=0;o<e;o++){const e=on[r](),i=e&&Qr.getNewId(n);e?(e.name=i,n[i]=e):Qr.recordError(1282),K[t+4*o>>2]=i}}function Ur(e,t){J[e>>2]=t,J[e+4>>2]=(t-J[e>>2])/4294967296;const r=t>=0?function(e){return J[e>>2]+4294967296*J[e+4>>2]}(e):function(e){return J[e>>2]+4294967296*K[e+4>>2]}(e);r!=t&&y(`writeI53ToI64() out of range: serialized JS Number ${t} to Wasm heap as bytes lo=0x${J[e>>2].toString(16)}, hi=0x${J[e+4>>2].toString(16)}, which deserializes back to ${r} instead!`)}function jr(e){const t=F(e)+1,r=un(t);return S(e,r,t),r}function Lr(e){return"]"==e.slice(-1)&&e.lastIndexOf("[")}function Hr(e){return 0==(e-=5120)?V:1==e?W:2==e?z:4==e?K:6==e?Z:5==e||28922==e||28520==e||30779==e||30782==e?J:$}function Gr(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function Yr(e,t,r,n,o,i){const a=Hr(e),s=Gr(a),A=1<<s,c=function(e){return{5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[e-6402]||1}(t)*A,g=function(e,t,r,n){var o;return t*(e*r+(o=n)-1&-o)}(r,n,c,Qr.unpackAlignment);return a.subarray(o>>s,o+g>>s)}function Xr(e){const t=on.currentProgram;if(t){let r=t.uniformLocsById[e];return"number"==typeof r&&(t.uniformLocsById[e]=r=on.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?`[${r}]`:""))),r}Qr.recordError(1282)}const Vr=[];const Wr=[];function zr(){if(zr.called)return;zr.called=!0;const e=(new Date).getFullYear(),t=new Date(e,0,1),r=new Date(e,6,1),n=t.getTimezoneOffset(),o=r.getTimezoneOffset(),i=Math.max(n,o);function a(e){const t=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}K[In()>>2]=60*i,K[hn()>>2]=Number(n!=o);const s=a(t),A=a(r),c=G(s),g=G(A);o<n?(K[pn()>>2]=c,K[pn()+4>>2]=g):(K[pn()>>2]=g,K[pn()+4>>2]=c)}function $r(e){return e%4==0&&(e%100!=0||e%400==0)}function Kr(e,t){let r=0;for(let n=0;n<=t;r+=e[n++]);return r}const Jr=[31,29,31,30,31,30,31,31,30,31,30,31],Zr=[31,28,31,30,31,30,31,31,30,31,30,31];function qr(e,t){const r=new Date(e.getTime());for(;t>0;){const e=$r(r.getFullYear()),n=r.getMonth(),o=(e?Jr:Zr)[n];if(!(t>o-r.getDate()))return r.setDate(r.getDate()+t),r;t-=o-r.getDate()+1,r.setDate(1),n<11?r.setMonth(n+1):(r.setMonth(0),r.setFullYear(r.getFullYear()+1))}return r}function en(e,t,r,n){const o=K[n+40>>2],i={tm_sec:K[n>>2],tm_min:K[n+4>>2],tm_hour:K[n+8>>2],tm_mday:K[n+12>>2],tm_mon:K[n+16>>2],tm_year:K[n+20>>2],tm_wday:K[n+24>>2],tm_yday:K[n+28>>2],tm_isdst:K[n+32>>2],tm_gmtoff:K[n+36>>2],tm_zone:o?R(o):""};let a=R(r);const s={"%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 A in s)a=a.replace(new RegExp(A,"g"),s[A]);const c=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],g=["January","February","March","April","May","June","July","August","September","October","November","December"];function d(e,t,r){let n="number"==typeof e?e.toString():e||"";for(;n.length<t;)n=r[0]+n;return n}function u(e,t){return d(e,t,"0")}function l(e,t){function r(e){return e<0?-1:e>0?1:0}let n;return 0===(n=r(e.getFullYear()-t.getFullYear()))&&0===(n=r(e.getMonth()-t.getMonth()))&&(n=r(e.getDate()-t.getDate())),n}function E(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function f(e){const t=qr(new Date(e.tm_year+1900,0,1),e.tm_yday),r=new Date(t.getFullYear(),0,4),n=new Date(t.getFullYear()+1,0,4),o=E(r),i=E(n);return l(o,t)<=0?l(i,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}const p={"%a":e=>c[e.tm_wday].substring(0,3),"%A":e=>c[e.tm_wday],"%b":e=>g[e.tm_mon].substring(0,3),"%B":e=>g[e.tm_mon],"%C":e=>u((e.tm_year+1900)/100|0,2),"%d":e=>u(e.tm_mday,2),"%e":e=>d(e.tm_mday,2," "),"%g":e=>f(e).toString().substring(2),"%G":e=>f(e),"%H":e=>u(e.tm_hour,2),"%I"(e){let t=e.tm_hour;return 0==t?t=12:t>12&&(t-=12),u(t,2)},"%j":e=>u(e.tm_mday+Kr($r(e.tm_year+1900)?Jr:Zr,e.tm_mon-1),3),"%m":e=>u(e.tm_mon+1,2),"%M":e=>u(e.tm_min,2),"%n":()=>"\n","%p":e=>e.tm_hour>=0&&e.tm_hour<12?"AM":"PM","%S":e=>u(e.tm_sec,2),"%t":()=>"\t","%u":e=>e.tm_wday||7,"%U"(e){const t=new Date(e.tm_year+1900,0,1),r=0===t.getDay()?t:qr(t,7-t.getDay()),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(l(r,n)<0){const e=Kr($r(n.getFullYear())?Jr:Zr,n.getMonth()-1)-31,t=31-r.getDate()+e+n.getDate();return u(Math.ceil(t/7),2)}return 0===l(r,t)?"01":"00"},"%V"(e){const t=new Date(e.tm_year+1900,0,4),r=new Date(e.tm_year+1901,0,4),n=E(t),o=E(r),i=qr(new Date(e.tm_year+1900,0,1),e.tm_yday);if(l(i,n)<0)return"53";if(l(o,i)<=0)return"01";let a;return a=n.getFullYear()<e.tm_year+1900?e.tm_yday+32-n.getDate():e.tm_yday+1-n.getDate(),u(Math.ceil(a/7),2)},"%w":e=>e.tm_wday,"%W"(e){const t=new Date(e.tm_year,0,1),r=1===t.getDay()?t:qr(t,0===t.getDay()?1:7-t.getDay()+1),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(l(r,n)<0){const e=Kr($r(n.getFullYear())?Jr:Zr,n.getMonth()-1)-31,t=31-r.getDate()+e+n.getDate();return u(Math.ceil(t/7),2)}return 0===l(r,t)?"01":"00"},"%y":e=>(e.tm_year+1900).toString().substring(2),"%Y":e=>e.tm_year+1900,"%z"(e){let t=e.tm_gmtoff;const r=t>=0;return t=Math.abs(t)/60,t=t/60*100+t%60,(r?"+":"-")+String(`0000${t}`).slice(-4)},"%Z":e=>e.tm_zone,"%%":()=>"%"};for(var A in p)a.includes(A)&&(a=a.replace(new RegExp(A,"g"),p[A](i)));const h=cn(a,!1);return h.length>t?0:(Y(h,e),h.length-1)}r.requestFullscreen=function(e,t){Se.requestFullscreen(e,t)},r.requestFullScreen=function(){Se.requestFullScreen()},r.requestAnimationFrame=function(e){Se.requestAnimationFrame(e)},r.setCanvasSize=function(e,t,r){Se.setCanvasSize(e,t,r)},r.pauseMainLoop=function(){Se.mainLoop.pause()},r.resumeMainLoop=function(){Se.mainLoop.resume()},r.getUserMedia=function(){Se.getUserMedia()},r.createContext=function(e,t,r,n){return Se.createContext(e,t,r,n)};const tn=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=Je.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n},rn=365,nn=146;let on;Object.defineProperties(tn.prototype,{read:{get(){return(this.mode&rn)===rn},set(e){e?this.mode|=rn:this.mode&=-366}},write:{get(){return(this.mode&nn)===nn},set(e){e?this.mode|=nn:this.mode&=-147}},isFolder:{get(){return Je.isDir(this.mode)}},isDevice:{get(){return Je.isChrdev(this.mode)}}}),Je.FSNode=tn,Je.staticInit(),r.FS_createPath=Je.createPath,r.FS_createDataFile=Je.createDataFile,r.FS_createPreloadedFile=Je.createPreloadedFile,r.FS_createLazyFile=Je.createLazyFile,r.FS_createDevice=Je.createDevice,r.FS_unlink=Je.unlink,r.count_emval_handles=it,r.get_first_emval=at,ct=r.PureVirtualError=At(Error,"PureVirtualError"),function(){const e=new Array(256);for(let t=0;t<256;++t)e[t]=String.fromCharCode(t);gt=e}(),r.getInheritedInstanceCount=ut,r.getLiveInheritedInstances=lt,r.flushPendingDeletes=ft,r.setDelayFunction=ht,mt=r.BindingError=At(Error,"BindingError"),Ft=r.InternalError=At(Error,"InternalError"),Vt.prototype.isAliasOf=jt,Vt.prototype.clone=Ht,Vt.prototype.delete=Gt,Vt.prototype.isDeleted=Yt,Vt.prototype.deleteLater=Xt,sr.prototype.getPointee=tr,sr.prototype.destructor=rr,sr.prototype.argPackAdvance=8,sr.prototype.readValueFromPointer=Rt,sr.prototype.deleteObject=nr,sr.prototype.fromWireType=ar,dr=r.UnboundTypeError=At(Error,"UnboundTypeError");for(var an=0;an<32;++an)kr.push(new Array(an));const sn=new Float32Array(288);for(an=0;an<288;++an)Vr[an]=sn.subarray(0,an+1);const An=new Int32Array(288);for(an=0;an<288;++an)Wr[an]=An.subarray(0,an+1);function cn(e,t,r){const n=r>0?r:F(e)+1,o=new Array(n),i=M(e,o,0,o.length);return t&&(o.length=i),o}"function"==typeof atob&&atob;var gn={HaveOffsetConverter:function(){return"undefined"!=typeof wasmOffsetConverter},__cxa_allocate_exception:function(e){return un(e+16)+16},__cxa_atexit:function(e,t){},__cxa_begin_catch:function(e){const t=new xe(e),r=t.get_exception_info();return r.get_caught()||r.set_caught(!0),r.set_rethrown(!1),Ue.push(t),function(e){e.add_ref()}(r),t.get_exception_ptr()},__cxa_end_catch:function(){_n(0),T(Ue.length>0);const e=Ue.pop();!function(e){if(e.release_ref()&&!e.get_rethrown()){const t=e.get_destructor();t&&ne.get(t)(e.excPtr),Le(e.excPtr)}}(e.get_exception_info()),e.free(),je=0},__cxa_find_matching_catch_2:function(){const e=je;if(!e)return w(0),0;const t=new ke(e).get_type(),r=new xe;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return w(0),0|r.ptr;const n=Array.prototype.slice.call(arguments);for(let e=0;e<n.length;e++){const o=n[e];if(0===o||o===t)break;if(wn(o,t,r.get_adjusted_ptr_addr()))return w(o),0|r.ptr}return w(t),0|r.ptr},__cxa_find_matching_catch_3:function(){const e=je;if(!e)return w(0),0;const t=new ke(e).get_type(),r=new xe;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return w(0),0|r.ptr;const n=Array.prototype.slice.call(arguments);for(let e=0;e<n.length;e++){const o=n[e];if(0===o||o===t)break;if(wn(o,t,r.get_adjusted_ptr_addr()))return w(o),0|r.ptr}return w(t),0|r.ptr},__cxa_free_exception:Le,__cxa_rethrow:function(){const e=Ue.pop();e||ye("no exception to throw");const t=e.get_exception_info(),r=e.get_base_ptr();throw t.get_rethrown()?e.free():(Ue.push(e),t.set_rethrown(!0),t.set_caught(!1)),je=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.`},__cxa_thread_atexit:function(e,t){},__cxa_throw:function(e,t,r){throw new ke(e).init(t,r),je=e,`${e} - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch.`},__resumeException:function(e){const t=new xe(e),r=t.get_base_ptr();throw je||(je=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.`},__sys_fcntl64:function(e,t,r){Ze.varargs=r;try{const r=Ze.getStreamFromFD(e);switch(t){case 0:{if((n=Ze.get())<0)return-28;let e;return e=Je.open(r.path,r.flags,0,n),e.fd}case 1:case 2:case 13:case 14:return 0;case 3:return r.flags;case 4:var n=Ze.get();return r.flags|=n,0;case 12:n=Ze.get();return z[n+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return He(28),-1}}catch(e){return void 0!==Je&&e instanceof Je.ErrnoError||ye(e),-e.errno}},__sys_ioctl:function(e,t,r){Ze.varargs=r;try{const r=Ze.getStreamFromFD(e);switch(t){case 21509:case 21505:case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:case 21523:case 21524:return r.tty?0:-59;case 21519:if(!r.tty)return-59;var n=Ze.get();return K[n>>2]=0,0;case 21520:return r.tty?-28:-59;case 21531:n=Ze.get();return Je.ioctl(r,t,n);default:ye(`bad ioctl syscall ${t}`)}}catch(e){return void 0!==Je&&e instanceof Je.ErrnoError||ye(e),-e.errno}},__sys_mmap2:function(e,t,r,n,o,i){try{return function(e,t,r,n,o,i){let a;i<<=12;let s=!1;if(16&n&&e%65536!=0)return-28;if(32&n){if(a=We(t),!a)return-48;s=!0}else{const A=Je.getStream(o);if(!A)return-8;const c=Je.mmap(A,e,t,i,r,n);a=c.ptr,s=c.allocated}return Ze.mappings[a]={malloc:a,len:t,allocated:s,fd:o,prot:r,flags:n,offset:i},a}(e,t,r,n,o,i)}catch(e){return void 0!==Je&&e instanceof Je.ErrnoError||ye(e),-e.errno}},__sys_open:function(e,t,r){Ze.varargs=r;try{const n=Ze.getStr(e),o=r?Ze.get():0;return Je.open(n,t,o).fd}catch(e){return void 0!==Je&&e instanceof Je.ErrnoError||ye(e),-e.errno}},__sys_stat64:function(e,t){try{return e=Ze.getStr(e),Ze.doStat(Je.stat,e,t)}catch(e){return void 0!==Je&&e instanceof Je.ErrnoError||ye(e),-e.errno}},_embind_create_inheriting_constructor:function(e,t,r){e=dt(e),t=Dt(t,"wrapper"),r=_t(r);const n=[].slice,{registeredClass:o}=t,i=o.instancePrototype,{baseClass:a}=o,s=a.instancePrototype,A=o.baseClass.constructor,c=rt(e,(function(){o.baseClass.pureVirtualFunctions.forEach((e=>{if(this[e]===s[e])throw new ct(`Pure virtual function ${e} must be implemented in JavaScript`)})),Object.defineProperty(this,"__parent",{value:i}),this.__construct.apply(this,n.call(arguments))}));i.__construct=function(){this===i&&Ct("Pass correct 'this' to __construct");const e=A.implement.apply(void 0,[this].concat(n.call(arguments)));Ot(e);const{$$:t}=e;var r,a,s;e.notifyOnDestruction(),t.preservePointerOnDelete=!0,Object.defineProperties(this,{$$:{value:t}}),Tt(this),r=o,a=t.ptr,s=this,a=yt(r,a),It.hasOwnProperty(a)?Ct(`Tried to register registered instance: ${a}`):It[a]=s},i.__destruct=function(){var e,t;this===i&&Ct("Pass correct 'this' to __destruct"),Ot(this),e=o,t=this.$$.ptr,t=yt(e,t),It.hasOwnProperty(t)?delete It[t]:Ct(`Tried to unregister unregistered instance: ${t}`)},c.prototype=Object.create(i);for(const e in r)c.prototype[e]=r[e];return st(c)},_embind_finalize_value_object:function(e){const t=vt[e];delete vt[e];const{rawConstructor:r}=t,{rawDestructor:n}=t,o=t.fields;kt([e],o.map((e=>e.getterReturnType)).concat(o.map((e=>e.setterArgumentType))),(e=>{const i={};return o.forEach(((t,r)=>{const{fieldName:n}=t,a=e[r],{getter:s}=t,{getterContext:A}=t,c=e[r+o.length],{setter:g}=t,{setterContext:d}=t;i[n]={read:e=>a.fromWireType(s(A,e)),write(e,t){const r=[];g(d,e,c.toWireType(r,t)),Pt(r)}}})),[{name:t.name,fromWireType(e){const t={};for(const r in i)t[r]=i[r].read(e);return n(e),t},toWireType(e,t){for(var o in i)if(!(o in t))throw new TypeError(`Missing field: "${o}"`);const a=r();for(o in i)i[o].write(a,t[o]);return null!==e&&e.push(n,a),a},argPackAdvance:8,readValueFromPointer:Rt,destructorFunction:n}]}))},_embind_register_bigint:function(e,t,r,n,o){},_embind_register_bool:function(e,t,r,n,o){const i=xt(r);Ut(e,{name:t=dt(t),fromWireType:e=>!!e,toWireType:(e,t)=>t?n:o,argPackAdvance:8,readValueFromPointer(e){let n;if(1===r)n=V;else if(2===r)n=z;else{if(4!==r)throw new TypeError(`Unknown boolean type size: ${t}`);n=K}return this.fromWireType(n[e>>i])},destructorFunction:null})},_embind_register_class:function(e,t,r,n,o,i,a,s,A,c,g,d,u){g=dt(g),i=gr(o,i),s&&(s=gr(a,s)),c&&(c=gr(A,c)),u=gr(d,u);const l=tt(g);$t(l,(()=>{ur(`Cannot construct ${g} due to unbound types`,[n])})),kt([e,t,r],n?[n]:[],(t=>{let r,o;t=t[0],n?(r=t.registeredClass,o=r.instancePrototype):o=Vt.prototype;const a=rt(l,(function(){if(Object.getPrototypeOf(this)!==A)throw new mt(`Use 'new' to construct ${g}`);if(void 0===d.constructor_body)throw new mt(`${g} has no accessible constructor`);const e=d.constructor_body[arguments.length];if(void 0===e)throw new mt(`Tried to invoke ctor of ${g} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(d.constructor_body).toString()}) parameters instead!`);return e.apply(this,arguments)}));var A=Object.create(o,{constructor:{value:a}});a.prototype=A;var d=new Kt(g,a,A,u,r,i,s,c);const E=new sr(g,d,!0,!1,!1),f=new sr(`${g}*`,d,!1,!1,!1),p=new sr(`${g} const*`,d,!1,!0,!1);return Wt[e]={pointerType:f,constPointerType:p},Ar(l,a),[E,f,p]}))},_embind_register_class_class_function:function(e,t,r,n,o,i,a){const s=fr(r,n);t=dt(t),i=gr(o,i),kt([],[e],(e=>{const n=`${(e=e[0]).name}.${t}`;function o(){ur(`Cannot call ${n} due to unbound types`,s)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]);const A=e.registeredClass.constructor;return void 0===A[t]?(o.argCount=r-1,A[t]=o):(zt(A,t,n),A[t].overloadTable[r-1]=o),kt([],s,(e=>{const o=[e[0],null].concat(e.slice(1)),s=Er(n,o,null,i,a);return void 0===A[t].overloadTable?(s.argCount=r-1,A[t]=s):A[t].overloadTable[r-1]=s,[]})),[]}))},_embind_register_class_constructor:function(e,t,r,n,o,i){T(t>0);const a=fr(t,r);o=gr(n,o),kt([],[e],(e=>{const r=`constructor ${(e=e[0]).name}`;if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[t-1])throw new mt(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${e.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return e.registeredClass.constructor_body[t-1]=function(){ur(`Cannot construct ${e.name} due to unbound types`,a)},kt([],a,(n=>(n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=Er(r,n,null,o,i),[]))),[]}))},_embind_register_class_function:function(e,t,r,n,o,i,a,s){const A=fr(r,n);t=dt(t),i=gr(o,i),kt([],[e],(e=>{const n=`${(e=e[0]).name}.${t}`;function o(){ur(`Cannot call ${n} due to unbound types`,A)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(t);const c=e.registeredClass.instancePrototype,g=c[t];return void 0===g||void 0===g.overloadTable&&g.className!==e.name&&g.argCount===r-2?(o.argCount=r-2,o.className=e.name,c[t]=o):(zt(c,t,n),c[t].overloadTable[r-2]=o),kt([],A,(o=>{const s=Er(n,o,e,i,a);return void 0===c[t].overloadTable?(s.argCount=r-2,c[t]=s):c[t].overloadTable[r-2]=s,[]})),[]}))},_embind_register_class_property:function(e,t,r,n,o,i,a,s,A,c){t=dt(t),o=gr(n,o),kt([],[e],(e=>{const n=`${(e=e[0]).name}.${t}`,g={get(){ur(`Cannot access ${n} due to unbound types`,[r,a])},enumerable:!0,configurable:!0};return g.set=A?function(){ur(`Cannot access ${n} due to unbound types`,[r,a])}:function(e){Ct(`${n} is a read-only property`)},Object.defineProperty(e.registeredClass.instancePrototype,t,g),kt([],A?[r,a]:[r],(r=>{const a=r[0],g={get(){const t=pr(this,e,`${n} getter`);return a.fromWireType(o(i,t))},enumerable:!0};if(A){A=gr(s,A);const t=r[1];g.set=function(r){const o=pr(this,e,`${n} setter`),i=[];A(c,o,t.toWireType(i,r)),Pt(i)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,g),[]})),[]}))},_embind_register_emval:function(e,t){Ut(e,{name:t=dt(t),fromWireType(e){const t=ot[e].value;return hr(e),t},toWireType:(e,t)=>st(t),argPackAdvance:8,readValueFromPointer:Rt,destructorFunction:null})},_embind_register_float:function(e,t,r){const n=xt(r);Ut(e,{name:t=dt(t),fromWireType:e=>e,toWireType(e,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError(`Cannot convert "${Ir(t)}" to ${this.name}`);return t},argPackAdvance:8,readValueFromPointer:mr(t,n),destructorFunction:null})},_embind_register_function:function(e,t,r,n,o,i){const a=fr(t,r);e=dt(e),o=gr(n,o),$t(e,(()=>{ur(`Cannot call ${e} due to unbound types`,a)}),t-1),kt([],a,(r=>{const n=[r[0],null].concat(r.slice(1));return Ar(e,Er(e,n,null,o,i),t-1),[]}))},_embind_register_integer:function(e,t,r,n,o){t=dt(t),-1===o&&(o=4294967295);const i=xt(r);let a=function(e){return e};if(0===n){const e=32-8*r;a=function(t){return t<<e>>>e}}const s=t.includes("unsigned");Ut(e,{name:t,fromWireType:a,toWireType(e,r){if("number"!=typeof r&&"boolean"!=typeof r)throw new TypeError(`Cannot convert "${Ir(r)}" to ${this.name}`);if(r<n||r>o)throw new TypeError(`Passing a number "${Ir(r)}" from JS side to C/C++ side to an argument of type "${t}", which is outside the valid range [${n}, ${o}]!`);return s?r>>>0:0|r},argPackAdvance:8,readValueFromPointer:Cr(t,i,0!==n),destructorFunction:null})},_embind_register_memory_view:function(e,t,r){const n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function o(e){const t=J,r=t[e>>=2],o=t[e+1];return new n(X,o,r)}Ut(e,{name:r=dt(r),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},_embind_register_std_string:function(e,t){const r="std::string"===(t=dt(t));Ut(e,{name:t,fromWireType(e){const t=J[e>>2];let n;if(r){let r=e+4;for(var o=0;o<=t;++o){const i=e+4+o;if(o==t||0==W[i]){const e=R(r,i-r);void 0===n?n=e:(n+=String.fromCharCode(0),n+=e),r=i+1}}}else{const r=new Array(t);for(o=0;o<t;++o)r[o]=String.fromCharCode(W[e+4+o]);n=r.join("")}return dn(e),n},toWireType(e,t){let n;t instanceof ArrayBuffer&&(t=new Uint8Array(t));const o="string"==typeof t;o||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||Ct("Cannot pass non-string to std::string"),n=r&&o?function(){return F(t)}:function(){return t.length};const i=n(),a=un(4+i+1);if(J[a>>2]=i,r&&o)S(t,a+4,i+1);else if(o)for(var s=0;s<i;++s){const e=t.charCodeAt(s);e>255&&(dn(a),Ct("String has UTF-16 code units that do not fit in 8 bits")),W[a+4+s]=e}else for(s=0;s<i;++s)W[a+4+s]=t[s];return null!==e&&e.push(dn,a),a},argPackAdvance:8,readValueFromPointer:Rt,destructorFunction(e){dn(e)}})},_embind_register_std_wstring:function(e,t,r){let n,o,i,a,s;r=dt(r),2===t?(n=k,o=x,a=U,i=function(){return $},s=1):4===t&&(n=j,o=L,a=H,i=function(){return J},s=2),Ut(e,{name:r,fromWireType(e){const r=J[e>>2],o=i();let a,A=e+4;for(let i=0;i<=r;++i){const c=e+4+i*t;if(i==r||0==o[c>>s]){const e=n(A,c-A);void 0===a?a=e:(a+=String.fromCharCode(0),a+=e),A=c+t}}return dn(e),a},toWireType(e,n){"string"!=typeof n&&Ct(`Cannot pass non-string to C++ string type ${r}`);const i=a(n),A=un(4+i+t);return J[A>>2]=i>>s,o(n,A+4,i+t),null!==e&&e.push(dn,A),A},argPackAdvance:8,readValueFromPointer:Rt,destructorFunction(e){dn(e)}})},_embind_register_value_object:function(e,t,r,n,o,i){vt[e]={name:dt(t),rawConstructor:gr(r,n),rawDestructor:gr(o,i),fields:[]}},_embind_register_value_object_field:function(e,t,r,n,o,i,a,s,A,c){vt[e].fields.push({fieldName:dt(t),getterReturnType:r,getter:gr(n,o),getterContext:i,setterArgumentType:a,setter:gr(s,A),setterContext:c})},_embind_register_void:function(e,t){Ut(e,{isVoid:!0,name:t=dt(t),argPackAdvance:0,fromWireType(){},toWireType(e,t){}})},_emval_call_void_method:function(e,t,r,n){(e=_r[e])(t=_t(t),r=function(e){const t=yr[e];return void 0===t?dt(e):t}(r),null,n)},_emval_decref:hr,_emval_get_method_caller:function(e,t){const r=function(e,t){const r=new Array(e);for(let n=0;n<e;++n)r[n]=Dt(K[(t>>2)+n],`parameter ${n}`);return r}(e,t),n=r[0],o=`${n.name}_$${r.slice(1).map((e=>e.name)).join("_")}$`,i=["retType"],a=[n];let s="";for(var A=0;A<e-1;++A)s+=`${0!==A?", ":""}arg${A}`,i.push(`argType${A}`),a.push(r[1+A]);let c=`return function ${tt(`methodCaller_${o}`)}(handle, name, destructors, args) {\n`,g=0;for(A=0;A<e-1;++A)c+=` var arg${A} = argType${A}.readValueFromPointer(args${g?`+${g}`:""});\n`,g+=r[A+1].argPackAdvance;for(c+=` var rv = handle[name](${s});\n`,A=0;A<e-1;++A)r[A+1].deleteObject&&(c+=` argType${A}.deleteObject(arg${A});\n`);return n.isVoid||(c+=" return retType.toWireType(destructors, rv);\n"),c+="};\n",i.push(c),function(e){const t=_r.length;return _r.push(e),t}(lr(Function,i).apply(null,a))},_emval_incref:function(e){e>4&&(ot[e].refcount+=1)},_emval_take_value:function(e,t){return st((e=Dt(e,"_emval_take_value")).readValueFromPointer(t))},abort:function(){ye()},clock_gettime:function(e,t){let r;if(0===e)r=Date.now();else{if(1!==e&&4!==e)return He(28),-1;r=Te()}return K[t>>2]=r/1e3|0,K[t+4>>2]=r%1e3*1e3*1e3|0,0},dlopen:function(e,t){ye("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")},dlsym:function(e,t){ye("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")},emscripten_asm_const_int:function(e,t,r){const n=function(e,t){let r;for(T(Array.isArray(wr)),T(t%16==0),wr.length=0,t>>=2;r=W[e++];){T(100===r||102===r||105===r);const e=r<105;e&&1&t&&t++,wr.push(e?q[t++>>1]:K[t]),++t}return wr}(t,r);return be.hasOwnProperty(e)||ye(`No EM_ASM constant found at address ${e}`),be[e].apply(null,n)},emscripten_get_heap_max:function(){return 2147483648},emscripten_memcpy_big:function(e,t,r){W.copyWithin(e,t,t+r)},emscripten_pc_get_function:function(e){ye("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")},emscripten_resize_heap:function(e){const t=W.length;T((e>>>=0)>t);const r=2147483648;if(e>r)return C(`Cannot enlarge memory, asked to go up to ${e} bytes, but the limit is 2147483648 bytes!`),!1;for(let a=1;a<=4;a*=2){let s=t*(1+.2/a);s=Math.min(s,e+100663296);var n=Math.min(r,((o=Math.max(e,s))%(i=65536)>0&&(o+=i-o%i),o));if(Br(n))return!0}var o,i;return C(`Failed to grow the heap from ${t} bytes to ${n} bytes, not enough memory!`),!1},emscripten_stack_snapshot:function(){const e=(new Error).stack.split("\n");return"Error"==e[0]&&e.shift(),br(e),Or.last_addr=Dr(e[2]),Or.last_stack=e,Or.last_addr},emscripten_stack_unwind_buffer:function(e,t,r){let n;Or.last_addr==e?n=Or.last_stack:(n=(new Error).stack.split("\n"),"Error"==n[0]&&n.shift(),br(n));let o=2;for(;n[o]&&Dr(n[o])!=e;)++o;for(var i=0;i<r&&n[i+o];++i)K[t+4*i>>2]=Dr(n[i+o]);return i},emscripten_thread_sleep:function(e){const t=Te();for(;Te()-t<e;);},emscripten_webgl_create_context:function(e,t){return function(e,t){T(t);const r=t>>2,n=K[r+6],o={alpha:!!K[r+0],depth:!!K[r+1],stencil:!!K[r+2],antialias:!!K[r+3],premultipliedAlpha:!!K[r+4],preserveDrawingBuffer:!!K[r+5],powerPreference:vr[n],failIfMajorPerformanceCaveat:!!K[r+7],majorVersion:K[r+8],minorVersion:K[r+9],enableExtensionsByDefault:K[r+10],explicitSwapControl:K[r+11],proxyContextToMainThread:K[r+12],renderViaOffscreenBackBuffer:K[r+13]};let i=Rr(e);if(!i)return 0;if(i.offscreenCanvas&&(i=i.offscreenCanvas),o.explicitSwapControl&&(i.transferControlToOffscreen||"undefined"!=typeof OffscreenCanvas&&i instanceof OffscreenCanvas||o.renderViaOffscreenBackBuffer||(o.renderViaOffscreenBackBuffer=!0),i.transferControlToOffscreen)){if(i.controlTransferredOffscreen){if(!Qr.offscreenCanvases[i.id])return 0}else Qr.offscreenCanvases[i.id]={canvas:i.transferControlToOffscreen(),canvasSharedPtr:un(12),id:i.id},i.controlTransferredOffscreen=!0;i=Qr.offscreenCanvases[i.id]}return Qr.createContext(i,o)}(e,t)},emscripten_webgl_destroy_context:function(e){Qr.currentContext==e&&(Qr.currentContext=0),Qr.deleteContext(e)},emscripten_webgl_get_context_attributes:function(e,t){if(!t)return-5;if(!(e=Qr.contexts[e]))return-3;let r=e.GLctx;if(!r)return-3;r=r.getContextAttributes(),K[t>>2]=r.alpha,K[t+4>>2]=r.depth,K[t+8>>2]=r.stencil,K[t+12>>2]=r.antialias,K[t+16>>2]=r.premultipliedAlpha,K[t+20>>2]=r.preserveDrawingBuffer;const n=r.powerPreference&&vr.indexOf(r.powerPreference);return K[t+24>>2]=n,K[t+28>>2]=r.failIfMajorPerformanceCaveat,K[t+32>>2]=e.version,K[t+36>>2]=0,K[t+40>>2]=e.attributes.enableExtensionsByDefault,0},emscripten_webgl_get_current_context:Mr,emscripten_webgl_init_context_attributes:function(e){T(e);const t=e>>2;for(let e=0;e<14;++e)K[t+e]=0;K[t+0]=K[t+1]=K[t+3]=K[t+4]=K[t+8]=K[t+10]=1},emscripten_webgl_make_context_current:Sr,environ_get:function(e,t){let r=0;return Nr().forEach(((n,o)=>{const i=t+r;K[e+4*o>>2]=i,function(e,t,r){for(let r=0;r<e.length;++r)T(e.charCodeAt(r)==e.charCodeAt(r)&255),V[0|t++]=e.charCodeAt(r);r||(V[0|t]=0)}(n,i),r+=n.length+1})),0},environ_sizes_get:function(e,t){const r=Nr();K[e>>2]=r.length;let n=0;return r.forEach((e=>{n+=e.length+1})),K[t>>2]=n,0},exit:ve,fd_close:function(e){try{const t=Ze.getStreamFromFD(e);return Je.close(t),0}catch(e){return void 0!==Je&&e instanceof Je.ErrnoError||ye(e),e.errno}},fd_read:function(e,t,r,n){try{const o=Ze.getStreamFromFD(e),i=Ze.doReadv(o,t,r);return K[n>>2]=i,0}catch(e){return void 0!==Je&&e instanceof Je.ErrnoError||ye(e),e.errno}},fd_seek:function(e,t,r,n,o){try{const i=Ze.getStreamFromFD(e),a=r*4294967296+(t>>>0),s=9007199254740992;return a<=-s||a>=s?-61:(Je.llseek(i,a,n),Oe=[i.position>>>0,(De=i.position,+Math.abs(De)>=1?De>0?(0|Math.min(+Math.floor(De/4294967296),4294967295))>>>0:~~+Math.ceil((De-+(~~De>>>0))/4294967296)>>>0:0)],K[o>>2]=Oe[0],K[o+4>>2]=Oe[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0)}catch(e){return void 0!==Je&&e instanceof Je.ErrnoError||ye(e),e.errno}},fd_write:function(e,t,r,n){try{const o=Ze.getStreamFromFD(e),i=Ze.doWritev(o,t,r);return K[n>>2]=i,0}catch(e){return void 0!==Je&&e instanceof Je.ErrnoError||ye(e),e.errno}},getTempRet0:function(){return _},getentropy:function e(t,r){e.randomDevice||(e.randomDevice=Ye());for(let n=0;n<r;n++)V[t+n|0]=e.randomDevice();return 0},glActiveTexture:function(e){on.activeTexture(e)},glAttachShader:function(e,t){on.attachShader(Qr.programs[e],Qr.shaders[t])},glBindAttribLocation:function(e,t,r){on.bindAttribLocation(Qr.programs[e],t,R(r))},glBindBuffer:function(e,t){34962==e?on.currentArrayBufferBinding=t:34963==e&&(on.currentElementArrayBufferBinding=t),35051==e?on.currentPixelPackBufferBinding=t:35052==e&&(on.currentPixelUnpackBufferBinding=t),on.bindBuffer(e,Qr.buffers[t])},glBindBufferBase:function(e,t,r){on.bindBufferBase(e,t,Qr.buffers[r])},glBindFramebuffer:function(e,t){on.bindFramebuffer(e,t?Qr.framebuffers[t]:Qr.currentContext.defaultFbo)},glBindTexture:function(e,t){on.bindTexture(e,Qr.textures[t])},glBindVertexArray:function(e){on.bindVertexArray(Qr.vaos[e]);const t=on.getParameter(34965);on.currentElementArrayBufferBinding=t?0|t.name:0},glBufferData:function(e,t,r,n){Qr.currentContext.version>=2?r?on.bufferData(e,W,n,r,t):on.bufferData(e,t,n):on.bufferData(e,r?W.subarray(r,r+t):t,n)},glClientWaitSync:function(e,t,r,n){return on.clientWaitSync(Qr.syncs[e],t,(o=r,T((i=n)===(0|i)),(o>>>0)+4294967296*i));var o,i},glCompileShader:function(e){on.compileShader(Qr.shaders[e])},glCreateProgram:function(){const e=Qr.getNewId(Qr.programs),t=on.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,Qr.programs[e]=t,e},glCreateShader:function(e){const t=Qr.getNewId(Qr.shaders);return Qr.shaders[t]=on.createShader(e),t},glDeleteBuffers:function(e,t){for(let r=0;r<e;r++){const e=K[t+4*r>>2],n=Qr.buffers[e];n&&(on.deleteBuffer(n),n.name=0,Qr.buffers[e]=null,e==on.currentArrayBufferBinding&&(on.currentArrayBufferBinding=0),e==on.currentElementArrayBufferBinding&&(on.currentElementArrayBufferBinding=0),e==on.currentPixelPackBufferBinding&&(on.currentPixelPackBufferBinding=0),e==on.currentPixelUnpackBufferBinding&&(on.currentPixelUnpackBufferBinding=0))}},glDeleteFramebuffers:function(e,t){for(let r=0;r<e;++r){const e=K[t+4*r>>2],n=Qr.framebuffers[e];n&&(on.deleteFramebuffer(n),n.name=0,Qr.framebuffers[e]=null)}},glDeleteProgram:function(e){if(!e)return;const t=Qr.programs[e];t?(on.deleteProgram(t),t.name=0,Qr.programs[e]=null):Qr.recordError(1281)},glDeleteShader:function(e){if(!e)return;const t=Qr.shaders[e];t?(on.deleteShader(t),Qr.shaders[e]=null):Qr.recordError(1281)},glDeleteSync:function(e){if(!e)return;const t=Qr.syncs[e];t?(on.deleteSync(t),t.name=0,Qr.syncs[e]=null):Qr.recordError(1281)},glDeleteTextures:function(e,t){for(let r=0;r<e;r++){const e=K[t+4*r>>2],n=Qr.textures[e];n&&(on.deleteTexture(n),n.name=0,Qr.textures[e]=null)}},glDeleteVertexArrays:function(e,t){for(let r=0;r<e;r++){const e=K[t+4*r>>2];on.deleteVertexArray(Qr.vaos[e]),Qr.vaos[e]=null}},glDisable:function(e){on.disable(e)},glDisableVertexAttribArray:function(e){Qr.currentContext.clientBuffers[e].enabled=!1,on.disableVertexAttribArray(e)},glDrawArrays:function(e,t,r){Qr.preDrawHandleClientVertexAttribBindings(t+r),on.drawArrays(e,t,r),Qr.postDrawHandleClientVertexAttribBindings()},glDrawBuffers:function(e,t){const r=kr[e];for(let n=0;n<e;n++)r[n]=K[t+4*n>>2];on.drawBuffers(r)},glEnableVertexAttribArray:function(e){Qr.currentContext.clientBuffers[e].enabled=!0,on.enableVertexAttribArray(e)},glFenceSync:function(e,t){const r=on.fenceSync(e,t);if(r){const e=Qr.getNewId(Qr.syncs);return r.name=e,Qr.syncs[e]=r,e}return 0},glFinish:function(){on.finish()},glFlush:function(){on.flush()},glFramebufferTexture2D:function(e,t,r,n,o){on.framebufferTexture2D(e,t,r,Qr.textures[n],o)},glFramebufferTextureLayer:function(e,t,r,n,o){on.framebufferTextureLayer(e,t,Qr.textures[r],n,o)},glGenBuffers:function(e,t){xr(e,t,"createBuffer",Qr.buffers)},glGenFramebuffers:function(e,t){xr(e,t,"createFramebuffer",Qr.framebuffers)},glGenTextures:function(e,t){xr(e,t,"createTexture",Qr.textures)},glGenVertexArrays:function(e,t){xr(e,t,"createVertexArray",Qr.vaos)},glGetAttribLocation:function(e,t){return on.getAttribLocation(Qr.programs[e],R(t))},glGetError:function(){const e=on.getError()||Qr.lastError;return Qr.lastError=0,e},glGetIntegerv:function(e,t){!function(e,t,r){if(!t)return void Qr.recordError(1281);let n;switch(e){case 36346:n=1;break;case 36344:return void(0!=r&&1!=r&&Qr.recordError(1280));case 34814:case 36345:n=0;break;case 34466:var o=on.getParameter(34467);n=o?o.length:0;break;case 33309:if(Qr.currentContext.version<2)return void Qr.recordError(1282);n=2*(on.getSupportedExtensions()||[]).length;break;case 33307:case 33308:if(Qr.currentContext.version<2)return void Qr.recordError(1280);n=33307==e?3:0}if(void 0===n){const o=on.getParameter(e);switch(typeof o){case"number":n=o;break;case"boolean":n=o?1:0;break;case"string":return void Qr.recordError(1280);case"object":if(null===o)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:n=0;break;default:return void Qr.recordError(1280)}else{if(o instanceof Float32Array||o instanceof Uint32Array||o instanceof Int32Array||o instanceof Array){for(let e=0;e<o.length;++e)switch(r){case 0:K[t+4*e>>2]=o[e];break;case 2:Z[t+4*e>>2]=o[e];break;case 4:V[t+e|0]=o[e]?1:0}return}try{n=0|o.name}catch(t){return Qr.recordError(1280),void C(`GL_INVALID_ENUM in glGet${r}v: Unknown object returned from WebGL getParameter(${e})! (error: ${t})`)}}break;default:return Qr.recordError(1280),void C(`GL_INVALID_ENUM in glGet${r}v: Native code calling glGet${r}v(${e}) and it returns ${o} of type ${typeof o}!`)}}switch(r){case 1:Ur(t,n);break;case 0:K[t>>2]=n;break;case 2:Z[t>>2]=n;break;case 4:V[0|t]=n?1:0}}(e,t,0)},glGetString:function(e){let t=Qr.stringCache[e];if(!t){switch(e){case 7939:var r=on.getSupportedExtensions()||[];t=jr((r=r.concat(r.map((e=>`GL_${e}`)))).join(" "));break;case 7936:case 7937:case 37445:case 37446:var n=on.getParameter(e);n||Qr.recordError(1280),t=n&&jr(n);break;case 7938:var o=on.getParameter(7938);t=jr(o=Qr.currentContext.version>=2?`OpenGL ES 3.0 (${o})`:`OpenGL ES 2.0 (${o})`);break;case 35724:var i=on.getParameter(35724),a=i.match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);null!==a&&(3==a[1].length&&(a[1]=`${a[1]}0`),i=`OpenGL ES GLSL ES ${a[1]} (${i})`),t=jr(i);break;default:Qr.recordError(1280)}Qr.stringCache[e]=t}return t},glGetUniformBlockIndex:function(e,t){return on.getUniformBlockIndex(Qr.programs[e],R(t))},glGetUniformLocation:function(e,t){if(t=R(t),e=Qr.programs[e]){!function(e){let{uniformLocsById:t}=e;const{uniformSizeAndIdsByName:r}=e;let n,o;if(!t)for(e.uniformLocsById=t={},e.uniformArrayNamesById={},n=0;n<on.getProgramParameter(e,35718);++n){const i=on.getActiveUniform(e,n),a=i.name,s=i.size,A=Lr(a),c=A>0?a.slice(0,A):a;let g=e.uniformIdCounter;for(e.uniformIdCounter+=s,r[c]=[s,g],o=0;o<s;++o)t[g]=o,e.uniformArrayNamesById[g++]=c}}(e);const{uniformLocsById:n}=e;let o=0,i=t;const a=Lr(t);a>0&&(r=t.slice(a+1),o=parseInt(r)>>>0,i=t.slice(0,a));const s=e.uniformSizeAndIdsByName[i];if(s&&o<s[0]&&(o+=s[1],n[o]=n[o]||on.getUniformLocation(e,t)))return o}else Qr.recordError(1281);var r;return-1},glLinkProgram:function(e){e=Qr.programs[e],on.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}},glPixelStorei:function(e,t){3317==e&&(Qr.unpackAlignment=t),on.pixelStorei(e,t)},glReadPixels:function(e,t,r,n,o,i,a){if(Qr.currentContext.version>=2){if(on.currentPixelPackBufferBinding)on.readPixels(e,t,r,n,o,i,a);else{const s=Hr(i);on.readPixels(e,t,r,n,o,i,s,a>>Gr(s))}return}const s=Yr(i,o,r,n,a);s?on.readPixels(e,t,r,n,o,i,s):Qr.recordError(1280)},glShaderSource:function(e,t,r,n){const o=Qr.getSource(e,t,r,n);on.shaderSource(Qr.shaders[e],o)},glTexImage2D:function(e,t,r,n,o,i,a,s,A){if(Qr.currentContext.version>=2)if(on.currentPixelUnpackBufferBinding)on.texImage2D(e,t,r,n,o,i,a,s,A);else if(A){const c=Hr(s);on.texImage2D(e,t,r,n,o,i,a,s,c,A>>Gr(c))}else on.texImage2D(e,t,r,n,o,i,a,s,null);else on.texImage2D(e,t,r,n,o,i,a,s,A?Yr(s,a,n,o,A):null)},glTexParameterfv:function(e,t,r){const n=Z[r>>2];on.texParameterf(e,t,n)},glTexParameteri:function(e,t,r){on.texParameteri(e,t,r)},glTexStorage2D:function(e,t,r,n,o){on.texStorage2D(e,t,r,n,o)},glTexStorage3D:function(e,t,r,n,o,i){on.texStorage3D(e,t,r,n,o,i)},glTexSubImage2D:function(e,t,r,n,o,i,a,s,A){if(Qr.currentContext.version>=2){if(on.currentPixelUnpackBufferBinding)on.texSubImage2D(e,t,r,n,o,i,a,s,A);else if(A){const c=Hr(s);on.texSubImage2D(e,t,r,n,o,i,a,s,c,A>>Gr(c))}else on.texSubImage2D(e,t,r,n,o,i,a,s,null);return}let c=null;A&&(c=Yr(s,a,o,i,A)),on.texSubImage2D(e,t,r,n,o,i,a,s,c)},glTexSubImage3D:function(e,t,r,n,o,i,a,s,A,c,g){if(on.currentPixelUnpackBufferBinding)on.texSubImage3D(e,t,r,n,o,i,a,s,A,c,g);else if(g){const d=Hr(c);on.texSubImage3D(e,t,r,n,o,i,a,s,A,c,d,g>>Gr(d))}else on.texSubImage3D(e,t,r,n,o,i,a,s,A,c,null)},glUniform1f:function(e,t){on.uniform1f(Xr(e),t)},glUniform1i:function(e,t){on.uniform1i(Xr(e),t)},glUniform2fv:function(e,t,r){if(Qr.currentContext.version>=2)on.uniform2fv(Xr(e),Z,r>>2,2*t);else{if(t<=144){var n=Vr[2*t-1];for(let e=0;e<2*t;e+=2)n[e]=Z[r+4*e>>2],n[e+1]=Z[r+(4*e+4)>>2]}else n=Z.subarray(r>>2,r+8*t>>2);on.uniform2fv(Xr(e),n)}},glUniform4fv:function(e,t,r){if(Qr.currentContext.version>=2)on.uniform4fv(Xr(e),Z,r>>2,4*t);else{if(t<=72){var n=Vr[4*t-1];const e=Z;r>>=2;for(let o=0;o<4*t;o+=4){const t=r+o;n[o]=e[t],n[o+1]=e[t+1],n[o+2]=e[t+2],n[o+3]=e[t+3]}}else n=Z.subarray(r>>2,r+16*t>>2);on.uniform4fv(Xr(e),n)}},glUniform4iv:function(e,t,r){if(Qr.currentContext.version>=2)on.uniform4iv(Xr(e),K,r>>2,4*t);else{if(t<=72){var n=Wr[4*t-1];for(let e=0;e<4*t;e+=4)n[e]=K[r+4*e>>2],n[e+1]=K[r+(4*e+4)>>2],n[e+2]=K[r+(4*e+8)>>2],n[e+3]=K[r+(4*e+12)>>2]}else n=K.subarray(r>>2,r+16*t>>2);on.uniform4iv(Xr(e),n)}},glUniformBlockBinding:function(e,t,r){e=Qr.programs[e],on.uniformBlockBinding(e,t,r)},glUniformMatrix4fv:function(e,t,r,n){if(Qr.currentContext.version>=2)on.uniformMatrix4fv(Xr(e),!!r,Z,n>>2,16*t);else{if(t<=18){var o=Vr[16*t-1];const e=Z;n>>=2;for(let r=0;r<16*t;r+=16){const t=n+r;o[r]=e[t],o[r+1]=e[t+1],o[r+2]=e[t+2],o[r+3]=e[t+3],o[r+4]=e[t+4],o[r+5]=e[t+5],o[r+6]=e[t+6],o[r+7]=e[t+7],o[r+8]=e[t+8],o[r+9]=e[t+9],o[r+10]=e[t+10],o[r+11]=e[t+11],o[r+12]=e[t+12],o[r+13]=e[t+13],o[r+14]=e[t+14],o[r+15]=e[t+15]}}else o=Z.subarray(n>>2,n+64*t>>2);on.uniformMatrix4fv(Xr(e),!!r,o)}},glUseProgram:function(e){e=Qr.programs[e],on.useProgram(e),on.currentProgram=e},glVertexAttribPointer:function(e,t,r,n,o,i){const a=Qr.currentContext.clientBuffers[e];if(!on.currentArrayBufferBinding)return a.size=t,a.type=r,a.normalized=n,a.stride=o,a.ptr=i,a.clientside=!0,void(a.vertexAttribPointerAdaptor=function(e,t,r,n,o,i){this.vertexAttribPointer(e,t,r,n,o,i)});a.clientside=!1,on.vertexAttribPointer(e,t,r,!!n,o,i)},glViewport:function(e,t,r,n){on.viewport(e,t,r,n)},gmtime_r:function e(t,r){const n=new Date(1e3*K[t>>2]);K[r>>2]=n.getUTCSeconds(),K[r+4>>2]=n.getUTCMinutes(),K[r+8>>2]=n.getUTCHours(),K[r+12>>2]=n.getUTCDate(),K[r+16>>2]=n.getUTCMonth(),K[r+20>>2]=n.getUTCFullYear()-1900,K[r+24>>2]=n.getUTCDay(),K[r+36>>2]=0,K[r+32>>2]=0;const o=Date.UTC(n.getUTCFullYear(),0,1,0,0,0,0),i=(n.getTime()-o)/864e5|0;return K[r+28>>2]=i,e.GMTString||(e.GMTString=G("GMT")),K[r+40>>2]=e.GMTString,r},invoke_diii:function(e,t,r,n){const o=mn();try{return ne.get(e)(t,r,n)}catch(e){if(Cn(o),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_i:function(e){const t=mn();try{return ne.get(e)()}catch(e){if(Cn(t),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_ii:function(e,t){const r=mn();try{return ne.get(e)(t)}catch(e){if(Cn(r),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_iii:function(e,t,r){const n=mn();try{return ne.get(e)(t,r)}catch(e){if(Cn(n),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_iiii:function(e,t,r,n){const o=mn();try{return ne.get(e)(t,r,n)}catch(e){if(Cn(o),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_iiiii:function(e,t,r,n,o){const i=mn();try{return ne.get(e)(t,r,n,o)}catch(e){if(Cn(i),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_iiiiii:function(e,t,r,n,o,i){const a=mn();try{return ne.get(e)(t,r,n,o,i)}catch(e){if(Cn(a),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_iiiiiii:function(e,t,r,n,o,i,a){const s=mn();try{return ne.get(e)(t,r,n,o,i,a)}catch(e){if(Cn(s),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_iiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c){const g=mn();try{return ne.get(e)(t,r,n,o,i,a,s,A,c)}catch(e){if(Cn(g),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_iiiiiiii:function(e,t,r,n,o,i,a,s){const A=mn();try{return ne.get(e)(t,r,n,o,i,a,s)}catch(e){if(Cn(A),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_iiiiiiiii:function(e,t,r,n,o,i,a,s,A){const c=mn();try{return ne.get(e)(t,r,n,o,i,a,s,A)}catch(e){if(Cn(c),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_v:function(e){const t=mn();try{ne.get(e)()}catch(e){if(Cn(t),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_vdiii:function(e,t,r,n,o){const i=mn();try{ne.get(e)(t,r,n,o)}catch(e){if(Cn(i),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_vi:function(e,t){const r=mn();try{ne.get(e)(t)}catch(e){if(Cn(r),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_vididdii:function(e,t,r,n,o,i,a,s){const A=mn();try{ne.get(e)(t,r,n,o,i,a,s)}catch(e){if(Cn(A),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_vidii:function(e,t,r,n,o){const i=mn();try{ne.get(e)(t,r,n,o)}catch(e){if(Cn(i),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_vii:function(e,t,r){const n=mn();try{ne.get(e)(t,r)}catch(e){if(Cn(n),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viid:function(e,t,r,n){const o=mn();try{ne.get(e)(t,r,n)}catch(e){if(Cn(o),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viidi:function(e,t,r,n,o){const i=mn();try{ne.get(e)(t,r,n,o)}catch(e){if(Cn(i),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viididii:function(e,t,r,n,o,i,a,s){const A=mn();try{ne.get(e)(t,r,n,o,i,a,s)}catch(e){if(Cn(A),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viii:function(e,t,r,n){const o=mn();try{ne.get(e)(t,r,n)}catch(e){if(Cn(o),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiid:function(e,t,r,n,o){const i=mn();try{ne.get(e)(t,r,n,o)}catch(e){if(Cn(i),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiidd:function(e,t,r,n,o,i){const a=mn();try{ne.get(e)(t,r,n,o,i)}catch(e){if(Cn(a),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiddi:function(e,t,r,n,o,i,a){const s=mn();try{ne.get(e)(t,r,n,o,i,a)}catch(e){if(Cn(s),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiidi:function(e,t,r,n,o,i){const a=mn();try{ne.get(e)(t,r,n,o,i)}catch(e){if(Cn(a),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiii:function(e,t,r,n,o){const i=mn();try{ne.get(e)(t,r,n,o)}catch(e){if(Cn(i),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiid:function(e,t,r,n,o,i){const a=mn();try{ne.get(e)(t,r,n,o,i)}catch(e){if(Cn(a),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiidi:function(e,t,r,n,o,i,a){const s=mn();try{ne.get(e)(t,r,n,o,i,a)}catch(e){if(Cn(s),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiidid:function(e,t,r,n,o,i,a,s){const A=mn();try{ne.get(e)(t,r,n,o,i,a,s)}catch(e){if(Cn(A),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiidiidiiiiiii:function(e,t,r,n,o,i,a,s,A,c,g,d,u,l,E,f){const p=mn();try{ne.get(e)(t,r,n,o,i,a,s,A,c,g,d,u,l,E,f)}catch(e){if(Cn(p),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiifiifiiiiiii:function(e,t,r,n,o,i,a,s,A,c,g,d,u,l,E,f){const p=mn();try{ne.get(e)(t,r,n,o,i,a,s,A,c,g,d,u,l,E,f)}catch(e){if(Cn(p),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiii:function(e,t,r,n,o,i){const a=mn();try{ne.get(e)(t,r,n,o,i)}catch(e){if(Cn(a),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiiid:function(e,t,r,n,o,i,a){const s=mn();try{ne.get(e)(t,r,n,o,i,a)}catch(e){if(Cn(s),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiiif:function(e,t,r,n,o,i,a){const s=mn();try{ne.get(e)(t,r,n,o,i,a)}catch(e){if(Cn(s),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiiii:function(e,t,r,n,o,i,a){const s=mn();try{ne.get(e)(t,r,n,o,i,a)}catch(e){if(Cn(s),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiiiid:function(e,t,r,n,o,i,a,s){const A=mn();try{ne.get(e)(t,r,n,o,i,a,s)}catch(e){if(Cn(A),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiiiif:function(e,t,r,n,o,i,a,s){const A=mn();try{ne.get(e)(t,r,n,o,i,a,s)}catch(e){if(Cn(A),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiiiii:function(e,t,r,n,o,i,a,s){const A=mn();try{ne.get(e)(t,r,n,o,i,a,s)}catch(e){if(Cn(A),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,g){const d=mn();try{ne.get(e)(t,r,n,o,i,a,s,A,c,g)}catch(e){if(Cn(d),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiiiiidiiii:function(e,t,r,n,o,i,a,s,A,c,g,d,u){const l=mn();try{ne.get(e)(t,r,n,o,i,a,s,A,c,g,d,u)}catch(e){if(Cn(l),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiiiiifiiii:function(e,t,r,n,o,i,a,s,A,c,g,d,u){const l=mn();try{ne.get(e)(t,r,n,o,i,a,s,A,c,g,d,u)}catch(e){if(Cn(l),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiiiiii:function(e,t,r,n,o,i,a,s,A){const c=mn();try{ne.get(e)(t,r,n,o,i,a,s,A)}catch(e){if(Cn(c),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiiiiiidd:function(e,t,r,n,o,i,a,s,A,c,g){const d=mn();try{ne.get(e)(t,r,n,o,i,a,s,A,c,g)}catch(e){if(Cn(d),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiiiiiidf:function(e,t,r,n,o,i,a,s,A,c,g){const d=mn();try{ne.get(e)(t,r,n,o,i,a,s,A,c,g)}catch(e){if(Cn(d),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiiiiiii:function(e,t,r,n,o,i,a,s,A,c){const g=mn();try{ne.get(e)(t,r,n,o,i,a,s,A,c)}catch(e){if(Cn(g),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiiiiiiidd:function(e,t,r,n,o,i,a,s,A,c,g,d){const u=mn();try{ne.get(e)(t,r,n,o,i,a,s,A,c,g,d)}catch(e){if(Cn(u),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,g,d,u){const l=mn();try{ne.get(e)(t,r,n,o,i,a,s,A,c,g,d,u)}catch(e){if(Cn(l),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,g){const d=mn();try{ne.get(e)(t,r,n,o,i,a,s,A,c,g)}catch(e){if(Cn(d),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiiiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,g,d,u,l){const E=mn();try{ne.get(e)(t,r,n,o,i,a,s,A,c,g,d,u,l)}catch(e){if(Cn(E),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,g,d){const u=mn();try{ne.get(e)(t,r,n,o,i,a,s,A,c,g,d)}catch(e){if(Cn(u),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,g,d,u){const l=mn();try{ne.get(e)(t,r,n,o,i,a,s,A,c,g,d,u)}catch(e){if(Cn(l),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},invoke_viiiiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,g,d,u,l){const E=mn();try{ne.get(e)(t,r,n,o,i,a,s,A,c,g,d,u,l)}catch(e){if(Cn(E),e!==e+0&&"longjmp"!==e)throw e;_n(1,0)}},llvm_eh_typeid_for:function(e){return e},localtime_r:function(e,t){zr();const r=new Date(1e3*K[e>>2]);K[t>>2]=r.getSeconds(),K[t+4>>2]=r.getMinutes(),K[t+8>>2]=r.getHours(),K[t+12>>2]=r.getDate(),K[t+16>>2]=r.getMonth(),K[t+20>>2]=r.getFullYear()-1900,K[t+24>>2]=r.getDay();const n=new Date(r.getFullYear(),0,1),o=(r.getTime()-n.getTime())/864e5|0;K[t+28>>2]=o,K[t+36>>2]=-60*r.getTimezoneOffset();const i=new Date(r.getFullYear(),6,1).getTimezoneOffset(),a=n.getTimezoneOffset(),s=0|(i!=a&&r.getTimezoneOffset()==Math.min(a,i));K[t+32>>2]=s;const A=K[pn()+(s?4:0)>>2];return K[t+40>>2]=A,t},mktime:function(e){zr();const t=new Date(K[e+20>>2]+1900,K[e+16>>2],K[e+12>>2],K[e+8>>2],K[e+4>>2],K[e>>2],0),r=K[e+32>>2],n=t.getTimezoneOffset(),o=new Date(t.getFullYear(),0,1),i=new Date(t.getFullYear(),6,1).getTimezoneOffset(),a=o.getTimezoneOffset(),s=Math.min(a,i);if(r<0)K[e+32>>2]=Number(i!=a&&s==n);else if(r>0!=(s==n)){const e=Math.max(a,i),o=r>0?s:e;t.setTime(t.getTime()+6e4*(o-n))}K[e+24>>2]=t.getDay();const A=(t.getTime()-o.getTime())/864e5|0;return K[e+28>>2]=A,K[e>>2]=t.getSeconds(),K[e+4>>2]=t.getMinutes(),K[e+8>>2]=t.getHours(),K[e+12>>2]=t.getDate(),K[e+16>>2]=t.getMonth(),t.getTime()/1e3|0},proc_exit:function(e){Tn(e)},setTempRet0:function(e){w(e)},strftime:en,strftime_l:function(e,t,r,n){return en(e,t,r,n)}};(function(){const e={env:gn,wasi_snapshot_preview1:gn};function t(e,t){const{exports:n}=e;var o;r.asm=n,O=r.asm.memory,T(O,"memory not found in wasm exports"),ee(O.buffer),ne=r.asm.__indirect_function_table,T(ne,"table not found in wasm exports"),o=r.asm.__wasm_call_ctors,se.unshift(o),Ce("wasm-instantiate")}me("wasm-instantiate");let n=r;if(r.instantiateWasm)try{return r.instantiateWasm(e,t)}catch(e){return C(`Module.instantiateWasm callback failed with error: ${e}`),!1}r.loadWasm(we,e).then((function(e){T(r===n,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),n=null,t(e)})).catch(o)})(),r.___wasm_call_ctors=_e("__wasm_call_ctors");var dn=r._free=_e("free"),un=r._malloc=_e("malloc"),ln=r.___errno_location=_e("__errno_location");r._fflush=_e("fflush");var En=r.___getTypeName=_e("__getTypeName");r.___embind_register_native_and_builtin_types=_e("__embind_register_native_and_builtin_types"),r._emscripten_main_thread_process_queued_calls=_e("emscripten_main_thread_process_queued_calls");var fn=r._emscripten_stack_get_end=function(){return(fn=r._emscripten_stack_get_end=r.asm.emscripten_stack_get_end).apply(null,arguments)},pn=r.__get_tzname=_e("_get_tzname"),hn=r.__get_daylight=_e("_get_daylight"),In=r.__get_timezone=_e("_get_timezone"),mn=r.stackSave=_e("stackSave"),Cn=r.stackRestore=_e("stackRestore"),yn=(r.stackAlloc=_e("stackAlloc"),r._emscripten_stack_init=function(){return(yn=r._emscripten_stack_init=r.asm.emscripten_stack_init).apply(null,arguments)});r._emscripten_stack_get_free=function(){return(r._emscripten_stack_get_free=r.asm.emscripten_stack_get_free).apply(null,arguments)};r._saveSetjmp=_e("saveSetjmp");var _n=r._setThrew=_e("setThrew"),wn=r.___cxa_can_catch=_e("__cxa_can_catch"),Bn=r.___cxa_is_pointer_type=_e("__cxa_is_pointer_type"),Dn=r._memalign=_e("memalign");r._emscripten_builtin_malloc=_e("emscripten_builtin_malloc"),r._emscripten_builtin_free=_e("emscripten_builtin_free"),r._emscripten_builtin_memalign=_e("emscripten_builtin_memalign"),r.dynCall_jii=_e("dynCall_jii"),r.dynCall_viji=_e("dynCall_viji"),r.dynCall_jjj=_e("dynCall_jjj"),r.dynCall_iiiijj=_e("dynCall_iiiijj"),r.dynCall_viijj=_e("dynCall_viijj"),r.dynCall_viiijjjj=_e("dynCall_viiijjjj"),r.dynCall_ji=_e("dynCall_ji"),r.dynCall_vij=_e("dynCall_vij"),r.dynCall_viijii=_e("dynCall_viijii"),r.dynCall_vj=_e("dynCall_vj"),r.dynCall_viij=_e("dynCall_viij"),r.dynCall_viiiiij=_e("dynCall_viiiiij"),r.dynCall_iijjiiii=_e("dynCall_iijjiiii"),r.dynCall_jiji=_e("dynCall_jiji"),r.dynCall_iiiiij=_e("dynCall_iiiiij"),r.dynCall_iiiiijj=_e("dynCall_iiiiijj"),r.dynCall_iiiiiijj=_e("dynCall_iiiiiijj");let On;function bn(e){this.name="ExitStatus",this.message=`Program terminated with exit(${e})`,this.status=e}function Qn(e){function t(){On||(On=!0,r.calledRun=!0,Q||(ie(),T(!ge),ge=!0,r.noFSInit||Je.init.initialized||Je.init(),Je.ignorePermissions=!1,Ve.init(),Fe(se),n(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),T(!r._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),function(){if(ie(),r.postRun)for("function"==typeof r.postRun&&(r.postRun=[r.postRun]);r.postRun.length;)e=r.postRun.shift(),ce.unshift(e);var e;Fe(ce)}()))}e=e||s,Ee>0||(yn(),oe(),function(){if(r.preRun)for("function"==typeof r.preRun&&(r.preRun=[r.preRun]);r.preRun.length;)e=r.preRun.shift(),ae.unshift(e);var e;Fe(ae)}(),Ee>0||(r.setStatus?(r.setStatus("Running..."),setTimeout((()=>{setTimeout((()=>{r.setStatus("")}),1),t()}),1)):t(),ie()))}function Tn(e){b=e,le()||(r.onExit&&r.onExit(e),Q=!0),c(e,new bn(e))}if(Object.getOwnPropertyDescriptor(r,"intArrayFromString")||(r.intArrayFromString=function(){ye("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"intArrayToString")||(r.intArrayToString=function(){ye("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ccall")||(r.ccall=function(){ye("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"cwrap")||(r.cwrap=function(){ye("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setValue")||(r.setValue=function(){ye("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getValue")||(r.getValue=function(){ye("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"allocate")||(r.allocate=function(){ye("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"UTF8ArrayToString")||(r.UTF8ArrayToString=function(){ye("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"UTF8ToString")||(r.UTF8ToString=function(){ye("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stringToUTF8Array")||(r.stringToUTF8Array=function(){ye("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stringToUTF8")||(r.stringToUTF8=function(){ye("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"lengthBytesUTF8")||(r.lengthBytesUTF8=function(){ye("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stackTrace")||(r.stackTrace=function(){ye("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"addOnPreRun")||(r.addOnPreRun=function(){ye("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"addOnInit")||(r.addOnInit=function(){ye("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"addOnPreMain")||(r.addOnPreMain=function(){ye("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"addOnExit")||(r.addOnExit=function(){ye("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"addOnPostRun")||(r.addOnPostRun=function(){ye("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeStringToMemory")||(r.writeStringToMemory=function(){ye("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeArrayToMemory")||(r.writeArrayToMemory=function(){ye("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeAsciiToMemory")||(r.writeAsciiToMemory=function(){ye("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),r.addRunDependency=me,r.removeRunDependency=Ce,Object.getOwnPropertyDescriptor(r,"FS_createFolder")||(r.FS_createFolder=function(){ye("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),r.FS_createPath=Je.createPath,r.FS_createDataFile=Je.createDataFile,r.FS_createPreloadedFile=Je.createPreloadedFile,r.FS_createLazyFile=Je.createLazyFile,Object.getOwnPropertyDescriptor(r,"FS_createLink")||(r.FS_createLink=function(){ye("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),r.FS_createDevice=Je.createDevice,r.FS_unlink=Je.unlink,Object.getOwnPropertyDescriptor(r,"getLEB")||(r.getLEB=function(){ye("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getFunctionTables")||(r.getFunctionTables=function(){ye("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"alignFunctionTables")||(r.alignFunctionTables=function(){ye("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerFunctions")||(r.registerFunctions=function(){ye("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"addFunction")||(r.addFunction=function(){ye("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"removeFunction")||(r.removeFunction=function(){ye("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getFuncWrapper")||(r.getFuncWrapper=function(){ye("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"prettyPrint")||(r.prettyPrint=function(){ye("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"dynCall")||(r.dynCall=function(){ye("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getCompilerSetting")||(r.getCompilerSetting=function(){ye("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"print")||(r.print=function(){ye("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"printErr")||(r.printErr=function(){ye("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getTempRet0")||(r.getTempRet0=function(){ye("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setTempRet0")||(r.setTempRet0=function(){ye("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"callMain")||(r.callMain=function(){ye("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"abort")||(r.abort=function(){ye("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"keepRuntimeAlive")||(r.keepRuntimeAlive=function(){ye("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"zeroMemory")||(r.zeroMemory=function(){ye("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stringToNewUTF8")||(r.stringToNewUTF8=function(){ye("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setFileTime")||(r.setFileTime=function(){ye("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emscripten_realloc_buffer")||(r.emscripten_realloc_buffer=function(){ye("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ENV")||(r.ENV=function(){ye("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ERRNO_CODES")||(r.ERRNO_CODES=function(){ye("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ERRNO_MESSAGES")||(r.ERRNO_MESSAGES=function(){ye("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setErrNo")||(r.setErrNo=function(){ye("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"inetPton4")||(r.inetPton4=function(){ye("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"inetNtop4")||(r.inetNtop4=function(){ye("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"inetPton6")||(r.inetPton6=function(){ye("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"inetNtop6")||(r.inetNtop6=function(){ye("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"readSockaddr")||(r.readSockaddr=function(){ye("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeSockaddr")||(r.writeSockaddr=function(){ye("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"DNS")||(r.DNS=function(){ye("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getHostByName")||(r.getHostByName=function(){ye("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"GAI_ERRNO_MESSAGES")||(r.GAI_ERRNO_MESSAGES=function(){ye("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"Protocols")||(r.Protocols=function(){ye("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"Sockets")||(r.Sockets=function(){ye("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getRandomDevice")||(r.getRandomDevice=function(){ye("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"traverseStack")||(r.traverseStack=function(){ye("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"UNWIND_CACHE")||(r.UNWIND_CACHE=function(){ye("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"withBuiltinMalloc")||(r.withBuiltinMalloc=function(){ye("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"readAsmConstArgsArray")||(r.readAsmConstArgsArray=function(){ye("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"readAsmConstArgs")||(r.readAsmConstArgs=function(){ye("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"mainThreadEM_ASM")||(r.mainThreadEM_ASM=function(){ye("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"jstoi_q")||(r.jstoi_q=function(){ye("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"jstoi_s")||(r.jstoi_s=function(){ye("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getExecutableName")||(r.getExecutableName=function(){ye("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"listenOnce")||(r.listenOnce=function(){ye("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"autoResumeAudioContext")||(r.autoResumeAudioContext=function(){ye("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"dynCallLegacy")||(r.dynCallLegacy=function(){ye("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getDynCaller")||(r.getDynCaller=function(){ye("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"dynCall")||(r.dynCall=function(){ye("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"callRuntimeCallbacks")||(r.callRuntimeCallbacks=function(){ye("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"runtimeKeepalivePush")||(r.runtimeKeepalivePush=function(){ye("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"runtimeKeepalivePop")||(r.runtimeKeepalivePop=function(){ye("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"callUserCallback")||(r.callUserCallback=function(){ye("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"maybeExit")||(r.maybeExit=function(){ye("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"safeSetTimeout")||(r.safeSetTimeout=function(){ye("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"asmjsMangle")||(r.asmjsMangle=function(){ye("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"asyncLoad")||(r.asyncLoad=function(){ye("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"alignMemory")||(r.alignMemory=function(){ye("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"mmapAlloc")||(r.mmapAlloc=function(){ye("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"reallyNegative")||(r.reallyNegative=function(){ye("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"unSign")||(r.unSign=function(){ye("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"reSign")||(r.reSign=function(){ye("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"formatString")||(r.formatString=function(){ye("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"PATH")||(r.PATH=function(){ye("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"PATH_FS")||(r.PATH_FS=function(){ye("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"SYSCALLS")||(r.SYSCALLS=function(){ye("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"syscallMmap2")||(r.syscallMmap2=function(){ye("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"syscallMunmap")||(r.syscallMunmap=function(){ye("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getSocketFromFD")||(r.getSocketFromFD=function(){ye("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getSocketAddress")||(r.getSocketAddress=function(){ye("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"JSEvents")||(r.JSEvents=function(){ye("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerKeyEventCallback")||(r.registerKeyEventCallback=function(){ye("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"specialHTMLTargets")||(r.specialHTMLTargets=function(){ye("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"findEventTarget")||(r.findEventTarget=function(){ye("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"findCanvasEventTarget")||(r.findCanvasEventTarget=function(){ye("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getBoundingClientRect")||(r.getBoundingClientRect=function(){ye("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillMouseEventData")||(r.fillMouseEventData=function(){ye("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerMouseEventCallback")||(r.registerMouseEventCallback=function(){ye("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerWheelEventCallback")||(r.registerWheelEventCallback=function(){ye("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerUiEventCallback")||(r.registerUiEventCallback=function(){ye("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerFocusEventCallback")||(r.registerFocusEventCallback=function(){ye("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillDeviceOrientationEventData")||(r.fillDeviceOrientationEventData=function(){ye("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerDeviceOrientationEventCallback")||(r.registerDeviceOrientationEventCallback=function(){ye("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillDeviceMotionEventData")||(r.fillDeviceMotionEventData=function(){ye("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerDeviceMotionEventCallback")||(r.registerDeviceMotionEventCallback=function(){ye("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"screenOrientation")||(r.screenOrientation=function(){ye("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillOrientationChangeEventData")||(r.fillOrientationChangeEventData=function(){ye("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerOrientationChangeEventCallback")||(r.registerOrientationChangeEventCallback=function(){ye("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillFullscreenChangeEventData")||(r.fillFullscreenChangeEventData=function(){ye("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerFullscreenChangeEventCallback")||(r.registerFullscreenChangeEventCallback=function(){ye("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerRestoreOldStyle")||(r.registerRestoreOldStyle=function(){ye("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"hideEverythingExceptGivenElement")||(r.hideEverythingExceptGivenElement=function(){ye("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"restoreHiddenElements")||(r.restoreHiddenElements=function(){ye("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setLetterbox")||(r.setLetterbox=function(){ye("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"currentFullscreenStrategy")||(r.currentFullscreenStrategy=function(){ye("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"restoreOldWindowedStyle")||(r.restoreOldWindowedStyle=function(){ye("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"softFullscreenResizeWebGLRenderTarget")||(r.softFullscreenResizeWebGLRenderTarget=function(){ye("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"doRequestFullscreen")||(r.doRequestFullscreen=function(){ye("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillPointerlockChangeEventData")||(r.fillPointerlockChangeEventData=function(){ye("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerPointerlockChangeEventCallback")||(r.registerPointerlockChangeEventCallback=function(){ye("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerPointerlockErrorEventCallback")||(r.registerPointerlockErrorEventCallback=function(){ye("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"requestPointerLock")||(r.requestPointerLock=function(){ye("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillVisibilityChangeEventData")||(r.fillVisibilityChangeEventData=function(){ye("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerVisibilityChangeEventCallback")||(r.registerVisibilityChangeEventCallback=function(){ye("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerTouchEventCallback")||(r.registerTouchEventCallback=function(){ye("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillGamepadEventData")||(r.fillGamepadEventData=function(){ye("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerGamepadEventCallback")||(r.registerGamepadEventCallback=function(){ye("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerBeforeUnloadEventCallback")||(r.registerBeforeUnloadEventCallback=function(){ye("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillBatteryEventData")||(r.fillBatteryEventData=function(){ye("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"battery")||(r.battery=function(){ye("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerBatteryEventCallback")||(r.registerBatteryEventCallback=function(){ye("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setCanvasElementSize")||(r.setCanvasElementSize=function(){ye("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getCanvasElementSize")||(r.getCanvasElementSize=function(){ye("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"polyfillSetImmediate")||(r.polyfillSetImmediate=function(){ye("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"demangle")||(r.demangle=function(){ye("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"demangleAll")||(r.demangleAll=function(){ye("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"jsStackTrace")||(r.jsStackTrace=function(){ye("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stackTrace")||(r.stackTrace=function(){ye("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getEnvStrings")||(r.getEnvStrings=function(){ye("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"checkWasiClock")||(r.checkWasiClock=function(){ye("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeI53ToI64")||(r.writeI53ToI64=function(){ye("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeI53ToI64Clamped")||(r.writeI53ToI64Clamped=function(){ye("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeI53ToI64Signaling")||(r.writeI53ToI64Signaling=function(){ye("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeI53ToU64Clamped")||(r.writeI53ToU64Clamped=function(){ye("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeI53ToU64Signaling")||(r.writeI53ToU64Signaling=function(){ye("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"readI53FromI64")||(r.readI53FromI64=function(){ye("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"readI53FromU64")||(r.readI53FromU64=function(){ye("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"convertI32PairToI53")||(r.convertI32PairToI53=function(){ye("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"convertU32PairToI53")||(r.convertU32PairToI53=function(){ye("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"uncaughtExceptionCount")||(r.uncaughtExceptionCount=function(){ye("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"exceptionLast")||(r.exceptionLast=function(){ye("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"exceptionCaught")||(r.exceptionCaught=function(){ye("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ExceptionInfo")||(r.ExceptionInfo=function(){ye("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"CatchInfo")||(r.CatchInfo=function(){ye("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"exception_addRef")||(r.exception_addRef=function(){ye("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"exception_decRef")||(r.exception_decRef=function(){ye("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"Browser")||(r.Browser=function(){ye("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"funcWrappers")||(r.funcWrappers=function(){ye("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getFuncWrapper")||(r.getFuncWrapper=function(){ye("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setMainLoop")||(r.setMainLoop=function(){ye("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"wget")||(r.wget=function(){ye("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"FS")||(r.FS=function(){ye("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"MEMFS")||(r.MEMFS=function(){ye("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"TTY")||(r.TTY=function(){ye("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"PIPEFS")||(r.PIPEFS=function(){ye("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"SOCKFS")||(r.SOCKFS=function(){ye("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"_setNetworkCallback")||(r._setNetworkCallback=function(){ye("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"tempFixedLengthArray")||(r.tempFixedLengthArray=function(){ye("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"miniTempWebGLFloatBuffers")||(r.miniTempWebGLFloatBuffers=function(){ye("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"heapObjectForWebGLType")||(r.heapObjectForWebGLType=function(){ye("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"heapAccessShiftForWebGLHeap")||(r.heapAccessShiftForWebGLHeap=function(){ye("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),r.GL=Qr,Object.getOwnPropertyDescriptor(r,"emscriptenWebGLGet")||(r.emscriptenWebGLGet=function(){ye("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"computeUnpackAlignedImageSize")||(r.computeUnpackAlignedImageSize=function(){ye("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emscriptenWebGLGetTexPixelData")||(r.emscriptenWebGLGetTexPixelData=function(){ye("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emscriptenWebGLGetUniform")||(r.emscriptenWebGLGetUniform=function(){ye("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"webglGetUniformLocation")||(r.webglGetUniformLocation=function(){ye("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"webglPrepareUniformLocationsBeforeFirstUse")||(r.webglPrepareUniformLocationsBeforeFirstUse=function(){ye("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"webglGetLeftBracePos")||(r.webglGetLeftBracePos=function(){ye("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emscriptenWebGLGetVertexAttrib")||(r.emscriptenWebGLGetVertexAttrib=function(){ye("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emscriptenWebGLGetBufferBinding")||(r.emscriptenWebGLGetBufferBinding=function(){ye("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emscriptenWebGLValidateMapBufferTarget")||(r.emscriptenWebGLValidateMapBufferTarget=function(){ye("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeGLArray")||(r.writeGLArray=function(){ye("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"AL")||(r.AL=function(){ye("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"SDL_unicode")||(r.SDL_unicode=function(){ye("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"SDL_ttfContext")||(r.SDL_ttfContext=function(){ye("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"SDL_audio")||(r.SDL_audio=function(){ye("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"SDL")||(r.SDL=function(){ye("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"SDL_gfx")||(r.SDL_gfx=function(){ye("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"GLUT")||(r.GLUT=function(){ye("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"EGL")||(r.EGL=function(){ye("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"GLFW_Window")||(r.GLFW_Window=function(){ye("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"GLFW")||(r.GLFW=function(){ye("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"GLEW")||(r.GLEW=function(){ye("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"IDBStore")||(r.IDBStore=function(){ye("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"runAndAbortIfError")||(r.runAndAbortIfError=function(){ye("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emval_handle_array")||(r.emval_handle_array=function(){ye("'emval_handle_array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emval_free_list")||(r.emval_free_list=function(){ye("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emval_symbols")||(r.emval_symbols=function(){ye("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"init_emval")||(r.init_emval=function(){ye("'init_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"count_emval_handles")||(r.count_emval_handles=function(){ye("'count_emval_handles' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"get_first_emval")||(r.get_first_emval=function(){ye("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getStringOrSymbol")||(r.getStringOrSymbol=function(){ye("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"requireHandle")||(r.requireHandle=function(){ye("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emval_newers")||(r.emval_newers=function(){ye("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"craftEmvalAllocator")||(r.craftEmvalAllocator=function(){ye("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emval_get_global")||(r.emval_get_global=function(){ye("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emval_methodCallers")||(r.emval_methodCallers=function(){ye("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"InternalError")||(r.InternalError=function(){ye("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"BindingError")||(r.BindingError=function(){ye("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"UnboundTypeError")||(r.UnboundTypeError=function(){ye("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"PureVirtualError")||(r.PureVirtualError=function(){ye("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"init_embind")||(r.init_embind=function(){ye("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"throwInternalError")||(r.throwInternalError=function(){ye("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"throwBindingError")||(r.throwBindingError=function(){ye("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"throwUnboundTypeError")||(r.throwUnboundTypeError=function(){ye("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ensureOverloadTable")||(r.ensureOverloadTable=function(){ye("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"exposePublicSymbol")||(r.exposePublicSymbol=function(){ye("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"replacePublicSymbol")||(r.replacePublicSymbol=function(){ye("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"extendError")||(r.extendError=function(){ye("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"createNamedFunction")||(r.createNamedFunction=function(){ye("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registeredInstances")||(r.registeredInstances=function(){ye("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getBasestPointer")||(r.getBasestPointer=function(){ye("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerInheritedInstance")||(r.registerInheritedInstance=function(){ye("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"unregisterInheritedInstance")||(r.unregisterInheritedInstance=function(){ye("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getInheritedInstance")||(r.getInheritedInstance=function(){ye("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getInheritedInstanceCount")||(r.getInheritedInstanceCount=function(){ye("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getLiveInheritedInstances")||(r.getLiveInheritedInstances=function(){ye("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registeredTypes")||(r.registeredTypes=function(){ye("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"awaitingDependencies")||(r.awaitingDependencies=function(){ye("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"typeDependencies")||(r.typeDependencies=function(){ye("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registeredPointers")||(r.registeredPointers=function(){ye("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerType")||(r.registerType=function(){ye("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"whenDependentTypesAreResolved")||(r.whenDependentTypesAreResolved=function(){ye("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"embind_charCodes")||(r.embind_charCodes=function(){ye("'embind_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"embind_init_charCodes")||(r.embind_init_charCodes=function(){ye("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"readLatin1String")||(r.readLatin1String=function(){ye("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getTypeName")||(r.getTypeName=function(){ye("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"heap32VectorToArray")||(r.heap32VectorToArray=function(){ye("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"requireRegisteredType")||(r.requireRegisteredType=function(){ye("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getShiftFromSize")||(r.getShiftFromSize=function(){ye("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"integerReadValueFromPointer")||(r.integerReadValueFromPointer=function(){ye("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"enumReadValueFromPointer")||(r.enumReadValueFromPointer=function(){ye("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"floatReadValueFromPointer")||(r.floatReadValueFromPointer=function(){ye("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"simpleReadValueFromPointer")||(r.simpleReadValueFromPointer=function(){ye("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"runDestructors")||(r.runDestructors=function(){ye("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"new_")||(r.new_=function(){ye("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"craftInvokerFunction")||(r.craftInvokerFunction=function(){ye("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"embind__requireFunction")||(r.embind__requireFunction=function(){ye("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"tupleRegistrations")||(r.tupleRegistrations=function(){ye("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"structRegistrations")||(r.structRegistrations=function(){ye("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"genericPointerToWireType")||(r.genericPointerToWireType=function(){ye("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"constNoSmartPtrRawPointerToWireType")||(r.constNoSmartPtrRawPointerToWireType=function(){ye("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"nonConstNoSmartPtrRawPointerToWireType")||(r.nonConstNoSmartPtrRawPointerToWireType=function(){ye("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"init_RegisteredPointer")||(r.init_RegisteredPointer=function(){ye("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"RegisteredPointer")||(r.RegisteredPointer=function(){ye("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"RegisteredPointer_getPointee")||(r.RegisteredPointer_getPointee=function(){ye("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"RegisteredPointer_destructor")||(r.RegisteredPointer_destructor=function(){ye("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"RegisteredPointer_deleteObject")||(r.RegisteredPointer_deleteObject=function(){ye("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"RegisteredPointer_fromWireType")||(r.RegisteredPointer_fromWireType=function(){ye("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"runDestructor")||(r.runDestructor=function(){ye("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"releaseClassHandle")||(r.releaseClassHandle=function(){ye("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"finalizationGroup")||(r.finalizationGroup=function(){ye("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"detachFinalizer_deps")||(r.detachFinalizer_deps=function(){ye("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"detachFinalizer")||(r.detachFinalizer=function(){ye("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"attachFinalizer")||(r.attachFinalizer=function(){ye("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"makeClassHandle")||(r.makeClassHandle=function(){ye("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"init_ClassHandle")||(r.init_ClassHandle=function(){ye("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ClassHandle")||(r.ClassHandle=function(){ye("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ClassHandle_isAliasOf")||(r.ClassHandle_isAliasOf=function(){ye("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"throwInstanceAlreadyDeleted")||(r.throwInstanceAlreadyDeleted=function(){ye("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ClassHandle_clone")||(r.ClassHandle_clone=function(){ye("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ClassHandle_delete")||(r.ClassHandle_delete=function(){ye("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"deletionQueue")||(r.deletionQueue=function(){ye("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ClassHandle_isDeleted")||(r.ClassHandle_isDeleted=function(){ye("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ClassHandle_deleteLater")||(r.ClassHandle_deleteLater=function(){ye("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"flushPendingDeletes")||(r.flushPendingDeletes=function(){ye("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"delayFunction")||(r.delayFunction=function(){ye("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setDelayFunction")||(r.setDelayFunction=function(){ye("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"RegisteredClass")||(r.RegisteredClass=function(){ye("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"shallowCopyInternalPointer")||(r.shallowCopyInternalPointer=function(){ye("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"downcastPointer")||(r.downcastPointer=function(){ye("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"upcastPointer")||(r.upcastPointer=function(){ye("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"validateThis")||(r.validateThis=function(){ye("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"char_0")||(r.char_0=function(){ye("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"char_9")||(r.char_9=function(){ye("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"makeLegalFunctionName")||(r.makeLegalFunctionName=function(){ye("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emscriptenWebGLGetIndexed")||(r.emscriptenWebGLGetIndexed=function(){ye("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"warnOnce")||(r.warnOnce=function(){ye("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stackSave")||(r.stackSave=function(){ye("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stackRestore")||(r.stackRestore=function(){ye("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stackAlloc")||(r.stackAlloc=function(){ye("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"AsciiToString")||(r.AsciiToString=function(){ye("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stringToAscii")||(r.stringToAscii=function(){ye("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"UTF16ToString")||(r.UTF16ToString=function(){ye("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stringToUTF16")||(r.stringToUTF16=function(){ye("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"lengthBytesUTF16")||(r.lengthBytesUTF16=function(){ye("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"UTF32ToString")||(r.UTF32ToString=function(){ye("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stringToUTF32")||(r.stringToUTF32=function(){ye("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"lengthBytesUTF32")||(r.lengthBytesUTF32=function(){ye("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"allocateUTF8")||(r.allocateUTF8=function(){ye("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"allocateUTF8OnStack")||(r.allocateUTF8OnStack=function(){ye("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),r.writeStackCookie=oe,r.checkStackCookie=ie,Object.getOwnPropertyDescriptor(r,"ALLOC_NORMAL")||Object.defineProperty(r,"ALLOC_NORMAL",{configurable:!0,get(){ye("'ALLOC_NORMAL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(r,"ALLOC_STACK")||Object.defineProperty(r,"ALLOC_STACK",{configurable:!0,get(){ye("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),pe=function e(){On||Qn(),On||(pe=e)},r.run=Qn,r.preInit)for("function"==typeof r.preInit&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return Qn(),t.ready}}(),selfie_segmentation_solution_simd_wasm_bin_default=createMediapipeSolutionsWasm,createMediapipeSolutionsWasm2=function(){var e="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0;return"undefined"!=typeof __filename&&(e=e||__filename),function(t){var r,n,o=void 0!==(t=t||{})?t:{};o.ready=new Promise((function(e,t){r=e,n=t})),Object.getOwnPropertyDescriptor(o.ready,"_main")||(Object.defineProperty(o.ready,"_main",{configurable:!0,get:function(){Ce("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(o.ready,"_main",{configurable:!0,set:function(){Ce("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(o.ready,"_emscripten_stack_get_end")||(Object.defineProperty(o.ready,"_emscripten_stack_get_end",{configurable:!0,get:function(){Ce("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(o.ready,"_emscripten_stack_get_end",{configurable:!0,set:function(){Ce("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(o.ready,"_emscripten_stack_get_free")||(Object.defineProperty(o.ready,"_emscripten_stack_get_free",{configurable:!0,get:function(){Ce("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(o.ready,"_emscripten_stack_get_free",{configurable:!0,set:function(){Ce("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(o.ready,"_emscripten_stack_init")||(Object.defineProperty(o.ready,"_emscripten_stack_init",{configurable:!0,get:function(){Ce("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(o.ready,"_emscripten_stack_init",{configurable:!0,set:function(){Ce("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(o.ready,"_stackSave")||(Object.defineProperty(o.ready,"_stackSave",{configurable:!0,get:function(){Ce("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(o.ready,"_stackSave",{configurable:!0,set:function(){Ce("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(o.ready,"_stackRestore")||(Object.defineProperty(o.ready,"_stackRestore",{configurable:!0,get:function(){Ce("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(o.ready,"_stackRestore",{configurable:!0,set:function(){Ce("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(o.ready,"_stackAlloc")||(Object.defineProperty(o.ready,"_stackAlloc",{configurable:!0,get:function(){Ce("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(o.ready,"_stackAlloc",{configurable:!0,set:function(){Ce("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(o.ready,"___wasm_call_ctors")||(Object.defineProperty(o.ready,"___wasm_call_ctors",{configurable:!0,get:function(){Ce("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(o.ready,"___wasm_call_ctors",{configurable:!0,set:function(){Ce("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(o.ready,"_fflush")||(Object.defineProperty(o.ready,"_fflush",{configurable:!0,get:function(){Ce("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(o.ready,"_fflush",{configurable:!0,set:function(){Ce("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(o.ready,"___errno_location")||(Object.defineProperty(o.ready,"___errno_location",{configurable:!0,get:function(){Ce("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(o.ready,"___errno_location",{configurable:!0,set:function(){Ce("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(o.ready,"_malloc")||(Object.defineProperty(o.ready,"_malloc",{configurable:!0,get:function(){Ce("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(o.ready,"_malloc",{configurable:!0,set:function(){Ce("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(o.ready,"_free")||(Object.defineProperty(o.ready,"_free",{configurable:!0,get:function(){Ce("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(o.ready,"_free",{configurable:!0,set:function(){Ce("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(o.ready,"_setThrew")||(Object.defineProperty(o.ready,"_setThrew",{configurable:!0,get:function(){Ce("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(o.ready,"_setThrew",{configurable:!0,set:function(){Ce("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(o.ready,"___cxa_is_pointer_type")||(Object.defineProperty(o.ready,"___cxa_is_pointer_type",{configurable:!0,get:function(){Ce("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(o.ready,"___cxa_is_pointer_type",{configurable:!0,set:function(){Ce("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(o.ready,"___cxa_can_catch")||(Object.defineProperty(o.ready,"___cxa_can_catch",{configurable:!0,get:function(){Ce("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(o.ready,"___cxa_can_catch",{configurable:!0,set:function(){Ce("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(o.ready,"_saveSetjmp")||(Object.defineProperty(o.ready,"_saveSetjmp",{configurable:!0,get:function(){Ce("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(o.ready,"_saveSetjmp",{configurable:!0,set:function(){Ce("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(o.ready,"_memalign")||(Object.defineProperty(o.ready,"_memalign",{configurable:!0,get:function(){Ce("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(o.ready,"_memalign",{configurable:!0,set:function(){Ce("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(o.ready,"_emscripten_main_thread_process_queued_calls")||(Object.defineProperty(o.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,get:function(){Ce("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(o.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,set:function(){Ce("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(o.ready,"_emscripten_webgl_make_context_current")||(Object.defineProperty(o.ready,"_emscripten_webgl_make_context_current",{configurable:!0,get:function(){Ce("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(o.ready,"_emscripten_webgl_make_context_current",{configurable:!0,set:function(){Ce("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(o.ready,"_emscripten_webgl_get_current_context")||(Object.defineProperty(o.ready,"_emscripten_webgl_get_current_context",{configurable:!0,get:function(){Ce("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(o.ready,"_emscripten_webgl_get_current_context",{configurable:!0,set:function(){Ce("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(o.ready,"__get_tzname")||(Object.defineProperty(o.ready,"__get_tzname",{configurable:!0,get:function(){Ce("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(o.ready,"__get_tzname",{configurable:!0,set:function(){Ce("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(o.ready,"__get_daylight")||(Object.defineProperty(o.ready,"__get_daylight",{configurable:!0,get:function(){Ce("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(o.ready,"__get_daylight",{configurable:!0,set:function(){Ce("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(o.ready,"__get_timezone")||(Object.defineProperty(o.ready,"__get_timezone",{configurable:!0,get:function(){Ce("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(o.ready,"__get_timezone",{configurable:!0,set:function(){Ce("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(o.ready,"_emscripten_builtin_malloc")||(Object.defineProperty(o.ready,"_emscripten_builtin_malloc",{configurable:!0,get:function(){Ce("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(o.ready,"_emscripten_builtin_malloc",{configurable:!0,set:function(){Ce("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(o.ready,"_emscripten_builtin_free")||(Object.defineProperty(o.ready,"_emscripten_builtin_free",{configurable:!0,get:function(){Ce("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(o.ready,"_emscripten_builtin_free",{configurable:!0,set:function(){Ce("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(o.ready,"_emscripten_builtin_memalign")||(Object.defineProperty(o.ready,"_emscripten_builtin_memalign",{configurable:!0,get:function(){Ce("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(o.ready,"_emscripten_builtin_memalign",{configurable:!0,set:function(){Ce("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(o.ready,"___getTypeName")||(Object.defineProperty(o.ready,"___getTypeName",{configurable:!0,get:function(){Ce("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(o.ready,"___getTypeName",{configurable:!0,set:function(){Ce("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(o.ready,"___embind_register_native_and_builtin_types")||(Object.defineProperty(o.ready,"___embind_register_native_and_builtin_types",{configurable:!0,get:function(){Ce("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(o.ready,"___embind_register_native_and_builtin_types",{configurable:!0,set:function(){Ce("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(o.ready,"onRuntimeInitialized")||(Object.defineProperty(o.ready,"onRuntimeInitialized",{configurable:!0,get:function(){Ce("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(o.ready,"onRuntimeInitialized",{configurable:!0,set:function(){Ce("You are setting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));var i,a={};for(i in o)o.hasOwnProperty(i)&&(a[i]=o[i]);var s=[],A="./this.program",c=function(e,t){throw t},g="object"==typeof window,d="function"==typeof importScripts,u="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,l=!g&&!u&&!d;if(o.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)");var E,f,p,h="";if(!g&&!d)throw new Error("environment detection error");if(d?h=self.location.href:"undefined"!=typeof document&&document.currentScript&&(h=document.currentScript.src),e&&(h=e),h=0!==h.indexOf("blob:")?h.substr(0,h.lastIndexOf("/")+1):"","object"!=typeof window&&"function"!=typeof importScripts)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?)");E=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},d&&(p=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),f=function(e,t,r){var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=function(){200==n.status||0==n.status&&n.response?t(n.response):r()},n.onerror=r,n.send(null)};var I=o.print||console.log.bind(console),m=o.printErr||console.warn.bind(console);for(i in a)a.hasOwnProperty(i)&&(o[i]=a[i]);function C(e){C.shown||(C.shown={}),C.shown[e]||(C.shown[e]=1,m(e))}a=null,o.arguments&&(s=o.arguments),Object.getOwnPropertyDescriptor(o,"arguments")||Object.defineProperty(o,"arguments",{configurable:!0,get:function(){Ce("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)")}}),o.thisProgram&&(A=o.thisProgram),Object.getOwnPropertyDescriptor(o,"thisProgram")||Object.defineProperty(o,"thisProgram",{configurable:!0,get:function(){Ce("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)")}}),o.quit&&(c=o.quit),Object.getOwnPropertyDescriptor(o,"quit")||Object.defineProperty(o,"quit",{configurable:!0,get:function(){Ce("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)")}}),Q(void 0===o.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),Q(void 0===o.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),Q(void 0===o.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),Q(void 0===o.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),Q(void 0===o.read,"Module.read option was removed (modify read_ in JS)"),Q(void 0===o.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),Q(void 0===o.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),Q(void 0===o.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),Q(void 0===o.TOTAL_MEMORY,"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Object.getOwnPropertyDescriptor(o,"read")||Object.defineProperty(o,"read",{configurable:!0,get:function(){Ce("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(o,"readAsync")||Object.defineProperty(o,"readAsync",{configurable:!0,get:function(){Ce("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(o,"readBinary")||Object.defineProperty(o,"readBinary",{configurable:!0,get:function(){Ce("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(o,"setWindowTitle")||Object.defineProperty(o,"setWindowTitle",{configurable:!0,get:function(){Ce("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)")}}),Q(!l,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");var y,_=0,w=function(e){_=e};o.wasmBinary&&(y=o.wasmBinary),Object.getOwnPropertyDescriptor(o,"wasmBinary")||Object.defineProperty(o,"wasmBinary",{configurable:!0,get:function(){Ce("Module.wasmBinary has been replaced with plain wasmBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}});var B,D=o.noExitRuntime||!0;Object.getOwnPropertyDescriptor(o,"noExitRuntime")||Object.defineProperty(o,"noExitRuntime",{configurable:!0,get:function(){Ce("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)")}}),"object"!=typeof WebAssembly&&Ce("no native wasm support detected");var O,b=!1;function Q(e,t){e||Ce("Assertion failed: "+t)}var T="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function v(e,t,r){for(var n=t+r,o=t;e[o]&&!(o>=n);)++o;if(o-t>16&&e.subarray&&T)return T.decode(e.subarray(t,o));for(var i="";t<o;){var a=e[t++];if(128&a){var s=63&e[t++];if(192!=(224&a)){var A=63&e[t++];if(224==(240&a)?a=(15&a)<<12|s<<6|A:(240!=(248&a)&&C("Invalid UTF-8 leading byte 0x"+a.toString(16)+" encountered when deserializing a UTF-8 string in wasm memory to a JS string!"),a=(7&a)<<18|s<<12|A<<6|63&e[t++]),a<65536)i+=String.fromCharCode(a);else{var c=a-65536;i+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else i+=String.fromCharCode((31&a)<<6|s)}else i+=String.fromCharCode(a)}return i}function P(e,t){return e?v(k,e,t):""}function R(e,t,r,n){if(!(n>0))return 0;for(var o=r,i=r+n-1,a=0;a<e.length;++a){var s=e.charCodeAt(a);if(s>=55296&&s<=57343)s=65536+((1023&s)<<10)|1023&e.charCodeAt(++a);if(s<=127){if(r>=i)break;t[r++]=s}else if(s<=2047){if(r+1>=i)break;t[r++]=192|s>>6,t[r++]=128|63&s}else if(s<=65535){if(r+2>=i)break;t[r++]=224|s>>12,t[r++]=128|s>>6&63,t[r++]=128|63&s}else{if(r+3>=i)break;s>=2097152&&C("Invalid Unicode code point 0x"+s.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|s>>18,t[r++]=128|s>>12&63,t[r++]=128|s>>6&63,t[r++]=128|63&s}}return t[r]=0,r-o}function M(e,t,r){return Q("number"==typeof r,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),R(e,k,t,r)}function S(e){for(var t=0,r=0;r<e.length;++r){var n=e.charCodeAt(r);n>=55296&&n<=57343&&(n=65536+((1023&n)<<10)|1023&e.charCodeAt(++r)),n<=127?++t:t+=n<=2047?2:n<=65535?3:4}return t}var F,N,k,x,U,j,L,H,G,Y="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function X(e,t){Q(e%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");for(var r=e,n=r>>1,o=n+t/2;!(n>=o)&&U[n];)++n;if((r=n<<1)-e>32&&Y)return Y.decode(k.subarray(e,r));for(var i="",a=0;!(a>=t/2);++a){var s=x[e+2*a>>1];if(0==s)break;i+=String.fromCharCode(s)}return i}function V(e,t,r){if(Q(t%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),Q("number"==typeof r,"stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),void 0===r&&(r=2147483647),r<2)return 0;for(var n=t,o=(r-=2)<2*e.length?r/2:e.length,i=0;i<o;++i){var a=e.charCodeAt(i);x[t>>1]=a,t+=2}return x[t>>1]=0,t-n}function W(e){return 2*e.length}function z(e,t){Q(e%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");for(var r=0,n="";!(r>=t/4);){var o=j[e+4*r>>2];if(0==o)break;if(++r,o>=65536){var i=o-65536;n+=String.fromCharCode(55296|i>>10,56320|1023&i)}else n+=String.fromCharCode(o)}return n}function $(e,t,r){if(Q(t%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),Q("number"==typeof r,"stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),void 0===r&&(r=2147483647),r<4)return 0;for(var n=t,o=n+r-4,i=0;i<e.length;++i){var a=e.charCodeAt(i);if(a>=55296&&a<=57343)a=65536+((1023&a)<<10)|1023&e.charCodeAt(++i);if(j[t>>2]=a,(t+=4)+4>o)break}return j[t>>2]=0,t-n}function K(e){for(var t=0,r=0;r<e.length;++r){var n=e.charCodeAt(r);n>=55296&&n<=57343&&++r,t+=4}return t}function J(e){var t=S(e)+1,r=pn(t);return r&&R(e,N,r,t),r}function Z(e,t){Q(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),N.set(e,t)}function q(e){F=e,o.HEAP8=N=new Int8Array(e),o.HEAP16=x=new Int16Array(e),o.HEAP32=j=new Int32Array(e),o.HEAPU8=k=new Uint8Array(e),o.HEAPU16=U=new Uint16Array(e),o.HEAPU32=L=new Uint32Array(e),o.HEAPF32=H=new Float32Array(e),o.HEAPF64=G=new Float64Array(e)}var ee=5242880;o.TOTAL_STACK&&Q(ee===o.TOTAL_STACK,"the stack size can no longer be determined at runtime");var te,re=o.INITIAL_MEMORY||16777216;function ne(){var e=mn();Q(!(3&e)),L[1+(e>>2)]=34821223,L[2+(e>>2)]=2310721022,j[0]=1668509029}function oe(){if(!b){var e=mn(),t=L[1+(e>>2)],r=L[2+(e>>2)];34821223==t&&2310721022==r||Ce("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+r.toString(16)+" "+t.toString(16)),1668509029!==j[0]&&Ce("Runtime error: The application has corrupted its heap memory area (address zero)!")}}Object.getOwnPropertyDescriptor(o,"INITIAL_MEMORY")||Object.defineProperty(o,"INITIAL_MEMORY",{configurable:!0,get:function(){Ce("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)")}}),Q(re>=ee,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+re+"! (TOTAL_STACK="+ee+")"),Q("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&void 0!==Int32Array.prototype.subarray&&void 0!==Int32Array.prototype.set,"JS engine does not provide full typed array support"),Q(!o.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),Q(16777216==re,"Detected runtime INITIAL_MEMORY setting. Use -s IMPORTED_MEMORY to define wasmMemory dynamically"),function(){var e=new Int16Array(1),t=new Int8Array(e.buffer);if(e[0]=25459,115!==t[0]||99!==t[1])throw"Runtime error: expected the system to be little-endian! (Run with -s SUPPORT_BIG_ENDIAN=1 to bypass)"}();var ie=[],ae=[],se=[],Ae=[],ce=!1,ge=!1,de=0;function ue(){return D||de>0}Q(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),Q(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),Q(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),Q(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var le=0,Ee=null,fe=null,pe={};function he(e){for(var t=e;;){if(!pe[e])return e;e=t+Math.random()}}function Ie(e){le++,o.monitorRunDependencies&&o.monitorRunDependencies(le),e?(Q(!pe[e]),pe[e]=1,null===Ee&&"undefined"!=typeof setInterval&&(Ee=setInterval((function(){if(b)return clearInterval(Ee),void(Ee=null);var e=!1;for(var t in pe)e||(e=!0,m("still waiting on run dependencies:")),m("dependency: "+t);e&&m("(end of list)")}),1e4))):m("warning: run dependency added without ID")}function me(e){if(le--,o.monitorRunDependencies&&o.monitorRunDependencies(le),e?(Q(pe[e]),delete pe[e]):m("warning: run dependency removed without ID"),0==le&&(null!==Ee&&(clearInterval(Ee),Ee=null),fe)){var t=fe;fe=null,t()}}function Ce(e){o.onAbort&&o.onAbort(e),m(e+=""),b=!0,O=1;var t="abort("+e+") at "+function(){var e=function(){var 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()}();o.extraStackTrace&&(e+="\n"+o.extraStackTrace());return Ue(e)}();e=t;var r=new WebAssembly.RuntimeError(e);throw n(r),r}o.preloadedImages={},o.preloadedAudios={};var ye,_e,we,Be,De="data:application/octet-stream;base64,";function Oe(e){return e.startsWith(De)}function be(e){return e.startsWith("file://")}function Qe(e,t){return function(){var r=e,n=t;return t||(n=o.asm),Q(ce,"native function `"+r+"` called before runtime initialization"),Q(!ge,"native function `"+r+"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),n[e]||Q(n[e],"exported native function `"+r+"` not found"),n[e].apply(null,arguments)}}function Te(e){try{if(e==ye&&y)return new Uint8Array(y);if(p)return p(e);throw"both async and sync fetching of the wasm failed"}catch(e){Ce(e)}}Oe(ye="selfie_segmentation_solution_wasm_bin.wasm")||(_e=ye,ye=o.locateFile?o.locateFile(_e,h):h+_e);var ve,Pe={460976:function(){let e=!0;if(e){const t=Fr;if("function"!=typeof t)return void("undefined"!=typeof console&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.'));Fr=function(e){if(0==e){if(o&&o.canvas)return o.canvas;if(o&&o.canvasCssSelector)return t(o.canvasCssSelector);"undefined"!=typeof console&&console.warn("Module properties canvas and canvasCssSelector not found during WebGL context creation.")}return t(e)},e=!1}},461761:function(){return"undefined"!=typeof wasmOffsetConverter}};function Re(e,t){if(ke.mainLoop.timingMode=e,ke.mainLoop.timingValue=t,!ke.mainLoop.func)return m("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(ke.mainLoop.running||(ke.mainLoop.running=!0),0==e)ke.mainLoop.scheduler=function(){var e=0|Math.max(0,ke.mainLoop.tickStartTime+t-ve());setTimeout(ke.mainLoop.runner,e)},ke.mainLoop.method="timeout";else if(1==e)ke.mainLoop.scheduler=function(){ke.requestAnimationFrame(ke.mainLoop.runner)},ke.mainLoop.method="rAF";else if(2==e){if("undefined"==typeof setImmediate){var r=[],n="setimmediate";addEventListener("message",(function(e){e.data!==n&&e.data.target!==n||(e.stopPropagation(),r.shift()())}),!0),setImmediate=function(e){r.push(e),d?(void 0===o.setImmediates&&(o.setImmediates=[]),o.setImmediates.push(e),postMessage({target:n})):postMessage(n,"*")}}ke.mainLoop.scheduler=function(){setImmediate(ke.mainLoop.runner)},ke.mainLoop.method="immediate"}return 0}function Me(e){!function(e,t){if(O=e,function(){var e=I,t=m,r=!1;I=m=function(e){r=!0};try{var n=o._fflush;n&&n(0),["stdout","stderr"].forEach((function(e){var t=et.analyzePath("/dev/"+e);if(t){var n=t.object.rdev,o=$e.ttys[n];o&&o.output&&o.output.length&&(r=!0)}}))}catch(e){}I=e,m=t,r&&C("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.")}(),ue()){if(!t){var 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)";n(r),m(r)}}else oe(),ge=!0;Rn(e)}(e)}function Se(e,t,r,n,i){Q(!ke.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."),ke.mainLoop.func=e,ke.mainLoop.arg=n;var a=ke.mainLoop.currentlyRunningMainloop;function s(){return!(a<ke.mainLoop.currentlyRunningMainloop)||(function(){if(!ue())try{Me(O)}catch(e){if(e instanceof vn)return;throw e}}(),!1)}if(ke.mainLoop.running=!1,ke.mainLoop.runner=function(){if(!b)if(ke.mainLoop.queue.length>0){var t=Date.now(),r=ke.mainLoop.queue.shift();if(r.func(r.arg),ke.mainLoop.remainingBlockers){var n=ke.mainLoop.remainingBlockers,i=n%1==0?n-1:Math.floor(n);r.counted?ke.mainLoop.remainingBlockers=i:(i+=.5,ke.mainLoop.remainingBlockers=(8*n+i)/9)}if(I('main loop blocker "'+r.name+'" took '+(Date.now()-t)+" ms"),ke.mainLoop.updateStatus(),!s())return;setTimeout(ke.mainLoop.runner,0)}else s()&&(ke.mainLoop.currentFrameNumber=ke.mainLoop.currentFrameNumber+1|0,1==ke.mainLoop.timingMode&&ke.mainLoop.timingValue>1&&ke.mainLoop.currentFrameNumber%ke.mainLoop.timingValue!=0?ke.mainLoop.scheduler():(0==ke.mainLoop.timingMode&&(ke.mainLoop.tickStartTime=ve()),Pr.newRenderingFrameStarted(),void 0!==Pr&&Pr.currentContext&&!Pr.currentContextIsProxied&&!Pr.currentContext.attributes.explicitSwapControl&&Pr.currentContext.GLctx.commit&&Pr.currentContext.GLctx.commit(),"timeout"===ke.mainLoop.method&&o.ctx&&(C("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!"),ke.mainLoop.method=""),ke.mainLoop.runIter(e),oe(),s()&&("object"==typeof SDL&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),ke.mainLoop.scheduler())))},i||(t&&t>0?Re(0,1e3/t):Re(1,1),ke.mainLoop.scheduler()),r)throw"unwind"}function Fe(e,t){if(b)m("user callback triggered after application aborted. Ignoring.");else if(t)e();else try{e()}catch(e){if(e instanceof vn)return;if("unwind"!==e)throw e&&"object"==typeof e&&e.stack&&m("exception thrown: "+[e,e.stack]),e}}function Ne(e,t){return setTimeout((function(){Fe(e)}),t)}ve=u?function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:function(){return performance.now()};var ke={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){ke.mainLoop.scheduler=null,ke.mainLoop.currentlyRunningMainloop++},resume:function(){ke.mainLoop.currentlyRunningMainloop++;var e=ke.mainLoop.timingMode,t=ke.mainLoop.timingValue,r=ke.mainLoop.func;ke.mainLoop.func=null,Se(r,0,!1,ke.mainLoop.arg,!0),Re(e,t),ke.mainLoop.scheduler()},updateStatus:function(){if(o.setStatus){var e=o.statusMessage||"Please wait...",t=ke.mainLoop.remainingBlockers,r=ke.mainLoop.expectedBlockers;t?t<r?o.setStatus(e+" ("+(r-t)+"/"+r+")"):o.setStatus(e):o.setStatus("")}},runIter:function(e){if(!b){if(o.preMainLoop)if(!1===o.preMainLoop())return;Fe(e),o.postMainLoop&&o.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(o.preloadPlugins||(o.preloadPlugins=[]),!ke.initted){ke.initted=!0;try{new Blob,ke.hasBlobConstructor=!0}catch(e){ke.hasBlobConstructor=!1,I("warning: no blob constructor, cannot create blobs with mimetypes")}ke.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:ke.hasBlobConstructor?null:I("warning: no BlobBuilder"),ke.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,o.noImageDecoding||void 0!==ke.URLObject||(I("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),o.noImageDecoding=!0);var e={canHandle:function(e){return!o.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(e)},handle:function(e,t,r,n){var i=null;if(ke.hasBlobConstructor)try{(i=new Blob([e],{type:ke.getMimetype(t)})).size!==e.length&&(i=new Blob([new Uint8Array(e).buffer],{type:ke.getMimetype(t)}))}catch(e){C("Blob constructor present but fails: "+e+"; falling back to blob builder")}if(!i){var a=new ke.BlobBuilder;a.append(new Uint8Array(e).buffer),i=a.getBlob()}var s=ke.URLObject.createObjectURL(i);Q("string"==typeof s,"createObjectURL must return a url as a string");var A=new Image;A.onload=function(){Q(A.complete,"Image "+t+" could not be decoded");var n=document.createElement("canvas");n.width=A.width,n.height=A.height,n.getContext("2d").drawImage(A,0,0),o.preloadedImages[t]=n,ke.URLObject.revokeObjectURL(s),r&&r(e)},A.onerror=function(e){I("Image "+s+" could not be decoded"),n&&n()},A.src=s}};o.preloadPlugins.push(e);var t={canHandle:function(e){return!o.noAudioDecoding&&e.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(e,t,r,n){var i=!1;function a(n){i||(i=!0,o.preloadedAudios[t]=n,r&&r(e))}function s(){i||(i=!0,o.preloadedAudios[t]=new Audio,n&&n())}if(!ke.hasBlobConstructor)return s();try{var A=new Blob([e],{type:ke.getMimetype(t)})}catch(e){return s()}var c=ke.URLObject.createObjectURL(A);Q("string"==typeof c,"createObjectURL must return a url as a string");var g=new Audio;g.addEventListener("canplaythrough",(function(){a(g)}),!1),g.onerror=function(r){i||(I("warning: browser could not fully decode audio "+t+", trying slower base64 approach"),g.src="data:audio/x-"+t.substr(-3)+";base64,"+function(e){for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r="",n=0,o=0,i=0;i<e.length;i++)for(n=n<<8|e[i],o+=8;o>=6;){var a=n>>o-6&63;o-=6,r+=t[a]}return 2==o?(r+=t[(3&n)<<4],r+="=="):4==o&&(r+=t[(15&n)<<2],r+="="),r}(e),a(g))},g.src=c,Ne((function(){a(g)}),1e4)}};o.preloadPlugins.push(t);var r=o.canvas;r&&(r.requestPointerLock=r.requestPointerLock||r.mozRequestPointerLock||r.webkitRequestPointerLock||r.msRequestPointerLock||function(){},r.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},r.exitPointerLock=r.exitPointerLock.bind(document),o.elementPointerLock&&r.addEventListener("click",(function(e){!ke.pointerLock&&o.canvas.requestPointerLock&&(o.canvas.requestPointerLock(),e.preventDefault())}),!1))}},createContext:function(e,t,r,n){if(t&&o.ctx&&e==o.canvas)return o.ctx;var i,a;if(t){var s={antialias:!1,alpha:!1,majorVersion:"undefined"!=typeof WebGL2RenderingContext?2:1};if(n)for(var A in n)s[A]=n[A];void 0!==Pr&&(a=Pr.createContext(e,s))&&(i=Pr.getContext(a).GLctx)}else i=e.getContext("2d");return i?(r&&(t||Q(void 0===on,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),o.ctx=i,t&&Pr.makeContextCurrent(a),o.useWebGL=t,ke.moduleContextCreatedCallbacks.forEach((function(e){e()})),ke.init()),i):null},destroyContext:function(e,t,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(e,t){ke.lockPointer=e,ke.resizeCanvas=t,void 0===ke.lockPointer&&(ke.lockPointer=!0),void 0===ke.resizeCanvas&&(ke.resizeCanvas=!1);var r=o.canvas;function n(){ke.isFullscreen=!1;var e=r.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e?(r.exitFullscreen=ke.exitFullscreen,ke.lockPointer&&r.requestPointerLock(),ke.isFullscreen=!0,ke.resizeCanvas?ke.setFullscreenCanvasSize():ke.updateCanvasDimensions(r)):(e.parentNode.insertBefore(r,e),e.parentNode.removeChild(e),ke.resizeCanvas?ke.setWindowedCanvasSize():ke.updateCanvasDimensions(r)),o.onFullScreen&&o.onFullScreen(ke.isFullscreen),o.onFullscreen&&o.onFullscreen(ke.isFullscreen)}ke.fullscreenHandlersInstalled||(ke.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",n,!1),document.addEventListener("mozfullscreenchange",n,!1),document.addEventListener("webkitfullscreenchange",n,!1),document.addEventListener("MSFullscreenChange",n,!1));var 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:function(){Ce("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen:function(){return!!ke.isFullscreen&&((document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){}).apply(document,[]),!0)},nextRAF:0,fakeRequestAnimationFrame:function(e){var t=Date.now();if(0===ke.nextRAF)ke.nextRAF=t+1e3/60;else for(;t+2>=ke.nextRAF;)ke.nextRAF+=1e3/60;var r=Math.max(ke.nextRAF-t,0);setTimeout(e,r)},requestAnimationFrame:function(e){"function"!=typeof requestAnimationFrame?(0,ke.fakeRequestAnimationFrame)(e):requestAnimationFrame(e)},safeSetTimeout:function(e){return Ne(e)},safeRequestAnimationFrame:function(e){return ke.requestAnimationFrame((function(){Fe(e)}))},getMimetype:function(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:function(e){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(e)},getMovementX:function(e){return e.movementX||e.mozMovementX||e.webkitMovementX||0},getMovementY:function(e){return e.movementY||e.mozMovementY||e.webkitMovementY||0},getMouseWheelDelta:function(e){var 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:function(e){if(ke.pointerLock)"mousemove"!=e.type&&"mozMovementX"in e?ke.mouseMovementX=ke.mouseMovementY=0:(ke.mouseMovementX=ke.getMovementX(e),ke.mouseMovementY=ke.getMovementY(e)),"undefined"!=typeof SDL?(ke.mouseX=SDL.mouseX+ke.mouseMovementX,ke.mouseY=SDL.mouseY+ke.mouseMovementY):(ke.mouseX+=ke.mouseMovementX,ke.mouseY+=ke.mouseMovementY);else{var t=o.canvas.getBoundingClientRect(),r=o.canvas.width,n=o.canvas.height,i=void 0!==window.scrollX?window.scrollX:window.pageXOffset,a=void 0!==window.scrollY?window.scrollY:window.pageYOffset;if(Q(void 0!==i&&void 0!==a,"Unable to retrieve scroll position, mouse positions likely broken."),"touchstart"===e.type||"touchend"===e.type||"touchmove"===e.type){var s=e.touch;if(void 0===s)return;var A=s.pageX-(i+t.left),c=s.pageY-(a+t.top),g={x:A*=r/t.width,y:c*=n/t.height};if("touchstart"===e.type)ke.lastTouches[s.identifier]=g,ke.touches[s.identifier]=g;else if("touchend"===e.type||"touchmove"===e.type){var d=ke.touches[s.identifier];d||(d=g),ke.lastTouches[s.identifier]=d,ke.touches[s.identifier]=g}return}var u=e.pageX-(i+t.left),l=e.pageY-(a+t.top);u*=r/t.width,l*=n/t.height,ke.mouseMovementX=u-ke.mouseX,ke.mouseMovementY=l-ke.mouseY,ke.mouseX=u,ke.mouseY=l}},resizeListeners:[],updateResizeListeners:function(){var e=o.canvas;ke.resizeListeners.forEach((function(t){t(e.width,e.height)}))},setCanvasSize:function(e,t,r){var n=o.canvas;ke.updateCanvasDimensions(n,e,t),r||ke.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if("undefined"!=typeof SDL){var e=L[SDL.screen>>2];e|=8388608,j[SDL.screen>>2]=e}ke.updateCanvasDimensions(o.canvas),ke.updateResizeListeners()},setWindowedCanvasSize:function(){if("undefined"!=typeof SDL){var e=L[SDL.screen>>2];e&=-8388609,j[SDL.screen>>2]=e}ke.updateCanvasDimensions(o.canvas),ke.updateResizeListeners()},updateCanvasDimensions:function(e,t,r){t&&r?(e.widthNative=t,e.heightNative=r):(t=e.widthNative,r=e.heightNative);var n=t,i=r;if(o.forcedAspectRatio&&o.forcedAspectRatio>0&&(n/i<o.forcedAspectRatio?n=Math.round(i*o.forcedAspectRatio):i=Math.round(n/o.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e.parentNode&&"undefined"!=typeof screen){var a=Math.min(screen.width/n,screen.height/i);n=Math.round(n*a),i=Math.round(i*a)}ke.resizeCanvas?(e.width!=n&&(e.width=n),e.height!=i&&(e.height=i),void 0!==e.style&&(e.style.removeProperty("width"),e.style.removeProperty("height"))):(e.width!=t&&(e.width=t),e.height!=r&&(e.height=r),void 0!==e.style&&(n!=t||i!=r?(e.style.setProperty("width",n+"px","important"),e.style.setProperty("height",i+"px","important")):(e.style.removeProperty("width"),e.style.removeProperty("height"))))}};function xe(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?te.get(r)():te.get(r)(t.arg):r(void 0===t.arg?null:t.arg)}else t(o)}}function Ue(e){return e.replace(/\b_Z[\w\d_]+/g,(function(e){var t,r=(t=e,C("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),t);return e===r?e:r+" ["+e+"]"}))}function je(e){this.excPtr=e,this.ptr=e-16,this.set_type=function(e){j[this.ptr+4>>2]=e},this.get_type=function(){return j[this.ptr+4>>2]},this.set_destructor=function(e){j[this.ptr+8>>2]=e},this.get_destructor=function(){return j[this.ptr+8>>2]},this.set_refcount=function(e){j[this.ptr>>2]=e},this.set_caught=function(e){e=e?1:0,N[this.ptr+12|0]=e},this.get_caught=function(){return 0!=N[this.ptr+12|0]},this.set_rethrown=function(e){e=e?1:0,N[this.ptr+13|0]=e},this.get_rethrown=function(){return 0!=N[this.ptr+13|0]},this.init=function(e,t){this.set_type(e),this.set_destructor(t),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var e=j[this.ptr>>2];j[this.ptr>>2]=e+1},this.release_ref=function(){var e=j[this.ptr>>2];return j[this.ptr>>2]=e-1,Q(e>0),1===e}}function Le(e){this.free=function(){fn(this.ptr),this.ptr=0},this.set_base_ptr=function(e){j[this.ptr>>2]=e},this.get_base_ptr=function(){return j[this.ptr>>2]},this.set_adjusted_ptr=function(e){j[this.ptr+4>>2]=e},this.get_adjusted_ptr_addr=function(){return this.ptr+4},this.get_adjusted_ptr=function(){return j[this.ptr+4>>2]},this.get_exception_ptr=function(){if(Qn(this.get_exception_info().get_type()))return j[this.get_base_ptr()>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.get_base_ptr()},this.get_exception_info=function(){return new je(this.get_base_ptr())},void 0===e?(this.ptr=pn(8),this.set_adjusted_ptr(0)):this.ptr=e}var He=[];var Ge=0;function Ye(e){try{return fn(new je(e).ptr)}catch(e){m("exception during cxa_free_exception: "+e)}}function Xe(e){return j[hn()>>2]=e,e}var Ve={splitPath:function(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,t){for(var r=0,n=e.length-1;n>=0;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:function(e){var t="/"===e.charAt(0),r="/"===e.substr(-1);return(e=Ve.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:function(e){var t=Ve.splitPath(e),r=t[0],n=t[1];return r||n?(n&&(n=n.substr(0,n.length-1)),r+n):"."},basename:function(e){if("/"===e)return"/";var t=(e=(e=Ve.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},extname:function(e){return Ve.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return Ve.normalize(e.join("/"))},join2:function(e,t){return Ve.normalize(e+"/"+t)}};function We(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return function(){return crypto.getRandomValues(e),e[0]}}if(u)try{var t=__require("crypto");return function(){return t.randomBytes(1)[0]}}catch(e){}return function(){Ce("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 ze={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:et.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,t="/"===n.charAt(0)}return(t?"/":"")+(e=Ve.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||"."},relative:function(e,t){function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var r=e.length-1;r>=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=ze.resolve(e).substr(1),t=ze.resolve(t).substr(1);for(var n=r(e.split("/")),o=r(t.split("/")),i=Math.min(n.length,o.length),a=i,s=0;s<i;s++)if(n[s]!==o[s]){a=s;break}var A=[];for(s=a;s<n.length;s++)A.push("..");return(A=A.concat(o.slice(a))).join("/")}},$e={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){$e.ttys[e]={input:[],output:[],ops:t},et.registerDevice(e,$e.stream_ops)},stream_ops:{open:function(e){var t=$e.ttys[e.node.rdev];if(!t)throw new et.ErrnoError(43);e.tty=t,e.seekable=!1},close:function(e){e.tty.ops.flush(e.tty)},flush:function(e){e.tty.ops.flush(e.tty)},read:function(e,t,r,n,o){if(!e.tty||!e.tty.ops.get_char)throw new et.ErrnoError(60);for(var i=0,a=0;a<n;a++){var s;try{s=e.tty.ops.get_char(e.tty)}catch(e){throw new et.ErrnoError(29)}if(void 0===s&&0===i)throw new et.ErrnoError(6);if(null==s)break;i++,t[r+a]=s}return i&&(e.node.timestamp=Date.now()),i},write:function(e,t,r,n,o){if(!e.tty||!e.tty.ops.put_char)throw new et.ErrnoError(60);try{for(var i=0;i<n;i++)e.tty.ops.put_char(e.tty,t[r+i])}catch(e){throw new et.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),i}},default_tty_ops:{get_char:function(e){if(!e.input.length){var t=null;if(u){var r=Buffer.alloc(256),n=0;try{n=nodeFS.readSync(process.stdin.fd,r,0,256,null)}catch(e){if(!e.toString().includes("EOF"))throw e;n=0}t=n>0?r.slice(0,n).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(t=window.prompt("Input: "))&&(t+="\n"):"function"==typeof readline&&null!==(t=readline())&&(t+="\n");if(!t)return null;e.input=un(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(I(v(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(I(v(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(m(v(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(m(v(e.output,0)),e.output=[])}}};function Ke(e){e=function(e,t){return Q(t,"alignment argument is required"),Math.ceil(e/t)*t}(e,65536);var t=Tn(65536,e);return t?(function(e,t){k.fill(0,e,e+t)}(t,e),t):0}var Je={ops_table:null,mount:function(e){return Je.createNode(null,"/",16895,0)},createNode:function(e,t,r,n){if(et.isBlkdev(r)||et.isFIFO(r))throw new et.ErrnoError(63);Je.ops_table||(Je.ops_table={dir:{node:{getattr:Je.node_ops.getattr,setattr:Je.node_ops.setattr,lookup:Je.node_ops.lookup,mknod:Je.node_ops.mknod,rename:Je.node_ops.rename,unlink:Je.node_ops.unlink,rmdir:Je.node_ops.rmdir,readdir:Je.node_ops.readdir,symlink:Je.node_ops.symlink},stream:{llseek:Je.stream_ops.llseek}},file:{node:{getattr:Je.node_ops.getattr,setattr:Je.node_ops.setattr},stream:{llseek:Je.stream_ops.llseek,read:Je.stream_ops.read,write:Je.stream_ops.write,allocate:Je.stream_ops.allocate,mmap:Je.stream_ops.mmap,msync:Je.stream_ops.msync}},link:{node:{getattr:Je.node_ops.getattr,setattr:Je.node_ops.setattr,readlink:Je.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Je.node_ops.getattr,setattr:Je.node_ops.setattr},stream:et.chrdev_stream_ops}});var o=et.createNode(e,t,r,n);return et.isDir(o.mode)?(o.node_ops=Je.ops_table.dir.node,o.stream_ops=Je.ops_table.dir.stream,o.contents={}):et.isFile(o.mode)?(o.node_ops=Je.ops_table.file.node,o.stream_ops=Je.ops_table.file.stream,o.usedBytes=0,o.contents=null):et.isLink(o.mode)?(o.node_ops=Je.ops_table.link.node,o.stream_ops=Je.ops_table.link.stream):et.isChrdev(o.mode)&&(o.node_ops=Je.ops_table.chrdev.node,o.stream_ops=Je.ops_table.chrdev.stream),o.timestamp=Date.now(),e&&(e.contents[t]=o,e.timestamp=o.timestamp),o},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage:function(e,t){var r=e.contents?e.contents.length:0;if(!(r>=t)){t=Math.max(t,r*(r<1048576?2:1.125)>>>0),0!=r&&(t=Math.max(t,256));var n=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,t){if(e.usedBytes!=t)if(0==t)e.contents=null,e.usedBytes=0;else{var 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:function(e){var t={};return t.dev=et.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,et.isDir(e.mode)?t.size=4096:et.isFile(e.mode)?t.size=e.usedBytes:et.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:function(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&Je.resizeFileStorage(e,t.size)},lookup:function(e,t){throw et.genericErrors[44]},mknod:function(e,t,r,n){return Je.createNode(e,t,r,n)},rename:function(e,t,r){if(et.isDir(e.mode)){var n;try{n=et.lookupNode(t,r)}catch(e){}if(n)for(var o in n.contents)throw new et.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:function(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir:function(e,t){var r=et.lookupNode(e,t);for(var n in r.contents)throw new et.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir:function(e){var t=[".",".."];for(var r in e.contents)e.contents.hasOwnProperty(r)&&t.push(r);return t},symlink:function(e,t,r){var n=Je.createNode(e,t,41471,0);return n.link=r,n},readlink:function(e){if(!et.isLink(e.mode))throw new et.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,r,n,o){var i=e.node.contents;if(o>=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-o,n);if(Q(a>=0),a>8&&i.subarray)t.set(i.subarray(o,o+a),r);else for(var s=0;s<a;s++)t[r+s]=i[o+s];return a},write:function(e,t,r,n,o,i){if(Q(!(t instanceof ArrayBuffer)),t.buffer===N.buffer&&(i=!1),!n)return 0;var a=e.node;if(a.timestamp=Date.now(),t.subarray&&(!a.contents||a.contents.subarray)){if(i)return Q(0===o,"canOwn must imply no weird position inside the file"),a.contents=t.subarray(r,r+n),a.usedBytes=n,n;if(0===a.usedBytes&&0===o)return a.contents=t.slice(r,r+n),a.usedBytes=n,n;if(o+n<=a.usedBytes)return a.contents.set(t.subarray(r,r+n),o),n}if(Je.expandFileStorage(a,o+n),a.contents.subarray&&t.subarray)a.contents.set(t.subarray(r,r+n),o);else for(var s=0;s<n;s++)a.contents[o+s]=t[r+s];return a.usedBytes=Math.max(a.usedBytes,o+n),n},llseek:function(e,t,r){var n=t;if(1===r?n+=e.position:2===r&&et.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new et.ErrnoError(28);return n},allocate:function(e,t,r){Je.expandFileStorage(e.node,t+r),e.node.usedBytes=Math.max(e.node.usedBytes,t+r)},mmap:function(e,t,r,n,o,i){if(0!==t)throw new et.ErrnoError(28);if(!et.isFile(e.node.mode))throw new et.ErrnoError(43);var a,s,A=e.node.contents;if(2&i||A.buffer!==F){if((n>0||n+r<A.length)&&(A=A.subarray?A.subarray(n,n+r):Array.prototype.slice.call(A,n,n+r)),s=!0,!(a=Ke(r)))throw new et.ErrnoError(48);N.set(A,a)}else s=!1,a=A.byteOffset;return{ptr:a,allocated:s}},msync:function(e,t,r,n,o){if(!et.isFile(e.node.mode))throw new et.ErrnoError(43);if(2&o)return 0;Je.stream_ops.write(e,t,0,n,r,!1);return 0}}};var Ze={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"},qe={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},et={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(e,t){if(t=t||{},!(e=ze.resolve(et.cwd(),e)))return{path:"",node:null};var r={follow_mount:!0,recurse_count:0};for(var n in r)void 0===t[n]&&(t[n]=r[n]);if(t.recurse_count>8)throw new et.ErrnoError(32);for(var o=Ve.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),i=et.root,a="/",s=0;s<o.length;s++){var A=s===o.length-1;if(A&&t.parent)break;if(i=et.lookupNode(i,o[s]),a=Ve.join2(a,o[s]),et.isMountpoint(i)&&(!A||A&&t.follow_mount)&&(i=i.mounted.root),!A||t.follow)for(var c=0;et.isLink(i.mode);){var g=et.readlink(a);if(a=ze.resolve(Ve.dirname(a),g),i=et.lookupPath(a,{recurse_count:t.recurse_count}).node,c++>40)throw new et.ErrnoError(32)}}return{path:a,node:i}},getPath:function(e){for(var t;;){if(et.isRoot(e)){var 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:function(e,t){for(var r=0,n=0;n<t.length;n++)r=(r<<5)-r+t.charCodeAt(n)|0;return(e+r>>>0)%et.nameTable.length},hashAddNode:function(e){var t=et.hashName(e.parent.id,e.name);e.name_next=et.nameTable[t],et.nameTable[t]=e},hashRemoveNode:function(e){var t=et.hashName(e.parent.id,e.name);if(et.nameTable[t]===e)et.nameTable[t]=e.name_next;else for(var r=et.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode:function(e,t){var r=et.mayLookup(e);if(r)throw new et.ErrnoError(r,e);for(var n=et.hashName(e.id,t),o=et.nameTable[n];o;o=o.name_next){var i=o.name;if(o.parent.id===e.id&&i===t)return o}return et.lookup(e,t)},createNode:function(e,t,r,n){Q("object"==typeof e);var o=new et.FSNode(e,t,r,n);return et.hashAddNode(o),o},destroyNode:function(e){et.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return!(49152&~e)},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(e){var t=et.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:function(e){var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:function(e,t){return et.ignorePermissions||(!t.includes("r")||292&e.mode)&&(!t.includes("w")||146&e.mode)&&(!t.includes("x")||73&e.mode)?0:2},mayLookup:function(e){var t=et.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:function(e,t){try{et.lookupNode(e,t);return 20}catch(e){}return et.nodePermissions(e,"wx")},mayDelete:function(e,t,r){var n;try{n=et.lookupNode(e,t)}catch(e){return e.errno}var o=et.nodePermissions(e,"wx");if(o)return o;if(r){if(!et.isDir(n.mode))return 54;if(et.isRoot(n)||et.getPath(n)===et.cwd())return 10}else if(et.isDir(n.mode))return 31;return 0},mayOpen:function(e,t){return e?et.isLink(e.mode)?32:et.isDir(e.mode)&&("r"!==et.flagsToPermissionString(t)||512&t)?31:et.nodePermissions(e,et.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){e=e||0,t=t||et.MAX_OPEN_FDS;for(var r=e;r<=t;r++)if(!et.streams[r])return r;throw new et.ErrnoError(33)},getStream:function(e){return et.streams[e]},createStream:function(e,t,r){et.FSStream||(et.FSStream=function(){},et.FSStream.prototype={object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return!!(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}});var n=new et.FSStream;for(var o in e)n[o]=e[o];e=n;var i=et.nextfd(t,r);return e.fd=i,et.streams[i]=e,e},closeStream:function(e){et.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=et.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new et.ErrnoError(70)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,t){return e<<8|t},registerDevice:function(e,t){et.devices[e]={stream_ops:t}},getDevice:function(e){return et.devices[e]},getMounts:function(e){for(var t=[],r=[e];r.length;){var n=r.pop();t.push(n),r.push.apply(r,n.mounts)}return t},syncfs:function(e,t){"function"==typeof e&&(t=e,e=!1),et.syncFSRequests++,et.syncFSRequests>1&&m("warning: "+et.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=et.getMounts(et.root.mount),n=0;function o(e){return Q(et.syncFSRequests>0),et.syncFSRequests--,t(e)}function i(e){if(e)return i.errored?void 0:(i.errored=!0,o(e));++n>=r.length&&o(null)}r.forEach((function(t){if(!t.type.syncfs)return i(null);t.type.syncfs(t,e,i)}))},mount:function(e,t,r){if("string"==typeof e)throw e;var n,o="/"===r,i=!r;if(o&&et.root)throw new et.ErrnoError(10);if(!o&&!i){var a=et.lookupPath(r,{follow_mount:!1});if(r=a.path,n=a.node,et.isMountpoint(n))throw new et.ErrnoError(10);if(!et.isDir(n.mode))throw new et.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},A=e.mount(s);return A.mount=s,s.root=A,o?et.root=A:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),A},unmount:function(e){var t=et.lookupPath(e,{follow_mount:!1});if(!et.isMountpoint(t.node))throw new et.ErrnoError(28);var r=t.node,n=r.mounted,o=et.getMounts(n);Object.keys(et.nameTable).forEach((function(e){for(var t=et.nameTable[e];t;){var r=t.name_next;o.includes(t.mount)&&et.destroyNode(t),t=r}})),r.mounted=null;var i=r.mount.mounts.indexOf(n);Q(-1!==i),r.mount.mounts.splice(i,1)},lookup:function(e,t){return e.node_ops.lookup(e,t)},mknod:function(e,t,r){var n=et.lookupPath(e,{parent:!0}).node,o=Ve.basename(e);if(!o||"."===o||".."===o)throw new et.ErrnoError(28);var i=et.mayCreate(n,o);if(i)throw new et.ErrnoError(i);if(!n.node_ops.mknod)throw new et.ErrnoError(63);return n.node_ops.mknod(n,o,t,r)},create:function(e,t){return t=void 0!==t?t:438,t&=4095,t|=32768,et.mknod(e,t,0)},mkdir:function(e,t){return t=void 0!==t?t:511,t&=1023,t|=16384,et.mknod(e,t,0)},mkdirTree:function(e,t){for(var r=e.split("/"),n="",o=0;o<r.length;++o)if(r[o]){n+="/"+r[o];try{et.mkdir(n,t)}catch(e){if(20!=e.errno)throw e}}},mkdev:function(e,t,r){return void 0===r&&(r=t,t=438),t|=8192,et.mknod(e,t,r)},symlink:function(e,t){if(!ze.resolve(e))throw new et.ErrnoError(44);var r=et.lookupPath(t,{parent:!0}).node;if(!r)throw new et.ErrnoError(44);var n=Ve.basename(t),o=et.mayCreate(r,n);if(o)throw new et.ErrnoError(o);if(!r.node_ops.symlink)throw new et.ErrnoError(63);return r.node_ops.symlink(r,n,e)},rename:function(e,t){var r,n,o=Ve.dirname(e),i=Ve.dirname(t),a=Ve.basename(e),s=Ve.basename(t);if(r=et.lookupPath(e,{parent:!0}).node,n=et.lookupPath(t,{parent:!0}).node,!r||!n)throw new et.ErrnoError(44);if(r.mount!==n.mount)throw new et.ErrnoError(75);var A,c=et.lookupNode(r,a),g=ze.relative(e,i);if("."!==g.charAt(0))throw new et.ErrnoError(28);if("."!==(g=ze.relative(t,o)).charAt(0))throw new et.ErrnoError(55);try{A=et.lookupNode(n,s)}catch(e){}if(c!==A){var d=et.isDir(c.mode),u=et.mayDelete(r,a,d);if(u)throw new et.ErrnoError(u);if(u=A?et.mayDelete(n,s,d):et.mayCreate(n,s))throw new et.ErrnoError(u);if(!r.node_ops.rename)throw new et.ErrnoError(63);if(et.isMountpoint(c)||A&&et.isMountpoint(A))throw new et.ErrnoError(10);if(n!==r&&(u=et.nodePermissions(r,"w")))throw new et.ErrnoError(u);try{et.trackingDelegate.willMovePath&&et.trackingDelegate.willMovePath(e,t)}catch(r){m("FS.trackingDelegate['willMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}et.hashRemoveNode(c);try{r.node_ops.rename(c,n,s)}catch(e){throw e}finally{et.hashAddNode(c)}try{et.trackingDelegate.onMovePath&&et.trackingDelegate.onMovePath(e,t)}catch(r){m("FS.trackingDelegate['onMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}}},rmdir:function(e){var t=et.lookupPath(e,{parent:!0}).node,r=Ve.basename(e),n=et.lookupNode(t,r),o=et.mayDelete(t,r,!0);if(o)throw new et.ErrnoError(o);if(!t.node_ops.rmdir)throw new et.ErrnoError(63);if(et.isMountpoint(n))throw new et.ErrnoError(10);try{et.trackingDelegate.willDeletePath&&et.trackingDelegate.willDeletePath(e)}catch(t){m("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.rmdir(t,r),et.destroyNode(n);try{et.trackingDelegate.onDeletePath&&et.trackingDelegate.onDeletePath(e)}catch(t){m("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readdir:function(e){var t=et.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new et.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(e){var t=et.lookupPath(e,{parent:!0}).node,r=Ve.basename(e),n=et.lookupNode(t,r),o=et.mayDelete(t,r,!1);if(o)throw new et.ErrnoError(o);if(!t.node_ops.unlink)throw new et.ErrnoError(63);if(et.isMountpoint(n))throw new et.ErrnoError(10);try{et.trackingDelegate.willDeletePath&&et.trackingDelegate.willDeletePath(e)}catch(t){m("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.unlink(t,r),et.destroyNode(n);try{et.trackingDelegate.onDeletePath&&et.trackingDelegate.onDeletePath(e)}catch(t){m("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readlink:function(e){var t=et.lookupPath(e).node;if(!t)throw new et.ErrnoError(44);if(!t.node_ops.readlink)throw new et.ErrnoError(28);return ze.resolve(et.getPath(t.parent),t.node_ops.readlink(t))},stat:function(e,t){var r=et.lookupPath(e,{follow:!t}).node;if(!r)throw new et.ErrnoError(44);if(!r.node_ops.getattr)throw new et.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(e){return et.stat(e,!0)},chmod:function(e,t,r){var n;"string"==typeof e?n=et.lookupPath(e,{follow:!r}).node:n=e;if(!n.node_ops.setattr)throw new et.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:function(e,t){et.chmod(e,t,!0)},fchmod:function(e,t){var r=et.getStream(e);if(!r)throw new et.ErrnoError(8);et.chmod(r.node,t)},chown:function(e,t,r,n){var o;"string"==typeof e?o=et.lookupPath(e,{follow:!n}).node:o=e;if(!o.node_ops.setattr)throw new et.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:function(e,t,r){et.chown(e,t,r,!0)},fchown:function(e,t,r){var n=et.getStream(e);if(!n)throw new et.ErrnoError(8);et.chown(n.node,t,r)},truncate:function(e,t){if(t<0)throw new et.ErrnoError(28);var r;"string"==typeof e?r=et.lookupPath(e,{follow:!0}).node:r=e;if(!r.node_ops.setattr)throw new et.ErrnoError(63);if(et.isDir(r.mode))throw new et.ErrnoError(31);if(!et.isFile(r.mode))throw new et.ErrnoError(28);var n=et.nodePermissions(r,"w");if(n)throw new et.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:function(e,t){var r=et.getStream(e);if(!r)throw new et.ErrnoError(8);if(!(2097155&r.flags))throw new et.ErrnoError(28);et.truncate(r.node,t)},utime:function(e,t,r){var n=et.lookupPath(e,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(t,r)})},open:function(e,t,r,n,i){if(""===e)throw new et.ErrnoError(44);var a;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?et.modeStringToFlags(t):t)?4095&r|32768:0,"object"==typeof e)a=e;else{e=Ve.normalize(e);try{a=et.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var s=!1;if(64&t)if(a){if(128&t)throw new et.ErrnoError(20)}else a=et.mknod(e,r,0),s=!0;if(!a)throw new et.ErrnoError(44);if(et.isChrdev(a.mode)&&(t&=-513),65536&t&&!et.isDir(a.mode))throw new et.ErrnoError(54);if(!s){var A=et.mayOpen(a,t);if(A)throw new et.ErrnoError(A)}512&t&&et.truncate(a,0),t&=-131713;var c=et.createStream({node:a,path:et.getPath(a),flags:t,seekable:!0,position:0,stream_ops:a.stream_ops,ungotten:[],error:!1},n,i);c.stream_ops.open&&c.stream_ops.open(c),!o.logReadFiles||1&t||(et.readFiles||(et.readFiles={}),e in et.readFiles||(et.readFiles[e]=1,m("FS.trackingDelegate error on read file: "+e)));try{if(et.trackingDelegate.onOpenFile){var g=0;1!=(2097155&t)&&(g|=et.tracking.openFlags.READ),2097155&t&&(g|=et.tracking.openFlags.WRITE),et.trackingDelegate.onOpenFile(e,g)}}catch(t){m("FS.trackingDelegate['onOpenFile']('"+e+"', flags) threw an exception: "+t.message)}return c},close:function(e){if(et.isClosed(e))throw new et.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{et.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,t,r){if(et.isClosed(e))throw new et.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new et.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new et.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read:function(e,t,r,n,o){if(n<0||o<0)throw new et.ErrnoError(28);if(et.isClosed(e))throw new et.ErrnoError(8);if(1==(2097155&e.flags))throw new et.ErrnoError(8);if(et.isDir(e.node.mode))throw new et.ErrnoError(31);if(!e.stream_ops.read)throw new et.ErrnoError(28);var i=void 0!==o;if(i){if(!e.seekable)throw new et.ErrnoError(70)}else o=e.position;var a=e.stream_ops.read(e,t,r,n,o);return i||(e.position+=a),a},write:function(e,t,r,n,o,i){if(n<0||o<0)throw new et.ErrnoError(28);if(et.isClosed(e))throw new et.ErrnoError(8);if(!(2097155&e.flags))throw new et.ErrnoError(8);if(et.isDir(e.node.mode))throw new et.ErrnoError(31);if(!e.stream_ops.write)throw new et.ErrnoError(28);e.seekable&&1024&e.flags&&et.llseek(e,0,2);var a=void 0!==o;if(a){if(!e.seekable)throw new et.ErrnoError(70)}else o=e.position;var s=e.stream_ops.write(e,t,r,n,o,i);a||(e.position+=s);try{e.path&&et.trackingDelegate.onWriteToFile&&et.trackingDelegate.onWriteToFile(e.path)}catch(t){m("FS.trackingDelegate['onWriteToFile']('"+e.path+"') threw an exception: "+t.message)}return s},allocate:function(e,t,r){if(et.isClosed(e))throw new et.ErrnoError(8);if(t<0||r<=0)throw new et.ErrnoError(28);if(!(2097155&e.flags))throw new et.ErrnoError(8);if(!et.isFile(e.node.mode)&&!et.isDir(e.node.mode))throw new et.ErrnoError(43);if(!e.stream_ops.allocate)throw new et.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap:function(e,t,r,n,o,i){if(2&o&&!(2&i)&&2!=(2097155&e.flags))throw new et.ErrnoError(2);if(1==(2097155&e.flags))throw new et.ErrnoError(2);if(!e.stream_ops.mmap)throw new et.ErrnoError(43);return e.stream_ops.mmap(e,t,r,n,o,i)},msync:function(e,t,r,n,o){return e&&e.stream_ops.msync?e.stream_ops.msync(e,t,r,n,o):0},munmap:function(e){return 0},ioctl:function(e,t,r){if(!e.stream_ops.ioctl)throw new et.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile:function(e,t){if((t=t||{}).flags=t.flags||0,t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error('Invalid encoding type "'+t.encoding+'"');var r,n=et.open(e,t.flags),o=et.stat(e).size,i=new Uint8Array(o);return et.read(n,i,0,o,0),"utf8"===t.encoding?r=v(i,0):"binary"===t.encoding&&(r=i),et.close(n),r},writeFile:function(e,t,r){(r=r||{}).flags=r.flags||577;var n=et.open(e,r.flags,r.mode);if("string"==typeof t){var o=new Uint8Array(S(t)+1),i=R(t,o,0,o.length);et.write(n,o,0,i,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");et.write(n,t,0,t.byteLength,void 0,r.canOwn)}et.close(n)},cwd:function(){return et.currentPath},chdir:function(e){var t=et.lookupPath(e,{follow:!0});if(null===t.node)throw new et.ErrnoError(44);if(!et.isDir(t.node.mode))throw new et.ErrnoError(54);var r=et.nodePermissions(t.node,"x");if(r)throw new et.ErrnoError(r);et.currentPath=t.path},createDefaultDirectories:function(){et.mkdir("/tmp"),et.mkdir("/home"),et.mkdir("/home/web_user")},createDefaultDevices:function(){et.mkdir("/dev"),et.registerDevice(et.makedev(1,3),{read:function(){return 0},write:function(e,t,r,n,o){return n}}),et.mkdev("/dev/null",et.makedev(1,3)),$e.register(et.makedev(5,0),$e.default_tty_ops),$e.register(et.makedev(6,0),$e.default_tty1_ops),et.mkdev("/dev/tty",et.makedev(5,0)),et.mkdev("/dev/tty1",et.makedev(6,0));var e=We();et.createDevice("/dev","random",e),et.createDevice("/dev","urandom",e),et.mkdir("/dev/shm"),et.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){et.mkdir("/proc");var e=et.mkdir("/proc/self");et.mkdir("/proc/self/fd"),et.mount({mount:function(){var t=et.createNode(e,"fd",16895,73);return t.node_ops={lookup:function(e,t){var r=+t,n=et.getStream(r);if(!n)throw new et.ErrnoError(8);var o={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return n.path}}};return o.parent=o,o}},t}},{},"/proc/self/fd")},createStandardStreams:function(){o.stdin?et.createDevice("/dev","stdin",o.stdin):et.symlink("/dev/tty","/dev/stdin"),o.stdout?et.createDevice("/dev","stdout",null,o.stdout):et.symlink("/dev/tty","/dev/stdout"),o.stderr?et.createDevice("/dev","stderr",null,o.stderr):et.symlink("/dev/tty1","/dev/stderr");var e=et.open("/dev/stdin",0),t=et.open("/dev/stdout",1),r=et.open("/dev/stderr",1);Q(0===e.fd,"invalid handle for stdin ("+e.fd+")"),Q(1===t.fd,"invalid handle for stdout ("+t.fd+")"),Q(2===r.fd,"invalid handle for stderr ("+r.fd+")")},ensureErrnoError:function(){et.ErrnoError||(et.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){for(var t in this.errno=e,qe)if(qe[t]===e){this.code=t;break}},this.setErrno(e),this.message=Ze[e],this.stack&&(Object.defineProperty(this,"stack",{value:(new Error).stack,writable:!0}),this.stack=Ue(this.stack))},et.ErrnoError.prototype=new Error,et.ErrnoError.prototype.constructor=et.ErrnoError,[44].forEach((function(e){et.genericErrors[e]=new et.ErrnoError(e),et.genericErrors[e].stack="<generic error, no stack>"})))},staticInit:function(){et.ensureErrnoError(),et.nameTable=new Array(4096),et.mount(Je,{},"/"),et.createDefaultDirectories(),et.createDefaultDevices(),et.createSpecialDirectories(),et.filesystems={MEMFS:Je}},init:function(e,t,r){Q(!et.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)"),et.init.initialized=!0,et.ensureErrnoError(),o.stdin=e||o.stdin,o.stdout=t||o.stdout,o.stderr=r||o.stderr,et.createStandardStreams()},quit:function(){et.init.initialized=!1;var e=o._fflush;e&&e(0);for(var t=0;t<et.streams.length;t++){var r=et.streams[t];r&&et.close(r)}},getMode:function(e,t){var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:function(e,t){var r=et.analyzePath(e,t);return r.exists?r.object:null},analyzePath:function(e,t){try{e=(n=et.lookupPath(e,{follow:!t})).path}catch(e){}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=et.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=Ve.basename(e),n=et.lookupPath(e,{follow:!t}),r.exists=!0,r.path=n.path,r.object=n.node,r.name=n.node.name,r.isRoot="/"===n.path}catch(e){r.error=e.errno}return r},createPath:function(e,t,r,n){e="string"==typeof e?e:et.getPath(e);for(var o=t.split("/").reverse();o.length;){var i=o.pop();if(i){var a=Ve.join2(e,i);try{et.mkdir(a)}catch(e){}e=a}}return a},createFile:function(e,t,r,n,o){var i=Ve.join2("string"==typeof e?e:et.getPath(e),t),a=et.getMode(n,o);return et.create(i,a)},createDataFile:function(e,t,r,n,o,i){var a=t?Ve.join2("string"==typeof e?e:et.getPath(e),t):e,s=et.getMode(n,o),A=et.create(a,s);if(r){if("string"==typeof r){for(var c=new Array(r.length),g=0,d=r.length;g<d;++g)c[g]=r.charCodeAt(g);r=c}et.chmod(A,146|s);var u=et.open(A,577);et.write(u,r,0,r.length,0,i),et.close(u),et.chmod(A,s)}return A},createDevice:function(e,t,r,n){var o=Ve.join2("string"==typeof e?e:et.getPath(e),t),i=et.getMode(!!r,!!n);et.createDevice.major||(et.createDevice.major=64);var a=et.makedev(et.createDevice.major++,0);return et.registerDevice(a,{open:function(e){e.seekable=!1},close:function(e){n&&n.buffer&&n.buffer.length&&n(10)},read:function(e,t,n,o,i){for(var a=0,s=0;s<o;s++){var A;try{A=r()}catch(e){throw new et.ErrnoError(29)}if(void 0===A&&0===a)throw new et.ErrnoError(6);if(null==A)break;a++,t[n+s]=A}return a&&(e.node.timestamp=Date.now()),a},write:function(e,t,r,o,i){for(var a=0;a<o;a++)try{n(t[r+a])}catch(e){throw new et.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),a}}),et.mkdev(o,i,a)},forceLoadFile:function(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)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(!E)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=un(E(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new et.ErrnoError(29)}},createLazyFile:function(e,t,r,n,o){function i(){this.lengthKnown=!1,this.chunks=[]}if(i.prototype.get=function(e){if(!(e>this.length-1||e<0)){var t=e%this.chunkSize,r=e/this.chunkSize|0;return this.getter(r)[t]}},i.prototype.setDataGetter=function(e){this.getter=e},i.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",r,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+r+". Status: "+e.status);var t,n=Number(e.getResponseHeader("Content-length")),o=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,i=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,a=1048576;o||(a=n);var s=this;s.setDataGetter((function(e){var t=e*a,o=(e+1)*a-1;if(o=Math.min(o,n-1),void 0===s.chunks[e]&&(s.chunks[e]=function(e,t){if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>n-1)throw new Error("only "+n+" bytes available! programmer error!");var o=new XMLHttpRequest;if(o.open("GET",r,!1),n!==a&&o.setRequestHeader("Range","bytes="+e+"-"+t),"undefined"!=typeof Uint8Array&&(o.responseType="arraybuffer"),o.overrideMimeType&&o.overrideMimeType("text/plain; charset=x-user-defined"),o.send(null),!(o.status>=200&&o.status<300||304===o.status))throw new Error("Couldn't load "+r+". Status: "+o.status);return void 0!==o.response?new Uint8Array(o.response||[]):un(o.responseText||"",!0)}(t,o)),void 0===s.chunks[e])throw new Error("doXHR failed!");return s.chunks[e]})),!i&&n||(a=n=1,n=this.getter(0).length,a=n,I("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=a,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!d)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var a=new i;Object.defineProperties(a,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var s={isDevice:!1,contents:a}}else s={isDevice:!1,url:r};var A=et.createFile(e,t,s,n,o);s.contents?A.contents=s.contents:s.url&&(A.contents=null,A.url=s.url),Object.defineProperties(A,{usedBytes:{get:function(){return this.contents.length}}});var c={};return Object.keys(A.stream_ops).forEach((function(e){var t=A.stream_ops[e];c[e]=function(){return et.forceLoadFile(A),t.apply(null,arguments)}})),c.read=function(e,t,r,n,o){et.forceLoadFile(A);var i=e.node.contents;if(o>=i.length)return 0;var a=Math.min(i.length-o,n);if(Q(a>=0),i.slice)for(var s=0;s<a;s++)t[r+s]=i[o+s];else for(s=0;s<a;s++)t[r+s]=i.get(o+s);return a},A.stream_ops=c,A},createPreloadedFile:function(e,t,r,n,i,a,s,A,c,g){ke.init();var d=t?ze.resolve(Ve.join2(e,t)):e,u=he("cp "+d);function l(r){function l(r){g&&g(),A||et.createDataFile(e,t,r,n,i,c),a&&a(),me(u)}var E=!1;o.preloadPlugins.forEach((function(e){E||e.canHandle(d)&&(e.handle(r,d,l,(function(){s&&s(),me(u)})),E=!0)})),E||l(r)}Ie(u),"string"==typeof r?function(e,t,r,n){var o=n?"":he("al "+e);f(e,(function(r){Q(r,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(r)),o&&me(o)}),(function(t){if(!r)throw'Loading data file "'+e+'" failed.';r()})),o&&Ie(o)}(r,(function(e){l(e)}),s):l(r)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(e,t,r){t=t||function(){},r=r||function(){};var n=et.indexedDB();try{var o=n.open(et.DB_NAME(),et.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=function(){I("creating db"),o.result.createObjectStore(et.DB_STORE_NAME)},o.onsuccess=function(){var n=o.result.transaction([et.DB_STORE_NAME],"readwrite"),i=n.objectStore(et.DB_STORE_NAME),a=0,s=0,A=e.length;function c(){0==s?t():r()}e.forEach((function(e){var t=i.put(et.analyzePath(e).object.contents,e);t.onsuccess=function(){++a+s==A&&c()},t.onerror=function(){s++,a+s==A&&c()}})),n.onerror=r},o.onerror=r},loadFilesFromDB:function(e,t,r){t=t||function(){},r=r||function(){};var n=et.indexedDB();try{var o=n.open(et.DB_NAME(),et.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=r,o.onsuccess=function(){var n=o.result;try{var i=n.transaction([et.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}var a=i.objectStore(et.DB_STORE_NAME),s=0,A=0,c=e.length;function g(){0==A?t():r()}e.forEach((function(e){var t=a.get(e);t.onsuccess=function(){et.analyzePath(e).exists&&et.unlink(e),et.createDataFile(Ve.dirname(e),Ve.basename(e),t.result,!0,!0,!0),++s+A==c&&g()},t.onerror=function(){A++,s+A==c&&g()}})),i.onerror=r},o.onerror=r},absolutePath:function(){Ce("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder:function(){Ce("FS.createFolder has been removed; use FS.mkdir instead")},createLink:function(){Ce("FS.createLink has been removed; use FS.symlink instead")},joinPath:function(){Ce("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc:function(){Ce("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath:function(){Ce("FS.standardizePath has been removed; use PATH.normalize instead")}},tt={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(e,t,r){if("/"===t[0])return t;var n;if(-100===e)n=et.cwd();else{var o=et.getStream(e);if(!o)throw new et.ErrnoError(8);n=o.path}if(0==t.length){if(!r)throw new et.ErrnoError(44);return n}return Ve.join2(n,t)},doStat:function(e,t,r){try{var n=e(t)}catch(e){if(e&&e.node&&Ve.normalize(t)!==Ve.normalize(et.getPath(e.node)))return-54;throw e}return j[r>>2]=n.dev,j[r+4>>2]=0,j[r+8>>2]=n.ino,j[r+12>>2]=n.mode,j[r+16>>2]=n.nlink,j[r+20>>2]=n.uid,j[r+24>>2]=n.gid,j[r+28>>2]=n.rdev,j[r+32>>2]=0,Be=[n.size>>>0,(we=n.size,+Math.abs(we)>=1?we>0?(0|Math.min(+Math.floor(we/4294967296),4294967295))>>>0:~~+Math.ceil((we-+(~~we>>>0))/4294967296)>>>0:0)],j[r+40>>2]=Be[0],j[r+44>>2]=Be[1],j[r+48>>2]=4096,j[r+52>>2]=n.blocks,j[r+56>>2]=n.atime.getTime()/1e3|0,j[r+60>>2]=0,j[r+64>>2]=n.mtime.getTime()/1e3|0,j[r+68>>2]=0,j[r+72>>2]=n.ctime.getTime()/1e3|0,j[r+76>>2]=0,Be=[n.ino>>>0,(we=n.ino,+Math.abs(we)>=1?we>0?(0|Math.min(+Math.floor(we/4294967296),4294967295))>>>0:~~+Math.ceil((we-+(~~we>>>0))/4294967296)>>>0:0)],j[r+80>>2]=Be[0],j[r+84>>2]=Be[1],0},doMsync:function(e,t,r,n,o){var i=k.slice(e,e+r);et.msync(t,i,o,r,n)},doMkdir:function(e,t){return"/"===(e=Ve.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),et.mkdir(e,t,0),0},doMknod:function(e,t,r){switch(61440&t){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return et.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return-28;var n=et.readlink(e),o=Math.min(r,S(n)),i=N[t+o];return M(n,t,r+1),N[t+o]=i,o},doAccess:function(e,t){if(-8&t)return-28;var r;if(!(r=et.lookupPath(e,{follow:!0}).node))return-44;var n="";return 4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&et.nodePermissions(r,n)?-2:0},doDup:function(e,t,r){var n=et.getStream(r);return n&&et.close(n),et.open(e,t,0,r,r).fd},doReadv:function(e,t,r,n){for(var o=0,i=0;i<r;i++){var a=j[t+8*i>>2],s=j[t+(8*i+4)>>2],A=et.read(e,N,a,s,n);if(A<0)return-1;if(o+=A,A<s)break}return o},doWritev:function(e,t,r,n){for(var o=0,i=0;i<r;i++){var a=j[t+8*i>>2],s=j[t+(8*i+4)>>2],A=et.write(e,N,a,s,n);if(A<0)return-1;o+=A}return o},varargs:void 0,get:function(){return Q(null!=tt.varargs),tt.varargs+=4,j[tt.varargs-4>>2]},getStr:function(e){return P(e)},getStreamFromFD:function(e){var t=et.getStream(e);if(!t)throw new et.ErrnoError(8);return t},get64:function(e,t){return Q(e>=0?0===t:-1===t),e}};var rt=48,nt=57;function ot(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=rt&&t<=nt?"_"+e:e}function it(e,t){return e=ot(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}var at=[],st=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function At(){for(var e=0,t=5;t<st.length;++t)void 0!==st[t]&&++e;return e}function ct(){for(var e=5;e<st.length;++e)if(void 0!==st[e])return st[e];return null}function gt(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=at.length?at.pop():st.length;return st[t]={refcount:1,value:e},t}}function dt(e,t){var r=it(t,(function(e){this.name=t,this.message=e;var r=new Error(e).stack;void 0!==r&&(this.stack=this.toString()+"\n"+r.replace(/^Error(:[^\n]*)?\n/,""))}));return r.prototype=Object.create(e.prototype),r.prototype.constructor=r,r.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},r}var ut=void 0;var lt=void 0;function Et(e){for(var t="",r=e;k[r];)t+=lt[k[r++]];return t}function ft(){return Object.keys(yt).length}function pt(){var e=[];for(var t in yt)yt.hasOwnProperty(t)&&e.push(yt[t]);return e}var ht=[];function It(){for(;ht.length;){var e=ht.pop();e.$$.deleteScheduled=!1,e.delete()}}var mt=void 0;function Ct(e){mt=e,ht.length&&mt&&mt(It)}var yt={},_t=void 0;function wt(e){throw new _t(e)}function Bt(e,t){for(void 0===t&&wt("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function Dt(e){return e||wt("Cannot use deleted val. handle = "+e),st[e].value}var Ot={};function bt(e){var t=In(e),r=Et(t);return fn(t),r}function Qt(e,t){var r=Ot[e];return void 0===r&&wt(t+" has unknown type "+bt(e)),r}function Tt(e){}var vt=!1;function Pt(e){e.count.value-=1,0===e.count.value&&function(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}(e)}function Rt(e){return"undefined"==typeof FinalizationGroup?(Rt=function(e){return e},e):(vt=new FinalizationGroup((function(e){for(var t=e.next();!t.done;t=e.next()){var r=t.value;r.ptr?Pt(r):console.warn("object already deleted: "+r.ptr)}})),Tt=function(e){vt.unregister(e.$$)},(Rt=function(e){return vt.register(e,e.$$,e.$$),e})(e))}var Mt={};function St(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function Ft(e){return this.fromWireType(L[e>>2])}var Nt={},kt={},xt=void 0;function Ut(e){throw new xt(e)}function jt(e,t,r){function n(t){var n=r(t);n.length!==e.length&&Ut("Mismatched type converter count");for(var o=0;o<e.length;++o)Ht(e[o],n[o])}e.forEach((function(e){kt[e]=t}));var o=new Array(t.length),i=[],a=0;t.forEach((function(e,t){Ot.hasOwnProperty(e)?o[t]=Ot[e]:(i.push(e),Nt.hasOwnProperty(e)||(Nt[e]=[]),Nt[e].push((function(){o[t]=Ot[e],++a===i.length&&n(o)})))})),0===i.length&&n(o)}function Lt(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 Ht(e,t,r){if(r=r||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var n=t.name;if(e||wt('type "'+n+'" must have a positive integer typeid pointer'),Ot.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;wt("Cannot register type '"+n+"' twice")}if(Ot[e]=t,delete kt[e],Nt.hasOwnProperty(e)){var o=Nt[e];delete Nt[e],o.forEach((function(e){e()}))}}function Gt(e){if(!(this instanceof $t))return!1;if(!(e instanceof $t))return!1;for(var t=this.$$.ptrType.registeredClass,r=this.$$.ptr,n=e.$$.ptrType.registeredClass,o=e.$$.ptr;t.baseClass;)r=t.upcast(r),t=t.baseClass;for(;n.baseClass;)o=n.upcast(o),n=n.baseClass;return t===n&&r===o}function Yt(e){wt(e.$$.ptrType.registeredClass.name+" instance already deleted")}function Xt(){if(this.$$.ptr||Yt(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e,t=Rt(Object.create(Object.getPrototypeOf(this),{$$:{value:(e=this.$$,{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType})}}));return t.$$.count.value+=1,t.$$.deleteScheduled=!1,t}function Vt(){this.$$.ptr||Yt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&wt("Object already scheduled for deletion"),Tt(this),Pt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Wt(){return!this.$$.ptr}function zt(){return this.$$.ptr||Yt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&wt("Object already scheduled for deletion"),ht.push(this),1===ht.length&&mt&&mt(It),this.$$.deleteScheduled=!0,this}function $t(){}var Kt={};function Jt(e,t,r){if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||wt("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[n.argCount]=n}}function Zt(e,t,r){o.hasOwnProperty(e)?((void 0===r||void 0!==o[e].overloadTable&&void 0!==o[e].overloadTable[r])&&wt("Cannot register public name '"+e+"' twice"),Jt(o,e,e),o.hasOwnProperty(r)&&wt("Cannot register multiple overloads of a function with the same number of arguments ("+r+")!"),o[e].overloadTable[r]=t):(o[e]=t,void 0!==r&&(o[e].numArguments=r))}function qt(e,t,r,n,o,i,a,s){this.name=e,this.constructor=t,this.instancePrototype=r,this.rawDestructor=n,this.baseClass=o,this.getActualType=i,this.upcast=a,this.downcast=s,this.pureVirtualFunctions=[]}function er(e,t,r){for(;t!==r;)t.upcast||wt("Expected null or instance of "+r.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function tr(e,t){if(null===t)return this.isReference&&wt("null is not a valid "+this.name),0;t.$$||wt('Cannot pass "'+yr(t)+'" as a '+this.name),t.$$.ptr||wt("Cannot pass deleted object as a pointer of type "+this.name);var r=t.$$.ptrType.registeredClass;return er(t.$$.ptr,r,this.registeredClass)}function rr(e,t){var r;if(null===t)return this.isReference&&wt("null is not a valid "+this.name),this.isSmartPointer?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t.$$||wt('Cannot pass "'+yr(t)+'" as a '+this.name),t.$$.ptr||wt("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&wt("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);var n=t.$$.ptrType.registeredClass;if(r=er(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&wt("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:wt("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{var o=t.clone();r=this.rawShare(r,gt((function(){o.delete()}))),null!==e&&e.push(this.rawDestructor,r)}break;default:wt("Unsupporting sharing policy")}return r}function nr(e,t){if(null===t)return this.isReference&&wt("null is not a valid "+this.name),0;t.$$||wt('Cannot pass "'+yr(t)+'" as a '+this.name),t.$$.ptr||wt("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&wt("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var r=t.$$.ptrType.registeredClass;return er(t.$$.ptr,r,this.registeredClass)}function or(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function ir(e){this.rawDestructor&&this.rawDestructor(e)}function ar(e){null!==e&&e.delete()}function sr(e,t,r){if(t===r)return e;if(void 0===r.baseClass)return null;var n=sr(e,t,r.baseClass);return null===n?null:r.downcast(n)}function Ar(e,t){return t.ptrType&&t.ptr||Ut("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!==!!t.smartPtr&&Ut("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Rt(Object.create(e,{$$:{value:t}}))}function cr(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var r=function(e,t){return t=Bt(e,t),yt[t]}(this.registeredClass,t);if(void 0!==r){if(0===r.$$.count.value)return r.$$.ptr=t,r.$$.smartPtr=e,r.clone();var n=r.clone();return this.destructor(e),n}function o(){return this.isSmartPointer?Ar(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):Ar(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var i,a=this.registeredClass.getActualType(t),s=Kt[a];if(!s)return o.call(this);i=this.isConst?s.constPointerType:s.pointerType;var A=sr(t,this.registeredClass,i.registeredClass);return null===A?o.call(this):this.isSmartPointer?Ar(i.registeredClass.instancePrototype,{ptrType:i,ptr:A,smartPtrType:this,smartPtr:e}):Ar(i.registeredClass.instancePrototype,{ptrType:i,ptr:A})}function gr(e,t,r,n,o,i,a,s,A,c,g){this.name=e,this.registeredClass=t,this.isReference=r,this.isConst=n,this.isSmartPointer=o,this.pointeeType=i,this.sharingPolicy=a,this.rawGetPointee=s,this.rawConstructor=A,this.rawShare=c,this.rawDestructor=g,o||void 0!==t.baseClass?this.toWireType=rr:n?(this.toWireType=tr,this.destructorFunction=null):(this.toWireType=nr,this.destructorFunction=null)}function dr(e,t,r){o.hasOwnProperty(e)||Ut("Replacing nonexistant public symbol"),void 0!==o[e].overloadTable&&void 0!==r?o[e].overloadTable[r]=t:(o[e]=t,o[e].argCount=r)}function ur(e,t,r){return e.includes("j")?function(e,t,r){Q("dynCall_"+e in o,"bad function pointer type - no table for sig '"+e+"'"),r&&r.length?Q(r.length===e.substring(1).replace(/j/g,"--").length):Q(1==e.length);var n=o["dynCall_"+e];return r&&r.length?n.apply(null,[t].concat(r)):n.call(null,t)}(e,t,r):(Q(te.get(t),"missing table entry in dynCall: "+t),te.get(t).apply(null,r))}function lr(e,t){var r=(e=Et(e)).includes("j")?function(e,t){Q(e.includes("j"),"getDynCaller should only be called with i64 sigs");var r=[];return function(){r.length=arguments.length;for(var n=0;n<arguments.length;n++)r[n]=arguments[n];return ur(e,t,r)}}(e,t):te.get(t);return"function"!=typeof r&&wt("unknown function pointer with signature "+e+": "+t),r}var Er=void 0;function fr(e,t){var r=[],n={};throw t.forEach((function e(t){n[t]||Ot[t]||(kt[t]?kt[t].forEach(e):(r.push(t),n[t]=!0))})),new Er(e+": "+r.map(bt).join([", "]))}function pr(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var r=it(e.name||"unknownFunctionName",(function(){}));r.prototype=e.prototype;var n=new r,o=e.apply(n,t);return o instanceof Object?o:n}function hr(e,t,r,n,o){var i=t.length;i<2&&wt("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var a=null!==t[1]&&null!==r,s=!1,A=1;A<t.length;++A)if(null!==t[A]&&void 0===t[A].destructorFunction){s=!0;break}var c="void"!==t[0].name,g="",d="";for(A=0;A<i-2;++A)g+=(0!==A?", ":"")+"arg"+A,d+=(0!==A?", ":"")+"arg"+A+"Wired";var u="return function "+ot(e)+"("+g+") {\nif (arguments.length !== "+(i-2)+") {\nthrowBindingError('function "+e+" called with ' + arguments.length + ' arguments, expected "+(i-2)+" args!');\n}\n";s&&(u+="var destructors = [];\n");var l=s?"destructors":"null",E=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],f=[wt,n,o,St,t[0],t[1]];a&&(u+="var thisWired = classParam.toWireType("+l+", this);\n");for(A=0;A<i-2;++A)u+="var arg"+A+"Wired = argType"+A+".toWireType("+l+", arg"+A+"); // "+t[A+2].name+"\n",E.push("argType"+A),f.push(t[A+2]);if(a&&(d="thisWired"+(d.length>0?", ":"")+d),u+=(c?"var rv = ":"")+"invoker(fn"+(d.length>0?", ":"")+d+");\n",s)u+="runDestructors(destructors);\n";else for(A=a?1:2;A<t.length;++A){var p=1===A?"thisWired":"arg"+(A-2)+"Wired";null!==t[A].destructorFunction&&(u+=p+"_dtor("+p+"); // "+t[A].name+"\n",E.push(p+"_dtor"),f.push(t[A].destructorFunction))}return c&&(u+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),u+="}\n",E.push(u),pr(Function,E).apply(null,f)}function Ir(e,t){for(var r=[],n=0;n<e;n++)r.push(j[(t>>2)+n]);return r}function mr(e,t,r){return e instanceof Object||wt(r+' with invalid "this": '+e),e instanceof t.registeredClass.constructor||wt(r+' incompatible with "this" of type '+e.constructor.name),e.$$.ptr||wt("cannot call emscripten binding method "+r+" on deleted object"),er(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)}function Cr(e){e>4&&0==--st[e].refcount&&(st[e]=void 0,at.push(e))}function yr(e){if(null===e)return"null";var t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():""+e}function _r(e,t){switch(t){case 2:return function(e){return this.fromWireType(H[e>>2])};case 3:return function(e){return this.fromWireType(G[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}function wr(e,t,r){switch(t){case 0:return r?function(e){return N[e]}:function(e){return k[e]};case 1:return r?function(e){return x[e>>1]}:function(e){return U[e>>1]};case 2:return r?function(e){return j[e>>2]}:function(e){return L[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}var Br={};var Dr=[];var Or=[];function br(e){try{return B.grow(e-F.byteLength+65535>>>16),q(B.buffer),1}catch(t){m("emscripten_realloc_buffer: Attempted to grow heap from "+F.byteLength+" bytes to "+e+" bytes, but got error: "+t)}}function Qr(e){Ce("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}var Tr={};function vr(e){e.forEach((function(e){var t=Qr();t&&(Tr[t]=e)}))}var Pr={counter:1,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function(e){Pr.lastError||(Pr.lastError=e)},getNewId:function(e){for(var t=Pr.counter++,r=e.length;r<t;r++)e[r]=null;return t},MAX_TEMP_BUFFER_SIZE:2097152,numTempVertexBuffersPerSize:64,log2ceilLookup:function(e){return 32-Math.clz32(0===e?0:e-1)},generateTempBuffers:function(e,t){var r=Pr.log2ceilLookup(Pr.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 n=0;n<=r;++n){t.tempIndexBuffers[n]=null,t.tempVertexBufferCounters1[n]=t.tempVertexBufferCounters2[n]=0;var o=Pr.numTempVertexBuffersPerSize;t.tempVertexBuffers1[n]=[],t.tempVertexBuffers2[n]=[];var i=t.tempVertexBuffers1[n],a=t.tempVertexBuffers2[n];i.length=a.length=o;for(var s=0;s<o;++s)i[s]=a[s]=null}if(e){t.tempQuadIndexBuffer=on.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);for(var A=Pr.MAX_TEMP_BUFFER_SIZE>>1,c=new Uint16Array(A),g=(n=0,0);!(c[n++]=g,n>=A||(c[n++]=g+1,n>=A)||(c[n++]=g+2,n>=A)||(c[n++]=g,n>=A)||(c[n++]=g+2,n>=A)||(c[n++]=g+3,n>=A));)g+=4;t.GLctx.bufferData(34963,c,35044),t.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:function(e){var t=Pr.log2ceilLookup(e),r=Pr.currentContext.tempVertexBuffers1[t],n=Pr.currentContext.tempVertexBufferCounters1[t];Pr.currentContext.tempVertexBufferCounters1[t]=Pr.currentContext.tempVertexBufferCounters1[t]+1&Pr.numTempVertexBuffersPerSize-1;var o=r[n];if(o)return o;var i=on.getParameter(34964);return r[n]=on.createBuffer(),on.bindBuffer(34962,r[n]),on.bufferData(34962,1<<t,35048),on.bindBuffer(34962,i),r[n]},getTempIndexBuffer:function(e){var t=Pr.log2ceilLookup(e),r=Pr.currentContext.tempIndexBuffers[t];if(r)return r;var n=on.getParameter(34965);return Pr.currentContext.tempIndexBuffers[t]=on.createBuffer(),on.bindBuffer(34963,Pr.currentContext.tempIndexBuffers[t]),on.bufferData(34963,1<<t,35048),on.bindBuffer(34963,n),Pr.currentContext.tempIndexBuffers[t]},newRenderingFrameStarted:function(){if(Pr.currentContext){var e=Pr.currentContext.tempVertexBuffers1;Pr.currentContext.tempVertexBuffers1=Pr.currentContext.tempVertexBuffers2,Pr.currentContext.tempVertexBuffers2=e,e=Pr.currentContext.tempVertexBufferCounters1,Pr.currentContext.tempVertexBufferCounters1=Pr.currentContext.tempVertexBufferCounters2,Pr.currentContext.tempVertexBufferCounters2=e;for(var t=Pr.log2ceilLookup(Pr.MAX_TEMP_BUFFER_SIZE),r=0;r<=t;++r)Pr.currentContext.tempVertexBufferCounters1[r]=0}},getSource:function(e,t,r,n){for(var o="",i=0;i<t;++i){var a=n?j[n+4*i>>2]:-1;o+=P(j[r+4*i>>2],a<0?void 0:a)}return o},calcBufLength:function(e,t,r,n){return r>0?n*r:e*Pr.byteSizeByType[t-Pr.byteSizeByTypeRoot]*n},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(e){Pr.resetBufferBinding=!1;for(var t=0;t<Pr.currentContext.maxVertexAttribs;++t){var r=Pr.currentContext.clientBuffers[t];if(r.clientside&&r.enabled){Pr.resetBufferBinding=!0;var n=Pr.calcBufLength(r.size,r.type,r.stride,e),o=Pr.getTempVertexBuffer(n);on.bindBuffer(34962,o),on.bufferSubData(34962,0,k.subarray(r.ptr,r.ptr+n)),r.vertexAttribPointerAdaptor.call(on,t,r.size,r.type,r.normalized,r.stride,0)}}},postDrawHandleClientVertexAttribBindings:function(){Pr.resetBufferBinding&&on.bindBuffer(34962,Pr.buffers[on.currentArrayBufferBinding])},createContext:function(e,t){t.renderViaOffscreenBackBuffer&&(t.preserveDrawingBuffer=!0);var r=t.majorVersion>1?e.getContext("webgl2",t):e.getContext("webgl",t);return r?Pr.registerContext(r,t):0},enableOffscreenFramebufferAttributes:function(e){e.renderViaOffscreenBackBuffer=!0,e.preserveDrawingBuffer=!0},createOffscreenFramebuffer:function(e){var t=e.GLctx,r=t.createFramebuffer();if(t.bindFramebuffer(36160,r),e.defaultFbo=r,e.defaultFboForbidBlitFramebuffer=!1,t.getContextAttributes().antialias)e.defaultFboForbidBlitFramebuffer=!0;else{var n=navigator.userAgent.toLowerCase().match(/firefox\/(\d\d)/);if(null!=n){var o=n[1];e.defaultFboForbidBlitFramebuffer=o<67}}e.defaultColorTarget=t.createTexture(),e.defaultDepthTarget=t.createRenderbuffer(),Pr.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);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);var i=t.createBuffer();t.bindBuffer(34962,i),t.bufferData(34962,new Float32Array([-1,-1,-1,1,1,-1,1,1]),35044),t.bindBuffer(34962,null),e.blitVB=i;var a=t.createShader(35633);t.shaderSource(a,"attribute vec2 pos;varying lowp vec2 tex;void main() { tex = pos * 0.5 + vec2(0.5,0.5); gl_Position = vec4(pos, 0.0, 1.0); }"),t.compileShader(a);var s=t.createShader(35632);t.shaderSource(s,"varying lowp vec2 tex;uniform sampler2D sampler;void main() { gl_FragColor = texture2D(sampler, tex); }"),t.compileShader(s);var A=t.createProgram();t.attachShader(A,a),t.attachShader(A,s),t.linkProgram(A),e.blitProgram=A,e.blitPosLoc=t.getAttribLocation(A,"pos"),t.useProgram(A),t.uniform1i(t.getUniformLocation(A,"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:function(e){var t=e.GLctx;if(e.defaultColorTarget){var 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){var n=t.getParameter(36007);t.bindRenderbuffer(36161,e.defaultDepthTarget),t.renderbufferStorage(36161,33189,t.drawingBufferWidth,t.drawingBufferHeight),t.bindRenderbuffer(36161,n)}},blitOffscreenFramebuffer:function(e){var t=e.GLctx,r=t.getParameter(3089);r&&t.disable(3089);var n=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 r=function(){t.vertexAttribPointer(e.blitPosLoc,2,5126,!1,0,0),t.drawArrays(5,0,4)};t.bindFramebuffer(36160,null);var o=t.getParameter(35725);t.useProgram(e.blitProgram);var i=t.getParameter(34964);t.bindBuffer(34962,e.blitVB);var a=t.getParameter(34016);t.activeTexture(33984);var s=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget);var A=t.getParameter(3042);A&&t.disable(3042);var c=t.getParameter(2884);c&&t.disable(2884);var g=t.getParameter(2929);g&&t.disable(2929);var d=t.getParameter(2960);if(d&&t.disable(2960),e.defaultVao){var u=t.getParameter(34229);t.bindVertexArray(e.defaultVao),r(),t.bindVertexArray(u)}else{for(var l={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)},E=t.getParameter(34921),f=[],p=0;p<E;++p){var h=t.getVertexAttrib(p,34338),I=p==e.blitPosLoc;h&&!I&&t.disableVertexAttribArray(p),!h&&I&&t.enableVertexAttribArray(p),f[p]=h}r();for(p=0;p<E;++p){h=f[p];var m=p==e.blitPosLoc;h&&!m&&t.enableVertexAttribArray(p),!h&&m&&t.disableVertexAttribArray(p)}t.bindBuffer(34962,l.buffer),t.vertexAttribPointer(e.blitPosLoc,l.size,l.type,l.normalized,l.stride,l.offset)}d&&t.enable(2960),g&&t.enable(2929),c&&t.enable(2884),A&&t.enable(3042),t.bindTexture(3553,s),t.activeTexture(a),t.bindBuffer(34962,i),t.useProgram(o)}t.bindFramebuffer(36160,n),r&&t.enable(3089)},registerContext:function(e,t){var r=Pr.getNewId(Pr.contexts),n={handle:r,attributes:t,version:t.majorVersion,GLctx:e};e.canvas&&(e.canvas.GLctxObject=n),Pr.contexts[r]=n,(void 0===t.enableExtensionsByDefault||t.enableExtensionsByDefault)&&Pr.initExtensions(n),n.maxVertexAttribs=n.GLctx.getParameter(34921),n.clientBuffers=[];for(var o=0;o<n.maxVertexAttribs;o++)n.clientBuffers[o]={enabled:!1,clientside:!1,size:0,type:0,normalized:0,stride:0,ptr:0,vertexAttribPointerAdaptor:null};return Pr.generateTempBuffers(!1,n),t.renderViaOffscreenBackBuffer&&Pr.createOffscreenFramebuffer(n),r},makeContextCurrent:function(e){return Pr.currentContext=Pr.contexts[e],o.ctx=on=Pr.currentContext&&Pr.currentContext.GLctx,!(e&&!on)},getContext:function(e){return Pr.contexts[e]},deleteContext:function(e){Pr.currentContext===Pr.contexts[e]&&(Pr.currentContext=null),"object"==typeof Rr&&Rr.removeAllHandlersOnTarget(Pr.contexts[e].GLctx.canvas),Pr.contexts[e]&&Pr.contexts[e].GLctx.canvas&&(Pr.contexts[e].GLctx.canvas.GLctxObject=void 0),Pr.contexts[e]=null},initExtensions:function(e){if(e||(e=Pr.currentContext),!e.initExtensionsDone){e.initExtensionsDone=!0;var t,r=e.GLctx;!function(e){var t=e.getExtension("ANGLE_instanced_arrays");if(t)e.vertexAttribDivisor=function(e,r){t.vertexAttribDivisorANGLE(e,r)},e.drawArraysInstanced=function(e,r,n,o){t.drawArraysInstancedANGLE(e,r,n,o)},e.drawElementsInstanced=function(e,r,n,o,i){t.drawElementsInstancedANGLE(e,r,n,o,i)}}(r),function(e){var t=e.getExtension("OES_vertex_array_object");if(t)e.createVertexArray=function(){return t.createVertexArrayOES()},e.deleteVertexArray=function(e){t.deleteVertexArrayOES(e)},e.bindVertexArray=function(e){t.bindVertexArrayOES(e)},e.isVertexArray=function(e){return t.isVertexArrayOES(e)}}(r),function(e){var t=e.getExtension("WEBGL_draw_buffers");if(t)e.drawBuffers=function(e,r){t.drawBuffersWEBGL(e,r)}}(r),(t=r).dibvbi=t.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"),function(e){e.mdibvbi=e.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance")}(r),e.version>=2&&(r.disjointTimerQueryExt=r.getExtension("EXT_disjoint_timer_query_webgl2")),(e.version<2||!r.disjointTimerQueryExt)&&(r.disjointTimerQueryExt=r.getExtension("EXT_disjoint_timer_query")),function(e){e.multiDrawWebgl=e.getExtension("WEBGL_multi_draw")}(r),(r.getSupportedExtensions()||[]).forEach((function(e){e.includes("lose_context")||e.includes("debug")||r.getExtension(e)}))}}},Rr={inEventHandler:0,removeAllEventListeners:function(){for(var e=Rr.eventHandlers.length-1;e>=0;--e)Rr._removeHandler(e);Rr.eventHandlers=[],Rr.deferredCalls=[]},registerRemoveEventListeners:function(){Rr.removeEventListenersRegistered||(se.push(Rr.removeAllEventListeners),Rr.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(e,t,r){function n(e,t){if(e.length!=t.length)return!1;for(var r in e)if(e[r]!=t[r])return!1;return!0}for(var o in Rr.deferredCalls){var i=Rr.deferredCalls[o];if(i.targetFunction==e&&n(i.argsList,r))return}Rr.deferredCalls.push({targetFunction:e,precedence:t,argsList:r}),Rr.deferredCalls.sort((function(e,t){return e.precedence<t.precedence}))},removeDeferredCalls:function(e){for(var t=0;t<Rr.deferredCalls.length;++t)Rr.deferredCalls[t].targetFunction==e&&(Rr.deferredCalls.splice(t,1),--t)},canPerformEventHandlerRequests:function(){return Rr.inEventHandler&&Rr.currentEventHandler.allowsDeferredCalls},runDeferredCalls:function(){if(Rr.canPerformEventHandlerRequests())for(var e=0;e<Rr.deferredCalls.length;++e){var t=Rr.deferredCalls[e];Rr.deferredCalls.splice(e,1),--e,t.targetFunction.apply(null,t.argsList)}},eventHandlers:[],removeAllHandlersOnTarget:function(e,t){for(var r=0;r<Rr.eventHandlers.length;++r)Rr.eventHandlers[r].target!=e||t&&t!=Rr.eventHandlers[r].eventTypeString||Rr._removeHandler(r--)},_removeHandler:function(e){var t=Rr.eventHandlers[e];t.target.removeEventListener(t.eventTypeString,t.eventListenerFunc,t.useCapture),Rr.eventHandlers.splice(e,1)},registerOrRemoveHandler:function(e){var t=function(t){++Rr.inEventHandler,Rr.currentEventHandler=e,Rr.runDeferredCalls(),e.handlerFunc(t),Rr.runDeferredCalls(),--Rr.inEventHandler};if(e.callbackfunc)e.eventListenerFunc=t,e.target.addEventListener(e.eventTypeString,t,e.useCapture),Rr.eventHandlers.push(e),Rr.registerRemoveEventListeners();else for(var r=0;r<Rr.eventHandlers.length;++r)Rr.eventHandlers[r].target==e.target&&Rr.eventHandlers[r].eventTypeString==e.eventTypeString&&Rr._removeHandler(r--)},getNodeNameForTarget:function(e){return e?e==window?"#window":e==screen?"#screen":e&&e.nodeName?e.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}},Mr=["default","low-power","high-performance"],Sr=[0,"undefined"!=typeof document?document:0,"undefined"!=typeof window?window:0];function Fr(e){return"number"==typeof e&&(e=P(e)),e&&"#canvas"!==e?void 0!==Pr&&Pr.offscreenCanvases[e]?Pr.offscreenCanvases[e]:function(e){C("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?("number"==typeof e&&(e=Sr[e]||P(e)),"#window"===e?window:"#document"===e?document:"#screen"===e?screen:"#canvas"===e?o.canvas:"string"==typeof e?document.getElementById(e):e):window}catch(e){return null}}(e):void 0!==Pr&&Pr.offscreenCanvases.canvas?Pr.offscreenCanvases.canvas:o.canvas}function Nr(){return Pr.currentContext?Pr.currentContext.handle:0}function kr(e){return Pr.makeContextCurrent(e)?0:-5}o._emscripten_webgl_get_current_context=Nr,o._emscripten_webgl_make_context_current=kr;var xr={};function Ur(){if(!Ur.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:A||"./this.program"};for(var t in xr)void 0===xr[t]?delete e[t]:e[t]=xr[t];var r=[];for(var t in e)r.push(t+"="+e[t]);Ur.strings=r}return Ur.strings}var jr=[];function Lr(e,t,r,n){for(var o=0;o<e;o++){var i=on[r](),a=i&&Pr.getNewId(n);i?(i.name=a,n[a]=i):Pr.recordError(1282),j[t+4*o>>2]=a}}function Hr(e,t){L[e>>2]=t,L[e+4>>2]=(t-L[e>>2])/4294967296;var r=t>=0?function(e){return L[e>>2]+4294967296*L[e+4>>2]}(e):function(e){return L[e>>2]+4294967296*j[e+4>>2]}(e);r!=t&&C("writeI53ToI64() out of range: serialized JS Number "+t+" to Wasm heap as bytes lo=0x"+L[e>>2].toString(16)+", hi=0x"+L[e+4>>2].toString(16)+", which deserializes back to "+r+" instead!")}function Gr(e){var t=S(e)+1,r=pn(t);return M(e,r,t),r}function Yr(e){return"]"==e.slice(-1)&&e.lastIndexOf("[")}function Xr(e){return 0==(e-=5120)?N:1==e?k:2==e?x:4==e?j:6==e?H:5==e||28922==e||28520==e||30779==e||30782==e?L:U}function Vr(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function Wr(e,t,r,n,o,i){var a=Xr(e),s=Vr(a),A=1<<s,c=function(e){return{5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[e-6402]||1}(t)*A,g=function(e,t,r,n){var o;return t*(e*r+(o=n)-1&-o)}(r,n,c,Pr.unpackAlignment);return a.subarray(o>>s,o+g>>s)}function zr(e){var t=on.currentProgram;if(t){var r=t.uniformLocsById[e];return"number"==typeof r&&(t.uniformLocsById[e]=r=on.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?"["+r+"]":""))),r}Pr.recordError(1282)}var $r=[];var Kr=[];function Jr(){if(!Jr.called){Jr.called=!0;var e=(new Date).getFullYear(),t=new Date(e,0,1),r=new Date(e,6,1),n=t.getTimezoneOffset(),o=r.getTimezoneOffset(),i=Math.max(n,o);j[_n()>>2]=60*i,j[yn()>>2]=Number(n!=o);var a=g(t),s=g(r),A=J(a),c=J(s);o<n?(j[Cn()>>2]=A,j[Cn()+4>>2]=c):(j[Cn()>>2]=c,j[Cn()+4>>2]=A)}function g(e){var t=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}}function Zr(e){return e%4==0&&(e%100!=0||e%400==0)}function qr(e,t){for(var r=0,n=0;n<=t;r+=e[n++]);return r}var en=[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 rn(e,t){for(var r=new Date(e.getTime());t>0;){var n=Zr(r.getFullYear()),o=r.getMonth(),i=(n?en:tn)[o];if(!(t>i-r.getDate()))return r.setDate(r.getDate()+t),r;t-=i-r.getDate()+1,r.setDate(1),o<11?r.setMonth(o+1):(r.setMonth(0),r.setFullYear(r.getFullYear()+1))}return r}function nn(e,t,r,n){var o=j[n+40>>2],i={tm_sec:j[n>>2],tm_min:j[n+4>>2],tm_hour:j[n+8>>2],tm_mday:j[n+12>>2],tm_mon:j[n+16>>2],tm_year:j[n+20>>2],tm_wday:j[n+24>>2],tm_yday:j[n+28>>2],tm_isdst:j[n+32>>2],tm_gmtoff:j[n+36>>2],tm_zone:o?P(o):""},a=P(r),s={"%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 A in s)a=a.replace(new RegExp(A,"g"),s[A]);var c=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],g=["January","February","March","April","May","June","July","August","September","October","November","December"];function d(e,t,r){for(var n="number"==typeof e?e.toString():e||"";n.length<t;)n=r[0]+n;return n}function u(e,t){return d(e,t,"0")}function l(e,t){function r(e){return e<0?-1:e>0?1:0}var n;return 0===(n=r(e.getFullYear()-t.getFullYear()))&&0===(n=r(e.getMonth()-t.getMonth()))&&(n=r(e.getDate()-t.getDate())),n}function E(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function f(e){var t=rn(new Date(e.tm_year+1900,0,1),e.tm_yday),r=new Date(t.getFullYear(),0,4),n=new Date(t.getFullYear()+1,0,4),o=E(r),i=E(n);return l(o,t)<=0?l(i,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var p={"%a":function(e){return c[e.tm_wday].substring(0,3)},"%A":function(e){return c[e.tm_wday]},"%b":function(e){return g[e.tm_mon].substring(0,3)},"%B":function(e){return g[e.tm_mon]},"%C":function(e){return u((e.tm_year+1900)/100|0,2)},"%d":function(e){return u(e.tm_mday,2)},"%e":function(e){return d(e.tm_mday,2," ")},"%g":function(e){return f(e).toString().substring(2)},"%G":function(e){return f(e)},"%H":function(e){return u(e.tm_hour,2)},"%I":function(e){var t=e.tm_hour;return 0==t?t=12:t>12&&(t-=12),u(t,2)},"%j":function(e){return u(e.tm_mday+qr(Zr(e.tm_year+1900)?en:tn,e.tm_mon-1),3)},"%m":function(e){return u(e.tm_mon+1,2)},"%M":function(e){return u(e.tm_min,2)},"%n":function(){return"\n"},"%p":function(e){return e.tm_hour>=0&&e.tm_hour<12?"AM":"PM"},"%S":function(e){return u(e.tm_sec,2)},"%t":function(){return"\t"},"%u":function(e){return e.tm_wday||7},"%U":function(e){var t=new Date(e.tm_year+1900,0,1),r=0===t.getDay()?t:rn(t,7-t.getDay()),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(l(r,n)<0){var o=qr(Zr(n.getFullYear())?en:tn,n.getMonth()-1)-31,i=31-r.getDate()+o+n.getDate();return u(Math.ceil(i/7),2)}return 0===l(r,t)?"01":"00"},"%V":function(e){var t,r=new Date(e.tm_year+1900,0,4),n=new Date(e.tm_year+1901,0,4),o=E(r),i=E(n),a=rn(new Date(e.tm_year+1900,0,1),e.tm_yday);return l(a,o)<0?"53":l(i,a)<=0?"01":(t=o.getFullYear()<e.tm_year+1900?e.tm_yday+32-o.getDate():e.tm_yday+1-o.getDate(),u(Math.ceil(t/7),2))},"%w":function(e){return e.tm_wday},"%W":function(e){var t=new Date(e.tm_year,0,1),r=1===t.getDay()?t:rn(t,0===t.getDay()?1:7-t.getDay()+1),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(l(r,n)<0){var o=qr(Zr(n.getFullYear())?en:tn,n.getMonth()-1)-31,i=31-r.getDate()+o+n.getDate();return u(Math.ceil(i/7),2)}return 0===l(r,t)?"01":"00"},"%y":function(e){return(e.tm_year+1900).toString().substring(2)},"%Y":function(e){return e.tm_year+1900},"%z":function(e){var t=e.tm_gmtoff,r=t>=0;return t=(t=Math.abs(t)/60)/60*100+t%60,(r?"+":"-")+String("0000"+t).slice(-4)},"%Z":function(e){return e.tm_zone},"%%":function(){return"%"}};for(var A in p)a.includes(A)&&(a=a.replace(new RegExp(A,"g"),p[A](i)));var h=un(a,!1);return h.length>t?0:(Z(h,e),h.length-1)}o.requestFullscreen=function(e,t){ke.requestFullscreen(e,t)},o.requestFullScreen=function(){ke.requestFullScreen()},o.requestAnimationFrame=function(e){ke.requestAnimationFrame(e)},o.setCanvasSize=function(e,t,r){ke.setCanvasSize(e,t,r)},o.pauseMainLoop=function(){ke.mainLoop.pause()},o.resumeMainLoop=function(){ke.mainLoop.resume()},o.getUserMedia=function(){ke.getUserMedia()},o.createContext=function(e,t,r,n){return ke.createContext(e,t,r,n)};var on,an=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=et.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n},sn=365,An=146;Object.defineProperties(an.prototype,{read:{get:function(){return(this.mode&sn)===sn},set:function(e){e?this.mode|=sn:this.mode&=-366}},write:{get:function(){return(this.mode&An)===An},set:function(e){e?this.mode|=An:this.mode&=-147}},isFolder:{get:function(){return et.isDir(this.mode)}},isDevice:{get:function(){return et.isChrdev(this.mode)}}}),et.FSNode=an,et.staticInit(),o.FS_createPath=et.createPath,o.FS_createDataFile=et.createDataFile,o.FS_createPreloadedFile=et.createPreloadedFile,o.FS_createLazyFile=et.createLazyFile,o.FS_createDevice=et.createDevice,o.FS_unlink=et.unlink,o.count_emval_handles=At,o.get_first_emval=ct,ut=o.PureVirtualError=dt(Error,"PureVirtualError"),function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);lt=e}(),o.getInheritedInstanceCount=ft,o.getLiveInheritedInstances=pt,o.flushPendingDeletes=It,o.setDelayFunction=Ct,_t=o.BindingError=dt(Error,"BindingError"),xt=o.InternalError=dt(Error,"InternalError"),$t.prototype.isAliasOf=Gt,$t.prototype.clone=Xt,$t.prototype.delete=Vt,$t.prototype.isDeleted=Wt,$t.prototype.deleteLater=zt,gr.prototype.getPointee=or,gr.prototype.destructor=ir,gr.prototype.argPackAdvance=8,gr.prototype.readValueFromPointer=Ft,gr.prototype.deleteObject=ar,gr.prototype.fromWireType=cr,Er=o.UnboundTypeError=dt(Error,"UnboundTypeError");for(var cn=0;cn<32;++cn)jr.push(new Array(cn));var gn=new Float32Array(288);for(cn=0;cn<288;++cn)$r[cn]=gn.subarray(0,cn+1);var dn=new Int32Array(288);for(cn=0;cn<288;++cn)Kr[cn]=dn.subarray(0,cn+1);function un(e,t,r){var n=r>0?r:S(e)+1,o=new Array(n),i=R(e,o,0,o.length);return t&&(o.length=i),o}"function"==typeof atob&&atob;var ln,En={HaveOffsetConverter:function(){return"undefined"!=typeof wasmOffsetConverter},__cxa_allocate_exception:function(e){return pn(e+16)+16},__cxa_atexit:function(e,t){},__cxa_begin_catch:function(e){var t=new Le(e),r=t.get_exception_info();return r.get_caught()||r.set_caught(!0),r.set_rethrown(!1),He.push(t),function(e){e.add_ref()}(r),t.get_exception_ptr()},__cxa_end_catch:function(){On(0),Q(He.length>0);var e=He.pop();!function(e){if(e.release_ref()&&!e.get_rethrown()){var t=e.get_destructor();t&&te.get(t)(e.excPtr),Ye(e.excPtr)}}(e.get_exception_info()),e.free(),Ge=0},__cxa_find_matching_catch_2:function(){var e=Ge;if(!e)return w(0),0;var t=new je(e).get_type(),r=new Le;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return w(0),0|r.ptr;for(var n=Array.prototype.slice.call(arguments),o=0;o<n.length;o++){var i=n[o];if(0===i||i===t)break;if(bn(i,t,r.get_adjusted_ptr_addr()))return w(i),0|r.ptr}return w(t),0|r.ptr},__cxa_find_matching_catch_3:function(){var e=Ge;if(!e)return w(0),0;var t=new je(e).get_type(),r=new Le;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return w(0),0|r.ptr;for(var n=Array.prototype.slice.call(arguments),o=0;o<n.length;o++){var i=n[o];if(0===i||i===t)break;if(bn(i,t,r.get_adjusted_ptr_addr()))return w(i),0|r.ptr}return w(t),0|r.ptr},__cxa_free_exception:Ye,__cxa_rethrow:function(){var e=He.pop();e||Ce("no exception to throw");var t=e.get_exception_info(),r=e.get_base_ptr();throw t.get_rethrown()?e.free():(He.push(e),t.set_rethrown(!0),t.set_caught(!1)),Ge=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."},__cxa_thread_atexit:function(e,t){},__cxa_throw:function(e,t,r){throw new je(e).init(t,r),Ge=e,e+" - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch."},__resumeException:function(e){var t=new Le(e),r=t.get_base_ptr();throw Ge||(Ge=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."},__sys_fcntl64:function(e,t,r){tt.varargs=r;try{var n=tt.getStreamFromFD(e);switch(t){case 0:return(o=tt.get())<0?-28:et.open(n.path,n.flags,0,o).fd;case 1:case 2:case 13:case 14:return 0;case 3:return n.flags;case 4:var o=tt.get();return n.flags|=o,0;case 12:o=tt.get();return x[o+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return Xe(28),-1}}catch(e){return void 0!==et&&e instanceof et.ErrnoError||Ce(e),-e.errno}},__sys_ioctl:function(e,t,r){tt.varargs=r;try{var n=tt.getStreamFromFD(e);switch(t){case 21509:case 21505:case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:case 21523:case 21524:return n.tty?0:-59;case 21519:if(!n.tty)return-59;var o=tt.get();return j[o>>2]=0,0;case 21520:return n.tty?-28:-59;case 21531:o=tt.get();return et.ioctl(n,t,o);default:Ce("bad ioctl syscall "+t)}}catch(e){return void 0!==et&&e instanceof et.ErrnoError||Ce(e),-e.errno}},__sys_mmap2:function(e,t,r,n,o,i){try{return function(e,t,r,n,o,i){var a;i<<=12;var s=!1;if(16&n&&e%65536!=0)return-28;if(32&n){if(!(a=Ke(t)))return-48;s=!0}else{var A=et.getStream(o);if(!A)return-8;var c=et.mmap(A,e,t,i,r,n);a=c.ptr,s=c.allocated}return tt.mappings[a]={malloc:a,len:t,allocated:s,fd:o,prot:r,flags:n,offset:i},a}(e,t,r,n,o,i)}catch(e){return void 0!==et&&e instanceof et.ErrnoError||Ce(e),-e.errno}},__sys_open:function(e,t,r){tt.varargs=r;try{var n=tt.getStr(e),o=r?tt.get():0;return et.open(n,t,o).fd}catch(e){return void 0!==et&&e instanceof et.ErrnoError||Ce(e),-e.errno}},__sys_stat64:function(e,t){try{return e=tt.getStr(e),tt.doStat(et.stat,e,t)}catch(e){return void 0!==et&&e instanceof et.ErrnoError||Ce(e),-e.errno}},_embind_create_inheriting_constructor:function(e,t,r){e=Et(e),t=Qt(t,"wrapper"),r=Dt(r);var n=[].slice,o=t.registeredClass,i=o.instancePrototype,a=o.baseClass.instancePrototype,s=o.baseClass.constructor,A=it(e,(function(){o.baseClass.pureVirtualFunctions.forEach(function(e){if(this[e]===a[e])throw new ut("Pure virtual function "+e+" must be implemented in JavaScript")}.bind(this)),Object.defineProperty(this,"__parent",{value:i}),this.__construct.apply(this,n.call(arguments))}));for(var c in i.__construct=function(){this===i&&wt("Pass correct 'this' to __construct");var e=s.implement.apply(void 0,[this].concat(n.call(arguments)));Tt(e);var t,r,a,A=e.$$;e.notifyOnDestruction(),A.preservePointerOnDelete=!0,Object.defineProperties(this,{$$:{value:A}}),Rt(this),t=o,r=A.ptr,a=this,r=Bt(t,r),yt.hasOwnProperty(r)?wt("Tried to register registered instance: "+r):yt[r]=a},i.__destruct=function(){var e,t;this===i&&wt("Pass correct 'this' to __destruct"),Tt(this),e=o,t=this.$$.ptr,t=Bt(e,t),yt.hasOwnProperty(t)?delete yt[t]:wt("Tried to unregister unregistered instance: "+t)},A.prototype=Object.create(i),r)A.prototype[c]=r[c];return gt(A)},_embind_finalize_value_object:function(e){var t=Mt[e];delete Mt[e];var r=t.rawConstructor,n=t.rawDestructor,o=t.fields;jt([e],o.map((function(e){return e.getterReturnType})).concat(o.map((function(e){return e.setterArgumentType}))),(function(e){var i={};return o.forEach((function(t,r){var n=t.fieldName,a=e[r],s=t.getter,A=t.getterContext,c=e[r+o.length],g=t.setter,d=t.setterContext;i[n]={read:function(e){return a.fromWireType(s(A,e))},write:function(e,t){var r=[];g(d,e,c.toWireType(r,t)),St(r)}}})),[{name:t.name,fromWireType:function(e){var t={};for(var r in i)t[r]=i[r].read(e);return n(e),t},toWireType:function(e,t){for(var o in i)if(!(o in t))throw new TypeError('Missing field: "'+o+'"');var a=r();for(o in i)i[o].write(a,t[o]);return null!==e&&e.push(n,a),a},argPackAdvance:8,readValueFromPointer:Ft,destructorFunction:n}]}))},_embind_register_bigint:function(e,t,r,n,o){},_embind_register_bool:function(e,t,r,n,o){var i=Lt(r);Ht(e,{name:t=Et(t),fromWireType:function(e){return!!e},toWireType:function(e,t){return t?n:o},argPackAdvance:8,readValueFromPointer:function(e){var n;if(1===r)n=N;else if(2===r)n=x;else{if(4!==r)throw new TypeError("Unknown boolean type size: "+t);n=j}return this.fromWireType(n[e>>i])},destructorFunction:null})},_embind_register_class:function(e,t,r,n,o,i,a,s,A,c,g,d,u){g=Et(g),i=lr(o,i),s&&(s=lr(a,s)),c&&(c=lr(A,c)),u=lr(d,u);var l=ot(g);Zt(l,(function(){fr("Cannot construct "+g+" due to unbound types",[n])})),jt([e,t,r],n?[n]:[],(function(t){var r,o;t=t[0],o=n?(r=t.registeredClass).instancePrototype:$t.prototype;var a=it(l,(function(){if(Object.getPrototypeOf(this)!==A)throw new _t("Use 'new' to construct "+g);if(void 0===d.constructor_body)throw new _t(g+" has no accessible constructor");var e=d.constructor_body[arguments.length];if(void 0===e)throw new _t("Tried to invoke ctor of "+g+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(d.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)})),A=Object.create(o,{constructor:{value:a}});a.prototype=A;var d=new qt(g,a,A,u,r,i,s,c),E=new gr(g,d,!0,!1,!1),f=new gr(g+"*",d,!1,!1,!1),p=new gr(g+" const*",d,!1,!0,!1);return Kt[e]={pointerType:f,constPointerType:p},dr(l,a),[E,f,p]}))},_embind_register_class_class_function:function(e,t,r,n,o,i,a){var s=Ir(r,n);t=Et(t),i=lr(o,i),jt([],[e],(function(e){var n=(e=e[0]).name+"."+t;function o(){fr("Cannot call "+n+" due to unbound types",s)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]);var A=e.registeredClass.constructor;return void 0===A[t]?(o.argCount=r-1,A[t]=o):(Jt(A,t,n),A[t].overloadTable[r-1]=o),jt([],s,(function(e){var o=[e[0],null].concat(e.slice(1)),s=hr(n,o,null,i,a);return void 0===A[t].overloadTable?(s.argCount=r-1,A[t]=s):A[t].overloadTable[r-1]=s,[]})),[]}))},_embind_register_class_constructor:function(e,t,r,n,o,i){Q(t>0);var a=Ir(t,r);o=lr(n,o),jt([],[e],(function(e){var r="constructor "+(e=e[0]).name;if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[t-1])throw new _t("Cannot register multiple constructors with identical number of parameters ("+(t-1)+") for class '"+e.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return e.registeredClass.constructor_body[t-1]=function(){fr("Cannot construct "+e.name+" due to unbound types",a)},jt([],a,(function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=hr(r,n,null,o,i),[]})),[]}))},_embind_register_class_function:function(e,t,r,n,o,i,a,s){var A=Ir(r,n);t=Et(t),i=lr(o,i),jt([],[e],(function(e){var n=(e=e[0]).name+"."+t;function o(){fr("Cannot call "+n+" due to unbound types",A)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(t);var c=e.registeredClass.instancePrototype,g=c[t];return void 0===g||void 0===g.overloadTable&&g.className!==e.name&&g.argCount===r-2?(o.argCount=r-2,o.className=e.name,c[t]=o):(Jt(c,t,n),c[t].overloadTable[r-2]=o),jt([],A,(function(o){var s=hr(n,o,e,i,a);return void 0===c[t].overloadTable?(s.argCount=r-2,c[t]=s):c[t].overloadTable[r-2]=s,[]})),[]}))},_embind_register_class_property:function(e,t,r,n,o,i,a,s,A,c){t=Et(t),o=lr(n,o),jt([],[e],(function(e){var n=(e=e[0]).name+"."+t,g={get:function(){fr("Cannot access "+n+" due to unbound types",[r,a])},enumerable:!0,configurable:!0};return g.set=A?function(){fr("Cannot access "+n+" due to unbound types",[r,a])}:function(e){wt(n+" is a read-only property")},Object.defineProperty(e.registeredClass.instancePrototype,t,g),jt([],A?[r,a]:[r],(function(r){var a=r[0],g={get:function(){var t=mr(this,e,n+" getter");return a.fromWireType(o(i,t))},enumerable:!0};if(A){A=lr(s,A);var d=r[1];g.set=function(t){var r=mr(this,e,n+" setter"),o=[];A(c,r,d.toWireType(o,t)),St(o)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,g),[]})),[]}))},_embind_register_emval:function(e,t){Ht(e,{name:t=Et(t),fromWireType:function(e){var t=st[e].value;return Cr(e),t},toWireType:function(e,t){return gt(t)},argPackAdvance:8,readValueFromPointer:Ft,destructorFunction:null})},_embind_register_float:function(e,t,r){var n=Lt(r);Ht(e,{name:t=Et(t),fromWireType:function(e){return e},toWireType:function(e,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError('Cannot convert "'+yr(t)+'" to '+this.name);return t},argPackAdvance:8,readValueFromPointer:_r(t,n),destructorFunction:null})},_embind_register_function:function(e,t,r,n,o,i){var a=Ir(t,r);e=Et(e),o=lr(n,o),Zt(e,(function(){fr("Cannot call "+e+" due to unbound types",a)}),t-1),jt([],a,(function(r){var n=[r[0],null].concat(r.slice(1));return dr(e,hr(e,n,null,o,i),t-1),[]}))},_embind_register_integer:function(e,t,r,n,o){t=Et(t),-1===o&&(o=4294967295);var i=Lt(r),a=function(e){return e};if(0===n){var s=32-8*r;a=function(e){return e<<s>>>s}}var A=t.includes("unsigned");Ht(e,{name:t,fromWireType:a,toWireType:function(e,r){if("number"!=typeof r&&"boolean"!=typeof r)throw new TypeError('Cannot convert "'+yr(r)+'" to '+this.name);if(r<n||r>o)throw new TypeError('Passing a number "'+yr(r)+'" from JS side to C/C++ side to an argument of type "'+t+'", which is outside the valid range ['+n+", "+o+"]!");return A?r>>>0:0|r},argPackAdvance:8,readValueFromPointer:wr(t,i,0!==n),destructorFunction:null})},_embind_register_memory_view:function(e,t,r){var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function o(e){var t=L,r=t[e>>=2],o=t[e+1];return new n(F,o,r)}Ht(e,{name:r=Et(r),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},_embind_register_std_string:function(e,t){var r="std::string"===(t=Et(t));Ht(e,{name:t,fromWireType:function(e){var t,n=L[e>>2];if(r)for(var o=e+4,i=0;i<=n;++i){var a=e+4+i;if(i==n||0==k[a]){var s=P(o,a-o);void 0===t?t=s:(t+=String.fromCharCode(0),t+=s),o=a+1}}else{var A=new Array(n);for(i=0;i<n;++i)A[i]=String.fromCharCode(k[e+4+i]);t=A.join("")}return fn(e),t},toWireType:function(e,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var n="string"==typeof t;n||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||wt("Cannot pass non-string to std::string");var o=(r&&n?function(){return S(t)}:function(){return t.length})(),i=pn(4+o+1);if(L[i>>2]=o,r&&n)M(t,i+4,o+1);else if(n)for(var a=0;a<o;++a){var s=t.charCodeAt(a);s>255&&(fn(i),wt("String has UTF-16 code units that do not fit in 8 bits")),k[i+4+a]=s}else for(a=0;a<o;++a)k[i+4+a]=t[a];return null!==e&&e.push(fn,i),i},argPackAdvance:8,readValueFromPointer:Ft,destructorFunction:function(e){fn(e)}})},_embind_register_std_wstring:function(e,t,r){var n,o,i,a,s;r=Et(r),2===t?(n=X,o=V,a=W,i=function(){return U},s=1):4===t&&(n=z,o=$,a=K,i=function(){return L},s=2),Ht(e,{name:r,fromWireType:function(e){for(var r,o=L[e>>2],a=i(),A=e+4,c=0;c<=o;++c){var g=e+4+c*t;if(c==o||0==a[g>>s]){var d=n(A,g-A);void 0===r?r=d:(r+=String.fromCharCode(0),r+=d),A=g+t}}return fn(e),r},toWireType:function(e,n){"string"!=typeof n&&wt("Cannot pass non-string to C++ string type "+r);var i=a(n),A=pn(4+i+t);return L[A>>2]=i>>s,o(n,A+4,i+t),null!==e&&e.push(fn,A),A},argPackAdvance:8,readValueFromPointer:Ft,destructorFunction:function(e){fn(e)}})},_embind_register_value_object:function(e,t,r,n,o,i){Mt[e]={name:Et(t),rawConstructor:lr(r,n),rawDestructor:lr(o,i),fields:[]}},_embind_register_value_object_field:function(e,t,r,n,o,i,a,s,A,c){Mt[e].fields.push({fieldName:Et(t),getterReturnType:r,getter:lr(n,o),getterContext:i,setterArgumentType:a,setter:lr(s,A),setterContext:c})},_embind_register_void:function(e,t){Ht(e,{isVoid:!0,name:t=Et(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},_emval_call_void_method:function(e,t,r,n){var o,i;(e=Dr[e])(t=Dt(t),r=void 0===(i=Br[o=r])?Et(o):i,null,n)},_emval_decref:Cr,_emval_get_method_caller:function(e,t){for(var r=function(e,t){for(var r=new Array(e),n=0;n<e;++n)r[n]=Qt(j[(t>>2)+n],"parameter "+n);return r}(e,t),n=r[0],o=n.name+"_$"+r.slice(1).map((function(e){return e.name})).join("_")+"$",i=["retType"],a=[n],s="",A=0;A<e-1;++A)s+=(0!==A?", ":"")+"arg"+A,i.push("argType"+A),a.push(r[1+A]);var c="return function "+ot("methodCaller_"+o)+"(handle, name, destructors, args) {\n",g=0;for(A=0;A<e-1;++A)c+=" var arg"+A+" = argType"+A+".readValueFromPointer(args"+(g?"+"+g:"")+");\n",g+=r[A+1].argPackAdvance;for(c+=" var rv = handle[name]("+s+");\n",A=0;A<e-1;++A)r[A+1].deleteObject&&(c+=" argType"+A+".deleteObject(arg"+A+");\n");n.isVoid||(c+=" return retType.toWireType(destructors, rv);\n"),c+="};\n",i.push(c);var d,u,l=pr(Function,i).apply(null,a);return d=l,u=Dr.length,Dr.push(d),u},_emval_incref:function(e){e>4&&(st[e].refcount+=1)},_emval_take_value:function(e,t){return gt((e=Qt(e,"_emval_take_value")).readValueFromPointer(t))},abort:function(){Ce()},clock_gettime:function(e,t){var r;if(0===e)r=Date.now();else{if(1!==e&&4!==e)return Xe(28),-1;r=ve()}return j[t>>2]=r/1e3|0,j[t+4>>2]=r%1e3*1e3*1e3|0,0},dlopen:function(e,t){Ce("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")},dlsym:function(e,t){Ce("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")},emscripten_asm_const_int:function(e,t,r){var n=function(e,t){var r;for(Q(Array.isArray(Or)),Q(t%16==0),Or.length=0,t>>=2;r=k[e++];){Q(100===r||102===r||105===r);var n=r<105;n&&1&t&&t++,Or.push(n?G[t++>>1]:j[t]),++t}return Or}(t,r);return Pe.hasOwnProperty(e)||Ce("No EM_ASM constant found at address "+e),Pe[e].apply(null,n)},emscripten_get_heap_max:function(){return 2147483648},emscripten_memcpy_big:function(e,t,r){k.copyWithin(e,t,t+r)},emscripten_pc_get_function:function(e){Ce("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")},emscripten_resize_heap:function(e){var t=k.length;Q((e>>>=0)>t);var r,n,o=2147483648;if(e>o)return m("Cannot enlarge memory, asked to go up to "+e+" bytes, but the limit is "+o+" bytes!"),!1;for(var i=1;i<=4;i*=2){var a=t*(1+.2/i);a=Math.min(a,e+100663296);var s=Math.min(o,((r=Math.max(e,a))%(n=65536)>0&&(r+=n-r%n),r));if(br(s))return!0}return m("Failed to grow the heap from "+t+" bytes to "+s+" bytes, not enough memory!"),!1},emscripten_stack_snapshot:function(){var e=(new Error).stack.split("\n");return"Error"==e[0]&&e.shift(),vr(e),Tr.last_addr=Qr(e[2]),Tr.last_stack=e,Tr.last_addr},emscripten_stack_unwind_buffer:function(e,t,r){var n;Tr.last_addr==e?n=Tr.last_stack:("Error"==(n=(new Error).stack.split("\n"))[0]&&n.shift(),vr(n));for(var o=2;n[o]&&Qr(n[o])!=e;)++o;for(var i=0;i<r&&n[i+o];++i)j[t+4*i>>2]=Qr(n[i+o]);return i},emscripten_thread_sleep:function(e){for(var t=ve();ve()-t<e;);},emscripten_webgl_create_context:function(e,t){return function(e,t){Q(t);var r=t>>2,n=j[r+6],o={alpha:!!j[r+0],depth:!!j[r+1],stencil:!!j[r+2],antialias:!!j[r+3],premultipliedAlpha:!!j[r+4],preserveDrawingBuffer:!!j[r+5],powerPreference:Mr[n],failIfMajorPerformanceCaveat:!!j[r+7],majorVersion:j[r+8],minorVersion:j[r+9],enableExtensionsByDefault:j[r+10],explicitSwapControl:j[r+11],proxyContextToMainThread:j[r+12],renderViaOffscreenBackBuffer:j[r+13]},i=Fr(e);if(!i)return 0;if(i.offscreenCanvas&&(i=i.offscreenCanvas),o.explicitSwapControl&&(i.transferControlToOffscreen||"undefined"!=typeof OffscreenCanvas&&i instanceof OffscreenCanvas||o.renderViaOffscreenBackBuffer||(o.renderViaOffscreenBackBuffer=!0),i.transferControlToOffscreen)){if(i.controlTransferredOffscreen){if(!Pr.offscreenCanvases[i.id])return 0}else Pr.offscreenCanvases[i.id]={canvas:i.transferControlToOffscreen(),canvasSharedPtr:pn(12),id:i.id},i.controlTransferredOffscreen=!0;i=Pr.offscreenCanvases[i.id]}return Pr.createContext(i,o)}(e,t)},emscripten_webgl_destroy_context:function(e){Pr.currentContext==e&&(Pr.currentContext=0),Pr.deleteContext(e)},emscripten_webgl_get_context_attributes:function(e,t){if(!t)return-5;if(!(e=Pr.contexts[e]))return-3;var r=e.GLctx;if(!r)return-3;r=r.getContextAttributes(),j[t>>2]=r.alpha,j[t+4>>2]=r.depth,j[t+8>>2]=r.stencil,j[t+12>>2]=r.antialias,j[t+16>>2]=r.premultipliedAlpha,j[t+20>>2]=r.preserveDrawingBuffer;var n=r.powerPreference&&Mr.indexOf(r.powerPreference);return j[t+24>>2]=n,j[t+28>>2]=r.failIfMajorPerformanceCaveat,j[t+32>>2]=e.version,j[t+36>>2]=0,j[t+40>>2]=e.attributes.enableExtensionsByDefault,0},emscripten_webgl_get_current_context:Nr,emscripten_webgl_init_context_attributes:function(e){Q(e);for(var t=e>>2,r=0;r<14;++r)j[t+r]=0;j[t+0]=j[t+1]=j[t+3]=j[t+4]=j[t+8]=j[t+10]=1},emscripten_webgl_make_context_current:kr,environ_get:function(e,t){var r=0;return Ur().forEach((function(n,o){var i=t+r;j[e+4*o>>2]=i,function(e,t,r){for(var n=0;n<e.length;++n)Q(e.charCodeAt(n)==e.charCodeAt(n)&255),N[0|t++]=e.charCodeAt(n);r||(N[0|t]=0)}(n,i),r+=n.length+1})),0},environ_sizes_get:function(e,t){var r=Ur();j[e>>2]=r.length;var n=0;return r.forEach((function(e){n+=e.length+1})),j[t>>2]=n,0},exit:Me,fd_close:function(e){try{var t=tt.getStreamFromFD(e);return et.close(t),0}catch(e){return void 0!==et&&e instanceof et.ErrnoError||Ce(e),e.errno}},fd_read:function(e,t,r,n){try{var o=tt.getStreamFromFD(e),i=tt.doReadv(o,t,r);return j[n>>2]=i,0}catch(e){return void 0!==et&&e instanceof et.ErrnoError||Ce(e),e.errno}},fd_seek:function(e,t,r,n,o){try{var i=tt.getStreamFromFD(e),a=4294967296*r+(t>>>0),s=9007199254740992;return a<=-s||a>=s?-61:(et.llseek(i,a,n),Be=[i.position>>>0,(we=i.position,+Math.abs(we)>=1?we>0?(0|Math.min(+Math.floor(we/4294967296),4294967295))>>>0:~~+Math.ceil((we-+(~~we>>>0))/4294967296)>>>0:0)],j[o>>2]=Be[0],j[o+4>>2]=Be[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0)}catch(e){return void 0!==et&&e instanceof et.ErrnoError||Ce(e),e.errno}},fd_write:function(e,t,r,n){try{var o=tt.getStreamFromFD(e),i=tt.doWritev(o,t,r);return j[n>>2]=i,0}catch(e){return void 0!==et&&e instanceof et.ErrnoError||Ce(e),e.errno}},getTempRet0:function(){return _},getentropy:function e(t,r){e.randomDevice||(e.randomDevice=We());for(var n=0;n<r;n++)N[t+n|0]=e.randomDevice();return 0},glActiveTexture:function(e){on.activeTexture(e)},glAttachShader:function(e,t){on.attachShader(Pr.programs[e],Pr.shaders[t])},glBindAttribLocation:function(e,t,r){on.bindAttribLocation(Pr.programs[e],t,P(r))},glBindBuffer:function(e,t){34962==e?on.currentArrayBufferBinding=t:34963==e&&(on.currentElementArrayBufferBinding=t),35051==e?on.currentPixelPackBufferBinding=t:35052==e&&(on.currentPixelUnpackBufferBinding=t),on.bindBuffer(e,Pr.buffers[t])},glBindBufferBase:function(e,t,r){on.bindBufferBase(e,t,Pr.buffers[r])},glBindFramebuffer:function(e,t){on.bindFramebuffer(e,t?Pr.framebuffers[t]:Pr.currentContext.defaultFbo)},glBindTexture:function(e,t){on.bindTexture(e,Pr.textures[t])},glBindVertexArray:function(e){on.bindVertexArray(Pr.vaos[e]);var t=on.getParameter(34965);on.currentElementArrayBufferBinding=t?0|t.name:0},glBufferData:function(e,t,r,n){Pr.currentContext.version>=2?r?on.bufferData(e,k,n,r,t):on.bufferData(e,t,n):on.bufferData(e,r?k.subarray(r,r+t):t,n)},glClientWaitSync:function(e,t,r,n){return on.clientWaitSync(Pr.syncs[e],t,(o=r,Q((i=n)===(0|i)),(o>>>0)+4294967296*i));var o,i},glCompileShader:function(e){on.compileShader(Pr.shaders[e])},glCreateProgram:function(){var e=Pr.getNewId(Pr.programs),t=on.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,Pr.programs[e]=t,e},glCreateShader:function(e){var t=Pr.getNewId(Pr.shaders);return Pr.shaders[t]=on.createShader(e),t},glDeleteBuffers:function(e,t){for(var r=0;r<e;r++){var n=j[t+4*r>>2],o=Pr.buffers[n];o&&(on.deleteBuffer(o),o.name=0,Pr.buffers[n]=null,n==on.currentArrayBufferBinding&&(on.currentArrayBufferBinding=0),n==on.currentElementArrayBufferBinding&&(on.currentElementArrayBufferBinding=0),n==on.currentPixelPackBufferBinding&&(on.currentPixelPackBufferBinding=0),n==on.currentPixelUnpackBufferBinding&&(on.currentPixelUnpackBufferBinding=0))}},glDeleteFramebuffers:function(e,t){for(var r=0;r<e;++r){var n=j[t+4*r>>2],o=Pr.framebuffers[n];o&&(on.deleteFramebuffer(o),o.name=0,Pr.framebuffers[n]=null)}},glDeleteProgram:function(e){if(e){var t=Pr.programs[e];t?(on.deleteProgram(t),t.name=0,Pr.programs[e]=null):Pr.recordError(1281)}},glDeleteShader:function(e){if(e){var t=Pr.shaders[e];t?(on.deleteShader(t),Pr.shaders[e]=null):Pr.recordError(1281)}},glDeleteSync:function(e){if(e){var t=Pr.syncs[e];t?(on.deleteSync(t),t.name=0,Pr.syncs[e]=null):Pr.recordError(1281)}},glDeleteTextures:function(e,t){for(var r=0;r<e;r++){var n=j[t+4*r>>2],o=Pr.textures[n];o&&(on.deleteTexture(o),o.name=0,Pr.textures[n]=null)}},glDeleteVertexArrays:function(e,t){for(var r=0;r<e;r++){var n=j[t+4*r>>2];on.deleteVertexArray(Pr.vaos[n]),Pr.vaos[n]=null}},glDisable:function(e){on.disable(e)},glDisableVertexAttribArray:function(e){Pr.currentContext.clientBuffers[e].enabled=!1,on.disableVertexAttribArray(e)},glDrawArrays:function(e,t,r){Pr.preDrawHandleClientVertexAttribBindings(t+r),on.drawArrays(e,t,r),Pr.postDrawHandleClientVertexAttribBindings()},glDrawBuffers:function(e,t){for(var r=jr[e],n=0;n<e;n++)r[n]=j[t+4*n>>2];on.drawBuffers(r)},glEnableVertexAttribArray:function(e){Pr.currentContext.clientBuffers[e].enabled=!0,on.enableVertexAttribArray(e)},glFenceSync:function(e,t){var r=on.fenceSync(e,t);if(r){var n=Pr.getNewId(Pr.syncs);return r.name=n,Pr.syncs[n]=r,n}return 0},glFinish:function(){on.finish()},glFlush:function(){on.flush()},glFramebufferTexture2D:function(e,t,r,n,o){on.framebufferTexture2D(e,t,r,Pr.textures[n],o)},glFramebufferTextureLayer:function(e,t,r,n,o){on.framebufferTextureLayer(e,t,Pr.textures[r],n,o)},glGenBuffers:function(e,t){Lr(e,t,"createBuffer",Pr.buffers)},glGenFramebuffers:function(e,t){Lr(e,t,"createFramebuffer",Pr.framebuffers)},glGenTextures:function(e,t){Lr(e,t,"createTexture",Pr.textures)},glGenVertexArrays:function(e,t){Lr(e,t,"createVertexArray",Pr.vaos)},glGetAttribLocation:function(e,t){return on.getAttribLocation(Pr.programs[e],P(t))},glGetError:function(){var e=on.getError()||Pr.lastError;return Pr.lastError=0,e},glGetIntegerv:function(e,t){!function(e,t,r){if(t){var n=void 0;switch(e){case 36346:n=1;break;case 36344:return void(0!=r&&1!=r&&Pr.recordError(1280));case 34814:case 36345:n=0;break;case 34466:var o=on.getParameter(34467);n=o?o.length:0;break;case 33309:if(Pr.currentContext.version<2)return void Pr.recordError(1282);n=2*(on.getSupportedExtensions()||[]).length;break;case 33307:case 33308:if(Pr.currentContext.version<2)return void Pr.recordError(1280);n=33307==e?3:0}if(void 0===n){var i=on.getParameter(e);switch(typeof i){case"number":n=i;break;case"boolean":n=i?1:0;break;case"string":return void Pr.recordError(1280);case"object":if(null===i)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:n=0;break;default:return void Pr.recordError(1280)}else{if(i instanceof Float32Array||i instanceof Uint32Array||i instanceof Int32Array||i instanceof Array){for(var a=0;a<i.length;++a)switch(r){case 0:j[t+4*a>>2]=i[a];break;case 2:H[t+4*a>>2]=i[a];break;case 4:N[t+a|0]=i[a]?1:0}return}try{n=0|i.name}catch(t){return Pr.recordError(1280),void m("GL_INVALID_ENUM in glGet"+r+"v: Unknown object returned from WebGL getParameter("+e+")! (error: "+t+")")}}break;default:return Pr.recordError(1280),void m("GL_INVALID_ENUM in glGet"+r+"v: Native code calling glGet"+r+"v("+e+") and it returns "+i+" of type "+typeof i+"!")}}switch(r){case 1:Hr(t,n);break;case 0:j[t>>2]=n;break;case 2:H[t>>2]=n;break;case 4:N[0|t]=n?1:0}}else Pr.recordError(1281)}(e,t,0)},glGetString:function(e){var t=Pr.stringCache[e];if(!t){switch(e){case 7939:var r=on.getSupportedExtensions()||[];t=Gr((r=r.concat(r.map((function(e){return"GL_"+e})))).join(" "));break;case 7936:case 7937:case 37445:case 37446:var n=on.getParameter(e);n||Pr.recordError(1280),t=n&&Gr(n);break;case 7938:var o=on.getParameter(7938);t=Gr(o=Pr.currentContext.version>=2?"OpenGL ES 3.0 ("+o+")":"OpenGL ES 2.0 ("+o+")");break;case 35724:var i=on.getParameter(35724),a=i.match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);null!==a&&(3==a[1].length&&(a[1]=a[1]+"0"),i="OpenGL ES GLSL ES "+a[1]+" ("+i+")"),t=Gr(i);break;default:Pr.recordError(1280)}Pr.stringCache[e]=t}return t},glGetUniformBlockIndex:function(e,t){return on.getUniformBlockIndex(Pr.programs[e],P(t))},glGetUniformLocation:function(e,t){if(t=P(t),e=Pr.programs[e]){!function(e){var t,r,n=e.uniformLocsById,o=e.uniformSizeAndIdsByName;if(!n)for(e.uniformLocsById=n={},e.uniformArrayNamesById={},t=0;t<on.getProgramParameter(e,35718);++t){var i=on.getActiveUniform(e,t),a=i.name,s=i.size,A=Yr(a),c=A>0?a.slice(0,A):a,g=e.uniformIdCounter;for(e.uniformIdCounter+=s,o[c]=[s,g],r=0;r<s;++r)n[g]=r,e.uniformArrayNamesById[g++]=c}}(e);var r=e.uniformLocsById,n=0,o=t,i=Yr(t);i>0&&(s=t.slice(i+1),n=parseInt(s)>>>0,o=t.slice(0,i));var a=e.uniformSizeAndIdsByName[o];if(a&&n<a[0]&&(r[n+=a[1]]=r[n]||on.getUniformLocation(e,t)))return n}else Pr.recordError(1281);var s;return-1},glLinkProgram:function(e){e=Pr.programs[e],on.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}},glPixelStorei:function(e,t){3317==e&&(Pr.unpackAlignment=t),on.pixelStorei(e,t)},glReadPixels:function(e,t,r,n,o,i,a){if(Pr.currentContext.version>=2)if(on.currentPixelPackBufferBinding)on.readPixels(e,t,r,n,o,i,a);else{var s=Xr(i);on.readPixels(e,t,r,n,o,i,s,a>>Vr(s))}else{var A=Wr(i,o,r,n,a);A?on.readPixels(e,t,r,n,o,i,A):Pr.recordError(1280)}},glShaderSource:function(e,t,r,n){var o=Pr.getSource(e,t,r,n);on.shaderSource(Pr.shaders[e],o)},glTexImage2D:function(e,t,r,n,o,i,a,s,A){if(Pr.currentContext.version>=2)if(on.currentPixelUnpackBufferBinding)on.texImage2D(e,t,r,n,o,i,a,s,A);else if(A){var c=Xr(s);on.texImage2D(e,t,r,n,o,i,a,s,c,A>>Vr(c))}else on.texImage2D(e,t,r,n,o,i,a,s,null);else on.texImage2D(e,t,r,n,o,i,a,s,A?Wr(s,a,n,o,A):null)},glTexParameterfv:function(e,t,r){var n=H[r>>2];on.texParameterf(e,t,n)},glTexParameteri:function(e,t,r){on.texParameteri(e,t,r)},glTexStorage2D:function(e,t,r,n,o){on.texStorage2D(e,t,r,n,o)},glTexStorage3D:function(e,t,r,n,o,i){on.texStorage3D(e,t,r,n,o,i)},glTexSubImage2D:function(e,t,r,n,o,i,a,s,A){if(Pr.currentContext.version>=2)if(on.currentPixelUnpackBufferBinding)on.texSubImage2D(e,t,r,n,o,i,a,s,A);else if(A){var c=Xr(s);on.texSubImage2D(e,t,r,n,o,i,a,s,c,A>>Vr(c))}else on.texSubImage2D(e,t,r,n,o,i,a,s,null);else{var g=null;A&&(g=Wr(s,a,o,i,A)),on.texSubImage2D(e,t,r,n,o,i,a,s,g)}},glTexSubImage3D:function(e,t,r,n,o,i,a,s,A,c,g){if(on.currentPixelUnpackBufferBinding)on.texSubImage3D(e,t,r,n,o,i,a,s,A,c,g);else if(g){var d=Xr(c);on.texSubImage3D(e,t,r,n,o,i,a,s,A,c,d,g>>Vr(d))}else on.texSubImage3D(e,t,r,n,o,i,a,s,A,c,null)},glUniform1f:function(e,t){on.uniform1f(zr(e),t)},glUniform1i:function(e,t){on.uniform1i(zr(e),t)},glUniform2fv:function(e,t,r){if(Pr.currentContext.version>=2)on.uniform2fv(zr(e),H,r>>2,2*t);else{if(t<=144)for(var n=$r[2*t-1],o=0;o<2*t;o+=2)n[o]=H[r+4*o>>2],n[o+1]=H[r+(4*o+4)>>2];else n=H.subarray(r>>2,r+8*t>>2);on.uniform2fv(zr(e),n)}},glUniform4fv:function(e,t,r){if(Pr.currentContext.version>=2)on.uniform4fv(zr(e),H,r>>2,4*t);else{if(t<=72){var n=$r[4*t-1],o=H;r>>=2;for(var i=0;i<4*t;i+=4){var a=r+i;n[i]=o[a],n[i+1]=o[a+1],n[i+2]=o[a+2],n[i+3]=o[a+3]}}else n=H.subarray(r>>2,r+16*t>>2);on.uniform4fv(zr(e),n)}},glUniform4iv:function(e,t,r){if(Pr.currentContext.version>=2)on.uniform4iv(zr(e),j,r>>2,4*t);else{if(t<=72)for(var n=Kr[4*t-1],o=0;o<4*t;o+=4)n[o]=j[r+4*o>>2],n[o+1]=j[r+(4*o+4)>>2],n[o+2]=j[r+(4*o+8)>>2],n[o+3]=j[r+(4*o+12)>>2];else n=j.subarray(r>>2,r+16*t>>2);on.uniform4iv(zr(e),n)}},glUniformBlockBinding:function(e,t,r){e=Pr.programs[e],on.uniformBlockBinding(e,t,r)},glUniformMatrix4fv:function(e,t,r,n){if(Pr.currentContext.version>=2)on.uniformMatrix4fv(zr(e),!!r,H,n>>2,16*t);else{if(t<=18){var o=$r[16*t-1],i=H;n>>=2;for(var a=0;a<16*t;a+=16){var s=n+a;o[a]=i[s],o[a+1]=i[s+1],o[a+2]=i[s+2],o[a+3]=i[s+3],o[a+4]=i[s+4],o[a+5]=i[s+5],o[a+6]=i[s+6],o[a+7]=i[s+7],o[a+8]=i[s+8],o[a+9]=i[s+9],o[a+10]=i[s+10],o[a+11]=i[s+11],o[a+12]=i[s+12],o[a+13]=i[s+13],o[a+14]=i[s+14],o[a+15]=i[s+15]}}else o=H.subarray(n>>2,n+64*t>>2);on.uniformMatrix4fv(zr(e),!!r,o)}},glUseProgram:function(e){e=Pr.programs[e],on.useProgram(e),on.currentProgram=e},glVertexAttribPointer:function(e,t,r,n,o,i){var a=Pr.currentContext.clientBuffers[e];if(!on.currentArrayBufferBinding)return a.size=t,a.type=r,a.normalized=n,a.stride=o,a.ptr=i,a.clientside=!0,void(a.vertexAttribPointerAdaptor=function(e,t,r,n,o,i){this.vertexAttribPointer(e,t,r,n,o,i)});a.clientside=!1,on.vertexAttribPointer(e,t,r,!!n,o,i)},glViewport:function(e,t,r,n){on.viewport(e,t,r,n)},gmtime_r:function e(t,r){var n=new Date(1e3*j[t>>2]);j[r>>2]=n.getUTCSeconds(),j[r+4>>2]=n.getUTCMinutes(),j[r+8>>2]=n.getUTCHours(),j[r+12>>2]=n.getUTCDate(),j[r+16>>2]=n.getUTCMonth(),j[r+20>>2]=n.getUTCFullYear()-1900,j[r+24>>2]=n.getUTCDay(),j[r+36>>2]=0,j[r+32>>2]=0;var o=Date.UTC(n.getUTCFullYear(),0,1,0,0,0,0),i=(n.getTime()-o)/864e5|0;return j[r+28>>2]=i,e.GMTString||(e.GMTString=J("GMT")),j[r+40>>2]=e.GMTString,r},invoke_diii:function(e,t,r,n){var o=wn();try{return te.get(e)(t,r,n)}catch(e){if(Bn(o),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_i:function(e){var t=wn();try{return te.get(e)()}catch(e){if(Bn(t),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_ii:function(e,t){var r=wn();try{return te.get(e)(t)}catch(e){if(Bn(r),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_iii:function(e,t,r){var n=wn();try{return te.get(e)(t,r)}catch(e){if(Bn(n),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_iiii:function(e,t,r,n){var o=wn();try{return te.get(e)(t,r,n)}catch(e){if(Bn(o),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_iiiii:function(e,t,r,n,o){var i=wn();try{return te.get(e)(t,r,n,o)}catch(e){if(Bn(i),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_iiiiii:function(e,t,r,n,o,i){var a=wn();try{return te.get(e)(t,r,n,o,i)}catch(e){if(Bn(a),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_iiiiiii:function(e,t,r,n,o,i,a){var s=wn();try{return te.get(e)(t,r,n,o,i,a)}catch(e){if(Bn(s),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_iiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c){var g=wn();try{return te.get(e)(t,r,n,o,i,a,s,A,c)}catch(e){if(Bn(g),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_iiiiiiii:function(e,t,r,n,o,i,a,s){var A=wn();try{return te.get(e)(t,r,n,o,i,a,s)}catch(e){if(Bn(A),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_iiiiiiiii:function(e,t,r,n,o,i,a,s,A){var c=wn();try{return te.get(e)(t,r,n,o,i,a,s,A)}catch(e){if(Bn(c),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_v:function(e){var t=wn();try{te.get(e)()}catch(e){if(Bn(t),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_vdiii:function(e,t,r,n,o){var i=wn();try{te.get(e)(t,r,n,o)}catch(e){if(Bn(i),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_vi:function(e,t){var r=wn();try{te.get(e)(t)}catch(e){if(Bn(r),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_vididdii:function(e,t,r,n,o,i,a,s){var A=wn();try{te.get(e)(t,r,n,o,i,a,s)}catch(e){if(Bn(A),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_vidii:function(e,t,r,n,o){var i=wn();try{te.get(e)(t,r,n,o)}catch(e){if(Bn(i),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_vii:function(e,t,r){var n=wn();try{te.get(e)(t,r)}catch(e){if(Bn(n),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viid:function(e,t,r,n){var o=wn();try{te.get(e)(t,r,n)}catch(e){if(Bn(o),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viidi:function(e,t,r,n,o){var i=wn();try{te.get(e)(t,r,n,o)}catch(e){if(Bn(i),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viididii:function(e,t,r,n,o,i,a,s){var A=wn();try{te.get(e)(t,r,n,o,i,a,s)}catch(e){if(Bn(A),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viii:function(e,t,r,n){var o=wn();try{te.get(e)(t,r,n)}catch(e){if(Bn(o),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiid:function(e,t,r,n,o){var i=wn();try{te.get(e)(t,r,n,o)}catch(e){if(Bn(i),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiidd:function(e,t,r,n,o,i){var a=wn();try{te.get(e)(t,r,n,o,i)}catch(e){if(Bn(a),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiddi:function(e,t,r,n,o,i,a){var s=wn();try{te.get(e)(t,r,n,o,i,a)}catch(e){if(Bn(s),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiidi:function(e,t,r,n,o,i){var a=wn();try{te.get(e)(t,r,n,o,i)}catch(e){if(Bn(a),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiii:function(e,t,r,n,o){var i=wn();try{te.get(e)(t,r,n,o)}catch(e){if(Bn(i),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiid:function(e,t,r,n,o,i){var a=wn();try{te.get(e)(t,r,n,o,i)}catch(e){if(Bn(a),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiidi:function(e,t,r,n,o,i,a){var s=wn();try{te.get(e)(t,r,n,o,i,a)}catch(e){if(Bn(s),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiidid:function(e,t,r,n,o,i,a,s){var A=wn();try{te.get(e)(t,r,n,o,i,a,s)}catch(e){if(Bn(A),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiidiidiiiiiii:function(e,t,r,n,o,i,a,s,A,c,g,d,u,l,E,f){var p=wn();try{te.get(e)(t,r,n,o,i,a,s,A,c,g,d,u,l,E,f)}catch(e){if(Bn(p),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiifiifiiiiiii:function(e,t,r,n,o,i,a,s,A,c,g,d,u,l,E,f){var p=wn();try{te.get(e)(t,r,n,o,i,a,s,A,c,g,d,u,l,E,f)}catch(e){if(Bn(p),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiii:function(e,t,r,n,o,i){var a=wn();try{te.get(e)(t,r,n,o,i)}catch(e){if(Bn(a),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiiid:function(e,t,r,n,o,i,a){var s=wn();try{te.get(e)(t,r,n,o,i,a)}catch(e){if(Bn(s),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiiif:function(e,t,r,n,o,i,a){var s=wn();try{te.get(e)(t,r,n,o,i,a)}catch(e){if(Bn(s),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiiii:function(e,t,r,n,o,i,a){var s=wn();try{te.get(e)(t,r,n,o,i,a)}catch(e){if(Bn(s),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiiiid:function(e,t,r,n,o,i,a,s){var A=wn();try{te.get(e)(t,r,n,o,i,a,s)}catch(e){if(Bn(A),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiiiif:function(e,t,r,n,o,i,a,s){var A=wn();try{te.get(e)(t,r,n,o,i,a,s)}catch(e){if(Bn(A),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiiiii:function(e,t,r,n,o,i,a,s){var A=wn();try{te.get(e)(t,r,n,o,i,a,s)}catch(e){if(Bn(A),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,g){var d=wn();try{te.get(e)(t,r,n,o,i,a,s,A,c,g)}catch(e){if(Bn(d),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiiiiidiiii:function(e,t,r,n,o,i,a,s,A,c,g,d,u){var l=wn();try{te.get(e)(t,r,n,o,i,a,s,A,c,g,d,u)}catch(e){if(Bn(l),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiiiiifiiii:function(e,t,r,n,o,i,a,s,A,c,g,d,u){var l=wn();try{te.get(e)(t,r,n,o,i,a,s,A,c,g,d,u)}catch(e){if(Bn(l),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiiiiii:function(e,t,r,n,o,i,a,s,A){var c=wn();try{te.get(e)(t,r,n,o,i,a,s,A)}catch(e){if(Bn(c),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiiiiiidd:function(e,t,r,n,o,i,a,s,A,c,g){var d=wn();try{te.get(e)(t,r,n,o,i,a,s,A,c,g)}catch(e){if(Bn(d),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiiiiiidf:function(e,t,r,n,o,i,a,s,A,c,g){var d=wn();try{te.get(e)(t,r,n,o,i,a,s,A,c,g)}catch(e){if(Bn(d),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiiiiiii:function(e,t,r,n,o,i,a,s,A,c){var g=wn();try{te.get(e)(t,r,n,o,i,a,s,A,c)}catch(e){if(Bn(g),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiiiiiiidd:function(e,t,r,n,o,i,a,s,A,c,g,d){var u=wn();try{te.get(e)(t,r,n,o,i,a,s,A,c,g,d)}catch(e){if(Bn(u),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,g,d,u){var l=wn();try{te.get(e)(t,r,n,o,i,a,s,A,c,g,d,u)}catch(e){if(Bn(l),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,g){var d=wn();try{te.get(e)(t,r,n,o,i,a,s,A,c,g)}catch(e){if(Bn(d),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiiiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,g,d,u,l){var E=wn();try{te.get(e)(t,r,n,o,i,a,s,A,c,g,d,u,l)}catch(e){if(Bn(E),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,g,d){var u=wn();try{te.get(e)(t,r,n,o,i,a,s,A,c,g,d)}catch(e){if(Bn(u),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,g,d,u){var l=wn();try{te.get(e)(t,r,n,o,i,a,s,A,c,g,d,u)}catch(e){if(Bn(l),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},invoke_viiiiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,g,d,u,l){var E=wn();try{te.get(e)(t,r,n,o,i,a,s,A,c,g,d,u,l)}catch(e){if(Bn(E),e!==e+0&&"longjmp"!==e)throw e;On(1,0)}},llvm_eh_typeid_for:function(e){return e},localtime_r:function(e,t){Jr();var r=new Date(1e3*j[e>>2]);j[t>>2]=r.getSeconds(),j[t+4>>2]=r.getMinutes(),j[t+8>>2]=r.getHours(),j[t+12>>2]=r.getDate(),j[t+16>>2]=r.getMonth(),j[t+20>>2]=r.getFullYear()-1900,j[t+24>>2]=r.getDay();var n=new Date(r.getFullYear(),0,1),o=(r.getTime()-n.getTime())/864e5|0;j[t+28>>2]=o,j[t+36>>2]=-60*r.getTimezoneOffset();var i=new Date(r.getFullYear(),6,1).getTimezoneOffset(),a=n.getTimezoneOffset(),s=0|(i!=a&&r.getTimezoneOffset()==Math.min(a,i));j[t+32>>2]=s;var A=j[Cn()+(s?4:0)>>2];return j[t+40>>2]=A,t},mktime:function(e){Jr();var t=new Date(j[e+20>>2]+1900,j[e+16>>2],j[e+12>>2],j[e+8>>2],j[e+4>>2],j[e>>2],0),r=j[e+32>>2],n=t.getTimezoneOffset(),o=new Date(t.getFullYear(),0,1),i=new Date(t.getFullYear(),6,1).getTimezoneOffset(),a=o.getTimezoneOffset(),s=Math.min(a,i);if(r<0)j[e+32>>2]=Number(i!=a&&s==n);else if(r>0!=(s==n)){var A=Math.max(a,i),c=r>0?s:A;t.setTime(t.getTime()+6e4*(c-n))}j[e+24>>2]=t.getDay();var g=(t.getTime()-o.getTime())/864e5|0;return j[e+28>>2]=g,j[e>>2]=t.getSeconds(),j[e+4>>2]=t.getMinutes(),j[e+8>>2]=t.getHours(),j[e+12>>2]=t.getDate(),j[e+16>>2]=t.getMonth(),t.getTime()/1e3|0},proc_exit:function(e){Rn(e)},setTempRet0:function(e){w(e)},strftime:nn,strftime_l:function(e,t,r,n){return nn(e,t,r,n)}},fn=(function(){var e={env:En,wasi_snapshot_preview1:En};function t(e,t){var r,n=e.exports;o.asm=n,Q(B=o.asm.memory,"memory not found in wasm exports"),q(B.buffer),Q(te=o.asm.__indirect_function_table,"table not found in wasm exports"),r=o.asm.__wasm_call_ctors,ae.unshift(r),me("wasm-instantiate")}Ie("wasm-instantiate");var r=o;function i(e){Q(o===r,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),r=null,t(e.instance)}function a(t){return function(){if(!y&&(g||d)){if("function"==typeof fetch&&!be(ye))return fetch(ye,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+ye+"'";return e.arrayBuffer()})).catch((function(){return Te(ye)}));if(f)return new Promise((function(e,t){f(ye,(function(t){e(new Uint8Array(t))}),t)}))}return Promise.resolve().then((function(){return Te(ye)}))}().then((function(t){return WebAssembly.instantiate(t,e)})).then(t,(function(e){m("failed to asynchronously prepare wasm: "+e),be(ye)&&m("warning: Loading from a file URI ("+ye+") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing"),Ce(e)}))}if(o.instantiateWasm)try{return o.instantiateWasm(e,t)}catch(e){return m("Module.instantiateWasm callback failed with error: "+e),!1}(y||"function"!=typeof WebAssembly.instantiateStreaming||Oe(ye)||be(ye)||"function"!=typeof fetch?a(i):fetch(ye,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(i,(function(e){return m("wasm streaming compile failed: "+e),m("falling back to ArrayBuffer instantiation"),a(i)}))}))).catch(n)}(),o.___wasm_call_ctors=Qe("__wasm_call_ctors"),o._free=Qe("free")),pn=o._malloc=Qe("malloc"),hn=o.___errno_location=Qe("__errno_location"),In=(o._fflush=Qe("fflush"),o.___getTypeName=Qe("__getTypeName")),mn=(o.___embind_register_native_and_builtin_types=Qe("__embind_register_native_and_builtin_types"),o._emscripten_main_thread_process_queued_calls=Qe("emscripten_main_thread_process_queued_calls"),o._emscripten_stack_get_end=function(){return(mn=o._emscripten_stack_get_end=o.asm.emscripten_stack_get_end).apply(null,arguments)}),Cn=o.__get_tzname=Qe("_get_tzname"),yn=o.__get_daylight=Qe("_get_daylight"),_n=o.__get_timezone=Qe("_get_timezone"),wn=o.stackSave=Qe("stackSave"),Bn=o.stackRestore=Qe("stackRestore"),Dn=(o.stackAlloc=Qe("stackAlloc"),o._emscripten_stack_init=function(){return(Dn=o._emscripten_stack_init=o.asm.emscripten_stack_init).apply(null,arguments)}),On=(o._emscripten_stack_get_free=function(){return(o._emscripten_stack_get_free=o.asm.emscripten_stack_get_free).apply(null,arguments)},o._saveSetjmp=Qe("saveSetjmp"),o._setThrew=Qe("setThrew")),bn=o.___cxa_can_catch=Qe("__cxa_can_catch"),Qn=o.___cxa_is_pointer_type=Qe("__cxa_is_pointer_type"),Tn=o._memalign=Qe("memalign");o._emscripten_builtin_malloc=Qe("emscripten_builtin_malloc"),o._emscripten_builtin_free=Qe("emscripten_builtin_free"),o._emscripten_builtin_memalign=Qe("emscripten_builtin_memalign"),o.dynCall_jii=Qe("dynCall_jii"),o.dynCall_viji=Qe("dynCall_viji"),o.dynCall_jjj=Qe("dynCall_jjj"),o.dynCall_iiiijj=Qe("dynCall_iiiijj"),o.dynCall_viijj=Qe("dynCall_viijj"),o.dynCall_viiijjjj=Qe("dynCall_viiijjjj"),o.dynCall_ji=Qe("dynCall_ji"),o.dynCall_vij=Qe("dynCall_vij"),o.dynCall_viijii=Qe("dynCall_viijii"),o.dynCall_vj=Qe("dynCall_vj"),o.dynCall_viij=Qe("dynCall_viij"),o.dynCall_viiiiij=Qe("dynCall_viiiiij"),o.dynCall_iijjiiii=Qe("dynCall_iijjiiii"),o.dynCall_jiji=Qe("dynCall_jiji"),o.dynCall_iiiiij=Qe("dynCall_iiiiij"),o.dynCall_iiiiijj=Qe("dynCall_iiiiijj"),o.dynCall_iiiiiijj=Qe("dynCall_iiiiiijj");function vn(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Pn(e){function t(){ln||(ln=!0,o.calledRun=!0,b||(oe(),Q(!ce),ce=!0,o.noFSInit||et.init.initialized||et.init(),et.ignorePermissions=!1,$e.init(),xe(ae),r(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),Q(!o._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),function(){if(oe(),o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)e=o.postRun.shift(),Ae.unshift(e);var e;xe(Ae)}()))}e=e||s,le>0||(Dn(),ne(),function(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)e=o.preRun.shift(),ie.unshift(e);var e;xe(ie)}(),le>0||(o.setStatus?(o.setStatus("Running..."),setTimeout((function(){setTimeout((function(){o.setStatus("")}),1),t()}),1)):t(),oe()))}function Rn(e){O=e,ue()||(o.onExit&&o.onExit(e),b=!0),c(e,new vn(e))}if(Object.getOwnPropertyDescriptor(o,"intArrayFromString")||(o.intArrayFromString=function(){Ce("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"intArrayToString")||(o.intArrayToString=function(){Ce("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ccall")||(o.ccall=function(){Ce("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"cwrap")||(o.cwrap=function(){Ce("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setValue")||(o.setValue=function(){Ce("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getValue")||(o.getValue=function(){Ce("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"allocate")||(o.allocate=function(){Ce("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF8ArrayToString")||(o.UTF8ArrayToString=function(){Ce("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF8ToString")||(o.UTF8ToString=function(){Ce("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF8Array")||(o.stringToUTF8Array=function(){Ce("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF8")||(o.stringToUTF8=function(){Ce("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"lengthBytesUTF8")||(o.lengthBytesUTF8=function(){Ce("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackTrace")||(o.stackTrace=function(){Ce("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnPreRun")||(o.addOnPreRun=function(){Ce("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnInit")||(o.addOnInit=function(){Ce("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnPreMain")||(o.addOnPreMain=function(){Ce("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnExit")||(o.addOnExit=function(){Ce("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnPostRun")||(o.addOnPostRun=function(){Ce("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeStringToMemory")||(o.writeStringToMemory=function(){Ce("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeArrayToMemory")||(o.writeArrayToMemory=function(){Ce("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeAsciiToMemory")||(o.writeAsciiToMemory=function(){Ce("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.addRunDependency=Ie,o.removeRunDependency=me,Object.getOwnPropertyDescriptor(o,"FS_createFolder")||(o.FS_createFolder=function(){Ce("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.FS_createPath=et.createPath,o.FS_createDataFile=et.createDataFile,o.FS_createPreloadedFile=et.createPreloadedFile,o.FS_createLazyFile=et.createLazyFile,Object.getOwnPropertyDescriptor(o,"FS_createLink")||(o.FS_createLink=function(){Ce("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.FS_createDevice=et.createDevice,o.FS_unlink=et.unlink,Object.getOwnPropertyDescriptor(o,"getLEB")||(o.getLEB=function(){Ce("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getFunctionTables")||(o.getFunctionTables=function(){Ce("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"alignFunctionTables")||(o.alignFunctionTables=function(){Ce("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerFunctions")||(o.registerFunctions=function(){Ce("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addFunction")||(o.addFunction=function(){Ce("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"removeFunction")||(o.removeFunction=function(){Ce("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getFuncWrapper")||(o.getFuncWrapper=function(){Ce("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"prettyPrint")||(o.prettyPrint=function(){Ce("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"dynCall")||(o.dynCall=function(){Ce("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getCompilerSetting")||(o.getCompilerSetting=function(){Ce("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"print")||(o.print=function(){Ce("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"printErr")||(o.printErr=function(){Ce("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getTempRet0")||(o.getTempRet0=function(){Ce("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setTempRet0")||(o.setTempRet0=function(){Ce("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"callMain")||(o.callMain=function(){Ce("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"abort")||(o.abort=function(){Ce("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"keepRuntimeAlive")||(o.keepRuntimeAlive=function(){Ce("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"zeroMemory")||(o.zeroMemory=function(){Ce("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToNewUTF8")||(o.stringToNewUTF8=function(){Ce("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setFileTime")||(o.setFileTime=function(){Ce("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscripten_realloc_buffer")||(o.emscripten_realloc_buffer=function(){Ce("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ENV")||(o.ENV=function(){Ce("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ERRNO_CODES")||(o.ERRNO_CODES=function(){Ce("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ERRNO_MESSAGES")||(o.ERRNO_MESSAGES=function(){Ce("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setErrNo")||(o.setErrNo=function(){Ce("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetPton4")||(o.inetPton4=function(){Ce("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetNtop4")||(o.inetNtop4=function(){Ce("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetPton6")||(o.inetPton6=function(){Ce("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetNtop6")||(o.inetNtop6=function(){Ce("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readSockaddr")||(o.readSockaddr=function(){Ce("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeSockaddr")||(o.writeSockaddr=function(){Ce("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"DNS")||(o.DNS=function(){Ce("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getHostByName")||(o.getHostByName=function(){Ce("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GAI_ERRNO_MESSAGES")||(o.GAI_ERRNO_MESSAGES=function(){Ce("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"Protocols")||(o.Protocols=function(){Ce("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"Sockets")||(o.Sockets=function(){Ce("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getRandomDevice")||(o.getRandomDevice=function(){Ce("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"traverseStack")||(o.traverseStack=function(){Ce("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UNWIND_CACHE")||(o.UNWIND_CACHE=function(){Ce("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"withBuiltinMalloc")||(o.withBuiltinMalloc=function(){Ce("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readAsmConstArgsArray")||(o.readAsmConstArgsArray=function(){Ce("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readAsmConstArgs")||(o.readAsmConstArgs=function(){Ce("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"mainThreadEM_ASM")||(o.mainThreadEM_ASM=function(){Ce("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"jstoi_q")||(o.jstoi_q=function(){Ce("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"jstoi_s")||(o.jstoi_s=function(){Ce("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getExecutableName")||(o.getExecutableName=function(){Ce("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"listenOnce")||(o.listenOnce=function(){Ce("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"autoResumeAudioContext")||(o.autoResumeAudioContext=function(){Ce("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"dynCallLegacy")||(o.dynCallLegacy=function(){Ce("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getDynCaller")||(o.getDynCaller=function(){Ce("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"dynCall")||(o.dynCall=function(){Ce("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"callRuntimeCallbacks")||(o.callRuntimeCallbacks=function(){Ce("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runtimeKeepalivePush")||(o.runtimeKeepalivePush=function(){Ce("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runtimeKeepalivePop")||(o.runtimeKeepalivePop=function(){Ce("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"callUserCallback")||(o.callUserCallback=function(){Ce("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"maybeExit")||(o.maybeExit=function(){Ce("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"safeSetTimeout")||(o.safeSetTimeout=function(){Ce("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"asmjsMangle")||(o.asmjsMangle=function(){Ce("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"asyncLoad")||(o.asyncLoad=function(){Ce("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"alignMemory")||(o.alignMemory=function(){Ce("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"mmapAlloc")||(o.mmapAlloc=function(){Ce("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"reallyNegative")||(o.reallyNegative=function(){Ce("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"unSign")||(o.unSign=function(){Ce("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"reSign")||(o.reSign=function(){Ce("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"formatString")||(o.formatString=function(){Ce("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PATH")||(o.PATH=function(){Ce("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PATH_FS")||(o.PATH_FS=function(){Ce("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SYSCALLS")||(o.SYSCALLS=function(){Ce("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"syscallMmap2")||(o.syscallMmap2=function(){Ce("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"syscallMunmap")||(o.syscallMunmap=function(){Ce("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getSocketFromFD")||(o.getSocketFromFD=function(){Ce("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getSocketAddress")||(o.getSocketAddress=function(){Ce("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"JSEvents")||(o.JSEvents=function(){Ce("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerKeyEventCallback")||(o.registerKeyEventCallback=function(){Ce("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"specialHTMLTargets")||(o.specialHTMLTargets=function(){Ce("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"findEventTarget")||(o.findEventTarget=function(){Ce("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"findCanvasEventTarget")||(o.findCanvasEventTarget=function(){Ce("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getBoundingClientRect")||(o.getBoundingClientRect=function(){Ce("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillMouseEventData")||(o.fillMouseEventData=function(){Ce("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerMouseEventCallback")||(o.registerMouseEventCallback=function(){Ce("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerWheelEventCallback")||(o.registerWheelEventCallback=function(){Ce("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerUiEventCallback")||(o.registerUiEventCallback=function(){Ce("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerFocusEventCallback")||(o.registerFocusEventCallback=function(){Ce("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillDeviceOrientationEventData")||(o.fillDeviceOrientationEventData=function(){Ce("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerDeviceOrientationEventCallback")||(o.registerDeviceOrientationEventCallback=function(){Ce("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillDeviceMotionEventData")||(o.fillDeviceMotionEventData=function(){Ce("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerDeviceMotionEventCallback")||(o.registerDeviceMotionEventCallback=function(){Ce("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"screenOrientation")||(o.screenOrientation=function(){Ce("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillOrientationChangeEventData")||(o.fillOrientationChangeEventData=function(){Ce("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerOrientationChangeEventCallback")||(o.registerOrientationChangeEventCallback=function(){Ce("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillFullscreenChangeEventData")||(o.fillFullscreenChangeEventData=function(){Ce("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerFullscreenChangeEventCallback")||(o.registerFullscreenChangeEventCallback=function(){Ce("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerRestoreOldStyle")||(o.registerRestoreOldStyle=function(){Ce("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"hideEverythingExceptGivenElement")||(o.hideEverythingExceptGivenElement=function(){Ce("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"restoreHiddenElements")||(o.restoreHiddenElements=function(){Ce("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setLetterbox")||(o.setLetterbox=function(){Ce("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"currentFullscreenStrategy")||(o.currentFullscreenStrategy=function(){Ce("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"restoreOldWindowedStyle")||(o.restoreOldWindowedStyle=function(){Ce("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"softFullscreenResizeWebGLRenderTarget")||(o.softFullscreenResizeWebGLRenderTarget=function(){Ce("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"doRequestFullscreen")||(o.doRequestFullscreen=function(){Ce("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillPointerlockChangeEventData")||(o.fillPointerlockChangeEventData=function(){Ce("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerPointerlockChangeEventCallback")||(o.registerPointerlockChangeEventCallback=function(){Ce("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerPointerlockErrorEventCallback")||(o.registerPointerlockErrorEventCallback=function(){Ce("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"requestPointerLock")||(o.requestPointerLock=function(){Ce("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillVisibilityChangeEventData")||(o.fillVisibilityChangeEventData=function(){Ce("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerVisibilityChangeEventCallback")||(o.registerVisibilityChangeEventCallback=function(){Ce("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerTouchEventCallback")||(o.registerTouchEventCallback=function(){Ce("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillGamepadEventData")||(o.fillGamepadEventData=function(){Ce("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerGamepadEventCallback")||(o.registerGamepadEventCallback=function(){Ce("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerBeforeUnloadEventCallback")||(o.registerBeforeUnloadEventCallback=function(){Ce("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillBatteryEventData")||(o.fillBatteryEventData=function(){Ce("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"battery")||(o.battery=function(){Ce("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerBatteryEventCallback")||(o.registerBatteryEventCallback=function(){Ce("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setCanvasElementSize")||(o.setCanvasElementSize=function(){Ce("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getCanvasElementSize")||(o.getCanvasElementSize=function(){Ce("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"polyfillSetImmediate")||(o.polyfillSetImmediate=function(){Ce("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"demangle")||(o.demangle=function(){Ce("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"demangleAll")||(o.demangleAll=function(){Ce("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"jsStackTrace")||(o.jsStackTrace=function(){Ce("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackTrace")||(o.stackTrace=function(){Ce("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getEnvStrings")||(o.getEnvStrings=function(){Ce("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"checkWasiClock")||(o.checkWasiClock=function(){Ce("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToI64")||(o.writeI53ToI64=function(){Ce("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToI64Clamped")||(o.writeI53ToI64Clamped=function(){Ce("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToI64Signaling")||(o.writeI53ToI64Signaling=function(){Ce("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToU64Clamped")||(o.writeI53ToU64Clamped=function(){Ce("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToU64Signaling")||(o.writeI53ToU64Signaling=function(){Ce("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readI53FromI64")||(o.readI53FromI64=function(){Ce("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readI53FromU64")||(o.readI53FromU64=function(){Ce("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"convertI32PairToI53")||(o.convertI32PairToI53=function(){Ce("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"convertU32PairToI53")||(o.convertU32PairToI53=function(){Ce("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"uncaughtExceptionCount")||(o.uncaughtExceptionCount=function(){Ce("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exceptionLast")||(o.exceptionLast=function(){Ce("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exceptionCaught")||(o.exceptionCaught=function(){Ce("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ExceptionInfo")||(o.ExceptionInfo=function(){Ce("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"CatchInfo")||(o.CatchInfo=function(){Ce("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exception_addRef")||(o.exception_addRef=function(){Ce("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exception_decRef")||(o.exception_decRef=function(){Ce("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"Browser")||(o.Browser=function(){Ce("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"funcWrappers")||(o.funcWrappers=function(){Ce("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getFuncWrapper")||(o.getFuncWrapper=function(){Ce("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setMainLoop")||(o.setMainLoop=function(){Ce("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"wget")||(o.wget=function(){Ce("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"FS")||(o.FS=function(){Ce("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"MEMFS")||(o.MEMFS=function(){Ce("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"TTY")||(o.TTY=function(){Ce("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PIPEFS")||(o.PIPEFS=function(){Ce("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SOCKFS")||(o.SOCKFS=function(){Ce("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"_setNetworkCallback")||(o._setNetworkCallback=function(){Ce("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"tempFixedLengthArray")||(o.tempFixedLengthArray=function(){Ce("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"miniTempWebGLFloatBuffers")||(o.miniTempWebGLFloatBuffers=function(){Ce("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"heapObjectForWebGLType")||(o.heapObjectForWebGLType=function(){Ce("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"heapAccessShiftForWebGLHeap")||(o.heapAccessShiftForWebGLHeap=function(){Ce("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.GL=Pr,Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGet")||(o.emscriptenWebGLGet=function(){Ce("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"computeUnpackAlignedImageSize")||(o.computeUnpackAlignedImageSize=function(){Ce("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetTexPixelData")||(o.emscriptenWebGLGetTexPixelData=function(){Ce("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetUniform")||(o.emscriptenWebGLGetUniform=function(){Ce("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"webglGetUniformLocation")||(o.webglGetUniformLocation=function(){Ce("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"webglPrepareUniformLocationsBeforeFirstUse")||(o.webglPrepareUniformLocationsBeforeFirstUse=function(){Ce("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"webglGetLeftBracePos")||(o.webglGetLeftBracePos=function(){Ce("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetVertexAttrib")||(o.emscriptenWebGLGetVertexAttrib=function(){Ce("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetBufferBinding")||(o.emscriptenWebGLGetBufferBinding=function(){Ce("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLValidateMapBufferTarget")||(o.emscriptenWebGLValidateMapBufferTarget=function(){Ce("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeGLArray")||(o.writeGLArray=function(){Ce("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"AL")||(o.AL=function(){Ce("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_unicode")||(o.SDL_unicode=function(){Ce("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_ttfContext")||(o.SDL_ttfContext=function(){Ce("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_audio")||(o.SDL_audio=function(){Ce("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL")||(o.SDL=function(){Ce("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_gfx")||(o.SDL_gfx=function(){Ce("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLUT")||(o.GLUT=function(){Ce("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"EGL")||(o.EGL=function(){Ce("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLFW_Window")||(o.GLFW_Window=function(){Ce("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLFW")||(o.GLFW=function(){Ce("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLEW")||(o.GLEW=function(){Ce("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"IDBStore")||(o.IDBStore=function(){Ce("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runAndAbortIfError")||(o.runAndAbortIfError=function(){Ce("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_handle_array")||(o.emval_handle_array=function(){Ce("'emval_handle_array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_free_list")||(o.emval_free_list=function(){Ce("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_symbols")||(o.emval_symbols=function(){Ce("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_emval")||(o.init_emval=function(){Ce("'init_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"count_emval_handles")||(o.count_emval_handles=function(){Ce("'count_emval_handles' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"get_first_emval")||(o.get_first_emval=function(){Ce("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getStringOrSymbol")||(o.getStringOrSymbol=function(){Ce("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"requireHandle")||(o.requireHandle=function(){Ce("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_newers")||(o.emval_newers=function(){Ce("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"craftEmvalAllocator")||(o.craftEmvalAllocator=function(){Ce("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_get_global")||(o.emval_get_global=function(){Ce("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_methodCallers")||(o.emval_methodCallers=function(){Ce("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"InternalError")||(o.InternalError=function(){Ce("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"BindingError")||(o.BindingError=function(){Ce("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UnboundTypeError")||(o.UnboundTypeError=function(){Ce("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PureVirtualError")||(o.PureVirtualError=function(){Ce("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_embind")||(o.init_embind=function(){Ce("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwInternalError")||(o.throwInternalError=function(){Ce("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwBindingError")||(o.throwBindingError=function(){Ce("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwUnboundTypeError")||(o.throwUnboundTypeError=function(){Ce("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ensureOverloadTable")||(o.ensureOverloadTable=function(){Ce("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exposePublicSymbol")||(o.exposePublicSymbol=function(){Ce("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"replacePublicSymbol")||(o.replacePublicSymbol=function(){Ce("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"extendError")||(o.extendError=function(){Ce("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"createNamedFunction")||(o.createNamedFunction=function(){Ce("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registeredInstances")||(o.registeredInstances=function(){Ce("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getBasestPointer")||(o.getBasestPointer=function(){Ce("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerInheritedInstance")||(o.registerInheritedInstance=function(){Ce("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"unregisterInheritedInstance")||(o.unregisterInheritedInstance=function(){Ce("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getInheritedInstance")||(o.getInheritedInstance=function(){Ce("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getInheritedInstanceCount")||(o.getInheritedInstanceCount=function(){Ce("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getLiveInheritedInstances")||(o.getLiveInheritedInstances=function(){Ce("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registeredTypes")||(o.registeredTypes=function(){Ce("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"awaitingDependencies")||(o.awaitingDependencies=function(){Ce("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"typeDependencies")||(o.typeDependencies=function(){Ce("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registeredPointers")||(o.registeredPointers=function(){Ce("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerType")||(o.registerType=function(){Ce("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"whenDependentTypesAreResolved")||(o.whenDependentTypesAreResolved=function(){Ce("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"embind_charCodes")||(o.embind_charCodes=function(){Ce("'embind_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"embind_init_charCodes")||(o.embind_init_charCodes=function(){Ce("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readLatin1String")||(o.readLatin1String=function(){Ce("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getTypeName")||(o.getTypeName=function(){Ce("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"heap32VectorToArray")||(o.heap32VectorToArray=function(){Ce("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"requireRegisteredType")||(o.requireRegisteredType=function(){Ce("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getShiftFromSize")||(o.getShiftFromSize=function(){Ce("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"integerReadValueFromPointer")||(o.integerReadValueFromPointer=function(){Ce("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"enumReadValueFromPointer")||(o.enumReadValueFromPointer=function(){Ce("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"floatReadValueFromPointer")||(o.floatReadValueFromPointer=function(){Ce("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"simpleReadValueFromPointer")||(o.simpleReadValueFromPointer=function(){Ce("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runDestructors")||(o.runDestructors=function(){Ce("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"new_")||(o.new_=function(){Ce("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"craftInvokerFunction")||(o.craftInvokerFunction=function(){Ce("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"embind__requireFunction")||(o.embind__requireFunction=function(){Ce("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"tupleRegistrations")||(o.tupleRegistrations=function(){Ce("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"structRegistrations")||(o.structRegistrations=function(){Ce("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"genericPointerToWireType")||(o.genericPointerToWireType=function(){Ce("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"constNoSmartPtrRawPointerToWireType")||(o.constNoSmartPtrRawPointerToWireType=function(){Ce("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"nonConstNoSmartPtrRawPointerToWireType")||(o.nonConstNoSmartPtrRawPointerToWireType=function(){Ce("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_RegisteredPointer")||(o.init_RegisteredPointer=function(){Ce("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer")||(o.RegisteredPointer=function(){Ce("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_getPointee")||(o.RegisteredPointer_getPointee=function(){Ce("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_destructor")||(o.RegisteredPointer_destructor=function(){Ce("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_deleteObject")||(o.RegisteredPointer_deleteObject=function(){Ce("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_fromWireType")||(o.RegisteredPointer_fromWireType=function(){Ce("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runDestructor")||(o.runDestructor=function(){Ce("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"releaseClassHandle")||(o.releaseClassHandle=function(){Ce("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"finalizationGroup")||(o.finalizationGroup=function(){Ce("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"detachFinalizer_deps")||(o.detachFinalizer_deps=function(){Ce("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"detachFinalizer")||(o.detachFinalizer=function(){Ce("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"attachFinalizer")||(o.attachFinalizer=function(){Ce("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"makeClassHandle")||(o.makeClassHandle=function(){Ce("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_ClassHandle")||(o.init_ClassHandle=function(){Ce("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle")||(o.ClassHandle=function(){Ce("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_isAliasOf")||(o.ClassHandle_isAliasOf=function(){Ce("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwInstanceAlreadyDeleted")||(o.throwInstanceAlreadyDeleted=function(){Ce("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_clone")||(o.ClassHandle_clone=function(){Ce("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_delete")||(o.ClassHandle_delete=function(){Ce("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"deletionQueue")||(o.deletionQueue=function(){Ce("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_isDeleted")||(o.ClassHandle_isDeleted=function(){Ce("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_deleteLater")||(o.ClassHandle_deleteLater=function(){Ce("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"flushPendingDeletes")||(o.flushPendingDeletes=function(){Ce("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"delayFunction")||(o.delayFunction=function(){Ce("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setDelayFunction")||(o.setDelayFunction=function(){Ce("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredClass")||(o.RegisteredClass=function(){Ce("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"shallowCopyInternalPointer")||(o.shallowCopyInternalPointer=function(){Ce("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"downcastPointer")||(o.downcastPointer=function(){Ce("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"upcastPointer")||(o.upcastPointer=function(){Ce("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"validateThis")||(o.validateThis=function(){Ce("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"char_0")||(o.char_0=function(){Ce("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"char_9")||(o.char_9=function(){Ce("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"makeLegalFunctionName")||(o.makeLegalFunctionName=function(){Ce("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetIndexed")||(o.emscriptenWebGLGetIndexed=function(){Ce("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"warnOnce")||(o.warnOnce=function(){Ce("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackSave")||(o.stackSave=function(){Ce("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackRestore")||(o.stackRestore=function(){Ce("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackAlloc")||(o.stackAlloc=function(){Ce("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"AsciiToString")||(o.AsciiToString=function(){Ce("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToAscii")||(o.stringToAscii=function(){Ce("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF16ToString")||(o.UTF16ToString=function(){Ce("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF16")||(o.stringToUTF16=function(){Ce("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"lengthBytesUTF16")||(o.lengthBytesUTF16=function(){Ce("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF32ToString")||(o.UTF32ToString=function(){Ce("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF32")||(o.stringToUTF32=function(){Ce("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"lengthBytesUTF32")||(o.lengthBytesUTF32=function(){Ce("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"allocateUTF8")||(o.allocateUTF8=function(){Ce("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"allocateUTF8OnStack")||(o.allocateUTF8OnStack=function(){Ce("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.writeStackCookie=ne,o.checkStackCookie=oe,Object.getOwnPropertyDescriptor(o,"ALLOC_NORMAL")||Object.defineProperty(o,"ALLOC_NORMAL",{configurable:!0,get:function(){Ce("'ALLOC_NORMAL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(o,"ALLOC_STACK")||Object.defineProperty(o,"ALLOC_STACK",{configurable:!0,get:function(){Ce("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),fe=function e(){ln||Pn(),ln||(fe=e)},o.run=Pn,o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return Pn(),t.ready}}(),selfie_segmentation_solution_wasm_bin_default=createMediapipeSolutionsWasm2,Module=(()=>{var e,t="undefined"!=typeof document?null==(e=document.currentScript)?void 0:e.src:void 0;return function(e={}){var r,n,o,i=Object.assign({},e),a=new Promise(((e,t)=>{r=e,n=t})),s=Object.assign({},i),A="";"undefined"!=typeof document&&document.currentScript&&(A=document.currentScript.src),t&&(A=t),A=A.startsWith("blob:")?"":A.substr(0,A.replace(/[?#].*/,"").lastIndexOf("/")+1);var c,g,d=i.print||console.log.bind(console),u=i.printErr||console.error.bind(console);function l(e){if(R(e))return function(e){for(var t=atob(e),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}(e.slice(P.length))}Object.assign(i,s),s=null,i.arguments&&i.arguments,i.thisProgram&&i.thisProgram,i.quit&&i.quit,i.wasmBinary&&(c=i.wasmBinary);var E,f,p,h,I,m,C,y,_=!1;var w=[],B=[],D=[];var O=0,b=null,Q=null;function T(e){var t;null==(t=i.onAbort)||t.call(i,e),u(e="Aborted("+e+")"),_=!0,e+=". Build with -sASSERTIONS for more info.";var r=new WebAssembly.RuntimeError(e);throw n(r),r}var v,P="data:application/octet-stream;base64,",R=e=>e.startsWith(P);function M(e){return Promise.resolve().then((()=>function(e){if(e==v&&c)return new Uint8Array(c);var t=l(e);if(t)return t;if(o)return o(e);throw"both async and sync fetching of the wasm failed"}(e)))}function S(e,t,r,n){return function(e,t,r){return M(e).then((e=>WebAssembly.instantiate(e,t))).then(r,(e=>{u(`failed to asynchronously prepare wasm: ${e}`),T(e)}))}(t,r,n)}var F=e=>{for(;e.length>0;)e.shift()(i)};i.noExitRuntime;class N{constructor(e){this.excPtr=e,this.ptr=e-24}set_type(e){m[this.ptr+4>>2]=e}get_type(){return m[this.ptr+4>>2]}set_destructor(e){m[this.ptr+8>>2]=e}get_destructor(){return m[this.ptr+8>>2]}set_caught(e){e=e?1:0,E[this.ptr+12]=e}get_caught(){return 0!=E[this.ptr+12]}set_rethrown(e){e=e?1:0,E[this.ptr+13]=e}get_rethrown(){return 0!=E[this.ptr+13]}init(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t)}set_adjusted_ptr(e){m[this.ptr+16>>2]=e}get_adjusted_ptr(){return m[this.ptr+16>>2]}get_exception_ptr(){if(ut(this.get_type()))return m[this.excPtr>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}var k,x,U,j=e=>{for(var t="",r=e;f[r];)t+=k[f[r++]];return t},L={},H={},G={},Y=e=>{throw new x(e)},X=e=>{throw new U(e)},V=(e,t,r)=>{function n(t){var n=r(t);n.length!==e.length&&X("Mismatched type converter count");for(var o=0;o<e.length;++o)W(e[o],n[o])}e.forEach((function(e){G[e]=t}));var o=new Array(t.length),i=[],a=0;t.forEach(((e,t)=>{H.hasOwnProperty(e)?o[t]=H[e]:(i.push(e),L.hasOwnProperty(e)||(L[e]=[]),L[e].push((()=>{o[t]=H[e],++a===i.length&&n(o)})))})),0===i.length&&n(o)};function W(e,t,r={}){if(!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(e,t,r={}){var n=t.name;if(e||Y(`type "${n}" must have a positive integer typeid pointer`),H.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;Y(`Cannot register type '${n}' twice`)}if(H[e]=t,delete G[e],L.hasOwnProperty(e)){var o=L[e];delete L[e],o.forEach((e=>e()))}}(e,t,r)}var z,$=e=>{Y(e.$$.ptrType.registeredClass.name+" instance already deleted")},K=!1,J=e=>{},Z=e=>{e.count.value-=1,0===e.count.value&&(e=>{e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)})(e)},q=(e,t,r)=>{if(t===r)return e;if(void 0===r.baseClass)return null;var n=q(e,t,r.baseClass);return null===n?null:r.downcast(n)},ee={},te=()=>Object.keys(ae).length,re=()=>{var e=[];for(var t in ae)ae.hasOwnProperty(t)&&e.push(ae[t]);return e},ne=[],oe=()=>{for(;ne.length;){var e=ne.pop();e.$$.deleteScheduled=!1,e.delete()}},ie=e=>{z=e,ne.length&&z&&z(oe)},ae={},se=(e,t)=>(t=((e,t)=>{for(void 0===t&&Y("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t})(e,t),ae[t]),Ae=(e,t)=>(t.ptrType&&t.ptr||X("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!==!!t.smartPtr&&X("Both smartPtrType and smartPtr must be specified"),t.count={value:1},ge(Object.create(e,{$$:{value:t,writable:!0}})));function ce(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var r=se(this.registeredClass,t);if(void 0!==r){if(0===r.$$.count.value)return r.$$.ptr=t,r.$$.smartPtr=e,r.clone();var n=r.clone();return this.destructor(e),n}function o(){return this.isSmartPointer?Ae(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):Ae(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var i,a=this.registeredClass.getActualType(t),s=ee[a];if(!s)return o.call(this);i=this.isConst?s.constPointerType:s.pointerType;var A=q(t,this.registeredClass,i.registeredClass);return null===A?o.call(this):this.isSmartPointer?Ae(i.registeredClass.instancePrototype,{ptrType:i,ptr:A,smartPtrType:this,smartPtr:e}):Ae(i.registeredClass.instancePrototype,{ptrType:i,ptr:A})}var ge=e=>"undefined"==typeof FinalizationRegistry?(ge=e=>e,e):(K=new FinalizationRegistry((e=>{Z(e.$$)})),J=e=>K.unregister(e),(ge=e=>{var t=e.$$;if(!!t.smartPtr){var r={$$:t};K.register(e,r,e)}return e})(e));function de(){}var ue=(e,t)=>Object.defineProperty(t,"name",{value:e}),le=(e,t,r)=>{if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(...n){return e[t].overloadTable.hasOwnProperty(n.length)||Y(`Function '${r}' called with an invalid number of arguments (${n.length}) - expects one of (${e[t].overloadTable})!`),e[t].overloadTable[n.length].apply(this,n)},e[t].overloadTable=[],e[t].overloadTable[n.argCount]=n}};function Ee(e,t,r,n,o,i,a,s){this.name=e,this.constructor=t,this.instancePrototype=r,this.rawDestructor=n,this.baseClass=o,this.getActualType=i,this.upcast=a,this.downcast=s,this.pureVirtualFunctions=[]}var fe=(e,t,r)=>{for(;t!==r;)t.upcast||Y(`Expected null or instance of ${r.name}, got an instance of ${t.name}`),e=t.upcast(e),t=t.baseClass;return e};function pe(e,t){if(null===t)return this.isReference&&Y(`null is not a valid ${this.name}`),0;t.$$||Y(`Cannot pass "${He(t)}" as a ${this.name}`),t.$$.ptr||Y(`Cannot pass deleted object as a pointer of type ${this.name}`);var r=t.$$.ptrType.registeredClass;return fe(t.$$.ptr,r,this.registeredClass)}function he(e,t){var r;if(null===t)return this.isReference&&Y(`null is not a valid ${this.name}`),this.isSmartPointer?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t&&t.$$||Y(`Cannot pass "${He(t)}" as a ${this.name}`),t.$$.ptr||Y(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&t.$$.ptrType.isConst&&Y(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);var n=t.$$.ptrType.registeredClass;if(r=fe(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&Y("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:Y(`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{var o=t.clone();r=this.rawShare(r,je.toHandle((()=>o.delete()))),null!==e&&e.push(this.rawDestructor,r)}break;default:Y("Unsupporting sharing policy")}return r}function Ie(e,t){if(null===t)return this.isReference&&Y(`null is not a valid ${this.name}`),0;t.$$||Y(`Cannot pass "${He(t)}" as a ${this.name}`),t.$$.ptr||Y(`Cannot pass deleted object as a pointer of type ${this.name}`),t.$$.ptrType.isConst&&Y(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);var r=t.$$.ptrType.registeredClass;return fe(t.$$.ptr,r,this.registeredClass)}function me(e){return this.fromWireType(m[e>>2])}function Ce(e,t,r,n,o,i,a,s,A,c,g){this.name=e,this.registeredClass=t,this.isReference=r,this.isConst=n,this.isSmartPointer=o,this.pointeeType=i,this.sharingPolicy=a,this.rawGetPointee=s,this.rawConstructor=A,this.rawShare=c,this.rawDestructor=g,o||void 0!==t.baseClass?this.toWireType=he:n?(this.toWireType=pe,this.destructorFunction=null):(this.toWireType=Ie,this.destructorFunction=null)}var ye,_e,we=[],Be=e=>{var t=we[e];return t||(e>=we.length&&(we.length=e+1),we[e]=t=ye.get(e)),t},De=(e,t,r=[])=>e.includes("j")?((e,t,r)=>(e=e.replace(/p/g,"i"),(0,i["dynCall_"+e])(t,...r)))(e,t,r):Be(t)(...r),Oe=(e,t)=>{var r,n,o=(e=j(e)).includes("j")?(r=e,n=t,(...e)=>De(r,n,e)):Be(t);return"function"!=typeof o&&Y(`unknown function pointer with signature ${e}: ${t}`),o},be=e=>{var t=gt(e),r=j(t);return dt(t),r},Qe=(e,t)=>{var r=[],n={};throw t.forEach((function e(t){n[t]||H[t]||(G[t]?G[t].forEach(e):(r.push(t),n[t]=!0))})),new _e(`${e}: `+r.map(be).join([", "]))},Te=(e,t)=>{for(var r=[],n=0;n<e;n++)r.push(m[t+4*n>>2]);return r},ve=e=>{for(;e.length;){var t=e.pop();e.pop()(t)}};function Pe(e,t,r,n,o,i){var a=t.length;a<2&&Y("argTypes array size mismatch! Must at least get return value and 'this' types!");var s=null!==t[1]&&null!==r,A=function(e){for(var t=1;t<e.length;++t)if(null!==e[t]&&void 0===e[t].destructorFunction)return!0;return!1}(t),c="void"!==t[0].name,g=a-2,d=new Array(g),u=[],l=[];return ue(e,(function(...r){var i;r.length!==g&&Y(`function ${e} called with ${r.length} arguments, expected ${g}`),l.length=0,u.length=s?2:1,u[0]=o,s&&(i=t[1].toWireType(l,this),u[1]=i);for(var a=0;a<g;++a)d[a]=t[a+2].toWireType(l,r[a]),u.push(d[a]);return function(e){if(A)ve(l);else for(var r=s?1:2;r<t.length;r++){var n=1===r?i:d[r-2];null!==t[r].destructorFunction&&t[r].destructorFunction(n)}if(c)return t[0].fromWireType(e)}(n(...u))}))}var Re,Me,Se,Fe=(e,t,r)=>(e instanceof Object||Y(`${r} with invalid "this": ${e}`),e instanceof t.registeredClass.constructor||Y(`${r} incompatible with "this" of type ${e.constructor.name}`),e.$$.ptr||Y(`cannot call emscripten binding method ${r} on deleted object`),fe(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)),Ne=[],ke=[],xe=e=>{e>9&&0==--ke[e+1]&&(ke[e]=void 0,Ne.push(e))},Ue=()=>ke.length/2-5-Ne.length,je={toValue:e=>(e||Y("Cannot use deleted val. handle = "+e),ke[e]),toHandle:e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{const t=Ne.pop()||ke.length;return ke[t]=e,ke[t+1]=1,t}}}},Le={name:"emscripten::val",fromWireType:e=>{var t=je.toValue(e);return xe(e),t},toWireType:(e,t)=>je.toHandle(t),argPackAdvance:8,readValueFromPointer:me,destructorFunction:null},He=e=>{if(null===e)return"null";var t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():""+e},Ge=(e,t)=>{switch(t){case 4:return function(e){return this.fromWireType(C[e>>2])};case 8:return function(e){return this.fromWireType(y[e>>3])};default:throw new TypeError(`invalid float width (${t}): ${e}`)}},Ye=(e,t,r)=>{switch(t){case 1:return r?e=>E[e]:e=>f[e];case 2:return r?e=>p[e>>1]:e=>h[e>>1];case 4:return r?e=>I[e>>2]:e=>m[e>>2];default:throw new TypeError(`invalid integer width (${t}): ${e}`)}},Xe="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,Ve=(e,t,r)=>{for(var n=t+r,o=t;e[o]&&!(o>=n);)++o;if(o-t>16&&e.buffer&&Xe)return Xe.decode(e.subarray(t,o));for(var i="";t<o;){var a=e[t++];if(128&a){var s=63&e[t++];if(192!=(224&a)){var A=63&e[t++];if((a=224==(240&a)?(15&a)<<12|s<<6|A:(7&a)<<18|s<<12|A<<6|63&e[t++])<65536)i+=String.fromCharCode(a);else{var c=a-65536;i+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else i+=String.fromCharCode((31&a)<<6|s)}else i+=String.fromCharCode(a)}return i},We="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,ze=(e,t)=>{for(var r=e,n=r>>1,o=n+t/2;!(n>=o)&&h[n];)++n;if((r=n<<1)-e>32&&We)return We.decode(f.subarray(e,r));for(var i="",a=0;!(a>=t/2);++a){var s=p[e+2*a>>1];if(0==s)break;i+=String.fromCharCode(s)}return i},$e=(e,t,r)=>{if(null!=r||(r=2147483647),r<2)return 0;for(var n=t,o=(r-=2)<2*e.length?r/2:e.length,i=0;i<o;++i){var a=e.charCodeAt(i);p[t>>1]=a,t+=2}return p[t>>1]=0,t-n},Ke=e=>2*e.length,Je=(e,t)=>{for(var r=0,n="";!(r>=t/4);){var o=I[e+4*r>>2];if(0==o)break;if(++r,o>=65536){var i=o-65536;n+=String.fromCharCode(55296|i>>10,56320|1023&i)}else n+=String.fromCharCode(o)}return n},Ze=(e,t,r)=>{if(null!=r||(r=2147483647),r<4)return 0;for(var n=t,o=n+r-4,i=0;i<e.length;++i){var a=e.charCodeAt(i);if(a>=55296&&a<=57343)a=65536+((1023&a)<<10)|1023&e.charCodeAt(++i);if(I[t>>2]=a,(t+=4)+4>o)break}return I[t>>2]=0,t-n},qe=e=>{for(var t=0,r=0;r<e.length;++r){var n=e.charCodeAt(r);n>=55296&&n<=57343&&++r,t+=4}return t},et=(e,t)=>{var r=H[e];return void 0===r&&Y(`${t} has unknown type ${be(e)}`),r},tt=(e,t,r)=>{var n=[],o=e.toWireType(n,r);return n.length&&(m[t>>2]=je.toHandle(n)),o},rt={},nt=[],ot=Reflect.construct,it=[null,[],[]];(()=>{for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);k=e})(),x=i.BindingError=class extends Error{constructor(e){super(e),this.name="BindingError"}},U=i.InternalError=class extends Error{constructor(e){super(e),this.name="InternalError"}},Object.assign(de.prototype,{isAliasOf(e){if(!(this instanceof de))return!1;if(!(e instanceof de))return!1;var t=this.$$.ptrType.registeredClass,r=this.$$.ptr;e.$$=e.$$;for(var n=e.$$.ptrType.registeredClass,o=e.$$.ptr;t.baseClass;)r=t.upcast(r),t=t.baseClass;for(;n.baseClass;)o=n.upcast(o),n=n.baseClass;return t===n&&r===o},clone(){if(this.$$.ptr||$(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e,t=ge(Object.create(Object.getPrototypeOf(this),{$$:{value:(e=this.$$,{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType})}}));return t.$$.count.value+=1,t.$$.deleteScheduled=!1,t},delete(){this.$$.ptr||$(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Y("Object already scheduled for deletion"),J(this),Z(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||$(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Y("Object already scheduled for deletion"),ne.push(this),1===ne.length&&z&&z(oe),this.$$.deleteScheduled=!0,this}}),i.getInheritedInstanceCount=te,i.getLiveInheritedInstances=re,i.flushPendingDeletes=oe,i.setDelayFunction=ie,Object.assign(Ce.prototype,{getPointee(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},destructor(e){var t;null==(t=this.rawDestructor)||t.call(this,e)},argPackAdvance:8,readValueFromPointer:me,fromWireType:ce}),_e=i.UnboundTypeError=(Re=Error,(Se=ue(Me="UnboundTypeError",(function(e){this.name=Me,this.message=e;var t=new Error(e).stack;void 0!==t&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))}))).prototype=Object.create(Re.prototype),Se.prototype.constructor=Se,Se.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`},Se),ke.push(0,1,void 0,1,null,1,!0,1,!1,1),i.count_emval_handles=Ue;var at,st={w:(e,t,r)=>{throw new N(e).init(t,r),e},q:()=>{T("")},p:(e,t,r,n,o)=>{},u:(e,t,r,n)=>{W(e,{name:t=j(t),fromWireType:function(e){return!!e},toWireType:function(e,t){return t?r:n},argPackAdvance:8,readValueFromPointer:function(e){return this.fromWireType(f[e])},destructorFunction:null})},y:(e,t,r,n,o,a,s,A,c,g,d,u,l)=>{d=j(d),a=Oe(o,a),A&&(A=Oe(s,A)),g&&(g=Oe(c,g)),l=Oe(u,l);var E=(e=>{if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=48&&t<=57?`_${e}`:e})(d);((e,t,r)=>{i.hasOwnProperty(e)?((void 0===r||void 0!==i[e].overloadTable&&void 0!==i[e].overloadTable[r])&&Y(`Cannot register public name '${e}' twice`),le(i,e,e),i.hasOwnProperty(r)&&Y(`Cannot register multiple overloads of a function with the same number of arguments (${r})!`),i[e].overloadTable[r]=t):(i[e]=t,void 0!==r&&(i[e].numArguments=r))})(E,(function(){Qe(`Cannot construct ${d} due to unbound types`,[n])})),V([e,t,r],n?[n]:[],(t=>{var r,o,s;t=t[0],s=n?(o=t.registeredClass).instancePrototype:de.prototype;var c=ue(d,(function(...e){if(Object.getPrototypeOf(this)!==u)throw new x("Use 'new' to construct "+d);if(void 0===f.constructor_body)throw new x(d+" has no accessible constructor");var t=f.constructor_body[e.length];if(void 0===t)throw new x(`Tried to invoke ctor of ${d} with invalid number of parameters (${e.length}) - expected (${Object.keys(f.constructor_body).toString()}) parameters instead!`);return t.apply(this,e)})),u=Object.create(s,{constructor:{value:c}});c.prototype=u;var f=new Ee(d,c,u,l,o,a,A,g);f.baseClass&&(null!=(r=f.baseClass).__derivedClasses||(r.__derivedClasses=[]),f.baseClass.__derivedClasses.push(f));var p=new Ce(d,f,!0,!1,!1),h=new Ce(d+"*",f,!1,!1,!1),I=new Ce(d+" const*",f,!1,!0,!1);return ee[e]={pointerType:h,constPointerType:I},((e,t,r)=>{i.hasOwnProperty(e)||X("Replacing nonexistent public symbol"),void 0!==i[e].overloadTable&&void 0!==r?i[e].overloadTable[r]=t:(i[e]=t,i[e].argCount=r)})(E,c),[p,h,I]}))},x:(e,t,r,n,o,i)=>{var a=Te(t,r);o=Oe(n,o),V([],[e],(e=>{var r=`constructor ${(e=e[0]).name}`;if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[t-1])throw new x(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${e.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return e.registeredClass.constructor_body[t-1]=()=>{Qe(`Cannot construct ${e.name} due to unbound types`,a)},V([],a,(n=>(n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=Pe(r,n,null,o,i),[]))),[]}))},h:(e,t,r,n,o,i,a,s,A)=>{var c=Te(r,n);t=(e=>{const t=(e=e.trim()).indexOf("(");return-1!==t?e.substr(0,t):e})(t=j(t)),i=Oe(o,i),V([],[e],(e=>{var n=`${(e=e[0]).name}.${t}`;function o(){Qe(`Cannot call ${n} due to unbound types`,c)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(t);var A=e.registeredClass.instancePrototype,g=A[t];return void 0===g||void 0===g.overloadTable&&g.className!==e.name&&g.argCount===r-2?(o.argCount=r-2,o.className=e.name,A[t]=o):(le(A,t,n),A[t].overloadTable[r-2]=o),V([],c,(o=>{var s=Pe(n,o,e,i,a);return void 0===A[t].overloadTable?(s.argCount=r-2,A[t]=s):A[t].overloadTable[r-2]=s,[]})),[]}))},k:(e,t,r,n,o,i,a,s,A,c)=>{t=j(t),o=Oe(n,o),V([],[e],(e=>{var n=`${(e=e[0]).name}.${t}`,g={get(){Qe(`Cannot access ${n} due to unbound types`,[r,a])},enumerable:!0,configurable:!0};return g.set=A?()=>Qe(`Cannot access ${n} due to unbound types`,[r,a]):e=>Y(n+" is a read-only property"),Object.defineProperty(e.registeredClass.instancePrototype,t,g),V([],A?[r,a]:[r],(r=>{var a=r[0],g={get(){var t=Fe(this,e,n+" getter");return a.fromWireType(o(i,t))},enumerable:!0};if(A){A=Oe(s,A);var d=r[1];g.set=function(t){var r=Fe(this,e,n+" setter"),o=[];A(c,r,d.toWireType(o,t)),ve(o)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,g),[]})),[]}))},t:e=>W(e,Le),o:(e,t,r)=>{W(e,{name:t=j(t),fromWireType:e=>e,toWireType:(e,t)=>t,argPackAdvance:8,readValueFromPointer:Ge(t,r),destructorFunction:null})},g:(e,t,r,n,o)=>{t=j(t),-1===o&&(o=4294967295);var i=e=>e;if(0===n){var a=32-8*r;i=e=>e<<a>>>a}var s=t.includes("unsigned");W(e,{name:t,fromWireType:i,toWireType:s?function(e,t){return this.name,t>>>0}:function(e,t){return this.name,t},argPackAdvance:8,readValueFromPointer:Ye(t,r,0!==n),destructorFunction:null})},a:(e,t,r)=>{var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function o(e){var t=m[e>>2],r=m[e+4>>2];return new n(E.buffer,r,t)}W(e,{name:r=j(r),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},n:(e,t)=>{var r="std::string"===(t=j(t));W(e,{name:t,fromWireType(e){var t,n,o,i=m[e>>2],a=e+4;if(r)for(var s=a,A=0;A<=i;++A){var c=a+A;if(A==i||0==f[c]){var g=(o=c-s,(n=s)?Ve(f,n,o):"");void 0===t?t=g:(t+=String.fromCharCode(0),t+=g),s=c+1}}else{var d=new Array(i);for(A=0;A<i;++A)d[A]=String.fromCharCode(f[a+A]);t=d.join("")}return dt(e),t},toWireType(e,t){var n;t instanceof ArrayBuffer&&(t=new Uint8Array(t));var o="string"==typeof t;o||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||Y("Cannot pass non-string to std::string"),n=r&&o?(e=>{for(var t=0,r=0;r<e.length;++r){var n=e.charCodeAt(r);n<=127?t++:n<=2047?t+=2:n>=55296&&n<=57343?(t+=4,++r):t+=3}return t})(t):t.length;var i=ct(4+n+1),a=i+4;if(m[i>>2]=n,r&&o)((e,t,r,n)=>{if(!(n>0))return 0;for(var o=r,i=r+n-1,a=0;a<e.length;++a){var s=e.charCodeAt(a);if(s>=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&e.charCodeAt(++a)),s<=127){if(r>=i)break;t[r++]=s}else if(s<=2047){if(r+1>=i)break;t[r++]=192|s>>6,t[r++]=128|63&s}else if(s<=65535){if(r+2>=i)break;t[r++]=224|s>>12,t[r++]=128|s>>6&63,t[r++]=128|63&s}else{if(r+3>=i)break;t[r++]=240|s>>18,t[r++]=128|s>>12&63,t[r++]=128|s>>6&63,t[r++]=128|63&s}}t[r]=0})(t,f,a,n+1);else if(o)for(var s=0;s<n;++s){var A=t.charCodeAt(s);A>255&&(dt(a),Y("String has UTF-16 code units that do not fit in 8 bits")),f[a+s]=A}else for(s=0;s<n;++s)f[a+s]=t[s];return null!==e&&e.push(dt,i),i},argPackAdvance:8,readValueFromPointer:me,destructorFunction(e){dt(e)}})},l:(e,t,r)=>{var n,o,i,a;r=j(r),2===t?(n=ze,o=$e,a=Ke,i=e=>h[e>>1]):4===t&&(n=Je,o=Ze,a=qe,i=e=>m[e>>2]),W(e,{name:r,fromWireType:e=>{for(var r,o=m[e>>2],a=e+4,s=0;s<=o;++s){var A=e+4+s*t;if(s==o||0==i(A)){var c=n(a,A-a);void 0===r?r=c:(r+=String.fromCharCode(0),r+=c),a=A+t}}return dt(e),r},toWireType:(e,n)=>{"string"!=typeof n&&Y(`Cannot pass non-string to C++ string type ${r}`);var i=a(n),s=ct(4+i+t);return m[s>>2]=i/t,o(n,s+4,i+t),null!==e&&e.push(dt,s),s},argPackAdvance:8,readValueFromPointer:me,destructorFunction(e){dt(e)}})},v:(e,t)=>{W(e,{isVoid:!0,name:t=j(t),argPackAdvance:0,fromWireType:()=>{},toWireType:(e,t)=>{}})},s:(e,t,r)=>f.copyWithin(e,t,t+r),j:(e,t,r)=>(e=je.toValue(e),t=et(t,"emval::as"),tt(t,r,e)),e:(e,t,r,n,o)=>{var i,a;return(e=nt[e])(t=je.toValue(t),t[r=void 0===(a=rt[i=r])?j(i):a],n,o)},c:xe,f:(e,t,r)=>{var n=((e,t)=>{for(var r=new Array(e),n=0;n<e;++n)r[n]=et(m[t+4*n>>2],"parameter "+n);return r})(e,t),o=n.shift();e--;var i,a,s=new Array(e),A=`methodCaller<(${n.map((e=>e.name)).join(", ")}) => ${o.name}>`;return i=ue(A,((t,i,a,A)=>{for(var c=0,g=0;g<e;++g)s[g]=n[g].readValueFromPointer(A+c),c+=n[g].argPackAdvance;var d=1===r?ot(i,s):i.apply(t,s);return tt(o,a,d)})),a=nt.length,nt.push(i),a},d:e=>{e>9&&(ke[e+1]+=1)},b:e=>{var t=je.toValue(e);ve(t),xe(e)},i:(e,t)=>{var r=(e=et(e,"_emval_take_value")).readValueFromPointer(t);return je.toHandle(r)},r:e=>{f.length;T("OOM")},m:(e,t,r,n)=>{for(var o,i,a,s=0,A=0;A<r;A++){var c=m[t>>2],g=m[t+4>>2];t+=8;for(var l=0;l<g;l++)o=e,i=f[c+l],a=void 0,a=it[o],0===i||10===i?((1===o?d:u)(Ve(a,0)),a.length=0):a.push(i);s+=g}return m[n>>2]=s,0}},At=function(){var e,t={a:st};function r(e,t){var r,n;return At=e.exports,g=At.z,r=g.buffer,i.HEAP8=E=new Int8Array(r),i.HEAP16=p=new Int16Array(r),i.HEAPU8=f=new Uint8Array(r),i.HEAPU16=h=new Uint16Array(r),i.HEAP32=I=new Int32Array(r),i.HEAPU32=m=new Uint32Array(r),i.HEAPF32=C=new Float32Array(r),i.HEAPF64=y=new Float64Array(r),ye=At.C,n=At.A,B.unshift(n),function(){var e;if(O--,null==(e=i.monitorRunDependencies)||e.call(i,O),0==O&&(null!==b&&(clearInterval(b),b=null),Q)){var t=Q;Q=null,t()}}(),At}if(O++,null==(e=i.monitorRunDependencies)||e.call(i,O),i.instantiateWasm)try{return i.instantiateWasm(t,r)}catch(e){u(`Module.instantiateWasm callback failed with error: ${e}`),n(e)}return v||(v="data:application/octet-stream;base64,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Ay0AASIARQ0BIAJBAWohAiADQQFqIQMgACABRg0ACwsgACABRgtrAQF/IwBBgAJrIgUkAAJAIAIgA0wNACAEQYDABHENACAFIAEgAiADayIDQYACIANBgAJJIgEbECQaIAFFBEADQCAAIAVBgAIQHSADQYACayIDQf8BSw0ACwsgACAFIAMQHQsgBUGAAmokAAvlAwEFfyMAQRBrIgMkACADIAAoAgAiBEEIaygCACICNgIMIAMgACACajYCBCADIARBBGsoAgA2AgggAygCCCIEIAFBABAeIQIgAygCBCEFAkAgAgRAIAMoAgwhACMAQUBqIgEkACABQUBrJABBACAFIAAbIQIMAQsjAEFAaiICJAAgACAFTgRAIAJCADcCHCACQgA3AiQgAkIANwIsIAJCADcCFCACQQA2AhAgAiABNgIMIAIgBDYCBCACQQA2AjwgAkKBgICAgICAgAE3AjQgAiAANgIIIAQgAkEEaiAFIAVBAUEAIAQoAgAoAhQRCQAgAEEAIAIoAhwbIQYLIAJBQGskACAGIgINACMAQUBqIgIkACACQQA2AhAgAkGsxgA2AgwgAiAANgIIIAIgATYCBEEAIQAgAkEUakEAQScQJBogAkEANgI8IAJBAToAOyAEIAJBBGogBUEBQQAgBCgCACgCGBEIAAJAAkACQCACKAIoDgIAAQILIAIoAhhBACACKAIkQQFGG0EAIAIoAiBBAUYbQQAgAigCLEEBRhshAAwBCyACKAIcQQFHBEAgAigCLA0BIAIoAiBBAUcNASACKAIkQQFHDQELIAIoAhQhAAsgAkFAayQAIAAhAgsgA0EQaiQAIAILtAEBBX8jAEEQayIGJAAgBkEEaiICEEEjAEEQayIFJAACfyACLQALQQd2BEAgAigCBAwBCyACLQALQf8AcQshBANAAkACfyACLQALQQd2BEAgAigCAAwBCyACCyEDIAUgATkDACACAn8gAyAEQQFqIAUQRyIDQQBOBEAgAyAETQ0CIAMMAQsgBEEBdEEBcgsiBBAtDAELCyACIAMQLSAAIAIQQCAFQRBqJAAgAhBEIAZBEGokAAuABAEDfyACQYAETwRAIAAgASACEBIgAA8LIAAgAmohAwJAIAAgAXNBA3FFBEACQCAAQQNxRQRAIAAhAgwBCyACRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAkEDcUUNASACIANJDQALCwJAIANBfHEiBEHAAEkNACACIARBQGoiBUsNAANAIAIgASgCADYCACACIAEoAgQ2AgQgAiABKAIINgIIIAIgASgCDDYCDCACIAEoAhA2AhAgAiABKAIUNgIUIAIgASgCGDYCGCACIAEoAhw2AhwgAiABKAIgNgIgIAIgASgCJDYCJCACIAEoAig2AiggAiABKAIsNgIsIAIgASgCMDYCMCACIAEoAjQ2AjQgAiABKAI4NgI4IAIgASgCPDYCPCABQUBrIQEgAkFAayICIAVNDQALCyACIARPDQEDQCACIAEoAgA2AgAgAUEEaiEBIAJBBGoiAiAESQ0ACwwBCyADQQRJBEAgACECDAELIAAgA0EEayIESwRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAiABLQABOgABIAIgAS0AAjoAAiACIAEtAAM6AAMgAUEEaiEBIAJBBGoiAiAETQ0ACwsgAiADSQRAA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgIgA0cNAAsLIAALCwAgASACIAAQRRoL8gICAn8BfgJAIAJFDQAgACABOgAAIAAgAmoiA0EBayABOgAAIAJBA0kNACAAIAE6AAIgACABOgABIANBA2sgAToAACADQQJrIAE6AAAgAkEHSQ0AIAAgAToAAyADQQRrIAE6AAAgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBBGsgATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQQhrIAE2AgAgAkEMayABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkEQayABNgIAIAJBFGsgATYCACACQRhrIAE2AgAgAkEcayABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa1CgYCAgBB+IQUgAyAEaiEBA0AgASAFNwMYIAEgBTcDECABIAU3AwggASAFNwMAIAFBIGohASACQSBrIgJBH0sNAAsLIAALEgAgAUEBdEHAxABqQQIgABBFC60CAQd/An8gARAqIQMjAEEQayIGJAACfyAALQALQQd2BEAgACgCBAwBCyAALQALQf8AcQsiBEEATwRAAkAgAyAALQAL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eHEgBCgCCEH/////B3FyNgIIIAAgACgCCEGAgICAeHI2AgggBEEQaiQADAELECcACyAAIAE2AgQLIAECfyAALQALQQd2BEAgACgCAAwBCyAACyICaiAFEEMgACABIAVqIgAQMSAGQQA6AA8gACACaiAGLQAPOgAACyAGQRBqJAAPCwJ/IAAtAAtBB3YEQCAAKAIADAELIAALIQQjAEEQayICJAACfyAALQALQQd2BEAgACgCBAwBCyAALQALCxogACABEDEgAkEAOgAPIAEgBGogAi0ADzoAACACQRBqJAALPQEBfyMAQRBrIgIkACACQQA6AA8DQCABBEAgACACLQAPOgAAIAFBAWshASAAQQFqIQAMAQsLIAJBEGokAAsaACAALQALQQd2BEAgACgCCBogACgCABAZCwvmAQEFfyMAQRBrIgUkACMAQSBrIgMkACMAQRBrIgQkACAEIAA2AgwgBCAAIAFqNgIIIAMgBCgCDDYCGCADIAQoAgg2AhwgBEEQaiQAIAMoAhghBCADKAIcIQYjAEEQayIBJAAgASAGNgIMIAIgBCAGIARrIgQQNiABIAIgBGo2AgggAyABKAIMNgIQIAMgASgCCDYCFCABQRBqJAAgAyAAIAMoAhAgAGtqNgIMIAMgAiADKAIUIAJrajYCCCAFIAMoAgw2AgggBSADKAIINgIMIANBIGokACAFKAIMIQcgBUEQaiQAIAcL8wIBBX8jAEEQayIHJAAgAiABQX9zQff///8Hak0EQAJ/IAAtAAtBB3YEQCAAKAIADAELIAALIQggB0EEaiIJIAFB8////wNJBH8gByABQQF0NgIMIAcgASACajYCBCMAQRBrIgIkACAJKAIAIAdBDGoiCigCAEkhCyACQRBqJAAgCiAJIAsbKAIAIgJBC08EfyACQQhqQXhxIgIgAkEBayICIAJBC0YbBUEKC0EBagVB9////wcLEDAgBygCBCECIAcoAggaIAQEQCACIAggBBAjCyAFBEAgAiAEaiAGIAUQIwsgAyAEayEGIAMgBEcEQCACIARqIAVqIAQgCGogBhAjCyABQQpHBEAgCBAZCyAAIAI2AgAgACAAKAIIQYCAgIB4cSAHKAIIQf////8HcXI2AgggACAAKAIIQYCAgIB4cjYCCCAAIAQgBWogBmoiADYCBCAHQQA6AAwgACACaiAHLQAMOgAAIAdBEGokAA8LECcAC58BAQR/IwBBEGsiBCQAIAQgAjYCDCMAQaABayIDJAAgAyAAIANBngFqIAEbIgU2ApQBIAMgAUEBayIAQQAgACABTRs2ApgBIANBAEGQARAkIgBBfzYCTCAAQR42AiQgAEF/NgJQIAAgAEGfAWo2AiwgACAAQZQBajYCVCAFQQA6AAAgAEHkCiACQR0QTiEGIABBoAFqJAAgBEEQaiQAIAYLBAAgAAuZAgAgAEUEQEEADwsCfwJAIAAEfyABQf8ATQ0BAkBBhNAAKAIAKAIARQRAIAFBgH9xQYC/A0YNAwwBCyABQf8PTQRAIAAgAUE/cUGAAXI6AAEgACABQQZ2QcABcjoAAEECDAQLIAFBgEBxQYDAA0cgAUGAsANPcUUEQCAAIAFBP3FBgAFyOgACIAAgAUEMdkHgAXI6AAAgACABQQZ2QT9xQYABcjoAAUEDDAQLIAFBgIAEa0H//z9NBEAgACABQT9xQYABcjoAAyAAIAFBEnZB8AFyOgAAIAAgAUEGdkE/cUGAAXI6AAIgACABQQx2QT9xQYABcjoAAUEEDAQLC0G42ABBGTYCAEF/BUEBCwwBCyAAIAE6AABBAQsLjBgDE38BfAN+IwBBsARrIgwkACAMQQA2AiwCQCABvSIaQgBTBEBBASEQQZQIIRMgAZoiAb0hGgwBCyAEQYAQcQRAQQEhEEGXCCETDAELQZoIQZUIIARBAXEiEBshEyAQRSEVCwJAIBpCgICAgICAgPj/AINCgICAgICAgPj/AFEEQCAAQSAgAiAQQQNqIgMgBEH//3txEB8gACATIBAQHSAAQcIJQbwLIAVBIHEiBRtB4ApBwAsgBRsgASABYhtBAxAdIABBICACIAMgBEGAwABzEB8gAyACIAIgA0gbIQoMAQsgDEEQaiERAkACfwJAIAEgDEEsahBPIgEgAaAiAUQAAAAAAAAAAGIEQCAMIAwoAiwiBkEBazYCLCAFQSByIg5B4QBHDQEMAwsgBUEgciIOQeEARg0CIAwoAiwhCUEGIAMgA0EASBsMAQsgDCAGQR1rIgk2AiwgAUQAAAAAAACwQaIhAUEGIAMgA0EASBsLIQsgDEEwakGgAkEAIAlBAE4baiINIQcDQCAHAn8gAUQAAAAAAADwQWMgAUQAAAAAAAAAAGZxBEAgAasMAQtBAAsiAzYCACAHQQRqIQcgASADuKFEAAAAAGXNzUGiIgFEAAAAAAAAAABiDQALAkAgCUEATARAIAkhAyAHIQYgDSEIDAELIA0hCCAJIQMDQEEdIAMgA0EdTxshAwJAIAdBBGsiBiAISQ0AIAOtIRxCACEaA0AgBiAaQv////8PgyAGNQIAIByGfCIbIBtCgJTr3AOAIhpCgJTr3AN+fT4CACAGQQRrIgYgCE8NAAsgG0KAlOvcA1QNACAIQQRrIgggGj4CAAsDQCAIIAciBkkEQCAGQQRrIgcoAgBFDQELCyAMIAwoAiwgA2siAzYCLCAGIQcgA0EASg0ACwsgA0EASARAIAtBGWpBCW5BAWohDyAOQeYARiESA0BBCUEAIANrIgMgA0EJTxshCgJAIAYgCE0EQCAIKAIARUECdCEHDAELQYCU69wDIAp2IRRBfyAKdEF/cyEWQQAhAyAIIQcDQCAHIAMgBygCACIXIAp2ajYCACAWIBdxIBRsIQMgB0EEaiIHIAZJDQALIAgoAgBFQQJ0IQcgA0UNACAGIAM2AgAgBkEEaiEGCyAMIAwoAiwgCmoiAzYCLCANIAcgCGoiCCASGyIHIA9BAnRqIAYgBiAHa0ECdSAPShshBiADQQBIDQALC0EAIQMCQCAGIAhNDQAgDSAIa0ECdUEJbCEDQQohByAIKAIAIgpBCkkNAANAIANBAWohAyAKIAdBCmwiB08NAAsLIAsgA0EAIA5B5gBHG2sgDkHnAEYgC0EAR3FrIgcgBiANa0ECdUEJbEEJa0gEQCAMQTBqQYRgQaRiIAlBAEgbaiAHQYDIAGoiCkEJbSIPQQJ0aiEJQQohByAKIA9BCWxrIgpBB0wEQANAIAdBCmwhByAKQQFqIgpBCEcNAAsLAkAgCSgCACISIBIgB24iDyAHbGsiCkUgCUEEaiIUIAZGcQ0AAkAgD0EBcUUEQEQAAAAAAABAQyEBIAdBgJTr3ANHDQEgCCAJTw0BIAlBBGstAABBAXFFDQELRAEAAAAAAEBDIQELRAAAAAAAAOA/RAAAAAAAAPA/RAAAAAAAAPg/IAYgFEYbRAAAAAAAAPg/IAogB0EBdiIURhsgCiAUSRshGQJAIBUNACATLQAAQS1HDQAgGZohGSABmiEBCyAJIBIgCmsiCjYCACABIBmgIAFhDQAgCSAHIApqIgM2AgAgA0GAlOvcA08EQANAIAlBADYCACAIIAlBBGsiCUsEQCAIQQRrIghBADYCAAsgCSAJKAIAQQFqIgM2AgAgA0H/k+vcA0sNAAsLIA0gCGtBAnVBCWwhA0EKIQcgCCgCACIKQQpJDQADQCADQQFqIQMgCiAHQQpsIgdPDQALCyAJQQRqIgcgBiAGIAdLGyEGCwNAIAYiByAITSIKRQRAIAZBBGsiBigCAEUNAQsLAkAgDkHnAEcEQCAEQQhxIQkMAQsgA0F/c0F/IAtBASALGyIGIANKIANBe0pxIgkbIAZqIQtBf0F+IAkbIAVqIQUgBEEIcSIJDQBBdyEGAkAgCg0AIAdBBGsoAgAiDkUNAEEKIQpBACEGIA5BCnANAANAIAYiCUEBaiEGIA4gCkEKbCIKcEUNAAsgCUF/cyEGCyAHIA1rQQJ1QQlsIQogBUFfcUHGAEYEQEEAIQkgCyAGIApqQQlrIgZBACAGQQBKGyIGIAYgC0obIQsMAQtBACEJIAsgAyAKaiAGakEJayIGQQAgBkEAShsiBiAGIAtKGyELC0F/IQogC0H9////B0H+////ByAJIAtyIhIbSg0BIAsgEkEAR2pBAWohDgJAIAVBX3EiFUHGAEYEQCADIA5B/////wdzSg0DIANBACADQQBKGyEGDAELIBEgAyADQR91IgZzIAZrrSARECkiBmtBAUwEQANAIAZBAWsiBkEwOgAAIBEgBmtBAkgNAAsLIAZBAmsiDyAFOgAAIAZBAWtBLUErIANBAEgbOgAAIBEgD2siBiAOQf////8Hc0oNAgsgBiAOaiIDIBBB/////wdzSg0BIABBICACIAMgEGoiAyAEEB8gACATIBAQHSAAQTAgAiADIARBgIAEcxAfAkACQAJAIBVBxgBGBEAgDEEQakEJciEFIA0gCCAIIA1LGyIJIQgDQCAINQIAIAUQKSEGAkAgCCAJRwRAIAYgDEEQak0NAQNAIAZBAWsiBkEwOgAAIAYgDEEQaksNAAsMAQsgBSAGRw0AIAZBAWsiBkEwOgAACyAAIAYgBSAGaxAdIAhBBGoiCCANTQ0ACyASBEAgAEG0EUEBEB0LIAcgCE0NASALQQBMDQEDQCAINQIAIAUQKSIGIAxBEGpLBEADQCAGQQFrIgZBMDoAACAGIAxBEGpLDQALCyAAIAZBCSALIAtBCU4bEB0gC0EJayEGIAhBBGoiCCAHTw0DIAtBCUohGCAGIQsgGA0ACwwCCwJAIAtBAEgNACAHIAhBBGogByAISxshDSAMQRBqQQlyIQUgCCEHA0AgBSAHNQIAIAUQKSIGRgRAIAZBAWsiBkEwOgAACwJAIAcgCEcEQCAGIAxBEGpNDQEDQCAGQQFrIgZBMDoAACAGIAxBEGpLDQALDAELIAAgBkEBEB0gBkEBaiEGIAkgC3JFDQAgAEG0EUEBEB0LIAAgBiAFIAZrIgYgCyAGIAtIGxAdIAsgBmshCyAHQQRqIgcgDU8NASALQQBODQALCyAAQTAgC0ESakESQQAQHyAAIA8gESAPaxAdDAILIAshBgsgAEEwIAZBCWpBCUEAEB8LIABBICACIAMgBEGAwABzEB8gAyACIAIgA0gbIQoMAQsgEyAFQRp0QR91QQlxaiEIAkAgA0ELSw0AQQwgA2shBkQAAAAAAAAwQCEZA0AgGUQAAAAAAAAwQKIhGSAGQQFrIgYNAAsgCC0AAEEtRgRAIBkgAZogGaGgmiEBDAELIAEgGaAgGaEhAQsgESAMKAIsIgYgBkEfdSIGcyAGa60gERApIgZGBEAgBkEBayIGQTA6AAALIBBBAnIhCyAFQSBxIQ0gDCgCLCEHIAZBAmsiCSAFQQ9qOgAAIAZBAWtBLUErIAdBAEgbOgAAIARBCHEhBiAMQRBqIQcDQCAHIgUCfyABmUQAAAAAAADgQWMEQCABqgwBC0GAgICAeAsiB0GAxABqLQAAIA1yOgAAIAEgB7ehRAAAAAAAADBAoiEBAkAgBUEBaiIHIAxBEGprQQFHDQACQCAGDQAgA0EASg0AIAFEAAAAAAAAAABhDQELIAVBLjoAASAFQQJqIQcLIAFEAAAAAAAAAABiDQALQX8hCkH9////ByALIBEgCWsiBmoiDWsgA0gNACAAQSAgAiANIANBAmogByAMQRBqIgdrIgUgBUECayADSBsgBSADGyIKaiIDIAQQHyAAIAggCxAdIABBMCACIAMgBEGAgARzEB8gACAHIAUQHSAAQTAgCiAFa0EAQQAQHyAAIAkgBhAdIABBICACIAMgBEGAwABzEB8gAyACIAIgA0gbIQoLIAxBsARqJAAgCgu8AgACQAJAAkACQAJAAkACQAJAAkACQAJAIAFBCWsOEgAICQoICQECAwQKCQoKCAkFBgcLIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASsDADkDAA8LIAAgAiADEQAACw8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAAtzAQZ/IAAoAgAiAywAAEEwayIBQQlLBEBBAA8LA0BBfyEEIAJBzJmz5gBNBEBBfyABIAJBCmwiBWogASAFQf////8Hc0sbIQQLIAAgA0EBaiIFNgIAIAMsAAEhBiAEIQIgBSEDIAZBMGsiAUEKSQ0ACyACC7AUAhV/AX4jAEFAaiIHJAAgByABNgI8IAdBJ2ohFSAHQShqIRACQAJAAkACQANAQQAhBgNAIAEhDCAGIA1B/////wdzSg0CIAYgDWohDQJAAkACQAJAIAEiBi0AACIKBEADQAJAAkAgCkH/AXEiAUUEQCAGIQEMAQsgAUElRw0BIAYhCgNAIAotAAFBJUcEQCAKIQEMAgsgBkEBaiEGIAotAAIhGCAKQQJqIgEhCiAYQSVGDQALCyAGIAxrIgYgDUH/////B3MiFkoNCSAABEAgACAMIAYQHQsgBg0HIAcgATYCPCABQQFqIQZBfyEPAkAgASwAAUEwayIIQQlLDQAgAS0AAkEkRw0AIAFBA2ohBkEBIREgCCEPCyAHIAY2AjxBACELAkAgBiwAACIKQSBrIgFBH0sEQCAGIQgMAQsgBiEIQQEgAXQiAUGJ0QRxRQ0AA0AgByAGQQFqIgg2AjwgASALciELIAYsAAEiCkEgayIBQSBPDQEgCCEGQQEgAXQiAUGJ0QRxDQALCwJAIApBKkYEQAJ/AkAgCCwAAUEwayIBQQlLDQAgCC0AAkEkRw0AAn8gAEUEQCAEIAFBAnRqQQo2AgBBAAwBCyADIAFBA3RqKAIACyEOIAhBA2ohAUEBDAELIBENBiAIQQFqIQEgAEUEQCAHIAE2AjxBACERQQAhDgwDCyACIAIoAgAiBkEEajYCACAGKAIAIQ5BAAshESAHIAE2AjwgDkEATg0BQQAgDmshDiALQYDAAHIhCwwBCyAHQTxqEEwiDkEASA0KIAcoAjwhAQtBACEGQX8hCQJ/QQAgAS0AAEEuRw0AGiABLQABQSpGBEACfwJAIAEsAAJBMGsiCEEJSw0AIAEtAANBJEcNACABQQRqIQECfyAARQRAIAQgCEECdGpBCjYCAEEADAELIAMgCEEDdGooAgALDAELIBENBiABQQJqIQFBACAARQ0AGiACIAIoAgAiCEEEajYCACAIKAIACyEJIAcgATYCPCAJQQBODAELIAcgAUEBajYCPCAHQTxqEEwhCSAHKAI8IQFBAQshEgNAIAYhE0EcIQggASIXLAAAIgZB+wBrQUZJDQsgAUEBaiEBIAYgE0E6bGpB7z9qLQAAIgZBAWtBCEkNAAsgByABNgI8AkAgBkEbRwRAIAZFDQwgD0EATgRAIABFBEAgBCAPQQJ0aiAGNgIADAwLIAcgAyAPQQN0aikDADcDMAwCCyAARQ0IIAdBMGogBiACIAUQSwwBCyAPQQBODQtBACEGIABFDQgLIAAtAABBIHENCyALQf//e3EiCiALIAtBgMAAcRshC0EAIQ9BigghFCAQIQgCQAJAAn8CQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIBcsAAAiBkFTcSAGIAZBD3FBA0YbIAYgExsiBkHYAGsOIQQWFhYWFhYWFhAWCQYQEBAWBhYWFhYCBQMWFgoWARYWBAALAkAgBkHBAGsOBxAWCxYQEBAACyAGQdMARg0LDBULIAcpAzAhG0GKCAwFC0EAIQYCQAJAAkACQAJAAkACQCATQf8BcQ4IAAECAwQcBQYcCyAHKAIwIA02AgAMGwsgBygCMCANNgIADBoLIAcoAjAgDaw3AwAMGQsgBygCMCANOwEADBgLIAcoAjAgDToAAAwXCyAHKAIwIA02AgAMFgsgBygCMCANrDcDAAwVC0EIIAkgCUEITRshCSALQQhyIQtB+AAhBgsgECEBIAcpAzAiG0IAUgRAIAZBIHEhDANAIAFBAWsiASAbp0EPcUGAxABqLQAAIAxyOgAAIBtCD1YhGSAbQgSIIRsgGQ0ACwsgASEMIAcpAzBQDQMgC0EIcUUNAyAGQQR2QYoIaiEUQQIhDwwDCyAQIQEgBykDMCIbQgBSBEADQCABQQFrIgEgG6dBB3FBMHI6AAAgG0IHViEaIBtCA4ghGyAaDQALCyABIQwgC0EIcUUNAiAJIBAgAWsiAUEBaiABIAlIGyEJDAILIAcpAzAiG0IAUwRAIAdCACAbfSIbNwMwQQEhD0GKCAwBCyALQYAQcQRAQQEhD0GLCAwBC0GMCEGKCCALQQFxIg8bCyEUIBsgEBApIQwLIBIgCUEASHENESALQf//e3EgCyASGyELAkAgBykDMCIbQgBSDQAgCQ0AIBAhDEEAIQkMDgsgCSAbUCAQIAxraiIBIAEgCUgbIQkMDQsgBykDMCEbDAsLAn9B/////wcgCSAJQf////8HTxsiCyIGQQBHIQgCQAJAAkAgBygCMCIBQcIRIAEbIgwiAUEDcUUNACAGRQ0AA0AgAS0AAEUNAiAGQQFrIgZBAEchCCABQQFqIgFBA3FFDQEgBg0ACwsgCEUNAQJAIAEtAABFDQAgBkEESQ0AA0BBgIKECCABKAIAIghrIAhyQYCBgoR4cUGAgYKEeEcNAiABQQRqIQEgBkEEayIGQQNLDQALCyAGRQ0BCwNAIAEgAS0AAEUNAhogAUEBaiEBIAZBAWsiBg0ACwtBAAsiASAMayALIAEbIgEgDGohCCAJQQBOBEAgCiELIAEhCQwMCyAKIQsgASEJIAgtAAANDwwLCyAHKQMwIhtCAFINAUIAIRsMCQsgCQRAIAcoAjAMAgtBACEGIABBICAOQQAgCxAfDAILIAdBADYCDCAHIBs+AgggByAHQQhqIgY2AjBBfyEJIAYLIQpBACEGA0ACQCAKKAIAIgxFDQAgB0EEaiAMEEkiDEEASA0PIAwgCSAGa0sNACAKQQRqIQogBiAMaiIGIAlJDQELC0E9IQggBkEASA0MIABBICAOIAYgCxAfIAZFBEBBACEGDAELQQAhCCAHKAIwIQoDQCAKKAIAIgxFDQEgB0EEaiIJIAwQSSIMIAhqIgggBksNASAAIAkgDBAdIApBBGohCiAGIAhLDQALCyAAQSAgDiAGIAtBgMAAcxAfIA4gBiAGIA5IGyEGDAgLIBIgCUEASHENCUE9IQggACAHKwMwIA4gCSALIAYQSiIGQQBODQcMCgsgBi0AASEKIAZBAWohBgwACwALIAANCSARRQ0DQQEhBgNAIAQgBkECdGooAgAiAARAIAMgBkEDdGogACACIAUQS0EBIQ0gBkEBaiIGQQpHDQEMCwsLQQEhDSAGQQpPDQkDQCAEIAZBAnRqKAIADQEgBkEBaiIGQQpHDQALDAkLQRwhCAwGCyAHIBs8ACdBASEJIBUhDCAKIQsLIAkgCCAMayIKIAkgCkobIgkgD0H/////B3NKDQNBPSEIIA4gCSAPaiIBIAEgDkgbIgYgFkoNBCAAQSAgBiABIAsQHyAAIBQgDxAdIABBMCAGIAEgC0GAgARzEB8gAEEwIAkgCkEAEB8gACAMIAoQHSAAQSAgBiABIAtBgMAAcxAfIAcoAjwhAQwBCwsLQQAhDQwDC0E9IQgLQbjYACAINgIAC0F/IQ0LIAdBQGskACANC78CAQV/IwBB0AFrIgQkACAEIAI2AswBIARBoAFqIgJBAEEoECQaIAQgBCgCzAE2AsgBAkBBACABIARByAFqIARB0ABqIAIgAxBNQQBIBEBBfyEDDAELIAAoAkxBAEghCCAAIAAoAgAiB0FfcTYCAAJ/AkACQCAAKAIwRQRAIABB0AA2AjAgAEEANgIcIABCADcDECAAKAIsIQUgACAENgIsDAELIAAoAhANAQtBfyAAEFANARoLIAAgASAEQcgBaiAEQdAAaiAEQaABaiADEE0LIQIgBQRAIABBAEEAIAAoAiQRAwAaIABBADYCMCAAIAU2AiwgAEEANgIcIAAoAhQhASAAQgA3AxAgAkF/IAEbIQILIAAgACgCACIAIAdBIHFyNgIAQX8gAiAAQSBxGyEDIAgNAAsgBEHQAWokACADC34CAX8BfiAAvSIDQjSIp0H/D3EiAkH/D0cEfCACRQRAIAEgAEQAAAAAAAAAAGEEf0EABSAARAAAAAAAAPBDoiABEE8hACABKAIAQUBqCzYCACAADwsgASACQf4HazYCACADQv////////+HgH+DQoCAgICAgIDwP4S/BSAACwtZAQF/IAAgACgCSCIBQQFrIAFyNgJIIAAoAgAiAUEIcQRAIAAgAUEgcjYCAEF/DwsgAEIANwIEIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhBBAAsCAAvtAwBBjMkAQYgLEBVBpMkAQe4JQQFBABAUQbDJAEGuCUEBQYB/Qf8AEAZByMkAQacJQQFBgH9B/wAQBkG8yQBBpQlBAUEAQf8BEAZB1MkAQbAIQQJBgIB+Qf//ARAGQeDJAEGnCEECQQBB//8DEAZB7MkAQb8IQQRBgICAgHhB/////wcQBkH4yQBBtghBBEEAQX8QBkGEygBBlwpBBEGAgICAeEH/////BxAGQZDKAEGOCkEEQQBBfxAGQZzKAEHPCEKAgICAgICAgIB/Qv///////////wAQVkGoygBBzghCAEJ/EFZBtMoAQcgIQQQQDkHAygBB7QpBCBAOQfAoQbYKEA1ByClBvA8QDUGQKkEEQZwKEAtB3CpBAkHCChALQagrQQRB0QoQC0GUJxATQdArQQBB9w4QAEH4K0EAQd0PEABBoCxBAUGVDxAAQcgsQQJBxAsQAEHwLEEDQeMLEABBmC1BBEGLDBAAQcAtQQVBqAwQAEHoLUEEQYIQEABBkC5BBUGgEBAAQfgrQQBBjg0QAEGgLEEBQe0MEABByCxBAkHQDRAAQfAsQQNBrg0QAEGYLUEEQdYOEABBwC1BBUG0DhAAQbguQQhBkw4QAEHgLkEJQfENEABBiC9BBkHODBAAQbAvQQdBxxAQAAtmAQN/QdgAECxB0ABqIgFB8MsANgIAIAFBnMwANgIAIAAQKiICQQ1qEBwiA0EANgIIIAMgAjYCBCADIAI2AgAgASADQQxqIAAgAkEBahAiNgIEIAFBzMwANgIAIAFB7MwAQRYQFgALqAEBAX8jAEEgayIDJAAgASgCBCIBQQlPBEAgARADCyADIAE2AhAgAigCBCIBQQlPBEAgARADCyADIAE2AhggA0EANgIMAkBB3M4ALQAAQQFxBEBB2M4AKAIAIQEMAQtBA0H8KEEAEAUhAUHczgBBAToAAEHYzgAgATYCAAsgASAAKAIEQfAIIANBDGogA0EQahAEGiADKAIMIgAEQCAAEAELIANBIGokAAv/AwIEfwF8IwBBEGsiBCQAIAQgAjYCCCAEQQA2AgQCQEHEzgAtAABBAXEEQEHAzgAoAgAhAgwBC0ECQZwoQQAQBSECQcTOAEEBOgAAQcDOACACNgIACwJ/IAIgASgCBEGKCSAEQQRqIARBCGoQBCIIRAAAAAAAAPBBYyAIRAAAAAAAAAAAZnEEQCAIqwwBC0EACyEFIAQoAgQhAiAAIAU2AgQgAEGkzwA2AgAgAgRAIAIQAQsjAEEgayICJAAgACgCBCIFQQlPBEAgBRADCyACIAU2AhAgAygCBCADLAALIgUgBUEASCIHGyIFQQRqECwiBiAFNgIAIAZBBGogAygCACADIAcbIAUQIhogAiAGNgIYIAJBADYCDAJAQczOAC0AAEEBcQRAQcjOACgCACEDDAELQQNBpChBABAFIQNBzM4AQQE6AABByM4AIAM2AgALIAMgASgCBEH7CiACQQxqIAJBEGoQBBogAigCDCIDBEAgAxABCyACQSBqJAAgACgCBCIAQQlPBEAgABADCyAEIAA2AgggBEEANgIEAkBBvM4ALQAAQQFxBEBBuM4AKAIAIQAMAQtBAkGMKEEAEAUhAEG8zgBBAToAAEG4zgAgADYCAAsgACABKAIEQZcJIARBBGogBEEIahAEGiAEKAIEIgAEQCAAEAELIARBEGokAAscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAPC8sDAQJ/QbAmQcQmQeAmQQBB8CZBAUHzJkEAQfMmQQBBrRFB9SZBAhAYQbAmQQJB+CZBnCdBA0EEEBdBCBAcIgBBADYCBCAAQQU2AgBBCBAcIgFBADYCBCABQQY2AgBBsCZB6QhBlCdBnCdBByAAQZQnQaAnQQggARAKQQgQHCIAQQA2AgQgAEEJNgIAQQgQHCIBQQA2AgQgAUEKNgIAQbAmQfQKQZQnQZwnQQcgAEGUJ0GgJ0EIIAEQCkEIEBwiAEEANgIEIABBCzYCAEEIEBwiAUEANgIEIAFBDDYCAEGwJkHXCEGUJ0GcJ0EHIABBlCdBoCdBCCABEApBCBAcIgBBADYCBCAAQQ02AgBBsCZBgAhBB0GwJ0HMJ0EOIABBAEEAEAdBCBAcIgBBADYCBCAAQQ82AgBBsCZB8wlBBkHgJ0H4J0EQIABBAEEAEAdBCBAcIgBBADYCBCAAQRE2AgBBsCZBgApBAkGAKEGIKEESIABBAEEAEAdBCBAcIgBBADYCBCAAQRM2AgBBsCZB5wpBAkGAKEGIKEESIABBAEEAEAdBCBAcIgBBADYCBCAAQRQ2AgBBsCZBwwhBAkGUKEGcJ0EVIABBAEEAEAcLBwAgACgCBAsFAEGzCQsWACAARQRAQQAPCyAAQbzHABAgQQBHCxoAIAAgASgCCCAFEB4EQCABIAIgAyAEEDwLCzcAIAAgASgCCCAFEB4EQCABIAIgAyAEEDwPCyAAKAIIIgAgASACIAMgBCAFIAAoAgAoAhQRCQALpwEAIAAgASgCCCAEEB4EQAJAIAEoAgQgAkcNACABKAIcQQFGDQAgASADNgIcCw8LAkAgACABKAIAIAQQHkUNAAJAIAIgASgCEEcEQCABKAIUIAJHDQELIANBAUcNASABQQE2AiAPCyABIAI2AhQgASADNgIgIAEgASgCKEEBajYCKAJAIAEoAiRBAUcNACABKAIYQQJHDQAgAUEBOgA2CyABQQQ2AiwLC4sCACAAIAEoAgggBBAeBEACQCABKAIEIAJHDQAgASgCHEEBRg0AIAEgAzYCHAsPCwJAIAAgASgCACAEEB4EQAJAIAIgASgCEEcEQCABKAIUIAJHDQELIANBAUcNAiABQQE2AiAPCyABIAM2AiACQCABKAIsQQRGDQAgAUEAOwE0IAAoAggiACABIAIgAkEBIAQgACgCACgCFBEJACABLQA1QQFGBEAgAUEDNgIsIAEtADRFDQEMAwsgAUEENgIsCyABIAI2AhQgASABKAIoQQFqNgIoIAEoAiRBAUcNASABKAIYQQJHDQEgAUEBOgA2DwsgACgCCCIAIAEgAiADIAQgACgCACgCGBEIAAsLbAECfyMAQRBrIgMkACABIAAoAgQiBEEBdWohASAAKAIAIQAgBEEBcQRAIAEoAgAgAGooAgAhAAsgAyACNgIMIANBpM8ANgIIIAEgA0EIaiAAEQAAIAMoAgwiAEEJTwRAIAAQAgsgA0EQaiQAC40FAQR/IwBBQGoiBCQAAkAgAUGYyQBBABAeBEAgAkEANgIAQQEhBQwBCwJAIAAgASAALQAIQRhxBH9BAQUgAUUNASABQYzHABAgIgNFDQEgAy0ACEEYcUEARwsQHiEGCyAGBEBBASEFIAIoAgAiAEUNASACIAAoAgA2AgAMAQsCQCABRQ0AIAFBvMcAECAiBkUNASACKAIAIgEEQCACIAEoAgA2AgALIAYoAggiAyAAKAIIIgFBf3NxQQdxDQEgA0F/cyABcUHgAHENAUEBIQUgACgCDCAGKAIMQQAQHg0BIAAoAgxBjMkAQQAQHgRAIAYoAgwiAEUNAiAAQfDHABAgRSEFDAILIAAoAgwiA0UNAEEAIQUgA0G8xwAQICIBBEAgAC0ACEEBcUUNAgJ/IAYoAgwhAEEAIQICQANAQQAgAEUNAhogAEG8xwAQICIDRQ0BIAMoAgggASgCCEF/c3ENAUEBIAEoAgwgAygCDEEAEB4NAhogAS0ACEEBcUUNASABKAIMIgBFDQEgAEG8xwAQICIBBEAgAygCDCEADAELCyAAQazIABAgIgBFDQAgACADKAIMED0hAgsgAgshBQwCCyADQazIABAgIgEEQCAALQAIQQFxRQ0CIAEgBigCDBA9IQUMAgsgA0HcxgAQICIBRQ0BIAYoAgwiAEUNASAAQdzGABAgIgBFDQEgAigCACEDIARBCGpBAEE4ECQaIAQgA0EARzoAOyAEQX82AhAgBCABNgIMIAQgADYCBCAEQQE2AjQgACAEQQRqIANBASAAKAIAKAIcEQYAIAQoAhwiAEEBRgRAIAIgBCgCFEEAIAMbNgIACyAAQQFGIQUMAQtBACEFCyAEQUBrJAAgBQsxACAAIAEoAghBABAeBEAgASACIAMQPg8LIAAoAggiACABIAIgAyAAKAIAKAIcEQYACxgAIAAgASgCCEEAEB4EQCABIAIgAxA+CwukAQECfyMAQUBqIgMkAAJ/QQEgACABQQAQHg0AGkEAIAFFDQAaQQAgAUHcxgAQICIBRQ0AGiADQQhqQQBBOBAkGiADQQE6ADsgA0F/NgIQIAMgADYCDCADIAE2AgQgA0EBNgI0IAEgA0EEaiACKAIAQQEgASgCACgCHBEGACADKAIcIgBBAUYEQCACIAMoAhQ2AgALIABBAUYLIQQgA0FAayQAIAQLCgAgACABQQAQHgtOAgF/AXwjAEEQayICJAAgAkEANgIMIAEoAgRBpMkAIAJBDGoQCSEDIAIoAgwiAQRAIAEQAQsgACADRAAAAAAAAAAAYjoAOCACQRBqJAALNwEBfyMAQRBrIgIkACACIAEtADg2AgggAEGkyQAgAkEIahAINgIEIABBpM8ANgIAIAJBEGokAAuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECIaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECIaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwUAEBAAC50BAQJ/IwBBEGsiAiQAQcQAEBwhASAAKAIEIgBBCU8EQCAAEAMLIAIgADYCCCABQZQnIAJBCGoQCDYCBCABQaTPADYCACABQQI2AhwgAUGkzwA2AhggAUECNgIUIAFBpM8ANgIQIAFBAjYCDCABQaTPADYCCCABQQA6ACAgAUKAgICAMDcCPCABQQA7ADcgAUEAOwArIAJBEGokACABC54FAgZ+BH8gASABKAIAQQdqQXhxIgFBEGo2AgAgACELIAEpAwAhAyABKQMIIQcjAEEgayIBJAAgB0L///////8/gyEFAn4gB0IwiEL//wGDIgSnIglBgfgAa0H9D00EQCAFQgSGIANCPIiEIQIgCUGA+ABrrSEEAkAgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILQgAgAiACQv////////8HViIAGyECIACtIAR8DAELAkAgAyAFhFANACAEQv//AVINACAFQgSGIANCPIiEQoCAgICAgIAEhCECQv8PDAELQv8PIAlB/ocBSw0AGkIAQYD4AEGB+AAgBFAiCBsiCiAJayIAQfAASg0AGiADIQIgBSAFQoCAgICAgMAAhCAIGyIEIQYCQEGAASAAayIIQcAAcQRAIAIgCEFAaq2GIQZCACECDAELIAhFDQAgBiAIrSIFhiACQcAAIAhrrYiEIQYgAiAFhiECCyABIAI3AxAgASAGNwMYAkAgAEHAAHEEQCAEIABBQGqtiCEDQgAhBAwBCyAARQ0AIARBwAAgAGuthiADIACtIgKIhCEDIAQgAoghBAsgASADNwMAIAEgBDcDCCABKQMIQgSGIAEpAwAiA0I8iIQhAgJAIAkgCkcgASkDECABKQMYhEIAUnGtIANC//////////8Pg4QiA0KBgICAgICAgAhaBEAgAkIBfCECDAELIANCgICAgICAgIAIUg0AIAJCAYMgAnwhAgsgAkKAgICAgICACIUgAiACQv////////8HViIAGyECIACtCyEDIAFBIGokACALIAdCgICAgICAgICAf4MgA0I0hoQgAoS/OQMAC0MBAn8jAEEQayICJAAgAiABNgIMIAJBpM8ANgIIIAJBCGogABEBACEDIAIoAgwiAUEJTwRAIAEQAgsgAkEQaiQAIAMLBABCAAsEAEEAC/YCAQh/IwBBIGsiAyQAIAMgACgCHCIENgIQIAAoAhQhBSADIAI2AhwgAyABNgIYIAMgBSAEayIBNgIUIAEgAmohBUECIQcCfwJAAkACQCAAKAI8IANBEGoiAUECIANBDGoQDCIEBH9BuNgAIAQ2AgBBfwVBAAsEQCABIQQMAQsDQCAFIAMoAgwiBkYNAiAGQQBIBEAgASEEDAQLIAEgBiABKAIEIghLIglBA3RqIgQgBiAIQQAgCRtrIgggBCgCAGo2AgAgAUEMQQQgCRtqIgEgASgCACAIazYCACAFIAZrIQUgACgCPCAEIgEgByAJayIHIANBDGoQDCIGBH9BuNgAIAY2AgBBfwVBAAtFDQALCyAFQX9HDQELIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhAgAgwBCyAAQQA2AhwgAEIANwMQIAAgACgCAEEgcjYCAEEAIAdBAkYNABogAiAEKAIEawshCiADQSBqJAAgCguKAQEBfyAABEAgACwAN0EASARAIAAoAiwQGQsgACwAK0EASARAIAAoAiAQGQsgACgCHCIBQQlPBEAgARACIABBADYCHAsgACgCFCIBQQlPBEAgARACIABBADYCFAsgACgCDCIBQQlPBEAgARACIABBADYCDAsgACgCBCIBQQlPBEAgARACCyAAEBkLCyQBAn8gACgCBCIAECpBAWoiARAsIgIEfyACIAAgARAiBUEACwvrHAMMfwJ8AX0jAEFAaiIEJAAgBEHoAhAcIgI2AjAgBELigoCAgK2AgIB/NwI0IAJBkB1B4gIQIkEAOgDiAiAEQTBqIgJB/BBB5xAgAS0AOBsQGhogAkGRIBAaGgJAAkACQAJAAkAgASgCPEEBaw4DAAECAwsgBEEgaiENIAEoAkAhDCMAQaABayIFJAAjAEEQayIKJAAgCkEANgIMIApCADcCBCAKQTgQHCIDNgIEIAogA0E4aiICNgIMIANBAEE4ECQaIAogAjYCCAJ/IAVBlAFqIgtBADYCCCALQgA3AgAgC0HUABAcIgI2AgQgCyACNgIAIAsgAkHUAGoiBzYCCAJAAkAgCigCCCIDIAooAgQiCEYEQCACQQBB1AAQJEHUAGohAgwBCyADIAhrIglBAEgNAQNAIAJBADYCCCACQgA3AgAgAiAJEBwiBjYCBCACIAY2AgAgAiAGIAlqIgM2AgggBiAIIAkQIhogAiADNgIEIAJBDGoiAiAHRw0ACwsgCyACNgIEIAsMAQsgAkEANgIIIAJCADcCAEHiCBBTAAshByAKKAIEIgIEQCAKIAI2AgggAhAZC0EAIQIDQCAHKAIAIAJBDGxqIQgCQCACRQRAQQAhCQNAIAkgCWy4nyIORAAAAAAAABxAZQRAIAgoAgAgCUEDdGogDiAOmqJEAAAAAAAAMkCjEDdEAyQlRbkbkj+iIg45AwAgDiAPoCEPCyAJQQFqIglBB0cNAAsMAQsgAiACbCIDuJ8iDkQAAAAAAAAcQGUEQCAOIA6aokQAAAAAAAAyQKMQNyEOIAgoAgAgDkQDJCVFuRuSP6IiDjkDACAOIA+gIQ8LQQEhCQNAIAkgCWwgA2q4nyIORAAAAAAAABxAZQRAIAgoAgAgCUEDdGogDiAOmqJEAAAAAAAAMkCjEDdEAyQlRbkbkj+iIg45AwAgDkQAAAAAAAAQQKIgD6AhDwsgCUEBaiIJQQdHDQALCyACQQFqIgJBB0cNAAsgBygCACEHQQAhAgNAIAcgAkEMbGooAgAhCEEAIQlBACEDA0AgCCAJQQN0aiIGIAYrAwAgD6M5AwAgBiAGKwMIIA+jOQMIIAlBAmohCSADQQJqIgNBBkcNAAsgCCAJQQN0aiIDIAMrAwAgD6M5AwAgAkEBaiICQQdHDQALIApBEGokACAFQQA6AIgBIAVBADoAkwFBeiEJA0AgCSAMbCEGIAkgCUEfdSICcyACa0EMbCEIQXohAgNAAkAgBSgClAEgCGooAgAgAiACQR91IgNzIANrQQN0aisDALYiEEMAAAAAXkUNACAFQRxqIgMgBhAvIAUgA0GvFRAmIgMoAgg2AjAgBSADKQIANwMoIANCADcCACADQQA2AgggBUFAayAFQShqQbYREBoiAygCCDYCACAFIAMpAgA3AzggA0IANwIAIANBADYCCCAFQRBqIgMgAiAMbBAvIAUgBUE4aiAFKAIQIAMgBSwAGyIHQQBIIgMbIAUoAhQgByADGxAbIgMoAgg2AlAgBSADKQIANwNIIANCADcCACADQQA2AgggBSAFQcgAakG6ERAaIgMoAgg2AmAgBSADKQIANwNYIANCADcCACADQQA2AgggBUEEaiIDIBAQLiAFIAVB2ABqIAUoAgQgAyAFLAAPIgdBAEgiAxsgBSgCCCAHIAMbEBsiAygCCDYCcCAFIAMpAgA3A2ggA0IANwIAIANBADYCCCAFIAVB6ABqQasREBoiAygCCDYCgAEgBSADKQIANwN4IANCADcCACADQQA2AgggBUGIAWogBSgCeCAFQfgAaiAFLACDASIHQQBIIgMbIAUoAnwgByADGxAbGiAFLACDAUEASARAIAUoAngQGQsgBSwAc0EASARAIAUoAmgQGQsgBSwAD0EASARAIAUoAgQQGQsgBSwAY0EASARAIAUoAlgQGQsgBSwAU0EASARAIAUoAkgQGQsgBSwAG0EASARAIAUoAhAQGQsgBSwAQ0EASARAIAUoAjgQGQsgBSwAM0EASARAIAUoAigQGQsgBSwAJ0EATg0AIAUoAhwQGQsgAkEBaiICQQdHDQALIAlBAWoiCUEHRw0ACyMAQRBrIggkAEHzHxAqIQwCfyAFQYgBaiILLQALQQd2BEAgCygCBAwBCyALLQALQf8AcQshBgJ/An8jAEEQayIHJAAgBUH4AGohCiAGIAxqIglB9////wdNBEACQCAJQQtJBEAgCkIANwIAIApBADYCCCAKIAotAAtBgAFxIAlB/wBxcjoACyAKIAotAAtB/wBxOgALDAELIAlBC08EfyAJQQhqQXhxIgIgAkEBayICIAJBC0YbBUEKC0EBaiIDEBwhAiAKIAooAghBgICAgHhxIANB/////wdxcjYCCCAKIAooAghBgICAgHhyNgIIIAogAjYCACAKIAk2AgQLIAdBEGokACAKDAELECcACyICLQALQQd2BEAgAigCAAwBCyACCyICQfMfIAwQIyACIAxqIgICfyALLQALQQd2BEAgCygCAAwBCyALCyAGECMgAiAGakEBEEMgCEEQaiQAIA0gCkHNIxAaIgIpAgA3AgAgDSACKAIINgIIIAJCADcCACACQQA2AgggBSwAgwFBAEgEQCAFKAJ4EBkLIAUsAJMBQQBIBEAgBSgCiAEQGQsgBSgClAEiBwRAIAUoApgBIgMgByICRwRAA0AgA0EMayICKAIAIggEQCADQQhrIAg2AgAgCBAZCyACIgMgB0cNAAsgBSgClAEhAgsgBSAHNgKYASACEBkLIAVBoAFqJAAgBEEwaiAEKAIgIA0gBCwAKyIDQQBIIgIbIAQoAiQgAyACGxAbGiAELAAr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AAsLvUQWAEGACAukH3NldEJlYXV0eQAtKyAgIDBYMHgALTBYKzBYIDBYLTB4KzB4IDB4AHVuc2lnbmVkIHNob3J0AHVuc2lnbmVkIGludABpbml0AGZsb2F0AHVpbnQ2NF90AGJsdXJSYWRpdXMAdmVjdG9yAG1pcnJvcgBhdHRhY2hTaGFkZXIAZGVsZXRlU2hhZGVyAGNyZWF0ZVNoYWRlcgBjb21waWxlU2hhZGVyAHVuc2lnbmVkIGNoYXIAc3RkOjpleGNlcHRpb24AbmFuAGxpbmtQcm9ncmFtAGRlbGV0ZVByb2dyYW0AY3JlYXRlUHJvZ3JhbQBib29sAHNldFdhdGVyTWFyawBzdG9wV2F0ZXJNYXJrAHVuc2lnbmVkIGxvbmcAc3RkOjp3c3RyaW5nAGJhc2ljX3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBpbmYAJWYAY2xvc2UAZG91YmxlAHZiTW9kZQBzaGFkZXJTb3VyY2UAdm9pZABzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbAE5BTgBJTkYAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ2NF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ2NF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AdmVjMiBjID0gdl90ZXhDb29yZDsAdmVjMiBjID0gdmVjMigxLjAgLSB2X3RleENvb3JkLngsIHZfdGV4Q29vcmQueSk7AEFsbEluMQAuAC4wLAAuMCkqbykqAChudWxsKQApKm8ueSk7ICAgIHZlYzIgY29vcmQyID0gdmVjMihmbG9hdCgAICAgIGMgPSB2ZWMyKHZfdGV4Q29vcmQueCwgMS4wIC0gdl90ZXhDb29yZC55KTsgICAgdmVjMiBjb29yZDEgPSB2ZWMyKGZsb2F0KAApLCAoYy55IC1jb29yZDEueSkgLyBvLnkgLyBmbG9hdCgAKSpvLnkpOyAgICBpZiAoYy54ID4gY29vcmQxLnggJiYgYy54IDwgY29vcmQyLnggJiYgYy55ID4gY29vcmQxLnkgJiYgYy55IDwgY29vcmQyLnkpIHsgICAgICB2ZWM0IHdhdGVyQ29sb3IgPSB0ZXh0dXJlKHdhdGVyTWFyaywgdmVjMigoYy54IC0gY29vcmQxLngpICAvIG8ueCAvIGZsb2F0KAApICogby54LCBmbG9hdCgAb3V0Q29sb3IucmdiICs9IHZlYzMoACk7ICAgICAgIHZlYzMgc21vb3RoQ29sb3IgPSBvdXRDb2xvci5yZ2IgKyAob3V0Q29sb3IucmdiLXZlYzMoaGlnaFBhc3MpKSphbHBoYSowLjE7ICAgICAgIHNtb290aENvbG9yID0gY2xhbXAocG93KHNtb290aENvbG9yLCB2ZWMzKABnKz1HKGMsdmVjMigAICAgICAgdmVjMiBvZmZzZXQgPSB2ZWMyKABdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoADsgACkpLCB2ZWMzKDAuMCksIHZlYzMoMS4wKSk7ICAgICAgdmVjMyBzY3JlZW4gPSB2ZWMzKDEuMCkgLSAodmVjMygxLjApLXNtb290aENvbG9yKSAqICh2ZWMzKDEuMCktb3V0Q29sb3IucmdiKTsgICAgICAgdmVjMyBsaWdodGVuID0gbWF4KHNtb290aENvbG9yLCBvdXRDb2xvci5yZ2IpOyAgICAgICB2ZWMzIGJlYXV0eUNvbG9yID0gbWl4KG1peChvdXRDb2xvci5yZ2IsIHNjcmVlbiwgYWxwaGEpLCBsaWdodGVuLCBhbHBoYSk7ICAgICAgb3V0Q29sb3IucmdiID0gbWl4KG91dENvbG9yLnJnYiwgYmVhdXR5Q29sb3IsIAAKICAgICAgY29uc3QgbWF0MyBzYXR1cmF0ZU1hdHJpeCA9IG1hdDMoMS4xMTAyLC0wLjA1OTgsLTAuMDYxLC0wLjA3NzQsMS4wODI2LC0wLjExODYsLTAuMDIyOCwtMC4wMjI4LDEuMTc3Mik7CiAgICAgIHZlYzMgd2FybUNvbG9yID0gb3V0Q29sb3IucmdiICogc2F0dXJhdGVNYXRyaXg7CiAgICAgIG91dENvbG9yLnJnYiA9IG1peChvdXRDb2xvci5yZ2IsIHdhcm1Db2xvciwgACAgICAgIHNhbXBsZUNvbG9yID0gc2FtcGxlQ29sb3IgLyA2Mi4wOyAgICAgICBmbG9hdCBoaWdoUGFzcyA9IG91dENvbG9yLmcgLSBzYW1wbGVDb2xvciArIDAuNTsgICAgICAgY29uc3QgaGlnaHAgdmVjMyBXID0gdmVjMygwLjI5OSwwLjU4NywwLjExNCk7ICAgICAgZmxvYXQgbHVtaW5hbmNlID0gZG90KG91dENvbG9yLnJnYiwgVyk7ICAgICAgIGZsb2F0IGFscGhhID0gcG93KGx1bWluYW5jZSwgAF0pLmcgKiAAKSkpOyAgICAgIG91dENvbG9yID0gbWl4KG91dENvbG9yLHdhdGVyQ29sb3IsICB3YXRlckNvbG9yLmEpOyAgICB9ICAgIAApOyAgICAAKTsgICAgICB2ZWMyIGJsdXJDb29yZGluYXRlc1syNF07ICAgICAgACAgICAgIGZsb2F0IHNhbXBsZUNvbG9yID0gb3V0Q29sb3IuZyAqIDIyLjA7ICAgICAgIAAjdmVyc2lvbiAzMDAgZXMKICAgIHByZWNpc2lvbiBoaWdocCBmbG9hdDsKICAgIHVuaWZvcm0gc2FtcGxlcjJEIGZyYW1lOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgbWFzazsKICAgIHVuaWZvcm0gc2FtcGxlcjJEIGJnOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgd2F0ZXJNYXJrOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgbGFzdE1hc2s7CiAgICBpbiB2ZWMyIHZfdGV4Q29vcmQ7CiAgICBvdXQgdmVjNCBvdXRDb2xvcjsKICAgIHZlYzQgRyh2ZWMyIGMsdmVjMiBzKXsKICAgICAgcmV0dXJuIHRleHR1cmUoZnJhbWUsdGV4dHVyZShtYXNrLGMrcykuYT4wLjM/YzpjK3MpOwogICAgfQogICAgdm9pZCBtYWluKCkgewogICAgICAACiAgICB2ZWM0IGcgPSB2ZWM0KDAuMCk7CiAgICAACiAgICAgIGMueSA9IDEuMCAtIGMueTsKICAgICAgdmVjNCBzcmNfY29sb3IgPSB0ZXh0dXJlKGZyYW1lLCBjKTsKICAgICAgZmxvYXQgYSA9IHRleHR1cmUobWFzaywgYykuYTsKICAgICAgYSA9IGE8MC41PzIuMCphKmE6MS4wLTIuMCooMS4wLWEpKigxLjAtYSk7CiAgICAgIC8vIGZsb2F0IGEyID0gdGV4dHVyZShsYXN0TWFzaywgYykuYTsKICAgICAgLy8gYTIgPSBhMjwwLjU/Mi4wKmEyKmEyOjEuMC0yLjAqKDEuMC1hMikqKDEuMC1hMik7CiAgICAgIC8vIGZsb2F0IGRlbHRhID0gYSAtIGEyOwogICAgICAvLyBpZiAoZGVsdGEgPCAwLjI1ICYmIGRlbHRhID4gLTAuMjUpCiAgICAgIC8vIHsKICAgICAgLy8gICAgIGEgPSBhICsgMC41KmRlbHRhOwogICAgICAvLyB9CiAgICAgIAogICAgICB2ZWMyIG8gPSAxLjAgLyB2ZWMyKHRleHR1cmVTaXplKGZyYW1lLCAwKSk7CiAgICAACiAgICAgIG91dENvbG9yID0gZzsKICAAI3ZlcnNpb24gMzAwIGVzCmluIHZlYzIgYV9wb3NpdGlvbjsKaW4gdmVjMiBhX3RleENvb3JkOwpvdXQgdmVjMiB2X3RleENvb3JkOwp2b2lkIG1haW4oKSB7CiAgZ2xfUG9zaXRpb24gPSB2ZWM0KGFfcG9zaXRpb24ueCwgYV9wb3NpdGlvbi55LCAwLCAxKTsKICB2X3RleENvb3JkID0gYV90ZXhDb29yZDsKfQoAc2V0QmVhdXR5ICVmICVmICVmICVmICVmCgBvdXRDb2xvciA9IHNyY19jb2xvcjsKAG91dENvbG9yID0gbWl4KHRleHR1cmUoYmcsIGMpLHNyY19jb2xvcixhKTsKAG91dENvbG9yID0gbWl4KHZlYzQoMC4wLDEuMCwwLjAsMS4wKSxzcmNfY29sb3IsYSk7CgA2QWxsSW4xAFAlAAAoEwAAUDZBbGxJbjEAAAAA1CUAADgTAAAAAAAAMBMAAFBLNkFsbEluMQAAANQlAABUEwAAAQAAADATAABwcAB2AHZwAEQTAACUEwAATjEwZW1zY3JpcHRlbjN2YWxFAABQJQAAgBMAAHBwcAB2cHBwAEGwJwskjCQAAEQTAABAJQAAQCUAAEAlAABAJQAAQCUAAHZwcGRkZGRkAEHgJwvICIwkAABEEwAAQCUAAEAlAABAJQAAQCUAAHZwcGRkZGQAjCQAAEQTAAB2cHAAjCQAAJQTAACUEwAARBMAAJQTAADsJAAAjCQAAJQTAABwFAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAAFAlAAAwFAAAlBMAAIwkAACUEwAAlBMAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0loTlNfMTFjaGFyX3RyYWl0c0loRUVOU185YWxsb2NhdG9ySWhFRUVFAABQJQAAiBQAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVOU185YWxsb2NhdG9ySXdFRUVFAABQJQAA0BQAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEc05TXzExY2hhcl90cmFpdHNJRHNFRU5TXzlhbGxvY2F0b3JJRHNFRUVFAAAAUCUAABgVAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRGlOU18xMWNoYXJfdHJhaXRzSURpRUVO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"),S(0,v,t,(function(e){r(e.instance)})).catch(n),{}}(),ct=e=>(ct=At.B)(e),gt=e=>(gt=At.D)(e),dt=e=>(dt=At.E)(e),ut=e=>(ut=At.F)(e);i.dynCall_jiji=(e,t,r,n,o)=>(i.dynCall_jiji=At.G)(e,t,r,n,o),i._vertexShaderSource=9872;function lt(){function e(){at||(at=!0,i.calledRun=!0,_||(F(B),r(i),i.onRuntimeInitialized&&i.onRuntimeInitialized(),function(){if(i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)e=i.postRun.shift(),D.unshift(e);var e;F(D)}()))}O>0||(!function(){if(i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)e=i.preRun.shift(),w.unshift(e);var e;F(w)}(),O>0||(i.setStatus?(i.setStatus("Running..."),setTimeout((function(){setTimeout((function(){i.setStatus("")}),1),e()}),1)):e()))}if(Q=function e(){at||lt(),at||(Q=e)},i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return lt(),a}})(),allin1_default=Module,MediaPipe=class{constructor(e,t){__publicField(this,"canvas"),__publicField(this,"locateFile"),__publicField(this,"_glName"),__publicField(this,"_solutionWasm"),__publicField(this,"ctx"),__publicField(this,"fileDownloader"),__publicField(this,"startTime"),__publicField(this,"lastTimestamp"),__publicField(this,"pl",{onResults:e=>this.onResults(e.get(0).glName)}),this.locateFile=t=>`${e}/${t}`.replace(/([^:]\/)\/+/g,"$1"),this.fileDownloader=t}bindTexture(){var e;null==(e=this.ctx)||e.activeTexture(this.ctx.TEXTURE0),this.bindTexture2d(this._glName)}async initialize(){this._solutionWasm=new this.SolutionWasm;const e=new this.StringList;e.push_back("segmentation_mask");const t=this.PacketListener.implement(this.pl);return this._solutionWasm.attachMultiListener(e,t),e.delete(),this._solutionWasm.loadGraph(await this.fileDownloader.download(this.locateFile("selfie_segmentation.binarypb"),{type:"arraybuffer"})),this}setCanvas(e){this.canvas=e,this.createContext(e,!0,!0,{}),this._glName=this.createTexture()}fetchResponse(e){return this.fileDownloader.downloadWithFetch(e,"fetch-response")}loadWasm(e,t){return this.fileDownloader.loadWasm(e,t)}async changeModel(e="selfie_segmentation_landscape.tflite"){e="string"==typeof e?await this.fileDownloader.download(this.locateFile(e),{type:"arraybuffer"}):e,this._solutionWasm.overrideFile("third_party/mediapipe/modules/selfie_segmentation/selfie_segmentation_landscape.tflite",e);const t=new this.GraphOptionChangeRequestList;t.push_back({calculatorIndex:1,calculatorName:"",calculatorType:"GlScalerCalculator",fieldName:"flip_horizontal",valueBoolean:!1,valueNumber:0,valueString:""}),t.push_back({calculatorIndex:0,calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelSelection",fieldName:"int_value",valueBoolean:!1,valueNumber:1,valueString:""}),t.push_back({calculatorIndex:0,calculatorType:"InferenceCalculator",calculatorName:"",fieldName:"use_cpu_inference",valueBoolean:!1,valueNumber:0,valueString:""}),this._solutionWasm.changeOptions(t),this.startTime=Date.now()}send(e,t){const r=new this.PacketDataList,n=Date.now()-this.startTime;this.lastTimestamp&&this.lastTimestamp>=n?this.lastTimestamp++:this.lastTimestamp=n,r.pushTexture2d({stream:"input_frames_gpu",timestamp:this.lastTimestamp,glName:this._glName,width:e,height:t}),this._solutionWasm.send(r),r.delete()}close(){var e,t,r;null==(e=this.canvas)||delete e.getContext,delete this.readyPromiseResolve,delete this.readyPromiseReject,this.pl.onResults=null,delete this.onResults,null==(t=this.deleteTexture)||t.call(this,this._glName),null==(r=this._solutionWasm)||r.delete();for(const e of Object.keys(this))delete this[e]}},USER_AGENT="undefined"==typeof navigator?"":navigator.userAgent,isUserAgentMatch=e=>new RegExp(e,"i").test(USER_AGENT),getBrowserVersion=e=>{if(isUserAgentMatch(e)){const t=new RegExp(`${e}\\/([\\d.]+)`),r=USER_AGENT.match(t);if(r&&r[1])return r[1]}return""},getBrowserMajorVersion=e=>{if(isUserAgentMatch(e)){const t=new RegExp(`${e}\\/(\\d+)`),r=USER_AGENT.match(t);if(r&&r[1])return parseFloat(r[1])}return NaN},webkitVersionMap=/AppleWebKit\/([\d.]+)/i.exec(USER_AGENT),appleWebkitVersion=webkitVersionMap?parseFloat(webkitVersionMap[1]):NaN,IS_IPAD=isUserAgentMatch("iPad"),IS_IPAD_PRO="undefined"!=typeof navigator&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&isUserAgentMatch("Macintosh"),IS_IPHONE=isUserAgentMatch("iPhone")&&!IS_IPAD,IS_IPOD=isUserAgentMatch("iPod"),IS_IOS=IS_IPHONE||IS_IPAD||IS_IPOD||IS_IPAD_PRO,IS_ANDROID=isUserAgentMatch("Android"),ANDROID_VERSION=function(){if(IS_ANDROID){const e=USER_AGENT.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(e){const t=e[1]&&parseFloat(e[1]),r=e[2]&&parseFloat(e[2]);if(t&&r)return parseFloat(`${e[1]}.${e[2]}`);if(t)return t}}return NaN}(),IS_OLD_ANDROID=IS_ANDROID&&isUserAgentMatch("webkit")&&ANDROID_VERSION<2.3,IS_NATIVE_ANDROID=IS_ANDROID&&ANDROID_VERSION<5&&appleWebkitVersion<537,IS_FIREFOX=isUserAgentMatch("Firefox"),FIREFOX_VERSION=getBrowserVersion("Firefox"),FIREFOX_MAJOR_VERSION=getBrowserMajorVersion("Firefox"),IS_EDGE=isUserAgentMatch("Edge"),EDGE_VERSION=getBrowserVersion("Edge"),IS_EDG=isUserAgentMatch("Edg"),EDG_VERSION=getBrowserVersion("Edg"),EDG_MAJOR_VERSION=getBrowserMajorVersion("Edg"),IS_SOGOUM=isUserAgentMatch("SogouMobileBrowser"),SOGOUM_VERSION=getBrowserVersion("SogouMobileBrowser"),IS_SOGOU=isUserAgentMatch("MetaSr\\s"),SOGOU_VERSION=getBrowserVersion("MetaSr\\s"),IS_TBS=isUserAgentMatch("TBS"),TBS_VERSION=getBrowserVersion("TBS"),IS_XWEB=isUserAgentMatch("XWEB"),XWEB_VERSION=getBrowserVersion("XWEB"),IS_IE8=isUserAgentMatch("MSIE\\s8\\.0"),IS_IE=isUserAgentMatch("MSIE\\/\\d+"),IE_VERSION=function(){if(IS_IE){const e=/MSIE\s(\d+)\.\d/.exec(USER_AGENT);let t=e&&parseFloat(e[1]);return!t&&/Trident\/7.0/i.test(USER_AGENT)&&/rv:11.0/.test(USER_AGENT)&&(t=11),t}return NaN}(),IS_WECHAT=isUserAgentMatch("(micromessenger|webbrowser)"),WECHAT_VERSION=getBrowserVersion("MicroMessenger"),IS_X5MQQB=!IS_TBS&&isUserAgentMatch("MQQBrowser")&&isUserAgentMatch("COVC"),IS_MQQB=!IS_TBS&&isUserAgentMatch("MQQBrowser")&&!isUserAgentMatch("COVC"),MQQB_VERSION=IS_MQQB||IS_X5MQQB?getBrowserVersion("MQQBrowser"):"",IS_WQQB=!IS_TBS&&isUserAgentMatch(" QQBrowser"),WQQB_VERSION=getBrowserVersion(" QQBrowser"),IS_MACQQB=!IS_TBS&&isUserAgentMatch("QQBrowserLite"),MACQQB_VERSION=getBrowserVersion("QQBrowserLite"),IS_IPADQQB=!IS_TBS&&isUserAgentMatch("MQBHD"),IPADQQB_VERSION=getBrowserVersion("MQBHD"),IS_WIN=isUserAgentMatch("Windows"),IS_MAC=!IS_IOS&&isUserAgentMatch("MAC OS X"),IS_LINUX=!IS_ANDROID&&isUserAgentMatch("Linux"),IS_CHROME_OS=isUserAgentMatch("CrOS"),IS_WX=isUserAgentMatch("MicroMessenger"),IS_UCBROWSER=isUserAgentMatch("UCBrowser"),IS_ELECTRON=isUserAgentMatch("Electron"),IS_MIBROWSER=isUserAgentMatch("MiuiBrowser"),MI_VERSION=getBrowserVersion("MiuiBrowser"),IS_HUAWEIBROWSER=isUserAgentMatch("HuaweiBrowser"),IS_HUAWEI=isUserAgentMatch("Huawei")||isUserAgentMatch("HUAWEI"),IS_HONOR=isUserAgentMatch("Honor")||isUserAgentMatch("HONOR"),HUAWEI_VERSION=getBrowserVersion("HuaweiBrowser"),IS_SAMSUNGBROWSER=isUserAgentMatch("SamsungBrowser"),SAMSUNG_VERSION=getBrowserVersion("SamsungBrowser"),IS_OPPOBROWSER=isUserAgentMatch("HeyTapBrowser"),OPPO_VERSION=getBrowserVersion("HeyTapBrowser"),IS_VIVOBROWSER=isUserAgentMatch("VivoBrowser"),VIVO_VERSION=getBrowserVersion("VivoBrowser"),IS_OPENHARMONY=isUserAgentMatch("OpenHarmony"),OPENHARMONY_VERSION=getBrowserVersion("OpenHarmony"),getChromeMajorVersion=()=>getBrowserMajorVersion("Chrome"),IS_CHROMIUM_BASE=isUserAgentMatch("Chrome"),IS_CHROME=!IS_EDGE&&!IS_SOGOU&&!IS_SOGOUM&&!IS_TBS&&!IS_XWEB&&!IS_EDG&&!IS_WQQB&&!IS_MIBROWSER&&!IS_HUAWEIBROWSER&&!IS_SAMSUNGBROWSER&&!IS_OPPOBROWSER&&!IS_VIVOBROWSER&&IS_CHROMIUM_BASE,IS_HEADLESS_CHROME=isUserAgentMatch("HeadlessChrome"),CHROME_MAJOR_VERSION=getChromeMajorVersion(),CHROME_VERSION=getBrowserVersion("Chrome"),IS_SAFARI=!IS_CHROMIUM_BASE&&!IS_MQQB&&!IS_X5MQQB&&!IS_MACQQB&&!IS_IPADQQB&&isUserAgentMatch("Safari"),SAFARI_VERSION=getBrowserVersion("Version"),IS_ANDROID_WEBVIEW=/Android.*(wv|.0.0.0)/.test(USER_AGENT),IOS_VERSION=(()=>{if(IS_IPAD_PRO)return SAFARI_VERSION;if(IS_IOS){const e=USER_AGENT.match(/OS (\d+)_(\d+)/i);if(e&&e[1]){let t=e[1];return e[2]&&(t+=`.${e[2]}`),t}}return""})(),IOS_MAIN_VERSION=Number(IOS_VERSION.split(".")[0]),IS_IOS_13_OR_14=(()=>{const e=Number(IOS_VERSION.split(".")[0]);return 14===e||13===e})(),IS_LOCAL="undefined"!=typeof location&&("file:"===location.protocol||"localhost"===location.hostname||"127.0.0.1"===location.hostname),browserInfo=getBrowserInfo();function getBrowserInfo(){const e=new Map([[IS_FIREFOX,["Firefox",FIREFOX_VERSION]],[IS_EDG,["Edg",EDG_VERSION]],[IS_CHROME,["Chrome",CHROME_VERSION]],[IS_SAFARI,["Safari",SAFARI_VERSION]],[IS_TBS,["TBS",TBS_VERSION]],[IS_XWEB,["XWEB",XWEB_VERSION]],[IS_WECHAT&&IS_IPHONE,["WeChat",WECHAT_VERSION]],[IS_WQQB,["QQ(Win)",WQQB_VERSION]],[IS_MQQB,["QQ(Mobile)",MQQB_VERSION]],[IS_X5MQQB,["QQ(Mobile X5)",MQQB_VERSION]],[IS_MACQQB,["QQ(Mac)",MACQQB_VERSION]],[IS_IPADQQB,["QQ(iPad)",IPADQQB_VERSION]],[IS_MIBROWSER,["MI",MI_VERSION]],[IS_HUAWEIBROWSER,["HW",HUAWEI_VERSION]],[IS_SAMSUNGBROWSER,["Samsung",SAMSUNG_VERSION]],[IS_OPPOBROWSER,["OPPO",OPPO_VERSION]],[IS_VIVOBROWSER,["VIVO",VIVO_VERSION]],[IS_EDGE,["EDGE",EDGE_VERSION]],[IS_SOGOUM,["SogouMobile",SOGOUM_VERSION]],[IS_SOGOU,["Sogou",SOGOU_VERSION]]]);let t="unknown",r="unknown";return e.has(!0)&&([t,r]=e.get(!0)),{name:t,version:r}}var KV_REPORT_KEY_VIRTUAL_BACKGROUND_TYPE=570703,vbSeq=0,_VirtualBackground=class e{constructor(e){this.core=e,__publicField(this,"seq"),__publicField(this,"_core"),__publicField(this,"log"),__publicField(this,"preLoadPromise"),__publicField(this,"startResolve"),__publicField(this,"startReject"),__publicField(this,"mediaPipeSolutions"),__publicField(this,"assetsPath"),__publicField(this,"currentType"),__publicField(this,"onAbort"),__publicField(this,"isAborted",!1),vbSeq+=1,this.seq=vbSeq,this._core=e,this.log=e.log.createChild({id:`${this.getAlias()}${vbSeq}`}),this.log.info("created"),e.assetsPath&&(this.preLoadPromise=this.preload(e.assetsPath))}static isSupported(){if(CHROME_MAJOR_VERSION<90)return!1;const e=document.createElement("canvas").getContext("webgl2");return!!(e&&e instanceof WebGL2RenderingContext)}async preload(e="https://web.sdk.qcloud.com/trtc/webrtc/v5/assets/"){try{this._core.room.videoManager.Wasm||(this._core.room.videoManager.Wasm=await allin1_default()),this.assetsPath=`${e}/selfie_segmentation/`;const t=new MediaPipe(this.assetsPath,this._core.fileDownloader);t.onAbort=e=>{var t;this.core.kvStatManager.addEnum({key:KV_REPORT_KEY_VIRTUAL_BACKGROUND_TYPE,value:this.getKVTypeValue(!1,this.isAborted,"ABORT_IN_INFERENCE")}),this.isAborted=!0,this.log.error("mediaPipeSolutions abort",e),this.core.clearStarted(this,this.getGroup()),this.stop(),null==(t=this.onAbort)||t.call(this,e)},t.print=this.log.info.bind(this.log),t.printErr=this.log.warn.bind(this.log),this.mediaPipeSolutions=await(this.core.rtcDectection.isSIMDSupported()?selfie_segmentation_solution_simd_wasm_bin_default:selfie_segmentation_solution_wasm_bin_default)(t),await this.mediaPipeSolutions.initialize(),await this._core.room.videoManager.initVirtualBackground(this.mediaPipeSolutions)}catch(e){const{RtcError:t,ErrorCode:r}=this._core.errorModule;throw new t({code:r.INVALID_OPERATION,message:`VirtualBackground preload error, please check your assetsPath. detail: ${e}`})}}getName(){return e.Name}getAlias(){return"vb"}getValidateRule(e){switch(e){case"start":return startValidateRule(this._core);case"update":return updateValidateRule(this._core);case"stop":return stopValidateRule(this._core)}}getGroup(){return"vb"}getKVTypeValue(e=!1,t=!1,r="NONE"){let n=0;switch(this.currentType){case"blur":n|=0;break;case"image":n|=1;break;case"green":n|=2}switch(e&&(n|=256),t&&(n|=512),r){case"ABORT_IN_INFERENCE":n|=4096;break;case"ABORT_IN_VIDEO_MANAGER":n|=8192;break;case"OTHER":n|=61440}return n}async start(e){const{type:t="blur",src:r,blurLevel:n=3,onAbort:o}=e;this.currentType=t,this.onAbort=o;const{auth:i}=await authEffect({sdkAppId:e.sdkAppId,userId:e.userId,userSig:e.userSig,core:this._core});if(!i){const{RtcError:t,ErrorCodeDictionary:r}=this._core.errorModule,n=this._core.utils.isOverseaSdkAppId(e.sdkAppId)?"https://trtc.io/document/56025":"https://cloud.tencent.com/document/product/647/85386";throw new t({code:r.NEED_TO_BUY,messageParams:{value:"Virtual Background",url:n}})}return this.preLoadPromise||(this.preLoadPromise=this.preload(this._core.assetsPath)),await this.preLoadPromise,this.core.room.videoManager.setVirtualBackground({type:t,imageUrl:r,blurLevel:n,onAbort:e=>{var t;this.core.kvStatManager.addEnum({key:KV_REPORT_KEY_VIRTUAL_BACKGROUND_TYPE,value:this.getKVTypeValue(!0,this.isAborted,"ABORT_IN_VIDEO_MANAGER")}),this.isAborted=!0,this.core.clearStarted(this,this.getGroup()),this.stop(),delete this.preLoadPromise,null==(t=this.onAbort)||t.call(this,e)}}).then((()=>{this.core.kvStatManager.addEnum({key:KV_REPORT_KEY_VIRTUAL_BACKGROUND_TYPE,value:this.getKVTypeValue(!1,this.isAborted,"NONE")})})).catch((()=>{this.core.kvStatManager.addEnum({key:KV_REPORT_KEY_VIRTUAL_BACKGROUND_TYPE,value:this.getKVTypeValue(!0,this.isAborted,"OTHER")})}))}async update(e){const{type:t,src:r}=e;return t!==this.currentType&&(this.currentType=t),this.core.room.videoManager.setVirtualBackground({type:t,imageUrl:r,blurLevel:e.blurLevel}).then((()=>{this.core.kvStatManager.addEnum({key:KV_REPORT_KEY_VIRTUAL_BACKGROUND_TYPE,value:this.getKVTypeValue(!1,!1,"NONE")})})).catch((()=>{this.core.kvStatManager.addEnum({key:KV_REPORT_KEY_VIRTUAL_BACKGROUND_TYPE,value:this.getKVTypeValue(!0,!1,"OTHER")})}))}async stop(){return this.core.room.videoManager.setVirtualBackground()}};__publicField(_VirtualBackground,"Name","VirtualBackground");var VirtualBackground=_VirtualBackground,index_default=VirtualBackground;export{index_default as default};export{VirtualBackground};