trtc-sdk-v5 5.11.2-beta.5 → 5.11.2-wasm.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/av_processing.wasm +0 -0
- package/assets/worker.js +17 -0
- package/package.json +4 -6
- package/plugins/cdn-streaming/package.json +1 -1
- package/plugins/cross-room/package.json +1 -1
- package/plugins/custom-encryption/package.json +1 -1
- package/plugins/device-detector/package.json +1 -1
- package/plugins/small-stream-auto-switcher/package.json +1 -1
- package/plugins/video-decoder/package.json +1 -1
- package/plugins/video-effect/basic-beauty/package.json +1 -1
- package/plugins/video-effect/beauty/package.json +1 -1
- package/plugins/video-effect/video-mixer/package.json +1 -1
- package/plugins/video-effect/video-mixer/video-mixer.esm.d.ts +13 -73
- package/plugins/video-effect/video-mixer/video-mixer.esm.js +1 -1
- package/plugins/video-effect/video-mixer/video-mixer.umd.js +1 -1
- package/plugins/video-effect/virtual-background/package.json +1 -1
- package/plugins/video-effect/virtual-background/virtual-background.esm.js +1 -1
- package/plugins/video-effect/virtual-background/virtual-background.umd.js +1 -1
- package/plugins/video-effect/watermark/package.json +1 -1
- package/plugins/voice-changer/package.json +1 -1
- package/trtc.esm.js +64 -44
- package/trtc.js +1 -1
|
@@ -1 +1 @@
|
|
|
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')})),__export=(e,t)=>{for(var r in t)__defProp(e,r,{get:t[r],enumerable:!0})},__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:c}=e.errorModule;if(!t)return;const{type:A,src:u,onAbort:l}=t;if("image"===A&&!u)throw new a({code:s.INVALID_PARAMETER,extraCode:c.INVALID_PARAMETER_REQUIRED,fnName:n,messageParams:{key:"src"}});if(l&&!e.utils.isFunction(l))throw new a({code:s.INVALID_PARAMETER,extraCode:c.INVALID_PARAMETER_TYPE,fnName:n,messageParams:{key:"onAbort",value:typeof l,rule:{type:"Function"}}});if(!(null==(i=e.room.videoManager.cameraTrack)?void 0:i.mediaTrack))throw new a({code:s.INVALID_OPERATION,extraCode:c.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:c,src:A}=t;if("image"===c&&!A)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(){_e("You are getting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_main",{configurable:!0,set(){_e("You are setting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_emscripten_stack_get_end")||(Object.defineProperty(r.ready,"_emscripten_stack_get_end",{configurable:!0,get(){_e("You are getting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_emscripten_stack_get_end",{configurable:!0,set(){_e("You are setting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_emscripten_stack_get_free")||(Object.defineProperty(r.ready,"_emscripten_stack_get_free",{configurable:!0,get(){_e("You are getting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_emscripten_stack_get_free",{configurable:!0,set(){_e("You are setting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_emscripten_stack_init")||(Object.defineProperty(r.ready,"_emscripten_stack_init",{configurable:!0,get(){_e("You are getting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_emscripten_stack_init",{configurable:!0,set(){_e("You are setting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_stackSave")||(Object.defineProperty(r.ready,"_stackSave",{configurable:!0,get(){_e("You are getting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_stackSave",{configurable:!0,set(){_e("You are setting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_stackRestore")||(Object.defineProperty(r.ready,"_stackRestore",{configurable:!0,get(){_e("You are getting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_stackRestore",{configurable:!0,set(){_e("You are setting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_stackAlloc")||(Object.defineProperty(r.ready,"_stackAlloc",{configurable:!0,get(){_e("You are getting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_stackAlloc",{configurable:!0,set(){_e("You are setting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"___wasm_call_ctors")||(Object.defineProperty(r.ready,"___wasm_call_ctors",{configurable:!0,get(){_e("You are getting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"___wasm_call_ctors",{configurable:!0,set(){_e("You are setting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_fflush")||(Object.defineProperty(r.ready,"_fflush",{configurable:!0,get(){_e("You are getting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_fflush",{configurable:!0,set(){_e("You are setting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"___errno_location")||(Object.defineProperty(r.ready,"___errno_location",{configurable:!0,get(){_e("You are getting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"___errno_location",{configurable:!0,set(){_e("You are setting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_malloc")||(Object.defineProperty(r.ready,"_malloc",{configurable:!0,get(){_e("You are getting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_malloc",{configurable:!0,set(){_e("You are setting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_free")||(Object.defineProperty(r.ready,"_free",{configurable:!0,get(){_e("You are getting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_free",{configurable:!0,set(){_e("You are setting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_setThrew")||(Object.defineProperty(r.ready,"_setThrew",{configurable:!0,get(){_e("You are getting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_setThrew",{configurable:!0,set(){_e("You are setting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"___cxa_is_pointer_type")||(Object.defineProperty(r.ready,"___cxa_is_pointer_type",{configurable:!0,get(){_e("You are getting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"___cxa_is_pointer_type",{configurable:!0,set(){_e("You are setting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"___cxa_can_catch")||(Object.defineProperty(r.ready,"___cxa_can_catch",{configurable:!0,get(){_e("You are getting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"___cxa_can_catch",{configurable:!0,set(){_e("You are setting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_saveSetjmp")||(Object.defineProperty(r.ready,"_saveSetjmp",{configurable:!0,get(){_e("You are getting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_saveSetjmp",{configurable:!0,set(){_e("You are setting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_memalign")||(Object.defineProperty(r.ready,"_memalign",{configurable:!0,get(){_e("You are getting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_memalign",{configurable:!0,set(){_e("You are setting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_emscripten_main_thread_process_queued_calls")||(Object.defineProperty(r.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,get(){_e("You are getting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,set(){_e("You are setting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_emscripten_webgl_make_context_current")||(Object.defineProperty(r.ready,"_emscripten_webgl_make_context_current",{configurable:!0,get(){_e("You are getting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_emscripten_webgl_make_context_current",{configurable:!0,set(){_e("You are setting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_emscripten_webgl_get_current_context")||(Object.defineProperty(r.ready,"_emscripten_webgl_get_current_context",{configurable:!0,get(){_e("You are getting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_emscripten_webgl_get_current_context",{configurable:!0,set(){_e("You are setting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"__get_tzname")||(Object.defineProperty(r.ready,"__get_tzname",{configurable:!0,get(){_e("You are getting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"__get_tzname",{configurable:!0,set(){_e("You are setting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"__get_daylight")||(Object.defineProperty(r.ready,"__get_daylight",{configurable:!0,get(){_e("You are getting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"__get_daylight",{configurable:!0,set(){_e("You are setting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"__get_timezone")||(Object.defineProperty(r.ready,"__get_timezone",{configurable:!0,get(){_e("You are getting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"__get_timezone",{configurable:!0,set(){_e("You are setting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_emscripten_builtin_malloc")||(Object.defineProperty(r.ready,"_emscripten_builtin_malloc",{configurable:!0,get(){_e("You are getting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_emscripten_builtin_malloc",{configurable:!0,set(){_e("You are setting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_emscripten_builtin_free")||(Object.defineProperty(r.ready,"_emscripten_builtin_free",{configurable:!0,get(){_e("You are getting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_emscripten_builtin_free",{configurable:!0,set(){_e("You are setting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_emscripten_builtin_memalign")||(Object.defineProperty(r.ready,"_emscripten_builtin_memalign",{configurable:!0,get(){_e("You are getting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_emscripten_builtin_memalign",{configurable:!0,set(){_e("You are setting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"___getTypeName")||(Object.defineProperty(r.ready,"___getTypeName",{configurable:!0,get(){_e("You are getting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"___getTypeName",{configurable:!0,set(){_e("You are setting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"___embind_register_native_and_builtin_types")||(Object.defineProperty(r.ready,"___embind_register_native_and_builtin_types",{configurable:!0,get(){_e("You are getting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"___embind_register_native_and_builtin_types",{configurable:!0,set(){_e("You are setting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"onRuntimeInitialized")||(Object.defineProperty(r.ready,"onRuntimeInitialized",{configurable:!0,get(){_e("You are getting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"onRuntimeInitialized",{configurable:!0,set(){_e("You are setting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));let i,a={};for(i in r)r.hasOwnProperty(i)&&(a[i]=r[i]);let s=[],c="./this.program",A=function(e,t){throw t};const u="object"==typeof window,l="function"==typeof importScripts,d="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,g=!u&&!d&&!l;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 f,h,p,E,m="";if(!u&&!l)throw new Error("environment detection error");if(l?m=self.location.href:"undefined"!=typeof document&&document.currentScript&&(m=document.currentScript.src),e&&(m=e),m=0!==m.indexOf("blob:")?m.substr(0,m.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?)");f=function(e){const t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},l&&(p=function(e){const t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),h=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)},E=function(e){document.title=e};let I=r.print||console.log.bind(console),y=r.printErr||console.warn.bind(console);for(i in a)a.hasOwnProperty(i)&&(r[i]=a[i]);function _(e){_.shown||(_.shown={}),_.shown[e]||(_.shown[e]=1,y(e))}a=null,r.arguments&&(s=r.arguments),Object.getOwnPropertyDescriptor(r,"arguments")||Object.defineProperty(r,"arguments",{configurable:!0,get(){_e("Module.arguments has been replaced with plain arguments_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),r.thisProgram&&(c=r.thisProgram),Object.getOwnPropertyDescriptor(r,"thisProgram")||Object.defineProperty(r,"thisProgram",{configurable:!0,get(){_e("Module.thisProgram has been replaced with plain thisProgram (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),r.quit&&(A=r.quit),Object.getOwnPropertyDescriptor(r,"quit")||Object.defineProperty(r,"quit",{configurable:!0,get(){_e("Module.quit has been replaced with plain quit_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),v(void 0===r.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),v(void 0===r.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),v(void 0===r.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),v(void 0===r.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),v(void 0===r.read,"Module.read option was removed (modify read_ in JS)"),v(void 0===r.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),v(void 0===r.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),v(void 0===r.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),v(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(){_e("Module.read has been replaced with plain read_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(r,"readAsync")||Object.defineProperty(r,"readAsync",{configurable:!0,get(){_e("Module.readAsync has been replaced with plain readAsync (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(r,"readBinary")||Object.defineProperty(r,"readBinary",{configurable:!0,get(){_e("Module.readBinary has been replaced with plain readBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(r,"setWindowTitle")||Object.defineProperty(r,"setWindowTitle",{configurable:!0,get(){_e("Module.setWindowTitle has been replaced with plain setWindowTitle (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),v(!g,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");let w=0;const C=function(e){w=e};let b;r.wasmBinary&&(b=r.wasmBinary),Object.getOwnPropertyDescriptor(r,"wasmBinary")||Object.defineProperty(r,"wasmBinary",{configurable:!0,get(){_e("Module.wasmBinary has been replaced with plain wasmBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}});const B=r.noExitRuntime||!0;let D;Object.getOwnPropertyDescriptor(r,"noExitRuntime")||Object.defineProperty(r,"noExitRuntime",{configurable:!0,get(){_e("Module.noExitRuntime has been replaced with plain noExitRuntime (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),"object"!=typeof WebAssembly&&_e("no native wasm support detected");let O,T=!1;function v(e,t){e||_e(`Assertion failed: ${t}`)}const Q="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&&Q)return Q.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)&&_(`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 M(e,t){return e?P(z,e,t):""}function R(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&&_(`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 v("number"==typeof r,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),R(e,z,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 x="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function k(e,t){v(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)&&K[n];)++n;if(r=n<<1,r-e>32&&x)return x.decode(z.subarray(e,r));let i="";for(let r=0;!(r>=t/2);++r){const t=$[e+2*r>>1];if(0==t)break;i+=String.fromCharCode(t)}return i}function N(e,t,r){if(v(t%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),v("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);$[t>>1]=n,t+=2}return $[t>>1]=0,t-n}function U(e){return 2*e.length}function j(e,t){v(e%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");let r=0,n="";for(;!(r>=t/4);){const t=Z[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(v(t%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),v("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(Z[t>>2]=n,(t+=4)+4>o)break}return Z[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&&R(e,V,r,t),r}function Y(e,t){v(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),V.set(e,t)}function X(e,t){return e%t>0&&(e+=t-e%t),e}let W,V,z,$,K,Z,J,q,ee;function te(e){W=e,r.HEAP8=V=new Int8Array(e),r.HEAP16=$=new Int16Array(e),r.HEAP32=Z=new Int32Array(e),r.HEAPU8=z=new Uint8Array(e),r.HEAPU16=K=new Uint16Array(e),r.HEAPU32=J=new Uint32Array(e),r.HEAPF32=q=new Float32Array(e),r.HEAPF64=ee=new Float64Array(e)}const re=5242880;r.TOTAL_STACK&&v(re===r.TOTAL_STACK,"the stack size can no longer be determined at runtime");const ne=r.INITIAL_MEMORY||16777216;let oe;function ie(){const e=gn();v(!(3&e)),J[1+(e>>2)]=34821223,J[2+(e>>2)]=2310721022,Z[0]=1668509029}function ae(){if(T)return;const e=gn(),t=J[1+(e>>2)],r=J[2+(e>>2)];34821223==t&&2310721022==r||_e(`Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x${r.toString(16)} ${t.toString(16)}`),1668509029!==Z[0]&&_e("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(){_e("Module.INITIAL_MEMORY has been replaced with plain INITIAL_MEMORY (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),v(ne>=re,`INITIAL_MEMORY should be larger than TOTAL_STACK, was ${ne}! (TOTAL_STACK=5242880)`),v("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"),v(!r.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),v(16777216==ne,"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 se=[],ce=[],Ae=[],ue=[];let le=!1,de=!1;function ge(){return B||!1}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");let fe=0,he=null,pe=null;const Ee={};function me(e){const t=e;for(;;){if(!Ee[e])return e;e=t+Math.random()}}function Ie(e){fe++,r.monitorRunDependencies&&r.monitorRunDependencies(fe),e?(v(!Ee[e]),Ee[e]=1,null===he&&"undefined"!=typeof setInterval&&(he=setInterval((()=>{if(T)return clearInterval(he),void(he=null);let e=!1;for(const t in Ee)e||(e=!0,y("still waiting on run dependencies:")),y(`dependency: ${t}`);e&&y("(end of list)")}),1e4))):y("warning: run dependency added without ID")}function ye(e){if(fe--,r.monitorRunDependencies&&r.monitorRunDependencies(fe),e?(v(Ee[e]),delete Ee[e]):y("warning: run dependency removed without ID"),0==fe&&(null!==he&&(clearInterval(he),he=null),pe)){const e=pe;pe=null,e()}}function _e(e){r.onAbort&&r.onAbort(e),y(e+=""),T=!0,O=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 xe(e)}()}`;e=t;const n=new WebAssembly.RuntimeError(e);throw o(n),n}r.preloadedImages={},r.preloadedAudios={};function we(e,t){return function(){const n=e;let o=t;return t||(o=r.asm),v(le,`native function \`${n}\` called before runtime initialization`),v(!de,`native function \`${n}\` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)`),o[e]||v(o[e],`exported native function \`${n}\` not found`),o[e].apply(null,arguments)}}let Ce;var be;let Be,De;Ce="selfie_segmentation_solution_simd_wasm_bin.wasm",Ce.startsWith("data:application/octet-stream;base64,")||(be=Ce,Ce=r.locateFile?r.locateFile(be,m):m+be);const Oe={460656(){let e=!0;if(e){const t=Qr;if("function"!=typeof t)return void("undefined"!=typeof console&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.'));Qr=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 Te(e,t){if(Se.mainLoop.timingMode=e,Se.mainLoop.timingValue=t,!Se.mainLoop.func)return y("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-ve());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),l?(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 ve;function Qe(e){!function(e,t){if(O=e,function(){const e=I,t=y;let n=!1;I=y=function(e){n=!0};try{const e=r._fflush;e&&e(0),["stdout","stderr"].forEach((e=>{const t=Ze.analyzePath(`/dev/${e}`);if(!t)return;const r=t.object,{rdev:o}=r,i=We.ttys[o];i&&i.output&&i.output.length&&(n=!0)}))}catch(e){}I=e,y=t,n&&_("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.")}(),ge()){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),y(t)}}else ae(),de=!0;On(e)}(e)}function Pe(e,t,n,o,i){v(!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(!ge())try{Qe(O)}catch(e){if(e instanceof Bn)return;throw e}}(),!1)}if(Se.mainLoop.running=!1,Se.mainLoop.runner=function(){if(!T)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(I(`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=ve()),Dr.newRenderingFrameStarted(),void 0!==Dr&&Dr.currentContext&&!Dr.currentContextIsProxied&&!Dr.currentContext.attributes.explicitSwapControl&&Dr.currentContext.GLctx.commit&&Dr.currentContext.GLctx.commit(),"timeout"===Se.mainLoop.method&&r.ctx&&(_("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),ae(),s()&&("object"==typeof SDL&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Se.mainLoop.scheduler())))},i||(t&&t>0?Te(0,1e3/t):Te(1,1),Se.mainLoop.scheduler()),n)throw"unwind"}function Me(e,t){if(T)y("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&&y(`exception thrown: ${[e,e.stack]}`),e}}function Re(e,t){return setTimeout((()=>{Me(e)}),t)}ve=d?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),Te(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(!T){if(r.preMainLoop){if(!1===r.preMainLoop())return}Me(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,I("warning: no blob constructor, cannot create blobs with mimetypes")}Se.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:Se.hasBlobConstructor?null:I("warning: no BlobBuilder"),Se.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,r.noImageDecoding||void 0!==Se.URLObject||(I("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){_(`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);v("string"==typeof a,"createObjectURL must return a url as a string");const s=new Image;s.onload=function(){v(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){I(`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 c=new Blob([e],{type:Se.getMimetype(t)})}catch(e){return s()}const r=Se.URLObject.createObjectURL(c);v("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||(I(`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,Re((()=>{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!==Dr&&(a=Dr.createContext(e,t),a&&(i=Dr.getContext(a).GLctx))}else i=e.getContext("2d");return i?(n&&(t||v(void 0===rn,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),r.ctx=i,t&&Dr.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(){_e("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=>Re(e),safeRequestAnimationFrame:e=>Se.requestAnimationFrame((()=>{Me(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(v(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),c=r.pageY-(a+t.top);s*=n/t.width,c*=o/t.height;const A={x:s,y:c};if("touchstart"===e.type)Se.lastTouches[r.identifier]=A,Se.touches[r.identifier]=A;else if("touchend"===e.type||"touchmove"===e.type){let e=Se.touches[r.identifier];e||(e=A),Se.lastTouches[r.identifier]=e,Se.touches[r.identifier]=A}return}let s=e.pageX-(i+t.left),c=e.pageY-(a+t.top);s*=n/t.width,c*=o/t.height,Se.mouseMovementX=s-Se.mouseX,Se.mouseMovementY=c-Se.mouseY,Se.mouseX=s,Se.mouseY=c}},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,Z[SDL.screen>>2]=e}Se.updateCanvasDimensions(r.canvas),Se.updateResizeListeners()},setWindowedCanvasSize(){if("undefined"!=typeof SDL){let e=J[SDL.screen>>2];e&=-8388609,Z[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?oe.get(n)():oe.get(n)(t.arg):n(void 0===t.arg?null:t.arg)}}function xe(e){return e.replace(/\b_Z[\w\d_]+/g,(e=>{const t=(r=e,_("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){Z[this.ptr+4>>2]=e},this.get_type=function(){return Z[this.ptr+4>>2]},this.set_destructor=function(e){Z[this.ptr+8>>2]=e},this.get_destructor=function(){return Z[this.ptr+8>>2]},this.set_refcount=function(e){Z[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=Z[this.ptr>>2];Z[this.ptr>>2]=e+1},this.release_ref=function(){const e=Z[this.ptr>>2];return Z[this.ptr>>2]=e-1,v(e>0),1===e}}function Ne(e){this.free=function(){An(this.ptr),this.ptr=0},this.set_base_ptr=function(e){Z[this.ptr>>2]=e},this.get_base_ptr=function(){return Z[this.ptr>>2]},this.set_adjusted_ptr=function(e){Z[this.ptr+4>>2]=e},this.get_adjusted_ptr_addr=function(){return this.ptr+4},this.get_adjusted_ptr=function(){return Z[this.ptr+4>>2]},this.get_exception_ptr=function(){if(wn(this.get_exception_info().get_type()))return Z[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 An(new ke(e).ptr)}catch(e){y(`exception during cxa_free_exception: ${e}`)}}function He(e){return Z[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(d)try{const e=__require("crypto");return function(){return e.randomBytes(1)[0]}}catch(e){}return function(){_e("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };")}}var Xe={resolve(){let e="",t=!1;for(let r=arguments.length-1;r>=-1&&!t;r--){const n=r>=0?arguments[r]:Ze.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 c=[];for(s=a;s<n.length;s++)c.push("..");return c=c.concat(o.slice(a)),c.join("/")}},We={ttys:[],init(){},shutdown(){},register(e,t){We.ttys[e]={input:[],output:[],ops:t},Ze.registerDevice(e,We.stream_ops)},stream_ops:{open(e){const t=We.ttys[e.node.rdev];if(!t)throw new Ze.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 Ze.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 Ze.ErrnoError(29)}if(void 0===a&&0===i)throw new Ze.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 Ze.ErrnoError(60);try{for(var i=0;i<n;i++)e.tty.ops.put_char(e.tty,t[r+i])}catch(e){throw new Ze.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),i}},default_tty_ops:{get_char(e){if(!e.input.length){let t=null;if(d){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=sn(t,!0)}return e.input.shift()},put_char(e,t){null===t||10===t?(I(P(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush(e){e.output&&e.output.length>0&&(I(P(e.output,0)),e.output=[])}},default_tty1_ops:{put_char(e,t){null===t||10===t?(y(P(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush(e){e.output&&e.output.length>0&&(y(P(e.output,0)),e.output=[])}}};function Ve(e){e=function(e,t){return v(t,"alignment argument is required"),Math.ceil(e/t)*t}(e,65536);const t=Cn(65536,e);return t?(function(e,t){z.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(Ze.isBlkdev(r)||Ze.isFIFO(r))throw new Ze.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:Ze.chrdev_stream_ops}});const o=Ze.createNode(e,t,r,n);return Ze.isDir(o.mode)?(o.node_ops=ze.ops_table.dir.node,o.stream_ops=ze.ops_table.dir.stream,o.contents={}):Ze.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):Ze.isLink(o.mode)?(o.node_ops=ze.ops_table.link.node,o.stream_ops=ze.ops_table.link.stream):Ze.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=Ze.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,Ze.isDir(e.mode)?t.size=4096:Ze.isFile(e.mode)?t.size=e.usedBytes:Ze.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 Ze.genericErrors[44]},mknod:(e,t,r,n)=>ze.createNode(e,t,r,n),rename(e,t,r){if(Ze.isDir(e.mode)){let e;try{e=Ze.lookupNode(t,r)}catch(e){}if(e)for(const t in e.contents)throw new Ze.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=Ze.lookupNode(e,t);for(const e in r.contents)throw new Ze.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(!Ze.isLink(e.mode))throw new Ze.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(v(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(v(!(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 v(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&&Ze.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new Ze.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 Ze.ErrnoError(28);if(!Ze.isFile(e.node.mode))throw new Ze.ErrnoError(43);let a,s,{contents:c}=e.node;if(2&i||c.buffer!==W){if((n>0||n+r<c.length)&&(c=c.subarray?c.subarray(n,n+r):Array.prototype.slice.call(c,n,n+r)),s=!0,a=Ve(r),!a)throw new Ze.ErrnoError(48);V.set(c,a)}else s=!1,a=c.byteOffset;return{ptr:a,allocated:s}},msync(e,t,r,n,o){if(!Ze.isFile(e.node.mode))throw new Ze.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 Ze={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(Ze.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 Ze.ErrnoError(32);const n=Ge.normalizeArray(e.split("/").filter((e=>!!e)),!1);let o=Ze.root,i="/";for(let e=0;e<n.length;e++){const r=e===n.length-1;if(r&&t.parent)break;if(o=Ze.lookupNode(o,n[e]),i=Ge.join2(i,n[e]),Ze.isMountpoint(o)&&(!r||r&&t.follow_mount)&&(o=o.mounted.root),!r||t.follow){let e=0;for(;Ze.isLink(o.mode);){const r=Ze.readlink(i);i=Xe.resolve(Ge.dirname(i),r);if(o=Ze.lookupPath(i,{recurse_count:t.recurse_count}).node,e++>40)throw new Ze.ErrnoError(32)}}}return{path:i,node:o}},getPath(e){let t;for(;;){if(Ze.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)%Ze.nameTable.length},hashAddNode(e){const t=Ze.hashName(e.parent.id,e.name);e.name_next=Ze.nameTable[t],Ze.nameTable[t]=e},hashRemoveNode(e){const t=Ze.hashName(e.parent.id,e.name);if(Ze.nameTable[t]===e)Ze.nameTable[t]=e.name_next;else{let r=Ze.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=Ze.mayLookup(e);if(r)throw new Ze.ErrnoError(r,e);const n=Ze.hashName(e.id,t);for(let r=Ze.nameTable[n];r;r=r.name_next){const n=r.name;if(r.parent.id===e.id&&n===t)return r}return Ze.lookup(e,t)},createNode(e,t,r,n){v("object"==typeof e);const o=new Ze.FSNode(e,t,r,n);return Ze.hashAddNode(o),o},destroyNode(e){Ze.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=Ze.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)=>Ze.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=Ze.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate(e,t){try{Ze.lookupNode(e,t);return 20}catch(e){}return Ze.nodePermissions(e,"wx")},mayDelete(e,t,r){let n;try{n=Ze.lookupNode(e,t)}catch(e){return e.errno}const o=Ze.nodePermissions(e,"wx");if(o)return o;if(r){if(!Ze.isDir(n.mode))return 54;if(Ze.isRoot(n)||Ze.getPath(n)===Ze.cwd())return 10}else if(Ze.isDir(n.mode))return 31;return 0},mayOpen:(e,t)=>e?Ze.isLink(e.mode)?32:Ze.isDir(e.mode)&&("r"!==Ze.flagsToPermissionString(t)||512&t)?31:Ze.nodePermissions(e,Ze.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd(e,t){e=e||0,t=t||Ze.MAX_OPEN_FDS;for(let r=e;r<=t;r++)if(!Ze.streams[r])return r;throw new Ze.ErrnoError(33)},getStream:e=>Ze.streams[e],createStream(e,t,r){Ze.FSStream||(Ze.FSStream=function(){},Ze.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 Ze.FSStream;for(const t in e)n[t]=e[t];e=n;const o=Ze.nextfd(t,r);return e.fd=o,Ze.streams[o]=e,e},closeStream(e){Ze.streams[e]=null},chrdev_stream_ops:{open(e){const t=Ze.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek(){throw new Ze.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice(e,t){Ze.devices[e]={stream_ops:t}},getDevice:e=>Ze.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),Ze.syncFSRequests++,Ze.syncFSRequests>1&&y(`warning: ${Ze.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);const r=Ze.getMounts(Ze.root.mount);let n=0;function o(e){return v(Ze.syncFSRequests>0),Ze.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&&Ze.root)throw new Ze.ErrnoError(10);if(!n&&!o){const e=Ze.lookupPath(r,{follow_mount:!1});if(r=e.path,i=e.node,Ze.isMountpoint(i))throw new Ze.ErrnoError(10);if(!Ze.isDir(i.mode))throw new Ze.ErrnoError(54)}const a={type:e,opts:t,mountpoint:r,mounts:[]},s=e.mount(a);return s.mount=a,a.root=s,n?Ze.root=s:i&&(i.mounted=a,i.mount&&i.mount.mounts.push(a)),s},unmount(e){const t=Ze.lookupPath(e,{follow_mount:!1});if(!Ze.isMountpoint(t.node))throw new Ze.ErrnoError(28);const{node:r}=t,n=r.mounted,o=Ze.getMounts(n);Object.keys(Ze.nameTable).forEach((e=>{let t=Ze.nameTable[e];for(;t;){const e=t.name_next;o.includes(t.mount)&&Ze.destroyNode(t),t=e}})),r.mounted=null;const i=r.mount.mounts.indexOf(n);v(-1!==i),r.mount.mounts.splice(i,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod(e,t,r){const n=Ze.lookupPath(e,{parent:!0}).node,o=Ge.basename(e);if(!o||"."===o||".."===o)throw new Ze.ErrnoError(28);const i=Ze.mayCreate(n,o);if(i)throw new Ze.ErrnoError(i);if(!n.node_ops.mknod)throw new Ze.ErrnoError(63);return n.node_ops.mknod(n,o,t,r)},create:(e,t)=>(t=void 0!==t?t:438,t&=4095,t|=32768,Ze.mknod(e,t,0)),mkdir:(e,t)=>(t=void 0!==t?t:511,t&=1023,t|=16384,Ze.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{Ze.mkdir(n,t)}catch(e){if(20!=e.errno)throw e}}},mkdev:(e,t,r)=>(void 0===r&&(r=t,t=438),t|=8192,Ze.mknod(e,t,r)),symlink(e,t){if(!Xe.resolve(e))throw new Ze.ErrnoError(44);const r=Ze.lookupPath(t,{parent:!0}).node;if(!r)throw new Ze.ErrnoError(44);const n=Ge.basename(t),o=Ze.mayCreate(r,n);if(o)throw new Ze.ErrnoError(o);if(!r.node_ops.symlink)throw new Ze.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,c;if(a=Ze.lookupPath(e,{parent:!0}),s=a.node,a=Ze.lookupPath(t,{parent:!0}),c=a.node,!s||!c)throw new Ze.ErrnoError(44);if(s.mount!==c.mount)throw new Ze.ErrnoError(75);const A=Ze.lookupNode(s,o);let u,l=Xe.relative(e,n);if("."!==l.charAt(0))throw new Ze.ErrnoError(28);if(l=Xe.relative(t,r),"."!==l.charAt(0))throw new Ze.ErrnoError(55);try{u=Ze.lookupNode(c,i)}catch(e){}if(A===u)return;const d=Ze.isDir(A.mode);let g=Ze.mayDelete(s,o,d);if(g)throw new Ze.ErrnoError(g);if(g=u?Ze.mayDelete(c,i,d):Ze.mayCreate(c,i),g)throw new Ze.ErrnoError(g);if(!s.node_ops.rename)throw new Ze.ErrnoError(63);if(Ze.isMountpoint(A)||u&&Ze.isMountpoint(u))throw new Ze.ErrnoError(10);if(c!==s&&(g=Ze.nodePermissions(s,"w"),g))throw new Ze.ErrnoError(g);try{Ze.trackingDelegate.willMovePath&&Ze.trackingDelegate.willMovePath(e,t)}catch(r){y(`FS.trackingDelegate['willMovePath']('${e}', '${t}') threw an exception: ${r.message}`)}Ze.hashRemoveNode(A);try{s.node_ops.rename(A,c,i)}catch(e){throw e}finally{Ze.hashAddNode(A)}try{Ze.trackingDelegate.onMovePath&&Ze.trackingDelegate.onMovePath(e,t)}catch(r){y(`FS.trackingDelegate['onMovePath']('${e}', '${t}') threw an exception: ${r.message}`)}},rmdir(e){const t=Ze.lookupPath(e,{parent:!0}).node,r=Ge.basename(e),n=Ze.lookupNode(t,r),o=Ze.mayDelete(t,r,!0);if(o)throw new Ze.ErrnoError(o);if(!t.node_ops.rmdir)throw new Ze.ErrnoError(63);if(Ze.isMountpoint(n))throw new Ze.ErrnoError(10);try{Ze.trackingDelegate.willDeletePath&&Ze.trackingDelegate.willDeletePath(e)}catch(t){y(`FS.trackingDelegate['willDeletePath']('${e}') threw an exception: ${t.message}`)}t.node_ops.rmdir(t,r),Ze.destroyNode(n);try{Ze.trackingDelegate.onDeletePath&&Ze.trackingDelegate.onDeletePath(e)}catch(t){y(`FS.trackingDelegate['onDeletePath']('${e}') threw an exception: ${t.message}`)}},readdir(e){const t=Ze.lookupPath(e,{follow:!0}),{node:r}=t;if(!r.node_ops.readdir)throw new Ze.ErrnoError(54);return r.node_ops.readdir(r)},unlink(e){const t=Ze.lookupPath(e,{parent:!0}).node,r=Ge.basename(e),n=Ze.lookupNode(t,r),o=Ze.mayDelete(t,r,!1);if(o)throw new Ze.ErrnoError(o);if(!t.node_ops.unlink)throw new Ze.ErrnoError(63);if(Ze.isMountpoint(n))throw new Ze.ErrnoError(10);try{Ze.trackingDelegate.willDeletePath&&Ze.trackingDelegate.willDeletePath(e)}catch(t){y(`FS.trackingDelegate['willDeletePath']('${e}') threw an exception: ${t.message}`)}t.node_ops.unlink(t,r),Ze.destroyNode(n);try{Ze.trackingDelegate.onDeletePath&&Ze.trackingDelegate.onDeletePath(e)}catch(t){y(`FS.trackingDelegate['onDeletePath']('${e}') threw an exception: ${t.message}`)}},readlink(e){const t=Ze.lookupPath(e).node;if(!t)throw new Ze.ErrnoError(44);if(!t.node_ops.readlink)throw new Ze.ErrnoError(28);return Xe.resolve(Ze.getPath(t.parent),t.node_ops.readlink(t))},stat(e,t){const r=Ze.lookupPath(e,{follow:!t}),{node:n}=r;if(!n)throw new Ze.ErrnoError(44);if(!n.node_ops.getattr)throw new Ze.ErrnoError(63);return n.node_ops.getattr(n)},lstat:e=>Ze.stat(e,!0),chmod(e,t,r){let n;if("string"==typeof e){n=Ze.lookupPath(e,{follow:!r}).node}else n=e;if(!n.node_ops.setattr)throw new Ze.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod(e,t){Ze.chmod(e,t,!0)},fchmod(e,t){const r=Ze.getStream(e);if(!r)throw new Ze.ErrnoError(8);Ze.chmod(r.node,t)},chown(e,t,r,n){let o;if("string"==typeof e){o=Ze.lookupPath(e,{follow:!n}).node}else o=e;if(!o.node_ops.setattr)throw new Ze.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown(e,t,r){Ze.chown(e,t,r,!0)},fchown(e,t,r){const n=Ze.getStream(e);if(!n)throw new Ze.ErrnoError(8);Ze.chown(n.node,t,r)},truncate(e,t){if(t<0)throw new Ze.ErrnoError(28);let r;if("string"==typeof e){r=Ze.lookupPath(e,{follow:!0}).node}else r=e;if(!r.node_ops.setattr)throw new Ze.ErrnoError(63);if(Ze.isDir(r.mode))throw new Ze.ErrnoError(31);if(!Ze.isFile(r.mode))throw new Ze.ErrnoError(28);const n=Ze.nodePermissions(r,"w");if(n)throw new Ze.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate(e,t){const r=Ze.getStream(e);if(!r)throw new Ze.ErrnoError(8);if(!(2097155&r.flags))throw new Ze.ErrnoError(28);Ze.truncate(r.node,t)},utime(e,t,r){const n=Ze.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 Ze.ErrnoError(44);let a;if(n=void 0===n?438:n,n=64&(t="string"==typeof t?Ze.modeStringToFlags(t):t)?4095&n|32768:0,"object"==typeof e)a=e;else{e=Ge.normalize(e);try{a=Ze.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}let s=!1;if(64&t)if(a){if(128&t)throw new Ze.ErrnoError(20)}else a=Ze.mknod(e,n,0),s=!0;if(!a)throw new Ze.ErrnoError(44);if(Ze.isChrdev(a.mode)&&(t&=-513),65536&t&&!Ze.isDir(a.mode))throw new Ze.ErrnoError(54);if(!s){const e=Ze.mayOpen(a,t);if(e)throw new Ze.ErrnoError(e)}512&t&&Ze.truncate(a,0),t&=-131713;const c=Ze.createStream({node:a,path:Ze.getPath(a),flags:t,seekable:!0,position:0,stream_ops:a.stream_ops,ungotten:[],error:!1},o,i);c.stream_ops.open&&c.stream_ops.open(c),!r.logReadFiles||1&t||(Ze.readFiles||(Ze.readFiles={}),e in Ze.readFiles||(Ze.readFiles[e]=1,y(`FS.trackingDelegate error on read file: ${e}`)));try{if(Ze.trackingDelegate.onOpenFile){let r=0;1!=(2097155&t)&&(r|=Ze.tracking.openFlags.READ),2097155&t&&(r|=Ze.tracking.openFlags.WRITE),Ze.trackingDelegate.onOpenFile(e,r)}}catch(t){y(`FS.trackingDelegate['onOpenFile']('${e}', flags) threw an exception: ${t.message}`)}return c},close(e){if(Ze.isClosed(e))throw new Ze.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{Ze.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek(e,t,r){if(Ze.isClosed(e))throw new Ze.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new Ze.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new Ze.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 Ze.ErrnoError(28);if(Ze.isClosed(e))throw new Ze.ErrnoError(8);if(1==(2097155&e.flags))throw new Ze.ErrnoError(8);if(Ze.isDir(e.node.mode))throw new Ze.ErrnoError(31);if(!e.stream_ops.read)throw new Ze.ErrnoError(28);const i=void 0!==o;if(i){if(!e.seekable)throw new Ze.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 Ze.ErrnoError(28);if(Ze.isClosed(e))throw new Ze.ErrnoError(8);if(!(2097155&e.flags))throw new Ze.ErrnoError(8);if(Ze.isDir(e.node.mode))throw new Ze.ErrnoError(31);if(!e.stream_ops.write)throw new Ze.ErrnoError(28);e.seekable&&1024&e.flags&&Ze.llseek(e,0,2);const a=void 0!==o;if(a){if(!e.seekable)throw new Ze.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&&Ze.trackingDelegate.onWriteToFile&&Ze.trackingDelegate.onWriteToFile(e.path)}catch(t){y(`FS.trackingDelegate['onWriteToFile']('${e.path}') threw an exception: ${t.message}`)}return s},allocate(e,t,r){if(Ze.isClosed(e))throw new Ze.ErrnoError(8);if(t<0||r<=0)throw new Ze.ErrnoError(28);if(!(2097155&e.flags))throw new Ze.ErrnoError(8);if(!Ze.isFile(e.node.mode)&&!Ze.isDir(e.node.mode))throw new Ze.ErrnoError(43);if(!e.stream_ops.allocate)throw new Ze.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 Ze.ErrnoError(2);if(1==(2097155&e.flags))throw new Ze.ErrnoError(2);if(!e.stream_ops.mmap)throw new Ze.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 Ze.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=Ze.open(e,t.flags),o=Ze.stat(e).size,i=new Uint8Array(o);return Ze.read(n,i,0,o,0),"utf8"===t.encoding?r=P(i,0):"binary"===t.encoding&&(r=i),Ze.close(n),r},writeFile(e,t,r){(r=r||{}).flags=r.flags||577;const n=Ze.open(e,r.flags,r.mode);if("string"==typeof t){const e=new Uint8Array(F(t)+1),o=R(t,e,0,e.length);Ze.write(n,e,0,o,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");Ze.write(n,t,0,t.byteLength,void 0,r.canOwn)}Ze.close(n)},cwd:()=>Ze.currentPath,chdir(e){const t=Ze.lookupPath(e,{follow:!0});if(null===t.node)throw new Ze.ErrnoError(44);if(!Ze.isDir(t.node.mode))throw new Ze.ErrnoError(54);const r=Ze.nodePermissions(t.node,"x");if(r)throw new Ze.ErrnoError(r);Ze.currentPath=t.path},createDefaultDirectories(){Ze.mkdir("/tmp"),Ze.mkdir("/home"),Ze.mkdir("/home/web_user")},createDefaultDevices(){Ze.mkdir("/dev"),Ze.registerDevice(Ze.makedev(1,3),{read:()=>0,write:(e,t,r,n,o)=>n}),Ze.mkdev("/dev/null",Ze.makedev(1,3)),We.register(Ze.makedev(5,0),We.default_tty_ops),We.register(Ze.makedev(6,0),We.default_tty1_ops),Ze.mkdev("/dev/tty",Ze.makedev(5,0)),Ze.mkdev("/dev/tty1",Ze.makedev(6,0));const e=Ye();Ze.createDevice("/dev","random",e),Ze.createDevice("/dev","urandom",e),Ze.mkdir("/dev/shm"),Ze.mkdir("/dev/shm/tmp")},createSpecialDirectories(){Ze.mkdir("/proc");const e=Ze.mkdir("/proc/self");Ze.mkdir("/proc/self/fd"),Ze.mount({mount(){const t=Ze.createNode(e,"fd",16895,73);return t.node_ops={lookup(e,t){const r=+t,n=Ze.getStream(r);if(!n)throw new Ze.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?Ze.createDevice("/dev","stdin",r.stdin):Ze.symlink("/dev/tty","/dev/stdin"),r.stdout?Ze.createDevice("/dev","stdout",null,r.stdout):Ze.symlink("/dev/tty","/dev/stdout"),r.stderr?Ze.createDevice("/dev","stderr",null,r.stderr):Ze.symlink("/dev/tty1","/dev/stderr");const e=Ze.open("/dev/stdin",0),t=Ze.open("/dev/stdout",1),n=Ze.open("/dev/stderr",1);v(0===e.fd,`invalid handle for stdin (${e.fd})`),v(1===t.fd,`invalid handle for stdout (${t.fd})`),v(2===n.fd,`invalid handle for stderr (${n.fd})`)},ensureErrnoError(){Ze.ErrnoError||(Ze.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=xe(this.stack))},Ze.ErrnoError.prototype=new Error,Ze.ErrnoError.prototype.constructor=Ze.ErrnoError,[44].forEach((e=>{Ze.genericErrors[e]=new Ze.ErrnoError(e),Ze.genericErrors[e].stack="<generic error, no stack>"})))},staticInit(){Ze.ensureErrnoError(),Ze.nameTable=new Array(4096),Ze.mount(ze,{},"/"),Ze.createDefaultDirectories(),Ze.createDefaultDevices(),Ze.createSpecialDirectories(),Ze.filesystems={MEMFS:ze}},init(e,t,n){v(!Ze.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)"),Ze.init.initialized=!0,Ze.ensureErrnoError(),r.stdin=e||r.stdin,r.stdout=t||r.stdout,r.stderr=n||r.stderr,Ze.createStandardStreams()},quit(){Ze.init.initialized=!1;const e=r._fflush;e&&e(0);for(let e=0;e<Ze.streams.length;e++){const t=Ze.streams[e];t&&Ze.close(t)}},getMode(e,t){let r=0;return e&&(r|=365),t&&(r|=146),r},findObject(e,t){const r=Ze.analyzePath(e,t);return r.exists?r.object:null},analyzePath(e,t){try{e=(n=Ze.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=Ze.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=Ge.basename(e),n=Ze.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:Ze.getPath(e);const o=t.split("/").reverse();for(;o.length;){const t=o.pop();if(t){var i=Ge.join2(e,t);try{Ze.mkdir(i)}catch(e){}e=i}}return i},createFile(e,t,r,n,o){const i=Ge.join2("string"==typeof e?e:Ze.getPath(e),t),a=Ze.getMode(n,o);return Ze.create(i,a)},createDataFile(e,t,r,n,o,i){const a=t?Ge.join2("string"==typeof e?e:Ze.getPath(e),t):e,s=Ze.getMode(n,o),c=Ze.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}Ze.chmod(c,146|s);const e=Ze.open(c,577);Ze.write(e,r,0,r.length,0,i),Ze.close(e),Ze.chmod(c,s)}return c},createDevice(e,t,r,n){const o=Ge.join2("string"==typeof e?e:Ze.getPath(e),t),i=Ze.getMode(!!r,!!n);Ze.createDevice.major||(Ze.createDevice.major=64);const a=Ze.makedev(Ze.createDevice.major++,0);return Ze.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 Ze.ErrnoError(29)}if(void 0===s&&0===a)throw new Ze.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 Ze.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),a}}),Ze.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(!f)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=sn(f(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new Ze.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||[]):sn(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(!l)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=Ze.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 c={};return Object.keys(s.stream_ops).forEach((e=>{const t=s.stream_ops[e];c[e]=function(){return Ze.forceLoadFile(s),t.apply(null,arguments)}})),c.read=function(e,t,r,n,o){Ze.forceLoadFile(s);const{contents:i}=e.node;if(o>=i.length)return 0;const a=Math.min(i.length-o,n);if(v(a>=0),i.slice)for(var c=0;c<a;c++)t[r+c]=i[o+c];else for(c=0;c<a;c++)t[r+c]=i.get(o+c);return a},s.stream_ops=c,s},createPreloadedFile(e,t,n,o,i,a,s,c,A,u){Se.init();const l=t?Xe.resolve(Ge.join2(e,t)):e,d=me(`cp ${l}`);function g(n){function g(r){u&&u(),c||Ze.createDataFile(e,t,r,o,i,A),a&&a(),ye(d)}let f=!1;r.preloadPlugins.forEach((e=>{f||e.canHandle(l)&&(e.handle(n,l,g,(()=>{s&&s(),ye(d)})),f=!0)})),f||g(n)}Ie(d),"string"==typeof n?function(e,t,r,n){const o=n?"":me(`al ${e}`);h(e,(r=>{v(r,`Loading data file "${e}" failed (no arrayBuffer).`),t(new Uint8Array(r)),o&&ye(o)}),(t=>{if(!r)throw`Loading data file "${e}" failed.`;r()})),o&&Ie(o)}(n,(e=>{g(e)}),s):g(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=Ze.indexedDB();try{var o=n.open(Ze.DB_NAME(),Ze.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=function(){I("creating db");o.result.createObjectStore(Ze.DB_STORE_NAME)},o.onsuccess=function(){const n=o.result.transaction([Ze.DB_STORE_NAME],"readwrite"),i=n.objectStore(Ze.DB_STORE_NAME);let a=0,s=0;const c=e.length;function A(){0==s?t():r()}e.forEach((e=>{const t=i.put(Ze.analyzePath(e).object.contents,e);t.onsuccess=function(){a++,a+s==c&&A()},t.onerror=function(){s++,a+s==c&&A()}})),n.onerror=r},o.onerror=r},loadFilesFromDB(e,t,r){t=t||function(){},r=r||function(){};const n=Ze.indexedDB();try{var o=n.open(Ze.DB_NAME(),Ze.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=r,o.onsuccess=function(){const n=o.result;try{var i=n.transaction([Ze.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}const a=i.objectStore(Ze.DB_STORE_NAME);let s=0,c=0;const A=e.length;function u(){0==c?t():r()}e.forEach((e=>{const t=a.get(e);t.onsuccess=function(){Ze.analyzePath(e).exists&&Ze.unlink(e),Ze.createDataFile(Ge.dirname(e),Ge.basename(e),t.result,!0,!0,!0),s++,s+c==A&&u()},t.onerror=function(){c++,s+c==A&&u()}})),i.onerror=r},o.onerror=r},absolutePath(){_e("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder(){_e("FS.createFolder has been removed; use FS.mkdir instead")},createLink(){_e("FS.createLink has been removed; use FS.symlink instead")},joinPath(){_e("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc(){_e("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath(){_e("FS.standardizePath has been removed; use PATH.normalize instead")}},Je={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt(e,t,r){if("/"===t[0])return t;let n;if(-100===e)n=Ze.cwd();else{const t=Ze.getStream(e);if(!t)throw new Ze.ErrnoError(8);n=t.path}if(0==t.length){if(!r)throw new Ze.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(Ze.getPath(e.node)))return-54;throw e}return Z[r>>2]=n.dev,Z[r+4>>2]=0,Z[r+8>>2]=n.ino,Z[r+12>>2]=n.mode,Z[r+16>>2]=n.nlink,Z[r+20>>2]=n.uid,Z[r+24>>2]=n.gid,Z[r+28>>2]=n.rdev,Z[r+32>>2]=0,De=[n.size>>>0,(Be=n.size,+Math.abs(Be)>=1?Be>0?(0|Math.min(+Math.floor(Be/4294967296),4294967295))>>>0:~~+Math.ceil((Be-+(~~Be>>>0))/4294967296)>>>0:0)],Z[r+40>>2]=De[0],Z[r+44>>2]=De[1],Z[r+48>>2]=4096,Z[r+52>>2]=n.blocks,Z[r+56>>2]=n.atime.getTime()/1e3|0,Z[r+60>>2]=0,Z[r+64>>2]=n.mtime.getTime()/1e3|0,Z[r+68>>2]=0,Z[r+72>>2]=n.ctime.getTime()/1e3|0,Z[r+76>>2]=0,De=[n.ino>>>0,(Be=n.ino,+Math.abs(Be)>=1?Be>0?(0|Math.min(+Math.floor(Be/4294967296),4294967295))>>>0:~~+Math.ceil((Be-+(~~Be>>>0))/4294967296)>>>0:0)],Z[r+80>>2]=De[0],Z[r+84>>2]=De[1],0},doMsync(e,t,r,n,o){const i=z.slice(e,e+r);Ze.msync(t,i,o,r,n)},doMkdir:(e,t)=>("/"===(e=Ge.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),Ze.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 Ze.mknod(e,t,r),0},doReadlink(e,t,r){if(r<=0)return-28;const n=Ze.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=Ze.lookupPath(e,{follow:!0}).node,!r)return-44;let n="";return 4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&Ze.nodePermissions(r,n)?-2:0},doDup(e,t,r){const n=Ze.getStream(r);return n&&Ze.close(n),Ze.open(e,t,0,r,r).fd},doReadv(e,t,r,n){let o=0;for(let i=0;i<r;i++){const r=Z[t+8*i>>2],a=Z[t+(8*i+4)>>2],s=Ze.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=Z[t+8*i>>2],a=Z[t+(8*i+4)>>2],s=Ze.write(e,V,r,a,n);if(s<0)return-1;o+=s}return o},varargs:void 0,get(){v(null!=Je.varargs),Je.varargs+=4;return Z[Je.varargs-4>>2]},getStr:e=>M(e),getStreamFromFD(e){const t=Ze.getStream(e);if(!t)throw new Ze.ErrnoError(8);return t},get64:(e,t)=>(v(e>=0?0===t:-1===t),e)};function qe(e){if(void 0===e)return"_unknown";const t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=48&&t<=57?`_${e}`:e}function et(e,t){return e=qe(e),new Function("body",`return function ${e}() {\n "use strict"; return body.apply(this, arguments);\n};\n`)(t)}const tt=[],rt=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function nt(){let e=0;for(let t=5;t<rt.length;++t)void 0!==rt[t]&&++e;return e}function ot(){for(let e=5;e<rt.length;++e)if(void 0!==rt[e])return rt[e];return null}function it(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:{const t=tt.length?tt.pop():rt.length;return rt[t]={refcount:1,value:e},t}}}function at(e,t){const r=et(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 st;var ct=void 0;function At(e){let t="",r=e;for(;z[r];)t+=ct[z[r++]];return t}function ut(){return Object.keys(pt).length}function lt(){const e=[];for(const t in pt)pt.hasOwnProperty(t)&&e.push(pt[t]);return e}const dt=[];function gt(){for(;dt.length;){const e=dt.pop();e.$$.deleteScheduled=!1,e.delete()}}let ft;function ht(e){ft=e,dt.length&&ft&&ft(gt)}var pt={};let Et;function mt(e){throw new Et(e)}function It(e,t){for(void 0===t&&mt("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function yt(e){return e||mt(`Cannot use deleted val. handle = ${e}`),rt[e].value}const _t={};function wt(e){const t=dn(e),r=At(t);return An(t),r}function Ct(e,t){const r=_t[e];return void 0===r&&mt(`${t} has unknown type ${wt(e)}`),r}function bt(e){}let Bt=!1;function Dt(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 Ot(e){return"undefined"==typeof FinalizationGroup?(Ot=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?Dt(e):console.warn(`object already deleted: ${e.ptr}`)}})),bt=function(e){Bt.unregister(e.$$)},(Ot=function(e){return Bt.register(e,e.$$,e.$$),e})(e))}const Tt={};function vt(e){for(;e.length;){const t=e.pop();e.pop()(t)}}function Qt(e){return this.fromWireType(J[e>>2])}const Pt={},Mt={};let Rt;function St(e){throw new Rt(e)}function Ft(e,t,r){function n(t){const n=r(t);n.length!==e.length&&St("Mismatched type converter count");for(let t=0;t<e.length;++t)kt(e[t],n[t])}e.forEach((e=>{Mt[e]=t}));const o=new Array(t.length),i=[];let a=0;t.forEach(((e,t)=>{_t.hasOwnProperty(e)?o[t]=_t[e]:(i.push(e),Pt.hasOwnProperty(e)||(Pt[e]=[]),Pt[e].push((()=>{o[t]=_t[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 kt(e,t,r){if(r=r||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");const{name:n}=t;if(e||mt(`type "${n}" must have a positive integer typeid pointer`),_t.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;mt(`Cannot register type '${n}' twice`)}if(_t[e]=t,delete Mt[e],Pt.hasOwnProperty(e)){const t=Pt[e];delete Pt[e],t.forEach((e=>{e()}))}}function Nt(e){if(!(this instanceof Yt))return!1;if(!(e instanceof Yt))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 Ut(e){var t;mt(`${t=e,t.$$.ptrType.registeredClass.name} instance already deleted`)}function jt(){if(this.$$.ptr||Ut(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;const e=Ot(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 Lt(){this.$$.ptr||Ut(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&mt("Object already scheduled for deletion"),bt(this),Dt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Ht(){return!this.$$.ptr}function Gt(){return this.$$.ptr||Ut(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&mt("Object already scheduled for deletion"),dt.push(this),1===dt.length&&ft&&ft(gt),this.$$.deleteScheduled=!0,this}function Yt(){}const Xt={};function Wt(e,t,r){if(void 0===e[t].overloadTable){const n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||mt(`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 Vt(e,t,n){r.hasOwnProperty(e)?((void 0===n||void 0!==r[e].overloadTable&&void 0!==r[e].overloadTable[n])&&mt(`Cannot register public name '${e}' twice`),Wt(r,e,e),r.hasOwnProperty(n)&&mt(`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 zt(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 $t(e,t,r){for(;t!==r;)t.upcast||mt(`Expected null or instance of ${r.name}, got an instance of ${t.name}`),e=t.upcast(e),t=t.baseClass;return e}function Kt(e,t){if(null===t)return this.isReference&&mt(`null is not a valid ${this.name}`),0;t.$$||mt(`Cannot pass "${pr(t)}" as a ${this.name}`),t.$$.ptr||mt(`Cannot pass deleted object as a pointer of type ${this.name}`);const r=t.$$.ptrType.registeredClass;return $t(t.$$.ptr,r,this.registeredClass)}function Zt(e,t){let r;if(null===t)return this.isReference&&mt(`null is not a valid ${this.name}`),this.isSmartPointer?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t.$$||mt(`Cannot pass "${pr(t)}" as a ${this.name}`),t.$$.ptr||mt(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&t.$$.ptrType.isConst&&mt(`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=$t(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&mt("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:mt(`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,it((()=>{n.delete()}))),null!==e&&e.push(this.rawDestructor,r)}break;default:mt("Unsupporting sharing policy")}return r}function Jt(e,t){if(null===t)return this.isReference&&mt(`null is not a valid ${this.name}`),0;t.$$||mt(`Cannot pass "${pr(t)}" as a ${this.name}`),t.$$.ptr||mt(`Cannot pass deleted object as a pointer of type ${this.name}`),t.$$.ptrType.isConst&&mt(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);const r=t.$$.ptrType.registeredClass;return $t(t.$$.ptr,r,this.registeredClass)}function qt(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function er(e){this.rawDestructor&&this.rawDestructor(e)}function tr(e){null!==e&&e.delete()}function rr(e,t,r){if(t===r)return e;if(void 0===r.baseClass)return null;const n=rr(e,t,r.baseClass);return null===n?null:r.downcast(n)}function nr(e,t){t.ptrType&&t.ptr||St("makeClassHandle requires ptr and ptrType");return!!t.smartPtrType!==!!t.smartPtr&&St("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Ot(Object.create(e,{$$:{value:t}}))}function or(e){const t=this.getPointee(e);if(!t)return this.destructor(e),null;const r=function(e,t){return t=It(e,t),pt[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?nr(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):nr(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}const o=this.registeredClass.getActualType(t),i=Xt[o];if(!i)return n.call(this);let a;a=this.isConst?i.constPointerType:i.pointerType;const s=rr(t,this.registeredClass,a.registeredClass);return null===s?n.call(this):this.isSmartPointer?nr(a.registeredClass.instancePrototype,{ptrType:a,ptr:s,smartPtrType:this,smartPtr:e}):nr(a.registeredClass.instancePrototype,{ptrType:a,ptr:s})}function ir(e,t,r,n,o,i,a,s,c,A,u){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=c,this.rawShare=A,this.rawDestructor=u,o||void 0!==t.baseClass?this.toWireType=Zt:n?(this.toWireType=Kt,this.destructorFunction=null):(this.toWireType=Jt,this.destructorFunction=null)}function ar(e,t,n){r.hasOwnProperty(e)||St("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 sr(e,t,n){return e.includes("j")?function(e,t,n){v(`dynCall_${e}`in r,`bad function pointer type - no table for sig '${e}'`),n&&n.length?v(n.length===e.substring(1).replace(/j/g,"--").length):v(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):(v(oe.get(t),`missing table entry in dynCall: ${t}`),oe.get(t).apply(null,n))}function cr(e,t){const r=(e=At(e)).includes("j")?function(e,t){v(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 sr(e,t,r)}}(e,t):oe.get(t);return"function"!=typeof r&&mt(`unknown function pointer with signature ${e}: ${t}`),r}let Ar;function ur(e,t){const r=[],n={};throw t.forEach((function e(t){n[t]||_t[t]||(Mt[t]?Mt[t].forEach(e):(r.push(t),n[t]=!0))})),new Ar(`${e}: ${r.map(wt).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=et(e.name||"unknownFunctionName",(()=>{}));r.prototype=e.prototype;const n=new r,o=e.apply(n,t);return o instanceof Object?o:n}function dr(e,t,r,n,o){const i=t.length;i<2&&mt("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 c=1;c<t.length;++c)if(null!==t[c]&&void 0===t[c].destructorFunction){s=!0;break}const A="void"!==t[0].name;let u="",l="";for(c=0;c<i-2;++c)u+=`${0!==c?", ":""}arg${c}`,l+=`${0!==c?", ":""}arg${c}Wired`;let d=`return function ${qe(e)}(${u}) {\nif (arguments.length !== ${i-2}) {\nthrowBindingError('function ${e} called with ' + arguments.length + ' arguments, expected ${i-2} args!');\n}\n`;s&&(d+="var destructors = [];\n");const g=s?"destructors":"null",f=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],h=[mt,n,o,vt,t[0],t[1]];a&&(d+=`var thisWired = classParam.toWireType(${g}, this);\n`);for(c=0;c<i-2;++c)d+=`var arg${c}Wired = argType${c}.toWireType(${g}, arg${c}); // ${t[c+2].name}\n`,f.push(`argType${c}`),h.push(t[c+2]);if(a&&(l=`thisWired${l.length>0?", ":""}${l}`),d+=`${A?"var rv = ":""}invoker(fn${l.length>0?", ":""}${l});\n`,s)d+="runDestructors(destructors);\n";else for(c=a?1:2;c<t.length;++c){const e=1===c?"thisWired":`arg${c-2}Wired`;null!==t[c].destructorFunction&&(d+=`${e}_dtor(${e}); // ${t[c].name}\n`,f.push(`${e}_dtor`),h.push(t[c].destructorFunction))}A&&(d+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),d+="}\n",f.push(d);return lr(Function,f).apply(null,h)}function gr(e,t){const r=[];for(let n=0;n<e;n++)r.push(Z[(t>>2)+n]);return r}function fr(e,t,r){return e instanceof Object||mt(`${r} with invalid "this": ${e}`),e instanceof t.registeredClass.constructor||mt(`${r} incompatible with "this" of type ${e.constructor.name}`),e.$$.ptr||mt(`cannot call emscripten binding method ${r} on deleted object`),$t(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)}function hr(e){e>4&&0==--rt[e].refcount&&(rt[e]=void 0,tt.push(e))}function pr(e){if(null===e)return"null";const t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():`${e}`}function Er(e,t){switch(t){case 2:return function(e){return this.fromWireType(q[e>>2])};case 3:return function(e){return this.fromWireType(ee[e>>3])};default:throw new TypeError(`Unknown float type: ${e}`)}}function mr(e,t,r){switch(t){case 0:return r?function(e){return V[e]}:function(e){return z[e]};case 1:return r?function(e){return $[e>>1]}:function(e){return K[e>>1]};case 2:return r?function(e){return Z[e>>2]}:function(e){return J[e>>2]};default:throw new TypeError(`Unknown integer type: ${e}`)}}const Ir={};const yr=[];const _r=[];function wr(e){try{return D.grow(e-W.byteLength+65535>>>16),te(D.buffer),1}catch(t){y(`emscripten_realloc_buffer: Attempted to grow heap from ${W.byteLength} bytes to ${e} bytes, but got error: ${t}`)}}function Cr(e){_e("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}const br={};function Br(e){e.forEach((e=>{const t=Cr();t&&(br[t]=e)}))}var Dr={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){Dr.lastError||(Dr.lastError=e)},getNewId(e){const t=Dr.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=Dr.log2ceilLookup(Dr.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=Dr.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=rn.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);const e=Dr.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=Dr.log2ceilLookup(e),r=Dr.currentContext.tempVertexBuffers1[t],n=Dr.currentContext.tempVertexBufferCounters1[t];Dr.currentContext.tempVertexBufferCounters1[t]=Dr.currentContext.tempVertexBufferCounters1[t]+1&Dr.numTempVertexBuffersPerSize-1;const o=r[n];if(o)return o;const i=rn.getParameter(34964);return r[n]=rn.createBuffer(),rn.bindBuffer(34962,r[n]),rn.bufferData(34962,1<<t,35048),rn.bindBuffer(34962,i),r[n]},getTempIndexBuffer:function(e){const t=Dr.log2ceilLookup(e),r=Dr.currentContext.tempIndexBuffers[t];if(r)return r;const n=rn.getParameter(34965);return Dr.currentContext.tempIndexBuffers[t]=rn.createBuffer(),rn.bindBuffer(34963,Dr.currentContext.tempIndexBuffers[t]),rn.bufferData(34963,1<<t,35048),rn.bindBuffer(34963,n),Dr.currentContext.tempIndexBuffers[t]},newRenderingFrameStarted:function(){if(!Dr.currentContext)return;let e=Dr.currentContext.tempVertexBuffers1;Dr.currentContext.tempVertexBuffers1=Dr.currentContext.tempVertexBuffers2,Dr.currentContext.tempVertexBuffers2=e,e=Dr.currentContext.tempVertexBufferCounters1,Dr.currentContext.tempVertexBufferCounters1=Dr.currentContext.tempVertexBufferCounters2,Dr.currentContext.tempVertexBufferCounters2=e;const t=Dr.log2ceilLookup(Dr.MAX_TEMP_BUFFER_SIZE);for(let e=0;e<=t;++e)Dr.currentContext.tempVertexBufferCounters1[e]=0},getSource(e,t,r,n){let o="";for(let e=0;e<t;++e){const t=n?Z[n+4*e>>2]:-1;o+=M(Z[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*Dr.byteSizeByType[t-Dr.byteSizeByTypeRoot]*n},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(e){Dr.resetBufferBinding=!1;for(let t=0;t<Dr.currentContext.maxVertexAttribs;++t){const r=Dr.currentContext.clientBuffers[t];if(!r.clientside||!r.enabled)continue;Dr.resetBufferBinding=!0;const n=Dr.calcBufLength(r.size,r.type,r.stride,e),o=Dr.getTempVertexBuffer(n);rn.bindBuffer(34962,o),rn.bufferSubData(34962,0,z.subarray(r.ptr,r.ptr+n)),r.vertexAttribPointerAdaptor.call(rn,t,r.size,r.type,r.normalized,r.stride,0)}},postDrawHandleClientVertexAttribBindings:function(){Dr.resetBufferBinding&&rn.bindBuffer(34962,Dr.buffers[rn.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 Dr.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(),Dr.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 c=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget);const A=t.getParameter(3042);A&&t.disable(3042);const u=t.getParameter(2884);u&&t.disable(2884);const l=t.getParameter(2929);l&&t.disable(2929);const d=t.getParameter(2960);if(d&&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)}d&&t.enable(2960),l&&t.enable(2929),u&&t.enable(2884),A&&t.enable(3042),t.bindTexture(3553,c),t.activeTexture(s),t.bindBuffer(34962,a),t.useProgram(n)}t.bindFramebuffer(36160,n),r&&t.enable(3089)},registerContext(e,t){const r=Dr.getNewId(Dr.contexts),n={handle:r,attributes:t,version:t.majorVersion,GLctx:e};e.canvas&&(e.canvas.GLctxObject=n),Dr.contexts[r]=n,(void 0===t.enableExtensionsByDefault||t.enableExtensionsByDefault)&&Dr.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 Dr.generateTempBuffers(!1,n),t.renderViaOffscreenBackBuffer&&Dr.createOffscreenFramebuffer(n),r},makeContextCurrent:e=>(Dr.currentContext=Dr.contexts[e],r.ctx=rn=Dr.currentContext&&Dr.currentContext.GLctx,!(e&&!rn)),getContext:e=>Dr.contexts[e],deleteContext(e){Dr.currentContext===Dr.contexts[e]&&(Dr.currentContext=null),"object"==typeof Or&&Or.removeAllHandlersOnTarget(Dr.contexts[e].GLctx.canvas),Dr.contexts[e]&&Dr.contexts[e].GLctx.canvas&&(Dr.contexts[e].GLctx.canvas.GLctxObject=void 0),Dr.contexts[e]=null},initExtensions(e){if(e||(e=Dr.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)}))}},Or={inEventHandler:0,removeAllEventListeners(){for(let e=Or.eventHandlers.length-1;e>=0;--e)Or._removeHandler(e);Or.eventHandlers=[],Or.deferredCalls=[]},registerRemoveEventListeners(){Or.removeEventListenersRegistered||(Ae.push(Or.removeAllEventListeners),Or.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 Or.deferredCalls){const o=Or.deferredCalls[t];if(o.targetFunction==e&&n(o.argsList,r))return}Or.deferredCalls.push({targetFunction:e,precedence:t,argsList:r}),Or.deferredCalls.sort(((e,t)=>e.precedence<t.precedence))},removeDeferredCalls(e){for(let t=0;t<Or.deferredCalls.length;++t)Or.deferredCalls[t].targetFunction==e&&(Or.deferredCalls.splice(t,1),--t)},canPerformEventHandlerRequests:()=>Or.inEventHandler&&Or.currentEventHandler.allowsDeferredCalls,runDeferredCalls(){if(Or.canPerformEventHandlerRequests())for(let e=0;e<Or.deferredCalls.length;++e){const t=Or.deferredCalls[e];Or.deferredCalls.splice(e,1),--e,t.targetFunction.apply(null,t.argsList)}},eventHandlers:[],removeAllHandlersOnTarget(e,t){for(let r=0;r<Or.eventHandlers.length;++r)Or.eventHandlers[r].target!=e||t&&t!=Or.eventHandlers[r].eventTypeString||Or._removeHandler(r--)},_removeHandler(e){const t=Or.eventHandlers[e];t.target.removeEventListener(t.eventTypeString,t.eventListenerFunc,t.useCapture),Or.eventHandlers.splice(e,1)},registerOrRemoveHandler(e){const t=function(t){++Or.inEventHandler,Or.currentEventHandler=e,Or.runDeferredCalls(),e.handlerFunc(t),Or.runDeferredCalls(),--Or.inEventHandler};if(e.callbackfunc)e.eventListenerFunc=t,e.target.addEventListener(e.eventTypeString,t,e.useCapture),Or.eventHandlers.push(e),Or.registerRemoveEventListeners();else for(let t=0;t<Or.eventHandlers.length;++t)Or.eventHandlers[t].target==e.target&&Or.eventHandlers[t].eventTypeString==e.eventTypeString&&Or._removeHandler(t--)},getNodeNameForTarget:e=>e?e==window?"#window":e==screen?"#screen":e&&e.nodeName?e.nodeName:"":"",fullscreenEnabled:()=>document.fullscreenEnabled||document.webkitFullscreenEnabled};const Tr=["default","low-power","high-performance"],vr=[0,"undefined"!=typeof document?document:0,"undefined"!=typeof window?window:0];function Qr(e){return"number"==typeof e&&(e=M(e)),e&&"#canvas"!==e?void 0!==Dr&&Dr.offscreenCanvases[e]?Dr.offscreenCanvases[e]:function(e){_("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=vr[e]||M(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!==Dr&&Dr.offscreenCanvases.canvas?Dr.offscreenCanvases.canvas:r.canvas}function Pr(){return Dr.currentContext?Dr.currentContext.handle:0}function Mr(e){return Dr.makeContextCurrent(e)?0:-5}r._emscripten_webgl_get_current_context=Pr,r._emscripten_webgl_make_context_current=Mr;const Rr={};function Sr(){if(!Sr.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`,_:c||"./this.program"};for(var e in Rr)void 0===Rr[e]?delete t[e]:t[e]=Rr[e];const r=[];for(var e in t)r.push(`${e}=${t[e]}`);Sr.strings=r}return Sr.strings}const Fr=[];function xr(e,t,r,n){for(let o=0;o<e;o++){const e=rn[r](),i=e&&Dr.getNewId(n);e?(e.name=i,n[i]=e):Dr.recordError(1282),Z[t+4*o>>2]=i}}function kr(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*Z[e+4>>2]}(e);r!=t&&_(`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 Nr(e){const t=F(e)+1,r=un(t);return S(e,r,t),r}function Ur(e){return"]"==e.slice(-1)&&e.lastIndexOf("[")}function jr(e){return 0==(e-=5120)?V:1==e?z:2==e?$:4==e?Z:6==e?q:5==e||28922==e||28520==e||30779==e||30782==e?J:K}function Lr(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function Hr(e,t,r,n,o,i){const a=jr(e),s=Lr(a),c=1<<s,A=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)*c,u=function(e,t,r,n){const o=function(e,t){return e+t-1&-t}(e*r,n);return t*o}(r,n,A,Dr.unpackAlignment);return a.subarray(o>>s,o+u>>s)}function Gr(e){const t=rn.currentProgram;if(t){let r=t.uniformLocsById[e];return"number"==typeof r&&(t.uniformLocsById[e]=r=rn.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?`[${r}]`:""))),r}Dr.recordError(1282)}const Yr=[];const Xr=[];function Wr(){if(Wr.called)return;Wr.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"}Z[pn()>>2]=60*i,Z[hn()>>2]=Number(n!=o);const s=a(t),c=a(r),A=G(s),u=G(c);o<n?(Z[fn()>>2]=A,Z[fn()+4>>2]=u):(Z[fn()>>2]=u,Z[fn()+4>>2]=A)}function Vr(e){return e%4==0&&(e%100!=0||e%400==0)}function zr(e,t){let r=0;for(let n=0;n<=t;r+=e[n++]);return r}const $r=[31,29,31,30,31,30,31,31,30,31,30,31],Kr=[31,28,31,30,31,30,31,31,30,31,30,31];function Zr(e,t){const r=new Date(e.getTime());for(;t>0;){const e=Vr(r.getFullYear()),n=r.getMonth(),o=(e?$r:Kr)[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 Jr(e,t,r,n){const o=Z[n+40>>2],i={tm_sec:Z[n>>2],tm_min:Z[n+4>>2],tm_hour:Z[n+8>>2],tm_mday:Z[n+12>>2],tm_mon:Z[n+16>>2],tm_year:Z[n+20>>2],tm_wday:Z[n+24>>2],tm_yday:Z[n+28>>2],tm_isdst:Z[n+32>>2],tm_gmtoff:Z[n+36>>2],tm_zone:o?M(o):""};let a=M(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 c in s)a=a.replace(new RegExp(c,"g"),s[c]);const A=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],u=["January","February","March","April","May","June","July","August","September","October","November","December"];function l(e,t,r){let n="number"==typeof e?e.toString():e||"";for(;n.length<t;)n=r[0]+n;return n}function d(e,t){return l(e,t,"0")}function g(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 f(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 h(e){const t=Zr(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=f(r),i=f(n);return g(o,t)<=0?g(i,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}const p={"%a":e=>A[e.tm_wday].substring(0,3),"%A":e=>A[e.tm_wday],"%b":e=>u[e.tm_mon].substring(0,3),"%B":e=>u[e.tm_mon],"%C":e=>d((e.tm_year+1900)/100|0,2),"%d":e=>d(e.tm_mday,2),"%e":e=>l(e.tm_mday,2," "),"%g":e=>h(e).toString().substring(2),"%G":e=>h(e),"%H":e=>d(e.tm_hour,2),"%I"(e){let t=e.tm_hour;return 0==t?t=12:t>12&&(t-=12),d(t,2)},"%j":e=>d(e.tm_mday+zr(Vr(e.tm_year+1900)?$r:Kr,e.tm_mon-1),3),"%m":e=>d(e.tm_mon+1,2),"%M":e=>d(e.tm_min,2),"%n":()=>"\n","%p":e=>e.tm_hour>=0&&e.tm_hour<12?"AM":"PM","%S":e=>d(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:Zr(t,7-t.getDay()),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(g(r,n)<0){const e=zr(Vr(n.getFullYear())?$r:Kr,n.getMonth()-1)-31,t=31-r.getDate()+e+n.getDate();return d(Math.ceil(t/7),2)}return 0===g(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=f(t),o=f(r),i=Zr(new Date(e.tm_year+1900,0,1),e.tm_yday);if(g(i,n)<0)return"53";if(g(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(),d(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:Zr(t,0===t.getDay()?1:7-t.getDay()+1),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(g(r,n)<0){const e=zr(Vr(n.getFullYear())?$r:Kr,n.getMonth()-1)-31,t=31-r.getDate()+e+n.getDate();return d(Math.ceil(t/7),2)}return 0===g(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 c in p)a.includes(c)&&(a=a.replace(new RegExp(c,"g"),p[c](i)));const E=sn(a,!1);return E.length>t?0:(Y(E,e),E.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 qr=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=Ze.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n},en=365,tn=146;let rn;Object.defineProperties(qr.prototype,{read:{get(){return(this.mode&en)===en},set(e){e?this.mode|=en:this.mode&=-366}},write:{get(){return(this.mode&tn)===tn},set(e){e?this.mode|=tn:this.mode&=-147}},isFolder:{get(){return Ze.isDir(this.mode)}},isDevice:{get(){return Ze.isChrdev(this.mode)}}}),Ze.FSNode=qr,Ze.staticInit(),r.FS_createPath=Ze.createPath,r.FS_createDataFile=Ze.createDataFile,r.FS_createPreloadedFile=Ze.createPreloadedFile,r.FS_createLazyFile=Ze.createLazyFile,r.FS_createDevice=Ze.createDevice,r.FS_unlink=Ze.unlink,r.count_emval_handles=nt,r.get_first_emval=ot,st=r.PureVirtualError=at(Error,"PureVirtualError"),function(){const e=new Array(256);for(let t=0;t<256;++t)e[t]=String.fromCharCode(t);ct=e}(),r.getInheritedInstanceCount=ut,r.getLiveInheritedInstances=lt,r.flushPendingDeletes=gt,r.setDelayFunction=ht,Et=r.BindingError=at(Error,"BindingError"),Rt=r.InternalError=at(Error,"InternalError"),Yt.prototype.isAliasOf=Nt,Yt.prototype.clone=jt,Yt.prototype.delete=Lt,Yt.prototype.isDeleted=Ht,Yt.prototype.deleteLater=Gt,ir.prototype.getPointee=qt,ir.prototype.destructor=er,ir.prototype.argPackAdvance=8,ir.prototype.readValueFromPointer=Qt,ir.prototype.deleteObject=tr,ir.prototype.fromWireType=or,Ar=r.UnboundTypeError=at(Error,"UnboundTypeError");for(var nn=0;nn<32;++nn)Fr.push(new Array(nn));const on=new Float32Array(288);for(nn=0;nn<288;++nn)Yr[nn]=on.subarray(0,nn+1);const an=new Int32Array(288);for(nn=0;nn<288;++nn)Xr[nn]=an.subarray(0,nn+1);function sn(e,t,r){const n=r>0?r:F(e)+1,o=new Array(n),i=R(e,o,0,o.length);return t&&(o.length=i),o}"function"==typeof atob&&atob;var cn={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 Ne(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(){yn(0),v(Ue.length>0);const e=Ue.pop();!function(e){if(e.release_ref()&&!e.get_rethrown()){const t=e.get_destructor();t&&oe.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 C(0),0;const t=new ke(e).get_type(),r=new Ne;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return C(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(_n(o,t,r.get_adjusted_ptr_addr()))return C(o),0|r.ptr}return C(t),0|r.ptr},__cxa_find_matching_catch_3:function(){const e=je;if(!e)return C(0),0;const t=new ke(e).get_type(),r=new Ne;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return C(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(_n(o,t,r.get_adjusted_ptr_addr()))return C(o),0|r.ptr}return C(t),0|r.ptr},__cxa_free_exception:Le,__cxa_rethrow:function(){const e=Ue.pop();e||_e("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 Ne(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){Je.varargs=r;try{const r=Je.getStreamFromFD(e);switch(t){case 0:{if((n=Je.get())<0)return-28;let e;return e=Ze.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=Je.get();return r.flags|=n,0;case 12:n=Je.get();return $[n+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return He(28),-1}}catch(e){return void 0!==Ze&&e instanceof Ze.ErrnoError||_e(e),-e.errno}},__sys_ioctl:function(e,t,r){Je.varargs=r;try{const r=Je.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=Je.get();return Z[n>>2]=0,0;case 21520:return r.tty?-28:-59;case 21531:n=Je.get();return Ze.ioctl(r,t,n);default:_e(`bad ioctl syscall ${t}`)}}catch(e){return void 0!==Ze&&e instanceof Ze.ErrnoError||_e(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=Ve(t),!a)return-48;s=!0}else{const c=Ze.getStream(o);if(!c)return-8;const A=Ze.mmap(c,e,t,i,r,n);a=A.ptr,s=A.allocated}return Je.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!==Ze&&e instanceof Ze.ErrnoError||_e(e),-e.errno}},__sys_open:function(e,t,r){Je.varargs=r;try{const n=Je.getStr(e),o=r?Je.get():0;return Ze.open(n,t,o).fd}catch(e){return void 0!==Ze&&e instanceof Ze.ErrnoError||_e(e),-e.errno}},__sys_stat64:function(e,t){try{return e=Je.getStr(e),Je.doStat(Ze.stat,e,t)}catch(e){return void 0!==Ze&&e instanceof Ze.ErrnoError||_e(e),-e.errno}},_embind_create_inheriting_constructor:function(e,t,r){e=At(e),t=Ct(t,"wrapper"),r=yt(r);const n=[].slice,{registeredClass:o}=t,i=o.instancePrototype,{baseClass:a}=o,s=a.instancePrototype,c=o.baseClass.constructor,A=et(e,(function(){o.baseClass.pureVirtualFunctions.forEach((e=>{if(this[e]===s[e])throw new st(`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&&mt("Pass correct 'this' to __construct");const e=c.implement.apply(void 0,[this].concat(n.call(arguments)));bt(e);const{$$:t}=e;var r,a,s;e.notifyOnDestruction(),t.preservePointerOnDelete=!0,Object.defineProperties(this,{$$:{value:t}}),Ot(this),r=o,a=t.ptr,s=this,a=It(r,a),pt.hasOwnProperty(a)?mt(`Tried to register registered instance: ${a}`):pt[a]=s},i.__destruct=function(){var e,t;this===i&&mt("Pass correct 'this' to __destruct"),bt(this),e=o,t=this.$$.ptr,t=It(e,t),pt.hasOwnProperty(t)?delete pt[t]:mt(`Tried to unregister unregistered instance: ${t}`)},A.prototype=Object.create(i);for(const e in r)A.prototype[e]=r[e];return it(A)},_embind_finalize_value_object:function(e){const t=Tt[e];delete Tt[e];const{rawConstructor:r}=t,{rawDestructor:n}=t,o=t.fields;Ft([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:c}=t,A=e[r+o.length],{setter:u}=t,{setterContext:l}=t;i[n]={read:e=>a.fromWireType(s(c,e)),write(e,t){const r=[];u(l,e,A.toWireType(r,t)),vt(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:Qt,destructorFunction:n}]}))},_embind_register_bigint:function(e,t,r,n,o){},_embind_register_bool:function(e,t,r,n,o){const i=xt(r);kt(e,{name:t=At(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=$;else{if(4!==r)throw new TypeError(`Unknown boolean type size: ${t}`);n=Z}return this.fromWireType(n[e>>i])},destructorFunction:null})},_embind_register_class:function(e,t,r,n,o,i,a,s,c,A,u,l,d){u=At(u),i=cr(o,i),s&&(s=cr(a,s)),A&&(A=cr(c,A)),d=cr(l,d);const g=qe(u);Vt(g,(()=>{ur(`Cannot construct ${u} due to unbound types`,[n])})),Ft([e,t,r],n?[n]:[],(t=>{let r,o;t=t[0],n?(r=t.registeredClass,o=r.instancePrototype):o=Yt.prototype;const a=et(g,(function(){if(Object.getPrototypeOf(this)!==c)throw new Et(`Use 'new' to construct ${u}`);if(void 0===l.constructor_body)throw new Et(`${u} has no accessible constructor`);const e=l.constructor_body[arguments.length];if(void 0===e)throw new Et(`Tried to invoke ctor of ${u} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(l.constructor_body).toString()}) parameters instead!`);return e.apply(this,arguments)}));var c=Object.create(o,{constructor:{value:a}});a.prototype=c;var l=new zt(u,a,c,d,r,i,s,A);const f=new ir(u,l,!0,!1,!1),h=new ir(`${u}*`,l,!1,!1,!1),p=new ir(`${u} const*`,l,!1,!0,!1);return Xt[e]={pointerType:h,constPointerType:p},ar(g,a),[f,h,p]}))},_embind_register_class_class_function:function(e,t,r,n,o,i,a){const s=gr(r,n);t=At(t),i=cr(o,i),Ft([],[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 c=e.registeredClass.constructor;return void 0===c[t]?(o.argCount=r-1,c[t]=o):(Wt(c,t,n),c[t].overloadTable[r-1]=o),Ft([],s,(e=>{const o=[e[0],null].concat(e.slice(1)),s=dr(n,o,null,i,a);return void 0===c[t].overloadTable?(s.argCount=r-1,c[t]=s):c[t].overloadTable[r-1]=s,[]})),[]}))},_embind_register_class_constructor:function(e,t,r,n,o,i){v(t>0);const a=gr(t,r);o=cr(n,o),Ft([],[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 Et(`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)},Ft([],a,(n=>(n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=dr(r,n,null,o,i),[]))),[]}))},_embind_register_class_function:function(e,t,r,n,o,i,a,s){const c=gr(r,n);t=At(t),i=cr(o,i),Ft([],[e],(e=>{const n=`${(e=e[0]).name}.${t}`;function o(){ur(`Cannot call ${n} due to unbound types`,c)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(t);const A=e.registeredClass.instancePrototype,u=A[t];return void 0===u||void 0===u.overloadTable&&u.className!==e.name&&u.argCount===r-2?(o.argCount=r-2,o.className=e.name,A[t]=o):(Wt(A,t,n),A[t].overloadTable[r-2]=o),Ft([],c,(o=>{const s=dr(n,o,e,i,a);return void 0===A[t].overloadTable?(s.argCount=r-2,A[t]=s):A[t].overloadTable[r-2]=s,[]})),[]}))},_embind_register_class_property:function(e,t,r,n,o,i,a,s,c,A){t=At(t),o=cr(n,o),Ft([],[e],(e=>{const n=`${(e=e[0]).name}.${t}`,u={get(){ur(`Cannot access ${n} due to unbound types`,[r,a])},enumerable:!0,configurable:!0};return u.set=c?function(){ur(`Cannot access ${n} due to unbound types`,[r,a])}:function(e){mt(`${n} is a read-only property`)},Object.defineProperty(e.registeredClass.instancePrototype,t,u),Ft([],c?[r,a]:[r],(r=>{const a=r[0],u={get(){const t=fr(this,e,`${n} getter`);return a.fromWireType(o(i,t))},enumerable:!0};if(c){c=cr(s,c);const t=r[1];u.set=function(r){const o=fr(this,e,`${n} setter`),i=[];c(A,o,t.toWireType(i,r)),vt(i)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]})),[]}))},_embind_register_emval:function(e,t){kt(e,{name:t=At(t),fromWireType(e){const t=rt[e].value;return hr(e),t},toWireType:(e,t)=>it(t),argPackAdvance:8,readValueFromPointer:Qt,destructorFunction:null})},_embind_register_float:function(e,t,r){const n=xt(r);kt(e,{name:t=At(t),fromWireType:e=>e,toWireType(e,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError(`Cannot convert "${pr(t)}" to ${this.name}`);return t},argPackAdvance:8,readValueFromPointer:Er(t,n),destructorFunction:null})},_embind_register_function:function(e,t,r,n,o,i){const a=gr(t,r);e=At(e),o=cr(n,o),Vt(e,(()=>{ur(`Cannot call ${e} due to unbound types`,a)}),t-1),Ft([],a,(r=>{const n=[r[0],null].concat(r.slice(1));return ar(e,dr(e,n,null,o,i),t-1),[]}))},_embind_register_integer:function(e,t,r,n,o){t=At(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");kt(e,{name:t,fromWireType:a,toWireType(e,r){if("number"!=typeof r&&"boolean"!=typeof r)throw new TypeError(`Cannot convert "${pr(r)}" to ${this.name}`);if(r<n||r>o)throw new TypeError(`Passing a number "${pr(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:mr(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(W,o,r)}kt(e,{name:r=At(r),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},_embind_register_std_string:function(e,t){const r="std::string"===(t=At(t));kt(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==z[i]){const e=M(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(z[e+4+o]);n=r.join("")}return An(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||mt("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&&(An(a),mt("String has UTF-16 code units that do not fit in 8 bits")),z[a+4+s]=e}else for(s=0;s<i;++s)z[a+4+s]=t[s];return null!==e&&e.push(An,a),a},argPackAdvance:8,readValueFromPointer:Qt,destructorFunction(e){An(e)}})},_embind_register_std_wstring:function(e,t,r){let n,o,i,a,s;r=At(r),2===t?(n=k,o=N,a=U,i=function(){return K},s=1):4===t&&(n=j,o=L,a=H,i=function(){return J},s=2),kt(e,{name:r,fromWireType(e){const r=J[e>>2],o=i();let a,c=e+4;for(let i=0;i<=r;++i){const A=e+4+i*t;if(i==r||0==o[A>>s]){const e=n(c,A-c);void 0===a?a=e:(a+=String.fromCharCode(0),a+=e),c=A+t}}return An(e),a},toWireType(e,n){"string"!=typeof n&&mt(`Cannot pass non-string to C++ string type ${r}`);const i=a(n),c=un(4+i+t);return J[c>>2]=i>>s,o(n,c+4,i+t),null!==e&&e.push(An,c),c},argPackAdvance:8,readValueFromPointer:Qt,destructorFunction(e){An(e)}})},_embind_register_value_object:function(e,t,r,n,o,i){Tt[e]={name:At(t),rawConstructor:cr(r,n),rawDestructor:cr(o,i),fields:[]}},_embind_register_value_object_field:function(e,t,r,n,o,i,a,s,c,A){Tt[e].fields.push({fieldName:At(t),getterReturnType:r,getter:cr(n,o),getterContext:i,setterArgumentType:a,setter:cr(s,c),setterContext:A})},_embind_register_void:function(e,t){kt(e,{isVoid:!0,name:t=At(t),argPackAdvance:0,fromWireType(){},toWireType(e,t){}})},_emval_call_void_method:function(e,t,r,n){(e=yr[e])(t=yt(t),r=function(e){const t=Ir[e];return void 0===t?At(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]=Ct(Z[(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 c=0;c<e-1;++c)s+=`${0!==c?", ":""}arg${c}`,i.push(`argType${c}`),a.push(r[1+c]);let A=`return function ${qe(`methodCaller_${o}`)}(handle, name, destructors, args) {\n`,u=0;for(c=0;c<e-1;++c)A+=` var arg${c} = argType${c}.readValueFromPointer(args${u?`+${u}`:""});\n`,u+=r[c+1].argPackAdvance;for(A+=` var rv = handle[name](${s});\n`,c=0;c<e-1;++c)r[c+1].deleteObject&&(A+=` argType${c}.deleteObject(arg${c});\n`);return n.isVoid||(A+=" return retType.toWireType(destructors, rv);\n"),A+="};\n",i.push(A),function(e){const t=yr.length;return yr.push(e),t}(lr(Function,i).apply(null,a))},_emval_incref:function(e){e>4&&(rt[e].refcount+=1)},_emval_take_value:function(e,t){return it((e=Ct(e,"_emval_take_value")).readValueFromPointer(t))},abort:function(){_e()},clock_gettime:function(e,t){let r;if(0===e)r=Date.now();else{if(1!==e&&4!==e)return He(28),-1;r=ve()}return Z[t>>2]=r/1e3|0,Z[t+4>>2]=r%1e3*1e3*1e3|0,0},dlopen:function(e,t){_e("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")},dlsym:function(e,t){_e("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(v(Array.isArray(_r)),v(t%16==0),_r.length=0,t>>=2;r=z[e++];){v(100===r||102===r||105===r);const e=r<105;e&&1&t&&t++,_r.push(e?ee[t++>>1]:Z[t]),++t}return _r}(t,r);return Oe.hasOwnProperty(e)||_e(`No EM_ASM constant found at address ${e}`),Oe[e].apply(null,n)},emscripten_get_heap_max:function(){return 2147483648},emscripten_memcpy_big:function(e,t,r){z.copyWithin(e,t,t+r)},emscripten_pc_get_function:function(e){_e("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")},emscripten_resize_heap:function(e){const t=z.length;v((e>>>=0)>t);const r=2147483648;if(e>r)return y(`Cannot enlarge memory, asked to go up to ${e} bytes, but the limit is 2147483648 bytes!`),!1;for(let o=1;o<=4;o*=2){let i=t*(1+.2/o);i=Math.min(i,e+100663296);var n=Math.min(r,X(Math.max(e,i),65536));if(wr(n))return!0}return y(`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),br.last_addr=Cr(e[2]),br.last_stack=e,br.last_addr},emscripten_stack_unwind_buffer:function(e,t,r){let n;br.last_addr==e?n=br.last_stack:(n=(new Error).stack.split("\n"),"Error"==n[0]&&n.shift(),Br(n));let o=2;for(;n[o]&&Cr(n[o])!=e;)++o;for(var i=0;i<r&&n[i+o];++i)Z[t+4*i>>2]=Cr(n[i+o]);return i},emscripten_thread_sleep:function(e){const t=ve();for(;ve()-t<e;);},emscripten_webgl_create_context:function(e,t){return function(e,t){v(t);const r=t>>2,n=Z[r+6],o={alpha:!!Z[r+0],depth:!!Z[r+1],stencil:!!Z[r+2],antialias:!!Z[r+3],premultipliedAlpha:!!Z[r+4],preserveDrawingBuffer:!!Z[r+5],powerPreference:Tr[n],failIfMajorPerformanceCaveat:!!Z[r+7],majorVersion:Z[r+8],minorVersion:Z[r+9],enableExtensionsByDefault:Z[r+10],explicitSwapControl:Z[r+11],proxyContextToMainThread:Z[r+12],renderViaOffscreenBackBuffer:Z[r+13]};let i=Qr(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(!Dr.offscreenCanvases[i.id])return 0}else Dr.offscreenCanvases[i.id]={canvas:i.transferControlToOffscreen(),canvasSharedPtr:un(12),id:i.id},i.controlTransferredOffscreen=!0;i=Dr.offscreenCanvases[i.id]}return Dr.createContext(i,o)}(e,t)},emscripten_webgl_destroy_context:function(e){Dr.currentContext==e&&(Dr.currentContext=0),Dr.deleteContext(e)},emscripten_webgl_get_context_attributes:function(e,t){if(!t)return-5;if(!(e=Dr.contexts[e]))return-3;let r=e.GLctx;if(!r)return-3;r=r.getContextAttributes(),Z[t>>2]=r.alpha,Z[t+4>>2]=r.depth,Z[t+8>>2]=r.stencil,Z[t+12>>2]=r.antialias,Z[t+16>>2]=r.premultipliedAlpha,Z[t+20>>2]=r.preserveDrawingBuffer;const n=r.powerPreference&&Tr.indexOf(r.powerPreference);return Z[t+24>>2]=n,Z[t+28>>2]=r.failIfMajorPerformanceCaveat,Z[t+32>>2]=e.version,Z[t+36>>2]=0,Z[t+40>>2]=e.attributes.enableExtensionsByDefault,0},emscripten_webgl_get_current_context:Pr,emscripten_webgl_init_context_attributes:function(e){v(e);const t=e>>2;for(let e=0;e<14;++e)Z[t+e]=0;Z[t+0]=Z[t+1]=Z[t+3]=Z[t+4]=Z[t+8]=Z[t+10]=1},emscripten_webgl_make_context_current:Mr,environ_get:function(e,t){let r=0;return Sr().forEach(((n,o)=>{const i=t+r;Z[e+4*o>>2]=i,function(e,t,r){for(let r=0;r<e.length;++r)v(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=Sr();Z[e>>2]=r.length;let n=0;return r.forEach((e=>{n+=e.length+1})),Z[t>>2]=n,0},exit:Qe,fd_close:function(e){try{const t=Je.getStreamFromFD(e);return Ze.close(t),0}catch(e){return void 0!==Ze&&e instanceof Ze.ErrnoError||_e(e),e.errno}},fd_read:function(e,t,r,n){try{const o=Je.getStreamFromFD(e),i=Je.doReadv(o,t,r);return Z[n>>2]=i,0}catch(e){return void 0!==Ze&&e instanceof Ze.ErrnoError||_e(e),e.errno}},fd_seek:function(e,t,r,n,o){try{const i=Je.getStreamFromFD(e),a=r*4294967296+(t>>>0),s=9007199254740992;return a<=-s||a>=s?-61:(Ze.llseek(i,a,n),De=[i.position>>>0,(Be=i.position,+Math.abs(Be)>=1?Be>0?(0|Math.min(+Math.floor(Be/4294967296),4294967295))>>>0:~~+Math.ceil((Be-+(~~Be>>>0))/4294967296)>>>0:0)],Z[o>>2]=De[0],Z[o+4>>2]=De[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0)}catch(e){return void 0!==Ze&&e instanceof Ze.ErrnoError||_e(e),e.errno}},fd_write:function(e,t,r,n){try{const o=Je.getStreamFromFD(e),i=Je.doWritev(o,t,r);return Z[n>>2]=i,0}catch(e){return void 0!==Ze&&e instanceof Ze.ErrnoError||_e(e),e.errno}},getTempRet0:function(){return w},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){rn.activeTexture(e)},glAttachShader:function(e,t){rn.attachShader(Dr.programs[e],Dr.shaders[t])},glBindAttribLocation:function(e,t,r){rn.bindAttribLocation(Dr.programs[e],t,M(r))},glBindBuffer:function(e,t){34962==e?rn.currentArrayBufferBinding=t:34963==e&&(rn.currentElementArrayBufferBinding=t),35051==e?rn.currentPixelPackBufferBinding=t:35052==e&&(rn.currentPixelUnpackBufferBinding=t),rn.bindBuffer(e,Dr.buffers[t])},glBindBufferBase:function(e,t,r){rn.bindBufferBase(e,t,Dr.buffers[r])},glBindFramebuffer:function(e,t){rn.bindFramebuffer(e,t?Dr.framebuffers[t]:Dr.currentContext.defaultFbo)},glBindTexture:function(e,t){rn.bindTexture(e,Dr.textures[t])},glBindVertexArray:function(e){rn.bindVertexArray(Dr.vaos[e]);const t=rn.getParameter(34965);rn.currentElementArrayBufferBinding=t?0|t.name:0},glBufferData:function(e,t,r,n){Dr.currentContext.version>=2?r?rn.bufferData(e,z,n,r,t):rn.bufferData(e,t,n):rn.bufferData(e,r?z.subarray(r,r+t):t,n)},glClientWaitSync:function(e,t,r,n){return rn.clientWaitSync(Dr.syncs[e],t,(o=r,v((i=n)===(0|i)),(o>>>0)+4294967296*i));var o,i},glCompileShader:function(e){rn.compileShader(Dr.shaders[e])},glCreateProgram:function(){const e=Dr.getNewId(Dr.programs),t=rn.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,Dr.programs[e]=t,e},glCreateShader:function(e){const t=Dr.getNewId(Dr.shaders);return Dr.shaders[t]=rn.createShader(e),t},glDeleteBuffers:function(e,t){for(let r=0;r<e;r++){const e=Z[t+4*r>>2],n=Dr.buffers[e];n&&(rn.deleteBuffer(n),n.name=0,Dr.buffers[e]=null,e==rn.currentArrayBufferBinding&&(rn.currentArrayBufferBinding=0),e==rn.currentElementArrayBufferBinding&&(rn.currentElementArrayBufferBinding=0),e==rn.currentPixelPackBufferBinding&&(rn.currentPixelPackBufferBinding=0),e==rn.currentPixelUnpackBufferBinding&&(rn.currentPixelUnpackBufferBinding=0))}},glDeleteFramebuffers:function(e,t){for(let r=0;r<e;++r){const e=Z[t+4*r>>2],n=Dr.framebuffers[e];n&&(rn.deleteFramebuffer(n),n.name=0,Dr.framebuffers[e]=null)}},glDeleteProgram:function(e){if(!e)return;const t=Dr.programs[e];t?(rn.deleteProgram(t),t.name=0,Dr.programs[e]=null):Dr.recordError(1281)},glDeleteShader:function(e){if(!e)return;const t=Dr.shaders[e];t?(rn.deleteShader(t),Dr.shaders[e]=null):Dr.recordError(1281)},glDeleteSync:function(e){if(!e)return;const t=Dr.syncs[e];t?(rn.deleteSync(t),t.name=0,Dr.syncs[e]=null):Dr.recordError(1281)},glDeleteTextures:function(e,t){for(let r=0;r<e;r++){const e=Z[t+4*r>>2],n=Dr.textures[e];n&&(rn.deleteTexture(n),n.name=0,Dr.textures[e]=null)}},glDeleteVertexArrays:function(e,t){for(let r=0;r<e;r++){const e=Z[t+4*r>>2];rn.deleteVertexArray(Dr.vaos[e]),Dr.vaos[e]=null}},glDisable:function(e){rn.disable(e)},glDisableVertexAttribArray:function(e){Dr.currentContext.clientBuffers[e].enabled=!1,rn.disableVertexAttribArray(e)},glDrawArrays:function(e,t,r){Dr.preDrawHandleClientVertexAttribBindings(t+r),rn.drawArrays(e,t,r),Dr.postDrawHandleClientVertexAttribBindings()},glDrawBuffers:function(e,t){const r=Fr[e];for(let n=0;n<e;n++)r[n]=Z[t+4*n>>2];rn.drawBuffers(r)},glEnableVertexAttribArray:function(e){Dr.currentContext.clientBuffers[e].enabled=!0,rn.enableVertexAttribArray(e)},glFenceSync:function(e,t){const r=rn.fenceSync(e,t);if(r){const e=Dr.getNewId(Dr.syncs);return r.name=e,Dr.syncs[e]=r,e}return 0},glFinish:function(){rn.finish()},glFlush:function(){rn.flush()},glFramebufferTexture2D:function(e,t,r,n,o){rn.framebufferTexture2D(e,t,r,Dr.textures[n],o)},glFramebufferTextureLayer:function(e,t,r,n,o){rn.framebufferTextureLayer(e,t,Dr.textures[r],n,o)},glGenBuffers:function(e,t){xr(e,t,"createBuffer",Dr.buffers)},glGenFramebuffers:function(e,t){xr(e,t,"createFramebuffer",Dr.framebuffers)},glGenTextures:function(e,t){xr(e,t,"createTexture",Dr.textures)},glGenVertexArrays:function(e,t){xr(e,t,"createVertexArray",Dr.vaos)},glGetAttribLocation:function(e,t){return rn.getAttribLocation(Dr.programs[e],M(t))},glGetError:function(){const e=rn.getError()||Dr.lastError;return Dr.lastError=0,e},glGetIntegerv:function(e,t){!function(e,t,r){if(!t)return void Dr.recordError(1281);let n;switch(e){case 36346:n=1;break;case 36344:return void(0!=r&&1!=r&&Dr.recordError(1280));case 34814:case 36345:n=0;break;case 34466:var o=rn.getParameter(34467);n=o?o.length:0;break;case 33309:if(Dr.currentContext.version<2)return void Dr.recordError(1282);n=2*(rn.getSupportedExtensions()||[]).length;break;case 33307:case 33308:if(Dr.currentContext.version<2)return void Dr.recordError(1280);n=33307==e?3:0}if(void 0===n){const o=rn.getParameter(e);switch(typeof o){case"number":n=o;break;case"boolean":n=o?1:0;break;case"string":return void Dr.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 Dr.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:Z[t+4*e>>2]=o[e];break;case 2:q[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 Dr.recordError(1280),void y(`GL_INVALID_ENUM in glGet${r}v: Unknown object returned from WebGL getParameter(${e})! (error: ${t})`)}}break;default:return Dr.recordError(1280),void y(`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:kr(t,n);break;case 0:Z[t>>2]=n;break;case 2:q[t>>2]=n;break;case 4:V[0|t]=n?1:0}}(e,t,0)},glGetString:function(e){let t=Dr.stringCache[e];if(!t){switch(e){case 7939:var r=rn.getSupportedExtensions()||[];t=Nr((r=r.concat(r.map((e=>`GL_${e}`)))).join(" "));break;case 7936:case 7937:case 37445:case 37446:var n=rn.getParameter(e);n||Dr.recordError(1280),t=n&&Nr(n);break;case 7938:var o=rn.getParameter(7938);t=Nr(o=Dr.currentContext.version>=2?`OpenGL ES 3.0 (${o})`:`OpenGL ES 2.0 (${o})`);break;case 35724:var i=rn.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=Nr(i);break;default:Dr.recordError(1280)}Dr.stringCache[e]=t}return t},glGetUniformBlockIndex:function(e,t){return rn.getUniformBlockIndex(Dr.programs[e],M(t))},glGetUniformLocation:function(e,t){if(t=M(t),e=Dr.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<rn.getProgramParameter(e,35718);++n){const i=rn.getActiveUniform(e,n),a=i.name,s=i.size,c=Ur(a),A=c>0?a.slice(0,c):a;let u=e.uniformIdCounter;for(e.uniformIdCounter+=s,r[A]=[s,u],o=0;o<s;++o)t[u]=o,e.uniformArrayNamesById[u++]=A}}(e);const{uniformLocsById:n}=e;let o=0,i=t;const a=Ur(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]||rn.getUniformLocation(e,t)))return o}else Dr.recordError(1281);var r;return-1},glLinkProgram:function(e){e=Dr.programs[e],rn.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}},glPixelStorei:function(e,t){3317==e&&(Dr.unpackAlignment=t),rn.pixelStorei(e,t)},glReadPixels:function(e,t,r,n,o,i,a){if(Dr.currentContext.version>=2){if(rn.currentPixelPackBufferBinding)rn.readPixels(e,t,r,n,o,i,a);else{const s=jr(i);rn.readPixels(e,t,r,n,o,i,s,a>>Lr(s))}return}const s=Hr(i,o,r,n,a);s?rn.readPixels(e,t,r,n,o,i,s):Dr.recordError(1280)},glShaderSource:function(e,t,r,n){const o=Dr.getSource(e,t,r,n);rn.shaderSource(Dr.shaders[e],o)},glTexImage2D:function(e,t,r,n,o,i,a,s,c){if(Dr.currentContext.version>=2)if(rn.currentPixelUnpackBufferBinding)rn.texImage2D(e,t,r,n,o,i,a,s,c);else if(c){const A=jr(s);rn.texImage2D(e,t,r,n,o,i,a,s,A,c>>Lr(A))}else rn.texImage2D(e,t,r,n,o,i,a,s,null);else rn.texImage2D(e,t,r,n,o,i,a,s,c?Hr(s,a,n,o,c):null)},glTexParameterfv:function(e,t,r){const n=q[r>>2];rn.texParameterf(e,t,n)},glTexParameteri:function(e,t,r){rn.texParameteri(e,t,r)},glTexStorage2D:function(e,t,r,n,o){rn.texStorage2D(e,t,r,n,o)},glTexStorage3D:function(e,t,r,n,o,i){rn.texStorage3D(e,t,r,n,o,i)},glTexSubImage2D:function(e,t,r,n,o,i,a,s,c){if(Dr.currentContext.version>=2){if(rn.currentPixelUnpackBufferBinding)rn.texSubImage2D(e,t,r,n,o,i,a,s,c);else if(c){const A=jr(s);rn.texSubImage2D(e,t,r,n,o,i,a,s,A,c>>Lr(A))}else rn.texSubImage2D(e,t,r,n,o,i,a,s,null);return}let A=null;c&&(A=Hr(s,a,o,i,c)),rn.texSubImage2D(e,t,r,n,o,i,a,s,A)},glTexSubImage3D:function(e,t,r,n,o,i,a,s,c,A,u){if(rn.currentPixelUnpackBufferBinding)rn.texSubImage3D(e,t,r,n,o,i,a,s,c,A,u);else if(u){const l=jr(A);rn.texSubImage3D(e,t,r,n,o,i,a,s,c,A,l,u>>Lr(l))}else rn.texSubImage3D(e,t,r,n,o,i,a,s,c,A,null)},glUniform1f:function(e,t){rn.uniform1f(Gr(e),t)},glUniform1i:function(e,t){rn.uniform1i(Gr(e),t)},glUniform2fv:function(e,t,r){if(Dr.currentContext.version>=2)rn.uniform2fv(Gr(e),q,r>>2,2*t);else{if(t<=144){var n=Yr[2*t-1];for(let e=0;e<2*t;e+=2)n[e]=q[r+4*e>>2],n[e+1]=q[r+(4*e+4)>>2]}else n=q.subarray(r>>2,r+8*t>>2);rn.uniform2fv(Gr(e),n)}},glUniform4fv:function(e,t,r){if(Dr.currentContext.version>=2)rn.uniform4fv(Gr(e),q,r>>2,4*t);else{if(t<=72){var n=Yr[4*t-1];const e=q;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=q.subarray(r>>2,r+16*t>>2);rn.uniform4fv(Gr(e),n)}},glUniform4iv:function(e,t,r){if(Dr.currentContext.version>=2)rn.uniform4iv(Gr(e),Z,r>>2,4*t);else{if(t<=72){var n=Xr[4*t-1];for(let e=0;e<4*t;e+=4)n[e]=Z[r+4*e>>2],n[e+1]=Z[r+(4*e+4)>>2],n[e+2]=Z[r+(4*e+8)>>2],n[e+3]=Z[r+(4*e+12)>>2]}else n=Z.subarray(r>>2,r+16*t>>2);rn.uniform4iv(Gr(e),n)}},glUniformBlockBinding:function(e,t,r){e=Dr.programs[e],rn.uniformBlockBinding(e,t,r)},glUniformMatrix4fv:function(e,t,r,n){if(Dr.currentContext.version>=2)rn.uniformMatrix4fv(Gr(e),!!r,q,n>>2,16*t);else{if(t<=18){var o=Yr[16*t-1];const e=q;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=q.subarray(n>>2,n+64*t>>2);rn.uniformMatrix4fv(Gr(e),!!r,o)}},glUseProgram:function(e){e=Dr.programs[e],rn.useProgram(e),rn.currentProgram=e},glVertexAttribPointer:function(e,t,r,n,o,i){const a=Dr.currentContext.clientBuffers[e];if(!rn.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,rn.vertexAttribPointer(e,t,r,!!n,o,i)},glViewport:function(e,t,r,n){rn.viewport(e,t,r,n)},gmtime_r:function e(t,r){const n=new Date(1e3*Z[t>>2]);Z[r>>2]=n.getUTCSeconds(),Z[r+4>>2]=n.getUTCMinutes(),Z[r+8>>2]=n.getUTCHours(),Z[r+12>>2]=n.getUTCDate(),Z[r+16>>2]=n.getUTCMonth(),Z[r+20>>2]=n.getUTCFullYear()-1900,Z[r+24>>2]=n.getUTCDay(),Z[r+36>>2]=0,Z[r+32>>2]=0;const o=Date.UTC(n.getUTCFullYear(),0,1,0,0,0,0),i=(n.getTime()-o)/864e5|0;return Z[r+28>>2]=i,e.GMTString||(e.GMTString=G("GMT")),Z[r+40>>2]=e.GMTString,r},invoke_diii:function(e,t,r,n){const o=En();try{return oe.get(e)(t,r,n)}catch(e){if(mn(o),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_i:function(e){const t=En();try{return oe.get(e)()}catch(e){if(mn(t),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_ii:function(e,t){const r=En();try{return oe.get(e)(t)}catch(e){if(mn(r),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_iii:function(e,t,r){const n=En();try{return oe.get(e)(t,r)}catch(e){if(mn(n),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_iiii:function(e,t,r,n){const o=En();try{return oe.get(e)(t,r,n)}catch(e){if(mn(o),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_iiiii:function(e,t,r,n,o){const i=En();try{return oe.get(e)(t,r,n,o)}catch(e){if(mn(i),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_iiiiii:function(e,t,r,n,o,i){const a=En();try{return oe.get(e)(t,r,n,o,i)}catch(e){if(mn(a),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_iiiiiii:function(e,t,r,n,o,i,a){const s=En();try{return oe.get(e)(t,r,n,o,i,a)}catch(e){if(mn(s),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_iiiiiiiddi:function(e,t,r,n,o,i,a,s,c,A){const u=En();try{return oe.get(e)(t,r,n,o,i,a,s,c,A)}catch(e){if(mn(u),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_iiiiiiii:function(e,t,r,n,o,i,a,s){const c=En();try{return oe.get(e)(t,r,n,o,i,a,s)}catch(e){if(mn(c),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_iiiiiiiii:function(e,t,r,n,o,i,a,s,c){const A=En();try{return oe.get(e)(t,r,n,o,i,a,s,c)}catch(e){if(mn(A),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_v:function(e){const t=En();try{oe.get(e)()}catch(e){if(mn(t),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_vdiii:function(e,t,r,n,o){const i=En();try{oe.get(e)(t,r,n,o)}catch(e){if(mn(i),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_vi:function(e,t){const r=En();try{oe.get(e)(t)}catch(e){if(mn(r),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_vididdii:function(e,t,r,n,o,i,a,s){const c=En();try{oe.get(e)(t,r,n,o,i,a,s)}catch(e){if(mn(c),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_vidii:function(e,t,r,n,o){const i=En();try{oe.get(e)(t,r,n,o)}catch(e){if(mn(i),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_vii:function(e,t,r){const n=En();try{oe.get(e)(t,r)}catch(e){if(mn(n),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viid:function(e,t,r,n){const o=En();try{oe.get(e)(t,r,n)}catch(e){if(mn(o),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viidi:function(e,t,r,n,o){const i=En();try{oe.get(e)(t,r,n,o)}catch(e){if(mn(i),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viididii:function(e,t,r,n,o,i,a,s){const c=En();try{oe.get(e)(t,r,n,o,i,a,s)}catch(e){if(mn(c),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viii:function(e,t,r,n){const o=En();try{oe.get(e)(t,r,n)}catch(e){if(mn(o),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiid:function(e,t,r,n,o){const i=En();try{oe.get(e)(t,r,n,o)}catch(e){if(mn(i),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiidd:function(e,t,r,n,o,i){const a=En();try{oe.get(e)(t,r,n,o,i)}catch(e){if(mn(a),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiddi:function(e,t,r,n,o,i,a){const s=En();try{oe.get(e)(t,r,n,o,i,a)}catch(e){if(mn(s),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiidi:function(e,t,r,n,o,i){const a=En();try{oe.get(e)(t,r,n,o,i)}catch(e){if(mn(a),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiii:function(e,t,r,n,o){const i=En();try{oe.get(e)(t,r,n,o)}catch(e){if(mn(i),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiid:function(e,t,r,n,o,i){const a=En();try{oe.get(e)(t,r,n,o,i)}catch(e){if(mn(a),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiidi:function(e,t,r,n,o,i,a){const s=En();try{oe.get(e)(t,r,n,o,i,a)}catch(e){if(mn(s),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiidid:function(e,t,r,n,o,i,a,s){const c=En();try{oe.get(e)(t,r,n,o,i,a,s)}catch(e){if(mn(c),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiidiidiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d,g,f,h){const p=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u,l,d,g,f,h)}catch(e){if(mn(p),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiifiifiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d,g,f,h){const p=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u,l,d,g,f,h)}catch(e){if(mn(p),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiii:function(e,t,r,n,o,i){const a=En();try{oe.get(e)(t,r,n,o,i)}catch(e){if(mn(a),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiid:function(e,t,r,n,o,i,a){const s=En();try{oe.get(e)(t,r,n,o,i,a)}catch(e){if(mn(s),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiif:function(e,t,r,n,o,i,a){const s=En();try{oe.get(e)(t,r,n,o,i,a)}catch(e){if(mn(s),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiii:function(e,t,r,n,o,i,a){const s=En();try{oe.get(e)(t,r,n,o,i,a)}catch(e){if(mn(s),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiid:function(e,t,r,n,o,i,a,s){const c=En();try{oe.get(e)(t,r,n,o,i,a,s)}catch(e){if(mn(c),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiif:function(e,t,r,n,o,i,a,s){const c=En();try{oe.get(e)(t,r,n,o,i,a,s)}catch(e){if(mn(c),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiii:function(e,t,r,n,o,i,a,s){const c=En();try{oe.get(e)(t,r,n,o,i,a,s)}catch(e){if(mn(c),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiiddi:function(e,t,r,n,o,i,a,s,c,A,u){const l=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u)}catch(e){if(mn(l),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiidiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d){const g=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u,l,d)}catch(e){if(mn(g),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiifiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d){const g=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u,l,d)}catch(e){if(mn(g),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiii:function(e,t,r,n,o,i,a,s,c){const A=En();try{oe.get(e)(t,r,n,o,i,a,s,c)}catch(e){if(mn(A),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiiidd:function(e,t,r,n,o,i,a,s,c,A,u){const l=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u)}catch(e){if(mn(l),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiiidf:function(e,t,r,n,o,i,a,s,c,A,u){const l=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u)}catch(e){if(mn(l),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiiii:function(e,t,r,n,o,i,a,s,c,A){const u=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A)}catch(e){if(mn(u),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiiiidd:function(e,t,r,n,o,i,a,s,c,A,u,l){const d=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u,l)}catch(e){if(mn(d),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiiiiddi:function(e,t,r,n,o,i,a,s,c,A,u,l,d){const g=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u,l,d)}catch(e){if(mn(g),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u){const l=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u)}catch(e){if(mn(l),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiiiiiddi:function(e,t,r,n,o,i,a,s,c,A,u,l,d,g){const f=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u,l,d,g)}catch(e){if(mn(f),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u,l){const d=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u,l)}catch(e){if(mn(d),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d){const g=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u,l,d)}catch(e){if(mn(g),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d,g){const f=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u,l,d,g)}catch(e){if(mn(f),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},llvm_eh_typeid_for:function(e){return e},localtime_r:function(e,t){Wr();const r=new Date(1e3*Z[e>>2]);Z[t>>2]=r.getSeconds(),Z[t+4>>2]=r.getMinutes(),Z[t+8>>2]=r.getHours(),Z[t+12>>2]=r.getDate(),Z[t+16>>2]=r.getMonth(),Z[t+20>>2]=r.getFullYear()-1900,Z[t+24>>2]=r.getDay();const n=new Date(r.getFullYear(),0,1),o=(r.getTime()-n.getTime())/864e5|0;Z[t+28>>2]=o,Z[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));Z[t+32>>2]=s;const c=Z[fn()+(s?4:0)>>2];return Z[t+40>>2]=c,t},mktime:function(e){Wr();const t=new Date(Z[e+20>>2]+1900,Z[e+16>>2],Z[e+12>>2],Z[e+8>>2],Z[e+4>>2],Z[e>>2],0),r=Z[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)Z[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))}Z[e+24>>2]=t.getDay();const c=(t.getTime()-o.getTime())/864e5|0;return Z[e+28>>2]=c,Z[e>>2]=t.getSeconds(),Z[e+4>>2]=t.getMinutes(),Z[e+8>>2]=t.getHours(),Z[e+12>>2]=t.getDate(),Z[e+16>>2]=t.getMonth(),t.getTime()/1e3|0},proc_exit:function(e){On(e)},setTempRet0:function(e){C(e)},strftime:Jr,strftime_l:function(e,t,r,n){return Jr(e,t,r,n)}};(function(){const e={env:cn,wasi_snapshot_preview1:cn};function t(e,t){const{exports:n}=e;var o;r.asm=n,D=r.asm.memory,v(D,"memory not found in wasm exports"),te(D.buffer),oe=r.asm.__indirect_function_table,v(oe,"table not found in wasm exports"),o=r.asm.__wasm_call_ctors,ce.unshift(o),ye("wasm-instantiate")}Ie("wasm-instantiate");let n=r;if(r.instantiateWasm)try{return r.instantiateWasm(e,t)}catch(e){return y(`Module.instantiateWasm callback failed with error: ${e}`),!1}r.loadWasm(Ce,e).then((function(e){v(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=we("__wasm_call_ctors");var An=r._free=we("free"),un=r._malloc=we("malloc"),ln=r.___errno_location=we("__errno_location");r._fflush=we("fflush");var dn=r.___getTypeName=we("__getTypeName");r.___embind_register_native_and_builtin_types=we("__embind_register_native_and_builtin_types"),r._emscripten_main_thread_process_queued_calls=we("emscripten_main_thread_process_queued_calls");var gn=r._emscripten_stack_get_end=function(){return(gn=r._emscripten_stack_get_end=r.asm.emscripten_stack_get_end).apply(null,arguments)},fn=r.__get_tzname=we("_get_tzname"),hn=r.__get_daylight=we("_get_daylight"),pn=r.__get_timezone=we("_get_timezone"),En=r.stackSave=we("stackSave"),mn=r.stackRestore=we("stackRestore"),In=(r.stackAlloc=we("stackAlloc"),r._emscripten_stack_init=function(){return(In=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=we("saveSetjmp");var yn=r._setThrew=we("setThrew"),_n=r.___cxa_can_catch=we("__cxa_can_catch"),wn=r.___cxa_is_pointer_type=we("__cxa_is_pointer_type"),Cn=r._memalign=we("memalign");r._emscripten_builtin_malloc=we("emscripten_builtin_malloc"),r._emscripten_builtin_free=we("emscripten_builtin_free"),r._emscripten_builtin_memalign=we("emscripten_builtin_memalign"),r.dynCall_jii=we("dynCall_jii"),r.dynCall_viji=we("dynCall_viji"),r.dynCall_jjj=we("dynCall_jjj"),r.dynCall_iiiijj=we("dynCall_iiiijj"),r.dynCall_viijj=we("dynCall_viijj"),r.dynCall_viiijjjj=we("dynCall_viiijjjj"),r.dynCall_ji=we("dynCall_ji"),r.dynCall_vij=we("dynCall_vij"),r.dynCall_viijii=we("dynCall_viijii"),r.dynCall_vj=we("dynCall_vj"),r.dynCall_viij=we("dynCall_viij"),r.dynCall_viiiiij=we("dynCall_viiiiij"),r.dynCall_iijjiiii=we("dynCall_iijjiiii"),r.dynCall_jiji=we("dynCall_jiji"),r.dynCall_iiiiij=we("dynCall_iiiiij"),r.dynCall_iiiiijj=we("dynCall_iiiiijj"),r.dynCall_iiiiiijj=we("dynCall_iiiiiijj");let bn;function Bn(e){this.name="ExitStatus",this.message=`Program terminated with exit(${e})`,this.status=e}function Dn(e){function t(){bn||(bn=!0,r.calledRun=!0,T||(ae(),v(!le),le=!0,r.noFSInit||Ze.init.initialized||Ze.init(),Ze.ignorePermissions=!1,We.init(),Fe(ce),n(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),v(!r._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),function(){if(ae(),r.postRun)for("function"==typeof r.postRun&&(r.postRun=[r.postRun]);r.postRun.length;)e=r.postRun.shift(),ue.unshift(e);var e;Fe(ue)}()))}e=e||s,fe>0||(In(),ie(),function(){if(r.preRun)for("function"==typeof r.preRun&&(r.preRun=[r.preRun]);r.preRun.length;)e=r.preRun.shift(),se.unshift(e);var e;Fe(se)}(),fe>0||(r.setStatus?(r.setStatus("Running..."),setTimeout((()=>{setTimeout((()=>{r.setStatus("")}),1),t()}),1)):t(),ae()))}function On(e){O=e,ge()||(r.onExit&&r.onExit(e),T=!0),A(e,new Bn(e))}if(Object.getOwnPropertyDescriptor(r,"intArrayFromString")||(r.intArrayFromString=function(){_e("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"intArrayToString")||(r.intArrayToString=function(){_e("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ccall")||(r.ccall=function(){_e("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"cwrap")||(r.cwrap=function(){_e("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setValue")||(r.setValue=function(){_e("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getValue")||(r.getValue=function(){_e("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"allocate")||(r.allocate=function(){_e("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"UTF8ArrayToString")||(r.UTF8ArrayToString=function(){_e("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"UTF8ToString")||(r.UTF8ToString=function(){_e("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stringToUTF8Array")||(r.stringToUTF8Array=function(){_e("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stringToUTF8")||(r.stringToUTF8=function(){_e("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"lengthBytesUTF8")||(r.lengthBytesUTF8=function(){_e("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stackTrace")||(r.stackTrace=function(){_e("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"addOnPreRun")||(r.addOnPreRun=function(){_e("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"addOnInit")||(r.addOnInit=function(){_e("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"addOnPreMain")||(r.addOnPreMain=function(){_e("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"addOnExit")||(r.addOnExit=function(){_e("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"addOnPostRun")||(r.addOnPostRun=function(){_e("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeStringToMemory")||(r.writeStringToMemory=function(){_e("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeArrayToMemory")||(r.writeArrayToMemory=function(){_e("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeAsciiToMemory")||(r.writeAsciiToMemory=function(){_e("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),r.addRunDependency=Ie,r.removeRunDependency=ye,Object.getOwnPropertyDescriptor(r,"FS_createFolder")||(r.FS_createFolder=function(){_e("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),r.FS_createPath=Ze.createPath,r.FS_createDataFile=Ze.createDataFile,r.FS_createPreloadedFile=Ze.createPreloadedFile,r.FS_createLazyFile=Ze.createLazyFile,Object.getOwnPropertyDescriptor(r,"FS_createLink")||(r.FS_createLink=function(){_e("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),r.FS_createDevice=Ze.createDevice,r.FS_unlink=Ze.unlink,Object.getOwnPropertyDescriptor(r,"getLEB")||(r.getLEB=function(){_e("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getFunctionTables")||(r.getFunctionTables=function(){_e("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"alignFunctionTables")||(r.alignFunctionTables=function(){_e("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerFunctions")||(r.registerFunctions=function(){_e("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"addFunction")||(r.addFunction=function(){_e("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"removeFunction")||(r.removeFunction=function(){_e("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getFuncWrapper")||(r.getFuncWrapper=function(){_e("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"prettyPrint")||(r.prettyPrint=function(){_e("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"dynCall")||(r.dynCall=function(){_e("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getCompilerSetting")||(r.getCompilerSetting=function(){_e("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"print")||(r.print=function(){_e("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"printErr")||(r.printErr=function(){_e("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getTempRet0")||(r.getTempRet0=function(){_e("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setTempRet0")||(r.setTempRet0=function(){_e("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"callMain")||(r.callMain=function(){_e("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"abort")||(r.abort=function(){_e("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"keepRuntimeAlive")||(r.keepRuntimeAlive=function(){_e("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"zeroMemory")||(r.zeroMemory=function(){_e("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stringToNewUTF8")||(r.stringToNewUTF8=function(){_e("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setFileTime")||(r.setFileTime=function(){_e("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emscripten_realloc_buffer")||(r.emscripten_realloc_buffer=function(){_e("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ENV")||(r.ENV=function(){_e("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ERRNO_CODES")||(r.ERRNO_CODES=function(){_e("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ERRNO_MESSAGES")||(r.ERRNO_MESSAGES=function(){_e("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setErrNo")||(r.setErrNo=function(){_e("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"inetPton4")||(r.inetPton4=function(){_e("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"inetNtop4")||(r.inetNtop4=function(){_e("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"inetPton6")||(r.inetPton6=function(){_e("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"inetNtop6")||(r.inetNtop6=function(){_e("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"readSockaddr")||(r.readSockaddr=function(){_e("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeSockaddr")||(r.writeSockaddr=function(){_e("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"DNS")||(r.DNS=function(){_e("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getHostByName")||(r.getHostByName=function(){_e("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"GAI_ERRNO_MESSAGES")||(r.GAI_ERRNO_MESSAGES=function(){_e("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"Protocols")||(r.Protocols=function(){_e("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"Sockets")||(r.Sockets=function(){_e("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getRandomDevice")||(r.getRandomDevice=function(){_e("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"traverseStack")||(r.traverseStack=function(){_e("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"UNWIND_CACHE")||(r.UNWIND_CACHE=function(){_e("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"withBuiltinMalloc")||(r.withBuiltinMalloc=function(){_e("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"readAsmConstArgsArray")||(r.readAsmConstArgsArray=function(){_e("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"readAsmConstArgs")||(r.readAsmConstArgs=function(){_e("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"mainThreadEM_ASM")||(r.mainThreadEM_ASM=function(){_e("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"jstoi_q")||(r.jstoi_q=function(){_e("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"jstoi_s")||(r.jstoi_s=function(){_e("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getExecutableName")||(r.getExecutableName=function(){_e("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"listenOnce")||(r.listenOnce=function(){_e("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"autoResumeAudioContext")||(r.autoResumeAudioContext=function(){_e("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"dynCallLegacy")||(r.dynCallLegacy=function(){_e("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getDynCaller")||(r.getDynCaller=function(){_e("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"dynCall")||(r.dynCall=function(){_e("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"callRuntimeCallbacks")||(r.callRuntimeCallbacks=function(){_e("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"runtimeKeepalivePush")||(r.runtimeKeepalivePush=function(){_e("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"runtimeKeepalivePop")||(r.runtimeKeepalivePop=function(){_e("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"callUserCallback")||(r.callUserCallback=function(){_e("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"maybeExit")||(r.maybeExit=function(){_e("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"safeSetTimeout")||(r.safeSetTimeout=function(){_e("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"asmjsMangle")||(r.asmjsMangle=function(){_e("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"asyncLoad")||(r.asyncLoad=function(){_e("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"alignMemory")||(r.alignMemory=function(){_e("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"mmapAlloc")||(r.mmapAlloc=function(){_e("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"reallyNegative")||(r.reallyNegative=function(){_e("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"unSign")||(r.unSign=function(){_e("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"reSign")||(r.reSign=function(){_e("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"formatString")||(r.formatString=function(){_e("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"PATH")||(r.PATH=function(){_e("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"PATH_FS")||(r.PATH_FS=function(){_e("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"SYSCALLS")||(r.SYSCALLS=function(){_e("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"syscallMmap2")||(r.syscallMmap2=function(){_e("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"syscallMunmap")||(r.syscallMunmap=function(){_e("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getSocketFromFD")||(r.getSocketFromFD=function(){_e("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getSocketAddress")||(r.getSocketAddress=function(){_e("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"JSEvents")||(r.JSEvents=function(){_e("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerKeyEventCallback")||(r.registerKeyEventCallback=function(){_e("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"specialHTMLTargets")||(r.specialHTMLTargets=function(){_e("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"findEventTarget")||(r.findEventTarget=function(){_e("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"findCanvasEventTarget")||(r.findCanvasEventTarget=function(){_e("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getBoundingClientRect")||(r.getBoundingClientRect=function(){_e("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillMouseEventData")||(r.fillMouseEventData=function(){_e("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerMouseEventCallback")||(r.registerMouseEventCallback=function(){_e("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerWheelEventCallback")||(r.registerWheelEventCallback=function(){_e("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerUiEventCallback")||(r.registerUiEventCallback=function(){_e("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerFocusEventCallback")||(r.registerFocusEventCallback=function(){_e("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillDeviceOrientationEventData")||(r.fillDeviceOrientationEventData=function(){_e("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerDeviceOrientationEventCallback")||(r.registerDeviceOrientationEventCallback=function(){_e("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillDeviceMotionEventData")||(r.fillDeviceMotionEventData=function(){_e("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerDeviceMotionEventCallback")||(r.registerDeviceMotionEventCallback=function(){_e("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"screenOrientation")||(r.screenOrientation=function(){_e("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillOrientationChangeEventData")||(r.fillOrientationChangeEventData=function(){_e("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerOrientationChangeEventCallback")||(r.registerOrientationChangeEventCallback=function(){_e("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillFullscreenChangeEventData")||(r.fillFullscreenChangeEventData=function(){_e("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerFullscreenChangeEventCallback")||(r.registerFullscreenChangeEventCallback=function(){_e("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerRestoreOldStyle")||(r.registerRestoreOldStyle=function(){_e("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"hideEverythingExceptGivenElement")||(r.hideEverythingExceptGivenElement=function(){_e("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"restoreHiddenElements")||(r.restoreHiddenElements=function(){_e("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setLetterbox")||(r.setLetterbox=function(){_e("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"currentFullscreenStrategy")||(r.currentFullscreenStrategy=function(){_e("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"restoreOldWindowedStyle")||(r.restoreOldWindowedStyle=function(){_e("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"softFullscreenResizeWebGLRenderTarget")||(r.softFullscreenResizeWebGLRenderTarget=function(){_e("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"doRequestFullscreen")||(r.doRequestFullscreen=function(){_e("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillPointerlockChangeEventData")||(r.fillPointerlockChangeEventData=function(){_e("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerPointerlockChangeEventCallback")||(r.registerPointerlockChangeEventCallback=function(){_e("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerPointerlockErrorEventCallback")||(r.registerPointerlockErrorEventCallback=function(){_e("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"requestPointerLock")||(r.requestPointerLock=function(){_e("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillVisibilityChangeEventData")||(r.fillVisibilityChangeEventData=function(){_e("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerVisibilityChangeEventCallback")||(r.registerVisibilityChangeEventCallback=function(){_e("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerTouchEventCallback")||(r.registerTouchEventCallback=function(){_e("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillGamepadEventData")||(r.fillGamepadEventData=function(){_e("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerGamepadEventCallback")||(r.registerGamepadEventCallback=function(){_e("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerBeforeUnloadEventCallback")||(r.registerBeforeUnloadEventCallback=function(){_e("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillBatteryEventData")||(r.fillBatteryEventData=function(){_e("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"battery")||(r.battery=function(){_e("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerBatteryEventCallback")||(r.registerBatteryEventCallback=function(){_e("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setCanvasElementSize")||(r.setCanvasElementSize=function(){_e("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getCanvasElementSize")||(r.getCanvasElementSize=function(){_e("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"polyfillSetImmediate")||(r.polyfillSetImmediate=function(){_e("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"demangle")||(r.demangle=function(){_e("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"demangleAll")||(r.demangleAll=function(){_e("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"jsStackTrace")||(r.jsStackTrace=function(){_e("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stackTrace")||(r.stackTrace=function(){_e("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getEnvStrings")||(r.getEnvStrings=function(){_e("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"checkWasiClock")||(r.checkWasiClock=function(){_e("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeI53ToI64")||(r.writeI53ToI64=function(){_e("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeI53ToI64Clamped")||(r.writeI53ToI64Clamped=function(){_e("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeI53ToI64Signaling")||(r.writeI53ToI64Signaling=function(){_e("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeI53ToU64Clamped")||(r.writeI53ToU64Clamped=function(){_e("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeI53ToU64Signaling")||(r.writeI53ToU64Signaling=function(){_e("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"readI53FromI64")||(r.readI53FromI64=function(){_e("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"readI53FromU64")||(r.readI53FromU64=function(){_e("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"convertI32PairToI53")||(r.convertI32PairToI53=function(){_e("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"convertU32PairToI53")||(r.convertU32PairToI53=function(){_e("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"uncaughtExceptionCount")||(r.uncaughtExceptionCount=function(){_e("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"exceptionLast")||(r.exceptionLast=function(){_e("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"exceptionCaught")||(r.exceptionCaught=function(){_e("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ExceptionInfo")||(r.ExceptionInfo=function(){_e("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"CatchInfo")||(r.CatchInfo=function(){_e("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"exception_addRef")||(r.exception_addRef=function(){_e("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"exception_decRef")||(r.exception_decRef=function(){_e("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"Browser")||(r.Browser=function(){_e("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"funcWrappers")||(r.funcWrappers=function(){_e("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getFuncWrapper")||(r.getFuncWrapper=function(){_e("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setMainLoop")||(r.setMainLoop=function(){_e("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"wget")||(r.wget=function(){_e("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"FS")||(r.FS=function(){_e("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"MEMFS")||(r.MEMFS=function(){_e("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"TTY")||(r.TTY=function(){_e("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"PIPEFS")||(r.PIPEFS=function(){_e("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"SOCKFS")||(r.SOCKFS=function(){_e("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"_setNetworkCallback")||(r._setNetworkCallback=function(){_e("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"tempFixedLengthArray")||(r.tempFixedLengthArray=function(){_e("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"miniTempWebGLFloatBuffers")||(r.miniTempWebGLFloatBuffers=function(){_e("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"heapObjectForWebGLType")||(r.heapObjectForWebGLType=function(){_e("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"heapAccessShiftForWebGLHeap")||(r.heapAccessShiftForWebGLHeap=function(){_e("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),r.GL=Dr,Object.getOwnPropertyDescriptor(r,"emscriptenWebGLGet")||(r.emscriptenWebGLGet=function(){_e("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"computeUnpackAlignedImageSize")||(r.computeUnpackAlignedImageSize=function(){_e("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emscriptenWebGLGetTexPixelData")||(r.emscriptenWebGLGetTexPixelData=function(){_e("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emscriptenWebGLGetUniform")||(r.emscriptenWebGLGetUniform=function(){_e("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"webglGetUniformLocation")||(r.webglGetUniformLocation=function(){_e("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"webglPrepareUniformLocationsBeforeFirstUse")||(r.webglPrepareUniformLocationsBeforeFirstUse=function(){_e("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"webglGetLeftBracePos")||(r.webglGetLeftBracePos=function(){_e("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emscriptenWebGLGetVertexAttrib")||(r.emscriptenWebGLGetVertexAttrib=function(){_e("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emscriptenWebGLGetBufferBinding")||(r.emscriptenWebGLGetBufferBinding=function(){_e("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emscriptenWebGLValidateMapBufferTarget")||(r.emscriptenWebGLValidateMapBufferTarget=function(){_e("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeGLArray")||(r.writeGLArray=function(){_e("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"AL")||(r.AL=function(){_e("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"SDL_unicode")||(r.SDL_unicode=function(){_e("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"SDL_ttfContext")||(r.SDL_ttfContext=function(){_e("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"SDL_audio")||(r.SDL_audio=function(){_e("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"SDL")||(r.SDL=function(){_e("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"SDL_gfx")||(r.SDL_gfx=function(){_e("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"GLUT")||(r.GLUT=function(){_e("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"EGL")||(r.EGL=function(){_e("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"GLFW_Window")||(r.GLFW_Window=function(){_e("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"GLFW")||(r.GLFW=function(){_e("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"GLEW")||(r.GLEW=function(){_e("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"IDBStore")||(r.IDBStore=function(){_e("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"runAndAbortIfError")||(r.runAndAbortIfError=function(){_e("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emval_handle_array")||(r.emval_handle_array=function(){_e("'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(){_e("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emval_symbols")||(r.emval_symbols=function(){_e("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"init_emval")||(r.init_emval=function(){_e("'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(){_e("'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(){_e("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getStringOrSymbol")||(r.getStringOrSymbol=function(){_e("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"requireHandle")||(r.requireHandle=function(){_e("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emval_newers")||(r.emval_newers=function(){_e("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"craftEmvalAllocator")||(r.craftEmvalAllocator=function(){_e("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emval_get_global")||(r.emval_get_global=function(){_e("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emval_methodCallers")||(r.emval_methodCallers=function(){_e("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"InternalError")||(r.InternalError=function(){_e("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"BindingError")||(r.BindingError=function(){_e("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"UnboundTypeError")||(r.UnboundTypeError=function(){_e("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"PureVirtualError")||(r.PureVirtualError=function(){_e("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"init_embind")||(r.init_embind=function(){_e("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"throwInternalError")||(r.throwInternalError=function(){_e("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"throwBindingError")||(r.throwBindingError=function(){_e("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"throwUnboundTypeError")||(r.throwUnboundTypeError=function(){_e("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ensureOverloadTable")||(r.ensureOverloadTable=function(){_e("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"exposePublicSymbol")||(r.exposePublicSymbol=function(){_e("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"replacePublicSymbol")||(r.replacePublicSymbol=function(){_e("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"extendError")||(r.extendError=function(){_e("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"createNamedFunction")||(r.createNamedFunction=function(){_e("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registeredInstances")||(r.registeredInstances=function(){_e("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getBasestPointer")||(r.getBasestPointer=function(){_e("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerInheritedInstance")||(r.registerInheritedInstance=function(){_e("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"unregisterInheritedInstance")||(r.unregisterInheritedInstance=function(){_e("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getInheritedInstance")||(r.getInheritedInstance=function(){_e("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getInheritedInstanceCount")||(r.getInheritedInstanceCount=function(){_e("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getLiveInheritedInstances")||(r.getLiveInheritedInstances=function(){_e("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registeredTypes")||(r.registeredTypes=function(){_e("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"awaitingDependencies")||(r.awaitingDependencies=function(){_e("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"typeDependencies")||(r.typeDependencies=function(){_e("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registeredPointers")||(r.registeredPointers=function(){_e("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerType")||(r.registerType=function(){_e("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"whenDependentTypesAreResolved")||(r.whenDependentTypesAreResolved=function(){_e("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"embind_charCodes")||(r.embind_charCodes=function(){_e("'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(){_e("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"readLatin1String")||(r.readLatin1String=function(){_e("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getTypeName")||(r.getTypeName=function(){_e("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"heap32VectorToArray")||(r.heap32VectorToArray=function(){_e("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"requireRegisteredType")||(r.requireRegisteredType=function(){_e("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getShiftFromSize")||(r.getShiftFromSize=function(){_e("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"integerReadValueFromPointer")||(r.integerReadValueFromPointer=function(){_e("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"enumReadValueFromPointer")||(r.enumReadValueFromPointer=function(){_e("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"floatReadValueFromPointer")||(r.floatReadValueFromPointer=function(){_e("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"simpleReadValueFromPointer")||(r.simpleReadValueFromPointer=function(){_e("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"runDestructors")||(r.runDestructors=function(){_e("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"new_")||(r.new_=function(){_e("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"craftInvokerFunction")||(r.craftInvokerFunction=function(){_e("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"embind__requireFunction")||(r.embind__requireFunction=function(){_e("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"tupleRegistrations")||(r.tupleRegistrations=function(){_e("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"structRegistrations")||(r.structRegistrations=function(){_e("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"genericPointerToWireType")||(r.genericPointerToWireType=function(){_e("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"constNoSmartPtrRawPointerToWireType")||(r.constNoSmartPtrRawPointerToWireType=function(){_e("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"nonConstNoSmartPtrRawPointerToWireType")||(r.nonConstNoSmartPtrRawPointerToWireType=function(){_e("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"init_RegisteredPointer")||(r.init_RegisteredPointer=function(){_e("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"RegisteredPointer")||(r.RegisteredPointer=function(){_e("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"RegisteredPointer_getPointee")||(r.RegisteredPointer_getPointee=function(){_e("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"RegisteredPointer_destructor")||(r.RegisteredPointer_destructor=function(){_e("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"RegisteredPointer_deleteObject")||(r.RegisteredPointer_deleteObject=function(){_e("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"RegisteredPointer_fromWireType")||(r.RegisteredPointer_fromWireType=function(){_e("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"runDestructor")||(r.runDestructor=function(){_e("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"releaseClassHandle")||(r.releaseClassHandle=function(){_e("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"finalizationGroup")||(r.finalizationGroup=function(){_e("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"detachFinalizer_deps")||(r.detachFinalizer_deps=function(){_e("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"detachFinalizer")||(r.detachFinalizer=function(){_e("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"attachFinalizer")||(r.attachFinalizer=function(){_e("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"makeClassHandle")||(r.makeClassHandle=function(){_e("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"init_ClassHandle")||(r.init_ClassHandle=function(){_e("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ClassHandle")||(r.ClassHandle=function(){_e("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ClassHandle_isAliasOf")||(r.ClassHandle_isAliasOf=function(){_e("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"throwInstanceAlreadyDeleted")||(r.throwInstanceAlreadyDeleted=function(){_e("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ClassHandle_clone")||(r.ClassHandle_clone=function(){_e("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ClassHandle_delete")||(r.ClassHandle_delete=function(){_e("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"deletionQueue")||(r.deletionQueue=function(){_e("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ClassHandle_isDeleted")||(r.ClassHandle_isDeleted=function(){_e("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ClassHandle_deleteLater")||(r.ClassHandle_deleteLater=function(){_e("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"flushPendingDeletes")||(r.flushPendingDeletes=function(){_e("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"delayFunction")||(r.delayFunction=function(){_e("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setDelayFunction")||(r.setDelayFunction=function(){_e("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"RegisteredClass")||(r.RegisteredClass=function(){_e("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"shallowCopyInternalPointer")||(r.shallowCopyInternalPointer=function(){_e("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"downcastPointer")||(r.downcastPointer=function(){_e("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"upcastPointer")||(r.upcastPointer=function(){_e("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"validateThis")||(r.validateThis=function(){_e("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"char_0")||(r.char_0=function(){_e("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"char_9")||(r.char_9=function(){_e("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"makeLegalFunctionName")||(r.makeLegalFunctionName=function(){_e("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emscriptenWebGLGetIndexed")||(r.emscriptenWebGLGetIndexed=function(){_e("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"warnOnce")||(r.warnOnce=function(){_e("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stackSave")||(r.stackSave=function(){_e("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stackRestore")||(r.stackRestore=function(){_e("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stackAlloc")||(r.stackAlloc=function(){_e("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"AsciiToString")||(r.AsciiToString=function(){_e("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stringToAscii")||(r.stringToAscii=function(){_e("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"UTF16ToString")||(r.UTF16ToString=function(){_e("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stringToUTF16")||(r.stringToUTF16=function(){_e("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"lengthBytesUTF16")||(r.lengthBytesUTF16=function(){_e("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"UTF32ToString")||(r.UTF32ToString=function(){_e("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stringToUTF32")||(r.stringToUTF32=function(){_e("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"lengthBytesUTF32")||(r.lengthBytesUTF32=function(){_e("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"allocateUTF8")||(r.allocateUTF8=function(){_e("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"allocateUTF8OnStack")||(r.allocateUTF8OnStack=function(){_e("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),r.writeStackCookie=ie,r.checkStackCookie=ae,Object.getOwnPropertyDescriptor(r,"ALLOC_NORMAL")||Object.defineProperty(r,"ALLOC_NORMAL",{configurable:!0,get(){_e("'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(){_e("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),pe=function e(){bn||Dn(),bn||(pe=e)},r.run=Dn,r.preInit)for("function"==typeof r.preInit&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return Dn(),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(){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(o.ready,"_main",{configurable:!0,set:function(){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(o.ready,"_emscripten_stack_get_end")||(Object.defineProperty(o.ready,"_emscripten_stack_get_end",{configurable:!0,get:function(){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(o.ready,"_emscripten_stack_get_end",{configurable:!0,set:function(){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(o.ready,"_emscripten_stack_get_free")||(Object.defineProperty(o.ready,"_emscripten_stack_get_free",{configurable:!0,get:function(){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(o.ready,"_emscripten_stack_get_free",{configurable:!0,set:function(){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(o.ready,"_emscripten_stack_init")||(Object.defineProperty(o.ready,"_emscripten_stack_init",{configurable:!0,get:function(){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(o.ready,"_emscripten_stack_init",{configurable:!0,set:function(){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(o.ready,"_stackSave")||(Object.defineProperty(o.ready,"_stackSave",{configurable:!0,get:function(){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(o.ready,"_stackSave",{configurable:!0,set:function(){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(o.ready,"_stackRestore")||(Object.defineProperty(o.ready,"_stackRestore",{configurable:!0,get:function(){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(o.ready,"_stackRestore",{configurable:!0,set:function(){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(o.ready,"_stackAlloc")||(Object.defineProperty(o.ready,"_stackAlloc",{configurable:!0,get:function(){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(o.ready,"_stackAlloc",{configurable:!0,set:function(){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(o.ready,"___wasm_call_ctors")||(Object.defineProperty(o.ready,"___wasm_call_ctors",{configurable:!0,get:function(){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(o.ready,"___wasm_call_ctors",{configurable:!0,set:function(){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(o.ready,"_fflush")||(Object.defineProperty(o.ready,"_fflush",{configurable:!0,get:function(){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(o.ready,"_fflush",{configurable:!0,set:function(){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(o.ready,"___errno_location")||(Object.defineProperty(o.ready,"___errno_location",{configurable:!0,get:function(){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(o.ready,"___errno_location",{configurable:!0,set:function(){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(o.ready,"_malloc")||(Object.defineProperty(o.ready,"_malloc",{configurable:!0,get:function(){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(o.ready,"_malloc",{configurable:!0,set:function(){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(o.ready,"_free")||(Object.defineProperty(o.ready,"_free",{configurable:!0,get:function(){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(o.ready,"_free",{configurable:!0,set:function(){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(o.ready,"_setThrew")||(Object.defineProperty(o.ready,"_setThrew",{configurable:!0,get:function(){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(o.ready,"_setThrew",{configurable:!0,set:function(){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(o.ready,"___cxa_is_pointer_type")||(Object.defineProperty(o.ready,"___cxa_is_pointer_type",{configurable:!0,get:function(){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(o.ready,"___cxa_is_pointer_type",{configurable:!0,set:function(){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(o.ready,"___cxa_can_catch")||(Object.defineProperty(o.ready,"___cxa_can_catch",{configurable:!0,get:function(){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(o.ready,"___cxa_can_catch",{configurable:!0,set:function(){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(o.ready,"_saveSetjmp")||(Object.defineProperty(o.ready,"_saveSetjmp",{configurable:!0,get:function(){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(o.ready,"_saveSetjmp",{configurable:!0,set:function(){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(o.ready,"_memalign")||(Object.defineProperty(o.ready,"_memalign",{configurable:!0,get:function(){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(o.ready,"_memalign",{configurable:!0,set:function(){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(o.ready,"_emscripten_main_thread_process_queued_calls")||(Object.defineProperty(o.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,get:function(){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(o.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,set:function(){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(o.ready,"_emscripten_webgl_make_context_current")||(Object.defineProperty(o.ready,"_emscripten_webgl_make_context_current",{configurable:!0,get:function(){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(o.ready,"_emscripten_webgl_make_context_current",{configurable:!0,set:function(){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(o.ready,"_emscripten_webgl_get_current_context")||(Object.defineProperty(o.ready,"_emscripten_webgl_get_current_context",{configurable:!0,get:function(){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(o.ready,"_emscripten_webgl_get_current_context",{configurable:!0,set:function(){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(o.ready,"__get_tzname")||(Object.defineProperty(o.ready,"__get_tzname",{configurable:!0,get:function(){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(o.ready,"__get_tzname",{configurable:!0,set:function(){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(o.ready,"__get_daylight")||(Object.defineProperty(o.ready,"__get_daylight",{configurable:!0,get:function(){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(o.ready,"__get_daylight",{configurable:!0,set:function(){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(o.ready,"__get_timezone")||(Object.defineProperty(o.ready,"__get_timezone",{configurable:!0,get:function(){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(o.ready,"__get_timezone",{configurable:!0,set:function(){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(o.ready,"_emscripten_builtin_malloc")||(Object.defineProperty(o.ready,"_emscripten_builtin_malloc",{configurable:!0,get:function(){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(o.ready,"_emscripten_builtin_malloc",{configurable:!0,set:function(){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(o.ready,"_emscripten_builtin_free")||(Object.defineProperty(o.ready,"_emscripten_builtin_free",{configurable:!0,get:function(){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(o.ready,"_emscripten_builtin_free",{configurable:!0,set:function(){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(o.ready,"_emscripten_builtin_memalign")||(Object.defineProperty(o.ready,"_emscripten_builtin_memalign",{configurable:!0,get:function(){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(o.ready,"_emscripten_builtin_memalign",{configurable:!0,set:function(){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(o.ready,"___getTypeName")||(Object.defineProperty(o.ready,"___getTypeName",{configurable:!0,get:function(){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(o.ready,"___getTypeName",{configurable:!0,set:function(){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(o.ready,"___embind_register_native_and_builtin_types")||(Object.defineProperty(o.ready,"___embind_register_native_and_builtin_types",{configurable:!0,get:function(){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(o.ready,"___embind_register_native_and_builtin_types",{configurable:!0,set:function(){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(o.ready,"onRuntimeInitialized")||(Object.defineProperty(o.ready,"onRuntimeInitialized",{configurable:!0,get:function(){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(o.ready,"onRuntimeInitialized",{configurable:!0,set:function(){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")}}));var i,a={};for(i in o)o.hasOwnProperty(i)&&(a[i]=o[i]);var s=[],c="./this.program",A=function(e,t){throw t},u="object"==typeof window,l="function"==typeof importScripts,d="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,g=!u&&!d&&!l;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 f,h,p,E="";if(!u&&!l)throw new Error("environment detection error");if(l?E=self.location.href:"undefined"!=typeof document&&document.currentScript&&(E=document.currentScript.src),e&&(E=e),E=0!==E.indexOf("blob:")?E.substr(0,E.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?)");f=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},l&&(p=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),h=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 m=o.print||console.log.bind(console),I=o.printErr||console.warn.bind(console);for(i in a)a.hasOwnProperty(i)&&(o[i]=a[i]);function y(e){y.shown||(y.shown={}),y.shown[e]||(y.shown[e]=1,I(e))}a=null,o.arguments&&(s=o.arguments),Object.getOwnPropertyDescriptor(o,"arguments")||Object.defineProperty(o,"arguments",{configurable:!0,get:function(){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)")}}),o.thisProgram&&(c=o.thisProgram),Object.getOwnPropertyDescriptor(o,"thisProgram")||Object.defineProperty(o,"thisProgram",{configurable:!0,get:function(){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)")}}),o.quit&&(A=o.quit),Object.getOwnPropertyDescriptor(o,"quit")||Object.defineProperty(o,"quit",{configurable:!0,get:function(){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===o.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),T(void 0===o.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),T(void 0===o.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),T(void 0===o.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),T(void 0===o.read,"Module.read option was removed (modify read_ in JS)"),T(void 0===o.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),T(void 0===o.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),T(void 0===o.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),T(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(){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(o,"readAsync")||Object.defineProperty(o,"readAsync",{configurable:!0,get:function(){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(o,"readBinary")||Object.defineProperty(o,"readBinary",{configurable:!0,get:function(){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(o,"setWindowTitle")||Object.defineProperty(o,"setWindowTitle",{configurable:!0,get:function(){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(!g,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");var _,w=0,C=function(e){w=e};o.wasmBinary&&(_=o.wasmBinary),Object.getOwnPropertyDescriptor(o,"wasmBinary")||Object.defineProperty(o,"wasmBinary",{configurable:!0,get:function(){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)")}});var b,B=o.noExitRuntime||!0;Object.getOwnPropertyDescriptor(o,"noExitRuntime")||Object.defineProperty(o,"noExitRuntime",{configurable:!0,get:function(){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");var D,O=!1;function T(e,t){e||ye("Assertion failed: "+t)}var v="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function Q(e,t,r){for(var n=t+r,o=t;e[o]&&!(o>=n);)++o;if(o-t>16&&e.subarray&&v)return v.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 c=63&e[t++];if(224==(240&a)?a=(15&a)<<12|s<<6|c:(240!=(248&a)&&y("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|c<<6|63&e[t++]),a<65536)i+=String.fromCharCode(a);else{var A=a-65536;i+=String.fromCharCode(55296|A>>10,56320|1023&A)}}else i+=String.fromCharCode((31&a)<<6|s)}else i+=String.fromCharCode(a)}return i}function P(e,t){return e?Q(k,e,t):""}function M(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&&y("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 R(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,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,x,k,N,U,j,L,H,G,Y="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function X(e,t){T(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=N[e+2*a>>1];if(0==s)break;i+=String.fromCharCode(s)}return i}function W(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;for(var n=t,o=(r-=2)<2*e.length?r/2:e.length,i=0;i<o;++i){var a=e.charCodeAt(i);N[t>>1]=a,t+=2}return N[t>>1]=0,t-n}function V(e){return 2*e.length}function z(e,t){T(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(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;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 Z(e){var t=S(e)+1,r=gn(t);return r&&M(e,x,r,t),r}function J(e,t){T(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),x.set(e,t)}function q(e,t){return e%t>0&&(e+=t-e%t),e}function ee(e){F=e,o.HEAP8=x=new Int8Array(e),o.HEAP16=N=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 te=5242880;o.TOTAL_STACK&&T(te===o.TOTAL_STACK,"the stack size can no longer be determined at runtime");var re,ne=o.INITIAL_MEMORY||16777216;function oe(){var e=pn();T(!(3&e)),L[1+(e>>2)]=34821223,L[2+(e>>2)]=2310721022,j[0]=1668509029}function ie(){if(!O){var e=pn(),t=L[1+(e>>2)],r=L[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!==j[0]&&ye("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(){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(ne>=te,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+ne+"! (TOTAL_STACK="+te+")"),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(!o.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),T(16777216==ne,"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 ae=[],se=[],ce=[],Ae=[],ue=!1,le=!1;function de(){return B||!1}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");var ge=0,fe=null,he=null,pe={};function Ee(e){for(var t=e;;){if(!pe[e])return e;e=t+Math.random()}}function me(e){ge++,o.monitorRunDependencies&&o.monitorRunDependencies(ge),e?(T(!pe[e]),pe[e]=1,null===fe&&"undefined"!=typeof setInterval&&(fe=setInterval((function(){if(O)return clearInterval(fe),void(fe=null);var e=!1;for(var t in pe)e||(e=!0,I("still waiting on run dependencies:")),I("dependency: "+t);e&&I("(end of list)")}),1e4))):I("warning: run dependency added without ID")}function Ie(e){if(ge--,o.monitorRunDependencies&&o.monitorRunDependencies(ge),e?(T(pe[e]),delete pe[e]):I("warning: run dependency removed without ID"),0==ge&&(null!==fe&&(clearInterval(fe),fe=null),he)){var t=he;he=null,t()}}function ye(e){o.onAbort&&o.onAbort(e),I(e+=""),O=!0,D=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 Ne(e)}();e=t;var r=new WebAssembly.RuntimeError(e);throw n(r),r}o.preloadedImages={},o.preloadedAudios={};var _e,we,Ce,be;function Be(e){return e.startsWith("data:application/octet-stream;base64,")}function De(e){return e.startsWith("file://")}function Oe(e,t){return function(){var r=e,n=t;return t||(n=o.asm),T(ue,"native function `"+r+"` called before runtime initialization"),T(!le,"native function `"+r+"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),n[e]||T(n[e],"exported native function `"+r+"` not found"),n[e].apply(null,arguments)}}function Te(e){try{if(e==_e&&_)return new Uint8Array(_);if(p)return p(e);throw"both async and sync fetching of the wasm failed"}catch(e){ye(e)}}Be(_e="selfie_segmentation_solution_wasm_bin.wasm")||(we=_e,_e=o.locateFile?o.locateFile(we,E):E+we);var ve,Qe={460976:function(){let e=!0;if(e){const t=Mr;if("function"!=typeof t)return void("undefined"!=typeof console&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.'));Mr=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 Pe(e,t){if(xe.mainLoop.timingMode=e,xe.mainLoop.timingValue=t,!xe.mainLoop.func)return I("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(xe.mainLoop.running||(xe.mainLoop.running=!0),0==e)xe.mainLoop.scheduler=function(){var e=0|Math.max(0,xe.mainLoop.tickStartTime+t-ve());setTimeout(xe.mainLoop.runner,e)},xe.mainLoop.method="timeout";else if(1==e)xe.mainLoop.scheduler=function(){xe.requestAnimationFrame(xe.mainLoop.runner)},xe.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),l?(void 0===o.setImmediates&&(o.setImmediates=[]),o.setImmediates.push(e),postMessage({target:n})):postMessage(n,"*")}}xe.mainLoop.scheduler=function(){setImmediate(xe.mainLoop.runner)},xe.mainLoop.method="immediate"}return 0}function Me(e){!function(e,t){if(D=e,function(){var e=m,t=I,r=!1;m=I=function(e){r=!0};try{var n=o._fflush;n&&n(0),["stdout","stderr"].forEach((function(e){var t=qe.analyzePath("/dev/"+e);if(t){var n=t.object.rdev,o=ze.ttys[n];o&&o.output&&o.output.length&&(r=!0)}}))}catch(e){}m=e,I=t,r&&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.")}(),de()){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),I(r)}}else ie(),le=!0;vn(e)}(e)}function Re(e,t,r,n,i){T(!xe.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."),xe.mainLoop.func=e,xe.mainLoop.arg=n;var a=xe.mainLoop.currentlyRunningMainloop;function s(){return!(a<xe.mainLoop.currentlyRunningMainloop)||(function(){if(!de())try{Me(D)}catch(e){if(e instanceof On)return;throw e}}(),!1)}if(xe.mainLoop.running=!1,xe.mainLoop.runner=function(){if(!O)if(xe.mainLoop.queue.length>0){var t=Date.now(),r=xe.mainLoop.queue.shift();if(r.func(r.arg),xe.mainLoop.remainingBlockers){var n=xe.mainLoop.remainingBlockers,i=n%1==0?n-1:Math.floor(n);r.counted?xe.mainLoop.remainingBlockers=i:(i+=.5,xe.mainLoop.remainingBlockers=(8*n+i)/9)}if(m('main loop blocker "'+r.name+'" took '+(Date.now()-t)+" ms"),xe.mainLoop.updateStatus(),!s())return;setTimeout(xe.mainLoop.runner,0)}else s()&&(xe.mainLoop.currentFrameNumber=xe.mainLoop.currentFrameNumber+1|0,1==xe.mainLoop.timingMode&&xe.mainLoop.timingValue>1&&xe.mainLoop.currentFrameNumber%xe.mainLoop.timingValue!=0?xe.mainLoop.scheduler():(0==xe.mainLoop.timingMode&&(xe.mainLoop.tickStartTime=ve()),Tr.newRenderingFrameStarted(),void 0!==Tr&&Tr.currentContext&&!Tr.currentContextIsProxied&&!Tr.currentContext.attributes.explicitSwapControl&&Tr.currentContext.GLctx.commit&&Tr.currentContext.GLctx.commit(),"timeout"===xe.mainLoop.method&&o.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!"),xe.mainLoop.method=""),xe.mainLoop.runIter(e),ie(),s()&&("object"==typeof SDL&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),xe.mainLoop.scheduler())))},i||(t&&t>0?Pe(0,1e3/t):Pe(1,1),xe.mainLoop.scheduler()),r)throw"unwind"}function Se(e,t){if(O)I("user callback triggered after application aborted. Ignoring.");else if(t)e();else try{e()}catch(e){if(e instanceof On)return;if("unwind"!==e)throw e&&"object"==typeof e&&e.stack&&I("exception thrown: "+[e,e.stack]),e}}function Fe(e,t){return setTimeout((function(){Se(e)}),t)}ve=d?function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:function(){return performance.now()};var xe={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){xe.mainLoop.scheduler=null,xe.mainLoop.currentlyRunningMainloop++},resume:function(){xe.mainLoop.currentlyRunningMainloop++;var e=xe.mainLoop.timingMode,t=xe.mainLoop.timingValue,r=xe.mainLoop.func;xe.mainLoop.func=null,Re(r,0,!1,xe.mainLoop.arg,!0),Pe(e,t),xe.mainLoop.scheduler()},updateStatus:function(){if(o.setStatus){var e=o.statusMessage||"Please wait...",t=xe.mainLoop.remainingBlockers,r=xe.mainLoop.expectedBlockers;t?t<r?o.setStatus(e+" ("+(r-t)+"/"+r+")"):o.setStatus(e):o.setStatus("")}},runIter:function(e){if(!O){if(o.preMainLoop)if(!1===o.preMainLoop())return;Se(e),o.postMainLoop&&o.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(o.preloadPlugins||(o.preloadPlugins=[]),!xe.initted){xe.initted=!0;try{new Blob,xe.hasBlobConstructor=!0}catch(e){xe.hasBlobConstructor=!1,m("warning: no blob constructor, cannot create blobs with mimetypes")}xe.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:xe.hasBlobConstructor?null:m("warning: no BlobBuilder"),xe.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,o.noImageDecoding||void 0!==xe.URLObject||(m("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(xe.hasBlobConstructor)try{(i=new Blob([e],{type:xe.getMimetype(t)})).size!==e.length&&(i=new Blob([new Uint8Array(e).buffer],{type:xe.getMimetype(t)}))}catch(e){y("Blob constructor present but fails: "+e+"; falling back to blob builder")}if(!i){var a=new xe.BlobBuilder;a.append(new Uint8Array(e).buffer),i=a.getBlob()}var s=xe.URLObject.createObjectURL(i);T("string"==typeof s,"createObjectURL must return a url as a string");var c=new Image;c.onload=function(){T(c.complete,"Image "+t+" could not be decoded");var n=document.createElement("canvas");n.width=c.width,n.height=c.height,n.getContext("2d").drawImage(c,0,0),o.preloadedImages[t]=n,xe.URLObject.revokeObjectURL(s),r&&r(e)},c.onerror=function(e){m("Image "+s+" could not be decoded"),n&&n()},c.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(!xe.hasBlobConstructor)return s();try{var c=new Blob([e],{type:xe.getMimetype(t)})}catch(e){return s()}var A=xe.URLObject.createObjectURL(c);T("string"==typeof A,"createObjectURL must return a url as a string");var u=new Audio;u.addEventListener("canplaythrough",(function(){a(u)}),!1),u.onerror=function(r){i||(m("warning: browser could not fully decode audio "+t+", trying slower base64 approach"),u.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(u))},u.src=A,Fe((function(){a(u)}),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){!xe.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 c in n)s[c]=n[c];void 0!==Tr&&(a=Tr.createContext(e,s))&&(i=Tr.getContext(a).GLctx)}else i=e.getContext("2d");return i?(r&&(t||T(void 0===tn,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),o.ctx=i,t&&Tr.makeContextCurrent(a),o.useWebGL=t,xe.moduleContextCreatedCallbacks.forEach((function(e){e()})),xe.init()),i):null},destroyContext:function(e,t,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(e,t){xe.lockPointer=e,xe.resizeCanvas=t,void 0===xe.lockPointer&&(xe.lockPointer=!0),void 0===xe.resizeCanvas&&(xe.resizeCanvas=!1);var r=o.canvas;function n(){xe.isFullscreen=!1;var e=r.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e?(r.exitFullscreen=xe.exitFullscreen,xe.lockPointer&&r.requestPointerLock(),xe.isFullscreen=!0,xe.resizeCanvas?xe.setFullscreenCanvasSize():xe.updateCanvasDimensions(r)):(e.parentNode.insertBefore(r,e),e.parentNode.removeChild(e),xe.resizeCanvas?xe.setWindowedCanvasSize():xe.updateCanvasDimensions(r)),o.onFullScreen&&o.onFullScreen(xe.isFullscreen),o.onFullscreen&&o.onFullscreen(xe.isFullscreen)}xe.fullscreenHandlersInstalled||(xe.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(){ye("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen:function(){return!!xe.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===xe.nextRAF)xe.nextRAF=t+1e3/60;else for(;t+2>=xe.nextRAF;)xe.nextRAF+=1e3/60;var r=Math.max(xe.nextRAF-t,0);setTimeout(e,r)},requestAnimationFrame:function(e){"function"!=typeof requestAnimationFrame?(0,xe.fakeRequestAnimationFrame)(e):requestAnimationFrame(e)},safeSetTimeout:function(e){return Fe(e)},safeRequestAnimationFrame:function(e){return xe.requestAnimationFrame((function(){Se(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(xe.pointerLock)"mousemove"!=e.type&&"mozMovementX"in e?xe.mouseMovementX=xe.mouseMovementY=0:(xe.mouseMovementX=xe.getMovementX(e),xe.mouseMovementY=xe.getMovementY(e)),"undefined"!=typeof SDL?(xe.mouseX=SDL.mouseX+xe.mouseMovementX,xe.mouseY=SDL.mouseY+xe.mouseMovementY):(xe.mouseX+=xe.mouseMovementX,xe.mouseY+=xe.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(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){var s=e.touch;if(void 0===s)return;var c=s.pageX-(i+t.left),A=s.pageY-(a+t.top),u={x:c*=r/t.width,y:A*=n/t.height};if("touchstart"===e.type)xe.lastTouches[s.identifier]=u,xe.touches[s.identifier]=u;else if("touchend"===e.type||"touchmove"===e.type){var l=xe.touches[s.identifier];l||(l=u),xe.lastTouches[s.identifier]=l,xe.touches[s.identifier]=u}return}var d=e.pageX-(i+t.left),g=e.pageY-(a+t.top);d*=r/t.width,g*=n/t.height,xe.mouseMovementX=d-xe.mouseX,xe.mouseMovementY=g-xe.mouseY,xe.mouseX=d,xe.mouseY=g}},resizeListeners:[],updateResizeListeners:function(){var e=o.canvas;xe.resizeListeners.forEach((function(t){t(e.width,e.height)}))},setCanvasSize:function(e,t,r){var n=o.canvas;xe.updateCanvasDimensions(n,e,t),r||xe.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if("undefined"!=typeof SDL){var e=L[SDL.screen>>2];e|=8388608,j[SDL.screen>>2]=e}xe.updateCanvasDimensions(o.canvas),xe.updateResizeListeners()},setWindowedCanvasSize:function(){if("undefined"!=typeof SDL){var e=L[SDL.screen>>2];e&=-8388609,j[SDL.screen>>2]=e}xe.updateCanvasDimensions(o.canvas),xe.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)}xe.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 ke(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?re.get(r)():re.get(r)(t.arg):r(void 0===t.arg?null:t.arg)}else t(o)}}function Ne(e){return e.replace(/\b_Z[\w\d_]+/g,(function(e){var t,r=(t=e,y("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),t);return e===r?e:r+" ["+e+"]"}))}function Ue(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,x[this.ptr+12|0]=e},this.get_caught=function(){return 0!=x[this.ptr+12|0]},this.set_rethrown=function(e){e=e?1:0,x[this.ptr+13|0]=e},this.get_rethrown=function(){return 0!=x[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,T(e>0),1===e}}function je(e){this.free=function(){dn(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(Bn(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 Ue(this.get_base_ptr())},void 0===e?(this.ptr=gn(8),this.set_adjusted_ptr(0)):this.ptr=e}var Le=[];var He=0;function Ge(e){try{return dn(new Ue(e).ptr)}catch(e){I("exception during cxa_free_exception: "+e)}}function Ye(e){return j[fn()>>2]=e,e}var Xe={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=Xe.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:function(e){var t=Xe.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=Xe.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},extname:function(e){return Xe.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return Xe.normalize(e.join("/"))},join2:function(e,t){return Xe.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(d)try{var t=__require("crypto");return function(){return t.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 Ve={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:qe.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=Xe.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=Ve.resolve(e).substr(1),t=Ve.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 c=[];for(s=a;s<n.length;s++)c.push("..");return(c=c.concat(o.slice(a))).join("/")}},ze={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){ze.ttys[e]={input:[],output:[],ops:t},qe.registerDevice(e,ze.stream_ops)},stream_ops:{open:function(e){var t=ze.ttys[e.node.rdev];if(!t)throw new qe.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 qe.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 qe.ErrnoError(29)}if(void 0===s&&0===i)throw new qe.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 qe.ErrnoError(60);try{for(var i=0;i<n;i++)e.tty.ops.put_char(e.tty,t[r+i])}catch(e){throw new qe.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(d){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=An(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(m(Q(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(m(Q(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(I(Q(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(I(Q(e.output,0)),e.output=[])}}};function $e(e){e=function(e,t){return T(t,"alignment argument is required"),Math.ceil(e/t)*t}(e,65536);var t=Dn(65536,e);return t?(function(e,t){k.fill(0,e,e+t)}(t,e),t):0}var Ke={ops_table:null,mount:function(e){return Ke.createNode(null,"/",16895,0)},createNode:function(e,t,r,n){if(qe.isBlkdev(r)||qe.isFIFO(r))throw new qe.ErrnoError(63);Ke.ops_table||(Ke.ops_table={dir:{node:{getattr:Ke.node_ops.getattr,setattr:Ke.node_ops.setattr,lookup:Ke.node_ops.lookup,mknod:Ke.node_ops.mknod,rename:Ke.node_ops.rename,unlink:Ke.node_ops.unlink,rmdir:Ke.node_ops.rmdir,readdir:Ke.node_ops.readdir,symlink:Ke.node_ops.symlink},stream:{llseek:Ke.stream_ops.llseek}},file:{node:{getattr:Ke.node_ops.getattr,setattr:Ke.node_ops.setattr},stream:{llseek:Ke.stream_ops.llseek,read:Ke.stream_ops.read,write:Ke.stream_ops.write,allocate:Ke.stream_ops.allocate,mmap:Ke.stream_ops.mmap,msync:Ke.stream_ops.msync}},link:{node:{getattr:Ke.node_ops.getattr,setattr:Ke.node_ops.setattr,readlink:Ke.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Ke.node_ops.getattr,setattr:Ke.node_ops.setattr},stream:qe.chrdev_stream_ops}});var o=qe.createNode(e,t,r,n);return qe.isDir(o.mode)?(o.node_ops=Ke.ops_table.dir.node,o.stream_ops=Ke.ops_table.dir.stream,o.contents={}):qe.isFile(o.mode)?(o.node_ops=Ke.ops_table.file.node,o.stream_ops=Ke.ops_table.file.stream,o.usedBytes=0,o.contents=null):qe.isLink(o.mode)?(o.node_ops=Ke.ops_table.link.node,o.stream_ops=Ke.ops_table.link.stream):qe.isChrdev(o.mode)&&(o.node_ops=Ke.ops_table.chrdev.node,o.stream_ops=Ke.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=qe.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,qe.isDir(e.mode)?t.size=4096:qe.isFile(e.mode)?t.size=e.usedBytes:qe.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&&Ke.resizeFileStorage(e,t.size)},lookup:function(e,t){throw qe.genericErrors[44]},mknod:function(e,t,r,n){return Ke.createNode(e,t,r,n)},rename:function(e,t,r){if(qe.isDir(e.mode)){var n;try{n=qe.lookupNode(t,r)}catch(e){}if(n)for(var o in n.contents)throw new qe.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=qe.lookupNode(e,t);for(var n in r.contents)throw new qe.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=Ke.createNode(e,t,41471,0);return n.link=r,n},readlink:function(e){if(!qe.isLink(e.mode))throw new qe.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(T(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(T(!(t instanceof ArrayBuffer)),t.buffer===x.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 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(Ke.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&&qe.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new qe.ErrnoError(28);return n},allocate:function(e,t,r){Ke.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 qe.ErrnoError(28);if(!qe.isFile(e.node.mode))throw new qe.ErrnoError(43);var a,s,c=e.node.contents;if(2&i||c.buffer!==F){if((n>0||n+r<c.length)&&(c=c.subarray?c.subarray(n,n+r):Array.prototype.slice.call(c,n,n+r)),s=!0,!(a=$e(r)))throw new qe.ErrnoError(48);x.set(c,a)}else s=!1,a=c.byteOffset;return{ptr:a,allocated:s}},msync:function(e,t,r,n,o){if(!qe.isFile(e.node.mode))throw new qe.ErrnoError(43);if(2&o)return 0;Ke.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"},Je={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},qe={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=Ve.resolve(qe.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 qe.ErrnoError(32);for(var o=Xe.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),i=qe.root,a="/",s=0;s<o.length;s++){var c=s===o.length-1;if(c&&t.parent)break;if(i=qe.lookupNode(i,o[s]),a=Xe.join2(a,o[s]),qe.isMountpoint(i)&&(!c||c&&t.follow_mount)&&(i=i.mounted.root),!c||t.follow)for(var A=0;qe.isLink(i.mode);){var u=qe.readlink(a);if(a=Ve.resolve(Xe.dirname(a),u),i=qe.lookupPath(a,{recurse_count:t.recurse_count}).node,A++>40)throw new qe.ErrnoError(32)}}return{path:a,node:i}},getPath:function(e){for(var t;;){if(qe.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)%qe.nameTable.length},hashAddNode:function(e){var t=qe.hashName(e.parent.id,e.name);e.name_next=qe.nameTable[t],qe.nameTable[t]=e},hashRemoveNode:function(e){var t=qe.hashName(e.parent.id,e.name);if(qe.nameTable[t]===e)qe.nameTable[t]=e.name_next;else for(var r=qe.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=qe.mayLookup(e);if(r)throw new qe.ErrnoError(r,e);for(var n=qe.hashName(e.id,t),o=qe.nameTable[n];o;o=o.name_next){var i=o.name;if(o.parent.id===e.id&&i===t)return o}return qe.lookup(e,t)},createNode:function(e,t,r,n){T("object"==typeof e);var o=new qe.FSNode(e,t,r,n);return qe.hashAddNode(o),o},destroyNode:function(e){qe.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=qe.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 qe.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=qe.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:function(e,t){try{qe.lookupNode(e,t);return 20}catch(e){}return qe.nodePermissions(e,"wx")},mayDelete:function(e,t,r){var n;try{n=qe.lookupNode(e,t)}catch(e){return e.errno}var o=qe.nodePermissions(e,"wx");if(o)return o;if(r){if(!qe.isDir(n.mode))return 54;if(qe.isRoot(n)||qe.getPath(n)===qe.cwd())return 10}else if(qe.isDir(n.mode))return 31;return 0},mayOpen:function(e,t){return e?qe.isLink(e.mode)?32:qe.isDir(e.mode)&&("r"!==qe.flagsToPermissionString(t)||512&t)?31:qe.nodePermissions(e,qe.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){e=e||0,t=t||qe.MAX_OPEN_FDS;for(var r=e;r<=t;r++)if(!qe.streams[r])return r;throw new qe.ErrnoError(33)},getStream:function(e){return qe.streams[e]},createStream:function(e,t,r){qe.FSStream||(qe.FSStream=function(){},qe.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 qe.FSStream;for(var o in e)n[o]=e[o];e=n;var i=qe.nextfd(t,r);return e.fd=i,qe.streams[i]=e,e},closeStream:function(e){qe.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=qe.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new qe.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){qe.devices[e]={stream_ops:t}},getDevice:function(e){return qe.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),qe.syncFSRequests++,qe.syncFSRequests>1&&I("warning: "+qe.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=qe.getMounts(qe.root.mount),n=0;function o(e){return T(qe.syncFSRequests>0),qe.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&&qe.root)throw new qe.ErrnoError(10);if(!o&&!i){var a=qe.lookupPath(r,{follow_mount:!1});if(r=a.path,n=a.node,qe.isMountpoint(n))throw new qe.ErrnoError(10);if(!qe.isDir(n.mode))throw new qe.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},c=e.mount(s);return c.mount=s,s.root=c,o?qe.root=c:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),c},unmount:function(e){var t=qe.lookupPath(e,{follow_mount:!1});if(!qe.isMountpoint(t.node))throw new qe.ErrnoError(28);var r=t.node,n=r.mounted,o=qe.getMounts(n);Object.keys(qe.nameTable).forEach((function(e){for(var t=qe.nameTable[e];t;){var r=t.name_next;o.includes(t.mount)&&qe.destroyNode(t),t=r}})),r.mounted=null;var i=r.mount.mounts.indexOf(n);T(-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=qe.lookupPath(e,{parent:!0}).node,o=Xe.basename(e);if(!o||"."===o||".."===o)throw new qe.ErrnoError(28);var i=qe.mayCreate(n,o);if(i)throw new qe.ErrnoError(i);if(!n.node_ops.mknod)throw new qe.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,qe.mknod(e,t,0)},mkdir:function(e,t){return t=void 0!==t?t:511,t&=1023,t|=16384,qe.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{qe.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,qe.mknod(e,t,r)},symlink:function(e,t){if(!Ve.resolve(e))throw new qe.ErrnoError(44);var r=qe.lookupPath(t,{parent:!0}).node;if(!r)throw new qe.ErrnoError(44);var n=Xe.basename(t),o=qe.mayCreate(r,n);if(o)throw new qe.ErrnoError(o);if(!r.node_ops.symlink)throw new qe.ErrnoError(63);return r.node_ops.symlink(r,n,e)},rename:function(e,t){var r,n,o=Xe.dirname(e),i=Xe.dirname(t),a=Xe.basename(e),s=Xe.basename(t);if(r=qe.lookupPath(e,{parent:!0}).node,n=qe.lookupPath(t,{parent:!0}).node,!r||!n)throw new qe.ErrnoError(44);if(r.mount!==n.mount)throw new qe.ErrnoError(75);var c,A=qe.lookupNode(r,a),u=Ve.relative(e,i);if("."!==u.charAt(0))throw new qe.ErrnoError(28);if("."!==(u=Ve.relative(t,o)).charAt(0))throw new qe.ErrnoError(55);try{c=qe.lookupNode(n,s)}catch(e){}if(A!==c){var l=qe.isDir(A.mode),d=qe.mayDelete(r,a,l);if(d)throw new qe.ErrnoError(d);if(d=c?qe.mayDelete(n,s,l):qe.mayCreate(n,s))throw new qe.ErrnoError(d);if(!r.node_ops.rename)throw new qe.ErrnoError(63);if(qe.isMountpoint(A)||c&&qe.isMountpoint(c))throw new qe.ErrnoError(10);if(n!==r&&(d=qe.nodePermissions(r,"w")))throw new qe.ErrnoError(d);try{qe.trackingDelegate.willMovePath&&qe.trackingDelegate.willMovePath(e,t)}catch(r){I("FS.trackingDelegate['willMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}qe.hashRemoveNode(A);try{r.node_ops.rename(A,n,s)}catch(e){throw e}finally{qe.hashAddNode(A)}try{qe.trackingDelegate.onMovePath&&qe.trackingDelegate.onMovePath(e,t)}catch(r){I("FS.trackingDelegate['onMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}}},rmdir:function(e){var t=qe.lookupPath(e,{parent:!0}).node,r=Xe.basename(e),n=qe.lookupNode(t,r),o=qe.mayDelete(t,r,!0);if(o)throw new qe.ErrnoError(o);if(!t.node_ops.rmdir)throw new qe.ErrnoError(63);if(qe.isMountpoint(n))throw new qe.ErrnoError(10);try{qe.trackingDelegate.willDeletePath&&qe.trackingDelegate.willDeletePath(e)}catch(t){I("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.rmdir(t,r),qe.destroyNode(n);try{qe.trackingDelegate.onDeletePath&&qe.trackingDelegate.onDeletePath(e)}catch(t){I("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readdir:function(e){var t=qe.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new qe.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(e){var t=qe.lookupPath(e,{parent:!0}).node,r=Xe.basename(e),n=qe.lookupNode(t,r),o=qe.mayDelete(t,r,!1);if(o)throw new qe.ErrnoError(o);if(!t.node_ops.unlink)throw new qe.ErrnoError(63);if(qe.isMountpoint(n))throw new qe.ErrnoError(10);try{qe.trackingDelegate.willDeletePath&&qe.trackingDelegate.willDeletePath(e)}catch(t){I("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.unlink(t,r),qe.destroyNode(n);try{qe.trackingDelegate.onDeletePath&&qe.trackingDelegate.onDeletePath(e)}catch(t){I("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readlink:function(e){var t=qe.lookupPath(e).node;if(!t)throw new qe.ErrnoError(44);if(!t.node_ops.readlink)throw new qe.ErrnoError(28);return Ve.resolve(qe.getPath(t.parent),t.node_ops.readlink(t))},stat:function(e,t){var r=qe.lookupPath(e,{follow:!t}).node;if(!r)throw new qe.ErrnoError(44);if(!r.node_ops.getattr)throw new qe.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(e){return qe.stat(e,!0)},chmod:function(e,t,r){var n;"string"==typeof e?n=qe.lookupPath(e,{follow:!r}).node:n=e;if(!n.node_ops.setattr)throw new qe.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:function(e,t){qe.chmod(e,t,!0)},fchmod:function(e,t){var r=qe.getStream(e);if(!r)throw new qe.ErrnoError(8);qe.chmod(r.node,t)},chown:function(e,t,r,n){var o;"string"==typeof e?o=qe.lookupPath(e,{follow:!n}).node:o=e;if(!o.node_ops.setattr)throw new qe.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:function(e,t,r){qe.chown(e,t,r,!0)},fchown:function(e,t,r){var n=qe.getStream(e);if(!n)throw new qe.ErrnoError(8);qe.chown(n.node,t,r)},truncate:function(e,t){if(t<0)throw new qe.ErrnoError(28);var r;"string"==typeof e?r=qe.lookupPath(e,{follow:!0}).node:r=e;if(!r.node_ops.setattr)throw new qe.ErrnoError(63);if(qe.isDir(r.mode))throw new qe.ErrnoError(31);if(!qe.isFile(r.mode))throw new qe.ErrnoError(28);var n=qe.nodePermissions(r,"w");if(n)throw new qe.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:function(e,t){var r=qe.getStream(e);if(!r)throw new qe.ErrnoError(8);if(!(2097155&r.flags))throw new qe.ErrnoError(28);qe.truncate(r.node,t)},utime:function(e,t,r){var n=qe.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 qe.ErrnoError(44);var a;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?qe.modeStringToFlags(t):t)?4095&r|32768:0,"object"==typeof e)a=e;else{e=Xe.normalize(e);try{a=qe.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var s=!1;if(64&t)if(a){if(128&t)throw new qe.ErrnoError(20)}else a=qe.mknod(e,r,0),s=!0;if(!a)throw new qe.ErrnoError(44);if(qe.isChrdev(a.mode)&&(t&=-513),65536&t&&!qe.isDir(a.mode))throw new qe.ErrnoError(54);if(!s){var c=qe.mayOpen(a,t);if(c)throw new qe.ErrnoError(c)}512&t&&qe.truncate(a,0),t&=-131713;var A=qe.createStream({node:a,path:qe.getPath(a),flags:t,seekable:!0,position:0,stream_ops:a.stream_ops,ungotten:[],error:!1},n,i);A.stream_ops.open&&A.stream_ops.open(A),!o.logReadFiles||1&t||(qe.readFiles||(qe.readFiles={}),e in qe.readFiles||(qe.readFiles[e]=1,I("FS.trackingDelegate error on read file: "+e)));try{if(qe.trackingDelegate.onOpenFile){var u=0;1!=(2097155&t)&&(u|=qe.tracking.openFlags.READ),2097155&t&&(u|=qe.tracking.openFlags.WRITE),qe.trackingDelegate.onOpenFile(e,u)}}catch(t){I("FS.trackingDelegate['onOpenFile']('"+e+"', flags) threw an exception: "+t.message)}return A},close:function(e){if(qe.isClosed(e))throw new qe.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{qe.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,t,r){if(qe.isClosed(e))throw new qe.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new qe.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new qe.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 qe.ErrnoError(28);if(qe.isClosed(e))throw new qe.ErrnoError(8);if(1==(2097155&e.flags))throw new qe.ErrnoError(8);if(qe.isDir(e.node.mode))throw new qe.ErrnoError(31);if(!e.stream_ops.read)throw new qe.ErrnoError(28);var i=void 0!==o;if(i){if(!e.seekable)throw new qe.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 qe.ErrnoError(28);if(qe.isClosed(e))throw new qe.ErrnoError(8);if(!(2097155&e.flags))throw new qe.ErrnoError(8);if(qe.isDir(e.node.mode))throw new qe.ErrnoError(31);if(!e.stream_ops.write)throw new qe.ErrnoError(28);e.seekable&&1024&e.flags&&qe.llseek(e,0,2);var a=void 0!==o;if(a){if(!e.seekable)throw new qe.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&&qe.trackingDelegate.onWriteToFile&&qe.trackingDelegate.onWriteToFile(e.path)}catch(t){I("FS.trackingDelegate['onWriteToFile']('"+e.path+"') threw an exception: "+t.message)}return s},allocate:function(e,t,r){if(qe.isClosed(e))throw new qe.ErrnoError(8);if(t<0||r<=0)throw new qe.ErrnoError(28);if(!(2097155&e.flags))throw new qe.ErrnoError(8);if(!qe.isFile(e.node.mode)&&!qe.isDir(e.node.mode))throw new qe.ErrnoError(43);if(!e.stream_ops.allocate)throw new qe.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 qe.ErrnoError(2);if(1==(2097155&e.flags))throw new qe.ErrnoError(2);if(!e.stream_ops.mmap)throw new qe.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 qe.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=qe.open(e,t.flags),o=qe.stat(e).size,i=new Uint8Array(o);return qe.read(n,i,0,o,0),"utf8"===t.encoding?r=Q(i,0):"binary"===t.encoding&&(r=i),qe.close(n),r},writeFile:function(e,t,r){(r=r||{}).flags=r.flags||577;var n=qe.open(e,r.flags,r.mode);if("string"==typeof t){var o=new Uint8Array(S(t)+1),i=M(t,o,0,o.length);qe.write(n,o,0,i,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");qe.write(n,t,0,t.byteLength,void 0,r.canOwn)}qe.close(n)},cwd:function(){return qe.currentPath},chdir:function(e){var t=qe.lookupPath(e,{follow:!0});if(null===t.node)throw new qe.ErrnoError(44);if(!qe.isDir(t.node.mode))throw new qe.ErrnoError(54);var r=qe.nodePermissions(t.node,"x");if(r)throw new qe.ErrnoError(r);qe.currentPath=t.path},createDefaultDirectories:function(){qe.mkdir("/tmp"),qe.mkdir("/home"),qe.mkdir("/home/web_user")},createDefaultDevices:function(){qe.mkdir("/dev"),qe.registerDevice(qe.makedev(1,3),{read:function(){return 0},write:function(e,t,r,n,o){return n}}),qe.mkdev("/dev/null",qe.makedev(1,3)),ze.register(qe.makedev(5,0),ze.default_tty_ops),ze.register(qe.makedev(6,0),ze.default_tty1_ops),qe.mkdev("/dev/tty",qe.makedev(5,0)),qe.mkdev("/dev/tty1",qe.makedev(6,0));var e=We();qe.createDevice("/dev","random",e),qe.createDevice("/dev","urandom",e),qe.mkdir("/dev/shm"),qe.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){qe.mkdir("/proc");var e=qe.mkdir("/proc/self");qe.mkdir("/proc/self/fd"),qe.mount({mount:function(){var t=qe.createNode(e,"fd",16895,73);return t.node_ops={lookup:function(e,t){var r=+t,n=qe.getStream(r);if(!n)throw new qe.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?qe.createDevice("/dev","stdin",o.stdin):qe.symlink("/dev/tty","/dev/stdin"),o.stdout?qe.createDevice("/dev","stdout",null,o.stdout):qe.symlink("/dev/tty","/dev/stdout"),o.stderr?qe.createDevice("/dev","stderr",null,o.stderr):qe.symlink("/dev/tty1","/dev/stderr");var e=qe.open("/dev/stdin",0),t=qe.open("/dev/stdout",1),r=qe.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===r.fd,"invalid handle for stderr ("+r.fd+")")},ensureErrnoError:function(){qe.ErrnoError||(qe.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){for(var t in this.errno=e,Je)if(Je[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=Ne(this.stack))},qe.ErrnoError.prototype=new Error,qe.ErrnoError.prototype.constructor=qe.ErrnoError,[44].forEach((function(e){qe.genericErrors[e]=new qe.ErrnoError(e),qe.genericErrors[e].stack="<generic error, no stack>"})))},staticInit:function(){qe.ensureErrnoError(),qe.nameTable=new Array(4096),qe.mount(Ke,{},"/"),qe.createDefaultDirectories(),qe.createDefaultDevices(),qe.createSpecialDirectories(),qe.filesystems={MEMFS:Ke}},init:function(e,t,r){T(!qe.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)"),qe.init.initialized=!0,qe.ensureErrnoError(),o.stdin=e||o.stdin,o.stdout=t||o.stdout,o.stderr=r||o.stderr,qe.createStandardStreams()},quit:function(){qe.init.initialized=!1;var e=o._fflush;e&&e(0);for(var t=0;t<qe.streams.length;t++){var r=qe.streams[t];r&&qe.close(r)}},getMode:function(e,t){var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:function(e,t){var r=qe.analyzePath(e,t);return r.exists?r.object:null},analyzePath:function(e,t){try{e=(n=qe.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=qe.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=Xe.basename(e),n=qe.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:qe.getPath(e);for(var o=t.split("/").reverse();o.length;){var i=o.pop();if(i){var a=Xe.join2(e,i);try{qe.mkdir(a)}catch(e){}e=a}}return a},createFile:function(e,t,r,n,o){var i=Xe.join2("string"==typeof e?e:qe.getPath(e),t),a=qe.getMode(n,o);return qe.create(i,a)},createDataFile:function(e,t,r,n,o,i){var a=t?Xe.join2("string"==typeof e?e:qe.getPath(e),t):e,s=qe.getMode(n,o),c=qe.create(a,s);if(r){if("string"==typeof r){for(var A=new Array(r.length),u=0,l=r.length;u<l;++u)A[u]=r.charCodeAt(u);r=A}qe.chmod(c,146|s);var d=qe.open(c,577);qe.write(d,r,0,r.length,0,i),qe.close(d),qe.chmod(c,s)}return c},createDevice:function(e,t,r,n){var o=Xe.join2("string"==typeof e?e:qe.getPath(e),t),i=qe.getMode(!!r,!!n);qe.createDevice.major||(qe.createDevice.major=64);var a=qe.makedev(qe.createDevice.major++,0);return qe.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 c;try{c=r()}catch(e){throw new qe.ErrnoError(29)}if(void 0===c&&0===a)throw new qe.ErrnoError(6);if(null==c)break;a++,t[n+s]=c}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 qe.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),a}}),qe.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(!f)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=An(f(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new qe.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||[]):An(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(!l)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 c=qe.createFile(e,t,s,n,o);s.contents?c.contents=s.contents:s.url&&(c.contents=null,c.url=s.url),Object.defineProperties(c,{usedBytes:{get:function(){return this.contents.length}}});var A={};return Object.keys(c.stream_ops).forEach((function(e){var t=c.stream_ops[e];A[e]=function(){return qe.forceLoadFile(c),t.apply(null,arguments)}})),A.read=function(e,t,r,n,o){qe.forceLoadFile(c);var i=e.node.contents;if(o>=i.length)return 0;var a=Math.min(i.length-o,n);if(T(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},c.stream_ops=A,c},createPreloadedFile:function(e,t,r,n,i,a,s,c,A,u){xe.init();var l=t?Ve.resolve(Xe.join2(e,t)):e,d=Ee("cp "+l);function g(r){function g(r){u&&u(),c||qe.createDataFile(e,t,r,n,i,A),a&&a(),Ie(d)}var f=!1;o.preloadPlugins.forEach((function(e){f||e.canHandle(l)&&(e.handle(r,l,g,(function(){s&&s(),Ie(d)})),f=!0)})),f||g(r)}me(d),"string"==typeof r?function(e,t,r,n){var o=n?"":Ee("al "+e);h(e,(function(r){T(r,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(r)),o&&Ie(o)}),(function(t){if(!r)throw'Loading data file "'+e+'" failed.';r()})),o&&me(o)}(r,(function(e){g(e)}),s):g(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=qe.indexedDB();try{var o=n.open(qe.DB_NAME(),qe.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=function(){m("creating db"),o.result.createObjectStore(qe.DB_STORE_NAME)},o.onsuccess=function(){var n=o.result.transaction([qe.DB_STORE_NAME],"readwrite"),i=n.objectStore(qe.DB_STORE_NAME),a=0,s=0,c=e.length;function A(){0==s?t():r()}e.forEach((function(e){var t=i.put(qe.analyzePath(e).object.contents,e);t.onsuccess=function(){++a+s==c&&A()},t.onerror=function(){s++,a+s==c&&A()}})),n.onerror=r},o.onerror=r},loadFilesFromDB:function(e,t,r){t=t||function(){},r=r||function(){};var n=qe.indexedDB();try{var o=n.open(qe.DB_NAME(),qe.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=r,o.onsuccess=function(){var n=o.result;try{var i=n.transaction([qe.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}var a=i.objectStore(qe.DB_STORE_NAME),s=0,c=0,A=e.length;function u(){0==c?t():r()}e.forEach((function(e){var t=a.get(e);t.onsuccess=function(){qe.analyzePath(e).exists&&qe.unlink(e),qe.createDataFile(Xe.dirname(e),Xe.basename(e),t.result,!0,!0,!0),++s+c==A&&u()},t.onerror=function(){c++,s+c==A&&u()}})),i.onerror=r},o.onerror=r},absolutePath:function(){ye("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder:function(){ye("FS.createFolder has been removed; use FS.mkdir instead")},createLink:function(){ye("FS.createLink has been removed; use FS.symlink instead")},joinPath:function(){ye("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc:function(){ye("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath:function(){ye("FS.standardizePath has been removed; use PATH.normalize instead")}},et={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(e,t,r){if("/"===t[0])return t;var n;if(-100===e)n=qe.cwd();else{var o=qe.getStream(e);if(!o)throw new qe.ErrnoError(8);n=o.path}if(0==t.length){if(!r)throw new qe.ErrnoError(44);return n}return Xe.join2(n,t)},doStat:function(e,t,r){try{var n=e(t)}catch(e){if(e&&e.node&&Xe.normalize(t)!==Xe.normalize(qe.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,(Ce=n.size,+Math.abs(Ce)>=1?Ce>0?(0|Math.min(+Math.floor(Ce/4294967296),4294967295))>>>0:~~+Math.ceil((Ce-+(~~Ce>>>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,(Ce=n.ino,+Math.abs(Ce)>=1?Ce>0?(0|Math.min(+Math.floor(Ce/4294967296),4294967295))>>>0:~~+Math.ceil((Ce-+(~~Ce>>>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);qe.msync(t,i,o,r,n)},doMkdir:function(e,t){return"/"===(e=Xe.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),qe.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 qe.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return-28;var n=qe.readlink(e),o=Math.min(r,S(n)),i=x[t+o];return R(n,t,r+1),x[t+o]=i,o},doAccess:function(e,t){if(-8&t)return-28;var r;if(!(r=qe.lookupPath(e,{follow:!0}).node))return-44;var n="";return 4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&qe.nodePermissions(r,n)?-2:0},doDup:function(e,t,r){var n=qe.getStream(r);return n&&qe.close(n),qe.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],c=qe.read(e,x,a,s,n);if(c<0)return-1;if(o+=c,c<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],c=qe.write(e,x,a,s,n);if(c<0)return-1;o+=c}return o},varargs:void 0,get:function(){return T(null!=et.varargs),et.varargs+=4,j[et.varargs-4>>2]},getStr:function(e){return P(e)},getStreamFromFD:function(e){var t=qe.getStream(e);if(!t)throw new qe.ErrnoError(8);return t},get64:function(e,t){return T(e>=0?0===t:-1===t),e}};function tt(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}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)}var nt=[],ot=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function it(){for(var e=0,t=5;t<ot.length;++t)void 0!==ot[t]&&++e;return e}function at(){for(var 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:var t=nt.length?nt.pop():ot.length;return ot[t]={refcount:1,value:e},t}}function ct(e,t){var r=rt(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 At=void 0;var ut=void 0;function lt(e){for(var t="",r=e;k[r];)t+=ut[k[r++]];return t}function dt(){return Object.keys(mt).length}function gt(){var e=[];for(var t in mt)mt.hasOwnProperty(t)&&e.push(mt[t]);return e}var ft=[];function ht(){for(;ft.length;){var e=ft.pop();e.$$.deleteScheduled=!1,e.delete()}}var pt=void 0;function Et(e){pt=e,ft.length&&pt&&pt(ht)}var mt={},It=void 0;function yt(e){throw new It(e)}function _t(e,t){for(void 0===t&&yt("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function wt(e){return e||yt("Cannot use deleted val. handle = "+e),ot[e].value}var Ct={};function bt(e){var t=hn(e),r=lt(t);return dn(t),r}function Bt(e,t){var r=Ct[e];return void 0===r&&yt(t+" has unknown type "+bt(e)),r}function Dt(e){}var Ot=!1;function Tt(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 vt(e){return"undefined"==typeof FinalizationGroup?(vt=function(e){return e},e):(Ot=new FinalizationGroup((function(e){for(var t=e.next();!t.done;t=e.next()){var r=t.value;r.ptr?Tt(r):console.warn("object already deleted: "+r.ptr)}})),Dt=function(e){Ot.unregister(e.$$)},(vt=function(e){return Ot.register(e,e.$$,e.$$),e})(e))}var Qt={};function Pt(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function Mt(e){return this.fromWireType(L[e>>2])}var Rt={},St={},Ft=void 0;function xt(e){throw new Ft(e)}function kt(e,t,r){function n(t){var n=r(t);n.length!==e.length&&xt("Mismatched type converter count");for(var o=0;o<e.length;++o)Ut(e[o],n[o])}e.forEach((function(e){St[e]=t}));var o=new Array(t.length),i=[],a=0;t.forEach((function(e,t){Ct.hasOwnProperty(e)?o[t]=Ct[e]:(i.push(e),Rt.hasOwnProperty(e)||(Rt[e]=[]),Rt[e].push((function(){o[t]=Ct[e],++a===i.length&&n(o)})))})),0===i.length&&n(o)}function Nt(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");var n=t.name;if(e||yt('type "'+n+'" must have a positive integer typeid pointer'),Ct.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;yt("Cannot register type '"+n+"' twice")}if(Ct[e]=t,delete St[e],Rt.hasOwnProperty(e)){var o=Rt[e];delete Rt[e],o.forEach((function(e){e()}))}}function jt(e){if(!(this instanceof Wt))return!1;if(!(e instanceof Wt))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 Lt(e){yt(e.$$.ptrType.registeredClass.name+" instance already deleted")}function Ht(){if(this.$$.ptr||Lt(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e,t=vt(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 Gt(){this.$$.ptr||Lt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&yt("Object already scheduled for deletion"),Dt(this),Tt(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&&yt("Object already scheduled for deletion"),ft.push(this),1===ft.length&&pt&&pt(ht),this.$$.deleteScheduled=!0,this}function Wt(){}var Vt={};function zt(e,t,r){if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||yt("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,r){o.hasOwnProperty(e)?((void 0===r||void 0!==o[e].overloadTable&&void 0!==o[e].overloadTable[r])&&yt("Cannot register public name '"+e+"' twice"),zt(o,e,e),o.hasOwnProperty(r)&&yt("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 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 Zt(e,t,r){for(;t!==r;)t.upcast||yt("Expected null or instance of "+r.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function Jt(e,t){if(null===t)return this.isReference&&yt("null is not a valid "+this.name),0;t.$$||yt('Cannot pass "'+mr(t)+'" as a '+this.name),t.$$.ptr||yt("Cannot pass deleted object as a pointer of type "+this.name);var r=t.$$.ptrType.registeredClass;return Zt(t.$$.ptr,r,this.registeredClass)}function qt(e,t){var r;if(null===t)return this.isReference&&yt("null is not a valid "+this.name),this.isSmartPointer?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t.$$||yt('Cannot pass "'+mr(t)+'" as a '+this.name),t.$$.ptr||yt("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&yt("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=Zt(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&yt("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:yt("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,st((function(){o.delete()}))),null!==e&&e.push(this.rawDestructor,r)}break;default:yt("Unsupporting sharing policy")}return r}function er(e,t){if(null===t)return this.isReference&&yt("null is not a valid "+this.name),0;t.$$||yt('Cannot pass "'+mr(t)+'" as a '+this.name),t.$$.ptr||yt("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&yt("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var r=t.$$.ptrType.registeredClass;return Zt(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;var n=or(e,t,r.baseClass);return null===n?null:r.downcast(n)}function ir(e,t){return t.ptrType&&t.ptr||xt("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!==!!t.smartPtr&&xt("Both smartPtrType and smartPtr must be specified"),t.count={value:1},vt(Object.create(e,{$$:{value:t}}))}function ar(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var r=function(e,t){return t=_t(e,t),mt[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?ir(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):ir(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var i,a=this.registeredClass.getActualType(t),s=Vt[a];if(!s)return o.call(this);i=this.isConst?s.constPointerType:s.pointerType;var c=or(t,this.registeredClass,i.registeredClass);return null===c?o.call(this):this.isSmartPointer?ir(i.registeredClass.instancePrototype,{ptrType:i,ptr:c,smartPtrType:this,smartPtr:e}):ir(i.registeredClass.instancePrototype,{ptrType:i,ptr:c})}function sr(e,t,r,n,o,i,a,s,c,A,u){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=c,this.rawShare=A,this.rawDestructor=u,o||void 0!==t.baseClass?this.toWireType=qt:n?(this.toWireType=Jt,this.destructorFunction=null):(this.toWireType=er,this.destructorFunction=null)}function cr(e,t,r){o.hasOwnProperty(e)||xt("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 Ar(e,t,r){return e.includes("j")?function(e,t,r){T("dynCall_"+e in o,"bad function pointer type - no table for sig '"+e+"'"),r&&r.length?T(r.length===e.substring(1).replace(/j/g,"--").length):T(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):(T(re.get(t),"missing table entry in dynCall: "+t),re.get(t).apply(null,r))}function ur(e,t){var r=(e=lt(e)).includes("j")?function(e,t){T(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 Ar(e,t,r)}}(e,t):re.get(t);return"function"!=typeof r&&yt("unknown function pointer with signature "+e+": "+t),r}var lr=void 0;function dr(e,t){var r=[],n={};throw t.forEach((function e(t){n[t]||Ct[t]||(St[t]?St[t].forEach(e):(r.push(t),n[t]=!0))})),new lr(e+": "+r.map(bt).join([", "]))}function gr(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var r=rt(e.name||"unknownFunctionName",(function(){}));r.prototype=e.prototype;var n=new r,o=e.apply(n,t);return o instanceof Object?o:n}function fr(e,t,r,n,o){var i=t.length;i<2&&yt("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var a=null!==t[1]&&null!==r,s=!1,c=1;c<t.length;++c)if(null!==t[c]&&void 0===t[c].destructorFunction){s=!0;break}var A="void"!==t[0].name,u="",l="";for(c=0;c<i-2;++c)u+=(0!==c?", ":"")+"arg"+c,l+=(0!==c?", ":"")+"arg"+c+"Wired";var d="return function "+tt(e)+"("+u+") {\nif (arguments.length !== "+(i-2)+") {\nthrowBindingError('function "+e+" called with ' + arguments.length + ' arguments, expected "+(i-2)+" args!');\n}\n";s&&(d+="var destructors = [];\n");var g=s?"destructors":"null",f=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],h=[yt,n,o,Pt,t[0],t[1]];a&&(d+="var thisWired = classParam.toWireType("+g+", this);\n");for(c=0;c<i-2;++c)d+="var arg"+c+"Wired = argType"+c+".toWireType("+g+", arg"+c+"); // "+t[c+2].name+"\n",f.push("argType"+c),h.push(t[c+2]);if(a&&(l="thisWired"+(l.length>0?", ":"")+l),d+=(A?"var rv = ":"")+"invoker(fn"+(l.length>0?", ":"")+l+");\n",s)d+="runDestructors(destructors);\n";else for(c=a?1:2;c<t.length;++c){var p=1===c?"thisWired":"arg"+(c-2)+"Wired";null!==t[c].destructorFunction&&(d+=p+"_dtor("+p+"); // "+t[c].name+"\n",f.push(p+"_dtor"),h.push(t[c].destructorFunction))}return A&&(d+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),d+="}\n",f.push(d),gr(Function,f).apply(null,h)}function hr(e,t){for(var r=[],n=0;n<e;n++)r.push(j[(t>>2)+n]);return r}function pr(e,t,r){return e instanceof Object||yt(r+' with invalid "this": '+e),e instanceof t.registeredClass.constructor||yt(r+' incompatible with "this" of type '+e.constructor.name),e.$$.ptr||yt("cannot call emscripten binding method "+r+" on deleted object"),Zt(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)}function Er(e){e>4&&0==--ot[e].refcount&&(ot[e]=void 0,nt.push(e))}function mr(e){if(null===e)return"null";var t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():""+e}function Ir(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 yr(e,t,r){switch(t){case 0:return r?function(e){return x[e]}:function(e){return k[e]};case 1:return r?function(e){return N[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 _r={};var wr=[];var Cr=[];function br(e){try{return b.grow(e-F.byteLength+65535>>>16),ee(b.buffer),1}catch(t){I("emscripten_realloc_buffer: Attempted to grow heap from "+F.byteLength+" bytes to "+e+" bytes, but got error: "+t)}}function Br(e){ye("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}var Dr={};function Or(e){e.forEach((function(e){var t=Br();t&&(Dr[t]=e)}))}var Tr={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){Tr.lastError||(Tr.lastError=e)},getNewId:function(e){for(var t=Tr.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=Tr.log2ceilLookup(Tr.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=Tr.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=tn.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);for(var c=Tr.MAX_TEMP_BUFFER_SIZE>>1,A=new Uint16Array(c),u=(n=0,0);!(A[n++]=u,n>=c||(A[n++]=u+1,n>=c)||(A[n++]=u+2,n>=c)||(A[n++]=u,n>=c)||(A[n++]=u+2,n>=c)||(A[n++]=u+3,n>=c));)u+=4;t.GLctx.bufferData(34963,A,35044),t.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:function(e){var t=Tr.log2ceilLookup(e),r=Tr.currentContext.tempVertexBuffers1[t],n=Tr.currentContext.tempVertexBufferCounters1[t];Tr.currentContext.tempVertexBufferCounters1[t]=Tr.currentContext.tempVertexBufferCounters1[t]+1&Tr.numTempVertexBuffersPerSize-1;var o=r[n];if(o)return o;var i=tn.getParameter(34964);return r[n]=tn.createBuffer(),tn.bindBuffer(34962,r[n]),tn.bufferData(34962,1<<t,35048),tn.bindBuffer(34962,i),r[n]},getTempIndexBuffer:function(e){var t=Tr.log2ceilLookup(e),r=Tr.currentContext.tempIndexBuffers[t];if(r)return r;var n=tn.getParameter(34965);return Tr.currentContext.tempIndexBuffers[t]=tn.createBuffer(),tn.bindBuffer(34963,Tr.currentContext.tempIndexBuffers[t]),tn.bufferData(34963,1<<t,35048),tn.bindBuffer(34963,n),Tr.currentContext.tempIndexBuffers[t]},newRenderingFrameStarted:function(){if(Tr.currentContext){var e=Tr.currentContext.tempVertexBuffers1;Tr.currentContext.tempVertexBuffers1=Tr.currentContext.tempVertexBuffers2,Tr.currentContext.tempVertexBuffers2=e,e=Tr.currentContext.tempVertexBufferCounters1,Tr.currentContext.tempVertexBufferCounters1=Tr.currentContext.tempVertexBufferCounters2,Tr.currentContext.tempVertexBufferCounters2=e;for(var t=Tr.log2ceilLookup(Tr.MAX_TEMP_BUFFER_SIZE),r=0;r<=t;++r)Tr.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*Tr.byteSizeByType[t-Tr.byteSizeByTypeRoot]*n},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(e){Tr.resetBufferBinding=!1;for(var t=0;t<Tr.currentContext.maxVertexAttribs;++t){var r=Tr.currentContext.clientBuffers[t];if(r.clientside&&r.enabled){Tr.resetBufferBinding=!0;var n=Tr.calcBufLength(r.size,r.type,r.stride,e),o=Tr.getTempVertexBuffer(n);tn.bindBuffer(34962,o),tn.bufferSubData(34962,0,k.subarray(r.ptr,r.ptr+n)),r.vertexAttribPointerAdaptor.call(tn,t,r.size,r.type,r.normalized,r.stride,0)}}},postDrawHandleClientVertexAttribBindings:function(){Tr.resetBufferBinding&&tn.bindBuffer(34962,Tr.buffers[tn.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?Tr.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(),Tr.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 c=t.createProgram();t.attachShader(c,a),t.attachShader(c,s),t.linkProgram(c),e.blitProgram=c,e.blitPosLoc=t.getAttribLocation(c,"pos"),t.useProgram(c),t.uniform1i(t.getUniformLocation(c,"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 c=t.getParameter(3042);c&&t.disable(3042);var A=t.getParameter(2884);A&&t.disable(2884);var u=t.getParameter(2929);u&&t.disable(2929);var l=t.getParameter(2960);if(l&&t.disable(2960),e.defaultVao){var d=t.getParameter(34229);t.bindVertexArray(e.defaultVao),r(),t.bindVertexArray(d)}else{for(var 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)},f=t.getParameter(34921),h=[],p=0;p<f;++p){var E=t.getVertexAttrib(p,34338),m=p==e.blitPosLoc;E&&!m&&t.disableVertexAttribArray(p),!E&&m&&t.enableVertexAttribArray(p),h[p]=E}r();for(p=0;p<f;++p){E=h[p];var I=p==e.blitPosLoc;E&&!I&&t.enableVertexAttribArray(p),!E&&I&&t.disableVertexAttribArray(p)}t.bindBuffer(34962,g.buffer),t.vertexAttribPointer(e.blitPosLoc,g.size,g.type,g.normalized,g.stride,g.offset)}l&&t.enable(2960),u&&t.enable(2929),A&&t.enable(2884),c&&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=Tr.getNewId(Tr.contexts),n={handle:r,attributes:t,version:t.majorVersion,GLctx:e};e.canvas&&(e.canvas.GLctxObject=n),Tr.contexts[r]=n,(void 0===t.enableExtensionsByDefault||t.enableExtensionsByDefault)&&Tr.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 Tr.generateTempBuffers(!1,n),t.renderViaOffscreenBackBuffer&&Tr.createOffscreenFramebuffer(n),r},makeContextCurrent:function(e){return Tr.currentContext=Tr.contexts[e],o.ctx=tn=Tr.currentContext&&Tr.currentContext.GLctx,!(e&&!tn)},getContext:function(e){return Tr.contexts[e]},deleteContext:function(e){Tr.currentContext===Tr.contexts[e]&&(Tr.currentContext=null),"object"==typeof vr&&vr.removeAllHandlersOnTarget(Tr.contexts[e].GLctx.canvas),Tr.contexts[e]&&Tr.contexts[e].GLctx.canvas&&(Tr.contexts[e].GLctx.canvas.GLctxObject=void 0),Tr.contexts[e]=null},initExtensions:function(e){if(e||(e=Tr.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)}))}}},vr={inEventHandler:0,removeAllEventListeners:function(){for(var e=vr.eventHandlers.length-1;e>=0;--e)vr._removeHandler(e);vr.eventHandlers=[],vr.deferredCalls=[]},registerRemoveEventListeners:function(){vr.removeEventListenersRegistered||(ce.push(vr.removeAllEventListeners),vr.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 vr.deferredCalls){var i=vr.deferredCalls[o];if(i.targetFunction==e&&n(i.argsList,r))return}vr.deferredCalls.push({targetFunction:e,precedence:t,argsList:r}),vr.deferredCalls.sort((function(e,t){return e.precedence<t.precedence}))},removeDeferredCalls:function(e){for(var t=0;t<vr.deferredCalls.length;++t)vr.deferredCalls[t].targetFunction==e&&(vr.deferredCalls.splice(t,1),--t)},canPerformEventHandlerRequests:function(){return vr.inEventHandler&&vr.currentEventHandler.allowsDeferredCalls},runDeferredCalls:function(){if(vr.canPerformEventHandlerRequests())for(var e=0;e<vr.deferredCalls.length;++e){var t=vr.deferredCalls[e];vr.deferredCalls.splice(e,1),--e,t.targetFunction.apply(null,t.argsList)}},eventHandlers:[],removeAllHandlersOnTarget:function(e,t){for(var r=0;r<vr.eventHandlers.length;++r)vr.eventHandlers[r].target!=e||t&&t!=vr.eventHandlers[r].eventTypeString||vr._removeHandler(r--)},_removeHandler:function(e){var t=vr.eventHandlers[e];t.target.removeEventListener(t.eventTypeString,t.eventListenerFunc,t.useCapture),vr.eventHandlers.splice(e,1)},registerOrRemoveHandler:function(e){var t=function(t){++vr.inEventHandler,vr.currentEventHandler=e,vr.runDeferredCalls(),e.handlerFunc(t),vr.runDeferredCalls(),--vr.inEventHandler};if(e.callbackfunc)e.eventListenerFunc=t,e.target.addEventListener(e.eventTypeString,t,e.useCapture),vr.eventHandlers.push(e),vr.registerRemoveEventListeners();else for(var r=0;r<vr.eventHandlers.length;++r)vr.eventHandlers[r].target==e.target&&vr.eventHandlers[r].eventTypeString==e.eventTypeString&&vr._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}},Qr=["default","low-power","high-performance"],Pr=[0,"undefined"!=typeof document?document:0,"undefined"!=typeof window?window:0];function Mr(e){return"number"==typeof e&&(e=P(e)),e&&"#canvas"!==e?void 0!==Tr&&Tr.offscreenCanvases[e]?Tr.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]||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!==Tr&&Tr.offscreenCanvases.canvas?Tr.offscreenCanvases.canvas:o.canvas}function Rr(){return Tr.currentContext?Tr.currentContext.handle:0}function Sr(e){return Tr.makeContextCurrent(e)?0:-5}o._emscripten_webgl_get_current_context=Rr,o._emscripten_webgl_make_context_current=Sr;var Fr={};function xr(){if(!xr.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",_:c||"./this.program"};for(var t in Fr)void 0===Fr[t]?delete e[t]:e[t]=Fr[t];var r=[];for(var t in e)r.push(t+"="+e[t]);xr.strings=r}return xr.strings}var kr=[];function Nr(e,t,r,n){for(var o=0;o<e;o++){var i=tn[r](),a=i&&Tr.getNewId(n);i?(i.name=a,n[a]=i):Tr.recordError(1282),j[t+4*o>>2]=a}}function Ur(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&&y("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 jr(e){var t=S(e)+1,r=gn(t);return R(e,r,t),r}function Lr(e){return"]"==e.slice(-1)&&e.lastIndexOf("[")}function Hr(e){return 0==(e-=5120)?x:1==e?k:2==e?N:4==e?j:6==e?H:5==e||28922==e||28520==e||30779==e||30782==e?L:U}function Gr(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function Yr(e,t,r,n,o,i){var a=Hr(e),s=Gr(a),c=1<<s,A=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)*c,u=function(e,t,r,n){var o=function(e,t){return e+t-1&-t}(e*r,n);return t*o}(r,n,A,Tr.unpackAlignment);return a.subarray(o>>s,o+u>>s)}function Xr(e){var t=tn.currentProgram;if(t){var r=t.uniformLocsById[e];return"number"==typeof r&&(t.uniformLocsById[e]=r=tn.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?"["+r+"]":""))),r}Tr.recordError(1282)}var Wr=[];var Vr=[];function zr(){if(!zr.called){zr.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[In()>>2]=60*i,j[mn()>>2]=Number(n!=o);var a=u(t),s=u(r),c=Z(a),A=Z(s);o<n?(j[En()>>2]=c,j[En()+4>>2]=A):(j[En()>>2]=A,j[En()+4>>2]=c)}function u(e){var t=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}}function $r(e){return e%4==0&&(e%100!=0||e%400==0)}function Kr(e,t){for(var r=0,n=0;n<=t;r+=e[n++]);return r}var Zr=[31,29,31,30,31,30,31,31,30,31,30,31],Jr=[31,28,31,30,31,30,31,31,30,31,30,31];function qr(e,t){for(var r=new Date(e.getTime());t>0;){var n=$r(r.getFullYear()),o=r.getMonth(),i=(n?Zr:Jr)[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 en(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 c in s)a=a.replace(new RegExp(c,"g"),s[c]);var A=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],u=["January","February","March","April","May","June","July","August","September","October","November","December"];function l(e,t,r){for(var n="number"==typeof e?e.toString():e||"";n.length<t;)n=r[0]+n;return n}function d(e,t){return l(e,t,"0")}function g(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 f(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 h(e){var 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=f(r),i=f(n);return g(o,t)<=0?g(i,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var p={"%a":function(e){return A[e.tm_wday].substring(0,3)},"%A":function(e){return A[e.tm_wday]},"%b":function(e){return u[e.tm_mon].substring(0,3)},"%B":function(e){return u[e.tm_mon]},"%C":function(e){return d((e.tm_year+1900)/100|0,2)},"%d":function(e){return d(e.tm_mday,2)},"%e":function(e){return l(e.tm_mday,2," ")},"%g":function(e){return h(e).toString().substring(2)},"%G":function(e){return h(e)},"%H":function(e){return d(e.tm_hour,2)},"%I":function(e){var t=e.tm_hour;return 0==t?t=12:t>12&&(t-=12),d(t,2)},"%j":function(e){return d(e.tm_mday+Kr($r(e.tm_year+1900)?Zr:Jr,e.tm_mon-1),3)},"%m":function(e){return d(e.tm_mon+1,2)},"%M":function(e){return d(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 d(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:qr(t,7-t.getDay()),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(g(r,n)<0){var o=Kr($r(n.getFullYear())?Zr:Jr,n.getMonth()-1)-31,i=31-r.getDate()+o+n.getDate();return d(Math.ceil(i/7),2)}return 0===g(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=f(r),i=f(n),a=qr(new Date(e.tm_year+1900,0,1),e.tm_yday);return g(a,o)<0?"53":g(i,a)<=0?"01":(t=o.getFullYear()<e.tm_year+1900?e.tm_yday+32-o.getDate():e.tm_yday+1-o.getDate(),d(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:qr(t,0===t.getDay()?1:7-t.getDay()+1),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(g(r,n)<0){var o=Kr($r(n.getFullYear())?Zr:Jr,n.getMonth()-1)-31,i=31-r.getDate()+o+n.getDate();return d(Math.ceil(i/7),2)}return 0===g(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 c in p)a.includes(c)&&(a=a.replace(new RegExp(c,"g"),p[c](i)));var E=An(a,!1);return E.length>t?0:(J(E,e),E.length-1)}o.requestFullscreen=function(e,t){xe.requestFullscreen(e,t)},o.requestFullScreen=function(){xe.requestFullScreen()},o.requestAnimationFrame=function(e){xe.requestAnimationFrame(e)},o.setCanvasSize=function(e,t,r){xe.setCanvasSize(e,t,r)},o.pauseMainLoop=function(){xe.mainLoop.pause()},o.resumeMainLoop=function(){xe.mainLoop.resume()},o.getUserMedia=function(){xe.getUserMedia()},o.createContext=function(e,t,r,n){return xe.createContext(e,t,r,n)};var tn,rn=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=qe.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n},nn=365,on=146;Object.defineProperties(rn.prototype,{read:{get:function(){return(this.mode&nn)===nn},set:function(e){e?this.mode|=nn:this.mode&=-366}},write:{get:function(){return(this.mode&on)===on},set:function(e){e?this.mode|=on:this.mode&=-147}},isFolder:{get:function(){return qe.isDir(this.mode)}},isDevice:{get:function(){return qe.isChrdev(this.mode)}}}),qe.FSNode=rn,qe.staticInit(),o.FS_createPath=qe.createPath,o.FS_createDataFile=qe.createDataFile,o.FS_createPreloadedFile=qe.createPreloadedFile,o.FS_createLazyFile=qe.createLazyFile,o.FS_createDevice=qe.createDevice,o.FS_unlink=qe.unlink,o.count_emval_handles=it,o.get_first_emval=at,At=o.PureVirtualError=ct(Error,"PureVirtualError"),function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);ut=e}(),o.getInheritedInstanceCount=dt,o.getLiveInheritedInstances=gt,o.flushPendingDeletes=ht,o.setDelayFunction=Et,It=o.BindingError=ct(Error,"BindingError"),Ft=o.InternalError=ct(Error,"InternalError"),Wt.prototype.isAliasOf=jt,Wt.prototype.clone=Ht,Wt.prototype.delete=Gt,Wt.prototype.isDeleted=Yt,Wt.prototype.deleteLater=Xt,sr.prototype.getPointee=tr,sr.prototype.destructor=rr,sr.prototype.argPackAdvance=8,sr.prototype.readValueFromPointer=Mt,sr.prototype.deleteObject=nr,sr.prototype.fromWireType=ar,lr=o.UnboundTypeError=ct(Error,"UnboundTypeError");for(var an=0;an<32;++an)kr.push(new Array(an));var sn=new Float32Array(288);for(an=0;an<288;++an)Wr[an]=sn.subarray(0,an+1);var cn=new Int32Array(288);for(an=0;an<288;++an)Vr[an]=cn.subarray(0,an+1);function An(e,t,r){var n=r>0?r:S(e)+1,o=new Array(n),i=M(e,o,0,o.length);return t&&(o.length=i),o}"function"==typeof atob&&atob;var un,ln={HaveOffsetConverter:function(){return"undefined"!=typeof wasmOffsetConverter},__cxa_allocate_exception:function(e){return gn(e+16)+16},__cxa_atexit:function(e,t){},__cxa_begin_catch:function(e){var t=new je(e),r=t.get_exception_info();return r.get_caught()||r.set_caught(!0),r.set_rethrown(!1),Le.push(t),function(e){e.add_ref()}(r),t.get_exception_ptr()},__cxa_end_catch:function(){Cn(0),T(Le.length>0);var e=Le.pop();!function(e){if(e.release_ref()&&!e.get_rethrown()){var t=e.get_destructor();t&&re.get(t)(e.excPtr),Ge(e.excPtr)}}(e.get_exception_info()),e.free(),He=0},__cxa_find_matching_catch_2:function(){var e=He;if(!e)return C(0),0;var t=new Ue(e).get_type(),r=new je;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return C(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 C(i),0|r.ptr}return C(t),0|r.ptr},__cxa_find_matching_catch_3:function(){var e=He;if(!e)return C(0),0;var t=new Ue(e).get_type(),r=new je;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return C(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 C(i),0|r.ptr}return C(t),0|r.ptr},__cxa_free_exception:Ge,__cxa_rethrow:function(){var e=Le.pop();e||ye("no exception to throw");var t=e.get_exception_info(),r=e.get_base_ptr();throw t.get_rethrown()?e.free():(Le.push(e),t.set_rethrown(!0),t.set_caught(!1)),He=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 Ue(e).init(t,r),He=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 je(e),r=t.get_base_ptr();throw He||(He=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){et.varargs=r;try{var n=et.getStreamFromFD(e);switch(t){case 0:return(o=et.get())<0?-28:qe.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=et.get();return n.flags|=o,0;case 12:o=et.get();return N[o+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return Ye(28),-1}}catch(e){return void 0!==qe&&e instanceof qe.ErrnoError||ye(e),-e.errno}},__sys_ioctl:function(e,t,r){et.varargs=r;try{var n=et.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=et.get();return j[o>>2]=0,0;case 21520:return n.tty?-28:-59;case 21531:o=et.get();return qe.ioctl(n,t,o);default:ye("bad ioctl syscall "+t)}}catch(e){return void 0!==qe&&e instanceof qe.ErrnoError||ye(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=$e(t)))return-48;s=!0}else{var c=qe.getStream(o);if(!c)return-8;var A=qe.mmap(c,e,t,i,r,n);a=A.ptr,s=A.allocated}return et.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!==qe&&e instanceof qe.ErrnoError||ye(e),-e.errno}},__sys_open:function(e,t,r){et.varargs=r;try{var n=et.getStr(e),o=r?et.get():0;return qe.open(n,t,o).fd}catch(e){return void 0!==qe&&e instanceof qe.ErrnoError||ye(e),-e.errno}},__sys_stat64:function(e,t){try{return e=et.getStr(e),et.doStat(qe.stat,e,t)}catch(e){return void 0!==qe&&e instanceof qe.ErrnoError||ye(e),-e.errno}},_embind_create_inheriting_constructor:function(e,t,r){e=lt(e),t=Bt(t,"wrapper"),r=wt(r);var n=[].slice,o=t.registeredClass,i=o.instancePrototype,a=o.baseClass.instancePrototype,s=o.baseClass.constructor,c=rt(e,(function(){o.baseClass.pureVirtualFunctions.forEach(function(e){if(this[e]===a[e])throw new At("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 A in i.__construct=function(){this===i&&yt("Pass correct 'this' to __construct");var e=s.implement.apply(void 0,[this].concat(n.call(arguments)));Dt(e);var t,r,a,c=e.$$;e.notifyOnDestruction(),c.preservePointerOnDelete=!0,Object.defineProperties(this,{$$:{value:c}}),vt(this),t=o,r=c.ptr,a=this,r=_t(t,r),mt.hasOwnProperty(r)?yt("Tried to register registered instance: "+r):mt[r]=a},i.__destruct=function(){var e,t;this===i&&yt("Pass correct 'this' to __destruct"),Dt(this),e=o,t=this.$$.ptr,t=_t(e,t),mt.hasOwnProperty(t)?delete mt[t]:yt("Tried to unregister unregistered instance: "+t)},c.prototype=Object.create(i),r)c.prototype[A]=r[A];return st(c)},_embind_finalize_value_object:function(e){var t=Qt[e];delete Qt[e];var r=t.rawConstructor,n=t.rawDestructor,o=t.fields;kt([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,c=t.getterContext,A=e[r+o.length],u=t.setter,l=t.setterContext;i[n]={read:function(e){return a.fromWireType(s(c,e))},write:function(e,t){var r=[];u(l,e,A.toWireType(r,t)),Pt(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:Mt,destructorFunction:n}]}))},_embind_register_bigint:function(e,t,r,n,o){},_embind_register_bool:function(e,t,r,n,o){var i=Nt(r);Ut(e,{name:t=lt(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=x;else if(2===r)n=N;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,c,A,u,l,d){u=lt(u),i=ur(o,i),s&&(s=ur(a,s)),A&&(A=ur(c,A)),d=ur(l,d);var g=tt(u);$t(g,(function(){dr("Cannot construct "+u+" due to unbound types",[n])})),kt([e,t,r],n?[n]:[],(function(t){var r,o;t=t[0],o=n?(r=t.registeredClass).instancePrototype:Wt.prototype;var a=rt(g,(function(){if(Object.getPrototypeOf(this)!==c)throw new It("Use 'new' to construct "+u);if(void 0===l.constructor_body)throw new It(u+" has no accessible constructor");var e=l.constructor_body[arguments.length];if(void 0===e)throw new It("Tried to invoke ctor of "+u+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(l.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)})),c=Object.create(o,{constructor:{value:a}});a.prototype=c;var l=new Kt(u,a,c,d,r,i,s,A),f=new sr(u,l,!0,!1,!1),h=new sr(u+"*",l,!1,!1,!1),p=new sr(u+" const*",l,!1,!0,!1);return Vt[e]={pointerType:h,constPointerType:p},cr(g,a),[f,h,p]}))},_embind_register_class_class_function:function(e,t,r,n,o,i,a){var s=hr(r,n);t=lt(t),i=ur(o,i),kt([],[e],(function(e){var n=(e=e[0]).name+"."+t;function o(){dr("Cannot call "+n+" due to unbound types",s)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]);var c=e.registeredClass.constructor;return void 0===c[t]?(o.argCount=r-1,c[t]=o):(zt(c,t,n),c[t].overloadTable[r-1]=o),kt([],s,(function(e){var o=[e[0],null].concat(e.slice(1)),s=fr(n,o,null,i,a);return void 0===c[t].overloadTable?(s.argCount=r-1,c[t]=s):c[t].overloadTable[r-1]=s,[]})),[]}))},_embind_register_class_constructor:function(e,t,r,n,o,i){T(t>0);var a=hr(t,r);o=ur(n,o),kt([],[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 It("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(){dr("Cannot construct "+e.name+" due to unbound types",a)},kt([],a,(function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=fr(r,n,null,o,i),[]})),[]}))},_embind_register_class_function:function(e,t,r,n,o,i,a,s){var c=hr(r,n);t=lt(t),i=ur(o,i),kt([],[e],(function(e){var n=(e=e[0]).name+"."+t;function o(){dr("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,u=A[t];return void 0===u||void 0===u.overloadTable&&u.className!==e.name&&u.argCount===r-2?(o.argCount=r-2,o.className=e.name,A[t]=o):(zt(A,t,n),A[t].overloadTable[r-2]=o),kt([],c,(function(o){var s=fr(n,o,e,i,a);return void 0===A[t].overloadTable?(s.argCount=r-2,A[t]=s):A[t].overloadTable[r-2]=s,[]})),[]}))},_embind_register_class_property:function(e,t,r,n,o,i,a,s,c,A){t=lt(t),o=ur(n,o),kt([],[e],(function(e){var n=(e=e[0]).name+"."+t,u={get:function(){dr("Cannot access "+n+" due to unbound types",[r,a])},enumerable:!0,configurable:!0};return u.set=c?function(){dr("Cannot access "+n+" due to unbound types",[r,a])}:function(e){yt(n+" is a read-only property")},Object.defineProperty(e.registeredClass.instancePrototype,t,u),kt([],c?[r,a]:[r],(function(r){var a=r[0],u={get:function(){var t=pr(this,e,n+" getter");return a.fromWireType(o(i,t))},enumerable:!0};if(c){c=ur(s,c);var l=r[1];u.set=function(t){var r=pr(this,e,n+" setter"),o=[];c(A,r,l.toWireType(o,t)),Pt(o)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]})),[]}))},_embind_register_emval:function(e,t){Ut(e,{name:t=lt(t),fromWireType:function(e){var t=ot[e].value;return Er(e),t},toWireType:function(e,t){return st(t)},argPackAdvance:8,readValueFromPointer:Mt,destructorFunction:null})},_embind_register_float:function(e,t,r){var n=Nt(r);Ut(e,{name:t=lt(t),fromWireType:function(e){return e},toWireType:function(e,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError('Cannot convert "'+mr(t)+'" to '+this.name);return t},argPackAdvance:8,readValueFromPointer:Ir(t,n),destructorFunction:null})},_embind_register_function:function(e,t,r,n,o,i){var a=hr(t,r);e=lt(e),o=ur(n,o),$t(e,(function(){dr("Cannot call "+e+" due to unbound types",a)}),t-1),kt([],a,(function(r){var n=[r[0],null].concat(r.slice(1));return cr(e,fr(e,n,null,o,i),t-1),[]}))},_embind_register_integer:function(e,t,r,n,o){t=lt(t),-1===o&&(o=4294967295);var i=Nt(r),a=function(e){return e};if(0===n){var s=32-8*r;a=function(e){return e<<s>>>s}}var c=t.includes("unsigned");Ut(e,{name:t,fromWireType:a,toWireType:function(e,r){if("number"!=typeof r&&"boolean"!=typeof r)throw new TypeError('Cannot convert "'+mr(r)+'" to '+this.name);if(r<n||r>o)throw new TypeError('Passing a number "'+mr(r)+'" from JS side to C/C++ side to an argument of type "'+t+'", which is outside the valid range ['+n+", "+o+"]!");return c?r>>>0:0|r},argPackAdvance:8,readValueFromPointer:yr(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)}Ut(e,{name:r=lt(r),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},_embind_register_std_string:function(e,t){var r="std::string"===(t=lt(t));Ut(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 c=new Array(n);for(i=0;i<n;++i)c[i]=String.fromCharCode(k[e+4+i]);t=c.join("")}return dn(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||yt("Cannot pass non-string to std::string");var o=(r&&n?function(){return S(t)}:function(){return t.length})(),i=gn(4+o+1);if(L[i>>2]=o,r&&n)R(t,i+4,o+1);else if(n)for(var a=0;a<o;++a){var s=t.charCodeAt(a);s>255&&(dn(i),yt("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(dn,i),i},argPackAdvance:8,readValueFromPointer:Mt,destructorFunction:function(e){dn(e)}})},_embind_register_std_wstring:function(e,t,r){var n,o,i,a,s;r=lt(r),2===t?(n=X,o=W,a=V,i=function(){return U},s=1):4===t&&(n=z,o=$,a=K,i=function(){return L},s=2),Ut(e,{name:r,fromWireType:function(e){for(var r,o=L[e>>2],a=i(),c=e+4,A=0;A<=o;++A){var u=e+4+A*t;if(A==o||0==a[u>>s]){var l=n(c,u-c);void 0===r?r=l:(r+=String.fromCharCode(0),r+=l),c=u+t}}return dn(e),r},toWireType:function(e,n){"string"!=typeof n&&yt("Cannot pass non-string to C++ string type "+r);var i=a(n),c=gn(4+i+t);return L[c>>2]=i>>s,o(n,c+4,i+t),null!==e&&e.push(dn,c),c},argPackAdvance:8,readValueFromPointer:Mt,destructorFunction:function(e){dn(e)}})},_embind_register_value_object:function(e,t,r,n,o,i){Qt[e]={name:lt(t),rawConstructor:ur(r,n),rawDestructor:ur(o,i),fields:[]}},_embind_register_value_object_field:function(e,t,r,n,o,i,a,s,c,A){Qt[e].fields.push({fieldName:lt(t),getterReturnType:r,getter:ur(n,o),getterContext:i,setterArgumentType:a,setter:ur(s,c),setterContext:A})},_embind_register_void:function(e,t){Ut(e,{isVoid:!0,name:t=lt(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},_emval_call_void_method:function(e,t,r,n){var o,i;(e=wr[e])(t=wt(t),r=void 0===(i=_r[o=r])?lt(o):i,null,n)},_emval_decref:Er,_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]=Bt(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="",c=0;c<e-1;++c)s+=(0!==c?", ":"")+"arg"+c,i.push("argType"+c),a.push(r[1+c]);var A="return function "+tt("methodCaller_"+o)+"(handle, name, destructors, args) {\n",u=0;for(c=0;c<e-1;++c)A+=" var arg"+c+" = argType"+c+".readValueFromPointer(args"+(u?"+"+u:"")+");\n",u+=r[c+1].argPackAdvance;for(A+=" var rv = handle[name]("+s+");\n",c=0;c<e-1;++c)r[c+1].deleteObject&&(A+=" argType"+c+".deleteObject(arg"+c+");\n");n.isVoid||(A+=" return retType.toWireType(destructors, rv);\n"),A+="};\n",i.push(A);var l,d,g=gr(Function,i).apply(null,a);return l=g,d=wr.length,wr.push(l),d},_emval_incref:function(e){e>4&&(ot[e].refcount+=1)},_emval_take_value:function(e,t){return st((e=Bt(e,"_emval_take_value")).readValueFromPointer(t))},abort:function(){ye()},clock_gettime:function(e,t){var r;if(0===e)r=Date.now();else{if(1!==e&&4!==e)return Ye(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){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){var n=function(e,t){var r;for(T(Array.isArray(Cr)),T(t%16==0),Cr.length=0,t>>=2;r=k[e++];){T(100===r||102===r||105===r);var n=r<105;n&&1&t&&t++,Cr.push(n?G[t++>>1]:j[t]),++t}return Cr}(t,r);return Qe.hasOwnProperty(e)||ye("No EM_ASM constant found at address "+e),Qe[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){ye("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")},emscripten_resize_heap:function(e){var t=k.length;T((e>>>=0)>t);var r=2147483648;if(e>r)return I("Cannot enlarge memory, asked to go up to "+e+" bytes, but the limit is "+r+" bytes!"),!1;for(var n=1;n<=4;n*=2){var o=t*(1+.2/n);o=Math.min(o,e+100663296);var i=Math.min(r,q(Math.max(e,o),65536));if(br(i))return!0}return I("Failed to grow the heap from "+t+" bytes to "+i+" bytes, not enough memory!"),!1},emscripten_stack_snapshot:function(){var e=(new Error).stack.split("\n");return"Error"==e[0]&&e.shift(),Or(e),Dr.last_addr=Br(e[2]),Dr.last_stack=e,Dr.last_addr},emscripten_stack_unwind_buffer:function(e,t,r){var n;Dr.last_addr==e?n=Dr.last_stack:("Error"==(n=(new Error).stack.split("\n"))[0]&&n.shift(),Or(n));for(var o=2;n[o]&&Br(n[o])!=e;)++o;for(var i=0;i<r&&n[i+o];++i)j[t+4*i>>2]=Br(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){T(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:Qr[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=Mr(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(!Tr.offscreenCanvases[i.id])return 0}else Tr.offscreenCanvases[i.id]={canvas:i.transferControlToOffscreen(),canvasSharedPtr:gn(12),id:i.id},i.controlTransferredOffscreen=!0;i=Tr.offscreenCanvases[i.id]}return Tr.createContext(i,o)}(e,t)},emscripten_webgl_destroy_context:function(e){Tr.currentContext==e&&(Tr.currentContext=0),Tr.deleteContext(e)},emscripten_webgl_get_context_attributes:function(e,t){if(!t)return-5;if(!(e=Tr.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&&Qr.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:Rr,emscripten_webgl_init_context_attributes:function(e){T(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:Sr,environ_get:function(e,t){var r=0;return xr().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)T(e.charCodeAt(n)==e.charCodeAt(n)&255),x[0|t++]=e.charCodeAt(n);r||(x[0|t]=0)}(n,i),r+=n.length+1})),0},environ_sizes_get:function(e,t){var r=xr();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=et.getStreamFromFD(e);return qe.close(t),0}catch(e){return void 0!==qe&&e instanceof qe.ErrnoError||ye(e),e.errno}},fd_read:function(e,t,r,n){try{var o=et.getStreamFromFD(e),i=et.doReadv(o,t,r);return j[n>>2]=i,0}catch(e){return void 0!==qe&&e instanceof qe.ErrnoError||ye(e),e.errno}},fd_seek:function(e,t,r,n,o){try{var i=et.getStreamFromFD(e),a=4294967296*r+(t>>>0),s=9007199254740992;return a<=-s||a>=s?-61:(qe.llseek(i,a,n),be=[i.position>>>0,(Ce=i.position,+Math.abs(Ce)>=1?Ce>0?(0|Math.min(+Math.floor(Ce/4294967296),4294967295))>>>0:~~+Math.ceil((Ce-+(~~Ce>>>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!==qe&&e instanceof qe.ErrnoError||ye(e),e.errno}},fd_write:function(e,t,r,n){try{var o=et.getStreamFromFD(e),i=et.doWritev(o,t,r);return j[n>>2]=i,0}catch(e){return void 0!==qe&&e instanceof qe.ErrnoError||ye(e),e.errno}},getTempRet0:function(){return w},getentropy:function e(t,r){e.randomDevice||(e.randomDevice=We());for(var n=0;n<r;n++)x[t+n|0]=e.randomDevice();return 0},glActiveTexture:function(e){tn.activeTexture(e)},glAttachShader:function(e,t){tn.attachShader(Tr.programs[e],Tr.shaders[t])},glBindAttribLocation:function(e,t,r){tn.bindAttribLocation(Tr.programs[e],t,P(r))},glBindBuffer:function(e,t){34962==e?tn.currentArrayBufferBinding=t:34963==e&&(tn.currentElementArrayBufferBinding=t),35051==e?tn.currentPixelPackBufferBinding=t:35052==e&&(tn.currentPixelUnpackBufferBinding=t),tn.bindBuffer(e,Tr.buffers[t])},glBindBufferBase:function(e,t,r){tn.bindBufferBase(e,t,Tr.buffers[r])},glBindFramebuffer:function(e,t){tn.bindFramebuffer(e,t?Tr.framebuffers[t]:Tr.currentContext.defaultFbo)},glBindTexture:function(e,t){tn.bindTexture(e,Tr.textures[t])},glBindVertexArray:function(e){tn.bindVertexArray(Tr.vaos[e]);var t=tn.getParameter(34965);tn.currentElementArrayBufferBinding=t?0|t.name:0},glBufferData:function(e,t,r,n){Tr.currentContext.version>=2?r?tn.bufferData(e,k,n,r,t):tn.bufferData(e,t,n):tn.bufferData(e,r?k.subarray(r,r+t):t,n)},glClientWaitSync:function(e,t,r,n){return tn.clientWaitSync(Tr.syncs[e],t,(o=r,T((i=n)===(0|i)),(o>>>0)+4294967296*i));var o,i},glCompileShader:function(e){tn.compileShader(Tr.shaders[e])},glCreateProgram:function(){var e=Tr.getNewId(Tr.programs),t=tn.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,Tr.programs[e]=t,e},glCreateShader:function(e){var t=Tr.getNewId(Tr.shaders);return Tr.shaders[t]=tn.createShader(e),t},glDeleteBuffers:function(e,t){for(var r=0;r<e;r++){var n=j[t+4*r>>2],o=Tr.buffers[n];o&&(tn.deleteBuffer(o),o.name=0,Tr.buffers[n]=null,n==tn.currentArrayBufferBinding&&(tn.currentArrayBufferBinding=0),n==tn.currentElementArrayBufferBinding&&(tn.currentElementArrayBufferBinding=0),n==tn.currentPixelPackBufferBinding&&(tn.currentPixelPackBufferBinding=0),n==tn.currentPixelUnpackBufferBinding&&(tn.currentPixelUnpackBufferBinding=0))}},glDeleteFramebuffers:function(e,t){for(var r=0;r<e;++r){var n=j[t+4*r>>2],o=Tr.framebuffers[n];o&&(tn.deleteFramebuffer(o),o.name=0,Tr.framebuffers[n]=null)}},glDeleteProgram:function(e){if(e){var t=Tr.programs[e];t?(tn.deleteProgram(t),t.name=0,Tr.programs[e]=null):Tr.recordError(1281)}},glDeleteShader:function(e){if(e){var t=Tr.shaders[e];t?(tn.deleteShader(t),Tr.shaders[e]=null):Tr.recordError(1281)}},glDeleteSync:function(e){if(e){var t=Tr.syncs[e];t?(tn.deleteSync(t),t.name=0,Tr.syncs[e]=null):Tr.recordError(1281)}},glDeleteTextures:function(e,t){for(var r=0;r<e;r++){var n=j[t+4*r>>2],o=Tr.textures[n];o&&(tn.deleteTexture(o),o.name=0,Tr.textures[n]=null)}},glDeleteVertexArrays:function(e,t){for(var r=0;r<e;r++){var n=j[t+4*r>>2];tn.deleteVertexArray(Tr.vaos[n]),Tr.vaos[n]=null}},glDisable:function(e){tn.disable(e)},glDisableVertexAttribArray:function(e){Tr.currentContext.clientBuffers[e].enabled=!1,tn.disableVertexAttribArray(e)},glDrawArrays:function(e,t,r){Tr.preDrawHandleClientVertexAttribBindings(t+r),tn.drawArrays(e,t,r),Tr.postDrawHandleClientVertexAttribBindings()},glDrawBuffers:function(e,t){for(var r=kr[e],n=0;n<e;n++)r[n]=j[t+4*n>>2];tn.drawBuffers(r)},glEnableVertexAttribArray:function(e){Tr.currentContext.clientBuffers[e].enabled=!0,tn.enableVertexAttribArray(e)},glFenceSync:function(e,t){var r=tn.fenceSync(e,t);if(r){var n=Tr.getNewId(Tr.syncs);return r.name=n,Tr.syncs[n]=r,n}return 0},glFinish:function(){tn.finish()},glFlush:function(){tn.flush()},glFramebufferTexture2D:function(e,t,r,n,o){tn.framebufferTexture2D(e,t,r,Tr.textures[n],o)},glFramebufferTextureLayer:function(e,t,r,n,o){tn.framebufferTextureLayer(e,t,Tr.textures[r],n,o)},glGenBuffers:function(e,t){Nr(e,t,"createBuffer",Tr.buffers)},glGenFramebuffers:function(e,t){Nr(e,t,"createFramebuffer",Tr.framebuffers)},glGenTextures:function(e,t){Nr(e,t,"createTexture",Tr.textures)},glGenVertexArrays:function(e,t){Nr(e,t,"createVertexArray",Tr.vaos)},glGetAttribLocation:function(e,t){return tn.getAttribLocation(Tr.programs[e],P(t))},glGetError:function(){var e=tn.getError()||Tr.lastError;return Tr.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&&Tr.recordError(1280));case 34814:case 36345:n=0;break;case 34466:var o=tn.getParameter(34467);n=o?o.length:0;break;case 33309:if(Tr.currentContext.version<2)return void Tr.recordError(1282);n=2*(tn.getSupportedExtensions()||[]).length;break;case 33307:case 33308:if(Tr.currentContext.version<2)return void Tr.recordError(1280);n=33307==e?3:0}if(void 0===n){var i=tn.getParameter(e);switch(typeof i){case"number":n=i;break;case"boolean":n=i?1:0;break;case"string":return void Tr.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 Tr.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:x[t+a|0]=i[a]?1:0}return}try{n=0|i.name}catch(t){return Tr.recordError(1280),void I("GL_INVALID_ENUM in glGet"+r+"v: Unknown object returned from WebGL getParameter("+e+")! (error: "+t+")")}}break;default:return Tr.recordError(1280),void I("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:Ur(t,n);break;case 0:j[t>>2]=n;break;case 2:H[t>>2]=n;break;case 4:x[0|t]=n?1:0}}else Tr.recordError(1281)}(e,t,0)},glGetString:function(e){var t=Tr.stringCache[e];if(!t){switch(e){case 7939:var r=tn.getSupportedExtensions()||[];t=jr((r=r.concat(r.map((function(e){return"GL_"+e})))).join(" "));break;case 7936:case 7937:case 37445:case 37446:var n=tn.getParameter(e);n||Tr.recordError(1280),t=n&&jr(n);break;case 7938:var o=tn.getParameter(7938);t=jr(o=Tr.currentContext.version>=2?"OpenGL ES 3.0 ("+o+")":"OpenGL ES 2.0 ("+o+")");break;case 35724:var i=tn.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:Tr.recordError(1280)}Tr.stringCache[e]=t}return t},glGetUniformBlockIndex:function(e,t){return tn.getUniformBlockIndex(Tr.programs[e],P(t))},glGetUniformLocation:function(e,t){if(t=P(t),e=Tr.programs[e]){!function(e){var t,r,n=e.uniformLocsById,o=e.uniformSizeAndIdsByName;if(!n)for(e.uniformLocsById=n={},e.uniformArrayNamesById={},t=0;t<tn.getProgramParameter(e,35718);++t){var i=tn.getActiveUniform(e,t),a=i.name,s=i.size,c=Lr(a),A=c>0?a.slice(0,c):a,u=e.uniformIdCounter;for(e.uniformIdCounter+=s,o[A]=[s,u],r=0;r<s;++r)n[u]=r,e.uniformArrayNamesById[u++]=A}}(e);var r=e.uniformLocsById,n=0,o=t,i=Lr(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]||tn.getUniformLocation(e,t)))return n}else Tr.recordError(1281);var s;return-1},glLinkProgram:function(e){e=Tr.programs[e],tn.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}},glPixelStorei:function(e,t){3317==e&&(Tr.unpackAlignment=t),tn.pixelStorei(e,t)},glReadPixels:function(e,t,r,n,o,i,a){if(Tr.currentContext.version>=2)if(tn.currentPixelPackBufferBinding)tn.readPixels(e,t,r,n,o,i,a);else{var s=Hr(i);tn.readPixels(e,t,r,n,o,i,s,a>>Gr(s))}else{var c=Yr(i,o,r,n,a);c?tn.readPixels(e,t,r,n,o,i,c):Tr.recordError(1280)}},glShaderSource:function(e,t,r,n){var o=Tr.getSource(e,t,r,n);tn.shaderSource(Tr.shaders[e],o)},glTexImage2D:function(e,t,r,n,o,i,a,s,c){if(Tr.currentContext.version>=2)if(tn.currentPixelUnpackBufferBinding)tn.texImage2D(e,t,r,n,o,i,a,s,c);else if(c){var A=Hr(s);tn.texImage2D(e,t,r,n,o,i,a,s,A,c>>Gr(A))}else tn.texImage2D(e,t,r,n,o,i,a,s,null);else tn.texImage2D(e,t,r,n,o,i,a,s,c?Yr(s,a,n,o,c):null)},glTexParameterfv:function(e,t,r){var n=H[r>>2];tn.texParameterf(e,t,n)},glTexParameteri:function(e,t,r){tn.texParameteri(e,t,r)},glTexStorage2D:function(e,t,r,n,o){tn.texStorage2D(e,t,r,n,o)},glTexStorage3D:function(e,t,r,n,o,i){tn.texStorage3D(e,t,r,n,o,i)},glTexSubImage2D:function(e,t,r,n,o,i,a,s,c){if(Tr.currentContext.version>=2)if(tn.currentPixelUnpackBufferBinding)tn.texSubImage2D(e,t,r,n,o,i,a,s,c);else if(c){var A=Hr(s);tn.texSubImage2D(e,t,r,n,o,i,a,s,A,c>>Gr(A))}else tn.texSubImage2D(e,t,r,n,o,i,a,s,null);else{var u=null;c&&(u=Yr(s,a,o,i,c)),tn.texSubImage2D(e,t,r,n,o,i,a,s,u)}},glTexSubImage3D:function(e,t,r,n,o,i,a,s,c,A,u){if(tn.currentPixelUnpackBufferBinding)tn.texSubImage3D(e,t,r,n,o,i,a,s,c,A,u);else if(u){var l=Hr(A);tn.texSubImage3D(e,t,r,n,o,i,a,s,c,A,l,u>>Gr(l))}else tn.texSubImage3D(e,t,r,n,o,i,a,s,c,A,null)},glUniform1f:function(e,t){tn.uniform1f(Xr(e),t)},glUniform1i:function(e,t){tn.uniform1i(Xr(e),t)},glUniform2fv:function(e,t,r){if(Tr.currentContext.version>=2)tn.uniform2fv(Xr(e),H,r>>2,2*t);else{if(t<=144)for(var n=Wr[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);tn.uniform2fv(Xr(e),n)}},glUniform4fv:function(e,t,r){if(Tr.currentContext.version>=2)tn.uniform4fv(Xr(e),H,r>>2,4*t);else{if(t<=72){var n=Wr[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);tn.uniform4fv(Xr(e),n)}},glUniform4iv:function(e,t,r){if(Tr.currentContext.version>=2)tn.uniform4iv(Xr(e),j,r>>2,4*t);else{if(t<=72)for(var n=Vr[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);tn.uniform4iv(Xr(e),n)}},glUniformBlockBinding:function(e,t,r){e=Tr.programs[e],tn.uniformBlockBinding(e,t,r)},glUniformMatrix4fv:function(e,t,r,n){if(Tr.currentContext.version>=2)tn.uniformMatrix4fv(Xr(e),!!r,H,n>>2,16*t);else{if(t<=18){var o=Wr[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);tn.uniformMatrix4fv(Xr(e),!!r,o)}},glUseProgram:function(e){e=Tr.programs[e],tn.useProgram(e),tn.currentProgram=e},glVertexAttribPointer:function(e,t,r,n,o,i){var a=Tr.currentContext.clientBuffers[e];if(!tn.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,tn.vertexAttribPointer(e,t,r,!!n,o,i)},glViewport:function(e,t,r,n){tn.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=Z("GMT")),j[r+40>>2]=e.GMTString,r},invoke_diii:function(e,t,r,n){var o=yn();try{return re.get(e)(t,r,n)}catch(e){if(_n(o),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_i:function(e){var t=yn();try{return re.get(e)()}catch(e){if(_n(t),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_ii:function(e,t){var r=yn();try{return re.get(e)(t)}catch(e){if(_n(r),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_iii:function(e,t,r){var n=yn();try{return re.get(e)(t,r)}catch(e){if(_n(n),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_iiii:function(e,t,r,n){var o=yn();try{return re.get(e)(t,r,n)}catch(e){if(_n(o),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_iiiii:function(e,t,r,n,o){var i=yn();try{return re.get(e)(t,r,n,o)}catch(e){if(_n(i),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_iiiiii:function(e,t,r,n,o,i){var a=yn();try{return re.get(e)(t,r,n,o,i)}catch(e){if(_n(a),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_iiiiiii:function(e,t,r,n,o,i,a){var s=yn();try{return re.get(e)(t,r,n,o,i,a)}catch(e){if(_n(s),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_iiiiiiiddi:function(e,t,r,n,o,i,a,s,c,A){var u=yn();try{return re.get(e)(t,r,n,o,i,a,s,c,A)}catch(e){if(_n(u),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_iiiiiiii:function(e,t,r,n,o,i,a,s){var c=yn();try{return re.get(e)(t,r,n,o,i,a,s)}catch(e){if(_n(c),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_iiiiiiiii:function(e,t,r,n,o,i,a,s,c){var A=yn();try{return re.get(e)(t,r,n,o,i,a,s,c)}catch(e){if(_n(A),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_v:function(e){var t=yn();try{re.get(e)()}catch(e){if(_n(t),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_vdiii:function(e,t,r,n,o){var i=yn();try{re.get(e)(t,r,n,o)}catch(e){if(_n(i),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_vi:function(e,t){var r=yn();try{re.get(e)(t)}catch(e){if(_n(r),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_vididdii:function(e,t,r,n,o,i,a,s){var c=yn();try{re.get(e)(t,r,n,o,i,a,s)}catch(e){if(_n(c),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_vidii:function(e,t,r,n,o){var i=yn();try{re.get(e)(t,r,n,o)}catch(e){if(_n(i),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_vii:function(e,t,r){var n=yn();try{re.get(e)(t,r)}catch(e){if(_n(n),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viid:function(e,t,r,n){var o=yn();try{re.get(e)(t,r,n)}catch(e){if(_n(o),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viidi:function(e,t,r,n,o){var i=yn();try{re.get(e)(t,r,n,o)}catch(e){if(_n(i),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viididii:function(e,t,r,n,o,i,a,s){var c=yn();try{re.get(e)(t,r,n,o,i,a,s)}catch(e){if(_n(c),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viii:function(e,t,r,n){var o=yn();try{re.get(e)(t,r,n)}catch(e){if(_n(o),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiid:function(e,t,r,n,o){var i=yn();try{re.get(e)(t,r,n,o)}catch(e){if(_n(i),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiidd:function(e,t,r,n,o,i){var a=yn();try{re.get(e)(t,r,n,o,i)}catch(e){if(_n(a),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiddi:function(e,t,r,n,o,i,a){var s=yn();try{re.get(e)(t,r,n,o,i,a)}catch(e){if(_n(s),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiidi:function(e,t,r,n,o,i){var a=yn();try{re.get(e)(t,r,n,o,i)}catch(e){if(_n(a),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiii:function(e,t,r,n,o){var i=yn();try{re.get(e)(t,r,n,o)}catch(e){if(_n(i),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiid:function(e,t,r,n,o,i){var a=yn();try{re.get(e)(t,r,n,o,i)}catch(e){if(_n(a),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiidi:function(e,t,r,n,o,i,a){var s=yn();try{re.get(e)(t,r,n,o,i,a)}catch(e){if(_n(s),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiidid:function(e,t,r,n,o,i,a,s){var c=yn();try{re.get(e)(t,r,n,o,i,a,s)}catch(e){if(_n(c),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiidiidiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d,g,f,h){var p=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u,l,d,g,f,h)}catch(e){if(_n(p),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiifiifiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d,g,f,h){var p=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u,l,d,g,f,h)}catch(e){if(_n(p),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiii:function(e,t,r,n,o,i){var a=yn();try{re.get(e)(t,r,n,o,i)}catch(e){if(_n(a),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiid:function(e,t,r,n,o,i,a){var s=yn();try{re.get(e)(t,r,n,o,i,a)}catch(e){if(_n(s),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiif:function(e,t,r,n,o,i,a){var s=yn();try{re.get(e)(t,r,n,o,i,a)}catch(e){if(_n(s),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiii:function(e,t,r,n,o,i,a){var s=yn();try{re.get(e)(t,r,n,o,i,a)}catch(e){if(_n(s),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiid:function(e,t,r,n,o,i,a,s){var c=yn();try{re.get(e)(t,r,n,o,i,a,s)}catch(e){if(_n(c),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiif:function(e,t,r,n,o,i,a,s){var c=yn();try{re.get(e)(t,r,n,o,i,a,s)}catch(e){if(_n(c),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiii:function(e,t,r,n,o,i,a,s){var c=yn();try{re.get(e)(t,r,n,o,i,a,s)}catch(e){if(_n(c),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiiddi:function(e,t,r,n,o,i,a,s,c,A,u){var l=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u)}catch(e){if(_n(l),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiidiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d){var g=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u,l,d)}catch(e){if(_n(g),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiifiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d){var g=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u,l,d)}catch(e){if(_n(g),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiii:function(e,t,r,n,o,i,a,s,c){var A=yn();try{re.get(e)(t,r,n,o,i,a,s,c)}catch(e){if(_n(A),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiiidd:function(e,t,r,n,o,i,a,s,c,A,u){var l=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u)}catch(e){if(_n(l),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiiidf:function(e,t,r,n,o,i,a,s,c,A,u){var l=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u)}catch(e){if(_n(l),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiiii:function(e,t,r,n,o,i,a,s,c,A){var u=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A)}catch(e){if(_n(u),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiiiidd:function(e,t,r,n,o,i,a,s,c,A,u,l){var d=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u,l)}catch(e){if(_n(d),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiiiiddi:function(e,t,r,n,o,i,a,s,c,A,u,l,d){var g=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u,l,d)}catch(e){if(_n(g),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u){var l=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u)}catch(e){if(_n(l),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiiiiiddi:function(e,t,r,n,o,i,a,s,c,A,u,l,d,g){var f=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u,l,d,g)}catch(e){if(_n(f),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u,l){var d=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u,l)}catch(e){if(_n(d),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d){var g=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u,l,d)}catch(e){if(_n(g),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d,g){var f=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u,l,d,g)}catch(e){if(_n(f),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},llvm_eh_typeid_for:function(e){return e},localtime_r:function(e,t){zr();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 c=j[En()+(s?4:0)>>2];return j[t+40>>2]=c,t},mktime:function(e){zr();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 c=Math.max(a,i),A=r>0?s:c;t.setTime(t.getTime()+6e4*(A-n))}j[e+24>>2]=t.getDay();var u=(t.getTime()-o.getTime())/864e5|0;return j[e+28>>2]=u,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){vn(e)},setTempRet0:function(e){C(e)},strftime:en,strftime_l:function(e,t,r,n){return en(e,t,r,n)}},dn=(function(){var e={env:ln,wasi_snapshot_preview1:ln};function t(e,t){var r,n=e.exports;o.asm=n,T(b=o.asm.memory,"memory not found in wasm exports"),ee(b.buffer),T(re=o.asm.__indirect_function_table,"table not found in wasm exports"),r=o.asm.__wasm_call_ctors,se.unshift(r),Ie("wasm-instantiate")}me("wasm-instantiate");var r=o;function i(e){T(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(!_&&(u||l)){if("function"==typeof fetch&&!De(_e))return fetch(_e,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+_e+"'";return e.arrayBuffer()})).catch((function(){return Te(_e)}));if(h)return new Promise((function(e,t){h(_e,(function(t){e(new Uint8Array(t))}),t)}))}return Promise.resolve().then((function(){return Te(_e)}))}().then((function(t){return WebAssembly.instantiate(t,e)})).then(t,(function(e){I("failed to asynchronously prepare wasm: "+e),De(_e)&&I("warning: Loading from a file URI ("+_e+") 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"),ye(e)}))}if(o.instantiateWasm)try{return o.instantiateWasm(e,t)}catch(e){return I("Module.instantiateWasm callback failed with error: "+e),!1}(_||"function"!=typeof WebAssembly.instantiateStreaming||Be(_e)||De(_e)||"function"!=typeof fetch?a(i):fetch(_e,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(i,(function(e){return I("wasm streaming compile failed: "+e),I("falling back to ArrayBuffer instantiation"),a(i)}))}))).catch(n)}(),o.___wasm_call_ctors=Oe("__wasm_call_ctors"),o._free=Oe("free")),gn=o._malloc=Oe("malloc"),fn=o.___errno_location=Oe("__errno_location"),hn=(o._fflush=Oe("fflush"),o.___getTypeName=Oe("__getTypeName")),pn=(o.___embind_register_native_and_builtin_types=Oe("__embind_register_native_and_builtin_types"),o._emscripten_main_thread_process_queued_calls=Oe("emscripten_main_thread_process_queued_calls"),o._emscripten_stack_get_end=function(){return(pn=o._emscripten_stack_get_end=o.asm.emscripten_stack_get_end).apply(null,arguments)}),En=o.__get_tzname=Oe("_get_tzname"),mn=o.__get_daylight=Oe("_get_daylight"),In=o.__get_timezone=Oe("_get_timezone"),yn=o.stackSave=Oe("stackSave"),_n=o.stackRestore=Oe("stackRestore"),wn=(o.stackAlloc=Oe("stackAlloc"),o._emscripten_stack_init=function(){return(wn=o._emscripten_stack_init=o.asm.emscripten_stack_init).apply(null,arguments)}),Cn=(o._emscripten_stack_get_free=function(){return(o._emscripten_stack_get_free=o.asm.emscripten_stack_get_free).apply(null,arguments)},o._saveSetjmp=Oe("saveSetjmp"),o._setThrew=Oe("setThrew")),bn=o.___cxa_can_catch=Oe("__cxa_can_catch"),Bn=o.___cxa_is_pointer_type=Oe("__cxa_is_pointer_type"),Dn=o._memalign=Oe("memalign");o._emscripten_builtin_malloc=Oe("emscripten_builtin_malloc"),o._emscripten_builtin_free=Oe("emscripten_builtin_free"),o._emscripten_builtin_memalign=Oe("emscripten_builtin_memalign"),o.dynCall_jii=Oe("dynCall_jii"),o.dynCall_viji=Oe("dynCall_viji"),o.dynCall_jjj=Oe("dynCall_jjj"),o.dynCall_iiiijj=Oe("dynCall_iiiijj"),o.dynCall_viijj=Oe("dynCall_viijj"),o.dynCall_viiijjjj=Oe("dynCall_viiijjjj"),o.dynCall_ji=Oe("dynCall_ji"),o.dynCall_vij=Oe("dynCall_vij"),o.dynCall_viijii=Oe("dynCall_viijii"),o.dynCall_vj=Oe("dynCall_vj"),o.dynCall_viij=Oe("dynCall_viij"),o.dynCall_viiiiij=Oe("dynCall_viiiiij"),o.dynCall_iijjiiii=Oe("dynCall_iijjiiii"),o.dynCall_jiji=Oe("dynCall_jiji"),o.dynCall_iiiiij=Oe("dynCall_iiiiij"),o.dynCall_iiiiijj=Oe("dynCall_iiiiijj"),o.dynCall_iiiiiijj=Oe("dynCall_iiiiiijj");function On(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Tn(e){function t(){un||(un=!0,o.calledRun=!0,O||(ie(),T(!ue),ue=!0,o.noFSInit||qe.init.initialized||qe.init(),qe.ignorePermissions=!1,ze.init(),ke(se),r(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),T(!o._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),function(){if(ie(),o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)e=o.postRun.shift(),Ae.unshift(e);var e;ke(Ae)}()))}e=e||s,ge>0||(wn(),oe(),function(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)e=o.preRun.shift(),ae.unshift(e);var e;ke(ae)}(),ge>0||(o.setStatus?(o.setStatus("Running..."),setTimeout((function(){setTimeout((function(){o.setStatus("")}),1),t()}),1)):t(),ie()))}function vn(e){D=e,de()||(o.onExit&&o.onExit(e),O=!0),A(e,new On(e))}if(Object.getOwnPropertyDescriptor(o,"intArrayFromString")||(o.intArrayFromString=function(){ye("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"intArrayToString")||(o.intArrayToString=function(){ye("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ccall")||(o.ccall=function(){ye("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"cwrap")||(o.cwrap=function(){ye("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setValue")||(o.setValue=function(){ye("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getValue")||(o.getValue=function(){ye("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"allocate")||(o.allocate=function(){ye("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF8ArrayToString")||(o.UTF8ArrayToString=function(){ye("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF8ToString")||(o.UTF8ToString=function(){ye("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF8Array")||(o.stringToUTF8Array=function(){ye("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF8")||(o.stringToUTF8=function(){ye("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"lengthBytesUTF8")||(o.lengthBytesUTF8=function(){ye("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackTrace")||(o.stackTrace=function(){ye("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnPreRun")||(o.addOnPreRun=function(){ye("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnInit")||(o.addOnInit=function(){ye("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnPreMain")||(o.addOnPreMain=function(){ye("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnExit")||(o.addOnExit=function(){ye("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnPostRun")||(o.addOnPostRun=function(){ye("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeStringToMemory")||(o.writeStringToMemory=function(){ye("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeArrayToMemory")||(o.writeArrayToMemory=function(){ye("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeAsciiToMemory")||(o.writeAsciiToMemory=function(){ye("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.addRunDependency=me,o.removeRunDependency=Ie,Object.getOwnPropertyDescriptor(o,"FS_createFolder")||(o.FS_createFolder=function(){ye("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.FS_createPath=qe.createPath,o.FS_createDataFile=qe.createDataFile,o.FS_createPreloadedFile=qe.createPreloadedFile,o.FS_createLazyFile=qe.createLazyFile,Object.getOwnPropertyDescriptor(o,"FS_createLink")||(o.FS_createLink=function(){ye("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.FS_createDevice=qe.createDevice,o.FS_unlink=qe.unlink,Object.getOwnPropertyDescriptor(o,"getLEB")||(o.getLEB=function(){ye("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getFunctionTables")||(o.getFunctionTables=function(){ye("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"alignFunctionTables")||(o.alignFunctionTables=function(){ye("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerFunctions")||(o.registerFunctions=function(){ye("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addFunction")||(o.addFunction=function(){ye("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"removeFunction")||(o.removeFunction=function(){ye("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getFuncWrapper")||(o.getFuncWrapper=function(){ye("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"prettyPrint")||(o.prettyPrint=function(){ye("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"dynCall")||(o.dynCall=function(){ye("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getCompilerSetting")||(o.getCompilerSetting=function(){ye("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"print")||(o.print=function(){ye("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"printErr")||(o.printErr=function(){ye("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getTempRet0")||(o.getTempRet0=function(){ye("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setTempRet0")||(o.setTempRet0=function(){ye("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"callMain")||(o.callMain=function(){ye("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"abort")||(o.abort=function(){ye("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"keepRuntimeAlive")||(o.keepRuntimeAlive=function(){ye("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"zeroMemory")||(o.zeroMemory=function(){ye("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToNewUTF8")||(o.stringToNewUTF8=function(){ye("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setFileTime")||(o.setFileTime=function(){ye("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscripten_realloc_buffer")||(o.emscripten_realloc_buffer=function(){ye("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ENV")||(o.ENV=function(){ye("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ERRNO_CODES")||(o.ERRNO_CODES=function(){ye("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ERRNO_MESSAGES")||(o.ERRNO_MESSAGES=function(){ye("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setErrNo")||(o.setErrNo=function(){ye("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetPton4")||(o.inetPton4=function(){ye("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetNtop4")||(o.inetNtop4=function(){ye("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetPton6")||(o.inetPton6=function(){ye("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetNtop6")||(o.inetNtop6=function(){ye("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readSockaddr")||(o.readSockaddr=function(){ye("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeSockaddr")||(o.writeSockaddr=function(){ye("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"DNS")||(o.DNS=function(){ye("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getHostByName")||(o.getHostByName=function(){ye("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GAI_ERRNO_MESSAGES")||(o.GAI_ERRNO_MESSAGES=function(){ye("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"Protocols")||(o.Protocols=function(){ye("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"Sockets")||(o.Sockets=function(){ye("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getRandomDevice")||(o.getRandomDevice=function(){ye("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"traverseStack")||(o.traverseStack=function(){ye("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UNWIND_CACHE")||(o.UNWIND_CACHE=function(){ye("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"withBuiltinMalloc")||(o.withBuiltinMalloc=function(){ye("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readAsmConstArgsArray")||(o.readAsmConstArgsArray=function(){ye("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readAsmConstArgs")||(o.readAsmConstArgs=function(){ye("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"mainThreadEM_ASM")||(o.mainThreadEM_ASM=function(){ye("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"jstoi_q")||(o.jstoi_q=function(){ye("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"jstoi_s")||(o.jstoi_s=function(){ye("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getExecutableName")||(o.getExecutableName=function(){ye("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"listenOnce")||(o.listenOnce=function(){ye("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"autoResumeAudioContext")||(o.autoResumeAudioContext=function(){ye("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"dynCallLegacy")||(o.dynCallLegacy=function(){ye("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getDynCaller")||(o.getDynCaller=function(){ye("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"dynCall")||(o.dynCall=function(){ye("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"callRuntimeCallbacks")||(o.callRuntimeCallbacks=function(){ye("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runtimeKeepalivePush")||(o.runtimeKeepalivePush=function(){ye("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runtimeKeepalivePop")||(o.runtimeKeepalivePop=function(){ye("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"callUserCallback")||(o.callUserCallback=function(){ye("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"maybeExit")||(o.maybeExit=function(){ye("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"safeSetTimeout")||(o.safeSetTimeout=function(){ye("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"asmjsMangle")||(o.asmjsMangle=function(){ye("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"asyncLoad")||(o.asyncLoad=function(){ye("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"alignMemory")||(o.alignMemory=function(){ye("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"mmapAlloc")||(o.mmapAlloc=function(){ye("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"reallyNegative")||(o.reallyNegative=function(){ye("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"unSign")||(o.unSign=function(){ye("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"reSign")||(o.reSign=function(){ye("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"formatString")||(o.formatString=function(){ye("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PATH")||(o.PATH=function(){ye("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PATH_FS")||(o.PATH_FS=function(){ye("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SYSCALLS")||(o.SYSCALLS=function(){ye("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"syscallMmap2")||(o.syscallMmap2=function(){ye("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"syscallMunmap")||(o.syscallMunmap=function(){ye("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getSocketFromFD")||(o.getSocketFromFD=function(){ye("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getSocketAddress")||(o.getSocketAddress=function(){ye("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"JSEvents")||(o.JSEvents=function(){ye("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerKeyEventCallback")||(o.registerKeyEventCallback=function(){ye("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"specialHTMLTargets")||(o.specialHTMLTargets=function(){ye("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"findEventTarget")||(o.findEventTarget=function(){ye("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"findCanvasEventTarget")||(o.findCanvasEventTarget=function(){ye("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getBoundingClientRect")||(o.getBoundingClientRect=function(){ye("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillMouseEventData")||(o.fillMouseEventData=function(){ye("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerMouseEventCallback")||(o.registerMouseEventCallback=function(){ye("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerWheelEventCallback")||(o.registerWheelEventCallback=function(){ye("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerUiEventCallback")||(o.registerUiEventCallback=function(){ye("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerFocusEventCallback")||(o.registerFocusEventCallback=function(){ye("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillDeviceOrientationEventData")||(o.fillDeviceOrientationEventData=function(){ye("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerDeviceOrientationEventCallback")||(o.registerDeviceOrientationEventCallback=function(){ye("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillDeviceMotionEventData")||(o.fillDeviceMotionEventData=function(){ye("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerDeviceMotionEventCallback")||(o.registerDeviceMotionEventCallback=function(){ye("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"screenOrientation")||(o.screenOrientation=function(){ye("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillOrientationChangeEventData")||(o.fillOrientationChangeEventData=function(){ye("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerOrientationChangeEventCallback")||(o.registerOrientationChangeEventCallback=function(){ye("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillFullscreenChangeEventData")||(o.fillFullscreenChangeEventData=function(){ye("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerFullscreenChangeEventCallback")||(o.registerFullscreenChangeEventCallback=function(){ye("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerRestoreOldStyle")||(o.registerRestoreOldStyle=function(){ye("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"hideEverythingExceptGivenElement")||(o.hideEverythingExceptGivenElement=function(){ye("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"restoreHiddenElements")||(o.restoreHiddenElements=function(){ye("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setLetterbox")||(o.setLetterbox=function(){ye("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"currentFullscreenStrategy")||(o.currentFullscreenStrategy=function(){ye("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"restoreOldWindowedStyle")||(o.restoreOldWindowedStyle=function(){ye("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"softFullscreenResizeWebGLRenderTarget")||(o.softFullscreenResizeWebGLRenderTarget=function(){ye("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"doRequestFullscreen")||(o.doRequestFullscreen=function(){ye("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillPointerlockChangeEventData")||(o.fillPointerlockChangeEventData=function(){ye("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerPointerlockChangeEventCallback")||(o.registerPointerlockChangeEventCallback=function(){ye("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerPointerlockErrorEventCallback")||(o.registerPointerlockErrorEventCallback=function(){ye("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"requestPointerLock")||(o.requestPointerLock=function(){ye("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillVisibilityChangeEventData")||(o.fillVisibilityChangeEventData=function(){ye("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerVisibilityChangeEventCallback")||(o.registerVisibilityChangeEventCallback=function(){ye("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerTouchEventCallback")||(o.registerTouchEventCallback=function(){ye("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillGamepadEventData")||(o.fillGamepadEventData=function(){ye("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerGamepadEventCallback")||(o.registerGamepadEventCallback=function(){ye("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerBeforeUnloadEventCallback")||(o.registerBeforeUnloadEventCallback=function(){ye("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillBatteryEventData")||(o.fillBatteryEventData=function(){ye("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"battery")||(o.battery=function(){ye("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerBatteryEventCallback")||(o.registerBatteryEventCallback=function(){ye("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setCanvasElementSize")||(o.setCanvasElementSize=function(){ye("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getCanvasElementSize")||(o.getCanvasElementSize=function(){ye("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"polyfillSetImmediate")||(o.polyfillSetImmediate=function(){ye("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"demangle")||(o.demangle=function(){ye("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"demangleAll")||(o.demangleAll=function(){ye("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"jsStackTrace")||(o.jsStackTrace=function(){ye("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackTrace")||(o.stackTrace=function(){ye("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getEnvStrings")||(o.getEnvStrings=function(){ye("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"checkWasiClock")||(o.checkWasiClock=function(){ye("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToI64")||(o.writeI53ToI64=function(){ye("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToI64Clamped")||(o.writeI53ToI64Clamped=function(){ye("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToI64Signaling")||(o.writeI53ToI64Signaling=function(){ye("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToU64Clamped")||(o.writeI53ToU64Clamped=function(){ye("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToU64Signaling")||(o.writeI53ToU64Signaling=function(){ye("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readI53FromI64")||(o.readI53FromI64=function(){ye("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readI53FromU64")||(o.readI53FromU64=function(){ye("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"convertI32PairToI53")||(o.convertI32PairToI53=function(){ye("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"convertU32PairToI53")||(o.convertU32PairToI53=function(){ye("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"uncaughtExceptionCount")||(o.uncaughtExceptionCount=function(){ye("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exceptionLast")||(o.exceptionLast=function(){ye("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exceptionCaught")||(o.exceptionCaught=function(){ye("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ExceptionInfo")||(o.ExceptionInfo=function(){ye("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"CatchInfo")||(o.CatchInfo=function(){ye("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exception_addRef")||(o.exception_addRef=function(){ye("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exception_decRef")||(o.exception_decRef=function(){ye("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"Browser")||(o.Browser=function(){ye("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"funcWrappers")||(o.funcWrappers=function(){ye("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getFuncWrapper")||(o.getFuncWrapper=function(){ye("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setMainLoop")||(o.setMainLoop=function(){ye("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"wget")||(o.wget=function(){ye("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"FS")||(o.FS=function(){ye("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"MEMFS")||(o.MEMFS=function(){ye("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"TTY")||(o.TTY=function(){ye("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PIPEFS")||(o.PIPEFS=function(){ye("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SOCKFS")||(o.SOCKFS=function(){ye("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"_setNetworkCallback")||(o._setNetworkCallback=function(){ye("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"tempFixedLengthArray")||(o.tempFixedLengthArray=function(){ye("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"miniTempWebGLFloatBuffers")||(o.miniTempWebGLFloatBuffers=function(){ye("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"heapObjectForWebGLType")||(o.heapObjectForWebGLType=function(){ye("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"heapAccessShiftForWebGLHeap")||(o.heapAccessShiftForWebGLHeap=function(){ye("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.GL=Tr,Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGet")||(o.emscriptenWebGLGet=function(){ye("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"computeUnpackAlignedImageSize")||(o.computeUnpackAlignedImageSize=function(){ye("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetTexPixelData")||(o.emscriptenWebGLGetTexPixelData=function(){ye("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetUniform")||(o.emscriptenWebGLGetUniform=function(){ye("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"webglGetUniformLocation")||(o.webglGetUniformLocation=function(){ye("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"webglPrepareUniformLocationsBeforeFirstUse")||(o.webglPrepareUniformLocationsBeforeFirstUse=function(){ye("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"webglGetLeftBracePos")||(o.webglGetLeftBracePos=function(){ye("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetVertexAttrib")||(o.emscriptenWebGLGetVertexAttrib=function(){ye("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetBufferBinding")||(o.emscriptenWebGLGetBufferBinding=function(){ye("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLValidateMapBufferTarget")||(o.emscriptenWebGLValidateMapBufferTarget=function(){ye("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeGLArray")||(o.writeGLArray=function(){ye("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"AL")||(o.AL=function(){ye("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_unicode")||(o.SDL_unicode=function(){ye("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_ttfContext")||(o.SDL_ttfContext=function(){ye("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_audio")||(o.SDL_audio=function(){ye("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL")||(o.SDL=function(){ye("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_gfx")||(o.SDL_gfx=function(){ye("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLUT")||(o.GLUT=function(){ye("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"EGL")||(o.EGL=function(){ye("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLFW_Window")||(o.GLFW_Window=function(){ye("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLFW")||(o.GLFW=function(){ye("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLEW")||(o.GLEW=function(){ye("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"IDBStore")||(o.IDBStore=function(){ye("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runAndAbortIfError")||(o.runAndAbortIfError=function(){ye("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_handle_array")||(o.emval_handle_array=function(){ye("'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(){ye("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_symbols")||(o.emval_symbols=function(){ye("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_emval")||(o.init_emval=function(){ye("'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(){ye("'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(){ye("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getStringOrSymbol")||(o.getStringOrSymbol=function(){ye("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"requireHandle")||(o.requireHandle=function(){ye("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_newers")||(o.emval_newers=function(){ye("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"craftEmvalAllocator")||(o.craftEmvalAllocator=function(){ye("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_get_global")||(o.emval_get_global=function(){ye("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_methodCallers")||(o.emval_methodCallers=function(){ye("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"InternalError")||(o.InternalError=function(){ye("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"BindingError")||(o.BindingError=function(){ye("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UnboundTypeError")||(o.UnboundTypeError=function(){ye("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PureVirtualError")||(o.PureVirtualError=function(){ye("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_embind")||(o.init_embind=function(){ye("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwInternalError")||(o.throwInternalError=function(){ye("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwBindingError")||(o.throwBindingError=function(){ye("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwUnboundTypeError")||(o.throwUnboundTypeError=function(){ye("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ensureOverloadTable")||(o.ensureOverloadTable=function(){ye("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exposePublicSymbol")||(o.exposePublicSymbol=function(){ye("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"replacePublicSymbol")||(o.replacePublicSymbol=function(){ye("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"extendError")||(o.extendError=function(){ye("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"createNamedFunction")||(o.createNamedFunction=function(){ye("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registeredInstances")||(o.registeredInstances=function(){ye("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getBasestPointer")||(o.getBasestPointer=function(){ye("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerInheritedInstance")||(o.registerInheritedInstance=function(){ye("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"unregisterInheritedInstance")||(o.unregisterInheritedInstance=function(){ye("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getInheritedInstance")||(o.getInheritedInstance=function(){ye("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getInheritedInstanceCount")||(o.getInheritedInstanceCount=function(){ye("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getLiveInheritedInstances")||(o.getLiveInheritedInstances=function(){ye("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registeredTypes")||(o.registeredTypes=function(){ye("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"awaitingDependencies")||(o.awaitingDependencies=function(){ye("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"typeDependencies")||(o.typeDependencies=function(){ye("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registeredPointers")||(o.registeredPointers=function(){ye("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerType")||(o.registerType=function(){ye("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"whenDependentTypesAreResolved")||(o.whenDependentTypesAreResolved=function(){ye("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"embind_charCodes")||(o.embind_charCodes=function(){ye("'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(){ye("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readLatin1String")||(o.readLatin1String=function(){ye("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getTypeName")||(o.getTypeName=function(){ye("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"heap32VectorToArray")||(o.heap32VectorToArray=function(){ye("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"requireRegisteredType")||(o.requireRegisteredType=function(){ye("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getShiftFromSize")||(o.getShiftFromSize=function(){ye("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"integerReadValueFromPointer")||(o.integerReadValueFromPointer=function(){ye("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"enumReadValueFromPointer")||(o.enumReadValueFromPointer=function(){ye("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"floatReadValueFromPointer")||(o.floatReadValueFromPointer=function(){ye("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"simpleReadValueFromPointer")||(o.simpleReadValueFromPointer=function(){ye("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runDestructors")||(o.runDestructors=function(){ye("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"new_")||(o.new_=function(){ye("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"craftInvokerFunction")||(o.craftInvokerFunction=function(){ye("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"embind__requireFunction")||(o.embind__requireFunction=function(){ye("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"tupleRegistrations")||(o.tupleRegistrations=function(){ye("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"structRegistrations")||(o.structRegistrations=function(){ye("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"genericPointerToWireType")||(o.genericPointerToWireType=function(){ye("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"constNoSmartPtrRawPointerToWireType")||(o.constNoSmartPtrRawPointerToWireType=function(){ye("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"nonConstNoSmartPtrRawPointerToWireType")||(o.nonConstNoSmartPtrRawPointerToWireType=function(){ye("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_RegisteredPointer")||(o.init_RegisteredPointer=function(){ye("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer")||(o.RegisteredPointer=function(){ye("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_getPointee")||(o.RegisteredPointer_getPointee=function(){ye("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_destructor")||(o.RegisteredPointer_destructor=function(){ye("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_deleteObject")||(o.RegisteredPointer_deleteObject=function(){ye("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_fromWireType")||(o.RegisteredPointer_fromWireType=function(){ye("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runDestructor")||(o.runDestructor=function(){ye("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"releaseClassHandle")||(o.releaseClassHandle=function(){ye("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"finalizationGroup")||(o.finalizationGroup=function(){ye("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"detachFinalizer_deps")||(o.detachFinalizer_deps=function(){ye("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"detachFinalizer")||(o.detachFinalizer=function(){ye("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"attachFinalizer")||(o.attachFinalizer=function(){ye("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"makeClassHandle")||(o.makeClassHandle=function(){ye("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_ClassHandle")||(o.init_ClassHandle=function(){ye("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle")||(o.ClassHandle=function(){ye("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_isAliasOf")||(o.ClassHandle_isAliasOf=function(){ye("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwInstanceAlreadyDeleted")||(o.throwInstanceAlreadyDeleted=function(){ye("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_clone")||(o.ClassHandle_clone=function(){ye("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_delete")||(o.ClassHandle_delete=function(){ye("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"deletionQueue")||(o.deletionQueue=function(){ye("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_isDeleted")||(o.ClassHandle_isDeleted=function(){ye("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_deleteLater")||(o.ClassHandle_deleteLater=function(){ye("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"flushPendingDeletes")||(o.flushPendingDeletes=function(){ye("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"delayFunction")||(o.delayFunction=function(){ye("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setDelayFunction")||(o.setDelayFunction=function(){ye("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredClass")||(o.RegisteredClass=function(){ye("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"shallowCopyInternalPointer")||(o.shallowCopyInternalPointer=function(){ye("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"downcastPointer")||(o.downcastPointer=function(){ye("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"upcastPointer")||(o.upcastPointer=function(){ye("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"validateThis")||(o.validateThis=function(){ye("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"char_0")||(o.char_0=function(){ye("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"char_9")||(o.char_9=function(){ye("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"makeLegalFunctionName")||(o.makeLegalFunctionName=function(){ye("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetIndexed")||(o.emscriptenWebGLGetIndexed=function(){ye("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"warnOnce")||(o.warnOnce=function(){ye("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackSave")||(o.stackSave=function(){ye("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackRestore")||(o.stackRestore=function(){ye("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackAlloc")||(o.stackAlloc=function(){ye("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"AsciiToString")||(o.AsciiToString=function(){ye("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToAscii")||(o.stringToAscii=function(){ye("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF16ToString")||(o.UTF16ToString=function(){ye("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF16")||(o.stringToUTF16=function(){ye("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"lengthBytesUTF16")||(o.lengthBytesUTF16=function(){ye("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF32ToString")||(o.UTF32ToString=function(){ye("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF32")||(o.stringToUTF32=function(){ye("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"lengthBytesUTF32")||(o.lengthBytesUTF32=function(){ye("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"allocateUTF8")||(o.allocateUTF8=function(){ye("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"allocateUTF8OnStack")||(o.allocateUTF8OnStack=function(){ye("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.writeStackCookie=oe,o.checkStackCookie=ie,Object.getOwnPropertyDescriptor(o,"ALLOC_NORMAL")||Object.defineProperty(o,"ALLOC_NORMAL",{configurable:!0,get:function(){ye("'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(){ye("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),he=function e(){un||Tn(),un||(he=e)},o.run=Tn,o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return Tn(),t.ready}}(),selfie_segmentation_solution_wasm_bin_default=createMediapipeSolutionsWasm2,Module=(()=>{var e="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var r,n,o=t;o.ready=new Promise(((e,t)=>{r=e,n=t}));var i,a=Object.assign({},o),s="";"undefined"!=typeof document&&document.currentScript&&(s=document.currentScript.src),e&&(s=e),s=0!==s.indexOf("blob:")?s.substr(0,s.replace(/[?#].*/,"").lastIndexOf("/")+1):"";var c,A,u=o.print||console.log.bind(console),l=o.printErr||console.error.bind(console);function d(e){if(M(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(o,a),a=null,o.arguments&&o.arguments,o.thisProgram&&o.thisProgram,o.quit&&o.quit,o.wasmBinary&&(c=o.wasmBinary),"object"!=typeof WebAssembly&&T("no native wasm support detected");var g,f,h,p,E,m,I,y,_=!1;var w=[],C=[],b=[];var B=0,D=null,O=null;function T(e){o.onAbort&&o.onAbort(e),l(e="Aborted("+e+")"),_=!0,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw n(t),t}var v,Q,P="data:application/octet-stream;base64,",M=e=>e.startsWith(P);function R(e){return Promise.resolve().then((()=>function(e){if(e==v&&c)return new Uint8Array(c);var t=d(e);if(t)return t;if(i)return i(e);throw"both async and sync fetching of the wasm failed"}(e)))}function S(e,t,r,n){return function(e,t,r){return R(e).then((e=>WebAssembly.instantiate(e,t))).then((e=>e)).then(r,(e=>{l(`failed to asynchronously prepare wasm: ${e}`),T(e)}))}(t,r,n)}M(v="data:application/octet-stream;base64,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IAEoAgA2AgAgAiABKAIENgIEIAIgASgCCDYCCCACIAEoAgw2AgwgAiABKAIQNgIQIAIgASgCFDYCFCACIAEoAhg2AhggAiABKAIcNgIcIAIgASgCIDYCICACIAEoAiQ2AiQgAiABKAIoNgIoIAIgASgCLDYCLCACIAEoAjA2AjAgAiABKAI0NgI0IAIgASgCODYCOCACIAEoAjw2AjwgAUFAayEBIAJBQGsiAiAFTQ0ACwsgAiAETw0BA0AgAiABKAIANgIAIAFBBGohASACQQRqIgIgBEkNAAsMAQsgA0EESQRAIAAhAgwBCyAAIANBBGsiBEsEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAIgAS0AAToAASACIAEtAAI6AAIgAiABLQADOgADIAFBBGohASACQQRqIgIgBE0NAAsLIAIgA0kEQANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIANHDQALCyAACwsAIAEgAiAAEEIaCxIAIAFBAXRBsMoAakECIAAQQgv5AQEEfwJ/IAEQKiECIwBBEGsiBSQAAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0AC0H/AHELIgRBAE8EQAJAIAIgAC0AC0EHdgR/IAAoAghB/////wdxQQFrBUEKCyIDIARrTQRAIAJFDQECfyAALQALQQd2BEAgACgCAAwBCyAACyIDIAQEfyACIANqIAMgBBBFIAEgAkEAIAMgBGogAUsbQQAgASADTxtqBSABCyACEEUgACACIARqIgEQMSAFQQA6AA8gASADaiAFLQAPOgAADAELIAAgAyACIARqIANrIARBACACIAEQRAsgBUEQaiQAIAAMAQsQJwALC/ICAgJ/AX4CQCACRQ0AIAAgAToAACAAIAJqIgNBAWsgAToAACACQQNJDQAgACABOgACIAAgAToAASADQQNrIAE6AAAgA0ECayABOgAAIAJBB0kNACAAIAE6AAMgA0EEayABOgAAIAJBCUkNACAAQQAgAGtBA3EiBGoiAyABQf8BcUGBgoQIbCIBNgIAIAMgAiAEa0F8cSIEaiICQQRrIAE2AgAgBEEJSQ0AIAMgATYCCCADIAE2AgQgAkEIayABNgIAIAJBDGsgATYCACAEQRlJDQAgAyABNgIYIAMgATYCFCADIAE2AhAgAyABNgIMIAJBEGsgATYCACACQRRr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ACACQQA6AA8DQCABBEAgACACLQAPOgAAIAFBAWshASAAQQFqIQAMAQsLIAJBEGokAAsaACAALQALQQd2BEAgACgCCBogACgCABAZCwvmAQEFfyMAQRBrIgUkACMAQSBrIgMkACMAQRBrIgQkACAEIAA2AgwgBCAAIAFqNgIIIAMgBCgCDDYCGCADIAQoAgg2AhwgBEEQaiQAIAMoAhghBCADKAIcIQYjAEEQayIBJAAgASAGNgIMIAIgBCAGIARrIgQQQyABIAIgBGo2AgggAyABKAIMNgIQIAMgASgCCDYCFCABQRBqJAAgAyAAIAMoAhAgAGtqNgIMIAMgAiADKAIUIAJrajYCCCAFIAMoAgw2AgggBSADKAIINgIMIANBIGokACAFKAIMIQcgBUEQaiQAIAcLDwAgAgRAIAAgASACEDILC/UCAQV/IwBBEGsiByQAIAIgAUF/c0Hv////B2pNBEACfyAALQALQQd2BEAgACgCAAwBCyAACyEIIAdBBGoiCSAAIAFB5////wNJBH8gByABQQF0NgIMIAcgASACajYCBCMAQRBrIgIkACAJKAIAIAdBDGoiCigCAEkhCyACQRBqJAAgCiAJIAsbKAIAIgJBC08EfyACQRBqQXBxIgIgAkEBayICIAJBC0YbBUEKC0EBagVB7////wcLEDAgBygCBCECIAcoAggaIAQEQCACIAggBBAjCyAFBEAgAiAEaiAGIAUQIwsgAyAEayEGIAMgBEcEQCACIARqIAVqIAQgCGogBhAjCyABQQpHBEAgCBAZCyAAIAI2AgAgACAAKAIIQYCAgIB4cSAHKAIIQf////8HcXI2AgggACAAKAIIQYCAgIB4cjYCCCAAIAQgBWogBmoiADYCBCAHQQA6AAwgACACaiAHLQAMOgAAIAdBEGokAA8LECcACwoAIAAgASACEEMLuQEBBH8jAEEQayIEJAAgBCACNgIMIwBBoAFrIgMkACADIAAgA0GeAWogARsiBjYClAFBfyEFIAMgAUEBayIAQQAgACABTRs2ApgBIANBAEGQARAmIgBBfzYCTCAAQSA2AiQgAEF/NgJQIAAgAEGfAWo2AiwgACAAQZQBajYCVAJAIAFBAEgEQEGo3gBBPTYCAAwBCyAGQQA6AAAgAEH9CiACQR8QTSEFCyAAQaABaiQAIARBEGokACAFCwQA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KAIARQ0AIAIgBCgCGDYCAAsgAEEBRiEFDAELQQAhBQsgBEFAayQAIAULMQAgACABKAIIQQAQHgRAIAEgAiADED0PCyAAKAIIIgAgASACIAMgACgCACgCHBEGAAsYACAAIAEoAghBABAeBEAgASACIAMQPQsLnQEBAn8jAEFAaiIDJAACf0EBIAAgAUEAEB4NABpBACABRQ0AGkEAIAFBzMwAECAiAUUNABogA0EMakEAQTQQJhogA0EBNgI4IANBfzYCFCADIAA2AhAgAyABNgIIIAEgA0EIaiACKAIAQQEgASgCACgCHBEGACADKAIgIgBBAUYEQCACIAMoAhg2AgALIABBAUYLIQQgA0FAayQAIAQLCgAgACABQQAQHgtOAgF/AXwjAEEQayICJAAgAkEANgIMIAEoAgRBlM8AIAJBDGoQCSEDIAIoAgwiAQRAIAEQAQsgACADRAAAAAAAAAAAYjoAOCACQRBqJAALNwEBfyMAQRBrIgIkACACIAEtADg2AgggAEGUzwAgAkEIahAHNgIEIABBlNUANgIAIAJBEGokAAuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECIaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECIaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACC5wBAQJ/IwBBEGsiAiQAQcgAEBwhASAAKAIEIgAQAiACIAA2AgggAUGELSACQQhqEAc2AgQgAUGU1QA2AgAgAUEBNgIcIAFBlNUANgIYIAFBATYCFCABQZTVADYCECABQQE2AgwgAUGU1QA2AgggAUEAOgAgIAFBADYCRCABQoCAgIAwNwI8IAFBADsANyABQQA7ACsgAkEQaiQAIAELigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBSMAQSBrIgAkAAJAIAVC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBUIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBUIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIBQZH3AEkNACADIQIgBUL///////8/g0KAgICAgIDAAIQiBCEGAkAgAUGB9wBrIghBwABxBEAgAyAIQUBqrYYhBkIAIQIMAQsgCEUNACAGIAitIgeGIAJBwAAgCGutiIQhBiACIAeGIQILIAAgAjcDECAAIAY3AxgCQEGB+AAgAWsiAUHAAHEEQCAEIAFBQGqtiCEDQgAhBAwBCyABRQ0AIARBwAAgAWuthiADIAGtIgKIhCEDIAQgAoghBAsgACADNwMAIAAgBDcDCCAAKQMIQgSGIAApAwAiA0I8iIQhAiAAKQMQIAApAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIABBIGokACAJIAIgBUKAgICAgICAgIB/g4S/OQMAC0ABAn8jAEEQayICJAAgAiABNgIMIAJBlNUANgIIIAJBCGogABEBACEDIAIoAgwiAQRAIAEQAwsgAkEQaiQAIAMLBABCAAsEAEEAC/YCAQh/IwBBIGsiAyQAIAMgACgCHCIENgIQIAAoAhQhBSADIAI2AhwgAyABNgIYIAMgBSAEayIBNgIUIAEgAmohBUECIQcCfwJAAkACQCAAKAI8IANBEGoiAUECIANBDGoQDSIEBH9BqN4AIAQ2AgBBfwVBAAsEQCABIQQMAQsDQCAFIAMoAgwiBkYNAiAGQQBIBEAgASEEDAQLIAEgBiABKAIEIghLIglBA3RqIgQgBiAIQQAgCRtrIgggBCgCAGo2AgAgAUEMQQQgCRtqIgEgASgCACAIazYCACAFIAZrIQUgACgCPCAEIgEgByAJayIHIANBDGoQDSIGBH9BqN4AIAY2AgBBfwVBAAtFDQALCyAFQX9HDQELIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhAgAgwBCyAAQQA2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EGokAAsiAQF+IAEgAq0gA61CIIaEIAQgABEMACIFQiCIpyQBIAWnCzcBAX8jAEEQayICJAAgAiABKAI8NgIIIABB3M8AIAJBCGoQBzYCBCAAQZTVADYCACACQRBqJAALC61KFgBBgAgLlCVzZXRCZWF1dHkALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweAB1bnNpZ25lZCBzaG9ydAB1bnNpZ25lZCBpbnQAaW5pdABmbG9hdAB1aW50NjRfdABibHVyUmFkaXVzAHZlY3RvcgBtaXJyb3IAYXR0YWNoU2hhZGVyAGRlbGV0ZVNoYWRlcgBjcmVhdGVTaGFkZXIAY29tcGlsZVNoYWRlcgB1bnNpZ25lZCBjaGFyAHN0ZDo6ZXhjZXB0aW9uAHJvdGF0aW9uAG5hbgBsaW5rUHJvZ3JhbQBkZWxldGVQcm9ncmFtAGNyZWF0ZVByb2dyYW0AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0V2F0ZXJNYXJrAHN0b3BXYXRlck1hcmsAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgAlZgBjbG9zZQBkb3VibGUAdmJNb2RlAHNoYWRlclNvdXJjZQB2b2lkAHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sATkFOAElORgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxmbG9hdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgB2ZWMyIGMgPSB2X3RleENvb3JkOwB2ZWMyIGMgPSB2ZWMyKDEuMCAtIHZfdGV4Q29vcmQueCwgdl90ZXhDb29yZC55KTsAYyA9IHZlYzIoMS4wIC0gYy54LCAxLjAgLSBjLnkpOwBjID0gdmVjMihjLnksIDEuMCAtIGMueCk7AGMgPSB2ZWMyKDEuMCAtIGMueSwgYy54KTsAQWxsSW4xAC4ALjAsAC4wKSpvKSoAKG51bGwpACkqby55KTsgICAgdmVjMiBjb29yZDIgPSB2ZWMyKGZsb2F0KAAgICAgYyA9IHZlYzIodl90ZXhDb29yZC54LCAxLjAgLSB2X3RleENvb3JkLnkpOyAgICB2ZWMyIGNvb3JkMSA9IHZlYzIoZmxvYXQoACksIChjLnkgLWNvb3JkMS55KSAvIG8ueSAvIGZsb2F0KAApKm8ueSk7ICAgIGlmIChjLnggPiBjb29yZDEueCAmJiBjLnggPCBjb29yZDIueCAmJiBjLnkgPiBjb29yZDEueSAmJiBjLnkgPCBjb29yZDIueSkgeyAgICAgIHZlYzQgd2F0ZXJDb2xvciA9IHRleHR1cmUod2F0ZXJNYXJrLCB2ZWMyKChjLnggLSBjb29yZDEueCkgIC8gby54IC8gZmxvYXQoACkgKiBvLngsIGZsb2F0KABvdXRDb2xvci5yZ2IgKz0gdmVjMygAKTsgICAgICAgdmVjMyBzbW9vdGhDb2xvciA9IG91dENvbG9yLnJnYiArIChvdXRDb2xvci5yZ2ItdmVjMyhoaWdoUGFzcykpKmFscGhhKjAuMTsgICAgICAgc21vb3RoQ29sb3IgPSBjbGFtcChwb3coc21vb3RoQ29sb3IsIHZlYzMoAGcrPUcoYyx2ZWMyKAAgICAgICB2ZWMyIG9mZnNldCA9IHZlYzIoAF0gPSB2X3RleENvb3JkLnh5ICsgb2Zmc2V0ICogdmVjMigAOyAAKSksIHZlYzMoMC4wKSwgdmVjMygxLjApKTsgICAgICB2ZWMzIHNjcmVlbiA9IHZlYzMoMS4wKSAtICh2ZWMzKDEuMCktc21vb3RoQ29sb3IpICogKHZlYzMoMS4wKS1vdXRDb2xvci5yZ2IpOyAgICAgICB2ZWMzIGxpZ2h0ZW4gPSBtYXgoc21vb3RoQ29sb3IsIG91dENvbG9yLnJnYik7ICAgICAgIHZlYzMgYmVhdXR5Q29sb3IgPSBtaXgobWl4KG91dENvbG9yLnJnYiwgc2NyZWVuLCBhbHBoYSksIGxpZ2h0ZW4sIGFscGhhKTsgICAgICBvdXRDb2xvci5yZ2IgPSBtaXgob3V0Q29sb3IucmdiLCBiZWF1dHlDb2xvciwgAAogICAgICBjb25zdCBtYXQzIHNhdHVyYXRlTWF0cml4ID0gbWF0MygxLjExMDIsLTAuMDU5OCwtMC4wNjEsLTAuMDc3NCwxLjA4MjYsLTAuMTE4NiwtMC4wMjI4LC0wLjAyMjgsMS4xNzcyKTsKICAgICAgdmVjMyB3YXJtQ29sb3IgPSBvdXRDb2xvci5yZ2IgKiBzYXR1cmF0ZU1hdHJpeDsKICAgICAgb3V0Q29sb3IucmdiID0gbWl4KG91dENvbG9yLnJnYiwgd2FybUNvbG9yLCAAICAgICAgc2FtcGxlQ29sb3IgPSBzYW1wbGVDb2xvciAvIDYyLjA7ICAgICAgIGZsb2F0IGhpZ2hQYXNzID0gb3V0Q29sb3IuZyAtIHNhbXBsZUNvbG9yICsgMC41OyAgICAgICBjb25zdCBoaWdocCB2ZWMzIFcgPSB2ZWMzKDAuMjk5LDAuNTg3LDAuMTE0KTsgICAgICBmbG9hdCBsdW1pbmFuY2UgPSBkb3Qob3V0Q29sb3IucmdiLCBXKTsgICAgICAgZmxvYXQgYWxwaGEgPSBwb3cobHVtaW5hbmNlLCAAXSkuZyAqIAApKSk7ICAgICAgb3V0Q29sb3IgPSBtaXgob3V0Q29sb3Isd2F0ZXJDb2xvciwgIHdhdGVyQ29sb3IuYSk7ICAgIH0gICAgACk7ICAgIAApOyAgICAgIHZlYzIgYmx1ckNvb3JkaW5hdGVzWzI0XTsgICAgICAAICAgICAgZmxvYXQgc2FtcGxlQ29sb3IgPSBvdXRDb2xvci5nICogMjIuMDsgICAgICAgACN2ZXJzaW9uIDMwMCBlcwogICAgcHJlY2lzaW9uIGhpZ2hwIGZsb2F0OwogICAgdW5pZm9ybSBzYW1wbGVyMkQgZnJhbWU7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBtYXNrOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgYmc7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCB3YXRlck1hcms7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBsYXN0TWFzazsKICAgIHVuaWZvcm0gbWF0NCB1X29mZnNldE1hdHJpeDsKICAgIGluIHZlYzIgdl90ZXhDb29yZDsKICAgIG91dCB2ZWM0IG91dENvbG9yOwogICAgdmVjNCBHKHZlYzIgYyx2ZWMyIHMpewogICAgICByZXR1cm4gdGV4dHVyZShmcmFtZSx0ZXh0dXJlKG1hc2ssYytzKS5hPjAuMz9jOmMrcyk7CiAgICB9CiAgICB2b2lkIG1haW4oKSB7CiAgICAgIAAKICAgICAgdmVjMiBvZmZzZXRNYXNrVVYgPSAodV9vZmZzZXRNYXRyaXggKiB2ZWM0KGMsIDAsIDEpKS54eTsKICAgICAgZmxvYXQgaXNJbnNpZGVYID0gKG9mZnNldE1hc2tVVi54ID49IDAuMCkgJiYgKG9mZnNldE1hc2tVVi54IDw9IDEuMCkgPyAxLjAgOiAwLjA7CiAgICAgIGZsb2F0IGlzSW5zaWRlWSA9IChvZmZzZXRNYXNrVVYueSA+PSAwLjApICYmIChvZmZzZXRNYXNrVVYueSA8PSAxLjApID8gMS4wIDogMC4wOwogICAgICBmbG9hdCBpc0luc2lkZSA9IGlzSW5zaWRlWCAqIGlzSW5zaWRlWTsKICAgICAgZmxvYXQgbWFza2VkQWxwaGEgPSB0ZXh0dXJlKG1hc2ssIG9mZnNldE1hc2tVVikuYSAqIGlzSW5zaWRlOwogICAgICBtYXNrZWRBbHBoYSA9IG1hc2tlZEFscGhhPDAuNT8yLjAqbWFza2VkQWxwaGEqbWFza2VkQWxwaGE6MS4wLTIuMCooMS4wLW1hc2tlZEFscGhhKSooMS4wLW1hc2tlZEFscGhhKTsKICAgICAgc3JjX2NvbG9yID0gdGV4dHVyZShmcmFtZSwgb2Zmc2V0TWFza1VWICwgaXNJbnNpZGUpOwogICAgICBvdXRDb2xvciA9IG1peCh0ZXh0dXJlKGJnLCBjKSwgc3JjX2NvbG9yLCBtYXNrZWRBbHBoYSk7CiAgICAACiAgICB2ZWM0IGcgPSB2ZWM0KDAuMCk7CiAgICAACiAgICAgIGMueSA9IDEuMCAtIGMueTsKICAgICAgdmVjNCBzcmNfY29sb3IgPSB0ZXh0dXJlKGZyYW1lLCBjKTsKICAgICAgZmxvYXQgYSA9IHRleHR1cmUobWFzaywgYykuYTsKICAgICAgYSA9IGE8MC41PzIuMCphKmE6MS4wLTIuMCooMS4wLWEpKigxLjAtYSk7CiAgICAgIC8vIGZsb2F0IGEyID0gdGV4dHVyZShsYXN0TWFzaywgYykuYTsKICAgICAgLy8gYTIgPSBhMjwwLjU/Mi4wKmEyKmEyOjEuMC0yLjAqKDEuMC1hMikqKDEuMC1hMik7CiAgICAgIC8vIGZsb2F0IGRlbHRhID0gYSAtIGEyOwogICAgICAvLyBpZiAoZGVsdGEgPCAwLjI1ICYmIGRlbHRhID4gLTAuMjUpCiAgICAgIC8vIHsKICAgICAgLy8gICAgIGEgPSBhICsgMC41KmRlbHRhOwogICAgICAvLyB9CiAgICAgIAogICAgICB2ZWMyIG8gPSAxLjAgLyB2ZWMyKHRleHR1cmVTaXplKGZyYW1lLCAwKSk7CiAgICAACiAgICAgIG91dENvbG9yID0gZzsKICAAI3ZlcnNpb24gMzAwIGVzCmluIHZlYzIgYV9wb3NpdGlvbjsKaW4gdmVjMiBhX3RleENvb3JkOwoKdW5pZm9ybSBtYXQ0IHVfdGV4dHVyZU1hdHJpeDsKCm91dCB2ZWMyIHZfdGV4Q29vcmQ7CnZvaWQgbWFpbigpIHsKICBnbF9Qb3NpdGlvbiA9IHZlYzQoYV9wb3NpdGlvbi54LCBhX3Bvc2l0aW9uLnksIDAsIDEpOwogIHZfdGV4Q29vcmQgPSh1X3RleHR1cmVNYXRyaXggKiB2ZWM0KGFfdGV4Q29vcmQsIDAsIDEpKS54eTsKfQoAc2V0QmVhdXR5ICVmICVmICVmICVmICVmCgBvdXRDb2xvciA9IHNyY19jb2xvcjsKAG91dENvbG9yID0gbWl4KHZlYzQoMC4wLDEuMCwwLjAsMS4wKSxzcmNfY29sb3IsYSk7CgA2QWxsSW4xAEAoAAAYFgAAUDZBbGxJbjEAAAAAxCgAACgWAAAAAAAAIBYAAFBLNkFsbEluMQAAAMQoAABEFgAAAQAAACAWAABpaQB2AHZpADQWAACEFgAATjEwZW1zY3JpcHRlbjN2YWxFAABAKAAAcBYAAGlpaQB2aWlpAEGgLQskfCcAADQWAAAwKAAAMCgAADAoAAAwKAAAMCgAAHZpaWRkZGRkAEHQLQvICHwnAAA0FgAAMCgAADAoAAAwKAAAMCgAAHZpaWRkZGQAfCcAADQWAAB2aWkAfCcAAIQWAACEFgAANBYAAIQWAADcJwAAfCcAAIQWAABgFwAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAAEAoAAAgFwAAhBYAAHwnAACEFgAAhBYAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0loTlNfMTFjaGFyX3RyYWl0c0loRUVOU185YWxsb2NhdG9ySWhFRUVFAABAKAAAeBcAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVOU185YWxsb2NhdG9ySXdFRUVFAABAKAAAwBcAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEc05TXzExY2hhcl90cmFpdHNJRHNFRU5TXzlhbGxvY2F0b3JJRHNFRUVFAAAAQCgAAAgYAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRGlOU18xMWNoYXJfdHJhaXRzSURpRUVOU185YWxsb2NhdG9ySURpRUVFRQAAAEAoAABUGAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3Zp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")||(Q=v,v=o.locateFile?o.locateFile(Q,s):s+Q);var F=e=>{for(;e.length>0;)e.shift()(o)};o.noExitRuntime;function x(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(e){m[this.ptr+4>>2]=e},this.get_type=function(){return m[this.ptr+4>>2]},this.set_destructor=function(e){m[this.ptr+8>>2]=e},this.get_destructor=function(){return m[this.ptr+8>>2]},this.set_caught=function(e){e=e?1:0,g[this.ptr+12|0]=e},this.get_caught=function(){return 0!=g[this.ptr+12|0]},this.set_rethrown=function(e){e=e?1:0,g[this.ptr+13|0]=e},this.get_rethrown=function(){return 0!=g[this.ptr+13|0]},this.init=function(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t)},this.set_adjusted_ptr=function(e){m[this.ptr+16>>2]=e},this.get_adjusted_ptr=function(){return m[this.ptr+16>>2]},this.get_exception_ptr=function(){if(gt(this.get_type()))return m[this.excPtr>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}var k,N,U,j=e=>{for(var t="",r=e;f[r];)t+=k[f[r++]];return t},L={},H={},G={},Y=e=>{throw new N(e)},X=e=>{throw new U(e)},W=(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)V(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 V(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,Z=e=>{},J=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]),ce=(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},ue(Object.create(e,{$$:{value:t}})));function Ae(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?ce(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):ce(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 c=q(t,this.registeredClass,i.registeredClass);return null===c?o.call(this):this.isSmartPointer?ce(i.registeredClass.instancePrototype,{ptrType:i,ptr:c,smartPtrType:this,smartPtr:e}):ce(i.registeredClass.instancePrototype,{ptrType:i,ptr:c})}var ue=e=>"undefined"==typeof FinalizationRegistry?(ue=e=>e,e):(K=new FinalizationRegistry((e=>{J(e.$$)})),Z=e=>K.unregister(e),(ue=e=>{var t=e.$$;if(!!t.smartPtr){var r={$$:t};K.register(e,r,e)}return e})(e));function le(){}var de=(e,t)=>Object.defineProperty(t,"name",{value:e}),ge=(e,t,r)=>{if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||Y(`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 fe(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 he=(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 he(t.$$.ptr,r,this.registeredClass)}function Ee(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.$$||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=he(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,ke.toHandle((()=>o.delete()))),null!==e&&e.push(this.rawDestructor,r)}break;default:Y("Unsupporting sharing policy")}return r}function me(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 he(t.$$.ptr,r,this.registeredClass)}function Ie(e){return this.fromWireType(m[e>>2])}function ye(e,t,r,n,o,i,a,s,c,A,u){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=c,this.rawShare=A,this.rawDestructor=u,o||void 0!==t.baseClass?this.toWireType=Ee:n?(this.toWireType=pe,this.destructorFunction=null):(this.toWireType=me,this.destructorFunction=null)}var _e,we,Ce=[],be=e=>{var t=Ce[e];return t||(e>=Ce.length&&(Ce.length=e+1),Ce[e]=t=_e.get(e)),t},Be=(e,t,r)=>e.includes("j")?((e,t,r)=>{var n=o["dynCall_"+e];return r&&r.length?n.apply(null,[t].concat(r)):n.call(null,t)})(e,t,r):be(t).apply(null,r),De=(e,t)=>{var r,n,o,i=(e=j(e)).includes("j")?(r=e,n=t,o=[],function(){return o.length=0,Object.assign(o,arguments),Be(r,n,o)}):be(t);return"function"!=typeof i&&Y(`unknown function pointer with signature ${e}: ${t}`),i},Oe=e=>{var t=lt(e),r=j(t);return dt(t),r},Te=(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 we(`${e}: `+r.map(Oe).join([", "]))},ve=(e,t)=>{for(var r=[],n=0;n<e;n++)r.push(m[t+4*n>>2]);return r},Qe=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!");for(var s=null!==t[1]&&null!==r,c=!1,A=1;A<t.length;++A)if(null!==t[A]&&void 0===t[A].destructorFunction){c=!0;break}var u="void"!==t[0].name,l=a-2,d=new Array(l),g=[],f=[];return de(e,(function(){var r;arguments.length!==l&&Y(`function ${e} called with ${arguments.length} arguments, expected ${l}`),f.length=0,g.length=s?2:1,g[0]=o,s&&(r=t[1].toWireType(f,this),g[1]=r);for(var i=0;i<l;++i)d[i]=t[i+2].toWireType(f,arguments[i]),g.push(d[i]);return function(e){if(c)Qe(f);else for(var n=s?1:2;n<t.length;n++){var o=1===n?r:d[n-2];null!==t[n].destructorFunction&&t[n].destructorFunction(o)}if(u)return t[0].fromWireType(e)}(n.apply(null,g))}))}var Me=(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`),he(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass));function Re(){this.allocated=[void 0],this.freelist=[]}var Se=new Re,Fe=e=>{e>=Se.reserved&&0==--Se.get(e).refcount&&Se.free(e)},xe=()=>{for(var e=0,t=Se.reserved;t<Se.allocated.length;++t)void 0!==Se.allocated[t]&&++e;return e},ke={toValue:e=>(e||Y("Cannot use deleted val. handle = "+e),Se.get(e).value),toHandle:e=>{switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return Se.allocate({refcount:1,value:e})}}};function Ne(e){return this.fromWireType(E[e>>2])}var Ue,je,Le,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(I[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=>g[e|0]:e=>f[e|0];case 2:return r?e=>h[e>>1]:e=>p[e>>1];case 4:return r?e=>E[e>>2]:e=>m[e>>2];default:throw new TypeError(`invalid integer width (${t}): ${e}`)}},Xe="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,We=(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 c=63&e[t++];if((a=224==(240&a)?(15&a)<<12|s<<6|c:(7&a)<<18|s<<12|c<<6|63&e[t++])<65536)i+=String.fromCharCode(a);else{var A=a-65536;i+=String.fromCharCode(55296|A>>10,56320|1023&A)}}else i+=String.fromCharCode((31&a)<<6|s)}else i+=String.fromCharCode(a)}return i},Ve=(e,t)=>e?We(f,e,t):"",ze="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,$e=(e,t)=>{for(var r=e,n=r>>1,o=n+t/2;!(n>=o)&&p[n];)++n;if((r=n<<1)-e>32&&ze)return ze.decode(f.subarray(e,r));for(var i="",a=0;!(a>=t/2);++a){var s=h[e+2*a>>1];if(0==s)break;i+=String.fromCharCode(s)}return i},Ke=(e,t,r)=>{if(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);h[t>>1]=a,t+=2}return h[t>>1]=0,t-n},Ze=e=>2*e.length,Je=(e,t)=>{for(var r=0,n="";!(r>=t/4);){var o=E[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},qe=(e,t,r)=>{if(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(E[t>>2]=a,(t+=4)+4>o)break}return E[t>>2]=0,t-n},et=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},tt=(e,t)=>{var r=H[e];return void 0===r&&Y(t+" has unknown type "+Oe(e)),r},rt=(e,t,r)=>{var n=[],o=e.toWireType(n,r);return n.length&&(m[t>>2]=ke.toHandle(n)),o},nt={},ot=[],it=Reflect.construct,at=[null,[],[]];(()=>{for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);k=e})(),N=o.BindingError=class extends Error{constructor(e){super(e),this.name="BindingError"}},U=o.InternalError=class extends Error{constructor(e){super(e),this.name="InternalError"}},Object.assign(le.prototype,{isAliasOf(e){if(!(this instanceof le))return!1;if(!(e instanceof le))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=ue(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"),Z(this),J(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}}),o.getInheritedInstanceCount=te,o.getLiveInheritedInstances=re,o.flushPendingDeletes=oe,o.setDelayFunction=ie,Object.assign(ye.prototype,{getPointee(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},destructor(e){this.rawDestructor&&this.rawDestructor(e)},argPackAdvance:8,readValueFromPointer:Ie,deleteObject(e){null!==e&&e.delete()},fromWireType:Ae}),we=o.UnboundTypeError=(Ue=Error,(Le=de(je="UnboundTypeError",(function(e){this.name=je,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(Ue.prototype),Le.prototype.constructor=Le,Le.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`},Le),Object.assign(Re.prototype,{get(e){return this.allocated[e]},has(e){return void 0!==this.allocated[e]},allocate(e){var t=this.freelist.pop()||this.allocated.length;return this.allocated[t]=e,t},free(e){this.allocated[e]=void 0,this.freelist.push(e)}}),Se.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Se.reserved=Se.allocated.length,o.count_emval_handles=xe;var st,ct={w:(e,t,r)=>{throw new x(e).init(t,r),e},q:(e,t,r,n,o)=>{},u:(e,t,r,n)=>{V(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,i,a,s,c,A,u,l,d,g)=>{l=j(l),a=De(i,a),c&&(c=De(s,c)),u&&(u=De(A,u)),g=De(d,g);var f=(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})(l);((e,t,r)=>{o.hasOwnProperty(e)?((void 0===r||void 0!==o[e].overloadTable&&void 0!==o[e].overloadTable[r])&&Y(`Cannot register public name '${e}' twice`),ge(o,e,e),o.hasOwnProperty(r)&&Y(`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))})(f,(function(){Te(`Cannot construct ${l} due to unbound types`,[n])})),W([e,t,r],n?[n]:[],(function(t){var r,i;t=t[0],i=n?(r=t.registeredClass).instancePrototype:le.prototype;var s=de(l,(function(){if(Object.getPrototypeOf(this)!==A)throw new N("Use 'new' to construct "+l);if(void 0===d.constructor_body)throw new N(l+" has no accessible constructor");var e=d.constructor_body[arguments.length];if(void 0===e)throw new N(`Tried to invoke ctor of ${l} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(d.constructor_body).toString()}) parameters instead!`);return e.apply(this,arguments)})),A=Object.create(i,{constructor:{value:s}});s.prototype=A;var d=new fe(l,s,A,g,r,a,c,u);d.baseClass&&(void 0===d.baseClass.__derivedClasses&&(d.baseClass.__derivedClasses=[]),d.baseClass.__derivedClasses.push(d));var h=new ye(l,d,!0,!1,!1),p=new ye(l+"*",d,!1,!1,!1),E=new ye(l+" const*",d,!1,!0,!1);return ee[e]={pointerType:p,constPointerType:E},((e,t,r)=>{o.hasOwnProperty(e)||X("Replacing nonexistant public symbol"),void 0!==o[e].overloadTable&&void 0!==r?o[e].overloadTable[r]=t:(o[e]=t,o[e].argCount=r)})(f,s),[h,p,E]}))},x:(e,t,r,n,o,i)=>{var a=ve(t,r);o=De(n,o),W([],[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 N(`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]=()=>{Te(`Cannot construct ${e.name} due to unbound types`,a)},W([],a,(n=>(n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=Pe(r,n,null,o,i),[]))),[]}))},i:(e,t,r,n,o,i,a,s,c)=>{var A=ve(r,n);t=(e=>{const t=(e=e.trim()).indexOf("(");return-1!==t?e.substr(0,t):e})(t=j(t)),i=De(o,i),W([],[e],(function(e){var n=`${(e=e[0]).name}.${t}`;function o(){Te(`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,u=c[t];return void 0===u||void 0===u.overloadTable&&u.className!==e.name&&u.argCount===r-2?(o.argCount=r-2,o.className=e.name,c[t]=o):(ge(c,t,n),c[t].overloadTable[r-2]=o),W([],A,(function(o){var s=Pe(n,o,e,i,a);return void 0===c[t].overloadTable?(s.argCount=r-2,c[t]=s):c[t].overloadTable[r-2]=s,[]})),[]}))},k:(e,t,r,n,o,i,a,s,c,A)=>{t=j(t),o=De(n,o),W([],[e],(function(e){var n=`${(e=e[0]).name}.${t}`,u={get(){Te(`Cannot access ${n} due to unbound types`,[r,a])},enumerable:!0,configurable:!0};return u.set=c?()=>Te(`Cannot access ${n} due to unbound types`,[r,a]):e=>Y(n+" is a read-only property"),Object.defineProperty(e.registeredClass.instancePrototype,t,u),W([],c?[r,a]:[r],(function(r){var a=r[0],u={get(){var t=Me(this,e,n+" getter");return a.fromWireType(o(i,t))},enumerable:!0};if(c){c=De(s,c);var l=r[1];u.set=function(t){var r=Me(this,e,n+" setter"),o=[];c(A,r,l.toWireType(o,t)),Qe(o)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]})),[]}))},t:(e,t)=>{V(e,{name:t=j(t),fromWireType:e=>{var t=ke.toValue(e);return Fe(e),t},toWireType:(e,t)=>ke.toHandle(t),argPackAdvance:8,readValueFromPointer:Ne,destructorFunction:null})},p:(e,t,r)=>{V(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");V(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(g.buffer,r,t)}V(e,{name:r=j(r),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},o:(e,t)=>{var r="std::string"===(t=j(t));V(e,{name:t,fromWireType(e){var t,n=m[e>>2],o=e+4;if(r)for(var i=o,a=0;a<=n;++a){var s=o+a;if(a==n||0==f[s]){var c=Ve(i,s-i);void 0===t?t=c:(t+=String.fromCharCode(0),t+=c),i=s+1}}else{var A=new Array(n);for(a=0;a<n;++a)A[a]=String.fromCharCode(f[o+a]);t=A.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=ut(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 c=t.charCodeAt(s);c>255&&(dt(a),Y("String has UTF-16 code units that do not fit in 8 bits")),f[a+s]=c}else for(s=0;s<n;++s)f[a+s]=t[s];return null!==e&&e.push(dt,i),i},argPackAdvance:8,readValueFromPointer:Ie,destructorFunction(e){dt(e)}})},l:(e,t,r)=>{var n,o,i,a,s;r=j(r),2===t?(n=$e,o=Ke,a=Ze,i=()=>p,s=1):4===t&&(n=Je,o=qe,a=et,i=()=>m,s=2),V(e,{name:r,fromWireType:e=>{for(var r,o=m[e>>2],a=i(),c=e+4,A=0;A<=o;++A){var u=e+4+A*t;if(A==o||0==a[u>>s]){var l=n(c,u-c);void 0===r?r=l:(r+=String.fromCharCode(0),r+=l),c=u+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),c=ut(4+i+t);return m[c>>2]=i>>s,o(n,c+4,i+t),null!==e&&e.push(dt,c),c},argPackAdvance:8,readValueFromPointer:Ne,destructorFunction(e){dt(e)}})},v:(e,t)=>{V(e,{isVoid:!0,name:t=j(t),argPackAdvance:0,fromWireType:()=>{},toWireType:(e,t)=>{}})},j:(e,t,r)=>(e=ke.toValue(e),t=tt(t,"emval::as"),rt(t,r,e)),e:(e,t,r,n,o)=>{var i,a;return(e=ot[e])(t=ke.toValue(t),t[r=void 0===(a=nt[i=r])?j(i):a],n,o)},d:Fe,f:(e,t,r)=>{var n=((e,t)=>{for(var r=new Array(e),n=0;n<e;++n)r[n]=tt(m[t+4*n>>2],"parameter "+n);return r})(e,t),o=n.shift();e--;var i,a,s=new Array(e),c=`methodCaller<(${n.map((e=>e.name)).join(", ")}) => ${o.name}>`;return i=de(c,((t,i,a,c)=>{for(var A=0,u=0;u<e;++u)s[u]=n[u].readValueFromPointer(c+A),A+=n[u].argPackAdvance;var l=1===r?it(i,s):i.apply(t,s);for(u=0;u<e;++u)n[u].deleteObject&&n[u].deleteObject(s[u]);return rt(o,a,l)})),a=ot.length,ot.push(i),a},c:e=>{e>4&&(Se.get(e).refcount+=1)},b:e=>{var t=ke.toValue(e);Qe(t),Fe(e)},h:(e,t)=>{var r=(e=tt(e,"_emval_take_value")).readValueFromPointer(t);return ke.toHandle(r)},m:()=>{T("")},s:(e,t,r)=>f.copyWithin(e,t,t+r),r:e=>{f.length;T("OOM")},n:(e,t,r,n)=>{for(var o,i,a,s=0,c=0;c<r;c++){var A=m[t>>2],d=m[t+4>>2];t+=8;for(var g=0;g<d;g++)o=e,i=f[A+g],a=void 0,a=at[o],0===i||10===i?((1===o?u:l)(We(a,0)),a.length=0):a.push(i);s+=d}return m[n>>2]=s,0}},At=function(){var e={a:ct};function t(e,t){var r,n;return At=e.exports,A=At.z,r=A.buffer,o.HEAP8=g=new Int8Array(r),o.HEAP16=h=new Int16Array(r),o.HEAPU8=f=new Uint8Array(r),o.HEAPU16=p=new Uint16Array(r),o.HEAP32=E=new Int32Array(r),o.HEAPU32=m=new Uint32Array(r),o.HEAPF32=I=new Float32Array(r),o.HEAPF64=y=new Float64Array(r),_e=At.C,n=At.A,C.unshift(n),function(){if(B--,o.monitorRunDependencies&&o.monitorRunDependencies(B),0==B&&(null!==D&&(clearInterval(D),D=null),O)){var e=O;O=null,e()}}(),At}if(B++,o.monitorRunDependencies&&o.monitorRunDependencies(B),o.instantiateWasm)try{return o.instantiateWasm(e,t)}catch(e){l(`Module.instantiateWasm callback failed with error: ${e}`),n(e)}return S(0,v,e,(function(e){t(e.instance)})).catch(n),{}}(),ut=e=>(ut=At.B)(e),lt=e=>(lt=At.D)(e),dt=e=>(dt=At.E)(e),gt=e=>(gt=At.F)(e);o.dynCall_jiji=(e,t,r,n,i)=>(o.dynCall_jiji=At.G)(e,t,r,n,i),o._vertexShaderSource=10624;function ft(){function e(){st||(st=!0,o.calledRun=!0,_||(F(C),r(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)e=o.postRun.shift(),b.unshift(e);var e;F(b)}()))}B>0||(!function(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)e=o.preRun.shift(),w.unshift(e);var e;F(w)}(),B>0||(o.setStatus?(o.setStatus("Running..."),setTimeout((function(){setTimeout((function(){o.setStatus("")}),1),e()}),1)):e()))}if(O=function e(){st||ft(),st||(O=e)},o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return ft(),t.ready}})(),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_IOS_CHROME=isUserAgentMatch("CriOS"),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 r,i,t="undefined"!=typeof self?self:{};function e(){throw Error("Invalid UTF8")}function n(e,t){return t=String.fromCharCode.apply(null,t),null==e?t:e+t}var o,h,u,l,d,f,p,s="undefined"!=typeof TextDecoder,a="undefined"!=typeof TextEncoder;function c(e){if(a)e=(o||(o=new TextEncoder)).encode(e);else{let r=0;const n=new Uint8Array(3*e.length);for(let o=0;o<e.length;o++){var t=e.charCodeAt(o);if(t<128)n[r++]=t;else{if(t<2048)n[r++]=t>>6|192;else{if(t>=55296&&t<=57343){if(t<=56319&&o<e.length){const i=e.charCodeAt(++o);if(i>=56320&&i<=57343){t=1024*(t-55296)+i-56320+65536,n[r++]=t>>18|240,n[r++]=t>>12&63|128,n[r++]=t>>6&63|128,n[r++]=63&t|128;continue}o--}t=65533}n[r++]=t>>12|224,n[r++]=t>>6&63|128}n[r++]=63&t|128}}e=r===n.length?n:n.subarray(0,r)}return e}e:{for(l=["CLOSURE_FLAGS"],d=t,f=0;f<l.length;f++)if(null==(d=d[l[f]])){u=null;break e}u=d}var g=u&&u[610401301];h=null!=g&&g;var m=t.navigator;function y(e){return!!h&&!!p&&p.brands.some((({brand:t})=>t&&-1!=t.indexOf(e)))}function _(e){var r;return(r=t.navigator)&&(r=r.userAgent)||(r=""),-1!=r.indexOf(e)}function v(){return!!h&&!!p&&p.brands.length>0}function E(){return v()?y("Chromium"):(_("Chrome")||_("CriOS"))&&!(!v()&&_("Edge"))||_("Silk")}function w(e){return w[" "](e),e}p=m&&m.userAgentData||null,w[" "]=function(){};var T=!v()&&(_("Trident")||_("MSIE"));!_("Android")||E(),E(),_("Safari")&&(E()||!v()&&_("Coast")||!v()&&_("Opera")||!v()&&_("Edge")||(v()?y("Microsoft Edge"):_("Edg/"))||v()&&y("Opera"));var A={},b=null;function k(e){const t=e.length;let r=3*t/4;r%3?r=Math.floor(r):-1!="=.".indexOf(e[t-1])&&(r=-1!="=.".indexOf(e[t-2])?r-2:r-1);const n=new Uint8Array(r);let o=0;return function(e,t){function r(t){for(;n<e.length;){const t=e.charAt(n++),r=b[t];if(null!=r)return r;if(!/^[\s\xa0]*$/.test(t))throw Error("Unknown base64 encoding at char: "+t)}return t}S();let n=0;for(;;){const e=r(-1),n=r(0),o=r(64),i=r(64);if(64===i&&-1===e)break;t(e<<2|n>>4),64!=o&&(t(n<<4&240|o>>2),64!=i&&t(o<<6&192|i))}}(e,(function(e){n[o++]=e})),o!==r?n.subarray(0,o):n}function S(){if(!b){b={};var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),t=["+/=","+/","-_=","-_.","-_"];for(let r=0;r<5;r++){const n=e.concat(t[r].split(""));A[r]=n;for(let e=0;e<n.length;e++){const t=n[e];void 0===b[t]&&(b[t]=e)}}}}var x="undefined"!=typeof Uint8Array,L=!T&&"function"==typeof btoa;function R(e){if(!L){var t;void 0===t&&(t=0),S(),t=A[t];var r=Array(Math.floor(e.length/3)),n=t[64]||"";let c=0,u=0;for(;c<e.length-2;c+=3){var o=e[c],i=e[c+1],a=e[c+2],s=t[o>>2];o=t[(3&o)<<4|i>>4],i=t[(15&i)<<2|a>>6],a=t[63&a],r[u++]=s+o+i+a}switch(s=0,a=n,e.length-c){case 2:a=t[(15&(s=e[c+1]))<<2]||n;case 1:e=e[c],r[u]=t[e>>2]+t[(3&e)<<4|s>>4]+a+n}return r.join("")}for(t="",r=0,n=e.length-10240;r<n;)t+=String.fromCharCode.apply(null,e.subarray(r,r+=10240));return t+=String.fromCharCode.apply(null,r?e.subarray(r):e),btoa(t)}var F=/[-_.]/g,I={"-":"+",_:"/",".":"="};function M(e){return I[e]||""}function P(e){if(!L)return k(e);F.test(e)&&(e=e.replace(F,M)),e=atob(e);const t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}function C(e){return x&&null!=e&&e instanceof Uint8Array}var O={};function U(){return B||(B=new N(null,O))}function D(e){j(O);var t=e.g;return null==(t=null==t||C(t)?t:"string"==typeof t?P(t):null)?t:e.g=t}var B,G,N=class{h(){return new Uint8Array(D(this)||0)}constructor(e,t){if(j(t),this.g=e,null!=e&&0===e.length)throw Error("ByteString should be constructed with non-empty values")}};function j(e){if(e!==O)throw Error("illegal external caller")}function V(e,t){e.__closure__error__context__984382||(e.__closure__error__context__984382={}),e.__closure__error__context__984382.severity=t}function X(e){return V(e=Error(e),"warning"),e}function H(e){if(null!=e){var r=null!=G?G:G={},n=r[e]||0;n>=5||(r[e]=n+1,V(e=Error(),"incident"),o=e,t.setTimeout((()=>{throw o}),0))}var o}var W="function"==typeof Symbol&&"symbol"==typeof Symbol();function z(e,t,r=!1){return"function"==typeof Symbol&&"symbol"==typeof Symbol()?r&&Symbol.for&&e?Symbol.for(e):null!=e?Symbol(e):Symbol():t}var ht,K=z("jas",void 0,!0),Y=z(void 0,"0di"),$=z(void 0,"1oa"),q=z(void 0,Symbol()),J=z(void 0,"0actk"),Z=z(void 0,"8utk"),Q=W?K:"Ea",tt={Ea:{value:0,configurable:!0,writable:!0,enumerable:!1}},et=Object.defineProperties;function nt(e,t){W||Q in e||et(e,tt),e[Q]|=t}function rt(e,t){W||Q in e||et(e,tt),e[Q]=t}function it(e){return nt(e,34),e}function st(e,t){rt(t,-15615&e)}function ot(e,t){rt(t,-15581&e|34)}function at(){return"function"==typeof BigInt}function ct(e){return Array.prototype.slice.call(e)}var ut={};function lt(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)&&e.constructor===Object}function dt(e,t){if(null!=e)if("string"==typeof e)e=e?new N(e,O):U();else if(e.constructor!==N)if(C(e))e=e.length?new N(new Uint8Array(e),O):U();else{if(!t)throw Error();e=void 0}return e}var ft=[];function pt(e){if(2&e)throw Error()}rt(ft,55),ht=Object.freeze(ft);var gt=class{constructor(e,t,r){this.g=e,this.h=t,this.l=r}next(){const e=this.g.next();return e.done||(e.value=this.h.call(this.l,e.value)),e}[Symbol.iterator](){return this}};function mt(e){return q?e[q]:void 0}var yt=Object.freeze({});function _t(e){return e.Na=!0,e}var vt=_t((e=>"number"==typeof e)),Et=_t((e=>"string"==typeof e)),wt=_t((e=>"boolean"==typeof e)),Tt="function"==typeof t.BigInt&&"bigint"==typeof t.BigInt(0);function At(e){var t=e;if(Et(t)){if(!/^\s*(?:-?[1-9]\d*|0)?\s*$/.test(t))throw Error(String(t))}else if(vt(t)&&!Number.isSafeInteger(t))throw Error(String(t));return Tt?BigInt(e):e=wt(e)?e?"1":"0":Et(e)?e.trim()||"0":String(e)}var bt=_t((e=>Tt?e>=St&&e<=Lt:"-"===e[0]?Rt(e,kt):Rt(e,xt))),kt=Number.MIN_SAFE_INTEGER.toString(),St=Tt?BigInt(Number.MIN_SAFE_INTEGER):void 0,xt=Number.MAX_SAFE_INTEGER.toString(),Lt=Tt?BigInt(Number.MAX_SAFE_INTEGER):void 0;function Rt(e,t){if(e.length>t.length)return!1;if(e.length<t.length||e===t)return!0;for(let r=0;r<e.length;r++){const n=e[r],o=t[r];if(n>o)return!1;if(n<o)return!0}}var It,Ft="function"==typeof Uint8Array.prototype.slice,Mt=0,Pt=0;function Ct(e){const t=e>>>0;Mt=t,Pt=(e-t)/4294967296>>>0}function Ot(e){if(e<0){Ct(-e);const[t,r]=Xt(Mt,Pt);Mt=t>>>0,Pt=r>>>0}else Ct(e)}function Ut(e){const t=It||(It=new DataView(new ArrayBuffer(8)));t.setFloat32(0,+e,!0),Pt=0,Mt=t.getUint32(0,!0)}function Dt(e,t){const r=4294967296*t+(e>>>0);return Number.isSafeInteger(r)?r:Bt(e,t)}function Nt(e,t){const r=2147483648&t;return r&&(t=~t>>>0,0==(e=1+~e>>>0)&&(t=t+1>>>0)),"number"==typeof(e=Dt(e,t))?r?-e:e:r?"-"+e:e}function Bt(e,t){if(e>>>=0,(t>>>=0)<=2097151)var r=""+(4294967296*t+e);else at()?r=""+(BigInt(t)<<BigInt(32)|BigInt(e)):(e=(16777215&e)+6777216*(r=16777215&(e>>>24|t<<8))+6710656*(t=t>>16&65535),r+=8147497*t,t*=2,e>=1e7&&(r+=e/1e7>>>0,e%=1e7),r>=1e7&&(t+=r/1e7>>>0,r%=1e7),r=t+Gt(r)+Gt(e));return r}function Gt(e){return e=String(e),"0000000".slice(e.length)+e}function jt(){var e=Mt,t=Pt;if(2147483648&t)if(at())e=""+(BigInt(0|t)<<BigInt(32)|BigInt(e>>>0));else{const[r,n]=Xt(e,t);e="-"+Bt(r,n)}else e=Bt(e,t);return e}function Vt(e){if(e.length<16)Ot(Number(e));else if(at())e=BigInt(e),Mt=Number(e&BigInt(4294967295))>>>0,Pt=Number(e>>BigInt(32)&BigInt(4294967295));else{const t=+("-"===e[0]);Pt=Mt=0;const r=e.length;for(let n=t,o=(r-t)%6+t;o<=r;n=o,o+=6){const t=Number(e.slice(n,o));Pt*=1e6,(Mt=1e6*Mt+t)>=4294967296&&(Pt+=Math.trunc(Mt/4294967296),Pt>>>=0,Mt>>>=0)}if(t){const[e,t]=Xt(Mt,Pt);Mt=e,Pt=t}}}function Xt(e,t){return t=~t,e?e=1+~e:t+=1,[e,t]}var Ht="function"==typeof BigInt?BigInt.asIntN:void 0,Wt="function"==typeof BigInt?BigInt.asUintN:void 0,zt=Number.isSafeInteger,Kt=Number.isFinite,Yt=Math.trunc,$t=At(0);function qt(e){return null==e||"number"==typeof e?e:"NaN"===e||"Infinity"===e||"-Infinity"===e?Number(e):void 0}function Jt(e){return null==e||"boolean"==typeof e?e:"number"==typeof e?!!e:void 0}var Zt=/^-?([1-9][0-9]*|0)(\.[0-9]+)?$/;function Qt(e){switch(typeof e){case"bigint":return!0;case"number":return Kt(e);case"string":return Zt.test(e);default:return!1}}function te(e){if(null==e)return e;if("string"==typeof e&&e)e=+e;else if("number"!=typeof e)return;return Kt(e)?0|e:void 0}function ee(e){if(null==e)return e;if("string"==typeof e&&e)e=+e;else if("number"!=typeof e)return;return Kt(e)?e>>>0:void 0}function ne(e){if("-"===e[0])return!1;const t=e.length;return t<20||20===t&&Number(e.substring(0,6))<184467}function re(e){const t=e.length;return"-"===e[0]?t<20||20===t&&Number(e.substring(0,7))>-922337:t<19||19===t&&Number(e.substring(0,6))<922337}function ie(e){return re(e)?e:(Vt(e),jt())}function se(e){return e=Yt(e),zt(e)||(Ot(e),e=Nt(Mt,Pt)),e}function oe(e){var t=Yt(Number(e));return zt(t)?String(t):(-1!==(t=e.indexOf("."))&&(e=e.substring(0,t)),ie(e))}function ae(e){var t=Yt(Number(e));return zt(t)?At(t):(-1!==(t=e.indexOf("."))&&(e=e.substring(0,t)),at()?At(Ht(64,BigInt(e))):At(ie(e)))}function ce(e){if(zt(e))e=At(se(e));else{if(e=Yt(e),zt(e))e=String(e);else{const t=String(e);re(t)?e=t:(Ot(e),e=jt())}e=At(e)}return e}function he(e){return null==e?e:"bigint"==typeof e?(bt(e)?e=Number(e):(e=Ht(64,e),e=bt(e)?Number(e):String(e)),e):Qt(e)?"number"==typeof e?se(e):oe(e):void 0}function ue(e){if(null==e)return e;var t=typeof e;if("bigint"===t)return String(Wt(64,e));if(Qt(e)){if("string"===t)return t=Yt(Number(e)),zt(t)&&t>=0?e=String(t):(-1!==(t=e.indexOf("."))&&(e=e.substring(0,t)),ne(e)||(Vt(e),e=Bt(Mt,Pt))),e;if("number"===t)return(e=Yt(e))>=0&&zt(e)?e:function(e){if(e<0){Ot(e);var t=Bt(Mt,Pt);return e=Number(t),zt(e)?e:t}return ne(t=String(e))?t:(Ot(e),Dt(Mt,Pt))}(e)}}function le(e){if("string"!=typeof e)throw Error();return e}function de(e){if(null!=e&&"string"!=typeof e)throw Error();return e}function fe(e){return null==e||"string"==typeof e?e:void 0}function pe(e,t,r,n){if(null!=e&&"object"==typeof e&&e.W===ut)return e;if(!Array.isArray(e))return r?2&n?((e=t[Y])||(it((e=new t).u),e=t[Y]=e),t=e):t=new t:t=void 0,t;let o=r=0|e[Q];return 0===o&&(o|=32&n),o|=2&n,o!==r&&rt(e,o),new t(e)}function ge(e,t,r){if(t)e:{if(!Qt(t=e))throw X("int64");switch(typeof t){case"string":t=ae(t);break e;case"bigint":t=At(Ht(64,t));break e;default:t=ce(t)}}else e=typeof(t=e),t=null==t?t:"bigint"===e?At(Ht(64,t)):Qt(t)?"string"===e?ae(t):ce(t):void 0;return null==(e=t)?r?$t:void 0:e}function me(e){return e}var ye={},_e=function(){try{return w(new class extends Map{constructor(){super()}}),!1}catch(e){return!0}}(),ve=class{constructor(){this.g=new Map}get(e){return this.g.get(e)}set(e,t){return this.g.set(e,t),this.size=this.g.size,this}delete(e){return e=this.g.delete(e),this.size=this.g.size,e}clear(){this.g.clear(),this.size=this.g.size}has(e){return this.g.has(e)}entries(){return this.g.entries()}keys(){return this.g.keys()}values(){return this.g.values()}forEach(e,t){return this.g.forEach(e,t)}[Symbol.iterator](){return this.entries()}},Ee=_e?(Object.setPrototypeOf(ve.prototype,Map.prototype),Object.defineProperties(ve.prototype,{size:{value:0,configurable:!0,enumerable:!0,writable:!0}}),ve):class extends Map{constructor(){super()}};function we(e){return e}function Te(e){if(2&e.M)throw Error("Cannot mutate an immutable Map")}var xe,Le,Re,Fe,Ae=class extends Ee{constructor(e,t,r=we,n=we){super();let o=0|e[Q];o|=64,rt(e,o),this.M=o,this.I=t,this.S=r,this.X=this.I?be:n;for(let i=0;i<e.length;i++){const a=e[i],s=r(a[0],!1,!0);let c=a[1];t?void 0===c&&(c=null):c=n(a[1],!1,!0,void 0,void 0,o),super.set(s,c)}}La(){var e=Ce;if(0!==this.size)return Array.from(super.entries(),(t=>(t[0]=e(t[0]),t[1]=e(t[1]),t)))}da(e=ke){const t=[],r=super.entries();for(var n;!(n=r.next()).done;)(n=n.value)[0]=e(n[0]),n[1]=e(n[1]),t.push(n);return t}clear(){Te(this),super.clear()}delete(e){return Te(this),super.delete(this.S(e,!0,!1))}entries(){if(this.I){var e=super.keys();e=new gt(e,Se,this)}else e=super.entries();return e}values(){if(this.I){var e=super.keys();e=new gt(e,Ae.prototype.get,this)}else e=super.values();return e}forEach(e,t){this.I?super.forEach(((r,n,o)=>{e.call(t,o.get(n),n,o)})):super.forEach(e,t)}set(e,t){return Te(this),null==(e=this.S(e,!0,!1))?this:null==t?(super.delete(e),this):super.set(e,this.X(t,!0,!0,this.I,!1,this.M))}Ja(e){const t=this.S(e[0],!1,!0);e=e[1],e=this.I?void 0===e?null:e:this.X(e,!1,!0,void 0,!1,this.M),super.set(t,e)}has(e){return super.has(this.S(e,!1,!1))}get(e){e=this.S(e,!1,!1);const t=super.get(e);if(void 0!==t){var r=this.I;return r?((r=this.X(t,!1,!0,r,this.pa,this.M))!==t&&super.set(e,r),r):t}}[Symbol.iterator](){return this.entries()}};function be(e,t,r,n,o,i){return e=pe(e,n,r,i),o&&(e=je(e)),e}function ke(e){return e}function Se(e){return[e,this.get(e)]}function Ie(){return xe||(xe=new Ae(it([]),void 0,void 0,void 0,ye))}function Me(e,t,r,n,o){if(null!=e){if(Array.isArray(e)){const i=0|e[Q];return 0===e.length&&1&i?void 0:o&&2&i?e:Pe(e,t,r,void 0!==n,o)}return t(e,n)}}function Pe(e,t,r,n,o){const i=n||r?0|e[Q]:0,a=n?!!(32&i):void 0;let s=0;const c=(n=ct(e)).length;for(let e=0;e<c;e++){var A=n[e];if(e===c-1&<(A)){var u=t,l=r,d=a,g=o;let e;for(let t in A){const r=Me(A[t],u,l,d,g);null!=r&&((null!=e?e:e={})[t]=r)}A=e}else A=Me(n[e],t,r,a,o);n[e]=A,null!=A&&(s=e+1)}return s<c&&(n.length=s),r&&((e=mt(e))&&(n[q]=ct(e)),r(i,n)),n}function Ce(e){return Me(e,Oe,void 0,void 0,!1)}function Oe(e){switch(typeof e){case"number":return Number.isFinite(e)?e:""+e;case"bigint":return bt(e)?Number(e):""+e;case"boolean":return e?1:0;case"object":if(C(e))return C(e)&&H(Z),R(e);if(e.W===ut)return Ue(e);if(e instanceof N){const t=e.g;return null==t?"":"string"==typeof t?t:e.g=R(t)}return e instanceof Ae?e.La():void 0}return e}function Ue(e){var t=e.u;e=Pe(t,Oe,void 0,void 0,!1);var r=0|t[Q];if((t=e.length)&&!(512&r)){var n=e[t-1],o=!1;lt(n)?(t--,o=!0):n=void 0;var i=t-(r=512&r?0:-1),a=(null!=Le?Le:me)(i,r,e,n);if(n&&(e[t]=void 0),i<a&&n){for(var s in i=!0,n){const c=+s;c<=a?(e[o=c+r]=n[s],t=Math.max(o+1,t),o=!1,delete n[s]):i=!1}i&&(n=void 0)}for(i=t-1;t>0;i=t-1)if(null==(s=e[i]))t--,o=!0;else{if(!((i-=r)>=a))break;(null!=n?n:n={})[i]=s,t--,o=!0}o&&(e.length=t),n&&e.push(n)}return e}function De(e,t,r){return e=Ne(e,t[0],t[1],r?1:2),t!==Re&&r&&nt(e,8192),e}function Ne(e,t,r,n){if(null==e){var o=96;r?(e=[r],o|=512):e=[],t&&(o=-16760833&o|(1023&t)<<14)}else{if(!Array.isArray(e))throw Error("narr");if(8192&(o=0|e[Q])||!(64&o)||2&o||H(J),1024&o)throw Error("farr");if(64&o)return e;if(1===n||2===n||(o|=64),r&&(o|=512,r!==e[0]))throw Error("mid");e:{var i=(r=e).length;if(i){var a=i-1;if(lt(n=r[a])){if((a-=t=512&(o|=256)?0:-1)>=1024)throw Error("pvtlmt");for(var s in n)(i=+s)<a&&(r[i+t]=n[s],delete n[s]);o=-16760833&o|(1023&a)<<14;break e}}if(t){if((s=Math.max(t,i-(512&o?0:-1)))>1024)throw Error("spvt");o=-16760833&o|(1023&s)<<14}}}return rt(e,o),e}function Be(e,t,r=ot){if(null!=e){if(x&&e instanceof Uint8Array)return t?e:new Uint8Array(e);if(Array.isArray(e)){var n=0|e[Q];return 2&n?e:(t&&(t=0===n||!!(32&n)&&!(64&n||!(16&n))),t?(rt(e,34|n),4&n&&Object.freeze(e),e):Pe(e,Be,4&n?ot:r,!0,!0))}return e.W===ut?e=2&(n=0|(r=e.u)[Q])?e:new e.constructor(Ge(r,n,!0)):e instanceof Ae&&!(2&e.M)&&(r=it(e.da(Be)),e=new Ae(r,e.I,e.S,e.X)),e}}function Ge(e,t,r){const n=r||2&t?ot:st,o=!!(32&t);return nt(e=function(e,t,r){const n=ct(e);var o=n.length;const i=256&t?n[o-1]:void 0;for(o+=i?-1:0,t=512&t?1:0;t<o;t++)n[t]=r(n[t]);if(i){t=n[t]={};for(const e in i)t[e]=r(i[e])}return(e=mt(e))&&(n[q]=ct(e)),n}(e,t,(e=>Be(e,o,n))),32|(r?2:0)),e}function je(e){const t=e.u,r=0|t[Q];return 2&r?new e.constructor(Ge(t,r,!1)):e}function Ve(e,t){return Xe(e=e.u,0|e[Q],t)}function Xe(e,t,r){if(-1===r)return null;const n=r+(512&t?0:-1),o=e.length-1;return n>=o&&256&t?e[o][r]:n<=o?e[n]:void 0}function He(e,t,r){const n=e.u;let o=0|n[Q];return pt(o),We(n,o,t,r),e}function We(e,t,r,n){const o=512&t?0:-1,i=r+o;var a=e.length-1;return i>=a&&256&t?(e[a][r]=n,t):i<=a?(e[i]=n,t):(void 0!==n&&(r>=(a=t>>14&1023||536870912)?null!=n&&(e[a+o]={[r]:n},rt(e,t|=256)):e[i]=n),t)}function ze(e,t){let r=0|(e=e.u)[Q];const n=Xe(e,r,t),o=qt(n);return null!=o&&o!==n&&We(e,r,t,o),o}function Ke(e){let t=0|(e=e.u)[Q];const r=Xe(e,t,1),n=dt(r,!0);return null!=n&&n!==r&&We(e,t,1,n),n}function Ye(){return void 0===yt?2:4}function $e(e,t,r,n,o){const i=e.u,a=2&(e=0|i[Q])?1:n;o=!!o;let s=0|(n=qe(i,e,t))[Q];if(!(4&s)){4&s&&(n=ct(n),s=pn(s,e),e=We(i,e,t,n));let o=0,a=0;for(;o<n.length;o++){const e=r(n[o]);null!=e&&(n[a++]=e)}a<o&&(n.length=a),s=Je(s,e),r=-2049&s|20,s=r&=-4097,rt(n,s),2&s&&Object.freeze(n)}return 1===a||4===a&&32&s?Ze(s)||(o=s,s|=2,s!==o&&rt(n,s),Object.freeze(n)):(2===a&&Ze(s)&&(n=ct(n),s=pn(s,e),s=gn(s,e,o),rt(n,s),e=We(i,e,t,n)),Ze(s)||(t=s,s=gn(s,e,o),s!==t&&rt(n,s))),n}function qe(e,t,r){return e=Xe(e,t,r),Array.isArray(e)?e:ht}function Je(e,t){return 0===e&&(e=pn(e,t)),1|e}function Ze(e){return!!(2&e)&&!!(4&e)||!!(1024&e)}function Qe(e){e=ct(e);for(let t=0;t<e.length;t++){const r=e[t]=ct(e[t]);Array.isArray(r[1])&&(r[1]=it(r[1]))}return e}function tn(e,t,r,n){let o=0|(e=e.u)[Q];pt(o),We(e,o,t,("0"===n?0===Number(r):r===n)?void 0:r)}function en(e,t,r,n){pt(t);let o=qe(e,t,r);const i=o!==ht;if(64&t||!(8192&t)||!i){const a=i?0|o[Q]:0;let s=a;(!i||2&s||Ze(s)||4&s&&!(32&s))&&(o=ct(o),s=pn(s,t),t=We(e,t,r,o)),s=-13&Je(s,t),s=gn(n?-17&s:16|s,t,!0),s!==a&&rt(o,s)}return o}function nn(e,t){var r=Ts;return on(rn(e=e.u),e,0|e[Q],r)===t?t:-1}function rn(e){var t;if(W)return null!=(t=e[$])?t:e[$]=new Map;if($ in e)return e[$];const r=new Map;return Object.defineProperty(e,$,{value:r}),r}function sn(e,t,r,n){const o=rn(e),i=on(o,e,t,r);return i!==n&&(i&&(t=We(e,t,i)),o.set(r,n)),t}function on(e,t,r,n){let o=e.get(n);if(null!=o)return o;o=0;for(let e=0;e<n.length;e++){const i=n[e];null!=Xe(t,r,i)&&(0!==o&&(r=We(t,r,o)),o=i)}return e.set(n,o),o}function an(e,t,r){let n=0|e[Q];const o=Xe(e,n,r);let i;if(null!=o&&o.W===ut)return(t=je(o))!==o&&We(e,n,r,t),t.u;if(Array.isArray(o)){const e=0|o[Q];i=2&e?De(Ge(o,e,!1),t,!0):64&e?o:De(i,t,!0)}else i=De(void 0,t,!0);return i!==o&&We(e,n,r,i),i}function cn(e,t,r){let n=0|(e=e.u)[Q];const o=Xe(e,n,r);return(t=pe(o,t,!1,n))!==o&&null!=t&&We(e,n,r,t),t}function hn(e,t,r){if(null==(t=cn(e,t,r)))return t;let n=0|(e=e.u)[Q];if(!(2&n)){const o=je(t);o!==t&&We(e,n,r,t=o)}return t}function un(e,t,r,n,o,i,a){var s=!!(2&t);const c=s?1:o;i=!!i,a&&(a=!s);var A=0|(o=qe(e=e.u,t,n))[Q];if(!(s=!!(4&A))){var u=o,l=t;const e=!!(2&(A=Je(A,t)));e&&(l|=2);let n=!e,i=!0,a=0,s=0;for(;a<u.length;a++){const t=pe(u[a],r,!1,l);if(t instanceof r){if(!e){const e=!!(2&t.u[Q]);n&&(n=!e),i&&(i=e)}u[s++]=t}}s<a&&(u.length=s),A|=4,A=i?16|A:-17&A,rt(u,A=n?8|A:-9&A),e&&Object.freeze(u)}if(a&&!(8&A||!o.length&&(1===c||4===c&&32&A))){for(Ze(A)&&(o=ct(o),A=pn(A,t),t=We(e,t,n,o)),r=o,a=A,u=0;u<r.length;u++)(A=r[u])!==(l=je(A))&&(r[u]=l);a|=8,rt(r,a=r.length?-17&a:16|a),A=a}return 1===c||4===c&&32&A?Ze(A)||(t=A,(A|=!o.length||16&A&&(!s||32&A)?2:1024)!==t&&rt(o,A),Object.freeze(o)):(2===c&&Ze(A)&&(rt(o=ct(o),A=gn(A=pn(A,t),t,i)),t=We(e,t,n,o)),Ze(A)||(n=A,(A=gn(A,t,i))!==n&&rt(o,A))),o}function ln(e,t,r){const n=0|e.u[Q];return un(e,n,t,r,Ye(),!1,!(2&n))}function dn(e,t,r,n){return null==n&&(n=void 0),He(e,r,n)}function fn(e,t,r,n){null==n&&(n=void 0);e:{let o=0|(e=e.u)[Q];if(pt(o),null==n){const n=rn(e);if(on(n,e,o,r)!==t)break e;n.set(r,0)}else o=sn(e,o,r,t);We(e,o,t,n)}}function pn(e,t){return-1025&(2&t?2|e:-3&e)|32}function gn(e,t,r){return 32&t&&r||(e&=-33),e}function mn(e,t,r){pt(0|e.u[Q]),$e(e,t,fe,2,!0).push(le(r))}function yn(e,t,r,n){const o=0|e.u[Q];pt(o),e=un(e,o,r,t,2,!0),n=null!=n?n:new r,e.push(n),e[Q]=2&n.u[Q]?-9&e[Q]:-17&e[Q]}function _n(e,t){return te(Ve(e,t))}function vn(e,t){return fe(Ve(e,t))}function En(e,t){var r;return null!=(r=ze(e,t))?r:0}function wn(e,t,r){if(null!=r&&"boolean"!=typeof r)throw e=typeof r,Error(`Expected boolean but got ${"object"!=e?e:r?Array.isArray(r)?"array":e:"null"}: ${r}`);He(e,t,r)}function Tn(e,t,r){if(null!=r){if("number"!=typeof r)throw X("int32");if(!Kt(r))throw X("int32");r|=0}He(e,t,r)}function An(e,t,r){if(null!=r&&"number"!=typeof r)throw Error(`Value of float/double field must be a number, found ${typeof r}: ${r}`);He(e,t,r)}function bn(e,t,r){{const a=e.u;let s=0|a[Q];if(pt(s),null==r)We(a,s,t);else{var n=e=0|r[Q],o=Ze(e),i=o||Object.isFrozen(r);for(o||(e=0),i||(r=ct(r),n=0,e=gn(e=pn(e,s),s,!0),i=!1),e|=21,o=0;o<r.length;o++){const t=r[o],a=le(t);Object.is(t,a)||(i&&(r=ct(r),n=0,e=gn(e=pn(e,s),s,!0),i=!1),r[o]=a)}e!==n&&(i&&(r=ct(r),e=gn(e=pn(e,s),s,!0)),rt(r,e)),We(a,s,t,r)}}}function kn(e,t){return Error(`Invalid wire type: ${e} (at position ${t})`)}function Sn(){return Error("Failed to read varint, encoding is invalid.")}function xn(e,t){return Error(`Tried to read past the end of the data ${t} > ${e}`)}function Ln(e){if("string"==typeof e)return{buffer:P(e),O:!1};if(Array.isArray(e))return{buffer:new Uint8Array(e),O:!1};if(e.constructor===Uint8Array)return{buffer:e,O:!1};if(e.constructor===ArrayBuffer)return{buffer:new Uint8Array(e),O:!1};if(e.constructor===N)return{buffer:D(e)||new Uint8Array(0),O:!0};if(e instanceof Uint8Array)return{buffer:new Uint8Array(e.buffer,e.byteOffset,e.byteLength),O:!1};throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, a ByteString or an Array of numbers")}function Rn(e,t){let r,n=0,o=0,i=0;const a=e.h;let s=e.g;do{r=a[s++],n|=(127&r)<<i,i+=7}while(i<32&&128&r);for(i>32&&(o|=(127&r)>>4),i=3;i<32&&128&r;i+=7)r=a[s++],o|=(127&r)<<i;if(Dn(e,s),r<128)return t(n>>>0,o>>>0);throw Sn()}function Fn(e){let t=0,r=e.g;const n=r+10,o=e.h;for(;r<n;){const n=o[r++];if(t|=n,!(128&n))return Dn(e,r),!!(127&t)}throw Sn()}function In(e){const t=e.h;let r=e.g,n=t[r++],o=127&n;if(128&n&&(n=t[r++],o|=(127&n)<<7,128&n&&(n=t[r++],o|=(127&n)<<14,128&n&&(n=t[r++],o|=(127&n)<<21,128&n&&(n=t[r++],o|=n<<28,128&n&&128&t[r++]&&128&t[r++]&&128&t[r++]&&128&t[r++]&&128&t[r++])))))throw Sn();return Dn(e,r),o}function Mn(e){return In(e)>>>0}function Pn(e){var t=e.h;const r=e.g,n=t[r],o=t[r+1],i=t[r+2];return t=t[r+3],Dn(e,e.g+4),(n|o<<8|i<<16|t<<24)>>>0}function Cn(e){var t=Pn(e);e=2*(t>>31)+1;const r=t>>>23&255;return t&=8388607,255==r?t?NaN:e*(1/0):0==r?1401298464324817e-60*e*t:e*Math.pow(2,r-150)*(t+8388608)}function On(e){return In(e)}function Un(e,t,{aa:r=!1}={}){e.aa=r,t&&(t=Ln(t),e.h=t.buffer,e.m=t.O,e.j=0,e.l=e.h.length,e.g=e.j)}function Dn(e,t){if(e.g=t,t>e.l)throw xn(e.l,t)}function Nn(e,t){if(t<0)throw Error(`Tried to read a negative byte length: ${t}`);const r=e.g,n=r+t;if(n>e.l)throw xn(t,e.l-r);return e.g=n,r}function Bn(e,t){if(0==t)return U();var r=Nn(e,t);return e.aa&&e.m?r=e.h.subarray(r,r+t):(e=e.h,r=r===(t=r+t)?new Uint8Array(0):Ft?e.slice(r,t):new Uint8Array(e.subarray(r,t))),0==r.length?U():new N(r,O)}Ae.prototype.toJSON=void 0;var Gn=[];function jn(e){var t=e.g;if(t.g==t.l)return!1;e.l=e.g.g;var r=Mn(e.g);if(t=r>>>3,!((r&=7)>=0&&r<=5))throw kn(r,e.l);if(t<1)throw Error(`Invalid field number: ${t} (at position ${e.l})`);return e.m=t,e.h=r,!0}function Vn(e){switch(e.h){case 0:0!=e.h?Vn(e):Fn(e.g);break;case 1:Dn(e=e.g,e.g+8);break;case 2:if(2!=e.h)Vn(e);else{var t=Mn(e.g);Dn(e=e.g,e.g+t)}break;case 5:Dn(e=e.g,e.g+4);break;case 3:for(t=e.m;;){if(!jn(e))throw Error("Unmatched start-group tag: stream EOF");if(4==e.h){if(e.m!=t)throw Error("Unmatched end-group tag");break}Vn(e)}break;default:throw kn(e.h,e.l)}}function Xn(e,t,r){const n=e.g.l,o=Mn(e.g),i=e.g.g+o;let a=i-n;if(a<=0&&(e.g.l=i,r(t,e,void 0,void 0,void 0),a=i-e.g.g),a)throw Error(`Message parsing ended unexpectedly. Expected to read ${o} bytes, instead read ${o-a} bytes, either the data ended unexpectedly or the message misreported its own length`);return e.g.g=i,e.g.l=n,t}function Hn(t){var o=Mn(t.g),a=Nn(t=t.g,o);if(t=t.h,s){var c,A=t;(c=i)||(c=i=new TextDecoder("utf-8",{fatal:!0})),o=a+o,A=0===a&&o===A.length?A:A.subarray(a,o);try{var u=c.decode(A)}catch(e){if(void 0===r){try{c.decode(new Uint8Array([128]))}catch(e){}try{c.decode(new Uint8Array([97])),r=!0}catch(e){r=!1}}throw!r&&(i=void 0),e}}else{o=(u=a)+o,a=[];let r,i=null;for(;u<o;){var l=t[u++];l<128?a.push(l):l<224?u>=o?e():(r=t[u++],l<194||128!=(192&r)?(u--,e()):a.push((31&l)<<6|63&r)):l<240?u>=o-1?e():(r=t[u++],128!=(192&r)||224===l&&r<160||237===l&&r>=160||128!=(192&(c=t[u++]))?(u--,e()):a.push((15&l)<<12|(63&r)<<6|63&c)):l<=244?u>=o-2?e():(r=t[u++],128!=(192&r)||r-144+(l<<28)>>30||128!=(192&(c=t[u++]))||128!=(192&(A=t[u++]))?(u--,e()):(l=(7&l)<<18|(63&r)<<12|(63&c)<<6|63&A,l-=65536,a.push(55296+(l>>10&1023),56320+(1023&l)))):e(),a.length>=8192&&(i=n(i,a),a.length=0)}u=n(i,a)}return u}function Wn(e){const t=Mn(e.g);return Bn(e.g,t)}function zn(e,t,r){var n=Mn(e.g);for(n=e.g.g+n;e.g.g<n;)r.push(t(e.g))}var Kn=[];function Yn(e,t,r){t.g?t.m(e,t.g,t.h,r):t.m(e,t.h,r)}var $n=class{constructor(e,t){this.u=Ne(e,t)}toJSON(){try{var e=Ue(this)}finally{Le=void 0}return e}l(){var e=_o;return e.g?e.l(this,e.g,e.h):e.l(this,e.h,e.defaultValue)}clone(){const e=this.u;return new this.constructor(Ge(e,0|e[Q],!1))}O(){return!!(2&this.u[Q])}};function qn(e){return e?/^\d+$/.test(e)?(Vt(e),new Jn(Mt,Pt)):null:Zn||(Zn=new Jn(0,0))}$n.prototype.W=ut,$n.prototype.toString=function(){return this.u.toString()};var Zn,Jn=class{constructor(e,t){this.h=e>>>0,this.g=t>>>0}};function Qn(e){return e?/^-?\d+$/.test(e)?(Vt(e),new tr(Mt,Pt)):null:er||(er=new tr(0,0))}var er,tr=class{constructor(e,t){this.h=e>>>0,this.g=t>>>0}};function nr(e,t,r){for(;r>0||t>127;)e.g.push(127&t|128),t=(t>>>7|r<<25)>>>0,r>>>=7;e.g.push(t)}function rr(e,t){for(;t>127;)e.g.push(127&t|128),t>>>=7;e.g.push(t)}function ir(e,t){if(t>=0)rr(e,t);else{for(let r=0;r<9;r++)e.g.push(127&t|128),t>>=7;e.g.push(1)}}function sr(e,t){e.g.push(t>>>0&255),e.g.push(t>>>8&255),e.g.push(t>>>16&255),e.g.push(t>>>24&255)}function or(e,t){0!==t.length&&(e.l.push(t),e.h+=t.length)}function ar(e,t,r){rr(e.g,8*t+r)}function cr(e,t){return ar(e,t,2),t=e.g.end(),or(e,t),t.push(e.h),t}function hr(e,t){var r=t.pop();for(r=e.h+e.g.length()-r;r>127;)t.push(127&r|128),r>>>=7,e.h++;t.push(r),e.h++}function ur(e,t,r){ar(e,t,2),rr(e.g,r.length),or(e,e.g.end()),or(e,r)}function lr(e,t,r,n){null!=r&&(t=cr(e,t),n(r,e),hr(e,t))}function dr(){const e=class{constructor(){throw Error()}};return Object.setPrototypeOf(e,e.prototype),e}var fr=dr(),pr=dr(),gr=dr(),mr=dr(),yr=dr(),_r=dr(),vr=dr(),Er=dr(),wr=dr(),Tr=class{constructor(e,t,r){this.g=e,this.h=t,e=fr,this.l=!!e&&r===e||!1}};function Ar(e,t){return new Tr(e,t,fr)}function br(e,t,r,n,o){lr(e,r,Or(t,n),o)}var Ir,Mr,kr=Ar((function(e,t,r,n,o){return 2===e.h&&(Xn(e,an(t,n,r),o),!0)}),br),Sr=Ar((function(e,t,r,n,o){return 2===e.h&&(Xn(e,an(t,n,r),o),!0)}),br),xr=Symbol(),Lr=Symbol(),Rr=Symbol(),Fr=Symbol();function Pr(e,t,r,n){var o=n[e];if(o)return o;(o={}).Ma=n,o.T=function(e){switch(typeof e){case"boolean":return Re||(Re=[0,void 0,!0]);case"number":return e>0?void 0:0===e?Fe||(Fe=[0,void 0]):[-e,void 0];case"string":return[0,e];case"object":return e}}(n[0]);var i=n[1];let a=1;i&&i.constructor===Object&&(o.ga=i,"function"==typeof(i=n[++a])&&(o.la=!0,null!=Ir||(Ir=i),null!=Mr||(Mr=n[a+1]),i=n[a+=2]));const s={};for(;i&&Array.isArray(i)&&i.length&&"number"==typeof i[0]&&i[0]>0;){for(var c=0;c<i.length;c++)s[i[c]]=i;i=n[++a]}for(c=1;void 0!==i;){let e;"number"==typeof i&&(c+=i,i=n[++a]);var A=void 0;if(i instanceof Tr?e=i:(e=kr,a--),null==e?void 0:e.l){i=n[++a],A=n;var u=a;"function"==typeof i&&(i=i(),A[u]=i),A=i}for(u=c+1,"number"==typeof(i=n[++a])&&i<0&&(u-=i,i=n[++a]);c<u;c++){const n=s[c];A?r(o,c,e,A,n):t(o,c,e,n)}}return n[e]=o}function Cr(e){return Array.isArray(e)?e[0]instanceof Tr?e:[Sr,e]:[e,void 0]}function Or(e,t){return e instanceof $n?e.u:Array.isArray(e)?De(e,t,!1):void 0}function Ur(e,t,r,n){const o=r.g;e[t]=n?(e,t,r)=>o(e,t,r,n):o}function Dr(e,t,r,n,o){const i=r.g;let a,s;e[t]=(e,t,r)=>i(e,t,r,s||(s=Pr(Lr,Ur,Dr,n).T),a||(a=Nr(n)),o)}function Nr(e){let t=e[Rr];if(null!=t)return t;const r=Pr(Lr,Ur,Dr,e);return t=r.la?(e,t)=>Ir(e,t,r):(e,t)=>{const n=0|e[Q];for(;jn(t)&&4!=t.h;){var o=t.m,i=r[o];if(null==i){var a=r.ga;a&&(a=a[o])&&null!=(a=Br(a))&&(i=r[o]=a)}null!=i&&i(t,e,o)||(o=(i=t).l,Vn(i),i.fa?i=void 0:(a=i.g.g-o,i.g.g=o,i=Bn(i.g,a)),o=e,i&&((a=o[q])?a.push(i):o[q]=[i]))}return 8192&n&&it(e),!0},e[Rr]=t}function Br(e){const t=(e=Cr(e))[0].g;if(e=e[1]){const r=Nr(e),n=Pr(Lr,Ur,Dr,e).T;return(e,o,i)=>t(e,o,i,n,r)}return t}function Gr(e,t,r){e[t]=r.h}function jr(e,t,r,n){let o,i;const a=r.h;e[t]=(e,t,r)=>a(e,t,r,i||(i=Pr(xr,Gr,jr,n).T),o||(o=Vr(n)))}function Vr(e){let t=e[Fr];if(!t){const r=Pr(xr,Gr,jr,e);t=(e,t)=>Xr(e,t,r),e[Fr]=t}return t}function Xr(e,t,r){!function(e,t,r){const n=512&t?0:-1,o=e.length,i=o+((t=64&t?256&t:!!o&<(e[o-1]))?-1:0);for(let t=0;t<i;t++)r(t-n,e[t]);if(t){e=e[o-1];for(const t in e)!isNaN(t)&&r(+t,e[t])}}(e,e[Q]|(r.T[1]?512:0),((e,n)=>{if(null!=n){var o=function(e,t){var r=e[t];if(r)return r;if((r=e.ga)&&(r=r[t])){var n=(r=Cr(r))[0].h;if(r=r[1]){const t=Vr(r),o=Pr(xr,Gr,jr,r).T;r=e.la?Mr(o,t):(e,r,i)=>n(e,r,i,o,t)}else r=n;return e[t]=r}}(r,e);o&&o(t,n,e)}})),(e=mt(e))&&function(e,t){or(e,e.g.end());for(let r=0;r<t.length;r++)or(e,D(t[r])||new Uint8Array(0))}(t,e)}function Hr(e,t){if(Array.isArray(t)){var r=0|t[Q];if(4&r)return t;for(var n=0,o=0;n<t.length;n++){const r=e(t[n]);null!=r&&(t[o++]=r)}return o<n&&(t.length=o),rt(t,-6145&r|5),2&r&&Object.freeze(t),t}}function Wr(e,t,r){return new Tr(e,t,r)}function zr(e,t,r){return new Tr(e,t,r)}function Kr(e,t,r){We(e,0|e[Q],t,r)}var Yr=Ar((function(e,t,r,n,o){return 2===e.h&&(e=Xn(e,De([void 0,void 0],n,!0),o),pt(n=0|t[Q]),(o=Xe(t,n,r))instanceof Ae?2&o.M?((o=o.da()).push(e),We(t,n,r,o)):o.Ja(e):Array.isArray(o)?(2&o[Q]&&We(t,n,r,o=Qe(o)),o.push(e)):We(t,n,r,[e]),!0)}),(function(e,t,r,n,o){if(t instanceof Ae)t.forEach(((t,i)=>{lr(e,r,De([i,t],n,!1),o)}));else if(Array.isArray(t))for(let i=0;i<t.length;i++){const a=t[i];Array.isArray(a)&&lr(e,r,De(a,n,!1),o)}}));function $r(e,t,r){if(null!=(t=function(e){if(null==e)return e;const t=typeof e;if("bigint"===t)return String(Ht(64,e));if(Qt(e)){if("string"===t)return oe(e);if("number"===t)return se(e)}}(t))&&("string"==typeof t&&Qn(t),null!=t))switch(ar(e,r,0),typeof t){case"number":e=e.g,Ot(t),nr(e,Mt,Pt);break;case"bigint":r=BigInt.asUintN(64,t),r=new tr(Number(r&BigInt(4294967295)),Number(r>>BigInt(32))),nr(e.g,r.h,r.g);break;default:r=Qn(t),nr(e.g,r.h,r.g)}}function qr(e,t,r){null!=(t=te(t))&&null!=t&&(ar(e,r,0),ir(e.g,t))}function Jr(e,t,r){null!=(t=Jt(t))&&(ar(e,r,0),e.g.g.push(t?1:0))}function Zr(e,t,r){null!=(t=fe(t))&&ur(e,r,c(t))}function Qr(e,t,r,n,o){lr(e,r,Or(t,n),o)}function ti(e,t,r){null==t||"string"==typeof t||t instanceof N||(C(t)?C(t)&&H(Z):t=void 0),null!=t&&ur(e,r,Ln(t).buffer)}function ei(e,t,r){return(5===e.h||2===e.h)&&(t=en(t,0|t[Q],r,!1),2==e.h?zn(e,Cn,t):t.push(Cn(e.g)),!0)}var ni=Wr((function(e,t,r){if(1!==e.h)return!1;var n=e.g;e=Pn(n);const o=Pn(n);n=2*(o>>31)+1;const i=o>>>20&2047;return e=4294967296*(1048575&o)+e,Kr(t,r,2047==i?e?NaN:n*(1/0):0==i?5e-324*n*e:n*Math.pow(2,i-1075)*(e+4503599627370496)),!0}),(function(e,t,r){null!=(t=qt(t))&&(ar(e,r,1),e=e.g,(r=It||(It=new DataView(new ArrayBuffer(8)))).setFloat64(0,+t,!0),Mt=r.getUint32(0,!0),Pt=r.getUint32(4,!0),sr(e,Mt),sr(e,Pt))}),dr()),ri=Wr((function(e,t,r){return 5===e.h&&(Kr(t,r,Cn(e.g)),!0)}),(function(e,t,r){null!=(t=qt(t))&&(ar(e,r,5),e=e.g,Ut(t),sr(e,Mt))}),vr),ii=zr(ei,(function(e,t,r){if(null!=(t=Hr(qt,t)))for(let a=0;a<t.length;a++){var n=e,o=r,i=t[a];null!=i&&(ar(n,o,5),n=n.g,Ut(i),sr(n,Mt))}}),vr),si=zr(ei,(function(e,t,r){if(null!=(t=Hr(qt,t))&&t.length){ar(e,r,2),rr(e.g,4*t.length);for(let n=0;n<t.length;n++)r=e.g,Ut(t[n]),sr(r,Mt)}}),vr),oi=Wr((function(e,t,r){return 0===e.h&&(Kr(t,r,Rn(e.g,Nt)),!0)}),$r,_r),ai=Wr((function(e,t,r){return 0===e.h&&(Kr(t,r,0===(e=Rn(e.g,Nt))?void 0:e),!0)}),$r,_r),ci=Wr((function(e,t,r){return 0===e.h&&(Kr(t,r,Rn(e.g,Dt)),!0)}),(function(e,t,r){if(null!=(t=ue(t))&&("string"==typeof t&&qn(t),null!=t))switch(ar(e,r,0),typeof t){case"number":e=e.g,Ot(t),nr(e,Mt,Pt);break;case"bigint":r=BigInt.asUintN(64,t),r=new Jn(Number(r&BigInt(4294967295)),Number(r>>BigInt(32))),nr(e.g,r.h,r.g);break;default:r=qn(t),nr(e.g,r.h,r.g)}}),dr()),hi=Wr((function(e,t,r){return 0===e.h&&(Kr(t,r,In(e.g)),!0)}),qr,mr),ui=zr((function(e,t,r){return(0===e.h||2===e.h)&&(t=en(t,0|t[Q],r,!1),2==e.h?zn(e,In,t):t.push(In(e.g)),!0)}),(function(e,t,r){if(null!=(t=Hr(te,t))&&t.length){r=cr(e,r);for(let r=0;r<t.length;r++)ir(e.g,t[r]);hr(e,r)}}),mr),li=Wr((function(e,t,r){return 0===e.h&&(Kr(t,r,0===(e=In(e.g))?void 0:e),!0)}),qr,mr),di=Wr((function(e,t,r){return 0===e.h&&(Kr(t,r,Fn(e.g)),!0)}),Jr,pr),fi=Wr((function(e,t,r){return 0===e.h&&(Kr(t,r,!1===(e=Fn(e.g))?void 0:e),!0)}),Jr,pr),pi=zr((function(e,t,r){return 2===e.h&&(e=Hn(e),en(t,0|t[Q],r,!1).push(e),!0)}),(function(e,t,r){if(null!=(t=Hr(fe,t)))for(let a=0;a<t.length;a++){var n=e,o=r,i=t[a];null!=i&&ur(n,o,c(i))}}),gr),gi=Wr((function(e,t,r){return 2===e.h&&(Kr(t,r,""===(e=Hn(e))?void 0:e),!0)}),Zr,gr),mi=Wr((function(e,t,r){return 2===e.h&&(Kr(t,r,Hn(e)),!0)}),Zr,gr),yi=function(e,t,r=fr){return new Tr(e,t,r)}((function(e,t,r,n,o){return 2===e.h&&(n=De(void 0,n,!0),en(t,0|t[Q],r,!0).push(n),Xn(e,n,o),!0)}),(function(e,t,r,n,o){if(Array.isArray(t))for(let i=0;i<t.length;i++)Qr(e,t[i],r,n,o)})),_i=Ar((function(e,t,r,n,o,i){return 2===e.h&&(sn(t,0|t[Q],i,r),Xn(e,t=an(t,n,r),o),!0)}),Qr),vi=Wr((function(e,t,r){return 2===e.h&&(Kr(t,r,Wn(e)),!0)}),ti,Er),Ei=zr((function(e,t,r){return(0===e.h||2===e.h)&&(t=en(t,0|t[Q],r,!1),2==e.h?zn(e,Mn,t):t.push(Mn(e.g)),!0)}),(function(e,t,r){if(null!=(t=Hr(ee,t)))for(let a=0;a<t.length;a++){var n=e,o=r,i=t[a];null!=i&&(ar(n,o,0),rr(n.g,i))}}),yr),wi=Wr((function(e,t,r){return 0===e.h&&(Kr(t,r,0===(e=Mn(e.g))?void 0:e),!0)}),(function(e,t,r){null!=(t=ee(t))&&null!=t&&(ar(e,r,0),rr(e.g,t))}),yr),Ti=Wr((function(e,t,r){return 0===e.h&&(Kr(t,r,In(e.g)),!0)}),(function(e,t,r){null!=(t=te(t))&&(t=parseInt(t,10),ar(e,r,0),ir(e.g,t))}),wr),Ai=class{constructor(e,t){this.h=e,this.g=t,this.l=hn,this.m=dn,this.defaultValue=void 0}register(){w(this)}};function bi(e,t){return new Ai(e,t)}function ki(e,t){return(r,n)=>{if(Kn.length){const e=Kn.pop();e.o(n),Un(e.g,r,n),r=e}else r=new class{constructor(e,t){if(Gn.length){const r=Gn.pop();Un(r,e,t),e=r}else e=new class{constructor(e,t){this.h=null,this.m=!1,this.g=this.l=this.j=0,Un(this,e,t)}clear(){this.h=null,this.m=!1,this.g=this.l=this.j=0,this.aa=!1}}(e,t);this.g=e,this.l=this.g.g,this.h=this.m=-1,this.o(t)}o({fa:e=!1}={}){this.fa=e}}(r,n);try{const n=new e,i=n.u;Nr(t)(i,r);var o=n}finally{r.g.clear(),r.m=-1,r.h=-1,Kn.length<100&&Kn.push(r)}return o}}function Si(e){return function(){const t=new class{constructor(){this.l=[],this.h=0,this.g=new class{constructor(){this.g=[]}length(){return this.g.length}end(){const e=this.g;return this.g=[],e}}}};Xr(this.u,t,Pr(xr,Gr,jr,e)),or(t,t.g.end());const r=new Uint8Array(t.h),n=t.l,o=n.length;let i=0;for(let e=0;e<o;e++){const t=n[e];r.set(t,i),i+=t.length}return t.l=[r],r}}var Ri,xi=class extends $n{constructor(e){super(e)}},Li=[0,gi,Wr((function(e,t,r){return 2===e.h&&(Kr(t,r,(e=Wn(e))===U()?void 0:e),!0)}),(function(e,t,r){if(null!=t){if(t instanceof $n){const n=t.Oa;return void(n&&(t=n(t),null!=t&&ur(e,r,Ln(t).buffer)))}if(Array.isArray(t))return}ti(e,t,r)}),Er)],Fi=globalThis.trustedTypes;function Ii(e){void 0===Ri&&(Ri=function(){let e=null;if(!Fi)return e;try{const t=e=>e;e=Fi.createPolicy("goog#html",{createHTML:t,createScript:t,createScriptURL:t})}catch(e){}return e}());var t=Ri;return new class{constructor(e){this.g=e}toString(){return this.g+""}}(t?t.createScriptURL(e):e)}function Mi(e,...t){if(0===t.length)return Ii(e[0]);let r=e[0];for(let n=0;n<t.length;n++)r+=encodeURIComponent(t[n])+e[n+1];return Ii(r)}var Pi=[0,hi,Ti,di,-1,ui,Ti,-1],Ci=class extends $n{constructor(e){super(e)}},Oi=[0,di,mi,di,Ti,-1,zr((function(e,t,r){return(0===e.h||2===e.h)&&(t=en(t,0|t[Q],r,!1),2==e.h?zn(e,On,t):t.push(In(e.g)),!0)}),(function(e,t,r){if(null!=(t=Hr(te,t))&&t.length){r=cr(e,r);for(let r=0;r<t.length;r++)ir(e.g,t[r]);hr(e,r)}}),wr),mi,-1,[0,di,-1],Ti,di,-1],Ui=[0,mi,-2],Di=class extends $n{constructor(e){super(e)}},Ni=[0],Bi=[0,hi,di,1,di,-3],Gi=class extends $n{constructor(e){super(e,2)}},ji={};ji[336783863]=[0,mi,di,-1,hi,[0,[1,2,3,4,5,6,7,8,9],_i,Ni,_i,Oi,_i,Ui,_i,Bi,_i,Pi,_i,[0,mi,-2],_i,[0,mi,Ti],_i,[0,Ti,mi,-1],_i,[0,Ti,-1]],[0,mi],di,[0,[1,3],[2,4],_i,[0,ui],-1,_i,[0,pi],-1,yi,[0,mi,-1]],mi];var Vi=[0,ai,-1,fi,-3,ai,ui,gi,li,ai,-1,fi,li,fi,-2,gi];function Xi(e,t){tn(e,2,de(t),"")}function Hi(e,t){mn(e,3,t)}function Wi(e,t){mn(e,4,t)}var zi=class extends $n{constructor(e){super(e,500)}o(e){return dn(this,0,7,e)}},Ki=[-1,{}],Yi=[0,mi,1,Ki],$i=[0,mi,pi,Ki];function qi(e,t){yn(e,1,zi,t)}function Ji(e,t){mn(e,10,t)}function Zi(e,t){mn(e,15,t)}var Qi=class extends $n{constructor(e){super(e,500)}o(e){return dn(this,0,1001,e)}},ts=[-500,yi,[-500,gi,-1,pi,-3,[-2,ji,di],yi,Li,li,-1,Yi,$i,yi,[0,gi,fi],gi,Vi,li,pi,987,pi],4,yi,[-500,mi,-1,[-1,{}],998,mi],yi,[-500,mi,pi,-1,[-2,{},di],997,pi,-1],li,yi,[-500,mi,pi,Ki,998,pi],pi,li,Yi,$i,yi,[0,gi,-1,Ki],pi,-2,Vi,gi,-1,fi,[0,fi,wi],978,Ki,yi,Li];Qi.prototype.g=Si(ts);var es=ki(Qi,ts),ns=class extends $n{constructor(e){super(e)}},rs=class extends $n{constructor(e){super(e)}g(){return ln(this,ns,1)}},is=[0,yi,[0,hi,ri,mi,-1]],ss=ki(rs,is),os=class extends $n{constructor(e){super(e)}},as=class extends $n{constructor(e){super(e)}},cs=class extends $n{constructor(e){super(e)}h(){return hn(this,os,2)}g(){return ln(this,as,5)}},hs=ki(class extends $n{constructor(e){super(e)}},[0,pi,ui,si,[0,Ti,[0,hi,-3],[0,ri,-3],[0,hi,-1,[0,yi,[0,hi,-2]]],yi,[0,ri,-1,mi,ri]],mi,-1,oi,yi,[0,hi,ri],pi,oi]),us=class extends $n{constructor(e){super(e)}},ls=ki(class extends $n{constructor(e){super(e)}},[0,yi,[0,ri,-4]]),ds=class extends $n{constructor(e){super(e)}},fs=ki(class extends $n{constructor(e){super(e)}},[0,yi,[0,ri,-4]]),ps=class extends $n{constructor(e){super(e)}},gs=[0,hi,-1,si,Ti],ms=class extends $n{constructor(e){super(e)}};ms.prototype.g=Si([0,ri,-4,oi]);var ys=class extends $n{constructor(e){super(e)}},_s=ki(class extends $n{constructor(e){super(e)}},[0,yi,[0,1,hi,mi,is],oi]),vs=class extends $n{constructor(e){super(e)}},Es=class extends $n{constructor(e){super(e)}ma(){const e=Ke(this);return null==e?U():e}},ws=class extends $n{constructor(e){super(e)}},Ts=[1,2],As=ki(class extends $n{constructor(e){super(e)}},[0,yi,[0,Ts,_i,[0,si],_i,[0,vi],hi,mi],oi]),bs=class extends $n{constructor(e){super(e)}},ks=[0,mi,hi,ri,pi,-1],Ss=class extends $n{constructor(e){super(e)}},xs=[0,di,-1],Ls=class extends $n{constructor(e){super(e)}},Rs=[1,2,3,4,5],Fs=class extends $n{constructor(e){super(e)}g(){return null!=Ke(this)}h(){return null!=vn(this,2)}},Is=class extends $n{constructor(e){super(e)}g(){var e;return null!=(e=Jt(Ve(this,2)))&&e}},Ms=[0,vi,mi,[0,hi,oi,-1],[0,ci,oi]],Ps=[0,Ms,di,[0,Rs,_i,Bi,_i,Oi,_i,Pi,_i,Ni,_i,Ui],Ti],Cs=class extends $n{constructor(e){super(e)}},Os=[0,Ps,ri,-1,hi],Us=bi(502141897,Cs);ji[502141897]=Os;var Ds=ki(class extends $n{constructor(e){super(e)}},[0,[0,Ti,-1,ii,Ei],gs]),Ns=class extends $n{constructor(e){super(e)}},Bs=class extends $n{constructor(e){super(e)}},Gs=[0,Ps,ri,[0,Ps],di],js=[0,Ps,Os,Gs,ri,[0,[0,Ms]]],Vs=bi(508968150,Bs);ji[508968150]=js,ji[508968149]=Gs;var Xs=class extends $n{constructor(e){super(e)}},Hs=bi(513916220,Xs);ji[513916220]=[0,Ps,js,hi];var Ws=class extends $n{constructor(e){super(e)}h(){return hn(this,bs,2)}g(){He(this,2)}},zs=[0,Ps,ks];ji[478825465]=zs;var Ks=class extends $n{constructor(e){super(e)}},Ys=class extends $n{constructor(e){super(e)}},$s=class extends $n{constructor(e){super(e)}},qs=class extends $n{constructor(e){super(e)}},Js=class extends $n{constructor(e){super(e)}},Zs=[0,Ps,[0,Ps],zs,-1],Qs=[0,Ps,ri,hi],to=[0,Ps,ri],eo=[0,Ps,Qs,to,ri],no=bi(479097054,Js);ji[479097054]=[0,Ps,eo,Zs],ji[463370452]=Zs,ji[464864288]=Qs;var ro=bi(462713202,qs);ji[462713202]=eo,ji[474472470]=to;var io=class extends $n{constructor(e){super(e)}},so=class extends $n{constructor(e){super(e)}},oo=class extends $n{constructor(e){super(e)}},ao=class extends $n{constructor(e){super(e)}},co=[0,Ps,ri,-1,hi],ho=[0,Ps,ri,di];ao.prototype.g=Si([0,Ps,to,[0,Ps],Os,Gs,co,ho]);var uo=class extends $n{constructor(e){super(e)}},lo=bi(456383383,uo);ji[456383383]=[0,Ps,ks];var fo=class extends $n{constructor(e){super(e)}},po=bi(476348187,fo);ji[476348187]=[0,Ps,xs];var go=class extends $n{constructor(e){super(e)}},mo=class extends $n{constructor(e){super(e)}},yo=[0,Ti,-1],_o=bi(458105876,class extends $n{constructor(e){super(e)}g(){var e=this.u;const t=0|e[Q],r=2&t;return e=function(e,t,r){var n=mo;const o=2&t;let i=!1;if(null==r){if(o)return Ie();r=[]}else if(r.constructor===Ae){if(!(2&r.M)||o)return r;r=r.da()}else Array.isArray(r)?i=!!(2&r[Q]):r=[];if(o){if(!r.length)return Ie();i||(i=!0,it(r))}else i&&(i=!1,r=Qe(r));return i||(64&r[Q]?r[Q]&=-33:32&t&&nt(r,32)),We(e,t,2,n=new Ae(r,n,ge,void 0)),n}(e,t,Xe(e,t,2)),!r&&mo&&(e.pa=!0),e}});ji[458105876]=[0,yo,Yr,[!0,oi,[0,mi,-1,pi]]];var vo=class extends $n{constructor(e){super(e)}},Eo=bi(458105758,vo);ji[458105758]=[0,Ps,mi,yo];var wo=class extends $n{constructor(e){super(e)}},To=bi(443442058,wo);ji[443442058]=[0,Ps,mi,hi,ri,pi,-1,di,ri],ji[514774813]=co;var Mo,Ao=class extends $n{constructor(e){super(e)}},bo=bi(516587230,Ao);function ko(e,t){return t=t?t.clone():new bs,void 0!==e.displayNamesLocale?He(t,1,de(e.displayNamesLocale)):void 0===e.displayNamesLocale&&He(t,1),void 0!==e.maxResults?Tn(t,2,e.maxResults):"maxResults"in e&&He(t,2),void 0!==e.scoreThreshold?An(t,3,e.scoreThreshold):"scoreThreshold"in e&&He(t,3),void 0!==e.categoryAllowlist?bn(t,4,e.categoryAllowlist):"categoryAllowlist"in e&&He(t,4),void 0!==e.categoryDenylist?bn(t,5,e.categoryDenylist):"categoryDenylist"in e&&He(t,5),t}function So(e,t=-1,r=""){return{categories:e.map((e=>{var t,r,n,o,i,a,s;return{index:null!=(r=null!=(t=_n(e,1))?t:0)?r:-1,score:null!=(n=En(e,2))?n:0,categoryName:null!=(i=null!=(o=vn(e,3))?o:"")?i:"",displayName:null!=(s=null!=(a=vn(e,4))?a:"")?s:""}})),headIndex:t,headName:r}}function xo(e){var t,r,n,o,i,a,s,c,A,u,l,d,g,f=$e(e,3,qt,Ye()),h=$e(e,2,te,Ye()),p=$e(e,1,fe,Ye()),E=$e(e,9,fe,Ye());const m={categories:[],keypoints:[]};for(let e=0;e<f.length;e++)m.categories.push({score:f[e],index:null!=(t=h[e])?t:-1,categoryName:null!=(r=p[e])?r:"",displayName:null!=(n=E[e])?n:""});if((f=null==(o=hn(e,cs,4))?void 0:o.h())&&(m.boundingBox={originX:null!=(i=_n(f,1))?i:0,originY:null!=(a=_n(f,2))?a:0,width:null!=(s=_n(f,3))?s:0,height:null!=(c=_n(f,4))?c:0,angle:0}),null==(A=hn(e,cs,4))?void 0:A.g().length)for(const t of hn(e,cs,4).g())m.keypoints.push({x:null!=(u=ze(t,1))?u:0,y:null!=(l=ze(t,2))?l:0,score:null!=(d=ze(t,4))?d:0,label:null!=(g=vn(t,3))?g:""});return m}function Lo(e){var t,r,n,o;const i=[];for(const a of ln(e,ds,1))i.push({x:null!=(t=En(a,1))?t:0,y:null!=(r=En(a,2))?r:0,z:null!=(n=En(a,3))?n:0,visibility:null!=(o=En(a,4))?o:0});return i}function Ro(e){var t,r,n,o;const i=[];for(const a of ln(e,us,1))i.push({x:null!=(t=En(a,1))?t:0,y:null!=(r=En(a,2))?r:0,z:null!=(n=En(a,3))?n:0,visibility:null!=(o=En(a,4))?o:0});return i}function Fo(e){return Array.from(e,(e=>e>127?e-256:e))}function Io(e,t){if(e.length!==t.length)throw Error(`Cannot compute cosine similarity between embeddings of different sizes (${e.length} vs. ${t.length}).`);let r=0,n=0,o=0;for(let i=0;i<e.length;i++)r+=e[i]*t[i],n+=e[i]*e[i],o+=t[i]*t[i];if(n<=0||o<=0)throw Error("Cannot compute cosine similarity on embedding with 0 norm.");return r/Math.sqrt(n*o)}ji[516587230]=[0,Ps,co,ho,ri],ji[518928384]=ho;var Po=new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]);async function Co(){if(void 0===Mo)try{await WebAssembly.instantiate(Po),Mo=!0}catch(e){Mo=!1}return Mo}async function Oo(e,t=Mi``){const r=await Co()?"wasm_internal":"wasm_nosimd_internal";return{wasmLoaderPath:`${t}/${e}_${r}.js`,wasmBinaryPath:`${t}/${e}_${r}.wasm`}}var Uo=class{};function Do(){var e=navigator;return!("undefined"==typeof OffscreenCanvas||function(e=navigator){return(e=e.userAgent).includes("Safari")&&!e.includes("Chrome")}(e)&&!((e=e.userAgent.match(/Version\/([\d]+).*Safari/))&&e.length>=1&&Number(e[1])>=17))}async function No(e){if("function"!=typeof importScripts){const t=document.createElement("script");return t.src=e.toString(),t.crossOrigin="anonymous",new Promise(((e,r)=>{t.addEventListener("load",(()=>{e()}),!1),t.addEventListener("error",(e=>{r(e)}),!1),document.body.appendChild(t)}))}importScripts(e.toString())}function Bo(e){return void 0!==e.videoWidth?[e.videoWidth,e.videoHeight]:void 0!==e.naturalWidth?[e.naturalWidth,e.naturalHeight]:void 0!==e.displayWidth?[e.displayWidth,e.displayHeight]:[e.width,e.height]}function Go(e,t,r){e.m||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target"),r(t=e.i.stringToNewUTF8(t)),e.i._free(t)}function jo(e,t,r){if(!e.i.canvas)throw Error("No OpenGL canvas configured.");if(r?e.i._bindTextureToStream(r):e.i._bindTextureToCanvas(),!(r=e.i.canvas.getContext("webgl2")||e.i.canvas.getContext("webgl")))throw Error("Failed to obtain WebGL context from the provided canvas. `getContext()` should only be invoked with `webgl` or `webgl2`.");e.i.gpuOriginForWebTexturesIsBottomLeft&&r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!0),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,t),e.i.gpuOriginForWebTexturesIsBottomLeft&&r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1);const[n,o]=Bo(t);return!e.l||n===e.i.canvas.width&&o===e.i.canvas.height||(e.i.canvas.width=n,e.i.canvas.height=o),[n,o]}function Vo(e,t,r){e.m||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target");const n=new Uint32Array(t.length);for(let r=0;r<t.length;r++)n[r]=e.i.stringToNewUTF8(t[r]);t=e.i._malloc(4*n.length),e.i.HEAPU32.set(n,t>>2),r(t);for(const t of n)e.i._free(t);e.i._free(t)}function Xo(e,t,r){e.i.simpleListeners=e.i.simpleListeners||{},e.i.simpleListeners[t]=r}function Ho(e,t,r){let n=[];e.i.simpleListeners=e.i.simpleListeners||{},e.i.simpleListeners[t]=(e,t,o)=>{t?(r(n,o),n=[]):n.push(e)}}async function Wo(e,t,r,n){return e=await(async(e,t,r,n,o)=>{if(t&&await No(t),!self.ModuleFactory)throw Error("ModuleFactory not set.");if(r&&(await No(r),!self.ModuleFactory))throw Error("ModuleFactory not set.");return self.Module&&o&&((t=self.Module).locateFile=o.locateFile,o.mainScriptUrlOrBlob&&(t.mainScriptUrlOrBlob=o.mainScriptUrlOrBlob)),o=await self.ModuleFactory(self.Module||o),self.ModuleFactory=self.Module=void 0,new e(o,n)})(e,r.wasmLoaderPath,r.assetLoaderPath,t,{locateFile:e=>e.endsWith(".wasm")?r.wasmBinaryPath.toString():r.assetBinaryPath&&e.endsWith(".data")?r.assetBinaryPath.toString():e}),await e.o(n),e}function zo(e,t){const r=hn(e.baseOptions,Fs,1)||new Fs;"string"==typeof t?(He(r,2,de(t)),He(r,1)):t instanceof Uint8Array&&(He(r,1,dt(t,!1)),He(r,2)),dn(e.baseOptions,0,1,r)}function Ko(e){try{const t=e.G.length;if(1===t)throw Error(e.G[0].message);if(t>1)throw Error("Encountered multiple errors: "+e.G.map((e=>e.message)).join(", "))}finally{e.G=[]}}function Yo(e,t){e.B=Math.max(e.B,t)}function $o(e,t){e.A=new zi,Xi(e.A,"PassThroughCalculator"),Hi(e.A,"free_memory"),Wi(e.A,"free_memory_unused_out"),Ji(t,"free_memory"),qi(t,e.A)}function qo(e,t){Hi(e.A,t),Wi(e.A,t+"_unused_out")}function Jo(e){e.g.addBoolToStream(!0,"free_memory",e.B)}Uo.forVisionTasks=function(e){return Oo("vision",e)},Uo.forTextTasks=function(e){return Oo("text",e)},Uo.forGenAiExperimentalTasks=function(e){return Oo("genai_experimental",e)},Uo.forGenAiTasks=function(e){return Oo("genai",e)},Uo.forAudioTasks=function(e){return Oo("audio",e)},Uo.isSimdSupported=function(){return Co()};var Zo=class{constructor(e){this.g=e,this.G=[],this.B=0,this.g.setAutoRenderToScreen(!1)}l(e,t=!0){var r,n,o,i,a,s;if(t){const t=e.baseOptions||{};if((null==(r=e.baseOptions)?void 0:r.modelAssetBuffer)&&(null==(n=e.baseOptions)?void 0:n.modelAssetPath))throw Error("Cannot set both baseOptions.modelAssetPath and baseOptions.modelAssetBuffer");if(!((null==(o=hn(this.baseOptions,Fs,1))?void 0:o.g())||(null==(i=hn(this.baseOptions,Fs,1))?void 0:i.h())||(null==(a=e.baseOptions)?void 0:a.modelAssetBuffer)||(null==(s=e.baseOptions)?void 0:s.modelAssetPath)))throw Error("Either baseOptions.modelAssetPath or baseOptions.modelAssetBuffer must be set");if(function(e,t){let r=hn(e.baseOptions,Ls,3);if(!r){var n=r=new Ls,o=new Di;fn(n,4,Rs,o)}"delegate"in t&&("GPU"===t.delegate?(t=r,n=new Ci,fn(t,2,Rs,n)):(t=r,n=new Di,fn(t,4,Rs,n))),dn(e.baseOptions,0,3,r)}(this,t),t.modelAssetPath)return fetch(t.modelAssetPath.toString()).then((e=>{if(e.ok)return e.arrayBuffer();throw Error(`Failed to fetch model: ${t.modelAssetPath} (${e.status})`)})).then((e=>{try{this.g.i.FS_unlink("/model.dat")}catch(e){}this.g.i.FS_createDataFile("/","model.dat",new Uint8Array(e),!0,!1,!1),zo(this,"/model.dat"),this.m(),this.J()}));if(t.modelAssetBuffer instanceof Uint8Array)zo(this,t.modelAssetBuffer);else if(t.modelAssetBuffer)return async function(e){const t=[];for(var r=0;;){const{done:n,value:o}=await e.read();if(n)break;t.push(o),r+=o.length}if(0===t.length)return new Uint8Array(0);if(1===t.length)return t[0];e=new Uint8Array(r),r=0;for(const n of t)e.set(n,r),r+=n.length;return e}(t.modelAssetBuffer).then((e=>{zo(this,e),this.m(),this.J()}))}return this.m(),this.J(),Promise.resolve()}J(){}ca(){let e;if(this.g.ca((t=>{e=es(t)})),!e)throw Error("Failed to retrieve CalculatorGraphConfig");return e}setGraph(e,t){this.g.attachErrorListener(((e,t)=>{this.G.push(Error(t))})),this.g.Ha(),this.g.setGraph(e,t),this.A=void 0,Ko(this)}finishProcessing(){this.g.finishProcessing(),Ko(this)}close(){this.A=void 0,this.g.closeGraph()}};function Qo(e,t){if(!e)throw Error(`Unable to obtain required WebGL resource: ${t}`);return e}Zo.prototype.close=Zo.prototype.close;var ta=class{constructor(e,t,r,n){this.g=e,this.h=t,this.m=r,this.l=n}bind(){this.g.bindVertexArray(this.h)}close(){this.g.deleteVertexArray(this.h),this.g.deleteBuffer(this.m),this.g.deleteBuffer(this.l)}};function ea(e,t,r){const n=e.g;if(r=Qo(n.createShader(r),"Failed to create WebGL shader"),n.shaderSource(r,t),n.compileShader(r),!n.getShaderParameter(r,n.COMPILE_STATUS))throw Error(`Could not compile WebGL shader: ${n.getShaderInfoLog(r)}`);return n.attachShader(e.h,r),r}function na(e,t){const r=e.g,n=Qo(r.createVertexArray(),"Failed to create vertex array");r.bindVertexArray(n);const o=Qo(r.createBuffer(),"Failed to create buffer");r.bindBuffer(r.ARRAY_BUFFER,o),r.enableVertexAttribArray(e.P),r.vertexAttribPointer(e.P,2,r.FLOAT,!1,0,0),r.bufferData(r.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),r.STATIC_DRAW);const i=Qo(r.createBuffer(),"Failed to create buffer");return r.bindBuffer(r.ARRAY_BUFFER,i),r.enableVertexAttribArray(e.J),r.vertexAttribPointer(e.J,2,r.FLOAT,!1,0,0),r.bufferData(r.ARRAY_BUFFER,new Float32Array(t?[0,1,0,0,1,0,1,1]:[0,0,0,1,1,1,1,0]),r.STATIC_DRAW),r.bindBuffer(r.ARRAY_BUFFER,null),r.bindVertexArray(null),new ta(r,n,o,i)}function ra(e,t){if(e.g){if(t!==e.g)throw Error("Cannot change GL context once initialized")}else e.g=t}function ia(e,t,r,n){return ra(e,t),e.h||(e.m(),e.C()),r?(e.s||(e.s=na(e,!0)),r=e.s):(e.v||(e.v=na(e,!1)),r=e.v),t.useProgram(e.h),r.bind(),e.l(),e=n(),r.g.bindVertexArray(null),e}function sa(e,t,r){return ra(e,t),e=Qo(t.createTexture(),"Failed to create texture"),t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,null!=r?r:t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,null!=r?r:t.LINEAR),t.bindTexture(t.TEXTURE_2D,null),e}function oa(e,t,r){ra(e,t),e.A||(e.A=Qo(t.createFramebuffer(),"Failed to create framebuffe.")),t.bindFramebuffer(t.FRAMEBUFFER,e.A),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,r,0)}function aa(e){var t;null==(t=e.g)||t.bindFramebuffer(e.g.FRAMEBUFFER,null)}var va,ca=class{G(){return"\n precision mediump float;\n varying vec2 vTex;\n uniform sampler2D inputTexture;\n void main() {\n gl_FragColor = texture2D(inputTexture, vTex);\n }\n "}m(){const e=this.g;if(this.h=Qo(e.createProgram(),"Failed to create WebGL program"),this.Z=ea(this,"\n attribute vec2 aVertex;\n attribute vec2 aTex;\n varying vec2 vTex;\n void main(void) {\n gl_Position = vec4(aVertex, 0.0, 1.0);\n vTex = aTex;\n }",e.VERTEX_SHADER),this.Y=ea(this,this.G(),e.FRAGMENT_SHADER),e.linkProgram(this.h),!e.getProgramParameter(this.h,e.LINK_STATUS))throw Error(`Error during program linking: ${e.getProgramInfoLog(this.h)}`);this.P=e.getAttribLocation(this.h,"aVertex"),this.J=e.getAttribLocation(this.h,"aTex")}C(){}l(){}close(){if(this.h){const e=this.g;e.deleteProgram(this.h),e.deleteShader(this.Z),e.deleteShader(this.Y)}this.A&&this.g.deleteFramebuffer(this.A),this.v&&this.v.close(),this.s&&this.s.close()}},ha=class extends ca{G(){return"\n precision mediump float;\n uniform sampler2D backgroundTexture;\n uniform sampler2D maskTexture;\n uniform sampler2D colorMappingTexture;\n varying vec2 vTex;\n void main() {\n vec4 backgroundColor = texture2D(backgroundTexture, vTex);\n float category = texture2D(maskTexture, vTex).r;\n vec4 categoryColor = texture2D(colorMappingTexture, vec2(category, 0.0));\n gl_FragColor = mix(backgroundColor, categoryColor, categoryColor.a);\n }\n "}C(){const e=this.g;e.activeTexture(e.TEXTURE1),this.B=sa(this,e,e.LINEAR),e.activeTexture(e.TEXTURE2),this.j=sa(this,e,e.NEAREST)}m(){super.m();const e=this.g;this.L=Qo(e.getUniformLocation(this.h,"backgroundTexture"),"Uniform location"),this.U=Qo(e.getUniformLocation(this.h,"colorMappingTexture"),"Uniform location"),this.K=Qo(e.getUniformLocation(this.h,"maskTexture"),"Uniform location")}l(){super.l();const e=this.g;e.uniform1i(this.K,0),e.uniform1i(this.L,1),e.uniform1i(this.U,2)}close(){this.B&&this.g.deleteTexture(this.B),this.j&&this.g.deleteTexture(this.j),super.close()}},ua=class extends ca{G(){return"\n precision mediump float;\n uniform sampler2D maskTexture;\n uniform sampler2D defaultTexture;\n uniform sampler2D overlayTexture;\n varying vec2 vTex;\n void main() {\n float confidence = texture2D(maskTexture, vTex).r;\n vec4 defaultColor = texture2D(defaultTexture, vTex);\n vec4 overlayColor = texture2D(overlayTexture, vTex);\n // Apply the alpha from the overlay and merge in the default color\n overlayColor = mix(defaultColor, overlayColor, overlayColor.a);\n gl_FragColor = mix(defaultColor, overlayColor, confidence);\n }\n "}C(){const e=this.g;e.activeTexture(e.TEXTURE1),this.j=sa(this,e),e.activeTexture(e.TEXTURE2),this.B=sa(this,e)}m(){super.m();const e=this.g;this.K=Qo(e.getUniformLocation(this.h,"defaultTexture"),"Uniform location"),this.L=Qo(e.getUniformLocation(this.h,"overlayTexture"),"Uniform location"),this.H=Qo(e.getUniformLocation(this.h,"maskTexture"),"Uniform location")}l(){super.l();const e=this.g;e.uniform1i(this.H,0),e.uniform1i(this.K,1),e.uniform1i(this.L,2)}close(){this.j&&this.g.deleteTexture(this.j),this.B&&this.g.deleteTexture(this.B),super.close()}};function la(e,t){switch(t){case 0:return e.g.find((e=>e instanceof Uint8Array));case 1:return e.g.find((e=>e instanceof Float32Array));case 2:return e.g.find((e=>"undefined"!=typeof WebGLTexture&&e instanceof WebGLTexture));default:throw Error(`Type is not supported: ${t}`)}}function da(e){var t=la(e,1);if(!t){if(t=la(e,0))t=new Float32Array(t).map((e=>e/255));else{t=new Float32Array(e.width*e.height);const n=pa(e);var r=ma(e);if(oa(r,n,fa(e)),"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"document"in self&&"ontouchend"in self.document){r=new Float32Array(e.width*e.height*4),n.readPixels(0,0,e.width,e.height,n.RGBA,n.FLOAT,r);for(let e=0,n=0;e<t.length;++e,n+=4)t[e]=r[n]}else n.readPixels(0,0,e.width,e.height,n.RED,n.FLOAT,t)}e.g.push(t)}return t}function fa(e){let t=la(e,2);if(!t){const r=pa(e);t=ya(e);const n=da(e),o=ga(e);r.texImage2D(r.TEXTURE_2D,0,o,e.width,e.height,0,r.RED,r.FLOAT,n),_a(e)}return t}function pa(e){if(!e.canvas)throw Error("Conversion to different image formats require that a canvas is passed when initializing the image.");return e.h||(e.h=Qo(e.canvas.getContext("webgl2"),"You cannot use a canvas that is already bound to a different type of rendering context.")),e.h}function ga(e){if(e=pa(e),!va)if(e.getExtension("EXT_color_buffer_float")&&e.getExtension("OES_texture_float_linear")&&e.getExtension("EXT_float_blend"))va=e.R32F;else{if(!e.getExtension("EXT_color_buffer_half_float"))throw Error("GPU does not fully support 4-channel float32 or float16 formats");va=e.R16F}return va}function ma(e){return e.l||(e.l=new ca),e.l}function ya(e){const t=pa(e);t.viewport(0,0,e.width,e.height),t.activeTexture(t.TEXTURE0);let r=la(e,2);return r||(r=sa(ma(e),t,e.m?t.LINEAR:t.NEAREST),e.g.push(r),e.j=!0),t.bindTexture(t.TEXTURE_2D,r),r}function _a(e){e.h.bindTexture(e.h.TEXTURE_2D,null)}var Ea=class{constructor(e,t,r,n,o,i,a){this.g=e,this.m=t,this.j=r,this.canvas=n,this.l=o,this.width=i,this.height=a,this.j&&0==--wa&&console.error("You seem to be creating MPMask instances without invoking .close(). This leaks resources.")}Da(){return!!la(this,0)}ja(){return!!la(this,1)}R(){return!!la(this,2)}ia(){return(e=la(this,0))||(e=da(this),e=new Uint8Array(e.map((e=>255*e))),this.g.push(e)),e;var e}ha(){return da(this)}N(){return fa(this)}clone(){const e=[];for(const t of this.g){let r;if(t instanceof Uint8Array)r=new Uint8Array(t);else if(t instanceof Float32Array)r=new Float32Array(t);else{if(!(t instanceof WebGLTexture))throw Error(`Type is not supported: ${t}`);{const e=pa(this),t=ma(this);e.activeTexture(e.TEXTURE1),r=sa(t,e,this.m?e.LINEAR:e.NEAREST),e.bindTexture(e.TEXTURE_2D,r);const n=ga(this);e.texImage2D(e.TEXTURE_2D,0,n,this.width,this.height,0,e.RED,e.FLOAT,null),e.bindTexture(e.TEXTURE_2D,null),oa(t,e,r),ia(t,e,!1,(()=>{ya(this),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT),e.drawArrays(e.TRIANGLE_FAN,0,4),_a(this)})),aa(t),_a(this)}}e.push(r)}return new Ea(e,this.m,this.R(),this.canvas,this.l,this.width,this.height)}close(){this.j&&pa(this).deleteTexture(la(this,2)),wa=-1}};Ea.prototype.close=Ea.prototype.close,Ea.prototype.clone=Ea.prototype.clone,Ea.prototype.getAsWebGLTexture=Ea.prototype.N,Ea.prototype.getAsFloat32Array=Ea.prototype.ha,Ea.prototype.getAsUint8Array=Ea.prototype.ia,Ea.prototype.hasWebGLTexture=Ea.prototype.R,Ea.prototype.hasFloat32Array=Ea.prototype.ja,Ea.prototype.hasUint8Array=Ea.prototype.Da;var wa=250,Ta={color:"white",lineWidth:4,radius:6};function Aa(e){return __spreadValues(__spreadProps(__spreadValues({},Ta),{fillColor:(e=e||{}).color}),e)}function ba(e,t){return e instanceof Function?e(t):e}function ka(e,t,r){return Math.max(Math.min(t,r),Math.min(Math.max(t,r),e))}function Sa(e){if(!e.l)throw Error("CPU rendering requested but CanvasRenderingContext2D not provided.");return e.l}function xa(e){if(!e.j)throw Error("GPU rendering requested but WebGL2RenderingContext not provided.");return e.j}function La(e,t,r){var n;if(t.R())r(t.N());else{const o=t.ja()?t.ha():t.ia();e.m=null!=(n=e.m)?n:new ca;const i=xa(e);r((e=new Ea([o],t.m,!1,i.canvas,e.m,t.width,t.height)).N()),e.close()}}function Ra(e,t,r,n){const o=((s=e).g||(s.g=new ha),s.g),i=xa(e),a=Array.isArray(r)?new ImageData(new Uint8ClampedArray(r),1,1):r;var s;ia(o,i,!0,(()=>{!function(e,t,r,n){const o=e.g;if(o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,t),o.activeTexture(o.TEXTURE1),o.bindTexture(o.TEXTURE_2D,e.B),o.texImage2D(o.TEXTURE_2D,0,o.RGBA,o.RGBA,o.UNSIGNED_BYTE,r),e.H&&function(e,t){if(e!==t)return!1;e=e.entries(),t=t.entries();for(const[n,o]of e){e=n;const i=o;var r=t.next();if(r.done)return!1;const[a,s]=r.value;if(r=s,e!==a||i[0]!==r[0]||i[1]!==r[1]||i[2]!==r[2]||i[3]!==r[3])return!1}return!!t.next().done}(e.H,n))o.activeTexture(o.TEXTURE2),o.bindTexture(o.TEXTURE_2D,e.j);else{e.H=n;const t=Array(1024).fill(0);n.forEach(((e,r)=>{if(4!==e.length)throw Error(`Color at index ${r} is not a four-channel value.`);t[4*r]=e[0],t[4*r+1]=e[1],t[4*r+2]=e[2],t[4*r+3]=e[3]})),o.activeTexture(o.TEXTURE2),o.bindTexture(o.TEXTURE_2D,e.j),o.texImage2D(o.TEXTURE_2D,0,o.RGBA,256,1,0,o.RGBA,o.UNSIGNED_BYTE,new Uint8Array(t))}}(o,t,a,n),i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT),i.drawArrays(i.TRIANGLE_FAN,0,4);const e=o.g;e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,null),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,null),e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,null)}))}function Fa(e,t,r,n){const o=xa(e),i=((c=e).h||(c.h=new ua),c.h),a=Array.isArray(r)?new ImageData(new Uint8ClampedArray(r),1,1):r,s=Array.isArray(n)?new ImageData(new Uint8ClampedArray(n),1,1):n;var c;ia(i,o,!0,(()=>{var e=i.g;e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,t),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,i.j),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,a),e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,i.B),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,s),o.clearColor(0,0,0,0),o.clear(o.COLOR_BUFFER_BIT),o.drawArrays(o.TRIANGLE_FAN,0,4),o.bindTexture(o.TEXTURE_2D,null),(e=i.g).activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,null),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,null),e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,null)}))}var Ia=class{constructor(e,t){"undefined"!=typeof CanvasRenderingContext2D&&e instanceof CanvasRenderingContext2D||e instanceof OffscreenCanvasRenderingContext2D?(this.l=e,this.j=t):this.j=e}wa(e,t){if(e){var r=Sa(this);t=Aa(t),r.save();var n=r.canvas,o=0;for(const i of e)r.fillStyle=ba(t.fillColor,{index:o,from:i}),r.strokeStyle=ba(t.color,{index:o,from:i}),r.lineWidth=ba(t.lineWidth,{index:o,from:i}),(e=new Path2D).arc(i.x*n.width,i.y*n.height,ba(t.radius,{index:o,from:i}),0,2*Math.PI),r.fill(e),r.stroke(e),++o;r.restore()}}va(e,t,r){if(e&&t){var n=Sa(this);r=Aa(r),n.save();var o=n.canvas,i=0;for(const a of t){n.beginPath(),t=e[a.start];const s=e[a.end];t&&s&&(n.strokeStyle=ba(r.color,{index:i,from:t,to:s}),n.lineWidth=ba(r.lineWidth,{index:i,from:t,to:s}),n.moveTo(t.x*o.width,t.y*o.height),n.lineTo(s.x*o.width,s.y*o.height)),++i,n.stroke()}n.restore()}}sa(e,t){const r=Sa(this);t=Aa(t),r.save(),r.beginPath(),r.lineWidth=ba(t.lineWidth,{}),r.strokeStyle=ba(t.color,{}),r.fillStyle=ba(t.fillColor,{}),r.moveTo(e.originX,e.originY),r.lineTo(e.originX+e.width,e.originY),r.lineTo(e.originX+e.width,e.originY+e.height),r.lineTo(e.originX,e.originY+e.height),r.lineTo(e.originX,e.originY),r.stroke(),r.fill(),r.restore()}ta(e,t,r=[0,0,0,255]){this.l?function(e,t,r,n){const o=xa(e);La(e,t,(t=>{Ra(e,t,r,n),(t=Sa(e)).drawImage(o.canvas,0,0,t.canvas.width,t.canvas.height)}))}(this,e,r,t):Ra(this,e.N(),r,t)}ua(e,t,r){this.l?function(e,t,r,n){const o=xa(e);La(e,t,(t=>{Fa(e,t,r,n),(t=Sa(e)).drawImage(o.canvas,0,0,t.canvas.width,t.canvas.height)}))}(this,e,t,r):Fa(this,e.N(),t,r)}close(){var e,t,r;null==(e=this.g)||e.close(),this.g=void 0,null==(t=this.h)||t.close(),this.h=void 0,null==(r=this.m)||r.close(),this.m=void 0}};function Ma(e,t){switch(t){case 0:return e.g.find((e=>e instanceof ImageData));case 1:return e.g.find((e=>"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap));case 2:return e.g.find((e=>"undefined"!=typeof WebGLTexture&&e instanceof WebGLTexture));default:throw Error(`Type is not supported: ${t}`)}}function Pa(e){var t=Ma(e,0);if(!t){t=Oa(e);const r=Ua(e),n=new Uint8Array(e.width*e.height*4);oa(r,t,Ca(e)),t.readPixels(0,0,e.width,e.height,t.RGBA,t.UNSIGNED_BYTE,n),aa(r),t=new ImageData(new Uint8ClampedArray(n.buffer),e.width,e.height),e.g.push(t)}return t}function Ca(e){let t=Ma(e,2);if(!t){const r=Oa(e);t=Da(e);const n=Ma(e,1)||Pa(e);r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,n),Na(e)}return t}function Oa(e){if(!e.canvas)throw Error("Conversion to different image formats require that a canvas is passed when initializing the image.");return e.h||(e.h=Qo(e.canvas.getContext("webgl2"),"You cannot use a canvas that is already bound to a different type of rendering context.")),e.h}function Ua(e){return e.l||(e.l=new ca),e.l}function Da(e){const t=Oa(e);t.viewport(0,0,e.width,e.height),t.activeTexture(t.TEXTURE0);let r=Ma(e,2);return r||(r=sa(Ua(e),t),e.g.push(r),e.m=!0),t.bindTexture(t.TEXTURE_2D,r),r}function Na(e){e.h.bindTexture(e.h.TEXTURE_2D,null)}function Ba(e){const t=Oa(e);return ia(Ua(e),t,!0,(()=>function(e,t){const r=e.canvas;if(r.width===e.width&&r.height===e.height)return t();const n=r.width,o=r.height;return r.width=e.width,r.height=e.height,e=t(),r.width=n,r.height=o,e}(e,(()=>{if(t.bindFramebuffer(t.FRAMEBUFFER,null),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.drawArrays(t.TRIANGLE_FAN,0,4),!(e.canvas instanceof OffscreenCanvas))throw Error("Conversion to ImageBitmap requires that the MediaPipe Tasks is initialized with an OffscreenCanvas");return e.canvas.transferToImageBitmap()}))))}Ia.prototype.close=Ia.prototype.close,Ia.prototype.drawConfidenceMask=Ia.prototype.ua,Ia.prototype.drawCategoryMask=Ia.prototype.ta,Ia.prototype.drawBoundingBox=Ia.prototype.sa,Ia.prototype.drawConnectors=Ia.prototype.va,Ia.prototype.drawLandmarks=Ia.prototype.wa,Ia.lerp=function(e,t,r,n,o){return ka(n*(1-(e-t)/(r-t))+o*(1-(r-e)/(r-t)),n,o)},Ia.clamp=ka;var Ga=class{constructor(e,t,r,n,o,i,a){this.g=e,this.j=t,this.m=r,this.canvas=n,this.l=o,this.width=i,this.height=a,(this.j||this.m)&&0==--ja&&console.error("You seem to be creating MPImage instances without invoking .close(). This leaks resources.")}Ca(){return!!Ma(this,0)}ka(){return!!Ma(this,1)}R(){return!!Ma(this,2)}Aa(){return Pa(this)}za(){var e=Ma(this,1);return e||(Ca(this),Da(this),e=Ba(this),Na(this),this.g.push(e),this.j=!0),e}N(){return Ca(this)}clone(){const e=[];for(const t of this.g){let r;if(t instanceof ImageData)r=new ImageData(t.data,this.width,this.height);else if(t instanceof WebGLTexture){const e=Oa(this),t=Ua(this);e.activeTexture(e.TEXTURE1),r=sa(t,e),e.bindTexture(e.TEXTURE_2D,r),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,this.width,this.height,0,e.RGBA,e.UNSIGNED_BYTE,null),e.bindTexture(e.TEXTURE_2D,null),oa(t,e,r),ia(t,e,!1,(()=>{Da(this),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT),e.drawArrays(e.TRIANGLE_FAN,0,4),Na(this)})),aa(t),Na(this)}else{if(!(t instanceof ImageBitmap))throw Error(`Type is not supported: ${t}`);Ca(this),Da(this),r=Ba(this),Na(this)}e.push(r)}return new Ga(e,this.ka(),this.R(),this.canvas,this.l,this.width,this.height)}close(){this.j&&Ma(this,1).close(),this.m&&Oa(this).deleteTexture(Ma(this,2)),ja=-1}};Ga.prototype.close=Ga.prototype.close,Ga.prototype.clone=Ga.prototype.clone,Ga.prototype.getAsWebGLTexture=Ga.prototype.N,Ga.prototype.getAsImageBitmap=Ga.prototype.za,Ga.prototype.getAsImageData=Ga.prototype.Aa,Ga.prototype.hasWebGLTexture=Ga.prototype.R,Ga.prototype.hasImageBitmap=Ga.prototype.ka,Ga.prototype.hasImageData=Ga.prototype.Ca;var ja=250;function Va(...e){return e.map((([e,t])=>({start:e,end:t})))}var Ha,Xa=function(e){return class extends e{Ha(){this.i._registerModelResourcesGraphService()}}}((Ha=class{constructor(e,t){this.l=!0,this.i=e,this.g=null,this.h=0,this.m="function"==typeof this.i._addIntToInputStream,void 0!==t?this.i.canvas=t:Do()?this.i.canvas=new OffscreenCanvas(1,1):(console.warn("OffscreenCanvas not supported and GraphRunner constructor glCanvas parameter is undefined. Creating backup canvas."),this.i.canvas=document.createElement("canvas"))}async initializeGraph(e){const t=await(await fetch(e)).arrayBuffer();e=!(e.endsWith(".pbtxt")||e.endsWith(".textproto")),this.setGraph(new Uint8Array(t),e)}setGraphFromString(e){this.setGraph((new TextEncoder).encode(e),!1)}setGraph(e,t){const r=e.length,n=this.i._malloc(r);this.i.HEAPU8.set(e,n),t?this.i._changeBinaryGraph(r,n):this.i._changeTextGraph(r,n),this.i._free(n)}configureAudio(e,t,r,n,o){this.i._configureAudio||console.warn('Attempting to use configureAudio without support for input audio. Is build dep ":gl_graph_runner_audio" missing?'),Go(this,n||"input_audio",(n=>{Go(this,o=o||"audio_header",(o=>{this.i._configureAudio(n,o,e,null!=t?t:0,r)}))}))}setAutoResizeCanvas(e){this.l=e}setAutoRenderToScreen(e){this.i._setAutoRenderToScreen(e)}setGpuBufferVerticalFlip(e){this.i.gpuOriginForWebTexturesIsBottomLeft=e}ca(e){Xo(this,"__graph_config__",(t=>{e(t)})),Go(this,"__graph_config__",(e=>{this.i._getGraphConfig(e,void 0)})),delete this.i.simpleListeners.__graph_config__}attachErrorListener(e){this.i.errorListener=e}attachEmptyPacketListener(e,t){this.i.emptyPacketListeners=this.i.emptyPacketListeners||{},this.i.emptyPacketListeners[e]=t}addAudioToStream(e,t,r){this.addAudioToStreamWithShape(e,0,0,t,r)}addAudioToStreamWithShape(e,t,r,n,o){const i=4*e.length;this.h!==i&&(this.g&&this.i._free(this.g),this.g=this.i._malloc(i),this.h=i),this.i.HEAPF32.set(e,this.g/4),Go(this,n,(e=>{this.i._addAudioToInputStream(this.g,t,r,e,o)}))}addGpuBufferToStream(e,t,r){Go(this,t,(t=>{const[n,o]=jo(this,e,t);this.i._addBoundTextureToStream(t,n,o,r)}))}addBoolToStream(e,t,r){Go(this,t,(t=>{this.i._addBoolToInputStream(e,t,r)}))}addDoubleToStream(e,t,r){Go(this,t,(t=>{this.i._addDoubleToInputStream(e,t,r)}))}addFloatToStream(e,t,r){Go(this,t,(t=>{this.i._addFloatToInputStream(e,t,r)}))}addIntToStream(e,t,r){Go(this,t,(t=>{this.i._addIntToInputStream(e,t,r)}))}addUintToStream(e,t,r){Go(this,t,(t=>{this.i._addUintToInputStream(e,t,r)}))}addStringToStream(e,t,r){Go(this,t,(t=>{Go(this,e,(e=>{this.i._addStringToInputStream(e,t,r)}))}))}addStringRecordToStream(e,t,r){Go(this,t,(t=>{Vo(this,Object.keys(e),(n=>{Vo(this,Object.values(e),(o=>{this.i._addFlatHashMapToInputStream(n,o,Object.keys(e).length,t,r)}))}))}))}addProtoToStream(e,t,r,n){Go(this,r,(r=>{Go(this,t,(t=>{const o=this.i._malloc(e.length);this.i.HEAPU8.set(e,o),this.i._addProtoToInputStream(o,e.length,t,r,n),this.i._free(o)}))}))}addEmptyPacketToStream(e,t){Go(this,e,(e=>{this.i._addEmptyPacketToInputStream(e,t)}))}addBoolVectorToStream(e,t,r){Go(this,t,(t=>{const n=this.i._allocateBoolVector(e.length);if(!n)throw Error("Unable to allocate new bool vector on heap.");for(const t of e)this.i._addBoolVectorEntry(n,t);this.i._addBoolVectorToInputStream(n,t,r)}))}addDoubleVectorToStream(e,t,r){Go(this,t,(t=>{const n=this.i._allocateDoubleVector(e.length);if(!n)throw Error("Unable to allocate new double vector on heap.");for(const t of e)this.i._addDoubleVectorEntry(n,t);this.i._addDoubleVectorToInputStream(n,t,r)}))}addFloatVectorToStream(e,t,r){Go(this,t,(t=>{const n=this.i._allocateFloatVector(e.length);if(!n)throw Error("Unable to allocate new float vector on heap.");for(const t of e)this.i._addFloatVectorEntry(n,t);this.i._addFloatVectorToInputStream(n,t,r)}))}addIntVectorToStream(e,t,r){Go(this,t,(t=>{const n=this.i._allocateIntVector(e.length);if(!n)throw Error("Unable to allocate new int vector on heap.");for(const t of e)this.i._addIntVectorEntry(n,t);this.i._addIntVectorToInputStream(n,t,r)}))}addUintVectorToStream(e,t,r){Go(this,t,(t=>{const n=this.i._allocateUintVector(e.length);if(!n)throw Error("Unable to allocate new unsigned int vector on heap.");for(const t of e)this.i._addUintVectorEntry(n,t);this.i._addUintVectorToInputStream(n,t,r)}))}addStringVectorToStream(e,t,r){Go(this,t,(t=>{const n=this.i._allocateStringVector(e.length);if(!n)throw Error("Unable to allocate new string vector on heap.");for(const t of e)Go(this,t,(e=>{this.i._addStringVectorEntry(n,e)}));this.i._addStringVectorToInputStream(n,t,r)}))}addBoolToInputSidePacket(e,t){Go(this,t,(t=>{this.i._addBoolToInputSidePacket(e,t)}))}addDoubleToInputSidePacket(e,t){Go(this,t,(t=>{this.i._addDoubleToInputSidePacket(e,t)}))}addFloatToInputSidePacket(e,t){Go(this,t,(t=>{this.i._addFloatToInputSidePacket(e,t)}))}addIntToInputSidePacket(e,t){Go(this,t,(t=>{this.i._addIntToInputSidePacket(e,t)}))}addUintToInputSidePacket(e,t){Go(this,t,(t=>{this.i._addUintToInputSidePacket(e,t)}))}addStringToInputSidePacket(e,t){Go(this,t,(t=>{Go(this,e,(e=>{this.i._addStringToInputSidePacket(e,t)}))}))}addProtoToInputSidePacket(e,t,r){Go(this,r,(r=>{Go(this,t,(t=>{const n=this.i._malloc(e.length);this.i.HEAPU8.set(e,n),this.i._addProtoToInputSidePacket(n,e.length,t,r),this.i._free(n)}))}))}addBoolVectorToInputSidePacket(e,t){Go(this,t,(t=>{const r=this.i._allocateBoolVector(e.length);if(!r)throw Error("Unable to allocate new bool vector on heap.");for(const t of e)this.i._addBoolVectorEntry(r,t);this.i._addBoolVectorToInputSidePacket(r,t)}))}addDoubleVectorToInputSidePacket(e,t){Go(this,t,(t=>{const r=this.i._allocateDoubleVector(e.length);if(!r)throw Error("Unable to allocate new double vector on heap.");for(const t of e)this.i._addDoubleVectorEntry(r,t);this.i._addDoubleVectorToInputSidePacket(r,t)}))}addFloatVectorToInputSidePacket(e,t){Go(this,t,(t=>{const r=this.i._allocateFloatVector(e.length);if(!r)throw Error("Unable to allocate new float vector on heap.");for(const t of e)this.i._addFloatVectorEntry(r,t);this.i._addFloatVectorToInputSidePacket(r,t)}))}addIntVectorToInputSidePacket(e,t){Go(this,t,(t=>{const r=this.i._allocateIntVector(e.length);if(!r)throw Error("Unable to allocate new int vector on heap.");for(const t of e)this.i._addIntVectorEntry(r,t);this.i._addIntVectorToInputSidePacket(r,t)}))}addUintVectorToInputSidePacket(e,t){Go(this,t,(t=>{const r=this.i._allocateUintVector(e.length);if(!r)throw Error("Unable to allocate new unsigned int vector on heap.");for(const t of e)this.i._addUintVectorEntry(r,t);this.i._addUintVectorToInputSidePacket(r,t)}))}addStringVectorToInputSidePacket(e,t){Go(this,t,(t=>{const r=this.i._allocateStringVector(e.length);if(!r)throw Error("Unable to allocate new string vector on heap.");for(const t of e)Go(this,t,(e=>{this.i._addStringVectorEntry(r,e)}));this.i._addStringVectorToInputSidePacket(r,t)}))}attachBoolListener(e,t){Xo(this,e,t),Go(this,e,(e=>{this.i._attachBoolListener(e)}))}attachBoolVectorListener(e,t){Ho(this,e,t),Go(this,e,(e=>{this.i._attachBoolVectorListener(e)}))}attachIntListener(e,t){Xo(this,e,t),Go(this,e,(e=>{this.i._attachIntListener(e)}))}attachIntVectorListener(e,t){Ho(this,e,t),Go(this,e,(e=>{this.i._attachIntVectorListener(e)}))}attachUintListener(e,t){Xo(this,e,t),Go(this,e,(e=>{this.i._attachUintListener(e)}))}attachUintVectorListener(e,t){Ho(this,e,t),Go(this,e,(e=>{this.i._attachUintVectorListener(e)}))}attachDoubleListener(e,t){Xo(this,e,t),Go(this,e,(e=>{this.i._attachDoubleListener(e)}))}attachDoubleVectorListener(e,t){Ho(this,e,t),Go(this,e,(e=>{this.i._attachDoubleVectorListener(e)}))}attachFloatListener(e,t){Xo(this,e,t),Go(this,e,(e=>{this.i._attachFloatListener(e)}))}attachFloatVectorListener(e,t){Ho(this,e,t),Go(this,e,(e=>{this.i._attachFloatVectorListener(e)}))}attachStringListener(e,t){Xo(this,e,t),Go(this,e,(e=>{this.i._attachStringListener(e)}))}attachStringVectorListener(e,t){Ho(this,e,t),Go(this,e,(e=>{this.i._attachStringVectorListener(e)}))}attachProtoListener(e,t,r){Xo(this,e,t),Go(this,e,(e=>{this.i._attachProtoListener(e,r||!1)}))}attachProtoVectorListener(e,t,r){Ho(this,e,t),Go(this,e,(e=>{this.i._attachProtoVectorListener(e,r||!1)}))}attachAudioListener(e,t,r){this.i._attachAudioListener||console.warn('Attempting to use attachAudioListener without support for output audio. Is build dep ":gl_graph_runner_audio_out" missing?'),Xo(this,e,((e,r)=>{e=new Float32Array(e.buffer,e.byteOffset,e.length/4),t(e,r)})),Go(this,e,(e=>{this.i._attachAudioListener(e,r||!1)}))}finishProcessing(){this.i._waitUntilIdle()}closeGraph(){this.i._closeGraph(),this.i.simpleListeners=void 0,this.i.emptyPacketListeners=void 0}},class extends Ha{get ea(){return this.i}oa(e,t,r){Go(this,t,(t=>{const[n,o]=jo(this,e,t);this.ea._addBoundTextureAsImageToStream(t,n,o,r)}))}V(e,t){Xo(this,e,t),Go(this,e,(e=>{this.ea._attachImageListener(e)}))}ba(e,t){Ho(this,e,t),Go(this,e,(e=>{this.ea._attachImageVectorListener(e)}))}})),Wa=class extends Xa{};async function za(e,t,r){var n;return async function(e,t,r,n){return Wo(e,t,r,n)}(e,null!=(n=r.canvas)?n:Do()?void 0:document.createElement("canvas"),t,r)}function Ka(e,t,r,n){if(e.U){const i=new ms;if(null==r?void 0:r.regionOfInterest){if(!e.na)throw Error("This task doesn't support region-of-interest.");var o=r.regionOfInterest;if(o.left>=o.right||o.top>=o.bottom)throw Error("Expected RectF with left < right and top < bottom.");if(o.left<0||o.top<0||o.right>1||o.bottom>1)throw Error("Expected RectF values to be in [0,1].");An(i,1,(o.left+o.right)/2),An(i,2,(o.top+o.bottom)/2),An(i,4,o.right-o.left),An(i,3,o.bottom-o.top)}else An(i,1,.5),An(i,2,.5),An(i,4,1),An(i,3,1);if(null==r?void 0:r.rotationDegrees){if((null==r?void 0:r.rotationDegrees)%90!=0)throw Error("Expected rotation to be a multiple of 90°.");if(An(i,5,-Math.PI*r.rotationDegrees/180),(null==r?void 0:r.rotationDegrees)%180!=0){const[e,n]=Bo(t);r=En(i,3)*n/e,o=En(i,4)*e/n,An(i,4,r),An(i,3,o)}}e.g.addProtoToStream(i.g(),"mediapipe.NormalizedRect",e.U,n)}e.g.oa(t,e.Z,null!=n?n:performance.now()),e.finishProcessing()}function Ya(e,t,r){var n;if(null==(n=e.baseOptions)?void 0:n.g())throw Error("Task is not initialized with image mode. 'runningMode' must be set to 'IMAGE'.");Ka(e,t,r,e.B+1)}function $a(e,t,r,n){var o;if(!(null==(o=e.baseOptions)?void 0:o.g()))throw Error("Task is not initialized with video mode. 'runningMode' must be set to 'VIDEO'.");Ka(e,t,r,n)}function qa(e,t,r,n){var o=t.data;const i=t.width,a=i*(t=t.height);if((o instanceof Uint8Array||o instanceof Float32Array)&&o.length!==a)throw Error("Unsupported channel count: "+o.length/a);return e=new Ea([o],r,!1,e.g.i.canvas,e.P,i,t),n?e.clone():e}var Ja=class extends Zo{constructor(e,t,r,n){super(e),this.g=e,this.Z=t,this.U=r,this.na=n,this.P=new ca}l(e,t=!0){if("runningMode"in e&&wn(this.baseOptions,2,!!e.runningMode&&"IMAGE"!==e.runningMode),void 0!==e.canvas&&this.g.i.canvas!==e.canvas)throw Error("You must create a new task to reset the canvas.");return super.l(e,t)}close(){this.P.close(),super.close()}};Ja.prototype.close=Ja.prototype.close;var Za=class extends Ja{constructor(e,t){super(new Wa(e,t),"image_in","norm_rect_in",!1),this.j={detections:[]},dn(e=this.h=new Cs,0,1,t=new Is),An(this.h,2,.5),An(this.h,3,.3)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(e){dn(this.h,0,1,e)}o(e){var t,r;return"minDetectionConfidence"in e&&An(this.h,2,null!=(t=e.minDetectionConfidence)?t:.5),"minSuppressionThreshold"in e&&An(this.h,3,null!=(r=e.minSuppressionThreshold)?r:.3),this.l(e)}D(e,t){return this.j={detections:[]},Ya(this,e,t),this.j}F(e,t,r){return this.j={detections:[]},$a(this,e,r,t),this.j}m(){var e=new Qi;Ji(e,"image_in"),Ji(e,"norm_rect_in"),Zi(e,"detections");const t=new Gi;Yn(t,Us,this.h);const r=new zi;Xi(r,"mediapipe.tasks.vision.face_detector.FaceDetectorGraph"),Hi(r,"IMAGE:image_in"),Hi(r,"NORM_RECT:norm_rect_in"),Wi(r,"DETECTIONS:detections"),r.o(t),qi(e,r),this.g.attachProtoVectorListener("detections",((e,t)=>{for(const t of e)e=hs(t),this.j.detections.push(xo(e));Yo(this,t)})),this.g.attachEmptyPacketListener("detections",(e=>{Yo(this,e)})),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};Za.prototype.detectForVideo=Za.prototype.F,Za.prototype.detect=Za.prototype.D,Za.prototype.setOptions=Za.prototype.o,Za.createFromModelPath=async function(e,t){return za(Za,e,{baseOptions:{modelAssetPath:t}})},Za.createFromModelBuffer=function(e,t){return za(Za,e,{baseOptions:{modelAssetBuffer:t}})},Za.createFromOptions=function(e,t){return za(Za,e,t)};var Qa=Va([61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]),tc=Va([263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]),ec=Va([276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]),nc=Va([474,475],[475,476],[476,477],[477,474]),rc=Va([33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]),ic=Va([46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]),sc=Va([469,470],[470,471],[471,472],[472,469]),oc=Va([10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]),ac=[...Qa,...tc,...ec,...rc,...ic,...oc],cc=Va([127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]);function hc(e){e.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]}}var uc=class extends Ja{constructor(e,t){super(new Wa(e,t),"image_in","norm_rect",!1),this.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]},this.outputFacialTransformationMatrixes=this.outputFaceBlendshapes=!1,dn(e=this.h=new Bs,0,1,t=new Is),this.v=new Ns,dn(this.h,0,3,this.v),this.s=new Cs,dn(this.h,0,2,this.s),Tn(this.s,4,1),An(this.s,2,.5),An(this.v,2,.5),An(this.h,4,.5)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(e){dn(this.h,0,1,e)}o(e){var t,r,n,o;return"numFaces"in e&&Tn(this.s,4,null!=(t=e.numFaces)?t:1),"minFaceDetectionConfidence"in e&&An(this.s,2,null!=(r=e.minFaceDetectionConfidence)?r:.5),"minTrackingConfidence"in e&&An(this.h,4,null!=(n=e.minTrackingConfidence)?n:.5),"minFacePresenceConfidence"in e&&An(this.v,2,null!=(o=e.minFacePresenceConfidence)?o:.5),"outputFaceBlendshapes"in e&&(this.outputFaceBlendshapes=!!e.outputFaceBlendshapes),"outputFacialTransformationMatrixes"in e&&(this.outputFacialTransformationMatrixes=!!e.outputFacialTransformationMatrixes),this.l(e)}D(e,t){return hc(this),Ya(this,e,t),this.j}F(e,t,r){return hc(this),$a(this,e,r,t),this.j}m(){var e=new Qi;Ji(e,"image_in"),Ji(e,"norm_rect"),Zi(e,"face_landmarks");const t=new Gi;Yn(t,Vs,this.h);const r=new zi;Xi(r,"mediapipe.tasks.vision.face_landmarker.FaceLandmarkerGraph"),Hi(r,"IMAGE:image_in"),Hi(r,"NORM_RECT:norm_rect"),Wi(r,"NORM_LANDMARKS:face_landmarks"),r.o(t),qi(e,r),this.g.attachProtoVectorListener("face_landmarks",((e,t)=>{for(const t of e)e=fs(t),this.j.faceLandmarks.push(Lo(e));Yo(this,t)})),this.g.attachEmptyPacketListener("face_landmarks",(e=>{Yo(this,e)})),this.outputFaceBlendshapes&&(Zi(e,"blendshapes"),Wi(r,"BLENDSHAPES:blendshapes"),this.g.attachProtoVectorListener("blendshapes",((e,t)=>{var r;if(this.outputFaceBlendshapes)for(const t of e)e=ss(t),this.j.faceBlendshapes.push(So(null!=(r=e.g())?r:[]));Yo(this,t)})),this.g.attachEmptyPacketListener("blendshapes",(e=>{Yo(this,e)}))),this.outputFacialTransformationMatrixes&&(Zi(e,"face_geometry"),Wi(r,"FACE_GEOMETRY:face_geometry"),this.g.attachProtoVectorListener("face_geometry",((e,t)=>{var r,n,o,i,a;if(this.outputFacialTransformationMatrixes)for(const t of e)(e=hn(Ds(t),ps,2))&&this.j.facialTransformationMatrixes.push({rows:null!=(n=null!=(r=_n(e,1))?r:0)?n:0,columns:null!=(i=null!=(o=_n(e,2))?o:0)?i:0,data:null!=(a=$e(e,3,qt,Ye()).slice())?a:[]});Yo(this,t)})),this.g.attachEmptyPacketListener("face_geometry",(e=>{Yo(this,e)}))),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};uc.prototype.detectForVideo=uc.prototype.F,uc.prototype.detect=uc.prototype.D,uc.prototype.setOptions=uc.prototype.o,uc.createFromModelPath=function(e,t){return za(uc,e,{baseOptions:{modelAssetPath:t}})},uc.createFromModelBuffer=function(e,t){return za(uc,e,{baseOptions:{modelAssetBuffer:t}})},uc.createFromOptions=function(e,t){return za(uc,e,t)},uc.FACE_LANDMARKS_LIPS=Qa,uc.FACE_LANDMARKS_LEFT_EYE=tc,uc.FACE_LANDMARKS_LEFT_EYEBROW=ec,uc.FACE_LANDMARKS_LEFT_IRIS=nc,uc.FACE_LANDMARKS_RIGHT_EYE=rc,uc.FACE_LANDMARKS_RIGHT_EYEBROW=ic,uc.FACE_LANDMARKS_RIGHT_IRIS=sc,uc.FACE_LANDMARKS_FACE_OVAL=oc,uc.FACE_LANDMARKS_CONTOURS=ac,uc.FACE_LANDMARKS_TESSELATION=cc;var lc=class extends Ja{constructor(e,t){super(new Wa(e,t),"image_in","norm_rect",!0),dn(e=this.j=new Xs,0,1,t=new Is)}get baseOptions(){return hn(this.j,Is,1)}set baseOptions(e){dn(this.j,0,1,e)}o(e){return super.l(e)}Ka(e,t,r){const n="function"!=typeof t?t:{};if(this.h="function"==typeof t?t:r,Ya(this,e,null!=n?n:{}),!this.h)return this.s}m(){var e=new Qi;Ji(e,"image_in"),Ji(e,"norm_rect"),Zi(e,"stylized_image");const t=new Gi;Yn(t,Hs,this.j);const r=new zi;Xi(r,"mediapipe.tasks.vision.face_stylizer.FaceStylizerGraph"),Hi(r,"IMAGE:image_in"),Hi(r,"NORM_RECT:norm_rect"),Wi(r,"STYLIZED_IMAGE:stylized_image"),r.o(t),qi(e,r),this.g.V("stylized_image",((e,t)=>{var r=!this.h,n=e.data,o=e.width;const i=o*(e=e.height);if(n instanceof Uint8Array)if(n.length===3*i){const t=new Uint8ClampedArray(4*i);for(let e=0;e<i;++e)t[4*e]=n[3*e],t[4*e+1]=n[3*e+1],t[4*e+2]=n[3*e+2],t[4*e+3]=255;n=new ImageData(t,o,e)}else{if(n.length!==4*i)throw Error("Unsupported channel count: "+n.length/i);n=new ImageData(new Uint8ClampedArray(n.buffer,n.byteOffset,n.length),o,e)}else if(!(n instanceof WebGLTexture))throw Error(`Unsupported format: ${n.constructor.name}`);o=new Ga([n],!1,!1,this.g.i.canvas,this.P,o,e),this.s=r=r?o.clone():o,this.h&&this.h(r),Yo(this,t)})),this.g.attachEmptyPacketListener("stylized_image",(e=>{this.s=null,this.h&&this.h(null),Yo(this,e)})),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};lc.prototype.stylize=lc.prototype.Ka,lc.prototype.setOptions=lc.prototype.o,lc.createFromModelPath=function(e,t){return za(lc,e,{baseOptions:{modelAssetPath:t}})},lc.createFromModelBuffer=function(e,t){return za(lc,e,{baseOptions:{modelAssetBuffer:t}})},lc.createFromOptions=function(e,t){return za(lc,e,t)};var dc=Va([0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]);function fc(e){e.gestures=[],e.landmarks=[],e.worldLandmarks=[],e.handedness=[]}function pc(e){return 0===e.gestures.length?{gestures:[],landmarks:[],worldLandmarks:[],handedness:[],handednesses:[]}:{gestures:e.gestures,landmarks:e.landmarks,worldLandmarks:e.worldLandmarks,handedness:e.handedness,handednesses:e.handedness}}function gc(e,t=!0){var r,n,o,i,a,s;const c=[];for(const u of e){var A=ss(u);e=[];for(const c of A.g())A=t&&null!=_n(c,1)?null!=(r=_n(c,1))?r:0:-1,e.push({score:null!=(n=En(c,2))?n:0,index:A,categoryName:null!=(i=null!=(o=vn(c,3))?o:"")?i:"",displayName:null!=(s=null!=(a=vn(c,4))?a:"")?s:""});c.push(e)}return c}var mc=class extends Ja{constructor(e,t){super(new Wa(e,t),"image_in","norm_rect",!1),this.gestures=[],this.landmarks=[],this.worldLandmarks=[],this.handedness=[],dn(e=this.j=new Js,0,1,t=new Is),this.s=new qs,dn(this.j,0,2,this.s),this.C=new $s,dn(this.s,0,3,this.C),this.v=new Ys,dn(this.s,0,2,this.v),this.h=new Ks,dn(this.j,0,3,this.h),An(this.v,2,.5),An(this.s,4,.5),An(this.C,2,.5)}get baseOptions(){return hn(this.j,Is,1)}set baseOptions(e){dn(this.j,0,1,e)}o(e){var t,r,n,o,i,a,s,c;if(Tn(this.v,3,null!=(t=e.numHands)?t:1),"minHandDetectionConfidence"in e&&An(this.v,2,null!=(r=e.minHandDetectionConfidence)?r:.5),"minTrackingConfidence"in e&&An(this.s,4,null!=(n=e.minTrackingConfidence)?n:.5),"minHandPresenceConfidence"in e&&An(this.C,2,null!=(o=e.minHandPresenceConfidence)?o:.5),e.cannedGesturesClassifierOptions){var A=new Ws,u=A,l=ko(e.cannedGesturesClassifierOptions,null==(i=hn(this.h,Ws,3))?void 0:i.h());dn(u,0,2,l),dn(this.h,0,3,A)}else void 0===e.cannedGesturesClassifierOptions&&(null==(a=hn(this.h,Ws,3))||a.g());return e.customGesturesClassifierOptions?(dn(u=A=new Ws,0,2,l=ko(e.customGesturesClassifierOptions,null==(s=hn(this.h,Ws,4))?void 0:s.h())),dn(this.h,0,4,A)):void 0===e.customGesturesClassifierOptions&&(null==(c=hn(this.h,Ws,4))||c.g()),this.l(e)}Fa(e,t){return fc(this),Ya(this,e,t),pc(this)}Ga(e,t,r){return fc(this),$a(this,e,r,t),pc(this)}m(){var e=new Qi;Ji(e,"image_in"),Ji(e,"norm_rect"),Zi(e,"hand_gestures"),Zi(e,"hand_landmarks"),Zi(e,"world_hand_landmarks"),Zi(e,"handedness");const t=new Gi;Yn(t,no,this.j);const r=new zi;Xi(r,"mediapipe.tasks.vision.gesture_recognizer.GestureRecognizerGraph"),Hi(r,"IMAGE:image_in"),Hi(r,"NORM_RECT:norm_rect"),Wi(r,"HAND_GESTURES:hand_gestures"),Wi(r,"LANDMARKS:hand_landmarks"),Wi(r,"WORLD_LANDMARKS:world_hand_landmarks"),Wi(r,"HANDEDNESS:handedness"),r.o(t),qi(e,r),this.g.attachProtoVectorListener("hand_landmarks",((e,t)=>{var r,n,o,i;for(const t of e){e=fs(t);const a=[];for(const t of ln(e,ds,1))a.push({x:null!=(r=En(t,1))?r:0,y:null!=(n=En(t,2))?n:0,z:null!=(o=En(t,3))?o:0,visibility:null!=(i=En(t,4))?i:0});this.landmarks.push(a)}Yo(this,t)})),this.g.attachEmptyPacketListener("hand_landmarks",(e=>{Yo(this,e)})),this.g.attachProtoVectorListener("world_hand_landmarks",((e,t)=>{var r,n,o,i;for(const t of e){e=ls(t);const a=[];for(const t of ln(e,us,1))a.push({x:null!=(r=En(t,1))?r:0,y:null!=(n=En(t,2))?n:0,z:null!=(o=En(t,3))?o:0,visibility:null!=(i=En(t,4))?i:0});this.worldLandmarks.push(a)}Yo(this,t)})),this.g.attachEmptyPacketListener("world_hand_landmarks",(e=>{Yo(this,e)})),this.g.attachProtoVectorListener("hand_gestures",((e,t)=>{this.gestures.push(...gc(e,!1)),Yo(this,t)})),this.g.attachEmptyPacketListener("hand_gestures",(e=>{Yo(this,e)})),this.g.attachProtoVectorListener("handedness",((e,t)=>{this.handedness.push(...gc(e)),Yo(this,t)})),this.g.attachEmptyPacketListener("handedness",(e=>{Yo(this,e)})),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};function yc(e){return{landmarks:e.landmarks,worldLandmarks:e.worldLandmarks,handednesses:e.handedness,handedness:e.handedness}}mc.prototype.recognizeForVideo=mc.prototype.Ga,mc.prototype.recognize=mc.prototype.Fa,mc.prototype.setOptions=mc.prototype.o,mc.createFromModelPath=function(e,t){return za(mc,e,{baseOptions:{modelAssetPath:t}})},mc.createFromModelBuffer=function(e,t){return za(mc,e,{baseOptions:{modelAssetBuffer:t}})},mc.createFromOptions=function(e,t){return za(mc,e,t)},mc.HAND_CONNECTIONS=dc;var _c=class extends Ja{constructor(e,t){super(new Wa(e,t),"image_in","norm_rect",!1),this.landmarks=[],this.worldLandmarks=[],this.handedness=[],dn(e=this.h=new qs,0,1,t=new Is),this.s=new $s,dn(this.h,0,3,this.s),this.j=new Ys,dn(this.h,0,2,this.j),Tn(this.j,3,1),An(this.j,2,.5),An(this.s,2,.5),An(this.h,4,.5)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(e){dn(this.h,0,1,e)}o(e){var t,r,n,o;return"numHands"in e&&Tn(this.j,3,null!=(t=e.numHands)?t:1),"minHandDetectionConfidence"in e&&An(this.j,2,null!=(r=e.minHandDetectionConfidence)?r:.5),"minTrackingConfidence"in e&&An(this.h,4,null!=(n=e.minTrackingConfidence)?n:.5),"minHandPresenceConfidence"in e&&An(this.s,2,null!=(o=e.minHandPresenceConfidence)?o:.5),this.l(e)}D(e,t){return this.landmarks=[],this.worldLandmarks=[],this.handedness=[],Ya(this,e,t),yc(this)}F(e,t,r){return this.landmarks=[],this.worldLandmarks=[],this.handedness=[],$a(this,e,r,t),yc(this)}m(){var e=new Qi;Ji(e,"image_in"),Ji(e,"norm_rect"),Zi(e,"hand_landmarks"),Zi(e,"world_hand_landmarks"),Zi(e,"handedness");const t=new Gi;Yn(t,ro,this.h);const r=new zi;Xi(r,"mediapipe.tasks.vision.hand_landmarker.HandLandmarkerGraph"),Hi(r,"IMAGE:image_in"),Hi(r,"NORM_RECT:norm_rect"),Wi(r,"LANDMARKS:hand_landmarks"),Wi(r,"WORLD_LANDMARKS:world_hand_landmarks"),Wi(r,"HANDEDNESS:handedness"),r.o(t),qi(e,r),this.g.attachProtoVectorListener("hand_landmarks",((e,t)=>{for(const t of e)e=fs(t),this.landmarks.push(Lo(e));Yo(this,t)})),this.g.attachEmptyPacketListener("hand_landmarks",(e=>{Yo(this,e)})),this.g.attachProtoVectorListener("world_hand_landmarks",((e,t)=>{for(const t of e)e=ls(t),this.worldLandmarks.push(Ro(e));Yo(this,t)})),this.g.attachEmptyPacketListener("world_hand_landmarks",(e=>{Yo(this,e)})),this.g.attachProtoVectorListener("handedness",((e,t)=>{var r,n,o,i,a,s,c,A=this.handedness,u=A.push;const l=[];for(const t of e){e=ss(t);const A=[];for(const t of e.g())A.push({score:null!=(r=En(t,2))?r:0,index:null!=(o=null!=(n=_n(t,1))?n:0)?o:-1,categoryName:null!=(a=null!=(i=vn(t,3))?i:"")?a:"",displayName:null!=(c=null!=(s=vn(t,4))?s:"")?c:""});l.push(A)}u.call(A,...l),Yo(this,t)})),this.g.attachEmptyPacketListener("handedness",(e=>{Yo(this,e)})),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};_c.prototype.detectForVideo=_c.prototype.F,_c.prototype.detect=_c.prototype.D,_c.prototype.setOptions=_c.prototype.o,_c.createFromModelPath=function(e,t){return za(_c,e,{baseOptions:{modelAssetPath:t}})},_c.createFromModelBuffer=function(e,t){return za(_c,e,{baseOptions:{modelAssetBuffer:t}})},_c.createFromOptions=function(e,t){return za(_c,e,t)},_c.HAND_CONNECTIONS=dc;var vc=Va([0,1],[1,2],[2,3],[3,7],[0,4],[4,5],[5,6],[6,8],[9,10],[11,12],[11,13],[13,15],[15,17],[15,19],[15,21],[17,19],[12,14],[14,16],[16,18],[16,20],[16,22],[18,20],[11,23],[12,24],[23,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,31],[30,32],[27,31],[28,32]);function Ec(e){e.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]}}function wc(e){try{if(!e.C)return e.h;e.C(e.h)}finally{Jo(e)}}function Tc(e,t){e=fs(e),t.push(Lo(e))}var Ac=class extends Ja{constructor(e,t){super(new Wa(e,t),"input_frames_image",null,!1),this.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]},this.outputPoseSegmentationMasks=this.outputFaceBlendshapes=!1,dn(e=this.j=new ao,0,1,t=new Is),this.K=new $s,dn(this.j,0,2,this.K),this.Y=new io,dn(this.j,0,3,this.Y),this.s=new Cs,dn(this.j,0,4,this.s),this.H=new Ns,dn(this.j,0,5,this.H),this.v=new so,dn(this.j,0,6,this.v),this.L=new oo,dn(this.j,0,7,this.L),An(this.s,2,.5),An(this.s,3,.3),An(this.H,2,.5),An(this.v,2,.5),An(this.v,3,.3),An(this.L,2,.5),An(this.K,2,.5)}get baseOptions(){return hn(this.j,Is,1)}set baseOptions(e){dn(this.j,0,1,e)}o(e){var t,r,n,o,i,a,s;return"minFaceDetectionConfidence"in e&&An(this.s,2,null!=(t=e.minFaceDetectionConfidence)?t:.5),"minFaceSuppressionThreshold"in e&&An(this.s,3,null!=(r=e.minFaceSuppressionThreshold)?r:.3),"minFacePresenceConfidence"in e&&An(this.H,2,null!=(n=e.minFacePresenceConfidence)?n:.5),"outputFaceBlendshapes"in e&&(this.outputFaceBlendshapes=!!e.outputFaceBlendshapes),"minPoseDetectionConfidence"in e&&An(this.v,2,null!=(o=e.minPoseDetectionConfidence)?o:.5),"minPoseSuppressionThreshold"in e&&An(this.v,3,null!=(i=e.minPoseSuppressionThreshold)?i:.3),"minPosePresenceConfidence"in e&&An(this.L,2,null!=(a=e.minPosePresenceConfidence)?a:.5),"outputPoseSegmentationMasks"in e&&(this.outputPoseSegmentationMasks=!!e.outputPoseSegmentationMasks),"minHandLandmarksConfidence"in e&&An(this.K,2,null!=(s=e.minHandLandmarksConfidence)?s:.5),this.l(e)}D(e,t,r){const n="function"!=typeof t?t:{};return this.C="function"==typeof t?t:r,Ec(this),Ya(this,e,n),wc(this)}F(e,t,r,n){const o="function"!=typeof r?r:{};return this.C="function"==typeof r?r:n,Ec(this),$a(this,e,o,t),wc(this)}m(){var e=new Qi;Ji(e,"input_frames_image"),Zi(e,"pose_landmarks"),Zi(e,"pose_world_landmarks"),Zi(e,"face_landmarks"),Zi(e,"left_hand_landmarks"),Zi(e,"left_hand_world_landmarks"),Zi(e,"right_hand_landmarks"),Zi(e,"right_hand_world_landmarks");const t=new Gi,r=new xi;tn(r,1,de("type.googleapis.com/mediapipe.tasks.vision.holistic_landmarker.proto.HolisticLandmarkerGraphOptions"),""),function(e,t){if(null!=t)if(Array.isArray(t))He(e,2,Pe(t,Oe,void 0,void 0,!1));else{if(!("string"==typeof t||t instanceof N||C(t)))throw Error("invalid value in Any.value field: "+t+" expected a ByteString, a base64 encoded string, a Uint8Array or a jspb array");tn(e,2,dt(t,!1),U())}}(r,this.j.g());const n=new zi;Xi(n,"mediapipe.tasks.vision.holistic_landmarker.HolisticLandmarkerGraph"),yn(n,8,xi,r),Hi(n,"IMAGE:input_frames_image"),Wi(n,"POSE_LANDMARKS:pose_landmarks"),Wi(n,"POSE_WORLD_LANDMARKS:pose_world_landmarks"),Wi(n,"FACE_LANDMARKS:face_landmarks"),Wi(n,"LEFT_HAND_LANDMARKS:left_hand_landmarks"),Wi(n,"LEFT_HAND_WORLD_LANDMARKS:left_hand_world_landmarks"),Wi(n,"RIGHT_HAND_LANDMARKS:right_hand_landmarks"),Wi(n,"RIGHT_HAND_WORLD_LANDMARKS:right_hand_world_landmarks"),n.o(t),qi(e,n),$o(this,e),this.g.attachProtoListener("pose_landmarks",((e,t)=>{Tc(e,this.h.poseLandmarks),Yo(this,t)})),this.g.attachEmptyPacketListener("pose_landmarks",(e=>{Yo(this,e)})),this.g.attachProtoListener("pose_world_landmarks",((e,t)=>{var r=this.h.poseWorldLandmarks;e=ls(e),r.push(Ro(e)),Yo(this,t)})),this.g.attachEmptyPacketListener("pose_world_landmarks",(e=>{Yo(this,e)})),this.outputPoseSegmentationMasks&&(Wi(n,"POSE_SEGMENTATION_MASK:pose_segmentation_mask"),qo(this,"pose_segmentation_mask"),this.g.V("pose_segmentation_mask",((e,t)=>{this.h.poseSegmentationMasks=[qa(this,e,!0,!this.C)],Yo(this,t)})),this.g.attachEmptyPacketListener("pose_segmentation_mask",(e=>{this.h.poseSegmentationMasks=[],Yo(this,e)}))),this.g.attachProtoListener("face_landmarks",((e,t)=>{Tc(e,this.h.faceLandmarks),Yo(this,t)})),this.g.attachEmptyPacketListener("face_landmarks",(e=>{Yo(this,e)})),this.outputFaceBlendshapes&&(Zi(e,"extra_blendshapes"),Wi(n,"FACE_BLENDSHAPES:extra_blendshapes"),this.g.attachProtoListener("extra_blendshapes",((e,t)=>{var r,n=this.h.faceBlendshapes;this.outputFaceBlendshapes&&(e=ss(e),n.push(So(null!=(r=e.g())?r:[]))),Yo(this,t)})),this.g.attachEmptyPacketListener("extra_blendshapes",(e=>{Yo(this,e)}))),this.g.attachProtoListener("left_hand_landmarks",((e,t)=>{Tc(e,this.h.leftHandLandmarks),Yo(this,t)})),this.g.attachEmptyPacketListener("left_hand_landmarks",(e=>{Yo(this,e)})),this.g.attachProtoListener("left_hand_world_landmarks",((e,t)=>{var r=this.h.leftHandWorldLandmarks;e=ls(e),r.push(Ro(e)),Yo(this,t)})),this.g.attachEmptyPacketListener("left_hand_world_landmarks",(e=>{Yo(this,e)})),this.g.attachProtoListener("right_hand_landmarks",((e,t)=>{Tc(e,this.h.rightHandLandmarks),Yo(this,t)})),this.g.attachEmptyPacketListener("right_hand_landmarks",(e=>{Yo(this,e)})),this.g.attachProtoListener("right_hand_world_landmarks",((e,t)=>{var r=this.h.rightHandWorldLandmarks;e=ls(e),r.push(Ro(e)),Yo(this,t)})),this.g.attachEmptyPacketListener("right_hand_world_landmarks",(e=>{Yo(this,e)})),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};Ac.prototype.detectForVideo=Ac.prototype.F,Ac.prototype.detect=Ac.prototype.D,Ac.prototype.setOptions=Ac.prototype.o,Ac.createFromModelPath=function(e,t){return za(Ac,e,{baseOptions:{modelAssetPath:t}})},Ac.createFromModelBuffer=function(e,t){return za(Ac,e,{baseOptions:{modelAssetBuffer:t}})},Ac.createFromOptions=function(e,t){return za(Ac,e,t)},Ac.HAND_CONNECTIONS=dc,Ac.POSE_CONNECTIONS=vc,Ac.FACE_LANDMARKS_LIPS=Qa,Ac.FACE_LANDMARKS_LEFT_EYE=tc,Ac.FACE_LANDMARKS_LEFT_EYEBROW=ec,Ac.FACE_LANDMARKS_LEFT_IRIS=nc,Ac.FACE_LANDMARKS_RIGHT_EYE=rc,Ac.FACE_LANDMARKS_RIGHT_EYEBROW=ic,Ac.FACE_LANDMARKS_RIGHT_IRIS=sc,Ac.FACE_LANDMARKS_FACE_OVAL=oc,Ac.FACE_LANDMARKS_CONTOURS=ac,Ac.FACE_LANDMARKS_TESSELATION=cc;var bc=class extends Ja{constructor(e,t){super(new Wa(e,t),"input_image","norm_rect",!0),this.j={classifications:[]},dn(e=this.h=new uo,0,1,t=new Is)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(e){dn(this.h,0,1,e)}o(e){return dn(this.h,0,2,ko(e,hn(this.h,bs,2))),this.l(e)}qa(e,t){return this.j={classifications:[]},Ya(this,e,t),this.j}ra(e,t,r){return this.j={classifications:[]},$a(this,e,r,t),this.j}m(){var e=new Qi;Ji(e,"input_image"),Ji(e,"norm_rect"),Zi(e,"classifications");const t=new Gi;Yn(t,lo,this.h);const r=new zi;Xi(r,"mediapipe.tasks.vision.image_classifier.ImageClassifierGraph"),Hi(r,"IMAGE:input_image"),Hi(r,"NORM_RECT:norm_rect"),Wi(r,"CLASSIFICATIONS:classifications"),r.o(t),qi(e,r),this.g.attachProtoListener("classifications",((e,t)=>{this.j=function(e){var t;const r={classifications:ln(e,ys,1).map((e=>{var t,r,n,o;return So(null!=(r=null==(t=hn(e,rs,4))?void 0:t.g())?r:[],null!=(n=_n(e,2))?n:0,null!=(o=vn(e,3))?o:"")}))};return null!=he(Ve(e,2))&&(r.timestampMs=null!=(t=he(Ve(e,2)))?t:0),r}(_s(e)),Yo(this,t)})),this.g.attachEmptyPacketListener("classifications",(e=>{Yo(this,e)})),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};bc.prototype.classifyForVideo=bc.prototype.ra,bc.prototype.classify=bc.prototype.qa,bc.prototype.setOptions=bc.prototype.o,bc.createFromModelPath=function(e,t){return za(bc,e,{baseOptions:{modelAssetPath:t}})},bc.createFromModelBuffer=function(e,t){return za(bc,e,{baseOptions:{modelAssetBuffer:t}})},bc.createFromOptions=function(e,t){return za(bc,e,t)};var kc=class extends Ja{constructor(e,t){super(new Wa(e,t),"image_in","norm_rect",!0),this.h=new fo,this.embeddings={embeddings:[]},dn(e=this.h,0,1,t=new Is)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(e){dn(this.h,0,1,e)}o(e){var t=this.h,r=hn(this.h,Ss,2);return r=r?r.clone():new Ss,void 0!==e.l2Normalize?wn(r,1,e.l2Normalize):"l2Normalize"in e&&He(r,1),void 0!==e.quantize?wn(r,2,e.quantize):"quantize"in e&&He(r,2),dn(t,0,2,r),this.l(e)}xa(e,t){return Ya(this,e,t),this.embeddings}ya(e,t,r){return $a(this,e,r,t),this.embeddings}m(){var e=new Qi;Ji(e,"image_in"),Ji(e,"norm_rect"),Zi(e,"embeddings_out");const t=new Gi;Yn(t,po,this.h);const r=new zi;Xi(r,"mediapipe.tasks.vision.image_embedder.ImageEmbedderGraph"),Hi(r,"IMAGE:image_in"),Hi(r,"NORM_RECT:norm_rect"),Wi(r,"EMBEDDINGS:embeddings_out"),r.o(t),qi(e,r),this.g.attachProtoListener("embeddings_out",((e,t)=>{var r,n;e=As(e),this.embeddings={embeddings:ln(r=e,ws,1).map((e=>{var t,r,n,o,i,a,s;const c={headIndex:null!=(r=null!=(t=_n(e,3))?t:0)?r:-1,headName:null!=(o=null!=(n=vn(e,4))?n:"")?o:""};if(void 0!==cn(e,vs,nn(e,1)))e=$e(e=hn(e,vs,nn(e,1)),1,qt,Ye()),c.floatEmbedding=e.slice();else{const t=new Uint8Array(0);c.quantizedEmbedding=null!=(s=null==(a=null==(i=hn(e,Es,nn(e,2)))?void 0:i.ma())?void 0:a.h())?s:t}return c})),timestampMs:null!=(n=he(Ve(r,2)))?n:0},Yo(this,t)})),this.g.attachEmptyPacketListener("embeddings_out",(e=>{Yo(this,e)})),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};kc.cosineSimilarity=function(e,t){if(e.floatEmbedding&&t.floatEmbedding)e=Io(e.floatEmbedding,t.floatEmbedding);else{if(!e.quantizedEmbedding||!t.quantizedEmbedding)throw Error("Cannot compute cosine similarity between quantized and float embeddings.");e=Io(Fo(e.quantizedEmbedding),Fo(t.quantizedEmbedding))}return e},kc.prototype.embedForVideo=kc.prototype.ya,kc.prototype.embed=kc.prototype.xa,kc.prototype.setOptions=kc.prototype.o,kc.createFromModelPath=function(e,t){return za(kc,e,{baseOptions:{modelAssetPath:t}})},kc.createFromModelBuffer=function(e,t){return za(kc,e,{baseOptions:{modelAssetBuffer:t}})},kc.createFromOptions=function(e,t){return za(kc,e,t)};var Sc=class{constructor(e,t,r){this.confidenceMasks=e,this.categoryMask=t,this.qualityScores=r}close(){var e,t;null==(e=this.confidenceMasks)||e.forEach((e=>{e.close()})),null==(t=this.categoryMask)||t.close()}};function xc(e){e.categoryMask=void 0,e.confidenceMasks=void 0,e.qualityScores=void 0}function Lc(e){try{const t=new Sc(e.confidenceMasks,e.categoryMask,e.qualityScores);if(!e.j)return t;e.j(t)}finally{Jo(e)}}Sc.prototype.close=Sc.prototype.close;var Rc=class extends Ja{constructor(e,t){super(new Wa(e,t),"image_in","norm_rect",!1),this.s=[],this.outputCategoryMask=!1,this.outputConfidenceMasks=!0,this.h=new vo,this.v=new go,dn(this.h,0,3,this.v),dn(e=this.h,0,1,t=new Is)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(e){dn(this.h,0,1,e)}o(e){var t,r;return void 0!==e.displayNamesLocale?He(this.h,2,de(e.displayNamesLocale)):"displayNamesLocale"in e&&He(this.h,2),"outputCategoryMask"in e&&(this.outputCategoryMask=null!=(t=e.outputCategoryMask)&&t),"outputConfidenceMasks"in e&&(this.outputConfidenceMasks=null==(r=e.outputConfidenceMasks)||r),super.l(e)}J(){!function(e){var t,r,n;const o=ln(e.ca(),zi,1).filter((e=>{var t;return(null!=(t=vn(e,1))?t:"").includes("mediapipe.tasks.TensorsToSegmentationCalculator")}));if(e.s=[],o.length>1)throw Error("The graph has more than one mediapipe.tasks.TensorsToSegmentationCalculator.");1===o.length&&(null!=(n=null==(r=null==(t=hn(o[0],Gi,7))?void 0:t.l())?void 0:r.g())?n:new Map).forEach(((t,r)=>{var n;e.s[Number(r)]=null!=(n=vn(t,1))?n:""}))}(this)}segment(e,t,r){const n="function"!=typeof t?t:{};return this.j="function"==typeof t?t:r,xc(this),Ya(this,e,n),Lc(this)}Ia(e,t,r,n){const o="function"!=typeof r?r:{};return this.j="function"==typeof r?r:n,xc(this),$a(this,e,o,t),Lc(this)}Ba(){return this.s}m(){var e=new Qi;Ji(e,"image_in"),Ji(e,"norm_rect");const t=new Gi;Yn(t,Eo,this.h);const r=new zi;Xi(r,"mediapipe.tasks.vision.image_segmenter.ImageSegmenterGraph"),Hi(r,"IMAGE:image_in"),Hi(r,"NORM_RECT:norm_rect"),r.o(t),qi(e,r),$o(this,e),this.outputConfidenceMasks&&(Zi(e,"confidence_masks"),Wi(r,"CONFIDENCE_MASKS:confidence_masks"),qo(this,"confidence_masks"),this.g.ba("confidence_masks",((e,t)=>{this.confidenceMasks=e.map((e=>qa(this,e,!0,!this.j))),Yo(this,t)})),this.g.attachEmptyPacketListener("confidence_masks",(e=>{this.confidenceMasks=[],Yo(this,e)}))),this.outputCategoryMask&&(Zi(e,"category_mask"),Wi(r,"CATEGORY_MASK:category_mask"),qo(this,"category_mask"),this.g.V("category_mask",((e,t)=>{this.categoryMask=qa(this,e,!1,!this.j),Yo(this,t)})),this.g.attachEmptyPacketListener("category_mask",(e=>{this.categoryMask=void 0,Yo(this,e)}))),Zi(e,"quality_scores"),Wi(r,"QUALITY_SCORES:quality_scores"),this.g.attachFloatVectorListener("quality_scores",((e,t)=>{this.qualityScores=e,Yo(this,t)})),this.g.attachEmptyPacketListener("quality_scores",(e=>{this.categoryMask=void 0,Yo(this,e)})),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};Rc.prototype.getLabels=Rc.prototype.Ba,Rc.prototype.segmentForVideo=Rc.prototype.Ia,Rc.prototype.segment=Rc.prototype.segment,Rc.prototype.setOptions=Rc.prototype.o,Rc.createFromModelPath=function(e,t){return za(Rc,e,{baseOptions:{modelAssetPath:t}})},Rc.createFromModelBuffer=function(e,t){return za(Rc,e,{baseOptions:{modelAssetBuffer:t}})},Rc.createFromOptions=function(e,t){return za(Rc,e,t)};var Fc=class{constructor(e,t,r){this.confidenceMasks=e,this.categoryMask=t,this.qualityScores=r}close(){var e,t;null==(e=this.confidenceMasks)||e.forEach((e=>{e.close()})),null==(t=this.categoryMask)||t.close()}};Fc.prototype.close=Fc.prototype.close;var Ic=class extends $n{constructor(e){super(e)}},Mc=[0,hi,-2],Pc=[0,ni,-3,di,ni,-1],Cc=[0,Pc],Oc=[0,Pc,hi,-1],Uc=class extends $n{constructor(e){super(e)}},Dc=[0,ni,-1,di],Nc=class extends $n{constructor(e){super(e)}},Bc=class extends $n{constructor(e){super(e)}},Gc=[1,2,3,4,5,6,7,8,9,10,14,15],jc=class extends $n{constructor(e){super(e)}};jc.prototype.g=Si([0,yi,[0,Gc,_i,Pc,_i,[0,Pc,Mc],_i,Cc,_i,[0,Cc,Mc],_i,Dc,_i,[0,ni,-3,di,Ti],_i,[0,ni,-3,di],_i,[0,mi,ni,-2,di,hi,di,-1,2,ni,Mc],_i,Oc,_i,[0,Oc,Mc],ni,Mc,mi,_i,[0,ni,-3,di,Mc,-1],_i,[0,yi,Dc]],mi,[0,mi,hi,-1,di]]);var Vc=class extends Ja{constructor(e,t){super(new Wa(e,t),"image_in","norm_rect_in",!1),this.outputCategoryMask=!1,this.outputConfidenceMasks=!0,this.h=new vo,this.s=new go,dn(this.h,0,3,this.s),dn(e=this.h,0,1,t=new Is)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(e){dn(this.h,0,1,e)}o(e){var t,r;return"outputCategoryMask"in e&&(this.outputCategoryMask=null!=(t=e.outputCategoryMask)&&t),"outputConfidenceMasks"in e&&(this.outputConfidenceMasks=null==(r=e.outputConfidenceMasks)||r),super.l(e)}segment(e,t,r,n){const o="function"!=typeof r?r:{};this.j="function"==typeof r?r:n,this.qualityScores=this.categoryMask=this.confidenceMasks=void 0,r=this.B+1,n=new jc;const i=new Bc;var a=new Ic;if(Tn(a,1,255),dn(i,0,12,a),t.keypoint&&t.scribble)throw Error("Cannot provide both keypoint and scribble.");if(t.keypoint){var s=new Uc;wn(s,3,!0),An(s,1,t.keypoint.x),An(s,2,t.keypoint.y),fn(i,5,Gc,s)}else{if(!t.scribble)throw Error("Must provide either a keypoint or a scribble.");for(s of(a=new Nc,t.scribble))wn(t=new Uc,3,!0),An(t,1,s.x),An(t,2,s.y),yn(a,1,Uc,t);fn(i,15,Gc,a)}yn(n,1,Bc,i),this.g.addProtoToStream(n.g(),"drishti.RenderData","roi_in",r),Ya(this,e,o);e:{try{const e=new Fc(this.confidenceMasks,this.categoryMask,this.qualityScores);if(!this.j){var c=e;break e}this.j(e)}finally{Jo(this)}c=void 0}return c}m(){var e=new Qi;Ji(e,"image_in"),Ji(e,"roi_in"),Ji(e,"norm_rect_in");const t=new Gi;Yn(t,Eo,this.h);const r=new zi;Xi(r,"mediapipe.tasks.vision.interactive_segmenter.InteractiveSegmenterGraph"),Hi(r,"IMAGE:image_in"),Hi(r,"ROI:roi_in"),Hi(r,"NORM_RECT:norm_rect_in"),r.o(t),qi(e,r),$o(this,e),this.outputConfidenceMasks&&(Zi(e,"confidence_masks"),Wi(r,"CONFIDENCE_MASKS:confidence_masks"),qo(this,"confidence_masks"),this.g.ba("confidence_masks",((e,t)=>{this.confidenceMasks=e.map((e=>qa(this,e,!0,!this.j))),Yo(this,t)})),this.g.attachEmptyPacketListener("confidence_masks",(e=>{this.confidenceMasks=[],Yo(this,e)}))),this.outputCategoryMask&&(Zi(e,"category_mask"),Wi(r,"CATEGORY_MASK:category_mask"),qo(this,"category_mask"),this.g.V("category_mask",((e,t)=>{this.categoryMask=qa(this,e,!1,!this.j),Yo(this,t)})),this.g.attachEmptyPacketListener("category_mask",(e=>{this.categoryMask=void 0,Yo(this,e)}))),Zi(e,"quality_scores"),Wi(r,"QUALITY_SCORES:quality_scores"),this.g.attachFloatVectorListener("quality_scores",((e,t)=>{this.qualityScores=e,Yo(this,t)})),this.g.attachEmptyPacketListener("quality_scores",(e=>{this.categoryMask=void 0,Yo(this,e)})),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};Vc.prototype.segment=Vc.prototype.segment,Vc.prototype.setOptions=Vc.prototype.o,Vc.createFromModelPath=function(e,t){return za(Vc,e,{baseOptions:{modelAssetPath:t}})},Vc.createFromModelBuffer=function(e,t){return za(Vc,e,{baseOptions:{modelAssetBuffer:t}})},Vc.createFromOptions=function(e,t){return za(Vc,e,t)};var Xc=class extends Ja{constructor(e,t){super(new Wa(e,t),"input_frame_gpu","norm_rect",!1),this.j={detections:[]},dn(e=this.h=new wo,0,1,t=new Is)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(e){dn(this.h,0,1,e)}o(e){return void 0!==e.displayNamesLocale?He(this.h,2,de(e.displayNamesLocale)):"displayNamesLocale"in e&&He(this.h,2),void 0!==e.maxResults?Tn(this.h,3,e.maxResults):"maxResults"in e&&He(this.h,3),void 0!==e.scoreThreshold?An(this.h,4,e.scoreThreshold):"scoreThreshold"in e&&He(this.h,4),void 0!==e.categoryAllowlist?bn(this.h,5,e.categoryAllowlist):"categoryAllowlist"in e&&He(this.h,5),void 0!==e.categoryDenylist?bn(this.h,6,e.categoryDenylist):"categoryDenylist"in e&&He(this.h,6),this.l(e)}D(e,t){return this.j={detections:[]},Ya(this,e,t),this.j}F(e,t,r){return this.j={detections:[]},$a(this,e,r,t),this.j}m(){var e=new Qi;Ji(e,"input_frame_gpu"),Ji(e,"norm_rect"),Zi(e,"detections");const t=new Gi;Yn(t,To,this.h);const r=new zi;Xi(r,"mediapipe.tasks.vision.ObjectDetectorGraph"),Hi(r,"IMAGE:input_frame_gpu"),Hi(r,"NORM_RECT:norm_rect"),Wi(r,"DETECTIONS:detections"),r.o(t),qi(e,r),this.g.attachProtoVectorListener("detections",((e,t)=>{for(const t of e)e=hs(t),this.j.detections.push(xo(e));Yo(this,t)})),this.g.attachEmptyPacketListener("detections",(e=>{Yo(this,e)})),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};Xc.prototype.detectForVideo=Xc.prototype.F,Xc.prototype.detect=Xc.prototype.D,Xc.prototype.setOptions=Xc.prototype.o,Xc.createFromModelPath=async function(e,t){return za(Xc,e,{baseOptions:{modelAssetPath:t}})},Xc.createFromModelBuffer=function(e,t){return za(Xc,e,{baseOptions:{modelAssetBuffer:t}})},Xc.createFromOptions=function(e,t){return za(Xc,e,t)};var Hc=class{constructor(e,t,r){this.landmarks=e,this.worldLandmarks=t,this.segmentationMasks=r}close(){var e;null==(e=this.segmentationMasks)||e.forEach((e=>{e.close()}))}};function Wc(e){e.landmarks=[],e.worldLandmarks=[],e.segmentationMasks=void 0}function zc(e){try{const t=new Hc(e.landmarks,e.worldLandmarks,e.segmentationMasks);if(!e.s)return t;e.s(t)}finally{Jo(e)}}Hc.prototype.close=Hc.prototype.close;var Kc=class extends Ja{constructor(e,t){super(new Wa(e,t),"image_in","norm_rect",!1),this.landmarks=[],this.worldLandmarks=[],this.outputSegmentationMasks=!1,dn(e=this.h=new Ao,0,1,t=new Is),this.v=new oo,dn(this.h,0,3,this.v),this.j=new so,dn(this.h,0,2,this.j),Tn(this.j,4,1),An(this.j,2,.5),An(this.v,2,.5),An(this.h,4,.5)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(e){dn(this.h,0,1,e)}o(e){var t,r,n,o,i;return"numPoses"in e&&Tn(this.j,4,null!=(t=e.numPoses)?t:1),"minPoseDetectionConfidence"in e&&An(this.j,2,null!=(r=e.minPoseDetectionConfidence)?r:.5),"minTrackingConfidence"in e&&An(this.h,4,null!=(n=e.minTrackingConfidence)?n:.5),"minPosePresenceConfidence"in e&&An(this.v,2,null!=(o=e.minPosePresenceConfidence)?o:.5),"outputSegmentationMasks"in e&&(this.outputSegmentationMasks=null!=(i=e.outputSegmentationMasks)&&i),this.l(e)}D(e,t,r){const n="function"!=typeof t?t:{};return this.s="function"==typeof t?t:r,Wc(this),Ya(this,e,n),zc(this)}F(e,t,r,n){const o="function"!=typeof r?r:{};return this.s="function"==typeof r?r:n,Wc(this),$a(this,e,o,t),zc(this)}m(){var e=new Qi;Ji(e,"image_in"),Ji(e,"norm_rect"),Zi(e,"normalized_landmarks"),Zi(e,"world_landmarks"),Zi(e,"segmentation_masks");const t=new Gi;Yn(t,bo,this.h);const r=new zi;Xi(r,"mediapipe.tasks.vision.pose_landmarker.PoseLandmarkerGraph"),Hi(r,"IMAGE:image_in"),Hi(r,"NORM_RECT:norm_rect"),Wi(r,"NORM_LANDMARKS:normalized_landmarks"),Wi(r,"WORLD_LANDMARKS:world_landmarks"),r.o(t),qi(e,r),$o(this,e),this.g.attachProtoVectorListener("normalized_landmarks",((e,t)=>{this.landmarks=[];for(const t of e)e=fs(t),this.landmarks.push(Lo(e));Yo(this,t)})),this.g.attachEmptyPacketListener("normalized_landmarks",(e=>{this.landmarks=[],Yo(this,e)})),this.g.attachProtoVectorListener("world_landmarks",((e,t)=>{this.worldLandmarks=[];for(const t of e)e=ls(t),this.worldLandmarks.push(Ro(e));Yo(this,t)})),this.g.attachEmptyPacketListener("world_landmarks",(e=>{this.worldLandmarks=[],Yo(this,e)})),this.outputSegmentationMasks&&(Wi(r,"SEGMENTATION_MASK:segmentation_masks"),qo(this,"segmentation_masks"),this.g.ba("segmentation_masks",((e,t)=>{this.segmentationMasks=e.map((e=>qa(this,e,!0,!this.s))),Yo(this,t)})),this.g.attachEmptyPacketListener("segmentation_masks",(e=>{this.segmentationMasks=[],Yo(this,e)}))),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};Kc.prototype.detectForVideo=Kc.prototype.F,Kc.prototype.detect=Kc.prototype.D,Kc.prototype.setOptions=Kc.prototype.o,Kc.createFromModelPath=function(e,t){return za(Kc,e,{baseOptions:{modelAssetPath:t}})},Kc.createFromModelBuffer=function(e,t){return za(Kc,e,{baseOptions:{modelAssetBuffer:t}})},Kc.createFromOptions=function(e,t){return za(Kc,e,t)},Kc.POSE_CONNECTIONS=vc;var EPSILON=1e-6,ARRAY_TYPE="undefined"!=typeof Float32Array?Float32Array:Array,degree=Math.PI/180;Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});var mat4_exports={};function create(){var e=new ARRAY_TYPE(16);return ARRAY_TYPE!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function clone(e){var t=new ARRAY_TYPE(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function copy(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function fromValues(e,t,r,n,o,i,a,s,c,A,u,l,d,g,f,h){var p=new ARRAY_TYPE(16);return p[0]=e,p[1]=t,p[2]=r,p[3]=n,p[4]=o,p[5]=i,p[6]=a,p[7]=s,p[8]=c,p[9]=A,p[10]=u,p[11]=l,p[12]=d,p[13]=g,p[14]=f,p[15]=h,p}function set(e,t,r,n,o,i,a,s,c,A,u,l,d,g,f,h,p){return e[0]=t,e[1]=r,e[2]=n,e[3]=o,e[4]=i,e[5]=a,e[6]=s,e[7]=c,e[8]=A,e[9]=u,e[10]=l,e[11]=d,e[12]=g,e[13]=f,e[14]=h,e[15]=p,e}function identity(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function transpose(e,t){if(e===t){var r=t[1],n=t[2],o=t[3],i=t[6],a=t[7],s=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=r,e[6]=t[9],e[7]=t[13],e[8]=n,e[9]=i,e[11]=t[14],e[12]=o,e[13]=a,e[14]=s}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function invert(e,t){var r=t[0],n=t[1],o=t[2],i=t[3],a=t[4],s=t[5],c=t[6],A=t[7],u=t[8],l=t[9],d=t[10],g=t[11],f=t[12],h=t[13],p=t[14],E=t[15],m=r*s-n*a,I=r*c-o*a,y=r*A-i*a,_=n*c-o*s,w=n*A-i*s,C=o*A-i*c,b=u*h-l*f,B=u*p-d*f,D=u*E-g*f,O=l*p-d*h,T=l*E-g*h,v=d*E-g*p,Q=m*v-I*T+y*O+_*D-w*B+C*b;return Q?(Q=1/Q,e[0]=(s*v-c*T+A*O)*Q,e[1]=(o*T-n*v-i*O)*Q,e[2]=(h*C-p*w+E*_)*Q,e[3]=(d*w-l*C-g*_)*Q,e[4]=(c*D-a*v-A*B)*Q,e[5]=(r*v-o*D+i*B)*Q,e[6]=(p*y-f*C-E*I)*Q,e[7]=(u*C-d*y+g*I)*Q,e[8]=(a*T-s*D+A*b)*Q,e[9]=(n*D-r*T-i*b)*Q,e[10]=(f*w-h*y+E*m)*Q,e[11]=(l*y-u*w-g*m)*Q,e[12]=(s*B-a*O-c*b)*Q,e[13]=(r*O-n*B+o*b)*Q,e[14]=(h*I-f*_-p*m)*Q,e[15]=(u*_-l*I+d*m)*Q,e):null}function adjoint(e,t){var r=t[0],n=t[1],o=t[2],i=t[3],a=t[4],s=t[5],c=t[6],A=t[7],u=t[8],l=t[9],d=t[10],g=t[11],f=t[12],h=t[13],p=t[14],E=t[15];return e[0]=s*(d*E-g*p)-l*(c*E-A*p)+h*(c*g-A*d),e[1]=-(n*(d*E-g*p)-l*(o*E-i*p)+h*(o*g-i*d)),e[2]=n*(c*E-A*p)-s*(o*E-i*p)+h*(o*A-i*c),e[3]=-(n*(c*g-A*d)-s*(o*g-i*d)+l*(o*A-i*c)),e[4]=-(a*(d*E-g*p)-u*(c*E-A*p)+f*(c*g-A*d)),e[5]=r*(d*E-g*p)-u*(o*E-i*p)+f*(o*g-i*d),e[6]=-(r*(c*E-A*p)-a*(o*E-i*p)+f*(o*A-i*c)),e[7]=r*(c*g-A*d)-a*(o*g-i*d)+u*(o*A-i*c),e[8]=a*(l*E-g*h)-u*(s*E-A*h)+f*(s*g-A*l),e[9]=-(r*(l*E-g*h)-u*(n*E-i*h)+f*(n*g-i*l)),e[10]=r*(s*E-A*h)-a*(n*E-i*h)+f*(n*A-i*s),e[11]=-(r*(s*g-A*l)-a*(n*g-i*l)+u*(n*A-i*s)),e[12]=-(a*(l*p-d*h)-u*(s*p-c*h)+f*(s*d-c*l)),e[13]=r*(l*p-d*h)-u*(n*p-o*h)+f*(n*d-o*l),e[14]=-(r*(s*p-c*h)-a*(n*p-o*h)+f*(n*c-o*s)),e[15]=r*(s*d-c*l)-a*(n*d-o*l)+u*(n*c-o*s),e}function determinant(e){var t=e[0],r=e[1],n=e[2],o=e[3],i=e[4],a=e[5],s=e[6],c=e[7],A=e[8],u=e[9],l=e[10],d=e[11],g=e[12],f=e[13],h=e[14],p=e[15];return(t*a-r*i)*(l*p-d*h)-(t*s-n*i)*(u*p-d*f)+(t*c-o*i)*(u*h-l*f)+(r*s-n*a)*(A*p-d*g)-(r*c-o*a)*(A*h-l*g)+(n*c-o*s)*(A*f-u*g)}function multiply(e,t,r){var n=t[0],o=t[1],i=t[2],a=t[3],s=t[4],c=t[5],A=t[6],u=t[7],l=t[8],d=t[9],g=t[10],f=t[11],h=t[12],p=t[13],E=t[14],m=t[15],I=r[0],y=r[1],_=r[2],w=r[3];return e[0]=I*n+y*s+_*l+w*h,e[1]=I*o+y*c+_*d+w*p,e[2]=I*i+y*A+_*g+w*E,e[3]=I*a+y*u+_*f+w*m,I=r[4],y=r[5],_=r[6],w=r[7],e[4]=I*n+y*s+_*l+w*h,e[5]=I*o+y*c+_*d+w*p,e[6]=I*i+y*A+_*g+w*E,e[7]=I*a+y*u+_*f+w*m,I=r[8],y=r[9],_=r[10],w=r[11],e[8]=I*n+y*s+_*l+w*h,e[9]=I*o+y*c+_*d+w*p,e[10]=I*i+y*A+_*g+w*E,e[11]=I*a+y*u+_*f+w*m,I=r[12],y=r[13],_=r[14],w=r[15],e[12]=I*n+y*s+_*l+w*h,e[13]=I*o+y*c+_*d+w*p,e[14]=I*i+y*A+_*g+w*E,e[15]=I*a+y*u+_*f+w*m,e}function translate(e,t,r){var n,o,i,a,s,c,A,u,l,d,g,f,h=r[0],p=r[1],E=r[2];return t===e?(e[12]=t[0]*h+t[4]*p+t[8]*E+t[12],e[13]=t[1]*h+t[5]*p+t[9]*E+t[13],e[14]=t[2]*h+t[6]*p+t[10]*E+t[14],e[15]=t[3]*h+t[7]*p+t[11]*E+t[15]):(n=t[0],o=t[1],i=t[2],a=t[3],s=t[4],c=t[5],A=t[6],u=t[7],l=t[8],d=t[9],g=t[10],f=t[11],e[0]=n,e[1]=o,e[2]=i,e[3]=a,e[4]=s,e[5]=c,e[6]=A,e[7]=u,e[8]=l,e[9]=d,e[10]=g,e[11]=f,e[12]=n*h+s*p+l*E+t[12],e[13]=o*h+c*p+d*E+t[13],e[14]=i*h+A*p+g*E+t[14],e[15]=a*h+u*p+f*E+t[15]),e}function scale(e,t,r){var n=r[0],o=r[1],i=r[2];return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*o,e[5]=t[5]*o,e[6]=t[6]*o,e[7]=t[7]*o,e[8]=t[8]*i,e[9]=t[9]*i,e[10]=t[10]*i,e[11]=t[11]*i,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function rotate(e,t,r,n){var o,i,a,s,c,A,u,l,d,g,f,h,p,E,m,I,y,_,w,C,b,B,D,O,T=n[0],v=n[1],Q=n[2],P=Math.hypot(T,v,Q);return P<EPSILON?null:(T*=P=1/P,v*=P,Q*=P,o=Math.sin(r),a=1-(i=Math.cos(r)),s=t[0],c=t[1],A=t[2],u=t[3],l=t[4],d=t[5],g=t[6],f=t[7],h=t[8],p=t[9],E=t[10],m=t[11],I=T*T*a+i,y=v*T*a+Q*o,_=Q*T*a-v*o,w=T*v*a-Q*o,C=v*v*a+i,b=Q*v*a+T*o,B=T*Q*a+v*o,D=v*Q*a-T*o,O=Q*Q*a+i,e[0]=s*I+l*y+h*_,e[1]=c*I+d*y+p*_,e[2]=A*I+g*y+E*_,e[3]=u*I+f*y+m*_,e[4]=s*w+l*C+h*b,e[5]=c*w+d*C+p*b,e[6]=A*w+g*C+E*b,e[7]=u*w+f*C+m*b,e[8]=s*B+l*D+h*O,e[9]=c*B+d*D+p*O,e[10]=A*B+g*D+E*O,e[11]=u*B+f*D+m*O,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function rotateX(e,t,r){var n=Math.sin(r),o=Math.cos(r),i=t[4],a=t[5],s=t[6],c=t[7],A=t[8],u=t[9],l=t[10],d=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=i*o+A*n,e[5]=a*o+u*n,e[6]=s*o+l*n,e[7]=c*o+d*n,e[8]=A*o-i*n,e[9]=u*o-a*n,e[10]=l*o-s*n,e[11]=d*o-c*n,e}function rotateY(e,t,r){var n=Math.sin(r),o=Math.cos(r),i=t[0],a=t[1],s=t[2],c=t[3],A=t[8],u=t[9],l=t[10],d=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*o-A*n,e[1]=a*o-u*n,e[2]=s*o-l*n,e[3]=c*o-d*n,e[8]=i*n+A*o,e[9]=a*n+u*o,e[10]=s*n+l*o,e[11]=c*n+d*o,e}function rotateZ(e,t,r){var n=Math.sin(r),o=Math.cos(r),i=t[0],a=t[1],s=t[2],c=t[3],A=t[4],u=t[5],l=t[6],d=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*o+A*n,e[1]=a*o+u*n,e[2]=s*o+l*n,e[3]=c*o+d*n,e[4]=A*o-i*n,e[5]=u*o-a*n,e[6]=l*o-s*n,e[7]=d*o-c*n,e}function fromTranslation(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e}function fromScaling(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function fromRotation(e,t,r){var n,o,i,a=r[0],s=r[1],c=r[2],A=Math.hypot(a,s,c);return A<EPSILON?null:(a*=A=1/A,s*=A,c*=A,n=Math.sin(t),i=1-(o=Math.cos(t)),e[0]=a*a*i+o,e[1]=s*a*i+c*n,e[2]=c*a*i-s*n,e[3]=0,e[4]=a*s*i-c*n,e[5]=s*s*i+o,e[6]=c*s*i+a*n,e[7]=0,e[8]=a*c*i+s*n,e[9]=s*c*i-a*n,e[10]=c*c*i+o,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)}function fromXRotation(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=n,e[6]=r,e[7]=0,e[8]=0,e[9]=-r,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function fromYRotation(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=0,e[2]=-r,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=r,e[9]=0,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function fromZRotation(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=r,e[2]=0,e[3]=0,e[4]=-r,e[5]=n,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function fromRotationTranslation(e,t,r){var n=t[0],o=t[1],i=t[2],a=t[3],s=n+n,c=o+o,A=i+i,u=n*s,l=n*c,d=n*A,g=o*c,f=o*A,h=i*A,p=a*s,E=a*c,m=a*A;return e[0]=1-(g+h),e[1]=l+m,e[2]=d-E,e[3]=0,e[4]=l-m,e[5]=1-(u+h),e[6]=f+p,e[7]=0,e[8]=d+E,e[9]=f-p,e[10]=1-(u+g),e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}function fromQuat2(e,t){var r=new ARRAY_TYPE(3),n=-t[0],o=-t[1],i=-t[2],a=t[3],s=t[4],c=t[5],A=t[6],u=t[7],l=n*n+o*o+i*i+a*a;return l>0?(r[0]=2*(s*a+u*n+c*i-A*o)/l,r[1]=2*(c*a+u*o+A*n-s*i)/l,r[2]=2*(A*a+u*i+s*o-c*n)/l):(r[0]=2*(s*a+u*n+c*i-A*o),r[1]=2*(c*a+u*o+A*n-s*i),r[2]=2*(A*a+u*i+s*o-c*n)),fromRotationTranslation(e,t,r),e}function getTranslation(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function getScaling(e,t){var r=t[0],n=t[1],o=t[2],i=t[4],a=t[5],s=t[6],c=t[8],A=t[9],u=t[10];return e[0]=Math.hypot(r,n,o),e[1]=Math.hypot(i,a,s),e[2]=Math.hypot(c,A,u),e}function getRotation(e,t){var r=new ARRAY_TYPE(3);getScaling(r,t);var n=1/r[0],o=1/r[1],i=1/r[2],a=t[0]*n,s=t[1]*o,c=t[2]*i,A=t[4]*n,u=t[5]*o,l=t[6]*i,d=t[8]*n,g=t[9]*o,f=t[10]*i,h=a+u+f,p=0;return h>0?(p=2*Math.sqrt(h+1),e[3]=.25*p,e[0]=(l-g)/p,e[1]=(d-c)/p,e[2]=(s-A)/p):a>u&&a>f?(p=2*Math.sqrt(1+a-u-f),e[3]=(l-g)/p,e[0]=.25*p,e[1]=(s+A)/p,e[2]=(d+c)/p):u>f?(p=2*Math.sqrt(1+u-a-f),e[3]=(d-c)/p,e[0]=(s+A)/p,e[1]=.25*p,e[2]=(l+g)/p):(p=2*Math.sqrt(1+f-a-u),e[3]=(s-A)/p,e[0]=(d+c)/p,e[1]=(l+g)/p,e[2]=.25*p),e}function fromRotationTranslationScale(e,t,r,n){var o=t[0],i=t[1],a=t[2],s=t[3],c=o+o,A=i+i,u=a+a,l=o*c,d=o*A,g=o*u,f=i*A,h=i*u,p=a*u,E=s*c,m=s*A,I=s*u,y=n[0],_=n[1],w=n[2];return e[0]=(1-(f+p))*y,e[1]=(d+I)*y,e[2]=(g-m)*y,e[3]=0,e[4]=(d-I)*_,e[5]=(1-(l+p))*_,e[6]=(h+E)*_,e[7]=0,e[8]=(g+m)*w,e[9]=(h-E)*w,e[10]=(1-(l+f))*w,e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}function fromRotationTranslationScaleOrigin(e,t,r,n,o){var i=t[0],a=t[1],s=t[2],c=t[3],A=i+i,u=a+a,l=s+s,d=i*A,g=i*u,f=i*l,h=a*u,p=a*l,E=s*l,m=c*A,I=c*u,y=c*l,_=n[0],w=n[1],C=n[2],b=o[0],B=o[1],D=o[2],O=(1-(h+E))*_,T=(g+y)*_,v=(f-I)*_,Q=(g-y)*w,P=(1-(d+E))*w,M=(p+m)*w,R=(f+I)*C,S=(p-m)*C,F=(1-(d+h))*C;return e[0]=O,e[1]=T,e[2]=v,e[3]=0,e[4]=Q,e[5]=P,e[6]=M,e[7]=0,e[8]=R,e[9]=S,e[10]=F,e[11]=0,e[12]=r[0]+b-(O*b+Q*B+R*D),e[13]=r[1]+B-(T*b+P*B+S*D),e[14]=r[2]+D-(v*b+M*B+F*D),e[15]=1,e}function fromQuat(e,t){var r=t[0],n=t[1],o=t[2],i=t[3],a=r+r,s=n+n,c=o+o,A=r*a,u=n*a,l=n*s,d=o*a,g=o*s,f=o*c,h=i*a,p=i*s,E=i*c;return e[0]=1-l-f,e[1]=u+E,e[2]=d-p,e[3]=0,e[4]=u-E,e[5]=1-A-f,e[6]=g+h,e[7]=0,e[8]=d+p,e[9]=g-h,e[10]=1-A-l,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function frustum(e,t,r,n,o,i,a){var s=1/(r-t),c=1/(o-n),A=1/(i-a);return e[0]=2*i*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*i*c,e[6]=0,e[7]=0,e[8]=(r+t)*s,e[9]=(o+n)*c,e[10]=(a+i)*A,e[11]=-1,e[12]=0,e[13]=0,e[14]=a*i*2*A,e[15]=0,e}function perspectiveNO(e,t,r,n,o){var i,a=1/Math.tan(t/2);return e[0]=a/r,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=o&&o!==1/0?(i=1/(n-o),e[10]=(o+n)*i,e[14]=2*o*n*i):(e[10]=-1,e[14]=-2*n),e}__export(mat4_exports,{add:()=>add,adjoint:()=>adjoint,clone:()=>clone,copy:()=>copy,create:()=>create,determinant:()=>determinant,equals:()=>equals,exactEquals:()=>exactEquals,frob:()=>frob,fromQuat:()=>fromQuat,fromQuat2:()=>fromQuat2,fromRotation:()=>fromRotation,fromRotationTranslation:()=>fromRotationTranslation,fromRotationTranslationScale:()=>fromRotationTranslationScale,fromRotationTranslationScaleOrigin:()=>fromRotationTranslationScaleOrigin,fromScaling:()=>fromScaling,fromTranslation:()=>fromTranslation,fromValues:()=>fromValues,fromXRotation:()=>fromXRotation,fromYRotation:()=>fromYRotation,fromZRotation:()=>fromZRotation,frustum:()=>frustum,getRotation:()=>getRotation,getScaling:()=>getScaling,getTranslation:()=>getTranslation,identity:()=>identity,invert:()=>invert,lookAt:()=>lookAt,mul:()=>mul,multiply:()=>multiply,multiplyScalar:()=>multiplyScalar,multiplyScalarAndAdd:()=>multiplyScalarAndAdd,ortho:()=>ortho,orthoNO:()=>orthoNO,orthoZO:()=>orthoZO,perspective:()=>perspective,perspectiveFromFieldOfView:()=>perspectiveFromFieldOfView,perspectiveNO:()=>perspectiveNO,perspectiveZO:()=>perspectiveZO,rotate:()=>rotate,rotateX:()=>rotateX,rotateY:()=>rotateY,rotateZ:()=>rotateZ,scale:()=>scale,set:()=>set,str:()=>str,sub:()=>sub,subtract:()=>subtract,targetTo:()=>targetTo,translate:()=>translate,transpose:()=>transpose});var perspective=perspectiveNO;function perspectiveZO(e,t,r,n,o){var i,a=1/Math.tan(t/2);return e[0]=a/r,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=o&&o!==1/0?(i=1/(n-o),e[10]=o*i,e[14]=o*n*i):(e[10]=-1,e[14]=-n),e}function perspectiveFromFieldOfView(e,t,r,n){var o=Math.tan(t.upDegrees*Math.PI/180),i=Math.tan(t.downDegrees*Math.PI/180),a=Math.tan(t.leftDegrees*Math.PI/180),s=Math.tan(t.rightDegrees*Math.PI/180),c=2/(a+s),A=2/(o+i);return e[0]=c,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=A,e[6]=0,e[7]=0,e[8]=-(a-s)*c*.5,e[9]=(o-i)*A*.5,e[10]=n/(r-n),e[11]=-1,e[12]=0,e[13]=0,e[14]=n*r/(r-n),e[15]=0,e}function orthoNO(e,t,r,n,o,i,a){var s=1/(t-r),c=1/(n-o),A=1/(i-a);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*c,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*A,e[11]=0,e[12]=(t+r)*s,e[13]=(o+n)*c,e[14]=(a+i)*A,e[15]=1,e}var ortho=orthoNO;function orthoZO(e,t,r,n,o,i,a){var s=1/(t-r),c=1/(n-o),A=1/(i-a);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*c,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=A,e[11]=0,e[12]=(t+r)*s,e[13]=(o+n)*c,e[14]=i*A,e[15]=1,e}function lookAt(e,t,r,n){var o,i,a,s,c,A,u,l,d,g,f=t[0],h=t[1],p=t[2],E=n[0],m=n[1],I=n[2],y=r[0],_=r[1],w=r[2];return Math.abs(f-y)<EPSILON&&Math.abs(h-_)<EPSILON&&Math.abs(p-w)<EPSILON?identity(e):(u=f-y,l=h-_,d=p-w,o=m*(d*=g=1/Math.hypot(u,l,d))-I*(l*=g),i=I*(u*=g)-E*d,a=E*l-m*u,(g=Math.hypot(o,i,a))?(o*=g=1/g,i*=g,a*=g):(o=0,i=0,a=0),s=l*a-d*i,c=d*o-u*a,A=u*i-l*o,(g=Math.hypot(s,c,A))?(s*=g=1/g,c*=g,A*=g):(s=0,c=0,A=0),e[0]=o,e[1]=s,e[2]=u,e[3]=0,e[4]=i,e[5]=c,e[6]=l,e[7]=0,e[8]=a,e[9]=A,e[10]=d,e[11]=0,e[12]=-(o*f+i*h+a*p),e[13]=-(s*f+c*h+A*p),e[14]=-(u*f+l*h+d*p),e[15]=1,e)}function targetTo(e,t,r,n){var o=t[0],i=t[1],a=t[2],s=n[0],c=n[1],A=n[2],u=o-r[0],l=i-r[1],d=a-r[2],g=u*u+l*l+d*d;g>0&&(u*=g=1/Math.sqrt(g),l*=g,d*=g);var f=c*d-A*l,h=A*u-s*d,p=s*l-c*u;return(g=f*f+h*h+p*p)>0&&(f*=g=1/Math.sqrt(g),h*=g,p*=g),e[0]=f,e[1]=h,e[2]=p,e[3]=0,e[4]=l*p-d*h,e[5]=d*f-u*p,e[6]=u*h-l*f,e[7]=0,e[8]=u,e[9]=l,e[10]=d,e[11]=0,e[12]=o,e[13]=i,e[14]=a,e[15]=1,e}function str(e){return"mat4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+", "+e[9]+", "+e[10]+", "+e[11]+", "+e[12]+", "+e[13]+", "+e[14]+", "+e[15]+")"}function frob(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])}function add(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e[4]=t[4]+r[4],e[5]=t[5]+r[5],e[6]=t[6]+r[6],e[7]=t[7]+r[7],e[8]=t[8]+r[8],e[9]=t[9]+r[9],e[10]=t[10]+r[10],e[11]=t[11]+r[11],e[12]=t[12]+r[12],e[13]=t[13]+r[13],e[14]=t[14]+r[14],e[15]=t[15]+r[15],e}function subtract(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e[4]=t[4]-r[4],e[5]=t[5]-r[5],e[6]=t[6]-r[6],e[7]=t[7]-r[7],e[8]=t[8]-r[8],e[9]=t[9]-r[9],e[10]=t[10]-r[10],e[11]=t[11]-r[11],e[12]=t[12]-r[12],e[13]=t[13]-r[13],e[14]=t[14]-r[14],e[15]=t[15]-r[15],e}function multiplyScalar(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*r,e[5]=t[5]*r,e[6]=t[6]*r,e[7]=t[7]*r,e[8]=t[8]*r,e[9]=t[9]*r,e[10]=t[10]*r,e[11]=t[11]*r,e[12]=t[12]*r,e[13]=t[13]*r,e[14]=t[14]*r,e[15]=t[15]*r,e}function multiplyScalarAndAdd(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e[4]=t[4]+r[4]*n,e[5]=t[5]+r[5]*n,e[6]=t[6]+r[6]*n,e[7]=t[7]+r[7]*n,e[8]=t[8]+r[8]*n,e[9]=t[9]+r[9]*n,e[10]=t[10]+r[10]*n,e[11]=t[11]+r[11]*n,e[12]=t[12]+r[12]*n,e[13]=t[13]+r[13]*n,e[14]=t[14]+r[14]*n,e[15]=t[15]+r[15]*n,e}function exactEquals(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[11]===t[11]&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[15]===t[15]}function equals(e,t){var r=e[0],n=e[1],o=e[2],i=e[3],a=e[4],s=e[5],c=e[6],A=e[7],u=e[8],l=e[9],d=e[10],g=e[11],f=e[12],h=e[13],p=e[14],E=e[15],m=t[0],I=t[1],y=t[2],_=t[3],w=t[4],C=t[5],b=t[6],B=t[7],D=t[8],O=t[9],T=t[10],v=t[11],Q=t[12],P=t[13],M=t[14],R=t[15];return Math.abs(r-m)<=EPSILON*Math.max(1,Math.abs(r),Math.abs(m))&&Math.abs(n-I)<=EPSILON*Math.max(1,Math.abs(n),Math.abs(I))&&Math.abs(o-y)<=EPSILON*Math.max(1,Math.abs(o),Math.abs(y))&&Math.abs(i-_)<=EPSILON*Math.max(1,Math.abs(i),Math.abs(_))&&Math.abs(a-w)<=EPSILON*Math.max(1,Math.abs(a),Math.abs(w))&&Math.abs(s-C)<=EPSILON*Math.max(1,Math.abs(s),Math.abs(C))&&Math.abs(c-b)<=EPSILON*Math.max(1,Math.abs(c),Math.abs(b))&&Math.abs(A-B)<=EPSILON*Math.max(1,Math.abs(A),Math.abs(B))&&Math.abs(u-D)<=EPSILON*Math.max(1,Math.abs(u),Math.abs(D))&&Math.abs(l-O)<=EPSILON*Math.max(1,Math.abs(l),Math.abs(O))&&Math.abs(d-T)<=EPSILON*Math.max(1,Math.abs(d),Math.abs(T))&&Math.abs(g-v)<=EPSILON*Math.max(1,Math.abs(g),Math.abs(v))&&Math.abs(f-Q)<=EPSILON*Math.max(1,Math.abs(f),Math.abs(Q))&&Math.abs(h-P)<=EPSILON*Math.max(1,Math.abs(h),Math.abs(P))&&Math.abs(p-M)<=EPSILON*Math.max(1,Math.abs(p),Math.abs(M))&&Math.abs(E-R)<=EPSILON*Math.max(1,Math.abs(E),Math.abs(R))}var mul=multiply,sub=subtract,ch2={},wk=function(e,t,r,n,o){var i=new Worker(ch2[t]||(ch2[t]=URL.createObjectURL(new Blob([e+';addEventListener("error",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'],{type:"text/javascript"}))));return i.onmessage=function(e){var t=e.data,r=t.$e$;if(r){var n=new Error(r[0]);n.code=r[1],n.stack=r[2],o(n,null)}else o(null,t)},i.postMessage(r,n),i},u8=Uint8Array,u16=Uint16Array,i32=Int32Array,fleb=new u8([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),fdeb=new u8([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),clim=new u8([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),freb=function(e,t){for(var r=new u16(31),n=0;n<31;++n)r[n]=t+=1<<e[n-1];var o=new i32(r[30]);for(n=1;n<30;++n)for(var i=r[n];i<r[n+1];++i)o[i]=i-r[n]<<5|n;return{b:r,r:o}},_a2=freb(fleb,2),fl=_a2.b,revfl=_a2.r;fl[28]=258,revfl[258]=28;var x2,_b=freb(fdeb,0),fd=_b.b,revfd=_b.r,rev=new u16(32768);for(i2=0;i2<32768;++i2)x2=(61680&(x2=(52428&(x2=(43690&i2)>>1|(21845&i2)<<1))>>2|(13107&x2)<<2))>>4|(3855&x2)<<4,rev[i2]=((65280&x2)>>8|(255&x2)<<8)>>1;var hMap=function(e,t,r){for(var n=e.length,o=0,i=new u16(t);o<n;++o)e[o]&&++i[e[o]-1];var a,s=new u16(t);for(o=1;o<t;++o)s[o]=s[o-1]+i[o-1]<<1;if(r){a=new u16(1<<t);var c=15-t;for(o=0;o<n;++o)if(e[o])for(var A=o<<4|e[o],u=t-e[o],l=s[e[o]-1]++<<u,d=l|(1<<u)-1;l<=d;++l)a[rev[l]>>c]=A}else for(a=new u16(n),o=0;o<n;++o)e[o]&&(a[o]=rev[s[e[o]-1]++]>>15-e[o]);return a},flt=new u8(288);for(i2=0;i2<144;++i2)flt[i2]=8;for(i2=144;i2<256;++i2)flt[i2]=9;for(i2=256;i2<280;++i2)flt[i2]=7;for(i2=280;i2<288;++i2)flt[i2]=8;var i2,fdt=new u8(32);for(i2=0;i2<32;++i2)fdt[i2]=5;var flrm=hMap(flt,9,1),fdrm=hMap(fdt,5,1),max=function(e){for(var t=e[0],r=1;r<e.length;++r)e[r]>t&&(t=e[r]);return t},bits=function(e,t,r){var n=t/8|0;return(e[n]|e[n+1]<<8)>>(7&t)&r},bits16=function(e,t){var r=t/8|0;return(e[r]|e[r+1]<<8|e[r+2]<<16)>>(7&t)},shft=function(e){return(e+7)/8|0},slc=function(e,t,r){return(null==t||t<0)&&(t=0),(null==r||r>e.length)&&(r=e.length),new u8(e.subarray(t,r))},ec2=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],err=function(e,t,r){var n=new Error(t||ec2[e]);if(n.code=e,Error.captureStackTrace&&Error.captureStackTrace(n,err),!r)throw n;return n},inflt=function(e,t,r,n){var o=e.length,i=n?n.length:0;if(!o||t.f&&!t.l)return r||new u8(0);var a=!r,s=a||2!=t.i,c=t.i;a&&(r=new u8(3*o));var A=function(e){var t=r.length;if(e>t){var n=new u8(Math.max(2*t,e));n.set(r),r=n}},u=t.f||0,l=t.p||0,d=t.b||0,g=t.l,f=t.d,h=t.m,p=t.n,E=8*o;do{if(!g){u=bits(e,l,1);var m=bits(e,l+1,3);if(l+=3,!m){var I=e[(Q=shft(l)+4)-4]|e[Q-3]<<8,y=Q+I;if(y>o){c&&err(0);break}s&&A(d+I),r.set(e.subarray(Q,y),d),t.b=d+=I,t.p=l=8*y,t.f=u;continue}if(1==m)g=flrm,f=fdrm,h=9,p=5;else if(2==m){var _=bits(e,l,31)+257,w=bits(e,l+10,15)+4,C=_+bits(e,l+5,31)+1;l+=14;for(var b=new u8(C),B=new u8(19),D=0;D<w;++D)B[clim[D]]=bits(e,l+3*D,7);l+=3*w;var O=max(B),T=(1<<O)-1,v=hMap(B,O,1);for(D=0;D<C;){var Q,P=v[bits(e,l,T)];if(l+=15&P,(Q=P>>4)<16)b[D++]=Q;else{var M=0,R=0;for(16==Q?(R=3+bits(e,l,3),l+=2,M=b[D-1]):17==Q?(R=3+bits(e,l,7),l+=3):18==Q&&(R=11+bits(e,l,127),l+=7);R--;)b[D++]=M}}var S=b.subarray(0,_),F=b.subarray(_);h=max(S),p=max(F),g=hMap(S,h,1),f=hMap(F,p,1)}else err(1);if(l>E){c&&err(0);break}}s&&A(d+131072);for(var x=(1<<h)-1,k=(1<<p)-1,N=l;;N=l){var U=(M=g[bits16(e,l)&x])>>4;if((l+=15&M)>E){c&&err(0);break}if(M||err(2),U<256)r[d++]=U;else{if(256==U){N=l,g=null;break}var j=U-254;if(U>264){var L=fleb[D=U-257];j=bits(e,l,(1<<L)-1)+fl[D],l+=L}var H=f[bits16(e,l)&k],G=H>>4;H||err(3),l+=15&H;F=fd[G];if(G>3){L=fdeb[G];F+=bits16(e,l)&(1<<L)-1,l+=L}if(l>E){c&&err(0);break}s&&A(d+131072);var Y=d+j;if(d<F){var X=i-F,W=Math.min(F,Y);for(X+d<0&&err(3);d<W;++d)r[d]=n[X+d]}for(;d<Y;++d)r[d]=r[d-F]}}t.l=g,t.p=N,t.b=d,t.f=u,g&&(u=1,t.m=h,t.d=f,t.n=p)}while(!u);return d!=r.length&&a?slc(r,0,d):r.subarray(0,d)},et2=new u8(0),mrg=function(e,t){var r={};for(var n in e)r[n]=e[n];for(var n in t)r[n]=t[n];return r},wcln=function(e,t,r){for(var n=e(),o=e.toString(),i=o.slice(o.indexOf("[")+1,o.lastIndexOf("]")).replace(/\s+/g,"").split(","),a=0;a<n.length;++a){var s=n[a],c=i[a];if("function"==typeof s){t+=";"+c+"=";var A=s.toString();if(s.prototype)if(-1!=A.indexOf("[native code]")){var u=A.indexOf(" ",8)+1;t+=A.slice(u,A.indexOf("(",u))}else for(var l in t+=A,s.prototype)t+=";"+c+".prototype."+l+"="+s.prototype[l].toString();else t+=A}else r[c]=s}return t},ch=[],cbfs=function(e){var t=[];for(var r in e)e[r].buffer&&t.push((e[r]=new e[r].constructor(e[r])).buffer);return t},wrkr=function(e,t,r,n){if(!ch[r]){for(var o="",i={},a=e.length-1,s=0;s<a;++s)o=wcln(e[s],o,i);ch[r]={c:wcln(e[a],o,i),e:i}}var c=mrg({},ch[r].e);return wk(ch[r].c+";onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage="+t.toString()+"}",r,c,cbfs(c),n)},bInflt=function(){return[u8,u16,i32,fleb,fdeb,clim,fl,fd,flrm,fdrm,rev,ec2,hMap,max,bits,bits16,shft,slc,err,inflt,inflateSync,pbf,gopt]},guze=function(){return[gzs,gzl]},pbf=function(e){return postMessage(e,[e.buffer])},gopt=function(e){return e&&{out:e.size&&new u8(e.size),dictionary:e.dictionary}},cbify=function(e,t,r,n,o,i){var a=wrkr(r,n,o,(function(e,t){a.terminate(),i(e,t)}));return a.postMessage([e,t],t.consume?[e.buffer]:[]),function(){a.terminate()}},gzs=function(e){31==e[0]&&139==e[1]&&8==e[2]||err(6,"invalid gzip data");var t=e[3],r=10;4&t&&(r+=2+(e[10]|e[11]<<8));for(var n=(t>>3&1)+(t>>4&1);n>0;n-=!e[r++]);return r+(2&t)},gzl=function(e){var t=e.length;return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0};function inflateSync(e,t){return inflt(e,{i:2},t&&t.out,t&&t.dictionary)}function gunzip(e,t,r){return r||(r=t,t={}),"function"!=typeof r&&err(7),cbify(e,t,[bInflt,guze,function(){return[gunzipSync]}],(function(e){return pbf(gunzipSync(e.data[0],e.data[1]))}),3,r)}function gunzipSync(e,t){var r=gzs(e);return r+8>e.length&&err(6,"invalid gzip data"),inflt(e.subarray(r,-8),{i:2},t&&t.out||new u8(gzl(e)),t&&t.dictionary)}var td="undefined"!=typeof TextDecoder&&new TextDecoder,tds=0;try{td.decode(et2,{stream:!0}),tds=1}catch(e){}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),__publicField(this,"faceDetector"),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){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,this.initFaceDetector.bind(this,e),mat4_exports)}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}`})}}isWasmFile(e){return e.byteLength>=4&&0===e[0]&&97===e[1]&&115===e[2]&&109===e[3]}async loadAndDecompressGz(e){const t=await fetch(e);if(!t.ok)throw Error(`Failed to fetch ${e}: ${t.status} ${t.statusText}`);const r=await t.arrayBuffer();return new Promise(((e,t)=>{gunzip(new Uint8Array(r),((r,n)=>{r&&t(r),this.isWasmFile(n)?e(new Blob([n],{type:"application/wasm"})):t(new Error("Decompressed data is not a valid WASM file"))}))}))}async initFaceDetector(e){try{if(!this.faceDetector){const t=t=>`${e}/${t}`.replace(/([^:]\/)\/+/g,"$1"),r=t(`/face_detection/${await Uo.isSimdSupported()?"vision_wasm_internal":"vision_wasm_nosimd_internal"}`),n=`${r}.gz`,o=await this.loadAndDecompressGz(n);if(!o)return;const i=URL.createObjectURL(o),a=await Uo.forVisionTasks("");a.wasmBinaryPath=i,a.wasmLoaderPath=`${r}.js`,this.faceDetector=await Za.createFromOptions(a,{baseOptions:{modelAssetPath:t("/face_detection/blaze_face_short_range.tflite"),delegate:"GPU"},runningMode:"VIDEO"})}return this.faceDetector}catch(e){this.log.error("Init FaceDetetor",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,enableFaceCentering:e.enableFaceCentering,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,enableFaceCentering:e.enableFaceCentering}).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};
|
|
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')})),__export=(e,t)=>{for(var r in t)__defProp(e,r,{get:t[r],enumerable:!0})},__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:c}=e.errorModule;if(!t)return;const{type:A,src:u,onAbort:l}=t;if("image"===A&&!u)throw new a({code:s.INVALID_PARAMETER,extraCode:c.INVALID_PARAMETER_REQUIRED,fnName:n,messageParams:{key:"src"}});if(l&&!e.utils.isFunction(l))throw new a({code:s.INVALID_PARAMETER,extraCode:c.INVALID_PARAMETER_TYPE,fnName:n,messageParams:{key:"onAbort",value:typeof l,rule:{type:"Function"}}});if(!(null==(i=e.room.videoManager.cameraTrack)?void 0:i.mediaTrack))throw new a({code:s.INVALID_OPERATION,extraCode:c.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:c,src:A}=t;if("image"===c&&!A)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(){_e("You are getting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_main",{configurable:!0,set(){_e("You are setting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_emscripten_stack_get_end")||(Object.defineProperty(r.ready,"_emscripten_stack_get_end",{configurable:!0,get(){_e("You are getting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_emscripten_stack_get_end",{configurable:!0,set(){_e("You are setting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_emscripten_stack_get_free")||(Object.defineProperty(r.ready,"_emscripten_stack_get_free",{configurable:!0,get(){_e("You are getting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_emscripten_stack_get_free",{configurable:!0,set(){_e("You are setting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_emscripten_stack_init")||(Object.defineProperty(r.ready,"_emscripten_stack_init",{configurable:!0,get(){_e("You are getting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_emscripten_stack_init",{configurable:!0,set(){_e("You are setting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_stackSave")||(Object.defineProperty(r.ready,"_stackSave",{configurable:!0,get(){_e("You are getting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_stackSave",{configurable:!0,set(){_e("You are setting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_stackRestore")||(Object.defineProperty(r.ready,"_stackRestore",{configurable:!0,get(){_e("You are getting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_stackRestore",{configurable:!0,set(){_e("You are setting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_stackAlloc")||(Object.defineProperty(r.ready,"_stackAlloc",{configurable:!0,get(){_e("You are getting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_stackAlloc",{configurable:!0,set(){_e("You are setting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"___wasm_call_ctors")||(Object.defineProperty(r.ready,"___wasm_call_ctors",{configurable:!0,get(){_e("You are getting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"___wasm_call_ctors",{configurable:!0,set(){_e("You are setting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_fflush")||(Object.defineProperty(r.ready,"_fflush",{configurable:!0,get(){_e("You are getting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_fflush",{configurable:!0,set(){_e("You are setting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"___errno_location")||(Object.defineProperty(r.ready,"___errno_location",{configurable:!0,get(){_e("You are getting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"___errno_location",{configurable:!0,set(){_e("You are setting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_malloc")||(Object.defineProperty(r.ready,"_malloc",{configurable:!0,get(){_e("You are getting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_malloc",{configurable:!0,set(){_e("You are setting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_free")||(Object.defineProperty(r.ready,"_free",{configurable:!0,get(){_e("You are getting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_free",{configurable:!0,set(){_e("You are setting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_setThrew")||(Object.defineProperty(r.ready,"_setThrew",{configurable:!0,get(){_e("You are getting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_setThrew",{configurable:!0,set(){_e("You are setting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"___cxa_is_pointer_type")||(Object.defineProperty(r.ready,"___cxa_is_pointer_type",{configurable:!0,get(){_e("You are getting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"___cxa_is_pointer_type",{configurable:!0,set(){_e("You are setting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"___cxa_can_catch")||(Object.defineProperty(r.ready,"___cxa_can_catch",{configurable:!0,get(){_e("You are getting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"___cxa_can_catch",{configurable:!0,set(){_e("You are setting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_saveSetjmp")||(Object.defineProperty(r.ready,"_saveSetjmp",{configurable:!0,get(){_e("You are getting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_saveSetjmp",{configurable:!0,set(){_e("You are setting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_memalign")||(Object.defineProperty(r.ready,"_memalign",{configurable:!0,get(){_e("You are getting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_memalign",{configurable:!0,set(){_e("You are setting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_emscripten_main_thread_process_queued_calls")||(Object.defineProperty(r.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,get(){_e("You are getting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,set(){_e("You are setting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_emscripten_webgl_make_context_current")||(Object.defineProperty(r.ready,"_emscripten_webgl_make_context_current",{configurable:!0,get(){_e("You are getting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_emscripten_webgl_make_context_current",{configurable:!0,set(){_e("You are setting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_emscripten_webgl_get_current_context")||(Object.defineProperty(r.ready,"_emscripten_webgl_get_current_context",{configurable:!0,get(){_e("You are getting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_emscripten_webgl_get_current_context",{configurable:!0,set(){_e("You are setting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"__get_tzname")||(Object.defineProperty(r.ready,"__get_tzname",{configurable:!0,get(){_e("You are getting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"__get_tzname",{configurable:!0,set(){_e("You are setting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"__get_daylight")||(Object.defineProperty(r.ready,"__get_daylight",{configurable:!0,get(){_e("You are getting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"__get_daylight",{configurable:!0,set(){_e("You are setting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"__get_timezone")||(Object.defineProperty(r.ready,"__get_timezone",{configurable:!0,get(){_e("You are getting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"__get_timezone",{configurable:!0,set(){_e("You are setting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_emscripten_builtin_malloc")||(Object.defineProperty(r.ready,"_emscripten_builtin_malloc",{configurable:!0,get(){_e("You are getting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_emscripten_builtin_malloc",{configurable:!0,set(){_e("You are setting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_emscripten_builtin_free")||(Object.defineProperty(r.ready,"_emscripten_builtin_free",{configurable:!0,get(){_e("You are getting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_emscripten_builtin_free",{configurable:!0,set(){_e("You are setting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"_emscripten_builtin_memalign")||(Object.defineProperty(r.ready,"_emscripten_builtin_memalign",{configurable:!0,get(){_e("You are getting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"_emscripten_builtin_memalign",{configurable:!0,set(){_e("You are setting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"___getTypeName")||(Object.defineProperty(r.ready,"___getTypeName",{configurable:!0,get(){_e("You are getting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"___getTypeName",{configurable:!0,set(){_e("You are setting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"___embind_register_native_and_builtin_types")||(Object.defineProperty(r.ready,"___embind_register_native_and_builtin_types",{configurable:!0,get(){_e("You are getting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"___embind_register_native_and_builtin_types",{configurable:!0,set(){_e("You are setting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(r.ready,"onRuntimeInitialized")||(Object.defineProperty(r.ready,"onRuntimeInitialized",{configurable:!0,get(){_e("You are getting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(r.ready,"onRuntimeInitialized",{configurable:!0,set(){_e("You are setting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));let i,a={};for(i in r)r.hasOwnProperty(i)&&(a[i]=r[i]);let s=[],c="./this.program",A=function(e,t){throw t};const u="object"==typeof window,l="function"==typeof importScripts,d="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,g=!u&&!d&&!l;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 f,h,p,E,m="";if(!u&&!l)throw new Error("environment detection error");if(l?m=self.location.href:"undefined"!=typeof document&&document.currentScript&&(m=document.currentScript.src),e&&(m=e),m=0!==m.indexOf("blob:")?m.substr(0,m.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?)");f=function(e){const t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},l&&(p=function(e){const t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),h=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)},E=function(e){document.title=e};let I=r.print||console.log.bind(console),y=r.printErr||console.warn.bind(console);for(i in a)a.hasOwnProperty(i)&&(r[i]=a[i]);function _(e){_.shown||(_.shown={}),_.shown[e]||(_.shown[e]=1,y(e))}a=null,r.arguments&&(s=r.arguments),Object.getOwnPropertyDescriptor(r,"arguments")||Object.defineProperty(r,"arguments",{configurable:!0,get(){_e("Module.arguments has been replaced with plain arguments_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),r.thisProgram&&(c=r.thisProgram),Object.getOwnPropertyDescriptor(r,"thisProgram")||Object.defineProperty(r,"thisProgram",{configurable:!0,get(){_e("Module.thisProgram has been replaced with plain thisProgram (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),r.quit&&(A=r.quit),Object.getOwnPropertyDescriptor(r,"quit")||Object.defineProperty(r,"quit",{configurable:!0,get(){_e("Module.quit has been replaced with plain quit_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),v(void 0===r.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),v(void 0===r.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),v(void 0===r.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),v(void 0===r.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),v(void 0===r.read,"Module.read option was removed (modify read_ in JS)"),v(void 0===r.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),v(void 0===r.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),v(void 0===r.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),v(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(){_e("Module.read has been replaced with plain read_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(r,"readAsync")||Object.defineProperty(r,"readAsync",{configurable:!0,get(){_e("Module.readAsync has been replaced with plain readAsync (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(r,"readBinary")||Object.defineProperty(r,"readBinary",{configurable:!0,get(){_e("Module.readBinary has been replaced with plain readBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(r,"setWindowTitle")||Object.defineProperty(r,"setWindowTitle",{configurable:!0,get(){_e("Module.setWindowTitle has been replaced with plain setWindowTitle (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),v(!g,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");let w=0;const C=function(e){w=e};let b;r.wasmBinary&&(b=r.wasmBinary),Object.getOwnPropertyDescriptor(r,"wasmBinary")||Object.defineProperty(r,"wasmBinary",{configurable:!0,get(){_e("Module.wasmBinary has been replaced with plain wasmBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}});const B=r.noExitRuntime||!0;let D;Object.getOwnPropertyDescriptor(r,"noExitRuntime")||Object.defineProperty(r,"noExitRuntime",{configurable:!0,get(){_e("Module.noExitRuntime has been replaced with plain noExitRuntime (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),"object"!=typeof WebAssembly&&_e("no native wasm support detected");let O,T=!1;function v(e,t){e||_e(`Assertion failed: ${t}`)}const Q="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&&Q)return Q.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)&&_(`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 M(e,t){return e?P(z,e,t):""}function R(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&&_(`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 v("number"==typeof r,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),R(e,z,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 x="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function k(e,t){v(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)&&K[n];)++n;if(r=n<<1,r-e>32&&x)return x.decode(z.subarray(e,r));let i="";for(let r=0;!(r>=t/2);++r){const t=$[e+2*r>>1];if(0==t)break;i+=String.fromCharCode(t)}return i}function N(e,t,r){if(v(t%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),v("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);$[t>>1]=n,t+=2}return $[t>>1]=0,t-n}function U(e){return 2*e.length}function j(e,t){v(e%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");let r=0,n="";for(;!(r>=t/4);){const t=Z[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(v(t%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),v("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(Z[t>>2]=n,(t+=4)+4>o)break}return Z[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&&R(e,V,r,t),r}function Y(e,t){v(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),V.set(e,t)}function X(e,t){return e%t>0&&(e+=t-e%t),e}let W,V,z,$,K,Z,J,q,ee;function te(e){W=e,r.HEAP8=V=new Int8Array(e),r.HEAP16=$=new Int16Array(e),r.HEAP32=Z=new Int32Array(e),r.HEAPU8=z=new Uint8Array(e),r.HEAPU16=K=new Uint16Array(e),r.HEAPU32=J=new Uint32Array(e),r.HEAPF32=q=new Float32Array(e),r.HEAPF64=ee=new Float64Array(e)}const re=5242880;r.TOTAL_STACK&&v(re===r.TOTAL_STACK,"the stack size can no longer be determined at runtime");const ne=r.INITIAL_MEMORY||16777216;let oe;function ie(){const e=gn();v(!(3&e)),J[1+(e>>2)]=34821223,J[2+(e>>2)]=2310721022,Z[0]=1668509029}function ae(){if(T)return;const e=gn(),t=J[1+(e>>2)],r=J[2+(e>>2)];34821223==t&&2310721022==r||_e(`Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x${r.toString(16)} ${t.toString(16)}`),1668509029!==Z[0]&&_e("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(){_e("Module.INITIAL_MEMORY has been replaced with plain INITIAL_MEMORY (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),v(ne>=re,`INITIAL_MEMORY should be larger than TOTAL_STACK, was ${ne}! (TOTAL_STACK=5242880)`),v("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"),v(!r.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),v(16777216==ne,"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 se=[],ce=[],Ae=[],ue=[];let le=!1,de=!1;function ge(){return B||!1}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");let fe=0,he=null,pe=null;const Ee={};function me(e){const t=e;for(;;){if(!Ee[e])return e;e=t+Math.random()}}function Ie(e){fe++,r.monitorRunDependencies&&r.monitorRunDependencies(fe),e?(v(!Ee[e]),Ee[e]=1,null===he&&"undefined"!=typeof setInterval&&(he=setInterval((()=>{if(T)return clearInterval(he),void(he=null);let e=!1;for(const t in Ee)e||(e=!0,y("still waiting on run dependencies:")),y(`dependency: ${t}`);e&&y("(end of list)")}),1e4))):y("warning: run dependency added without ID")}function ye(e){if(fe--,r.monitorRunDependencies&&r.monitorRunDependencies(fe),e?(v(Ee[e]),delete Ee[e]):y("warning: run dependency removed without ID"),0==fe&&(null!==he&&(clearInterval(he),he=null),pe)){const e=pe;pe=null,e()}}function _e(e){r.onAbort&&r.onAbort(e),y(e+=""),T=!0,O=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 xe(e)}()}`;e=t;const n=new WebAssembly.RuntimeError(e);throw o(n),n}r.preloadedImages={},r.preloadedAudios={};function we(e,t){return function(){const n=e;let o=t;return t||(o=r.asm),v(le,`native function \`${n}\` called before runtime initialization`),v(!de,`native function \`${n}\` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)`),o[e]||v(o[e],`exported native function \`${n}\` not found`),o[e].apply(null,arguments)}}let Ce;var be;let Be,De;Ce="selfie_segmentation_solution_simd_wasm_bin.wasm",Ce.startsWith("data:application/octet-stream;base64,")||(be=Ce,Ce=r.locateFile?r.locateFile(be,m):m+be);const Oe={460656(){let e=!0;if(e){const t=Qr;if("function"!=typeof t)return void("undefined"!=typeof console&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.'));Qr=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 Te(e,t){if(Se.mainLoop.timingMode=e,Se.mainLoop.timingValue=t,!Se.mainLoop.func)return y("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-ve());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),l?(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 ve;function Qe(e){!function(e,t){if(O=e,function(){const e=I,t=y;let n=!1;I=y=function(e){n=!0};try{const e=r._fflush;e&&e(0),["stdout","stderr"].forEach((e=>{const t=Ze.analyzePath(`/dev/${e}`);if(!t)return;const r=t.object,{rdev:o}=r,i=We.ttys[o];i&&i.output&&i.output.length&&(n=!0)}))}catch(e){}I=e,y=t,n&&_("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.")}(),ge()){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),y(t)}}else ae(),de=!0;On(e)}(e)}function Pe(e,t,n,o,i){v(!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(!ge())try{Qe(O)}catch(e){if(e instanceof Bn)return;throw e}}(),!1)}if(Se.mainLoop.running=!1,Se.mainLoop.runner=function(){if(!T)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(I(`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=ve()),Dr.newRenderingFrameStarted(),void 0!==Dr&&Dr.currentContext&&!Dr.currentContextIsProxied&&!Dr.currentContext.attributes.explicitSwapControl&&Dr.currentContext.GLctx.commit&&Dr.currentContext.GLctx.commit(),"timeout"===Se.mainLoop.method&&r.ctx&&(_("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),ae(),s()&&("object"==typeof SDL&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Se.mainLoop.scheduler())))},i||(t&&t>0?Te(0,1e3/t):Te(1,1),Se.mainLoop.scheduler()),n)throw"unwind"}function Me(e,t){if(T)y("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&&y(`exception thrown: ${[e,e.stack]}`),e}}function Re(e,t){return setTimeout((()=>{Me(e)}),t)}ve=d?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),Te(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(!T){if(r.preMainLoop){if(!1===r.preMainLoop())return}Me(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,I("warning: no blob constructor, cannot create blobs with mimetypes")}Se.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:Se.hasBlobConstructor?null:I("warning: no BlobBuilder"),Se.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,r.noImageDecoding||void 0!==Se.URLObject||(I("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){_(`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);v("string"==typeof a,"createObjectURL must return a url as a string");const s=new Image;s.onload=function(){v(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){I(`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 c=new Blob([e],{type:Se.getMimetype(t)})}catch(e){return s()}const r=Se.URLObject.createObjectURL(c);v("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||(I(`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,Re((()=>{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!==Dr&&(a=Dr.createContext(e,t),a&&(i=Dr.getContext(a).GLctx))}else i=e.getContext("2d");return i?(n&&(t||v(void 0===rn,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),r.ctx=i,t&&Dr.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(){_e("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=>Re(e),safeRequestAnimationFrame:e=>Se.requestAnimationFrame((()=>{Me(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(v(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),c=r.pageY-(a+t.top);s*=n/t.width,c*=o/t.height;const A={x:s,y:c};if("touchstart"===e.type)Se.lastTouches[r.identifier]=A,Se.touches[r.identifier]=A;else if("touchend"===e.type||"touchmove"===e.type){let e=Se.touches[r.identifier];e||(e=A),Se.lastTouches[r.identifier]=e,Se.touches[r.identifier]=A}return}let s=e.pageX-(i+t.left),c=e.pageY-(a+t.top);s*=n/t.width,c*=o/t.height,Se.mouseMovementX=s-Se.mouseX,Se.mouseMovementY=c-Se.mouseY,Se.mouseX=s,Se.mouseY=c}},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,Z[SDL.screen>>2]=e}Se.updateCanvasDimensions(r.canvas),Se.updateResizeListeners()},setWindowedCanvasSize(){if("undefined"!=typeof SDL){let e=J[SDL.screen>>2];e&=-8388609,Z[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?oe.get(n)():oe.get(n)(t.arg):n(void 0===t.arg?null:t.arg)}}function xe(e){return e.replace(/\b_Z[\w\d_]+/g,(e=>{const t=(r=e,_("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){Z[this.ptr+4>>2]=e},this.get_type=function(){return Z[this.ptr+4>>2]},this.set_destructor=function(e){Z[this.ptr+8>>2]=e},this.get_destructor=function(){return Z[this.ptr+8>>2]},this.set_refcount=function(e){Z[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=Z[this.ptr>>2];Z[this.ptr>>2]=e+1},this.release_ref=function(){const e=Z[this.ptr>>2];return Z[this.ptr>>2]=e-1,v(e>0),1===e}}function Ne(e){this.free=function(){An(this.ptr),this.ptr=0},this.set_base_ptr=function(e){Z[this.ptr>>2]=e},this.get_base_ptr=function(){return Z[this.ptr>>2]},this.set_adjusted_ptr=function(e){Z[this.ptr+4>>2]=e},this.get_adjusted_ptr_addr=function(){return this.ptr+4},this.get_adjusted_ptr=function(){return Z[this.ptr+4>>2]},this.get_exception_ptr=function(){if(wn(this.get_exception_info().get_type()))return Z[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 An(new ke(e).ptr)}catch(e){y(`exception during cxa_free_exception: ${e}`)}}function He(e){return Z[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(d)try{const e=__require("crypto");return function(){return e.randomBytes(1)[0]}}catch(e){}return function(){_e("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };")}}var Xe={resolve(){let e="",t=!1;for(let r=arguments.length-1;r>=-1&&!t;r--){const n=r>=0?arguments[r]:Ze.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 c=[];for(s=a;s<n.length;s++)c.push("..");return c=c.concat(o.slice(a)),c.join("/")}},We={ttys:[],init(){},shutdown(){},register(e,t){We.ttys[e]={input:[],output:[],ops:t},Ze.registerDevice(e,We.stream_ops)},stream_ops:{open(e){const t=We.ttys[e.node.rdev];if(!t)throw new Ze.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 Ze.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 Ze.ErrnoError(29)}if(void 0===a&&0===i)throw new Ze.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 Ze.ErrnoError(60);try{for(var i=0;i<n;i++)e.tty.ops.put_char(e.tty,t[r+i])}catch(e){throw new Ze.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),i}},default_tty_ops:{get_char(e){if(!e.input.length){let t=null;if(d){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=sn(t,!0)}return e.input.shift()},put_char(e,t){null===t||10===t?(I(P(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush(e){e.output&&e.output.length>0&&(I(P(e.output,0)),e.output=[])}},default_tty1_ops:{put_char(e,t){null===t||10===t?(y(P(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush(e){e.output&&e.output.length>0&&(y(P(e.output,0)),e.output=[])}}};function Ve(e){e=function(e,t){return v(t,"alignment argument is required"),Math.ceil(e/t)*t}(e,65536);const t=Cn(65536,e);return t?(function(e,t){z.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(Ze.isBlkdev(r)||Ze.isFIFO(r))throw new Ze.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:Ze.chrdev_stream_ops}});const o=Ze.createNode(e,t,r,n);return Ze.isDir(o.mode)?(o.node_ops=ze.ops_table.dir.node,o.stream_ops=ze.ops_table.dir.stream,o.contents={}):Ze.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):Ze.isLink(o.mode)?(o.node_ops=ze.ops_table.link.node,o.stream_ops=ze.ops_table.link.stream):Ze.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=Ze.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,Ze.isDir(e.mode)?t.size=4096:Ze.isFile(e.mode)?t.size=e.usedBytes:Ze.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 Ze.genericErrors[44]},mknod:(e,t,r,n)=>ze.createNode(e,t,r,n),rename(e,t,r){if(Ze.isDir(e.mode)){let e;try{e=Ze.lookupNode(t,r)}catch(e){}if(e)for(const t in e.contents)throw new Ze.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=Ze.lookupNode(e,t);for(const e in r.contents)throw new Ze.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(!Ze.isLink(e.mode))throw new Ze.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(v(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(v(!(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 v(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&&Ze.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new Ze.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 Ze.ErrnoError(28);if(!Ze.isFile(e.node.mode))throw new Ze.ErrnoError(43);let a,s,{contents:c}=e.node;if(2&i||c.buffer!==W){if((n>0||n+r<c.length)&&(c=c.subarray?c.subarray(n,n+r):Array.prototype.slice.call(c,n,n+r)),s=!0,a=Ve(r),!a)throw new Ze.ErrnoError(48);V.set(c,a)}else s=!1,a=c.byteOffset;return{ptr:a,allocated:s}},msync(e,t,r,n,o){if(!Ze.isFile(e.node.mode))throw new Ze.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 Ze={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(Ze.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 Ze.ErrnoError(32);const n=Ge.normalizeArray(e.split("/").filter((e=>!!e)),!1);let o=Ze.root,i="/";for(let e=0;e<n.length;e++){const r=e===n.length-1;if(r&&t.parent)break;if(o=Ze.lookupNode(o,n[e]),i=Ge.join2(i,n[e]),Ze.isMountpoint(o)&&(!r||r&&t.follow_mount)&&(o=o.mounted.root),!r||t.follow){let e=0;for(;Ze.isLink(o.mode);){const r=Ze.readlink(i);i=Xe.resolve(Ge.dirname(i),r);if(o=Ze.lookupPath(i,{recurse_count:t.recurse_count}).node,e++>40)throw new Ze.ErrnoError(32)}}}return{path:i,node:o}},getPath(e){let t;for(;;){if(Ze.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)%Ze.nameTable.length},hashAddNode(e){const t=Ze.hashName(e.parent.id,e.name);e.name_next=Ze.nameTable[t],Ze.nameTable[t]=e},hashRemoveNode(e){const t=Ze.hashName(e.parent.id,e.name);if(Ze.nameTable[t]===e)Ze.nameTable[t]=e.name_next;else{let r=Ze.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=Ze.mayLookup(e);if(r)throw new Ze.ErrnoError(r,e);const n=Ze.hashName(e.id,t);for(let r=Ze.nameTable[n];r;r=r.name_next){const n=r.name;if(r.parent.id===e.id&&n===t)return r}return Ze.lookup(e,t)},createNode(e,t,r,n){v("object"==typeof e);const o=new Ze.FSNode(e,t,r,n);return Ze.hashAddNode(o),o},destroyNode(e){Ze.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=Ze.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)=>Ze.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=Ze.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate(e,t){try{Ze.lookupNode(e,t);return 20}catch(e){}return Ze.nodePermissions(e,"wx")},mayDelete(e,t,r){let n;try{n=Ze.lookupNode(e,t)}catch(e){return e.errno}const o=Ze.nodePermissions(e,"wx");if(o)return o;if(r){if(!Ze.isDir(n.mode))return 54;if(Ze.isRoot(n)||Ze.getPath(n)===Ze.cwd())return 10}else if(Ze.isDir(n.mode))return 31;return 0},mayOpen:(e,t)=>e?Ze.isLink(e.mode)?32:Ze.isDir(e.mode)&&("r"!==Ze.flagsToPermissionString(t)||512&t)?31:Ze.nodePermissions(e,Ze.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd(e,t){e=e||0,t=t||Ze.MAX_OPEN_FDS;for(let r=e;r<=t;r++)if(!Ze.streams[r])return r;throw new Ze.ErrnoError(33)},getStream:e=>Ze.streams[e],createStream(e,t,r){Ze.FSStream||(Ze.FSStream=function(){},Ze.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 Ze.FSStream;for(const t in e)n[t]=e[t];e=n;const o=Ze.nextfd(t,r);return e.fd=o,Ze.streams[o]=e,e},closeStream(e){Ze.streams[e]=null},chrdev_stream_ops:{open(e){const t=Ze.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek(){throw new Ze.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice(e,t){Ze.devices[e]={stream_ops:t}},getDevice:e=>Ze.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),Ze.syncFSRequests++,Ze.syncFSRequests>1&&y(`warning: ${Ze.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);const r=Ze.getMounts(Ze.root.mount);let n=0;function o(e){return v(Ze.syncFSRequests>0),Ze.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&&Ze.root)throw new Ze.ErrnoError(10);if(!n&&!o){const e=Ze.lookupPath(r,{follow_mount:!1});if(r=e.path,i=e.node,Ze.isMountpoint(i))throw new Ze.ErrnoError(10);if(!Ze.isDir(i.mode))throw new Ze.ErrnoError(54)}const a={type:e,opts:t,mountpoint:r,mounts:[]},s=e.mount(a);return s.mount=a,a.root=s,n?Ze.root=s:i&&(i.mounted=a,i.mount&&i.mount.mounts.push(a)),s},unmount(e){const t=Ze.lookupPath(e,{follow_mount:!1});if(!Ze.isMountpoint(t.node))throw new Ze.ErrnoError(28);const{node:r}=t,n=r.mounted,o=Ze.getMounts(n);Object.keys(Ze.nameTable).forEach((e=>{let t=Ze.nameTable[e];for(;t;){const e=t.name_next;o.includes(t.mount)&&Ze.destroyNode(t),t=e}})),r.mounted=null;const i=r.mount.mounts.indexOf(n);v(-1!==i),r.mount.mounts.splice(i,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod(e,t,r){const n=Ze.lookupPath(e,{parent:!0}).node,o=Ge.basename(e);if(!o||"."===o||".."===o)throw new Ze.ErrnoError(28);const i=Ze.mayCreate(n,o);if(i)throw new Ze.ErrnoError(i);if(!n.node_ops.mknod)throw new Ze.ErrnoError(63);return n.node_ops.mknod(n,o,t,r)},create:(e,t)=>(t=void 0!==t?t:438,t&=4095,t|=32768,Ze.mknod(e,t,0)),mkdir:(e,t)=>(t=void 0!==t?t:511,t&=1023,t|=16384,Ze.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{Ze.mkdir(n,t)}catch(e){if(20!=e.errno)throw e}}},mkdev:(e,t,r)=>(void 0===r&&(r=t,t=438),t|=8192,Ze.mknod(e,t,r)),symlink(e,t){if(!Xe.resolve(e))throw new Ze.ErrnoError(44);const r=Ze.lookupPath(t,{parent:!0}).node;if(!r)throw new Ze.ErrnoError(44);const n=Ge.basename(t),o=Ze.mayCreate(r,n);if(o)throw new Ze.ErrnoError(o);if(!r.node_ops.symlink)throw new Ze.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,c;if(a=Ze.lookupPath(e,{parent:!0}),s=a.node,a=Ze.lookupPath(t,{parent:!0}),c=a.node,!s||!c)throw new Ze.ErrnoError(44);if(s.mount!==c.mount)throw new Ze.ErrnoError(75);const A=Ze.lookupNode(s,o);let u,l=Xe.relative(e,n);if("."!==l.charAt(0))throw new Ze.ErrnoError(28);if(l=Xe.relative(t,r),"."!==l.charAt(0))throw new Ze.ErrnoError(55);try{u=Ze.lookupNode(c,i)}catch(e){}if(A===u)return;const d=Ze.isDir(A.mode);let g=Ze.mayDelete(s,o,d);if(g)throw new Ze.ErrnoError(g);if(g=u?Ze.mayDelete(c,i,d):Ze.mayCreate(c,i),g)throw new Ze.ErrnoError(g);if(!s.node_ops.rename)throw new Ze.ErrnoError(63);if(Ze.isMountpoint(A)||u&&Ze.isMountpoint(u))throw new Ze.ErrnoError(10);if(c!==s&&(g=Ze.nodePermissions(s,"w"),g))throw new Ze.ErrnoError(g);try{Ze.trackingDelegate.willMovePath&&Ze.trackingDelegate.willMovePath(e,t)}catch(r){y(`FS.trackingDelegate['willMovePath']('${e}', '${t}') threw an exception: ${r.message}`)}Ze.hashRemoveNode(A);try{s.node_ops.rename(A,c,i)}catch(e){throw e}finally{Ze.hashAddNode(A)}try{Ze.trackingDelegate.onMovePath&&Ze.trackingDelegate.onMovePath(e,t)}catch(r){y(`FS.trackingDelegate['onMovePath']('${e}', '${t}') threw an exception: ${r.message}`)}},rmdir(e){const t=Ze.lookupPath(e,{parent:!0}).node,r=Ge.basename(e),n=Ze.lookupNode(t,r),o=Ze.mayDelete(t,r,!0);if(o)throw new Ze.ErrnoError(o);if(!t.node_ops.rmdir)throw new Ze.ErrnoError(63);if(Ze.isMountpoint(n))throw new Ze.ErrnoError(10);try{Ze.trackingDelegate.willDeletePath&&Ze.trackingDelegate.willDeletePath(e)}catch(t){y(`FS.trackingDelegate['willDeletePath']('${e}') threw an exception: ${t.message}`)}t.node_ops.rmdir(t,r),Ze.destroyNode(n);try{Ze.trackingDelegate.onDeletePath&&Ze.trackingDelegate.onDeletePath(e)}catch(t){y(`FS.trackingDelegate['onDeletePath']('${e}') threw an exception: ${t.message}`)}},readdir(e){const t=Ze.lookupPath(e,{follow:!0}),{node:r}=t;if(!r.node_ops.readdir)throw new Ze.ErrnoError(54);return r.node_ops.readdir(r)},unlink(e){const t=Ze.lookupPath(e,{parent:!0}).node,r=Ge.basename(e),n=Ze.lookupNode(t,r),o=Ze.mayDelete(t,r,!1);if(o)throw new Ze.ErrnoError(o);if(!t.node_ops.unlink)throw new Ze.ErrnoError(63);if(Ze.isMountpoint(n))throw new Ze.ErrnoError(10);try{Ze.trackingDelegate.willDeletePath&&Ze.trackingDelegate.willDeletePath(e)}catch(t){y(`FS.trackingDelegate['willDeletePath']('${e}') threw an exception: ${t.message}`)}t.node_ops.unlink(t,r),Ze.destroyNode(n);try{Ze.trackingDelegate.onDeletePath&&Ze.trackingDelegate.onDeletePath(e)}catch(t){y(`FS.trackingDelegate['onDeletePath']('${e}') threw an exception: ${t.message}`)}},readlink(e){const t=Ze.lookupPath(e).node;if(!t)throw new Ze.ErrnoError(44);if(!t.node_ops.readlink)throw new Ze.ErrnoError(28);return Xe.resolve(Ze.getPath(t.parent),t.node_ops.readlink(t))},stat(e,t){const r=Ze.lookupPath(e,{follow:!t}),{node:n}=r;if(!n)throw new Ze.ErrnoError(44);if(!n.node_ops.getattr)throw new Ze.ErrnoError(63);return n.node_ops.getattr(n)},lstat:e=>Ze.stat(e,!0),chmod(e,t,r){let n;if("string"==typeof e){n=Ze.lookupPath(e,{follow:!r}).node}else n=e;if(!n.node_ops.setattr)throw new Ze.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod(e,t){Ze.chmod(e,t,!0)},fchmod(e,t){const r=Ze.getStream(e);if(!r)throw new Ze.ErrnoError(8);Ze.chmod(r.node,t)},chown(e,t,r,n){let o;if("string"==typeof e){o=Ze.lookupPath(e,{follow:!n}).node}else o=e;if(!o.node_ops.setattr)throw new Ze.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown(e,t,r){Ze.chown(e,t,r,!0)},fchown(e,t,r){const n=Ze.getStream(e);if(!n)throw new Ze.ErrnoError(8);Ze.chown(n.node,t,r)},truncate(e,t){if(t<0)throw new Ze.ErrnoError(28);let r;if("string"==typeof e){r=Ze.lookupPath(e,{follow:!0}).node}else r=e;if(!r.node_ops.setattr)throw new Ze.ErrnoError(63);if(Ze.isDir(r.mode))throw new Ze.ErrnoError(31);if(!Ze.isFile(r.mode))throw new Ze.ErrnoError(28);const n=Ze.nodePermissions(r,"w");if(n)throw new Ze.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate(e,t){const r=Ze.getStream(e);if(!r)throw new Ze.ErrnoError(8);if(!(2097155&r.flags))throw new Ze.ErrnoError(28);Ze.truncate(r.node,t)},utime(e,t,r){const n=Ze.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 Ze.ErrnoError(44);let a;if(n=void 0===n?438:n,n=64&(t="string"==typeof t?Ze.modeStringToFlags(t):t)?4095&n|32768:0,"object"==typeof e)a=e;else{e=Ge.normalize(e);try{a=Ze.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}let s=!1;if(64&t)if(a){if(128&t)throw new Ze.ErrnoError(20)}else a=Ze.mknod(e,n,0),s=!0;if(!a)throw new Ze.ErrnoError(44);if(Ze.isChrdev(a.mode)&&(t&=-513),65536&t&&!Ze.isDir(a.mode))throw new Ze.ErrnoError(54);if(!s){const e=Ze.mayOpen(a,t);if(e)throw new Ze.ErrnoError(e)}512&t&&Ze.truncate(a,0),t&=-131713;const c=Ze.createStream({node:a,path:Ze.getPath(a),flags:t,seekable:!0,position:0,stream_ops:a.stream_ops,ungotten:[],error:!1},o,i);c.stream_ops.open&&c.stream_ops.open(c),!r.logReadFiles||1&t||(Ze.readFiles||(Ze.readFiles={}),e in Ze.readFiles||(Ze.readFiles[e]=1,y(`FS.trackingDelegate error on read file: ${e}`)));try{if(Ze.trackingDelegate.onOpenFile){let r=0;1!=(2097155&t)&&(r|=Ze.tracking.openFlags.READ),2097155&t&&(r|=Ze.tracking.openFlags.WRITE),Ze.trackingDelegate.onOpenFile(e,r)}}catch(t){y(`FS.trackingDelegate['onOpenFile']('${e}', flags) threw an exception: ${t.message}`)}return c},close(e){if(Ze.isClosed(e))throw new Ze.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{Ze.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek(e,t,r){if(Ze.isClosed(e))throw new Ze.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new Ze.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new Ze.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 Ze.ErrnoError(28);if(Ze.isClosed(e))throw new Ze.ErrnoError(8);if(1==(2097155&e.flags))throw new Ze.ErrnoError(8);if(Ze.isDir(e.node.mode))throw new Ze.ErrnoError(31);if(!e.stream_ops.read)throw new Ze.ErrnoError(28);const i=void 0!==o;if(i){if(!e.seekable)throw new Ze.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 Ze.ErrnoError(28);if(Ze.isClosed(e))throw new Ze.ErrnoError(8);if(!(2097155&e.flags))throw new Ze.ErrnoError(8);if(Ze.isDir(e.node.mode))throw new Ze.ErrnoError(31);if(!e.stream_ops.write)throw new Ze.ErrnoError(28);e.seekable&&1024&e.flags&&Ze.llseek(e,0,2);const a=void 0!==o;if(a){if(!e.seekable)throw new Ze.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&&Ze.trackingDelegate.onWriteToFile&&Ze.trackingDelegate.onWriteToFile(e.path)}catch(t){y(`FS.trackingDelegate['onWriteToFile']('${e.path}') threw an exception: ${t.message}`)}return s},allocate(e,t,r){if(Ze.isClosed(e))throw new Ze.ErrnoError(8);if(t<0||r<=0)throw new Ze.ErrnoError(28);if(!(2097155&e.flags))throw new Ze.ErrnoError(8);if(!Ze.isFile(e.node.mode)&&!Ze.isDir(e.node.mode))throw new Ze.ErrnoError(43);if(!e.stream_ops.allocate)throw new Ze.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 Ze.ErrnoError(2);if(1==(2097155&e.flags))throw new Ze.ErrnoError(2);if(!e.stream_ops.mmap)throw new Ze.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 Ze.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=Ze.open(e,t.flags),o=Ze.stat(e).size,i=new Uint8Array(o);return Ze.read(n,i,0,o,0),"utf8"===t.encoding?r=P(i,0):"binary"===t.encoding&&(r=i),Ze.close(n),r},writeFile(e,t,r){(r=r||{}).flags=r.flags||577;const n=Ze.open(e,r.flags,r.mode);if("string"==typeof t){const e=new Uint8Array(F(t)+1),o=R(t,e,0,e.length);Ze.write(n,e,0,o,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");Ze.write(n,t,0,t.byteLength,void 0,r.canOwn)}Ze.close(n)},cwd:()=>Ze.currentPath,chdir(e){const t=Ze.lookupPath(e,{follow:!0});if(null===t.node)throw new Ze.ErrnoError(44);if(!Ze.isDir(t.node.mode))throw new Ze.ErrnoError(54);const r=Ze.nodePermissions(t.node,"x");if(r)throw new Ze.ErrnoError(r);Ze.currentPath=t.path},createDefaultDirectories(){Ze.mkdir("/tmp"),Ze.mkdir("/home"),Ze.mkdir("/home/web_user")},createDefaultDevices(){Ze.mkdir("/dev"),Ze.registerDevice(Ze.makedev(1,3),{read:()=>0,write:(e,t,r,n,o)=>n}),Ze.mkdev("/dev/null",Ze.makedev(1,3)),We.register(Ze.makedev(5,0),We.default_tty_ops),We.register(Ze.makedev(6,0),We.default_tty1_ops),Ze.mkdev("/dev/tty",Ze.makedev(5,0)),Ze.mkdev("/dev/tty1",Ze.makedev(6,0));const e=Ye();Ze.createDevice("/dev","random",e),Ze.createDevice("/dev","urandom",e),Ze.mkdir("/dev/shm"),Ze.mkdir("/dev/shm/tmp")},createSpecialDirectories(){Ze.mkdir("/proc");const e=Ze.mkdir("/proc/self");Ze.mkdir("/proc/self/fd"),Ze.mount({mount(){const t=Ze.createNode(e,"fd",16895,73);return t.node_ops={lookup(e,t){const r=+t,n=Ze.getStream(r);if(!n)throw new Ze.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?Ze.createDevice("/dev","stdin",r.stdin):Ze.symlink("/dev/tty","/dev/stdin"),r.stdout?Ze.createDevice("/dev","stdout",null,r.stdout):Ze.symlink("/dev/tty","/dev/stdout"),r.stderr?Ze.createDevice("/dev","stderr",null,r.stderr):Ze.symlink("/dev/tty1","/dev/stderr");const e=Ze.open("/dev/stdin",0),t=Ze.open("/dev/stdout",1),n=Ze.open("/dev/stderr",1);v(0===e.fd,`invalid handle for stdin (${e.fd})`),v(1===t.fd,`invalid handle for stdout (${t.fd})`),v(2===n.fd,`invalid handle for stderr (${n.fd})`)},ensureErrnoError(){Ze.ErrnoError||(Ze.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=xe(this.stack))},Ze.ErrnoError.prototype=new Error,Ze.ErrnoError.prototype.constructor=Ze.ErrnoError,[44].forEach((e=>{Ze.genericErrors[e]=new Ze.ErrnoError(e),Ze.genericErrors[e].stack="<generic error, no stack>"})))},staticInit(){Ze.ensureErrnoError(),Ze.nameTable=new Array(4096),Ze.mount(ze,{},"/"),Ze.createDefaultDirectories(),Ze.createDefaultDevices(),Ze.createSpecialDirectories(),Ze.filesystems={MEMFS:ze}},init(e,t,n){v(!Ze.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)"),Ze.init.initialized=!0,Ze.ensureErrnoError(),r.stdin=e||r.stdin,r.stdout=t||r.stdout,r.stderr=n||r.stderr,Ze.createStandardStreams()},quit(){Ze.init.initialized=!1;const e=r._fflush;e&&e(0);for(let e=0;e<Ze.streams.length;e++){const t=Ze.streams[e];t&&Ze.close(t)}},getMode(e,t){let r=0;return e&&(r|=365),t&&(r|=146),r},findObject(e,t){const r=Ze.analyzePath(e,t);return r.exists?r.object:null},analyzePath(e,t){try{e=(n=Ze.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=Ze.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=Ge.basename(e),n=Ze.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:Ze.getPath(e);const o=t.split("/").reverse();for(;o.length;){const t=o.pop();if(t){var i=Ge.join2(e,t);try{Ze.mkdir(i)}catch(e){}e=i}}return i},createFile(e,t,r,n,o){const i=Ge.join2("string"==typeof e?e:Ze.getPath(e),t),a=Ze.getMode(n,o);return Ze.create(i,a)},createDataFile(e,t,r,n,o,i){const a=t?Ge.join2("string"==typeof e?e:Ze.getPath(e),t):e,s=Ze.getMode(n,o),c=Ze.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}Ze.chmod(c,146|s);const e=Ze.open(c,577);Ze.write(e,r,0,r.length,0,i),Ze.close(e),Ze.chmod(c,s)}return c},createDevice(e,t,r,n){const o=Ge.join2("string"==typeof e?e:Ze.getPath(e),t),i=Ze.getMode(!!r,!!n);Ze.createDevice.major||(Ze.createDevice.major=64);const a=Ze.makedev(Ze.createDevice.major++,0);return Ze.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 Ze.ErrnoError(29)}if(void 0===s&&0===a)throw new Ze.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 Ze.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),a}}),Ze.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(!f)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=sn(f(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new Ze.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||[]):sn(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(!l)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=Ze.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 c={};return Object.keys(s.stream_ops).forEach((e=>{const t=s.stream_ops[e];c[e]=function(){return Ze.forceLoadFile(s),t.apply(null,arguments)}})),c.read=function(e,t,r,n,o){Ze.forceLoadFile(s);const{contents:i}=e.node;if(o>=i.length)return 0;const a=Math.min(i.length-o,n);if(v(a>=0),i.slice)for(var c=0;c<a;c++)t[r+c]=i[o+c];else for(c=0;c<a;c++)t[r+c]=i.get(o+c);return a},s.stream_ops=c,s},createPreloadedFile(e,t,n,o,i,a,s,c,A,u){Se.init();const l=t?Xe.resolve(Ge.join2(e,t)):e,d=me(`cp ${l}`);function g(n){function g(r){u&&u(),c||Ze.createDataFile(e,t,r,o,i,A),a&&a(),ye(d)}let f=!1;r.preloadPlugins.forEach((e=>{f||e.canHandle(l)&&(e.handle(n,l,g,(()=>{s&&s(),ye(d)})),f=!0)})),f||g(n)}Ie(d),"string"==typeof n?function(e,t,r,n){const o=n?"":me(`al ${e}`);h(e,(r=>{v(r,`Loading data file "${e}" failed (no arrayBuffer).`),t(new Uint8Array(r)),o&&ye(o)}),(t=>{if(!r)throw`Loading data file "${e}" failed.`;r()})),o&&Ie(o)}(n,(e=>{g(e)}),s):g(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=Ze.indexedDB();try{var o=n.open(Ze.DB_NAME(),Ze.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=function(){I("creating db");o.result.createObjectStore(Ze.DB_STORE_NAME)},o.onsuccess=function(){const n=o.result.transaction([Ze.DB_STORE_NAME],"readwrite"),i=n.objectStore(Ze.DB_STORE_NAME);let a=0,s=0;const c=e.length;function A(){0==s?t():r()}e.forEach((e=>{const t=i.put(Ze.analyzePath(e).object.contents,e);t.onsuccess=function(){a++,a+s==c&&A()},t.onerror=function(){s++,a+s==c&&A()}})),n.onerror=r},o.onerror=r},loadFilesFromDB(e,t,r){t=t||function(){},r=r||function(){};const n=Ze.indexedDB();try{var o=n.open(Ze.DB_NAME(),Ze.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=r,o.onsuccess=function(){const n=o.result;try{var i=n.transaction([Ze.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}const a=i.objectStore(Ze.DB_STORE_NAME);let s=0,c=0;const A=e.length;function u(){0==c?t():r()}e.forEach((e=>{const t=a.get(e);t.onsuccess=function(){Ze.analyzePath(e).exists&&Ze.unlink(e),Ze.createDataFile(Ge.dirname(e),Ge.basename(e),t.result,!0,!0,!0),s++,s+c==A&&u()},t.onerror=function(){c++,s+c==A&&u()}})),i.onerror=r},o.onerror=r},absolutePath(){_e("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder(){_e("FS.createFolder has been removed; use FS.mkdir instead")},createLink(){_e("FS.createLink has been removed; use FS.symlink instead")},joinPath(){_e("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc(){_e("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath(){_e("FS.standardizePath has been removed; use PATH.normalize instead")}},Je={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt(e,t,r){if("/"===t[0])return t;let n;if(-100===e)n=Ze.cwd();else{const t=Ze.getStream(e);if(!t)throw new Ze.ErrnoError(8);n=t.path}if(0==t.length){if(!r)throw new Ze.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(Ze.getPath(e.node)))return-54;throw e}return Z[r>>2]=n.dev,Z[r+4>>2]=0,Z[r+8>>2]=n.ino,Z[r+12>>2]=n.mode,Z[r+16>>2]=n.nlink,Z[r+20>>2]=n.uid,Z[r+24>>2]=n.gid,Z[r+28>>2]=n.rdev,Z[r+32>>2]=0,De=[n.size>>>0,(Be=n.size,+Math.abs(Be)>=1?Be>0?(0|Math.min(+Math.floor(Be/4294967296),4294967295))>>>0:~~+Math.ceil((Be-+(~~Be>>>0))/4294967296)>>>0:0)],Z[r+40>>2]=De[0],Z[r+44>>2]=De[1],Z[r+48>>2]=4096,Z[r+52>>2]=n.blocks,Z[r+56>>2]=n.atime.getTime()/1e3|0,Z[r+60>>2]=0,Z[r+64>>2]=n.mtime.getTime()/1e3|0,Z[r+68>>2]=0,Z[r+72>>2]=n.ctime.getTime()/1e3|0,Z[r+76>>2]=0,De=[n.ino>>>0,(Be=n.ino,+Math.abs(Be)>=1?Be>0?(0|Math.min(+Math.floor(Be/4294967296),4294967295))>>>0:~~+Math.ceil((Be-+(~~Be>>>0))/4294967296)>>>0:0)],Z[r+80>>2]=De[0],Z[r+84>>2]=De[1],0},doMsync(e,t,r,n,o){const i=z.slice(e,e+r);Ze.msync(t,i,o,r,n)},doMkdir:(e,t)=>("/"===(e=Ge.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),Ze.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 Ze.mknod(e,t,r),0},doReadlink(e,t,r){if(r<=0)return-28;const n=Ze.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=Ze.lookupPath(e,{follow:!0}).node,!r)return-44;let n="";return 4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&Ze.nodePermissions(r,n)?-2:0},doDup(e,t,r){const n=Ze.getStream(r);return n&&Ze.close(n),Ze.open(e,t,0,r,r).fd},doReadv(e,t,r,n){let o=0;for(let i=0;i<r;i++){const r=Z[t+8*i>>2],a=Z[t+(8*i+4)>>2],s=Ze.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=Z[t+8*i>>2],a=Z[t+(8*i+4)>>2],s=Ze.write(e,V,r,a,n);if(s<0)return-1;o+=s}return o},varargs:void 0,get(){v(null!=Je.varargs),Je.varargs+=4;return Z[Je.varargs-4>>2]},getStr:e=>M(e),getStreamFromFD(e){const t=Ze.getStream(e);if(!t)throw new Ze.ErrnoError(8);return t},get64:(e,t)=>(v(e>=0?0===t:-1===t),e)};function qe(e){if(void 0===e)return"_unknown";const t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=48&&t<=57?`_${e}`:e}function et(e,t){return e=qe(e),new Function("body",`return function ${e}() {\n "use strict"; return body.apply(this, arguments);\n};\n`)(t)}const tt=[],rt=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function nt(){let e=0;for(let t=5;t<rt.length;++t)void 0!==rt[t]&&++e;return e}function ot(){for(let e=5;e<rt.length;++e)if(void 0!==rt[e])return rt[e];return null}function it(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:{const t=tt.length?tt.pop():rt.length;return rt[t]={refcount:1,value:e},t}}}function at(e,t){const r=et(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 st;var ct=void 0;function At(e){let t="",r=e;for(;z[r];)t+=ct[z[r++]];return t}function ut(){return Object.keys(pt).length}function lt(){const e=[];for(const t in pt)pt.hasOwnProperty(t)&&e.push(pt[t]);return e}const dt=[];function gt(){for(;dt.length;){const e=dt.pop();e.$$.deleteScheduled=!1,e.delete()}}let ft;function ht(e){ft=e,dt.length&&ft&&ft(gt)}var pt={};let Et;function mt(e){throw new Et(e)}function It(e,t){for(void 0===t&&mt("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function yt(e){return e||mt(`Cannot use deleted val. handle = ${e}`),rt[e].value}const _t={};function wt(e){const t=dn(e),r=At(t);return An(t),r}function Ct(e,t){const r=_t[e];return void 0===r&&mt(`${t} has unknown type ${wt(e)}`),r}function bt(e){}let Bt=!1;function Dt(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 Ot(e){return"undefined"==typeof FinalizationGroup?(Ot=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?Dt(e):console.warn(`object already deleted: ${e.ptr}`)}})),bt=function(e){Bt.unregister(e.$$)},(Ot=function(e){return Bt.register(e,e.$$,e.$$),e})(e))}const Tt={};function vt(e){for(;e.length;){const t=e.pop();e.pop()(t)}}function Qt(e){return this.fromWireType(J[e>>2])}const Pt={},Mt={};let Rt;function St(e){throw new Rt(e)}function Ft(e,t,r){function n(t){const n=r(t);n.length!==e.length&&St("Mismatched type converter count");for(let t=0;t<e.length;++t)kt(e[t],n[t])}e.forEach((e=>{Mt[e]=t}));const o=new Array(t.length),i=[];let a=0;t.forEach(((e,t)=>{_t.hasOwnProperty(e)?o[t]=_t[e]:(i.push(e),Pt.hasOwnProperty(e)||(Pt[e]=[]),Pt[e].push((()=>{o[t]=_t[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 kt(e,t,r){if(r=r||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");const{name:n}=t;if(e||mt(`type "${n}" must have a positive integer typeid pointer`),_t.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;mt(`Cannot register type '${n}' twice`)}if(_t[e]=t,delete Mt[e],Pt.hasOwnProperty(e)){const t=Pt[e];delete Pt[e],t.forEach((e=>{e()}))}}function Nt(e){if(!(this instanceof Yt))return!1;if(!(e instanceof Yt))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 Ut(e){var t;mt(`${t=e,t.$$.ptrType.registeredClass.name} instance already deleted`)}function jt(){if(this.$$.ptr||Ut(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;const e=Ot(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 Lt(){this.$$.ptr||Ut(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&mt("Object already scheduled for deletion"),bt(this),Dt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Ht(){return!this.$$.ptr}function Gt(){return this.$$.ptr||Ut(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&mt("Object already scheduled for deletion"),dt.push(this),1===dt.length&&ft&&ft(gt),this.$$.deleteScheduled=!0,this}function Yt(){}const Xt={};function Wt(e,t,r){if(void 0===e[t].overloadTable){const n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||mt(`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 Vt(e,t,n){r.hasOwnProperty(e)?((void 0===n||void 0!==r[e].overloadTable&&void 0!==r[e].overloadTable[n])&&mt(`Cannot register public name '${e}' twice`),Wt(r,e,e),r.hasOwnProperty(n)&&mt(`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 zt(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 $t(e,t,r){for(;t!==r;)t.upcast||mt(`Expected null or instance of ${r.name}, got an instance of ${t.name}`),e=t.upcast(e),t=t.baseClass;return e}function Kt(e,t){if(null===t)return this.isReference&&mt(`null is not a valid ${this.name}`),0;t.$$||mt(`Cannot pass "${pr(t)}" as a ${this.name}`),t.$$.ptr||mt(`Cannot pass deleted object as a pointer of type ${this.name}`);const r=t.$$.ptrType.registeredClass;return $t(t.$$.ptr,r,this.registeredClass)}function Zt(e,t){let r;if(null===t)return this.isReference&&mt(`null is not a valid ${this.name}`),this.isSmartPointer?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t.$$||mt(`Cannot pass "${pr(t)}" as a ${this.name}`),t.$$.ptr||mt(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&t.$$.ptrType.isConst&&mt(`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=$t(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&mt("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:mt(`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,it((()=>{n.delete()}))),null!==e&&e.push(this.rawDestructor,r)}break;default:mt("Unsupporting sharing policy")}return r}function Jt(e,t){if(null===t)return this.isReference&&mt(`null is not a valid ${this.name}`),0;t.$$||mt(`Cannot pass "${pr(t)}" as a ${this.name}`),t.$$.ptr||mt(`Cannot pass deleted object as a pointer of type ${this.name}`),t.$$.ptrType.isConst&&mt(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);const r=t.$$.ptrType.registeredClass;return $t(t.$$.ptr,r,this.registeredClass)}function qt(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function er(e){this.rawDestructor&&this.rawDestructor(e)}function tr(e){null!==e&&e.delete()}function rr(e,t,r){if(t===r)return e;if(void 0===r.baseClass)return null;const n=rr(e,t,r.baseClass);return null===n?null:r.downcast(n)}function nr(e,t){t.ptrType&&t.ptr||St("makeClassHandle requires ptr and ptrType");return!!t.smartPtrType!==!!t.smartPtr&&St("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Ot(Object.create(e,{$$:{value:t}}))}function or(e){const t=this.getPointee(e);if(!t)return this.destructor(e),null;const r=function(e,t){return t=It(e,t),pt[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?nr(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):nr(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}const o=this.registeredClass.getActualType(t),i=Xt[o];if(!i)return n.call(this);let a;a=this.isConst?i.constPointerType:i.pointerType;const s=rr(t,this.registeredClass,a.registeredClass);return null===s?n.call(this):this.isSmartPointer?nr(a.registeredClass.instancePrototype,{ptrType:a,ptr:s,smartPtrType:this,smartPtr:e}):nr(a.registeredClass.instancePrototype,{ptrType:a,ptr:s})}function ir(e,t,r,n,o,i,a,s,c,A,u){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=c,this.rawShare=A,this.rawDestructor=u,o||void 0!==t.baseClass?this.toWireType=Zt:n?(this.toWireType=Kt,this.destructorFunction=null):(this.toWireType=Jt,this.destructorFunction=null)}function ar(e,t,n){r.hasOwnProperty(e)||St("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 sr(e,t,n){return e.includes("j")?function(e,t,n){v(`dynCall_${e}`in r,`bad function pointer type - no table for sig '${e}'`),n&&n.length?v(n.length===e.substring(1).replace(/j/g,"--").length):v(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):(v(oe.get(t),`missing table entry in dynCall: ${t}`),oe.get(t).apply(null,n))}function cr(e,t){const r=(e=At(e)).includes("j")?function(e,t){v(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 sr(e,t,r)}}(e,t):oe.get(t);return"function"!=typeof r&&mt(`unknown function pointer with signature ${e}: ${t}`),r}let Ar;function ur(e,t){const r=[],n={};throw t.forEach((function e(t){n[t]||_t[t]||(Mt[t]?Mt[t].forEach(e):(r.push(t),n[t]=!0))})),new Ar(`${e}: ${r.map(wt).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=et(e.name||"unknownFunctionName",(()=>{}));r.prototype=e.prototype;const n=new r,o=e.apply(n,t);return o instanceof Object?o:n}function dr(e,t,r,n,o){const i=t.length;i<2&&mt("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 c=1;c<t.length;++c)if(null!==t[c]&&void 0===t[c].destructorFunction){s=!0;break}const A="void"!==t[0].name;let u="",l="";for(c=0;c<i-2;++c)u+=`${0!==c?", ":""}arg${c}`,l+=`${0!==c?", ":""}arg${c}Wired`;let d=`return function ${qe(e)}(${u}) {\nif (arguments.length !== ${i-2}) {\nthrowBindingError('function ${e} called with ' + arguments.length + ' arguments, expected ${i-2} args!');\n}\n`;s&&(d+="var destructors = [];\n");const g=s?"destructors":"null",f=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],h=[mt,n,o,vt,t[0],t[1]];a&&(d+=`var thisWired = classParam.toWireType(${g}, this);\n`);for(c=0;c<i-2;++c)d+=`var arg${c}Wired = argType${c}.toWireType(${g}, arg${c}); // ${t[c+2].name}\n`,f.push(`argType${c}`),h.push(t[c+2]);if(a&&(l=`thisWired${l.length>0?", ":""}${l}`),d+=`${A?"var rv = ":""}invoker(fn${l.length>0?", ":""}${l});\n`,s)d+="runDestructors(destructors);\n";else for(c=a?1:2;c<t.length;++c){const e=1===c?"thisWired":`arg${c-2}Wired`;null!==t[c].destructorFunction&&(d+=`${e}_dtor(${e}); // ${t[c].name}\n`,f.push(`${e}_dtor`),h.push(t[c].destructorFunction))}A&&(d+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),d+="}\n",f.push(d);return lr(Function,f).apply(null,h)}function gr(e,t){const r=[];for(let n=0;n<e;n++)r.push(Z[(t>>2)+n]);return r}function fr(e,t,r){return e instanceof Object||mt(`${r} with invalid "this": ${e}`),e instanceof t.registeredClass.constructor||mt(`${r} incompatible with "this" of type ${e.constructor.name}`),e.$$.ptr||mt(`cannot call emscripten binding method ${r} on deleted object`),$t(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)}function hr(e){e>4&&0==--rt[e].refcount&&(rt[e]=void 0,tt.push(e))}function pr(e){if(null===e)return"null";const t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():`${e}`}function Er(e,t){switch(t){case 2:return function(e){return this.fromWireType(q[e>>2])};case 3:return function(e){return this.fromWireType(ee[e>>3])};default:throw new TypeError(`Unknown float type: ${e}`)}}function mr(e,t,r){switch(t){case 0:return r?function(e){return V[e]}:function(e){return z[e]};case 1:return r?function(e){return $[e>>1]}:function(e){return K[e>>1]};case 2:return r?function(e){return Z[e>>2]}:function(e){return J[e>>2]};default:throw new TypeError(`Unknown integer type: ${e}`)}}const Ir={};const yr=[];const _r=[];function wr(e){try{return D.grow(e-W.byteLength+65535>>>16),te(D.buffer),1}catch(t){y(`emscripten_realloc_buffer: Attempted to grow heap from ${W.byteLength} bytes to ${e} bytes, but got error: ${t}`)}}function Cr(e){_e("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}const br={};function Br(e){e.forEach((e=>{const t=Cr();t&&(br[t]=e)}))}var Dr={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){Dr.lastError||(Dr.lastError=e)},getNewId(e){const t=Dr.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=Dr.log2ceilLookup(Dr.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=Dr.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=rn.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);const e=Dr.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=Dr.log2ceilLookup(e),r=Dr.currentContext.tempVertexBuffers1[t],n=Dr.currentContext.tempVertexBufferCounters1[t];Dr.currentContext.tempVertexBufferCounters1[t]=Dr.currentContext.tempVertexBufferCounters1[t]+1&Dr.numTempVertexBuffersPerSize-1;const o=r[n];if(o)return o;const i=rn.getParameter(34964);return r[n]=rn.createBuffer(),rn.bindBuffer(34962,r[n]),rn.bufferData(34962,1<<t,35048),rn.bindBuffer(34962,i),r[n]},getTempIndexBuffer:function(e){const t=Dr.log2ceilLookup(e),r=Dr.currentContext.tempIndexBuffers[t];if(r)return r;const n=rn.getParameter(34965);return Dr.currentContext.tempIndexBuffers[t]=rn.createBuffer(),rn.bindBuffer(34963,Dr.currentContext.tempIndexBuffers[t]),rn.bufferData(34963,1<<t,35048),rn.bindBuffer(34963,n),Dr.currentContext.tempIndexBuffers[t]},newRenderingFrameStarted:function(){if(!Dr.currentContext)return;let e=Dr.currentContext.tempVertexBuffers1;Dr.currentContext.tempVertexBuffers1=Dr.currentContext.tempVertexBuffers2,Dr.currentContext.tempVertexBuffers2=e,e=Dr.currentContext.tempVertexBufferCounters1,Dr.currentContext.tempVertexBufferCounters1=Dr.currentContext.tempVertexBufferCounters2,Dr.currentContext.tempVertexBufferCounters2=e;const t=Dr.log2ceilLookup(Dr.MAX_TEMP_BUFFER_SIZE);for(let e=0;e<=t;++e)Dr.currentContext.tempVertexBufferCounters1[e]=0},getSource(e,t,r,n){let o="";for(let e=0;e<t;++e){const t=n?Z[n+4*e>>2]:-1;o+=M(Z[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*Dr.byteSizeByType[t-Dr.byteSizeByTypeRoot]*n},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(e){Dr.resetBufferBinding=!1;for(let t=0;t<Dr.currentContext.maxVertexAttribs;++t){const r=Dr.currentContext.clientBuffers[t];if(!r.clientside||!r.enabled)continue;Dr.resetBufferBinding=!0;const n=Dr.calcBufLength(r.size,r.type,r.stride,e),o=Dr.getTempVertexBuffer(n);rn.bindBuffer(34962,o),rn.bufferSubData(34962,0,z.subarray(r.ptr,r.ptr+n)),r.vertexAttribPointerAdaptor.call(rn,t,r.size,r.type,r.normalized,r.stride,0)}},postDrawHandleClientVertexAttribBindings:function(){Dr.resetBufferBinding&&rn.bindBuffer(34962,Dr.buffers[rn.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 Dr.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(),Dr.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 c=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget);const A=t.getParameter(3042);A&&t.disable(3042);const u=t.getParameter(2884);u&&t.disable(2884);const l=t.getParameter(2929);l&&t.disable(2929);const d=t.getParameter(2960);if(d&&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)}d&&t.enable(2960),l&&t.enable(2929),u&&t.enable(2884),A&&t.enable(3042),t.bindTexture(3553,c),t.activeTexture(s),t.bindBuffer(34962,a),t.useProgram(n)}t.bindFramebuffer(36160,n),r&&t.enable(3089)},registerContext(e,t){const r=Dr.getNewId(Dr.contexts),n={handle:r,attributes:t,version:t.majorVersion,GLctx:e};e.canvas&&(e.canvas.GLctxObject=n),Dr.contexts[r]=n,(void 0===t.enableExtensionsByDefault||t.enableExtensionsByDefault)&&Dr.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 Dr.generateTempBuffers(!1,n),t.renderViaOffscreenBackBuffer&&Dr.createOffscreenFramebuffer(n),r},makeContextCurrent:e=>(Dr.currentContext=Dr.contexts[e],r.ctx=rn=Dr.currentContext&&Dr.currentContext.GLctx,!(e&&!rn)),getContext:e=>Dr.contexts[e],deleteContext(e){Dr.currentContext===Dr.contexts[e]&&(Dr.currentContext=null),"object"==typeof Or&&Or.removeAllHandlersOnTarget(Dr.contexts[e].GLctx.canvas),Dr.contexts[e]&&Dr.contexts[e].GLctx.canvas&&(Dr.contexts[e].GLctx.canvas.GLctxObject=void 0),Dr.contexts[e]=null},initExtensions(e){if(e||(e=Dr.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)}))}},Or={inEventHandler:0,removeAllEventListeners(){for(let e=Or.eventHandlers.length-1;e>=0;--e)Or._removeHandler(e);Or.eventHandlers=[],Or.deferredCalls=[]},registerRemoveEventListeners(){Or.removeEventListenersRegistered||(Ae.push(Or.removeAllEventListeners),Or.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 Or.deferredCalls){const o=Or.deferredCalls[t];if(o.targetFunction==e&&n(o.argsList,r))return}Or.deferredCalls.push({targetFunction:e,precedence:t,argsList:r}),Or.deferredCalls.sort(((e,t)=>e.precedence<t.precedence))},removeDeferredCalls(e){for(let t=0;t<Or.deferredCalls.length;++t)Or.deferredCalls[t].targetFunction==e&&(Or.deferredCalls.splice(t,1),--t)},canPerformEventHandlerRequests:()=>Or.inEventHandler&&Or.currentEventHandler.allowsDeferredCalls,runDeferredCalls(){if(Or.canPerformEventHandlerRequests())for(let e=0;e<Or.deferredCalls.length;++e){const t=Or.deferredCalls[e];Or.deferredCalls.splice(e,1),--e,t.targetFunction.apply(null,t.argsList)}},eventHandlers:[],removeAllHandlersOnTarget(e,t){for(let r=0;r<Or.eventHandlers.length;++r)Or.eventHandlers[r].target!=e||t&&t!=Or.eventHandlers[r].eventTypeString||Or._removeHandler(r--)},_removeHandler(e){const t=Or.eventHandlers[e];t.target.removeEventListener(t.eventTypeString,t.eventListenerFunc,t.useCapture),Or.eventHandlers.splice(e,1)},registerOrRemoveHandler(e){const t=function(t){++Or.inEventHandler,Or.currentEventHandler=e,Or.runDeferredCalls(),e.handlerFunc(t),Or.runDeferredCalls(),--Or.inEventHandler};if(e.callbackfunc)e.eventListenerFunc=t,e.target.addEventListener(e.eventTypeString,t,e.useCapture),Or.eventHandlers.push(e),Or.registerRemoveEventListeners();else for(let t=0;t<Or.eventHandlers.length;++t)Or.eventHandlers[t].target==e.target&&Or.eventHandlers[t].eventTypeString==e.eventTypeString&&Or._removeHandler(t--)},getNodeNameForTarget:e=>e?e==window?"#window":e==screen?"#screen":e&&e.nodeName?e.nodeName:"":"",fullscreenEnabled:()=>document.fullscreenEnabled||document.webkitFullscreenEnabled};const Tr=["default","low-power","high-performance"],vr=[0,"undefined"!=typeof document?document:0,"undefined"!=typeof window?window:0];function Qr(e){return"number"==typeof e&&(e=M(e)),e&&"#canvas"!==e?void 0!==Dr&&Dr.offscreenCanvases[e]?Dr.offscreenCanvases[e]:function(e){_("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=vr[e]||M(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!==Dr&&Dr.offscreenCanvases.canvas?Dr.offscreenCanvases.canvas:r.canvas}function Pr(){return Dr.currentContext?Dr.currentContext.handle:0}function Mr(e){return Dr.makeContextCurrent(e)?0:-5}r._emscripten_webgl_get_current_context=Pr,r._emscripten_webgl_make_context_current=Mr;const Rr={};function Sr(){if(!Sr.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`,_:c||"./this.program"};for(var e in Rr)void 0===Rr[e]?delete t[e]:t[e]=Rr[e];const r=[];for(var e in t)r.push(`${e}=${t[e]}`);Sr.strings=r}return Sr.strings}const Fr=[];function xr(e,t,r,n){for(let o=0;o<e;o++){const e=rn[r](),i=e&&Dr.getNewId(n);e?(e.name=i,n[i]=e):Dr.recordError(1282),Z[t+4*o>>2]=i}}function kr(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*Z[e+4>>2]}(e);r!=t&&_(`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 Nr(e){const t=F(e)+1,r=un(t);return S(e,r,t),r}function Ur(e){return"]"==e.slice(-1)&&e.lastIndexOf("[")}function jr(e){return 0==(e-=5120)?V:1==e?z:2==e?$:4==e?Z:6==e?q:5==e||28922==e||28520==e||30779==e||30782==e?J:K}function Lr(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function Hr(e,t,r,n,o,i){const a=jr(e),s=Lr(a),c=1<<s,A=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)*c,u=function(e,t,r,n){const o=function(e,t){return e+t-1&-t}(e*r,n);return t*o}(r,n,A,Dr.unpackAlignment);return a.subarray(o>>s,o+u>>s)}function Gr(e){const t=rn.currentProgram;if(t){let r=t.uniformLocsById[e];return"number"==typeof r&&(t.uniformLocsById[e]=r=rn.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?`[${r}]`:""))),r}Dr.recordError(1282)}const Yr=[];const Xr=[];function Wr(){if(Wr.called)return;Wr.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"}Z[pn()>>2]=60*i,Z[hn()>>2]=Number(n!=o);const s=a(t),c=a(r),A=G(s),u=G(c);o<n?(Z[fn()>>2]=A,Z[fn()+4>>2]=u):(Z[fn()>>2]=u,Z[fn()+4>>2]=A)}function Vr(e){return e%4==0&&(e%100!=0||e%400==0)}function zr(e,t){let r=0;for(let n=0;n<=t;r+=e[n++]);return r}const $r=[31,29,31,30,31,30,31,31,30,31,30,31],Kr=[31,28,31,30,31,30,31,31,30,31,30,31];function Zr(e,t){const r=new Date(e.getTime());for(;t>0;){const e=Vr(r.getFullYear()),n=r.getMonth(),o=(e?$r:Kr)[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 Jr(e,t,r,n){const o=Z[n+40>>2],i={tm_sec:Z[n>>2],tm_min:Z[n+4>>2],tm_hour:Z[n+8>>2],tm_mday:Z[n+12>>2],tm_mon:Z[n+16>>2],tm_year:Z[n+20>>2],tm_wday:Z[n+24>>2],tm_yday:Z[n+28>>2],tm_isdst:Z[n+32>>2],tm_gmtoff:Z[n+36>>2],tm_zone:o?M(o):""};let a=M(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 c in s)a=a.replace(new RegExp(c,"g"),s[c]);const A=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],u=["January","February","March","April","May","June","July","August","September","October","November","December"];function l(e,t,r){let n="number"==typeof e?e.toString():e||"";for(;n.length<t;)n=r[0]+n;return n}function d(e,t){return l(e,t,"0")}function g(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 f(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 h(e){const t=Zr(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=f(r),i=f(n);return g(o,t)<=0?g(i,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}const p={"%a":e=>A[e.tm_wday].substring(0,3),"%A":e=>A[e.tm_wday],"%b":e=>u[e.tm_mon].substring(0,3),"%B":e=>u[e.tm_mon],"%C":e=>d((e.tm_year+1900)/100|0,2),"%d":e=>d(e.tm_mday,2),"%e":e=>l(e.tm_mday,2," "),"%g":e=>h(e).toString().substring(2),"%G":e=>h(e),"%H":e=>d(e.tm_hour,2),"%I"(e){let t=e.tm_hour;return 0==t?t=12:t>12&&(t-=12),d(t,2)},"%j":e=>d(e.tm_mday+zr(Vr(e.tm_year+1900)?$r:Kr,e.tm_mon-1),3),"%m":e=>d(e.tm_mon+1,2),"%M":e=>d(e.tm_min,2),"%n":()=>"\n","%p":e=>e.tm_hour>=0&&e.tm_hour<12?"AM":"PM","%S":e=>d(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:Zr(t,7-t.getDay()),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(g(r,n)<0){const e=zr(Vr(n.getFullYear())?$r:Kr,n.getMonth()-1)-31,t=31-r.getDate()+e+n.getDate();return d(Math.ceil(t/7),2)}return 0===g(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=f(t),o=f(r),i=Zr(new Date(e.tm_year+1900,0,1),e.tm_yday);if(g(i,n)<0)return"53";if(g(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(),d(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:Zr(t,0===t.getDay()?1:7-t.getDay()+1),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(g(r,n)<0){const e=zr(Vr(n.getFullYear())?$r:Kr,n.getMonth()-1)-31,t=31-r.getDate()+e+n.getDate();return d(Math.ceil(t/7),2)}return 0===g(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 c in p)a.includes(c)&&(a=a.replace(new RegExp(c,"g"),p[c](i)));const E=sn(a,!1);return E.length>t?0:(Y(E,e),E.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 qr=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=Ze.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n},en=365,tn=146;let rn;Object.defineProperties(qr.prototype,{read:{get(){return(this.mode&en)===en},set(e){e?this.mode|=en:this.mode&=-366}},write:{get(){return(this.mode&tn)===tn},set(e){e?this.mode|=tn:this.mode&=-147}},isFolder:{get(){return Ze.isDir(this.mode)}},isDevice:{get(){return Ze.isChrdev(this.mode)}}}),Ze.FSNode=qr,Ze.staticInit(),r.FS_createPath=Ze.createPath,r.FS_createDataFile=Ze.createDataFile,r.FS_createPreloadedFile=Ze.createPreloadedFile,r.FS_createLazyFile=Ze.createLazyFile,r.FS_createDevice=Ze.createDevice,r.FS_unlink=Ze.unlink,r.count_emval_handles=nt,r.get_first_emval=ot,st=r.PureVirtualError=at(Error,"PureVirtualError"),function(){const e=new Array(256);for(let t=0;t<256;++t)e[t]=String.fromCharCode(t);ct=e}(),r.getInheritedInstanceCount=ut,r.getLiveInheritedInstances=lt,r.flushPendingDeletes=gt,r.setDelayFunction=ht,Et=r.BindingError=at(Error,"BindingError"),Rt=r.InternalError=at(Error,"InternalError"),Yt.prototype.isAliasOf=Nt,Yt.prototype.clone=jt,Yt.prototype.delete=Lt,Yt.prototype.isDeleted=Ht,Yt.prototype.deleteLater=Gt,ir.prototype.getPointee=qt,ir.prototype.destructor=er,ir.prototype.argPackAdvance=8,ir.prototype.readValueFromPointer=Qt,ir.prototype.deleteObject=tr,ir.prototype.fromWireType=or,Ar=r.UnboundTypeError=at(Error,"UnboundTypeError");for(var nn=0;nn<32;++nn)Fr.push(new Array(nn));const on=new Float32Array(288);for(nn=0;nn<288;++nn)Yr[nn]=on.subarray(0,nn+1);const an=new Int32Array(288);for(nn=0;nn<288;++nn)Xr[nn]=an.subarray(0,nn+1);function sn(e,t,r){const n=r>0?r:F(e)+1,o=new Array(n),i=R(e,o,0,o.length);return t&&(o.length=i),o}"function"==typeof atob&&atob;var cn={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 Ne(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(){yn(0),v(Ue.length>0);const e=Ue.pop();!function(e){if(e.release_ref()&&!e.get_rethrown()){const t=e.get_destructor();t&&oe.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 C(0),0;const t=new ke(e).get_type(),r=new Ne;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return C(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(_n(o,t,r.get_adjusted_ptr_addr()))return C(o),0|r.ptr}return C(t),0|r.ptr},__cxa_find_matching_catch_3:function(){const e=je;if(!e)return C(0),0;const t=new ke(e).get_type(),r=new Ne;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return C(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(_n(o,t,r.get_adjusted_ptr_addr()))return C(o),0|r.ptr}return C(t),0|r.ptr},__cxa_free_exception:Le,__cxa_rethrow:function(){const e=Ue.pop();e||_e("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 Ne(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){Je.varargs=r;try{const r=Je.getStreamFromFD(e);switch(t){case 0:{if((n=Je.get())<0)return-28;let e;return e=Ze.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=Je.get();return r.flags|=n,0;case 12:n=Je.get();return $[n+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return He(28),-1}}catch(e){return void 0!==Ze&&e instanceof Ze.ErrnoError||_e(e),-e.errno}},__sys_ioctl:function(e,t,r){Je.varargs=r;try{const r=Je.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=Je.get();return Z[n>>2]=0,0;case 21520:return r.tty?-28:-59;case 21531:n=Je.get();return Ze.ioctl(r,t,n);default:_e(`bad ioctl syscall ${t}`)}}catch(e){return void 0!==Ze&&e instanceof Ze.ErrnoError||_e(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=Ve(t),!a)return-48;s=!0}else{const c=Ze.getStream(o);if(!c)return-8;const A=Ze.mmap(c,e,t,i,r,n);a=A.ptr,s=A.allocated}return Je.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!==Ze&&e instanceof Ze.ErrnoError||_e(e),-e.errno}},__sys_open:function(e,t,r){Je.varargs=r;try{const n=Je.getStr(e),o=r?Je.get():0;return Ze.open(n,t,o).fd}catch(e){return void 0!==Ze&&e instanceof Ze.ErrnoError||_e(e),-e.errno}},__sys_stat64:function(e,t){try{return e=Je.getStr(e),Je.doStat(Ze.stat,e,t)}catch(e){return void 0!==Ze&&e instanceof Ze.ErrnoError||_e(e),-e.errno}},_embind_create_inheriting_constructor:function(e,t,r){e=At(e),t=Ct(t,"wrapper"),r=yt(r);const n=[].slice,{registeredClass:o}=t,i=o.instancePrototype,{baseClass:a}=o,s=a.instancePrototype,c=o.baseClass.constructor,A=et(e,(function(){o.baseClass.pureVirtualFunctions.forEach((e=>{if(this[e]===s[e])throw new st(`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&&mt("Pass correct 'this' to __construct");const e=c.implement.apply(void 0,[this].concat(n.call(arguments)));bt(e);const{$$:t}=e;var r,a,s;e.notifyOnDestruction(),t.preservePointerOnDelete=!0,Object.defineProperties(this,{$$:{value:t}}),Ot(this),r=o,a=t.ptr,s=this,a=It(r,a),pt.hasOwnProperty(a)?mt(`Tried to register registered instance: ${a}`):pt[a]=s},i.__destruct=function(){var e,t;this===i&&mt("Pass correct 'this' to __destruct"),bt(this),e=o,t=this.$$.ptr,t=It(e,t),pt.hasOwnProperty(t)?delete pt[t]:mt(`Tried to unregister unregistered instance: ${t}`)},A.prototype=Object.create(i);for(const e in r)A.prototype[e]=r[e];return it(A)},_embind_finalize_value_object:function(e){const t=Tt[e];delete Tt[e];const{rawConstructor:r}=t,{rawDestructor:n}=t,o=t.fields;Ft([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:c}=t,A=e[r+o.length],{setter:u}=t,{setterContext:l}=t;i[n]={read:e=>a.fromWireType(s(c,e)),write(e,t){const r=[];u(l,e,A.toWireType(r,t)),vt(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:Qt,destructorFunction:n}]}))},_embind_register_bigint:function(e,t,r,n,o){},_embind_register_bool:function(e,t,r,n,o){const i=xt(r);kt(e,{name:t=At(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=$;else{if(4!==r)throw new TypeError(`Unknown boolean type size: ${t}`);n=Z}return this.fromWireType(n[e>>i])},destructorFunction:null})},_embind_register_class:function(e,t,r,n,o,i,a,s,c,A,u,l,d){u=At(u),i=cr(o,i),s&&(s=cr(a,s)),A&&(A=cr(c,A)),d=cr(l,d);const g=qe(u);Vt(g,(()=>{ur(`Cannot construct ${u} due to unbound types`,[n])})),Ft([e,t,r],n?[n]:[],(t=>{let r,o;t=t[0],n?(r=t.registeredClass,o=r.instancePrototype):o=Yt.prototype;const a=et(g,(function(){if(Object.getPrototypeOf(this)!==c)throw new Et(`Use 'new' to construct ${u}`);if(void 0===l.constructor_body)throw new Et(`${u} has no accessible constructor`);const e=l.constructor_body[arguments.length];if(void 0===e)throw new Et(`Tried to invoke ctor of ${u} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(l.constructor_body).toString()}) parameters instead!`);return e.apply(this,arguments)}));var c=Object.create(o,{constructor:{value:a}});a.prototype=c;var l=new zt(u,a,c,d,r,i,s,A);const f=new ir(u,l,!0,!1,!1),h=new ir(`${u}*`,l,!1,!1,!1),p=new ir(`${u} const*`,l,!1,!0,!1);return Xt[e]={pointerType:h,constPointerType:p},ar(g,a),[f,h,p]}))},_embind_register_class_class_function:function(e,t,r,n,o,i,a){const s=gr(r,n);t=At(t),i=cr(o,i),Ft([],[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 c=e.registeredClass.constructor;return void 0===c[t]?(o.argCount=r-1,c[t]=o):(Wt(c,t,n),c[t].overloadTable[r-1]=o),Ft([],s,(e=>{const o=[e[0],null].concat(e.slice(1)),s=dr(n,o,null,i,a);return void 0===c[t].overloadTable?(s.argCount=r-1,c[t]=s):c[t].overloadTable[r-1]=s,[]})),[]}))},_embind_register_class_constructor:function(e,t,r,n,o,i){v(t>0);const a=gr(t,r);o=cr(n,o),Ft([],[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 Et(`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)},Ft([],a,(n=>(n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=dr(r,n,null,o,i),[]))),[]}))},_embind_register_class_function:function(e,t,r,n,o,i,a,s){const c=gr(r,n);t=At(t),i=cr(o,i),Ft([],[e],(e=>{const n=`${(e=e[0]).name}.${t}`;function o(){ur(`Cannot call ${n} due to unbound types`,c)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(t);const A=e.registeredClass.instancePrototype,u=A[t];return void 0===u||void 0===u.overloadTable&&u.className!==e.name&&u.argCount===r-2?(o.argCount=r-2,o.className=e.name,A[t]=o):(Wt(A,t,n),A[t].overloadTable[r-2]=o),Ft([],c,(o=>{const s=dr(n,o,e,i,a);return void 0===A[t].overloadTable?(s.argCount=r-2,A[t]=s):A[t].overloadTable[r-2]=s,[]})),[]}))},_embind_register_class_property:function(e,t,r,n,o,i,a,s,c,A){t=At(t),o=cr(n,o),Ft([],[e],(e=>{const n=`${(e=e[0]).name}.${t}`,u={get(){ur(`Cannot access ${n} due to unbound types`,[r,a])},enumerable:!0,configurable:!0};return u.set=c?function(){ur(`Cannot access ${n} due to unbound types`,[r,a])}:function(e){mt(`${n} is a read-only property`)},Object.defineProperty(e.registeredClass.instancePrototype,t,u),Ft([],c?[r,a]:[r],(r=>{const a=r[0],u={get(){const t=fr(this,e,`${n} getter`);return a.fromWireType(o(i,t))},enumerable:!0};if(c){c=cr(s,c);const t=r[1];u.set=function(r){const o=fr(this,e,`${n} setter`),i=[];c(A,o,t.toWireType(i,r)),vt(i)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]})),[]}))},_embind_register_emval:function(e,t){kt(e,{name:t=At(t),fromWireType(e){const t=rt[e].value;return hr(e),t},toWireType:(e,t)=>it(t),argPackAdvance:8,readValueFromPointer:Qt,destructorFunction:null})},_embind_register_float:function(e,t,r){const n=xt(r);kt(e,{name:t=At(t),fromWireType:e=>e,toWireType(e,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError(`Cannot convert "${pr(t)}" to ${this.name}`);return t},argPackAdvance:8,readValueFromPointer:Er(t,n),destructorFunction:null})},_embind_register_function:function(e,t,r,n,o,i){const a=gr(t,r);e=At(e),o=cr(n,o),Vt(e,(()=>{ur(`Cannot call ${e} due to unbound types`,a)}),t-1),Ft([],a,(r=>{const n=[r[0],null].concat(r.slice(1));return ar(e,dr(e,n,null,o,i),t-1),[]}))},_embind_register_integer:function(e,t,r,n,o){t=At(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");kt(e,{name:t,fromWireType:a,toWireType(e,r){if("number"!=typeof r&&"boolean"!=typeof r)throw new TypeError(`Cannot convert "${pr(r)}" to ${this.name}`);if(r<n||r>o)throw new TypeError(`Passing a number "${pr(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:mr(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(W,o,r)}kt(e,{name:r=At(r),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},_embind_register_std_string:function(e,t){const r="std::string"===(t=At(t));kt(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==z[i]){const e=M(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(z[e+4+o]);n=r.join("")}return An(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||mt("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&&(An(a),mt("String has UTF-16 code units that do not fit in 8 bits")),z[a+4+s]=e}else for(s=0;s<i;++s)z[a+4+s]=t[s];return null!==e&&e.push(An,a),a},argPackAdvance:8,readValueFromPointer:Qt,destructorFunction(e){An(e)}})},_embind_register_std_wstring:function(e,t,r){let n,o,i,a,s;r=At(r),2===t?(n=k,o=N,a=U,i=function(){return K},s=1):4===t&&(n=j,o=L,a=H,i=function(){return J},s=2),kt(e,{name:r,fromWireType(e){const r=J[e>>2],o=i();let a,c=e+4;for(let i=0;i<=r;++i){const A=e+4+i*t;if(i==r||0==o[A>>s]){const e=n(c,A-c);void 0===a?a=e:(a+=String.fromCharCode(0),a+=e),c=A+t}}return An(e),a},toWireType(e,n){"string"!=typeof n&&mt(`Cannot pass non-string to C++ string type ${r}`);const i=a(n),c=un(4+i+t);return J[c>>2]=i>>s,o(n,c+4,i+t),null!==e&&e.push(An,c),c},argPackAdvance:8,readValueFromPointer:Qt,destructorFunction(e){An(e)}})},_embind_register_value_object:function(e,t,r,n,o,i){Tt[e]={name:At(t),rawConstructor:cr(r,n),rawDestructor:cr(o,i),fields:[]}},_embind_register_value_object_field:function(e,t,r,n,o,i,a,s,c,A){Tt[e].fields.push({fieldName:At(t),getterReturnType:r,getter:cr(n,o),getterContext:i,setterArgumentType:a,setter:cr(s,c),setterContext:A})},_embind_register_void:function(e,t){kt(e,{isVoid:!0,name:t=At(t),argPackAdvance:0,fromWireType(){},toWireType(e,t){}})},_emval_call_void_method:function(e,t,r,n){(e=yr[e])(t=yt(t),r=function(e){const t=Ir[e];return void 0===t?At(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]=Ct(Z[(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 c=0;c<e-1;++c)s+=`${0!==c?", ":""}arg${c}`,i.push(`argType${c}`),a.push(r[1+c]);let A=`return function ${qe(`methodCaller_${o}`)}(handle, name, destructors, args) {\n`,u=0;for(c=0;c<e-1;++c)A+=` var arg${c} = argType${c}.readValueFromPointer(args${u?`+${u}`:""});\n`,u+=r[c+1].argPackAdvance;for(A+=` var rv = handle[name](${s});\n`,c=0;c<e-1;++c)r[c+1].deleteObject&&(A+=` argType${c}.deleteObject(arg${c});\n`);return n.isVoid||(A+=" return retType.toWireType(destructors, rv);\n"),A+="};\n",i.push(A),function(e){const t=yr.length;return yr.push(e),t}(lr(Function,i).apply(null,a))},_emval_incref:function(e){e>4&&(rt[e].refcount+=1)},_emval_take_value:function(e,t){return it((e=Ct(e,"_emval_take_value")).readValueFromPointer(t))},abort:function(){_e()},clock_gettime:function(e,t){let r;if(0===e)r=Date.now();else{if(1!==e&&4!==e)return He(28),-1;r=ve()}return Z[t>>2]=r/1e3|0,Z[t+4>>2]=r%1e3*1e3*1e3|0,0},dlopen:function(e,t){_e("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")},dlsym:function(e,t){_e("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(v(Array.isArray(_r)),v(t%16==0),_r.length=0,t>>=2;r=z[e++];){v(100===r||102===r||105===r);const e=r<105;e&&1&t&&t++,_r.push(e?ee[t++>>1]:Z[t]),++t}return _r}(t,r);return Oe.hasOwnProperty(e)||_e(`No EM_ASM constant found at address ${e}`),Oe[e].apply(null,n)},emscripten_get_heap_max:function(){return 2147483648},emscripten_memcpy_big:function(e,t,r){z.copyWithin(e,t,t+r)},emscripten_pc_get_function:function(e){_e("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")},emscripten_resize_heap:function(e){const t=z.length;v((e>>>=0)>t);const r=2147483648;if(e>r)return y(`Cannot enlarge memory, asked to go up to ${e} bytes, but the limit is 2147483648 bytes!`),!1;for(let o=1;o<=4;o*=2){let i=t*(1+.2/o);i=Math.min(i,e+100663296);var n=Math.min(r,X(Math.max(e,i),65536));if(wr(n))return!0}return y(`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),br.last_addr=Cr(e[2]),br.last_stack=e,br.last_addr},emscripten_stack_unwind_buffer:function(e,t,r){let n;br.last_addr==e?n=br.last_stack:(n=(new Error).stack.split("\n"),"Error"==n[0]&&n.shift(),Br(n));let o=2;for(;n[o]&&Cr(n[o])!=e;)++o;for(var i=0;i<r&&n[i+o];++i)Z[t+4*i>>2]=Cr(n[i+o]);return i},emscripten_thread_sleep:function(e){const t=ve();for(;ve()-t<e;);},emscripten_webgl_create_context:function(e,t){return function(e,t){v(t);const r=t>>2,n=Z[r+6],o={alpha:!!Z[r+0],depth:!!Z[r+1],stencil:!!Z[r+2],antialias:!!Z[r+3],premultipliedAlpha:!!Z[r+4],preserveDrawingBuffer:!!Z[r+5],powerPreference:Tr[n],failIfMajorPerformanceCaveat:!!Z[r+7],majorVersion:Z[r+8],minorVersion:Z[r+9],enableExtensionsByDefault:Z[r+10],explicitSwapControl:Z[r+11],proxyContextToMainThread:Z[r+12],renderViaOffscreenBackBuffer:Z[r+13]};let i=Qr(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(!Dr.offscreenCanvases[i.id])return 0}else Dr.offscreenCanvases[i.id]={canvas:i.transferControlToOffscreen(),canvasSharedPtr:un(12),id:i.id},i.controlTransferredOffscreen=!0;i=Dr.offscreenCanvases[i.id]}return Dr.createContext(i,o)}(e,t)},emscripten_webgl_destroy_context:function(e){Dr.currentContext==e&&(Dr.currentContext=0),Dr.deleteContext(e)},emscripten_webgl_get_context_attributes:function(e,t){if(!t)return-5;if(!(e=Dr.contexts[e]))return-3;let r=e.GLctx;if(!r)return-3;r=r.getContextAttributes(),Z[t>>2]=r.alpha,Z[t+4>>2]=r.depth,Z[t+8>>2]=r.stencil,Z[t+12>>2]=r.antialias,Z[t+16>>2]=r.premultipliedAlpha,Z[t+20>>2]=r.preserveDrawingBuffer;const n=r.powerPreference&&Tr.indexOf(r.powerPreference);return Z[t+24>>2]=n,Z[t+28>>2]=r.failIfMajorPerformanceCaveat,Z[t+32>>2]=e.version,Z[t+36>>2]=0,Z[t+40>>2]=e.attributes.enableExtensionsByDefault,0},emscripten_webgl_get_current_context:Pr,emscripten_webgl_init_context_attributes:function(e){v(e);const t=e>>2;for(let e=0;e<14;++e)Z[t+e]=0;Z[t+0]=Z[t+1]=Z[t+3]=Z[t+4]=Z[t+8]=Z[t+10]=1},emscripten_webgl_make_context_current:Mr,environ_get:function(e,t){let r=0;return Sr().forEach(((n,o)=>{const i=t+r;Z[e+4*o>>2]=i,function(e,t,r){for(let r=0;r<e.length;++r)v(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=Sr();Z[e>>2]=r.length;let n=0;return r.forEach((e=>{n+=e.length+1})),Z[t>>2]=n,0},exit:Qe,fd_close:function(e){try{const t=Je.getStreamFromFD(e);return Ze.close(t),0}catch(e){return void 0!==Ze&&e instanceof Ze.ErrnoError||_e(e),e.errno}},fd_read:function(e,t,r,n){try{const o=Je.getStreamFromFD(e),i=Je.doReadv(o,t,r);return Z[n>>2]=i,0}catch(e){return void 0!==Ze&&e instanceof Ze.ErrnoError||_e(e),e.errno}},fd_seek:function(e,t,r,n,o){try{const i=Je.getStreamFromFD(e),a=r*4294967296+(t>>>0),s=9007199254740992;return a<=-s||a>=s?-61:(Ze.llseek(i,a,n),De=[i.position>>>0,(Be=i.position,+Math.abs(Be)>=1?Be>0?(0|Math.min(+Math.floor(Be/4294967296),4294967295))>>>0:~~+Math.ceil((Be-+(~~Be>>>0))/4294967296)>>>0:0)],Z[o>>2]=De[0],Z[o+4>>2]=De[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0)}catch(e){return void 0!==Ze&&e instanceof Ze.ErrnoError||_e(e),e.errno}},fd_write:function(e,t,r,n){try{const o=Je.getStreamFromFD(e),i=Je.doWritev(o,t,r);return Z[n>>2]=i,0}catch(e){return void 0!==Ze&&e instanceof Ze.ErrnoError||_e(e),e.errno}},getTempRet0:function(){return w},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){rn.activeTexture(e)},glAttachShader:function(e,t){rn.attachShader(Dr.programs[e],Dr.shaders[t])},glBindAttribLocation:function(e,t,r){rn.bindAttribLocation(Dr.programs[e],t,M(r))},glBindBuffer:function(e,t){34962==e?rn.currentArrayBufferBinding=t:34963==e&&(rn.currentElementArrayBufferBinding=t),35051==e?rn.currentPixelPackBufferBinding=t:35052==e&&(rn.currentPixelUnpackBufferBinding=t),rn.bindBuffer(e,Dr.buffers[t])},glBindBufferBase:function(e,t,r){rn.bindBufferBase(e,t,Dr.buffers[r])},glBindFramebuffer:function(e,t){rn.bindFramebuffer(e,t?Dr.framebuffers[t]:Dr.currentContext.defaultFbo)},glBindTexture:function(e,t){rn.bindTexture(e,Dr.textures[t])},glBindVertexArray:function(e){rn.bindVertexArray(Dr.vaos[e]);const t=rn.getParameter(34965);rn.currentElementArrayBufferBinding=t?0|t.name:0},glBufferData:function(e,t,r,n){Dr.currentContext.version>=2?r?rn.bufferData(e,z,n,r,t):rn.bufferData(e,t,n):rn.bufferData(e,r?z.subarray(r,r+t):t,n)},glClientWaitSync:function(e,t,r,n){return rn.clientWaitSync(Dr.syncs[e],t,(o=r,v((i=n)===(0|i)),(o>>>0)+4294967296*i));var o,i},glCompileShader:function(e){rn.compileShader(Dr.shaders[e])},glCreateProgram:function(){const e=Dr.getNewId(Dr.programs),t=rn.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,Dr.programs[e]=t,e},glCreateShader:function(e){const t=Dr.getNewId(Dr.shaders);return Dr.shaders[t]=rn.createShader(e),t},glDeleteBuffers:function(e,t){for(let r=0;r<e;r++){const e=Z[t+4*r>>2],n=Dr.buffers[e];n&&(rn.deleteBuffer(n),n.name=0,Dr.buffers[e]=null,e==rn.currentArrayBufferBinding&&(rn.currentArrayBufferBinding=0),e==rn.currentElementArrayBufferBinding&&(rn.currentElementArrayBufferBinding=0),e==rn.currentPixelPackBufferBinding&&(rn.currentPixelPackBufferBinding=0),e==rn.currentPixelUnpackBufferBinding&&(rn.currentPixelUnpackBufferBinding=0))}},glDeleteFramebuffers:function(e,t){for(let r=0;r<e;++r){const e=Z[t+4*r>>2],n=Dr.framebuffers[e];n&&(rn.deleteFramebuffer(n),n.name=0,Dr.framebuffers[e]=null)}},glDeleteProgram:function(e){if(!e)return;const t=Dr.programs[e];t?(rn.deleteProgram(t),t.name=0,Dr.programs[e]=null):Dr.recordError(1281)},glDeleteShader:function(e){if(!e)return;const t=Dr.shaders[e];t?(rn.deleteShader(t),Dr.shaders[e]=null):Dr.recordError(1281)},glDeleteSync:function(e){if(!e)return;const t=Dr.syncs[e];t?(rn.deleteSync(t),t.name=0,Dr.syncs[e]=null):Dr.recordError(1281)},glDeleteTextures:function(e,t){for(let r=0;r<e;r++){const e=Z[t+4*r>>2],n=Dr.textures[e];n&&(rn.deleteTexture(n),n.name=0,Dr.textures[e]=null)}},glDeleteVertexArrays:function(e,t){for(let r=0;r<e;r++){const e=Z[t+4*r>>2];rn.deleteVertexArray(Dr.vaos[e]),Dr.vaos[e]=null}},glDisable:function(e){rn.disable(e)},glDisableVertexAttribArray:function(e){Dr.currentContext.clientBuffers[e].enabled=!1,rn.disableVertexAttribArray(e)},glDrawArrays:function(e,t,r){Dr.preDrawHandleClientVertexAttribBindings(t+r),rn.drawArrays(e,t,r),Dr.postDrawHandleClientVertexAttribBindings()},glDrawBuffers:function(e,t){const r=Fr[e];for(let n=0;n<e;n++)r[n]=Z[t+4*n>>2];rn.drawBuffers(r)},glEnableVertexAttribArray:function(e){Dr.currentContext.clientBuffers[e].enabled=!0,rn.enableVertexAttribArray(e)},glFenceSync:function(e,t){const r=rn.fenceSync(e,t);if(r){const e=Dr.getNewId(Dr.syncs);return r.name=e,Dr.syncs[e]=r,e}return 0},glFinish:function(){rn.finish()},glFlush:function(){rn.flush()},glFramebufferTexture2D:function(e,t,r,n,o){rn.framebufferTexture2D(e,t,r,Dr.textures[n],o)},glFramebufferTextureLayer:function(e,t,r,n,o){rn.framebufferTextureLayer(e,t,Dr.textures[r],n,o)},glGenBuffers:function(e,t){xr(e,t,"createBuffer",Dr.buffers)},glGenFramebuffers:function(e,t){xr(e,t,"createFramebuffer",Dr.framebuffers)},glGenTextures:function(e,t){xr(e,t,"createTexture",Dr.textures)},glGenVertexArrays:function(e,t){xr(e,t,"createVertexArray",Dr.vaos)},glGetAttribLocation:function(e,t){return rn.getAttribLocation(Dr.programs[e],M(t))},glGetError:function(){const e=rn.getError()||Dr.lastError;return Dr.lastError=0,e},glGetIntegerv:function(e,t){!function(e,t,r){if(!t)return void Dr.recordError(1281);let n;switch(e){case 36346:n=1;break;case 36344:return void(0!=r&&1!=r&&Dr.recordError(1280));case 34814:case 36345:n=0;break;case 34466:var o=rn.getParameter(34467);n=o?o.length:0;break;case 33309:if(Dr.currentContext.version<2)return void Dr.recordError(1282);n=2*(rn.getSupportedExtensions()||[]).length;break;case 33307:case 33308:if(Dr.currentContext.version<2)return void Dr.recordError(1280);n=33307==e?3:0}if(void 0===n){const o=rn.getParameter(e);switch(typeof o){case"number":n=o;break;case"boolean":n=o?1:0;break;case"string":return void Dr.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 Dr.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:Z[t+4*e>>2]=o[e];break;case 2:q[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 Dr.recordError(1280),void y(`GL_INVALID_ENUM in glGet${r}v: Unknown object returned from WebGL getParameter(${e})! (error: ${t})`)}}break;default:return Dr.recordError(1280),void y(`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:kr(t,n);break;case 0:Z[t>>2]=n;break;case 2:q[t>>2]=n;break;case 4:V[0|t]=n?1:0}}(e,t,0)},glGetString:function(e){let t=Dr.stringCache[e];if(!t){switch(e){case 7939:var r=rn.getSupportedExtensions()||[];t=Nr((r=r.concat(r.map((e=>`GL_${e}`)))).join(" "));break;case 7936:case 7937:case 37445:case 37446:var n=rn.getParameter(e);n||Dr.recordError(1280),t=n&&Nr(n);break;case 7938:var o=rn.getParameter(7938);t=Nr(o=Dr.currentContext.version>=2?`OpenGL ES 3.0 (${o})`:`OpenGL ES 2.0 (${o})`);break;case 35724:var i=rn.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=Nr(i);break;default:Dr.recordError(1280)}Dr.stringCache[e]=t}return t},glGetUniformBlockIndex:function(e,t){return rn.getUniformBlockIndex(Dr.programs[e],M(t))},glGetUniformLocation:function(e,t){if(t=M(t),e=Dr.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<rn.getProgramParameter(e,35718);++n){const i=rn.getActiveUniform(e,n),a=i.name,s=i.size,c=Ur(a),A=c>0?a.slice(0,c):a;let u=e.uniformIdCounter;for(e.uniformIdCounter+=s,r[A]=[s,u],o=0;o<s;++o)t[u]=o,e.uniformArrayNamesById[u++]=A}}(e);const{uniformLocsById:n}=e;let o=0,i=t;const a=Ur(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]||rn.getUniformLocation(e,t)))return o}else Dr.recordError(1281);var r;return-1},glLinkProgram:function(e){e=Dr.programs[e],rn.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}},glPixelStorei:function(e,t){3317==e&&(Dr.unpackAlignment=t),rn.pixelStorei(e,t)},glReadPixels:function(e,t,r,n,o,i,a){if(Dr.currentContext.version>=2){if(rn.currentPixelPackBufferBinding)rn.readPixels(e,t,r,n,o,i,a);else{const s=jr(i);rn.readPixels(e,t,r,n,o,i,s,a>>Lr(s))}return}const s=Hr(i,o,r,n,a);s?rn.readPixels(e,t,r,n,o,i,s):Dr.recordError(1280)},glShaderSource:function(e,t,r,n){const o=Dr.getSource(e,t,r,n);rn.shaderSource(Dr.shaders[e],o)},glTexImage2D:function(e,t,r,n,o,i,a,s,c){if(Dr.currentContext.version>=2)if(rn.currentPixelUnpackBufferBinding)rn.texImage2D(e,t,r,n,o,i,a,s,c);else if(c){const A=jr(s);rn.texImage2D(e,t,r,n,o,i,a,s,A,c>>Lr(A))}else rn.texImage2D(e,t,r,n,o,i,a,s,null);else rn.texImage2D(e,t,r,n,o,i,a,s,c?Hr(s,a,n,o,c):null)},glTexParameterfv:function(e,t,r){const n=q[r>>2];rn.texParameterf(e,t,n)},glTexParameteri:function(e,t,r){rn.texParameteri(e,t,r)},glTexStorage2D:function(e,t,r,n,o){rn.texStorage2D(e,t,r,n,o)},glTexStorage3D:function(e,t,r,n,o,i){rn.texStorage3D(e,t,r,n,o,i)},glTexSubImage2D:function(e,t,r,n,o,i,a,s,c){if(Dr.currentContext.version>=2){if(rn.currentPixelUnpackBufferBinding)rn.texSubImage2D(e,t,r,n,o,i,a,s,c);else if(c){const A=jr(s);rn.texSubImage2D(e,t,r,n,o,i,a,s,A,c>>Lr(A))}else rn.texSubImage2D(e,t,r,n,o,i,a,s,null);return}let A=null;c&&(A=Hr(s,a,o,i,c)),rn.texSubImage2D(e,t,r,n,o,i,a,s,A)},glTexSubImage3D:function(e,t,r,n,o,i,a,s,c,A,u){if(rn.currentPixelUnpackBufferBinding)rn.texSubImage3D(e,t,r,n,o,i,a,s,c,A,u);else if(u){const l=jr(A);rn.texSubImage3D(e,t,r,n,o,i,a,s,c,A,l,u>>Lr(l))}else rn.texSubImage3D(e,t,r,n,o,i,a,s,c,A,null)},glUniform1f:function(e,t){rn.uniform1f(Gr(e),t)},glUniform1i:function(e,t){rn.uniform1i(Gr(e),t)},glUniform2fv:function(e,t,r){if(Dr.currentContext.version>=2)rn.uniform2fv(Gr(e),q,r>>2,2*t);else{if(t<=144){var n=Yr[2*t-1];for(let e=0;e<2*t;e+=2)n[e]=q[r+4*e>>2],n[e+1]=q[r+(4*e+4)>>2]}else n=q.subarray(r>>2,r+8*t>>2);rn.uniform2fv(Gr(e),n)}},glUniform4fv:function(e,t,r){if(Dr.currentContext.version>=2)rn.uniform4fv(Gr(e),q,r>>2,4*t);else{if(t<=72){var n=Yr[4*t-1];const e=q;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=q.subarray(r>>2,r+16*t>>2);rn.uniform4fv(Gr(e),n)}},glUniform4iv:function(e,t,r){if(Dr.currentContext.version>=2)rn.uniform4iv(Gr(e),Z,r>>2,4*t);else{if(t<=72){var n=Xr[4*t-1];for(let e=0;e<4*t;e+=4)n[e]=Z[r+4*e>>2],n[e+1]=Z[r+(4*e+4)>>2],n[e+2]=Z[r+(4*e+8)>>2],n[e+3]=Z[r+(4*e+12)>>2]}else n=Z.subarray(r>>2,r+16*t>>2);rn.uniform4iv(Gr(e),n)}},glUniformBlockBinding:function(e,t,r){e=Dr.programs[e],rn.uniformBlockBinding(e,t,r)},glUniformMatrix4fv:function(e,t,r,n){if(Dr.currentContext.version>=2)rn.uniformMatrix4fv(Gr(e),!!r,q,n>>2,16*t);else{if(t<=18){var o=Yr[16*t-1];const e=q;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=q.subarray(n>>2,n+64*t>>2);rn.uniformMatrix4fv(Gr(e),!!r,o)}},glUseProgram:function(e){e=Dr.programs[e],rn.useProgram(e),rn.currentProgram=e},glVertexAttribPointer:function(e,t,r,n,o,i){const a=Dr.currentContext.clientBuffers[e];if(!rn.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,rn.vertexAttribPointer(e,t,r,!!n,o,i)},glViewport:function(e,t,r,n){rn.viewport(e,t,r,n)},gmtime_r:function e(t,r){const n=new Date(1e3*Z[t>>2]);Z[r>>2]=n.getUTCSeconds(),Z[r+4>>2]=n.getUTCMinutes(),Z[r+8>>2]=n.getUTCHours(),Z[r+12>>2]=n.getUTCDate(),Z[r+16>>2]=n.getUTCMonth(),Z[r+20>>2]=n.getUTCFullYear()-1900,Z[r+24>>2]=n.getUTCDay(),Z[r+36>>2]=0,Z[r+32>>2]=0;const o=Date.UTC(n.getUTCFullYear(),0,1,0,0,0,0),i=(n.getTime()-o)/864e5|0;return Z[r+28>>2]=i,e.GMTString||(e.GMTString=G("GMT")),Z[r+40>>2]=e.GMTString,r},invoke_diii:function(e,t,r,n){const o=En();try{return oe.get(e)(t,r,n)}catch(e){if(mn(o),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_i:function(e){const t=En();try{return oe.get(e)()}catch(e){if(mn(t),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_ii:function(e,t){const r=En();try{return oe.get(e)(t)}catch(e){if(mn(r),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_iii:function(e,t,r){const n=En();try{return oe.get(e)(t,r)}catch(e){if(mn(n),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_iiii:function(e,t,r,n){const o=En();try{return oe.get(e)(t,r,n)}catch(e){if(mn(o),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_iiiii:function(e,t,r,n,o){const i=En();try{return oe.get(e)(t,r,n,o)}catch(e){if(mn(i),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_iiiiii:function(e,t,r,n,o,i){const a=En();try{return oe.get(e)(t,r,n,o,i)}catch(e){if(mn(a),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_iiiiiii:function(e,t,r,n,o,i,a){const s=En();try{return oe.get(e)(t,r,n,o,i,a)}catch(e){if(mn(s),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_iiiiiiiddi:function(e,t,r,n,o,i,a,s,c,A){const u=En();try{return oe.get(e)(t,r,n,o,i,a,s,c,A)}catch(e){if(mn(u),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_iiiiiiii:function(e,t,r,n,o,i,a,s){const c=En();try{return oe.get(e)(t,r,n,o,i,a,s)}catch(e){if(mn(c),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_iiiiiiiii:function(e,t,r,n,o,i,a,s,c){const A=En();try{return oe.get(e)(t,r,n,o,i,a,s,c)}catch(e){if(mn(A),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_v:function(e){const t=En();try{oe.get(e)()}catch(e){if(mn(t),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_vdiii:function(e,t,r,n,o){const i=En();try{oe.get(e)(t,r,n,o)}catch(e){if(mn(i),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_vi:function(e,t){const r=En();try{oe.get(e)(t)}catch(e){if(mn(r),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_vididdii:function(e,t,r,n,o,i,a,s){const c=En();try{oe.get(e)(t,r,n,o,i,a,s)}catch(e){if(mn(c),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_vidii:function(e,t,r,n,o){const i=En();try{oe.get(e)(t,r,n,o)}catch(e){if(mn(i),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_vii:function(e,t,r){const n=En();try{oe.get(e)(t,r)}catch(e){if(mn(n),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viid:function(e,t,r,n){const o=En();try{oe.get(e)(t,r,n)}catch(e){if(mn(o),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viidi:function(e,t,r,n,o){const i=En();try{oe.get(e)(t,r,n,o)}catch(e){if(mn(i),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viididii:function(e,t,r,n,o,i,a,s){const c=En();try{oe.get(e)(t,r,n,o,i,a,s)}catch(e){if(mn(c),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viii:function(e,t,r,n){const o=En();try{oe.get(e)(t,r,n)}catch(e){if(mn(o),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiid:function(e,t,r,n,o){const i=En();try{oe.get(e)(t,r,n,o)}catch(e){if(mn(i),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiidd:function(e,t,r,n,o,i){const a=En();try{oe.get(e)(t,r,n,o,i)}catch(e){if(mn(a),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiddi:function(e,t,r,n,o,i,a){const s=En();try{oe.get(e)(t,r,n,o,i,a)}catch(e){if(mn(s),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiidi:function(e,t,r,n,o,i){const a=En();try{oe.get(e)(t,r,n,o,i)}catch(e){if(mn(a),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiii:function(e,t,r,n,o){const i=En();try{oe.get(e)(t,r,n,o)}catch(e){if(mn(i),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiid:function(e,t,r,n,o,i){const a=En();try{oe.get(e)(t,r,n,o,i)}catch(e){if(mn(a),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiidi:function(e,t,r,n,o,i,a){const s=En();try{oe.get(e)(t,r,n,o,i,a)}catch(e){if(mn(s),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiidid:function(e,t,r,n,o,i,a,s){const c=En();try{oe.get(e)(t,r,n,o,i,a,s)}catch(e){if(mn(c),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiidiidiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d,g,f,h){const p=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u,l,d,g,f,h)}catch(e){if(mn(p),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiifiifiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d,g,f,h){const p=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u,l,d,g,f,h)}catch(e){if(mn(p),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiii:function(e,t,r,n,o,i){const a=En();try{oe.get(e)(t,r,n,o,i)}catch(e){if(mn(a),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiid:function(e,t,r,n,o,i,a){const s=En();try{oe.get(e)(t,r,n,o,i,a)}catch(e){if(mn(s),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiif:function(e,t,r,n,o,i,a){const s=En();try{oe.get(e)(t,r,n,o,i,a)}catch(e){if(mn(s),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiii:function(e,t,r,n,o,i,a){const s=En();try{oe.get(e)(t,r,n,o,i,a)}catch(e){if(mn(s),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiid:function(e,t,r,n,o,i,a,s){const c=En();try{oe.get(e)(t,r,n,o,i,a,s)}catch(e){if(mn(c),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiif:function(e,t,r,n,o,i,a,s){const c=En();try{oe.get(e)(t,r,n,o,i,a,s)}catch(e){if(mn(c),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiii:function(e,t,r,n,o,i,a,s){const c=En();try{oe.get(e)(t,r,n,o,i,a,s)}catch(e){if(mn(c),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiiddi:function(e,t,r,n,o,i,a,s,c,A,u){const l=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u)}catch(e){if(mn(l),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiidiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d){const g=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u,l,d)}catch(e){if(mn(g),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiifiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d){const g=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u,l,d)}catch(e){if(mn(g),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiii:function(e,t,r,n,o,i,a,s,c){const A=En();try{oe.get(e)(t,r,n,o,i,a,s,c)}catch(e){if(mn(A),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiiidd:function(e,t,r,n,o,i,a,s,c,A,u){const l=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u)}catch(e){if(mn(l),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiiidf:function(e,t,r,n,o,i,a,s,c,A,u){const l=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u)}catch(e){if(mn(l),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiiii:function(e,t,r,n,o,i,a,s,c,A){const u=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A)}catch(e){if(mn(u),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiiiidd:function(e,t,r,n,o,i,a,s,c,A,u,l){const d=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u,l)}catch(e){if(mn(d),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiiiiddi:function(e,t,r,n,o,i,a,s,c,A,u,l,d){const g=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u,l,d)}catch(e){if(mn(g),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u){const l=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u)}catch(e){if(mn(l),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiiiiiddi:function(e,t,r,n,o,i,a,s,c,A,u,l,d,g){const f=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u,l,d,g)}catch(e){if(mn(f),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u,l){const d=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u,l)}catch(e){if(mn(d),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d){const g=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u,l,d)}catch(e){if(mn(g),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},invoke_viiiiiiiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d,g){const f=En();try{oe.get(e)(t,r,n,o,i,a,s,c,A,u,l,d,g)}catch(e){if(mn(f),e!==e+0&&"longjmp"!==e)throw e;yn(1,0)}},llvm_eh_typeid_for:function(e){return e},localtime_r:function(e,t){Wr();const r=new Date(1e3*Z[e>>2]);Z[t>>2]=r.getSeconds(),Z[t+4>>2]=r.getMinutes(),Z[t+8>>2]=r.getHours(),Z[t+12>>2]=r.getDate(),Z[t+16>>2]=r.getMonth(),Z[t+20>>2]=r.getFullYear()-1900,Z[t+24>>2]=r.getDay();const n=new Date(r.getFullYear(),0,1),o=(r.getTime()-n.getTime())/864e5|0;Z[t+28>>2]=o,Z[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));Z[t+32>>2]=s;const c=Z[fn()+(s?4:0)>>2];return Z[t+40>>2]=c,t},mktime:function(e){Wr();const t=new Date(Z[e+20>>2]+1900,Z[e+16>>2],Z[e+12>>2],Z[e+8>>2],Z[e+4>>2],Z[e>>2],0),r=Z[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)Z[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))}Z[e+24>>2]=t.getDay();const c=(t.getTime()-o.getTime())/864e5|0;return Z[e+28>>2]=c,Z[e>>2]=t.getSeconds(),Z[e+4>>2]=t.getMinutes(),Z[e+8>>2]=t.getHours(),Z[e+12>>2]=t.getDate(),Z[e+16>>2]=t.getMonth(),t.getTime()/1e3|0},proc_exit:function(e){On(e)},setTempRet0:function(e){C(e)},strftime:Jr,strftime_l:function(e,t,r,n){return Jr(e,t,r,n)}};(function(){const e={env:cn,wasi_snapshot_preview1:cn};function t(e,t){const{exports:n}=e;var o;r.asm=n,D=r.asm.memory,v(D,"memory not found in wasm exports"),te(D.buffer),oe=r.asm.__indirect_function_table,v(oe,"table not found in wasm exports"),o=r.asm.__wasm_call_ctors,ce.unshift(o),ye("wasm-instantiate")}Ie("wasm-instantiate");let n=r;if(r.instantiateWasm)try{return r.instantiateWasm(e,t)}catch(e){return y(`Module.instantiateWasm callback failed with error: ${e}`),!1}r.loadWasm(Ce,e).then((function(e){v(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=we("__wasm_call_ctors");var An=r._free=we("free"),un=r._malloc=we("malloc"),ln=r.___errno_location=we("__errno_location");r._fflush=we("fflush");var dn=r.___getTypeName=we("__getTypeName");r.___embind_register_native_and_builtin_types=we("__embind_register_native_and_builtin_types"),r._emscripten_main_thread_process_queued_calls=we("emscripten_main_thread_process_queued_calls");var gn=r._emscripten_stack_get_end=function(){return(gn=r._emscripten_stack_get_end=r.asm.emscripten_stack_get_end).apply(null,arguments)},fn=r.__get_tzname=we("_get_tzname"),hn=r.__get_daylight=we("_get_daylight"),pn=r.__get_timezone=we("_get_timezone"),En=r.stackSave=we("stackSave"),mn=r.stackRestore=we("stackRestore"),In=(r.stackAlloc=we("stackAlloc"),r._emscripten_stack_init=function(){return(In=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=we("saveSetjmp");var yn=r._setThrew=we("setThrew"),_n=r.___cxa_can_catch=we("__cxa_can_catch"),wn=r.___cxa_is_pointer_type=we("__cxa_is_pointer_type"),Cn=r._memalign=we("memalign");r._emscripten_builtin_malloc=we("emscripten_builtin_malloc"),r._emscripten_builtin_free=we("emscripten_builtin_free"),r._emscripten_builtin_memalign=we("emscripten_builtin_memalign"),r.dynCall_jii=we("dynCall_jii"),r.dynCall_viji=we("dynCall_viji"),r.dynCall_jjj=we("dynCall_jjj"),r.dynCall_iiiijj=we("dynCall_iiiijj"),r.dynCall_viijj=we("dynCall_viijj"),r.dynCall_viiijjjj=we("dynCall_viiijjjj"),r.dynCall_ji=we("dynCall_ji"),r.dynCall_vij=we("dynCall_vij"),r.dynCall_viijii=we("dynCall_viijii"),r.dynCall_vj=we("dynCall_vj"),r.dynCall_viij=we("dynCall_viij"),r.dynCall_viiiiij=we("dynCall_viiiiij"),r.dynCall_iijjiiii=we("dynCall_iijjiiii"),r.dynCall_jiji=we("dynCall_jiji"),r.dynCall_iiiiij=we("dynCall_iiiiij"),r.dynCall_iiiiijj=we("dynCall_iiiiijj"),r.dynCall_iiiiiijj=we("dynCall_iiiiiijj");let bn;function Bn(e){this.name="ExitStatus",this.message=`Program terminated with exit(${e})`,this.status=e}function Dn(e){function t(){bn||(bn=!0,r.calledRun=!0,T||(ae(),v(!le),le=!0,r.noFSInit||Ze.init.initialized||Ze.init(),Ze.ignorePermissions=!1,We.init(),Fe(ce),n(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),v(!r._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),function(){if(ae(),r.postRun)for("function"==typeof r.postRun&&(r.postRun=[r.postRun]);r.postRun.length;)e=r.postRun.shift(),ue.unshift(e);var e;Fe(ue)}()))}e=e||s,fe>0||(In(),ie(),function(){if(r.preRun)for("function"==typeof r.preRun&&(r.preRun=[r.preRun]);r.preRun.length;)e=r.preRun.shift(),se.unshift(e);var e;Fe(se)}(),fe>0||(r.setStatus?(r.setStatus("Running..."),setTimeout((()=>{setTimeout((()=>{r.setStatus("")}),1),t()}),1)):t(),ae()))}function On(e){O=e,ge()||(r.onExit&&r.onExit(e),T=!0),A(e,new Bn(e))}if(Object.getOwnPropertyDescriptor(r,"intArrayFromString")||(r.intArrayFromString=function(){_e("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"intArrayToString")||(r.intArrayToString=function(){_e("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ccall")||(r.ccall=function(){_e("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"cwrap")||(r.cwrap=function(){_e("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setValue")||(r.setValue=function(){_e("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getValue")||(r.getValue=function(){_e("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"allocate")||(r.allocate=function(){_e("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"UTF8ArrayToString")||(r.UTF8ArrayToString=function(){_e("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"UTF8ToString")||(r.UTF8ToString=function(){_e("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stringToUTF8Array")||(r.stringToUTF8Array=function(){_e("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stringToUTF8")||(r.stringToUTF8=function(){_e("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"lengthBytesUTF8")||(r.lengthBytesUTF8=function(){_e("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stackTrace")||(r.stackTrace=function(){_e("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"addOnPreRun")||(r.addOnPreRun=function(){_e("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"addOnInit")||(r.addOnInit=function(){_e("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"addOnPreMain")||(r.addOnPreMain=function(){_e("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"addOnExit")||(r.addOnExit=function(){_e("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"addOnPostRun")||(r.addOnPostRun=function(){_e("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeStringToMemory")||(r.writeStringToMemory=function(){_e("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeArrayToMemory")||(r.writeArrayToMemory=function(){_e("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeAsciiToMemory")||(r.writeAsciiToMemory=function(){_e("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),r.addRunDependency=Ie,r.removeRunDependency=ye,Object.getOwnPropertyDescriptor(r,"FS_createFolder")||(r.FS_createFolder=function(){_e("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),r.FS_createPath=Ze.createPath,r.FS_createDataFile=Ze.createDataFile,r.FS_createPreloadedFile=Ze.createPreloadedFile,r.FS_createLazyFile=Ze.createLazyFile,Object.getOwnPropertyDescriptor(r,"FS_createLink")||(r.FS_createLink=function(){_e("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),r.FS_createDevice=Ze.createDevice,r.FS_unlink=Ze.unlink,Object.getOwnPropertyDescriptor(r,"getLEB")||(r.getLEB=function(){_e("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getFunctionTables")||(r.getFunctionTables=function(){_e("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"alignFunctionTables")||(r.alignFunctionTables=function(){_e("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerFunctions")||(r.registerFunctions=function(){_e("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"addFunction")||(r.addFunction=function(){_e("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"removeFunction")||(r.removeFunction=function(){_e("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getFuncWrapper")||(r.getFuncWrapper=function(){_e("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"prettyPrint")||(r.prettyPrint=function(){_e("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"dynCall")||(r.dynCall=function(){_e("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getCompilerSetting")||(r.getCompilerSetting=function(){_e("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"print")||(r.print=function(){_e("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"printErr")||(r.printErr=function(){_e("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getTempRet0")||(r.getTempRet0=function(){_e("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setTempRet0")||(r.setTempRet0=function(){_e("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"callMain")||(r.callMain=function(){_e("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"abort")||(r.abort=function(){_e("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"keepRuntimeAlive")||(r.keepRuntimeAlive=function(){_e("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"zeroMemory")||(r.zeroMemory=function(){_e("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stringToNewUTF8")||(r.stringToNewUTF8=function(){_e("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setFileTime")||(r.setFileTime=function(){_e("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emscripten_realloc_buffer")||(r.emscripten_realloc_buffer=function(){_e("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ENV")||(r.ENV=function(){_e("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ERRNO_CODES")||(r.ERRNO_CODES=function(){_e("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ERRNO_MESSAGES")||(r.ERRNO_MESSAGES=function(){_e("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setErrNo")||(r.setErrNo=function(){_e("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"inetPton4")||(r.inetPton4=function(){_e("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"inetNtop4")||(r.inetNtop4=function(){_e("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"inetPton6")||(r.inetPton6=function(){_e("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"inetNtop6")||(r.inetNtop6=function(){_e("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"readSockaddr")||(r.readSockaddr=function(){_e("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeSockaddr")||(r.writeSockaddr=function(){_e("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"DNS")||(r.DNS=function(){_e("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getHostByName")||(r.getHostByName=function(){_e("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"GAI_ERRNO_MESSAGES")||(r.GAI_ERRNO_MESSAGES=function(){_e("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"Protocols")||(r.Protocols=function(){_e("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"Sockets")||(r.Sockets=function(){_e("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getRandomDevice")||(r.getRandomDevice=function(){_e("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"traverseStack")||(r.traverseStack=function(){_e("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"UNWIND_CACHE")||(r.UNWIND_CACHE=function(){_e("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"withBuiltinMalloc")||(r.withBuiltinMalloc=function(){_e("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"readAsmConstArgsArray")||(r.readAsmConstArgsArray=function(){_e("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"readAsmConstArgs")||(r.readAsmConstArgs=function(){_e("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"mainThreadEM_ASM")||(r.mainThreadEM_ASM=function(){_e("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"jstoi_q")||(r.jstoi_q=function(){_e("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"jstoi_s")||(r.jstoi_s=function(){_e("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getExecutableName")||(r.getExecutableName=function(){_e("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"listenOnce")||(r.listenOnce=function(){_e("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"autoResumeAudioContext")||(r.autoResumeAudioContext=function(){_e("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"dynCallLegacy")||(r.dynCallLegacy=function(){_e("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getDynCaller")||(r.getDynCaller=function(){_e("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"dynCall")||(r.dynCall=function(){_e("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"callRuntimeCallbacks")||(r.callRuntimeCallbacks=function(){_e("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"runtimeKeepalivePush")||(r.runtimeKeepalivePush=function(){_e("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"runtimeKeepalivePop")||(r.runtimeKeepalivePop=function(){_e("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"callUserCallback")||(r.callUserCallback=function(){_e("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"maybeExit")||(r.maybeExit=function(){_e("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"safeSetTimeout")||(r.safeSetTimeout=function(){_e("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"asmjsMangle")||(r.asmjsMangle=function(){_e("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"asyncLoad")||(r.asyncLoad=function(){_e("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"alignMemory")||(r.alignMemory=function(){_e("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"mmapAlloc")||(r.mmapAlloc=function(){_e("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"reallyNegative")||(r.reallyNegative=function(){_e("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"unSign")||(r.unSign=function(){_e("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"reSign")||(r.reSign=function(){_e("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"formatString")||(r.formatString=function(){_e("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"PATH")||(r.PATH=function(){_e("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"PATH_FS")||(r.PATH_FS=function(){_e("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"SYSCALLS")||(r.SYSCALLS=function(){_e("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"syscallMmap2")||(r.syscallMmap2=function(){_e("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"syscallMunmap")||(r.syscallMunmap=function(){_e("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getSocketFromFD")||(r.getSocketFromFD=function(){_e("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getSocketAddress")||(r.getSocketAddress=function(){_e("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"JSEvents")||(r.JSEvents=function(){_e("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerKeyEventCallback")||(r.registerKeyEventCallback=function(){_e("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"specialHTMLTargets")||(r.specialHTMLTargets=function(){_e("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"findEventTarget")||(r.findEventTarget=function(){_e("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"findCanvasEventTarget")||(r.findCanvasEventTarget=function(){_e("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getBoundingClientRect")||(r.getBoundingClientRect=function(){_e("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillMouseEventData")||(r.fillMouseEventData=function(){_e("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerMouseEventCallback")||(r.registerMouseEventCallback=function(){_e("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerWheelEventCallback")||(r.registerWheelEventCallback=function(){_e("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerUiEventCallback")||(r.registerUiEventCallback=function(){_e("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerFocusEventCallback")||(r.registerFocusEventCallback=function(){_e("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillDeviceOrientationEventData")||(r.fillDeviceOrientationEventData=function(){_e("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerDeviceOrientationEventCallback")||(r.registerDeviceOrientationEventCallback=function(){_e("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillDeviceMotionEventData")||(r.fillDeviceMotionEventData=function(){_e("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerDeviceMotionEventCallback")||(r.registerDeviceMotionEventCallback=function(){_e("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"screenOrientation")||(r.screenOrientation=function(){_e("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillOrientationChangeEventData")||(r.fillOrientationChangeEventData=function(){_e("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerOrientationChangeEventCallback")||(r.registerOrientationChangeEventCallback=function(){_e("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillFullscreenChangeEventData")||(r.fillFullscreenChangeEventData=function(){_e("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerFullscreenChangeEventCallback")||(r.registerFullscreenChangeEventCallback=function(){_e("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerRestoreOldStyle")||(r.registerRestoreOldStyle=function(){_e("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"hideEverythingExceptGivenElement")||(r.hideEverythingExceptGivenElement=function(){_e("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"restoreHiddenElements")||(r.restoreHiddenElements=function(){_e("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setLetterbox")||(r.setLetterbox=function(){_e("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"currentFullscreenStrategy")||(r.currentFullscreenStrategy=function(){_e("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"restoreOldWindowedStyle")||(r.restoreOldWindowedStyle=function(){_e("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"softFullscreenResizeWebGLRenderTarget")||(r.softFullscreenResizeWebGLRenderTarget=function(){_e("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"doRequestFullscreen")||(r.doRequestFullscreen=function(){_e("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillPointerlockChangeEventData")||(r.fillPointerlockChangeEventData=function(){_e("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerPointerlockChangeEventCallback")||(r.registerPointerlockChangeEventCallback=function(){_e("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerPointerlockErrorEventCallback")||(r.registerPointerlockErrorEventCallback=function(){_e("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"requestPointerLock")||(r.requestPointerLock=function(){_e("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillVisibilityChangeEventData")||(r.fillVisibilityChangeEventData=function(){_e("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerVisibilityChangeEventCallback")||(r.registerVisibilityChangeEventCallback=function(){_e("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerTouchEventCallback")||(r.registerTouchEventCallback=function(){_e("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillGamepadEventData")||(r.fillGamepadEventData=function(){_e("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerGamepadEventCallback")||(r.registerGamepadEventCallback=function(){_e("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerBeforeUnloadEventCallback")||(r.registerBeforeUnloadEventCallback=function(){_e("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"fillBatteryEventData")||(r.fillBatteryEventData=function(){_e("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"battery")||(r.battery=function(){_e("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerBatteryEventCallback")||(r.registerBatteryEventCallback=function(){_e("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setCanvasElementSize")||(r.setCanvasElementSize=function(){_e("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getCanvasElementSize")||(r.getCanvasElementSize=function(){_e("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"polyfillSetImmediate")||(r.polyfillSetImmediate=function(){_e("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"demangle")||(r.demangle=function(){_e("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"demangleAll")||(r.demangleAll=function(){_e("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"jsStackTrace")||(r.jsStackTrace=function(){_e("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stackTrace")||(r.stackTrace=function(){_e("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getEnvStrings")||(r.getEnvStrings=function(){_e("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"checkWasiClock")||(r.checkWasiClock=function(){_e("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeI53ToI64")||(r.writeI53ToI64=function(){_e("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeI53ToI64Clamped")||(r.writeI53ToI64Clamped=function(){_e("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeI53ToI64Signaling")||(r.writeI53ToI64Signaling=function(){_e("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeI53ToU64Clamped")||(r.writeI53ToU64Clamped=function(){_e("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeI53ToU64Signaling")||(r.writeI53ToU64Signaling=function(){_e("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"readI53FromI64")||(r.readI53FromI64=function(){_e("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"readI53FromU64")||(r.readI53FromU64=function(){_e("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"convertI32PairToI53")||(r.convertI32PairToI53=function(){_e("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"convertU32PairToI53")||(r.convertU32PairToI53=function(){_e("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"uncaughtExceptionCount")||(r.uncaughtExceptionCount=function(){_e("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"exceptionLast")||(r.exceptionLast=function(){_e("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"exceptionCaught")||(r.exceptionCaught=function(){_e("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ExceptionInfo")||(r.ExceptionInfo=function(){_e("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"CatchInfo")||(r.CatchInfo=function(){_e("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"exception_addRef")||(r.exception_addRef=function(){_e("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"exception_decRef")||(r.exception_decRef=function(){_e("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"Browser")||(r.Browser=function(){_e("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"funcWrappers")||(r.funcWrappers=function(){_e("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getFuncWrapper")||(r.getFuncWrapper=function(){_e("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setMainLoop")||(r.setMainLoop=function(){_e("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"wget")||(r.wget=function(){_e("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"FS")||(r.FS=function(){_e("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"MEMFS")||(r.MEMFS=function(){_e("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"TTY")||(r.TTY=function(){_e("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"PIPEFS")||(r.PIPEFS=function(){_e("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"SOCKFS")||(r.SOCKFS=function(){_e("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"_setNetworkCallback")||(r._setNetworkCallback=function(){_e("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"tempFixedLengthArray")||(r.tempFixedLengthArray=function(){_e("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"miniTempWebGLFloatBuffers")||(r.miniTempWebGLFloatBuffers=function(){_e("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"heapObjectForWebGLType")||(r.heapObjectForWebGLType=function(){_e("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"heapAccessShiftForWebGLHeap")||(r.heapAccessShiftForWebGLHeap=function(){_e("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),r.GL=Dr,Object.getOwnPropertyDescriptor(r,"emscriptenWebGLGet")||(r.emscriptenWebGLGet=function(){_e("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"computeUnpackAlignedImageSize")||(r.computeUnpackAlignedImageSize=function(){_e("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emscriptenWebGLGetTexPixelData")||(r.emscriptenWebGLGetTexPixelData=function(){_e("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emscriptenWebGLGetUniform")||(r.emscriptenWebGLGetUniform=function(){_e("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"webglGetUniformLocation")||(r.webglGetUniformLocation=function(){_e("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"webglPrepareUniformLocationsBeforeFirstUse")||(r.webglPrepareUniformLocationsBeforeFirstUse=function(){_e("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"webglGetLeftBracePos")||(r.webglGetLeftBracePos=function(){_e("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emscriptenWebGLGetVertexAttrib")||(r.emscriptenWebGLGetVertexAttrib=function(){_e("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emscriptenWebGLGetBufferBinding")||(r.emscriptenWebGLGetBufferBinding=function(){_e("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emscriptenWebGLValidateMapBufferTarget")||(r.emscriptenWebGLValidateMapBufferTarget=function(){_e("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"writeGLArray")||(r.writeGLArray=function(){_e("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"AL")||(r.AL=function(){_e("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"SDL_unicode")||(r.SDL_unicode=function(){_e("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"SDL_ttfContext")||(r.SDL_ttfContext=function(){_e("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"SDL_audio")||(r.SDL_audio=function(){_e("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"SDL")||(r.SDL=function(){_e("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"SDL_gfx")||(r.SDL_gfx=function(){_e("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"GLUT")||(r.GLUT=function(){_e("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"EGL")||(r.EGL=function(){_e("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"GLFW_Window")||(r.GLFW_Window=function(){_e("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"GLFW")||(r.GLFW=function(){_e("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"GLEW")||(r.GLEW=function(){_e("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"IDBStore")||(r.IDBStore=function(){_e("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"runAndAbortIfError")||(r.runAndAbortIfError=function(){_e("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emval_handle_array")||(r.emval_handle_array=function(){_e("'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(){_e("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emval_symbols")||(r.emval_symbols=function(){_e("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"init_emval")||(r.init_emval=function(){_e("'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(){_e("'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(){_e("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getStringOrSymbol")||(r.getStringOrSymbol=function(){_e("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"requireHandle")||(r.requireHandle=function(){_e("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emval_newers")||(r.emval_newers=function(){_e("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"craftEmvalAllocator")||(r.craftEmvalAllocator=function(){_e("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emval_get_global")||(r.emval_get_global=function(){_e("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emval_methodCallers")||(r.emval_methodCallers=function(){_e("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"InternalError")||(r.InternalError=function(){_e("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"BindingError")||(r.BindingError=function(){_e("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"UnboundTypeError")||(r.UnboundTypeError=function(){_e("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"PureVirtualError")||(r.PureVirtualError=function(){_e("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"init_embind")||(r.init_embind=function(){_e("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"throwInternalError")||(r.throwInternalError=function(){_e("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"throwBindingError")||(r.throwBindingError=function(){_e("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"throwUnboundTypeError")||(r.throwUnboundTypeError=function(){_e("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ensureOverloadTable")||(r.ensureOverloadTable=function(){_e("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"exposePublicSymbol")||(r.exposePublicSymbol=function(){_e("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"replacePublicSymbol")||(r.replacePublicSymbol=function(){_e("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"extendError")||(r.extendError=function(){_e("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"createNamedFunction")||(r.createNamedFunction=function(){_e("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registeredInstances")||(r.registeredInstances=function(){_e("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getBasestPointer")||(r.getBasestPointer=function(){_e("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerInheritedInstance")||(r.registerInheritedInstance=function(){_e("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"unregisterInheritedInstance")||(r.unregisterInheritedInstance=function(){_e("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getInheritedInstance")||(r.getInheritedInstance=function(){_e("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getInheritedInstanceCount")||(r.getInheritedInstanceCount=function(){_e("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getLiveInheritedInstances")||(r.getLiveInheritedInstances=function(){_e("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registeredTypes")||(r.registeredTypes=function(){_e("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"awaitingDependencies")||(r.awaitingDependencies=function(){_e("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"typeDependencies")||(r.typeDependencies=function(){_e("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registeredPointers")||(r.registeredPointers=function(){_e("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"registerType")||(r.registerType=function(){_e("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"whenDependentTypesAreResolved")||(r.whenDependentTypesAreResolved=function(){_e("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"embind_charCodes")||(r.embind_charCodes=function(){_e("'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(){_e("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"readLatin1String")||(r.readLatin1String=function(){_e("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getTypeName")||(r.getTypeName=function(){_e("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"heap32VectorToArray")||(r.heap32VectorToArray=function(){_e("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"requireRegisteredType")||(r.requireRegisteredType=function(){_e("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"getShiftFromSize")||(r.getShiftFromSize=function(){_e("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"integerReadValueFromPointer")||(r.integerReadValueFromPointer=function(){_e("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"enumReadValueFromPointer")||(r.enumReadValueFromPointer=function(){_e("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"floatReadValueFromPointer")||(r.floatReadValueFromPointer=function(){_e("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"simpleReadValueFromPointer")||(r.simpleReadValueFromPointer=function(){_e("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"runDestructors")||(r.runDestructors=function(){_e("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"new_")||(r.new_=function(){_e("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"craftInvokerFunction")||(r.craftInvokerFunction=function(){_e("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"embind__requireFunction")||(r.embind__requireFunction=function(){_e("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"tupleRegistrations")||(r.tupleRegistrations=function(){_e("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"structRegistrations")||(r.structRegistrations=function(){_e("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"genericPointerToWireType")||(r.genericPointerToWireType=function(){_e("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"constNoSmartPtrRawPointerToWireType")||(r.constNoSmartPtrRawPointerToWireType=function(){_e("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"nonConstNoSmartPtrRawPointerToWireType")||(r.nonConstNoSmartPtrRawPointerToWireType=function(){_e("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"init_RegisteredPointer")||(r.init_RegisteredPointer=function(){_e("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"RegisteredPointer")||(r.RegisteredPointer=function(){_e("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"RegisteredPointer_getPointee")||(r.RegisteredPointer_getPointee=function(){_e("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"RegisteredPointer_destructor")||(r.RegisteredPointer_destructor=function(){_e("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"RegisteredPointer_deleteObject")||(r.RegisteredPointer_deleteObject=function(){_e("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"RegisteredPointer_fromWireType")||(r.RegisteredPointer_fromWireType=function(){_e("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"runDestructor")||(r.runDestructor=function(){_e("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"releaseClassHandle")||(r.releaseClassHandle=function(){_e("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"finalizationGroup")||(r.finalizationGroup=function(){_e("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"detachFinalizer_deps")||(r.detachFinalizer_deps=function(){_e("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"detachFinalizer")||(r.detachFinalizer=function(){_e("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"attachFinalizer")||(r.attachFinalizer=function(){_e("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"makeClassHandle")||(r.makeClassHandle=function(){_e("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"init_ClassHandle")||(r.init_ClassHandle=function(){_e("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ClassHandle")||(r.ClassHandle=function(){_e("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ClassHandle_isAliasOf")||(r.ClassHandle_isAliasOf=function(){_e("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"throwInstanceAlreadyDeleted")||(r.throwInstanceAlreadyDeleted=function(){_e("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ClassHandle_clone")||(r.ClassHandle_clone=function(){_e("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ClassHandle_delete")||(r.ClassHandle_delete=function(){_e("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"deletionQueue")||(r.deletionQueue=function(){_e("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ClassHandle_isDeleted")||(r.ClassHandle_isDeleted=function(){_e("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"ClassHandle_deleteLater")||(r.ClassHandle_deleteLater=function(){_e("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"flushPendingDeletes")||(r.flushPendingDeletes=function(){_e("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"delayFunction")||(r.delayFunction=function(){_e("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"setDelayFunction")||(r.setDelayFunction=function(){_e("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"RegisteredClass")||(r.RegisteredClass=function(){_e("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"shallowCopyInternalPointer")||(r.shallowCopyInternalPointer=function(){_e("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"downcastPointer")||(r.downcastPointer=function(){_e("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"upcastPointer")||(r.upcastPointer=function(){_e("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"validateThis")||(r.validateThis=function(){_e("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"char_0")||(r.char_0=function(){_e("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"char_9")||(r.char_9=function(){_e("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"makeLegalFunctionName")||(r.makeLegalFunctionName=function(){_e("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"emscriptenWebGLGetIndexed")||(r.emscriptenWebGLGetIndexed=function(){_e("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"warnOnce")||(r.warnOnce=function(){_e("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stackSave")||(r.stackSave=function(){_e("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stackRestore")||(r.stackRestore=function(){_e("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stackAlloc")||(r.stackAlloc=function(){_e("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"AsciiToString")||(r.AsciiToString=function(){_e("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stringToAscii")||(r.stringToAscii=function(){_e("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"UTF16ToString")||(r.UTF16ToString=function(){_e("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stringToUTF16")||(r.stringToUTF16=function(){_e("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"lengthBytesUTF16")||(r.lengthBytesUTF16=function(){_e("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"UTF32ToString")||(r.UTF32ToString=function(){_e("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"stringToUTF32")||(r.stringToUTF32=function(){_e("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"lengthBytesUTF32")||(r.lengthBytesUTF32=function(){_e("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"allocateUTF8")||(r.allocateUTF8=function(){_e("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(r,"allocateUTF8OnStack")||(r.allocateUTF8OnStack=function(){_e("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),r.writeStackCookie=ie,r.checkStackCookie=ae,Object.getOwnPropertyDescriptor(r,"ALLOC_NORMAL")||Object.defineProperty(r,"ALLOC_NORMAL",{configurable:!0,get(){_e("'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(){_e("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),pe=function e(){bn||Dn(),bn||(pe=e)},r.run=Dn,r.preInit)for("function"==typeof r.preInit&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return Dn(),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(){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(o.ready,"_main",{configurable:!0,set:function(){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(o.ready,"_emscripten_stack_get_end")||(Object.defineProperty(o.ready,"_emscripten_stack_get_end",{configurable:!0,get:function(){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(o.ready,"_emscripten_stack_get_end",{configurable:!0,set:function(){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(o.ready,"_emscripten_stack_get_free")||(Object.defineProperty(o.ready,"_emscripten_stack_get_free",{configurable:!0,get:function(){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(o.ready,"_emscripten_stack_get_free",{configurable:!0,set:function(){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(o.ready,"_emscripten_stack_init")||(Object.defineProperty(o.ready,"_emscripten_stack_init",{configurable:!0,get:function(){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(o.ready,"_emscripten_stack_init",{configurable:!0,set:function(){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(o.ready,"_stackSave")||(Object.defineProperty(o.ready,"_stackSave",{configurable:!0,get:function(){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(o.ready,"_stackSave",{configurable:!0,set:function(){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(o.ready,"_stackRestore")||(Object.defineProperty(o.ready,"_stackRestore",{configurable:!0,get:function(){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(o.ready,"_stackRestore",{configurable:!0,set:function(){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(o.ready,"_stackAlloc")||(Object.defineProperty(o.ready,"_stackAlloc",{configurable:!0,get:function(){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(o.ready,"_stackAlloc",{configurable:!0,set:function(){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(o.ready,"___wasm_call_ctors")||(Object.defineProperty(o.ready,"___wasm_call_ctors",{configurable:!0,get:function(){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(o.ready,"___wasm_call_ctors",{configurable:!0,set:function(){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(o.ready,"_fflush")||(Object.defineProperty(o.ready,"_fflush",{configurable:!0,get:function(){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(o.ready,"_fflush",{configurable:!0,set:function(){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(o.ready,"___errno_location")||(Object.defineProperty(o.ready,"___errno_location",{configurable:!0,get:function(){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(o.ready,"___errno_location",{configurable:!0,set:function(){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(o.ready,"_malloc")||(Object.defineProperty(o.ready,"_malloc",{configurable:!0,get:function(){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(o.ready,"_malloc",{configurable:!0,set:function(){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(o.ready,"_free")||(Object.defineProperty(o.ready,"_free",{configurable:!0,get:function(){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(o.ready,"_free",{configurable:!0,set:function(){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(o.ready,"_setThrew")||(Object.defineProperty(o.ready,"_setThrew",{configurable:!0,get:function(){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(o.ready,"_setThrew",{configurable:!0,set:function(){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(o.ready,"___cxa_is_pointer_type")||(Object.defineProperty(o.ready,"___cxa_is_pointer_type",{configurable:!0,get:function(){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(o.ready,"___cxa_is_pointer_type",{configurable:!0,set:function(){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(o.ready,"___cxa_can_catch")||(Object.defineProperty(o.ready,"___cxa_can_catch",{configurable:!0,get:function(){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(o.ready,"___cxa_can_catch",{configurable:!0,set:function(){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(o.ready,"_saveSetjmp")||(Object.defineProperty(o.ready,"_saveSetjmp",{configurable:!0,get:function(){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(o.ready,"_saveSetjmp",{configurable:!0,set:function(){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(o.ready,"_memalign")||(Object.defineProperty(o.ready,"_memalign",{configurable:!0,get:function(){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(o.ready,"_memalign",{configurable:!0,set:function(){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(o.ready,"_emscripten_main_thread_process_queued_calls")||(Object.defineProperty(o.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,get:function(){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(o.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,set:function(){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(o.ready,"_emscripten_webgl_make_context_current")||(Object.defineProperty(o.ready,"_emscripten_webgl_make_context_current",{configurable:!0,get:function(){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(o.ready,"_emscripten_webgl_make_context_current",{configurable:!0,set:function(){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(o.ready,"_emscripten_webgl_get_current_context")||(Object.defineProperty(o.ready,"_emscripten_webgl_get_current_context",{configurable:!0,get:function(){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(o.ready,"_emscripten_webgl_get_current_context",{configurable:!0,set:function(){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(o.ready,"__get_tzname")||(Object.defineProperty(o.ready,"__get_tzname",{configurable:!0,get:function(){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(o.ready,"__get_tzname",{configurable:!0,set:function(){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(o.ready,"__get_daylight")||(Object.defineProperty(o.ready,"__get_daylight",{configurable:!0,get:function(){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(o.ready,"__get_daylight",{configurable:!0,set:function(){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(o.ready,"__get_timezone")||(Object.defineProperty(o.ready,"__get_timezone",{configurable:!0,get:function(){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(o.ready,"__get_timezone",{configurable:!0,set:function(){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(o.ready,"_emscripten_builtin_malloc")||(Object.defineProperty(o.ready,"_emscripten_builtin_malloc",{configurable:!0,get:function(){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(o.ready,"_emscripten_builtin_malloc",{configurable:!0,set:function(){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(o.ready,"_emscripten_builtin_free")||(Object.defineProperty(o.ready,"_emscripten_builtin_free",{configurable:!0,get:function(){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(o.ready,"_emscripten_builtin_free",{configurable:!0,set:function(){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(o.ready,"_emscripten_builtin_memalign")||(Object.defineProperty(o.ready,"_emscripten_builtin_memalign",{configurable:!0,get:function(){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(o.ready,"_emscripten_builtin_memalign",{configurable:!0,set:function(){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(o.ready,"___getTypeName")||(Object.defineProperty(o.ready,"___getTypeName",{configurable:!0,get:function(){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(o.ready,"___getTypeName",{configurable:!0,set:function(){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(o.ready,"___embind_register_native_and_builtin_types")||(Object.defineProperty(o.ready,"___embind_register_native_and_builtin_types",{configurable:!0,get:function(){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(o.ready,"___embind_register_native_and_builtin_types",{configurable:!0,set:function(){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(o.ready,"onRuntimeInitialized")||(Object.defineProperty(o.ready,"onRuntimeInitialized",{configurable:!0,get:function(){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(o.ready,"onRuntimeInitialized",{configurable:!0,set:function(){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")}}));var i,a={};for(i in o)o.hasOwnProperty(i)&&(a[i]=o[i]);var s=[],c="./this.program",A=function(e,t){throw t},u="object"==typeof window,l="function"==typeof importScripts,d="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,g=!u&&!d&&!l;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 f,h,p,E="";if(!u&&!l)throw new Error("environment detection error");if(l?E=self.location.href:"undefined"!=typeof document&&document.currentScript&&(E=document.currentScript.src),e&&(E=e),E=0!==E.indexOf("blob:")?E.substr(0,E.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?)");f=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},l&&(p=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),h=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 m=o.print||console.log.bind(console),I=o.printErr||console.warn.bind(console);for(i in a)a.hasOwnProperty(i)&&(o[i]=a[i]);function y(e){y.shown||(y.shown={}),y.shown[e]||(y.shown[e]=1,I(e))}a=null,o.arguments&&(s=o.arguments),Object.getOwnPropertyDescriptor(o,"arguments")||Object.defineProperty(o,"arguments",{configurable:!0,get:function(){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)")}}),o.thisProgram&&(c=o.thisProgram),Object.getOwnPropertyDescriptor(o,"thisProgram")||Object.defineProperty(o,"thisProgram",{configurable:!0,get:function(){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)")}}),o.quit&&(A=o.quit),Object.getOwnPropertyDescriptor(o,"quit")||Object.defineProperty(o,"quit",{configurable:!0,get:function(){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===o.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),T(void 0===o.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),T(void 0===o.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),T(void 0===o.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),T(void 0===o.read,"Module.read option was removed (modify read_ in JS)"),T(void 0===o.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),T(void 0===o.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),T(void 0===o.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),T(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(){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(o,"readAsync")||Object.defineProperty(o,"readAsync",{configurable:!0,get:function(){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(o,"readBinary")||Object.defineProperty(o,"readBinary",{configurable:!0,get:function(){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(o,"setWindowTitle")||Object.defineProperty(o,"setWindowTitle",{configurable:!0,get:function(){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(!g,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");var _,w=0,C=function(e){w=e};o.wasmBinary&&(_=o.wasmBinary),Object.getOwnPropertyDescriptor(o,"wasmBinary")||Object.defineProperty(o,"wasmBinary",{configurable:!0,get:function(){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)")}});var b,B=o.noExitRuntime||!0;Object.getOwnPropertyDescriptor(o,"noExitRuntime")||Object.defineProperty(o,"noExitRuntime",{configurable:!0,get:function(){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");var D,O=!1;function T(e,t){e||ye("Assertion failed: "+t)}var v="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function Q(e,t,r){for(var n=t+r,o=t;e[o]&&!(o>=n);)++o;if(o-t>16&&e.subarray&&v)return v.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 c=63&e[t++];if(224==(240&a)?a=(15&a)<<12|s<<6|c:(240!=(248&a)&&y("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|c<<6|63&e[t++]),a<65536)i+=String.fromCharCode(a);else{var A=a-65536;i+=String.fromCharCode(55296|A>>10,56320|1023&A)}}else i+=String.fromCharCode((31&a)<<6|s)}else i+=String.fromCharCode(a)}return i}function P(e,t){return e?Q(k,e,t):""}function M(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&&y("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 R(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,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,x,k,N,U,j,L,H,G,Y="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function X(e,t){T(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=N[e+2*a>>1];if(0==s)break;i+=String.fromCharCode(s)}return i}function W(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;for(var n=t,o=(r-=2)<2*e.length?r/2:e.length,i=0;i<o;++i){var a=e.charCodeAt(i);N[t>>1]=a,t+=2}return N[t>>1]=0,t-n}function V(e){return 2*e.length}function z(e,t){T(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(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;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 Z(e){var t=S(e)+1,r=gn(t);return r&&M(e,x,r,t),r}function J(e,t){T(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),x.set(e,t)}function q(e,t){return e%t>0&&(e+=t-e%t),e}function ee(e){F=e,o.HEAP8=x=new Int8Array(e),o.HEAP16=N=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 te=5242880;o.TOTAL_STACK&&T(te===o.TOTAL_STACK,"the stack size can no longer be determined at runtime");var re,ne=o.INITIAL_MEMORY||16777216;function oe(){var e=pn();T(!(3&e)),L[1+(e>>2)]=34821223,L[2+(e>>2)]=2310721022,j[0]=1668509029}function ie(){if(!O){var e=pn(),t=L[1+(e>>2)],r=L[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!==j[0]&&ye("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(){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(ne>=te,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+ne+"! (TOTAL_STACK="+te+")"),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(!o.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),T(16777216==ne,"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 ae=[],se=[],ce=[],Ae=[],ue=!1,le=!1;function de(){return B||!1}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");var ge=0,fe=null,he=null,pe={};function Ee(e){for(var t=e;;){if(!pe[e])return e;e=t+Math.random()}}function me(e){ge++,o.monitorRunDependencies&&o.monitorRunDependencies(ge),e?(T(!pe[e]),pe[e]=1,null===fe&&"undefined"!=typeof setInterval&&(fe=setInterval((function(){if(O)return clearInterval(fe),void(fe=null);var e=!1;for(var t in pe)e||(e=!0,I("still waiting on run dependencies:")),I("dependency: "+t);e&&I("(end of list)")}),1e4))):I("warning: run dependency added without ID")}function Ie(e){if(ge--,o.monitorRunDependencies&&o.monitorRunDependencies(ge),e?(T(pe[e]),delete pe[e]):I("warning: run dependency removed without ID"),0==ge&&(null!==fe&&(clearInterval(fe),fe=null),he)){var t=he;he=null,t()}}function ye(e){o.onAbort&&o.onAbort(e),I(e+=""),O=!0,D=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 Ne(e)}();e=t;var r=new WebAssembly.RuntimeError(e);throw n(r),r}o.preloadedImages={},o.preloadedAudios={};var _e,we,Ce,be;function Be(e){return e.startsWith("data:application/octet-stream;base64,")}function De(e){return e.startsWith("file://")}function Oe(e,t){return function(){var r=e,n=t;return t||(n=o.asm),T(ue,"native function `"+r+"` called before runtime initialization"),T(!le,"native function `"+r+"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),n[e]||T(n[e],"exported native function `"+r+"` not found"),n[e].apply(null,arguments)}}function Te(e){try{if(e==_e&&_)return new Uint8Array(_);if(p)return p(e);throw"both async and sync fetching of the wasm failed"}catch(e){ye(e)}}Be(_e="selfie_segmentation_solution_wasm_bin.wasm")||(we=_e,_e=o.locateFile?o.locateFile(we,E):E+we);var ve,Qe={460976:function(){let e=!0;if(e){const t=Mr;if("function"!=typeof t)return void("undefined"!=typeof console&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.'));Mr=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 Pe(e,t){if(xe.mainLoop.timingMode=e,xe.mainLoop.timingValue=t,!xe.mainLoop.func)return I("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(xe.mainLoop.running||(xe.mainLoop.running=!0),0==e)xe.mainLoop.scheduler=function(){var e=0|Math.max(0,xe.mainLoop.tickStartTime+t-ve());setTimeout(xe.mainLoop.runner,e)},xe.mainLoop.method="timeout";else if(1==e)xe.mainLoop.scheduler=function(){xe.requestAnimationFrame(xe.mainLoop.runner)},xe.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),l?(void 0===o.setImmediates&&(o.setImmediates=[]),o.setImmediates.push(e),postMessage({target:n})):postMessage(n,"*")}}xe.mainLoop.scheduler=function(){setImmediate(xe.mainLoop.runner)},xe.mainLoop.method="immediate"}return 0}function Me(e){!function(e,t){if(D=e,function(){var e=m,t=I,r=!1;m=I=function(e){r=!0};try{var n=o._fflush;n&&n(0),["stdout","stderr"].forEach((function(e){var t=qe.analyzePath("/dev/"+e);if(t){var n=t.object.rdev,o=ze.ttys[n];o&&o.output&&o.output.length&&(r=!0)}}))}catch(e){}m=e,I=t,r&&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.")}(),de()){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),I(r)}}else ie(),le=!0;vn(e)}(e)}function Re(e,t,r,n,i){T(!xe.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."),xe.mainLoop.func=e,xe.mainLoop.arg=n;var a=xe.mainLoop.currentlyRunningMainloop;function s(){return!(a<xe.mainLoop.currentlyRunningMainloop)||(function(){if(!de())try{Me(D)}catch(e){if(e instanceof On)return;throw e}}(),!1)}if(xe.mainLoop.running=!1,xe.mainLoop.runner=function(){if(!O)if(xe.mainLoop.queue.length>0){var t=Date.now(),r=xe.mainLoop.queue.shift();if(r.func(r.arg),xe.mainLoop.remainingBlockers){var n=xe.mainLoop.remainingBlockers,i=n%1==0?n-1:Math.floor(n);r.counted?xe.mainLoop.remainingBlockers=i:(i+=.5,xe.mainLoop.remainingBlockers=(8*n+i)/9)}if(m('main loop blocker "'+r.name+'" took '+(Date.now()-t)+" ms"),xe.mainLoop.updateStatus(),!s())return;setTimeout(xe.mainLoop.runner,0)}else s()&&(xe.mainLoop.currentFrameNumber=xe.mainLoop.currentFrameNumber+1|0,1==xe.mainLoop.timingMode&&xe.mainLoop.timingValue>1&&xe.mainLoop.currentFrameNumber%xe.mainLoop.timingValue!=0?xe.mainLoop.scheduler():(0==xe.mainLoop.timingMode&&(xe.mainLoop.tickStartTime=ve()),Tr.newRenderingFrameStarted(),void 0!==Tr&&Tr.currentContext&&!Tr.currentContextIsProxied&&!Tr.currentContext.attributes.explicitSwapControl&&Tr.currentContext.GLctx.commit&&Tr.currentContext.GLctx.commit(),"timeout"===xe.mainLoop.method&&o.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!"),xe.mainLoop.method=""),xe.mainLoop.runIter(e),ie(),s()&&("object"==typeof SDL&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),xe.mainLoop.scheduler())))},i||(t&&t>0?Pe(0,1e3/t):Pe(1,1),xe.mainLoop.scheduler()),r)throw"unwind"}function Se(e,t){if(O)I("user callback triggered after application aborted. Ignoring.");else if(t)e();else try{e()}catch(e){if(e instanceof On)return;if("unwind"!==e)throw e&&"object"==typeof e&&e.stack&&I("exception thrown: "+[e,e.stack]),e}}function Fe(e,t){return setTimeout((function(){Se(e)}),t)}ve=d?function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:function(){return performance.now()};var xe={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){xe.mainLoop.scheduler=null,xe.mainLoop.currentlyRunningMainloop++},resume:function(){xe.mainLoop.currentlyRunningMainloop++;var e=xe.mainLoop.timingMode,t=xe.mainLoop.timingValue,r=xe.mainLoop.func;xe.mainLoop.func=null,Re(r,0,!1,xe.mainLoop.arg,!0),Pe(e,t),xe.mainLoop.scheduler()},updateStatus:function(){if(o.setStatus){var e=o.statusMessage||"Please wait...",t=xe.mainLoop.remainingBlockers,r=xe.mainLoop.expectedBlockers;t?t<r?o.setStatus(e+" ("+(r-t)+"/"+r+")"):o.setStatus(e):o.setStatus("")}},runIter:function(e){if(!O){if(o.preMainLoop)if(!1===o.preMainLoop())return;Se(e),o.postMainLoop&&o.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(o.preloadPlugins||(o.preloadPlugins=[]),!xe.initted){xe.initted=!0;try{new Blob,xe.hasBlobConstructor=!0}catch(e){xe.hasBlobConstructor=!1,m("warning: no blob constructor, cannot create blobs with mimetypes")}xe.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:xe.hasBlobConstructor?null:m("warning: no BlobBuilder"),xe.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,o.noImageDecoding||void 0!==xe.URLObject||(m("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(xe.hasBlobConstructor)try{(i=new Blob([e],{type:xe.getMimetype(t)})).size!==e.length&&(i=new Blob([new Uint8Array(e).buffer],{type:xe.getMimetype(t)}))}catch(e){y("Blob constructor present but fails: "+e+"; falling back to blob builder")}if(!i){var a=new xe.BlobBuilder;a.append(new Uint8Array(e).buffer),i=a.getBlob()}var s=xe.URLObject.createObjectURL(i);T("string"==typeof s,"createObjectURL must return a url as a string");var c=new Image;c.onload=function(){T(c.complete,"Image "+t+" could not be decoded");var n=document.createElement("canvas");n.width=c.width,n.height=c.height,n.getContext("2d").drawImage(c,0,0),o.preloadedImages[t]=n,xe.URLObject.revokeObjectURL(s),r&&r(e)},c.onerror=function(e){m("Image "+s+" could not be decoded"),n&&n()},c.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(!xe.hasBlobConstructor)return s();try{var c=new Blob([e],{type:xe.getMimetype(t)})}catch(e){return s()}var A=xe.URLObject.createObjectURL(c);T("string"==typeof A,"createObjectURL must return a url as a string");var u=new Audio;u.addEventListener("canplaythrough",(function(){a(u)}),!1),u.onerror=function(r){i||(m("warning: browser could not fully decode audio "+t+", trying slower base64 approach"),u.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(u))},u.src=A,Fe((function(){a(u)}),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){!xe.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 c in n)s[c]=n[c];void 0!==Tr&&(a=Tr.createContext(e,s))&&(i=Tr.getContext(a).GLctx)}else i=e.getContext("2d");return i?(r&&(t||T(void 0===tn,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),o.ctx=i,t&&Tr.makeContextCurrent(a),o.useWebGL=t,xe.moduleContextCreatedCallbacks.forEach((function(e){e()})),xe.init()),i):null},destroyContext:function(e,t,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(e,t){xe.lockPointer=e,xe.resizeCanvas=t,void 0===xe.lockPointer&&(xe.lockPointer=!0),void 0===xe.resizeCanvas&&(xe.resizeCanvas=!1);var r=o.canvas;function n(){xe.isFullscreen=!1;var e=r.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e?(r.exitFullscreen=xe.exitFullscreen,xe.lockPointer&&r.requestPointerLock(),xe.isFullscreen=!0,xe.resizeCanvas?xe.setFullscreenCanvasSize():xe.updateCanvasDimensions(r)):(e.parentNode.insertBefore(r,e),e.parentNode.removeChild(e),xe.resizeCanvas?xe.setWindowedCanvasSize():xe.updateCanvasDimensions(r)),o.onFullScreen&&o.onFullScreen(xe.isFullscreen),o.onFullscreen&&o.onFullscreen(xe.isFullscreen)}xe.fullscreenHandlersInstalled||(xe.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(){ye("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen:function(){return!!xe.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===xe.nextRAF)xe.nextRAF=t+1e3/60;else for(;t+2>=xe.nextRAF;)xe.nextRAF+=1e3/60;var r=Math.max(xe.nextRAF-t,0);setTimeout(e,r)},requestAnimationFrame:function(e){"function"!=typeof requestAnimationFrame?(0,xe.fakeRequestAnimationFrame)(e):requestAnimationFrame(e)},safeSetTimeout:function(e){return Fe(e)},safeRequestAnimationFrame:function(e){return xe.requestAnimationFrame((function(){Se(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(xe.pointerLock)"mousemove"!=e.type&&"mozMovementX"in e?xe.mouseMovementX=xe.mouseMovementY=0:(xe.mouseMovementX=xe.getMovementX(e),xe.mouseMovementY=xe.getMovementY(e)),"undefined"!=typeof SDL?(xe.mouseX=SDL.mouseX+xe.mouseMovementX,xe.mouseY=SDL.mouseY+xe.mouseMovementY):(xe.mouseX+=xe.mouseMovementX,xe.mouseY+=xe.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(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){var s=e.touch;if(void 0===s)return;var c=s.pageX-(i+t.left),A=s.pageY-(a+t.top),u={x:c*=r/t.width,y:A*=n/t.height};if("touchstart"===e.type)xe.lastTouches[s.identifier]=u,xe.touches[s.identifier]=u;else if("touchend"===e.type||"touchmove"===e.type){var l=xe.touches[s.identifier];l||(l=u),xe.lastTouches[s.identifier]=l,xe.touches[s.identifier]=u}return}var d=e.pageX-(i+t.left),g=e.pageY-(a+t.top);d*=r/t.width,g*=n/t.height,xe.mouseMovementX=d-xe.mouseX,xe.mouseMovementY=g-xe.mouseY,xe.mouseX=d,xe.mouseY=g}},resizeListeners:[],updateResizeListeners:function(){var e=o.canvas;xe.resizeListeners.forEach((function(t){t(e.width,e.height)}))},setCanvasSize:function(e,t,r){var n=o.canvas;xe.updateCanvasDimensions(n,e,t),r||xe.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if("undefined"!=typeof SDL){var e=L[SDL.screen>>2];e|=8388608,j[SDL.screen>>2]=e}xe.updateCanvasDimensions(o.canvas),xe.updateResizeListeners()},setWindowedCanvasSize:function(){if("undefined"!=typeof SDL){var e=L[SDL.screen>>2];e&=-8388609,j[SDL.screen>>2]=e}xe.updateCanvasDimensions(o.canvas),xe.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)}xe.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 ke(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?re.get(r)():re.get(r)(t.arg):r(void 0===t.arg?null:t.arg)}else t(o)}}function Ne(e){return e.replace(/\b_Z[\w\d_]+/g,(function(e){var t,r=(t=e,y("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),t);return e===r?e:r+" ["+e+"]"}))}function Ue(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,x[this.ptr+12|0]=e},this.get_caught=function(){return 0!=x[this.ptr+12|0]},this.set_rethrown=function(e){e=e?1:0,x[this.ptr+13|0]=e},this.get_rethrown=function(){return 0!=x[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,T(e>0),1===e}}function je(e){this.free=function(){dn(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(Bn(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 Ue(this.get_base_ptr())},void 0===e?(this.ptr=gn(8),this.set_adjusted_ptr(0)):this.ptr=e}var Le=[];var He=0;function Ge(e){try{return dn(new Ue(e).ptr)}catch(e){I("exception during cxa_free_exception: "+e)}}function Ye(e){return j[fn()>>2]=e,e}var Xe={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=Xe.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:function(e){var t=Xe.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=Xe.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},extname:function(e){return Xe.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return Xe.normalize(e.join("/"))},join2:function(e,t){return Xe.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(d)try{var t=__require("crypto");return function(){return t.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 Ve={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:qe.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=Xe.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=Ve.resolve(e).substr(1),t=Ve.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 c=[];for(s=a;s<n.length;s++)c.push("..");return(c=c.concat(o.slice(a))).join("/")}},ze={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){ze.ttys[e]={input:[],output:[],ops:t},qe.registerDevice(e,ze.stream_ops)},stream_ops:{open:function(e){var t=ze.ttys[e.node.rdev];if(!t)throw new qe.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 qe.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 qe.ErrnoError(29)}if(void 0===s&&0===i)throw new qe.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 qe.ErrnoError(60);try{for(var i=0;i<n;i++)e.tty.ops.put_char(e.tty,t[r+i])}catch(e){throw new qe.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(d){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=An(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(m(Q(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(m(Q(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(I(Q(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(I(Q(e.output,0)),e.output=[])}}};function $e(e){e=function(e,t){return T(t,"alignment argument is required"),Math.ceil(e/t)*t}(e,65536);var t=Dn(65536,e);return t?(function(e,t){k.fill(0,e,e+t)}(t,e),t):0}var Ke={ops_table:null,mount:function(e){return Ke.createNode(null,"/",16895,0)},createNode:function(e,t,r,n){if(qe.isBlkdev(r)||qe.isFIFO(r))throw new qe.ErrnoError(63);Ke.ops_table||(Ke.ops_table={dir:{node:{getattr:Ke.node_ops.getattr,setattr:Ke.node_ops.setattr,lookup:Ke.node_ops.lookup,mknod:Ke.node_ops.mknod,rename:Ke.node_ops.rename,unlink:Ke.node_ops.unlink,rmdir:Ke.node_ops.rmdir,readdir:Ke.node_ops.readdir,symlink:Ke.node_ops.symlink},stream:{llseek:Ke.stream_ops.llseek}},file:{node:{getattr:Ke.node_ops.getattr,setattr:Ke.node_ops.setattr},stream:{llseek:Ke.stream_ops.llseek,read:Ke.stream_ops.read,write:Ke.stream_ops.write,allocate:Ke.stream_ops.allocate,mmap:Ke.stream_ops.mmap,msync:Ke.stream_ops.msync}},link:{node:{getattr:Ke.node_ops.getattr,setattr:Ke.node_ops.setattr,readlink:Ke.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Ke.node_ops.getattr,setattr:Ke.node_ops.setattr},stream:qe.chrdev_stream_ops}});var o=qe.createNode(e,t,r,n);return qe.isDir(o.mode)?(o.node_ops=Ke.ops_table.dir.node,o.stream_ops=Ke.ops_table.dir.stream,o.contents={}):qe.isFile(o.mode)?(o.node_ops=Ke.ops_table.file.node,o.stream_ops=Ke.ops_table.file.stream,o.usedBytes=0,o.contents=null):qe.isLink(o.mode)?(o.node_ops=Ke.ops_table.link.node,o.stream_ops=Ke.ops_table.link.stream):qe.isChrdev(o.mode)&&(o.node_ops=Ke.ops_table.chrdev.node,o.stream_ops=Ke.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=qe.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,qe.isDir(e.mode)?t.size=4096:qe.isFile(e.mode)?t.size=e.usedBytes:qe.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&&Ke.resizeFileStorage(e,t.size)},lookup:function(e,t){throw qe.genericErrors[44]},mknod:function(e,t,r,n){return Ke.createNode(e,t,r,n)},rename:function(e,t,r){if(qe.isDir(e.mode)){var n;try{n=qe.lookupNode(t,r)}catch(e){}if(n)for(var o in n.contents)throw new qe.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=qe.lookupNode(e,t);for(var n in r.contents)throw new qe.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=Ke.createNode(e,t,41471,0);return n.link=r,n},readlink:function(e){if(!qe.isLink(e.mode))throw new qe.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(T(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(T(!(t instanceof ArrayBuffer)),t.buffer===x.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 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(Ke.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&&qe.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new qe.ErrnoError(28);return n},allocate:function(e,t,r){Ke.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 qe.ErrnoError(28);if(!qe.isFile(e.node.mode))throw new qe.ErrnoError(43);var a,s,c=e.node.contents;if(2&i||c.buffer!==F){if((n>0||n+r<c.length)&&(c=c.subarray?c.subarray(n,n+r):Array.prototype.slice.call(c,n,n+r)),s=!0,!(a=$e(r)))throw new qe.ErrnoError(48);x.set(c,a)}else s=!1,a=c.byteOffset;return{ptr:a,allocated:s}},msync:function(e,t,r,n,o){if(!qe.isFile(e.node.mode))throw new qe.ErrnoError(43);if(2&o)return 0;Ke.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"},Je={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},qe={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=Ve.resolve(qe.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 qe.ErrnoError(32);for(var o=Xe.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),i=qe.root,a="/",s=0;s<o.length;s++){var c=s===o.length-1;if(c&&t.parent)break;if(i=qe.lookupNode(i,o[s]),a=Xe.join2(a,o[s]),qe.isMountpoint(i)&&(!c||c&&t.follow_mount)&&(i=i.mounted.root),!c||t.follow)for(var A=0;qe.isLink(i.mode);){var u=qe.readlink(a);if(a=Ve.resolve(Xe.dirname(a),u),i=qe.lookupPath(a,{recurse_count:t.recurse_count}).node,A++>40)throw new qe.ErrnoError(32)}}return{path:a,node:i}},getPath:function(e){for(var t;;){if(qe.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)%qe.nameTable.length},hashAddNode:function(e){var t=qe.hashName(e.parent.id,e.name);e.name_next=qe.nameTable[t],qe.nameTable[t]=e},hashRemoveNode:function(e){var t=qe.hashName(e.parent.id,e.name);if(qe.nameTable[t]===e)qe.nameTable[t]=e.name_next;else for(var r=qe.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=qe.mayLookup(e);if(r)throw new qe.ErrnoError(r,e);for(var n=qe.hashName(e.id,t),o=qe.nameTable[n];o;o=o.name_next){var i=o.name;if(o.parent.id===e.id&&i===t)return o}return qe.lookup(e,t)},createNode:function(e,t,r,n){T("object"==typeof e);var o=new qe.FSNode(e,t,r,n);return qe.hashAddNode(o),o},destroyNode:function(e){qe.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=qe.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 qe.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=qe.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:function(e,t){try{qe.lookupNode(e,t);return 20}catch(e){}return qe.nodePermissions(e,"wx")},mayDelete:function(e,t,r){var n;try{n=qe.lookupNode(e,t)}catch(e){return e.errno}var o=qe.nodePermissions(e,"wx");if(o)return o;if(r){if(!qe.isDir(n.mode))return 54;if(qe.isRoot(n)||qe.getPath(n)===qe.cwd())return 10}else if(qe.isDir(n.mode))return 31;return 0},mayOpen:function(e,t){return e?qe.isLink(e.mode)?32:qe.isDir(e.mode)&&("r"!==qe.flagsToPermissionString(t)||512&t)?31:qe.nodePermissions(e,qe.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){e=e||0,t=t||qe.MAX_OPEN_FDS;for(var r=e;r<=t;r++)if(!qe.streams[r])return r;throw new qe.ErrnoError(33)},getStream:function(e){return qe.streams[e]},createStream:function(e,t,r){qe.FSStream||(qe.FSStream=function(){},qe.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 qe.FSStream;for(var o in e)n[o]=e[o];e=n;var i=qe.nextfd(t,r);return e.fd=i,qe.streams[i]=e,e},closeStream:function(e){qe.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=qe.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new qe.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){qe.devices[e]={stream_ops:t}},getDevice:function(e){return qe.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),qe.syncFSRequests++,qe.syncFSRequests>1&&I("warning: "+qe.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=qe.getMounts(qe.root.mount),n=0;function o(e){return T(qe.syncFSRequests>0),qe.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&&qe.root)throw new qe.ErrnoError(10);if(!o&&!i){var a=qe.lookupPath(r,{follow_mount:!1});if(r=a.path,n=a.node,qe.isMountpoint(n))throw new qe.ErrnoError(10);if(!qe.isDir(n.mode))throw new qe.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},c=e.mount(s);return c.mount=s,s.root=c,o?qe.root=c:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),c},unmount:function(e){var t=qe.lookupPath(e,{follow_mount:!1});if(!qe.isMountpoint(t.node))throw new qe.ErrnoError(28);var r=t.node,n=r.mounted,o=qe.getMounts(n);Object.keys(qe.nameTable).forEach((function(e){for(var t=qe.nameTable[e];t;){var r=t.name_next;o.includes(t.mount)&&qe.destroyNode(t),t=r}})),r.mounted=null;var i=r.mount.mounts.indexOf(n);T(-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=qe.lookupPath(e,{parent:!0}).node,o=Xe.basename(e);if(!o||"."===o||".."===o)throw new qe.ErrnoError(28);var i=qe.mayCreate(n,o);if(i)throw new qe.ErrnoError(i);if(!n.node_ops.mknod)throw new qe.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,qe.mknod(e,t,0)},mkdir:function(e,t){return t=void 0!==t?t:511,t&=1023,t|=16384,qe.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{qe.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,qe.mknod(e,t,r)},symlink:function(e,t){if(!Ve.resolve(e))throw new qe.ErrnoError(44);var r=qe.lookupPath(t,{parent:!0}).node;if(!r)throw new qe.ErrnoError(44);var n=Xe.basename(t),o=qe.mayCreate(r,n);if(o)throw new qe.ErrnoError(o);if(!r.node_ops.symlink)throw new qe.ErrnoError(63);return r.node_ops.symlink(r,n,e)},rename:function(e,t){var r,n,o=Xe.dirname(e),i=Xe.dirname(t),a=Xe.basename(e),s=Xe.basename(t);if(r=qe.lookupPath(e,{parent:!0}).node,n=qe.lookupPath(t,{parent:!0}).node,!r||!n)throw new qe.ErrnoError(44);if(r.mount!==n.mount)throw new qe.ErrnoError(75);var c,A=qe.lookupNode(r,a),u=Ve.relative(e,i);if("."!==u.charAt(0))throw new qe.ErrnoError(28);if("."!==(u=Ve.relative(t,o)).charAt(0))throw new qe.ErrnoError(55);try{c=qe.lookupNode(n,s)}catch(e){}if(A!==c){var l=qe.isDir(A.mode),d=qe.mayDelete(r,a,l);if(d)throw new qe.ErrnoError(d);if(d=c?qe.mayDelete(n,s,l):qe.mayCreate(n,s))throw new qe.ErrnoError(d);if(!r.node_ops.rename)throw new qe.ErrnoError(63);if(qe.isMountpoint(A)||c&&qe.isMountpoint(c))throw new qe.ErrnoError(10);if(n!==r&&(d=qe.nodePermissions(r,"w")))throw new qe.ErrnoError(d);try{qe.trackingDelegate.willMovePath&&qe.trackingDelegate.willMovePath(e,t)}catch(r){I("FS.trackingDelegate['willMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}qe.hashRemoveNode(A);try{r.node_ops.rename(A,n,s)}catch(e){throw e}finally{qe.hashAddNode(A)}try{qe.trackingDelegate.onMovePath&&qe.trackingDelegate.onMovePath(e,t)}catch(r){I("FS.trackingDelegate['onMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}}},rmdir:function(e){var t=qe.lookupPath(e,{parent:!0}).node,r=Xe.basename(e),n=qe.lookupNode(t,r),o=qe.mayDelete(t,r,!0);if(o)throw new qe.ErrnoError(o);if(!t.node_ops.rmdir)throw new qe.ErrnoError(63);if(qe.isMountpoint(n))throw new qe.ErrnoError(10);try{qe.trackingDelegate.willDeletePath&&qe.trackingDelegate.willDeletePath(e)}catch(t){I("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.rmdir(t,r),qe.destroyNode(n);try{qe.trackingDelegate.onDeletePath&&qe.trackingDelegate.onDeletePath(e)}catch(t){I("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readdir:function(e){var t=qe.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new qe.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(e){var t=qe.lookupPath(e,{parent:!0}).node,r=Xe.basename(e),n=qe.lookupNode(t,r),o=qe.mayDelete(t,r,!1);if(o)throw new qe.ErrnoError(o);if(!t.node_ops.unlink)throw new qe.ErrnoError(63);if(qe.isMountpoint(n))throw new qe.ErrnoError(10);try{qe.trackingDelegate.willDeletePath&&qe.trackingDelegate.willDeletePath(e)}catch(t){I("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.unlink(t,r),qe.destroyNode(n);try{qe.trackingDelegate.onDeletePath&&qe.trackingDelegate.onDeletePath(e)}catch(t){I("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readlink:function(e){var t=qe.lookupPath(e).node;if(!t)throw new qe.ErrnoError(44);if(!t.node_ops.readlink)throw new qe.ErrnoError(28);return Ve.resolve(qe.getPath(t.parent),t.node_ops.readlink(t))},stat:function(e,t){var r=qe.lookupPath(e,{follow:!t}).node;if(!r)throw new qe.ErrnoError(44);if(!r.node_ops.getattr)throw new qe.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(e){return qe.stat(e,!0)},chmod:function(e,t,r){var n;"string"==typeof e?n=qe.lookupPath(e,{follow:!r}).node:n=e;if(!n.node_ops.setattr)throw new qe.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:function(e,t){qe.chmod(e,t,!0)},fchmod:function(e,t){var r=qe.getStream(e);if(!r)throw new qe.ErrnoError(8);qe.chmod(r.node,t)},chown:function(e,t,r,n){var o;"string"==typeof e?o=qe.lookupPath(e,{follow:!n}).node:o=e;if(!o.node_ops.setattr)throw new qe.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:function(e,t,r){qe.chown(e,t,r,!0)},fchown:function(e,t,r){var n=qe.getStream(e);if(!n)throw new qe.ErrnoError(8);qe.chown(n.node,t,r)},truncate:function(e,t){if(t<0)throw new qe.ErrnoError(28);var r;"string"==typeof e?r=qe.lookupPath(e,{follow:!0}).node:r=e;if(!r.node_ops.setattr)throw new qe.ErrnoError(63);if(qe.isDir(r.mode))throw new qe.ErrnoError(31);if(!qe.isFile(r.mode))throw new qe.ErrnoError(28);var n=qe.nodePermissions(r,"w");if(n)throw new qe.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:function(e,t){var r=qe.getStream(e);if(!r)throw new qe.ErrnoError(8);if(!(2097155&r.flags))throw new qe.ErrnoError(28);qe.truncate(r.node,t)},utime:function(e,t,r){var n=qe.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 qe.ErrnoError(44);var a;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?qe.modeStringToFlags(t):t)?4095&r|32768:0,"object"==typeof e)a=e;else{e=Xe.normalize(e);try{a=qe.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var s=!1;if(64&t)if(a){if(128&t)throw new qe.ErrnoError(20)}else a=qe.mknod(e,r,0),s=!0;if(!a)throw new qe.ErrnoError(44);if(qe.isChrdev(a.mode)&&(t&=-513),65536&t&&!qe.isDir(a.mode))throw new qe.ErrnoError(54);if(!s){var c=qe.mayOpen(a,t);if(c)throw new qe.ErrnoError(c)}512&t&&qe.truncate(a,0),t&=-131713;var A=qe.createStream({node:a,path:qe.getPath(a),flags:t,seekable:!0,position:0,stream_ops:a.stream_ops,ungotten:[],error:!1},n,i);A.stream_ops.open&&A.stream_ops.open(A),!o.logReadFiles||1&t||(qe.readFiles||(qe.readFiles={}),e in qe.readFiles||(qe.readFiles[e]=1,I("FS.trackingDelegate error on read file: "+e)));try{if(qe.trackingDelegate.onOpenFile){var u=0;1!=(2097155&t)&&(u|=qe.tracking.openFlags.READ),2097155&t&&(u|=qe.tracking.openFlags.WRITE),qe.trackingDelegate.onOpenFile(e,u)}}catch(t){I("FS.trackingDelegate['onOpenFile']('"+e+"', flags) threw an exception: "+t.message)}return A},close:function(e){if(qe.isClosed(e))throw new qe.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{qe.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,t,r){if(qe.isClosed(e))throw new qe.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new qe.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new qe.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 qe.ErrnoError(28);if(qe.isClosed(e))throw new qe.ErrnoError(8);if(1==(2097155&e.flags))throw new qe.ErrnoError(8);if(qe.isDir(e.node.mode))throw new qe.ErrnoError(31);if(!e.stream_ops.read)throw new qe.ErrnoError(28);var i=void 0!==o;if(i){if(!e.seekable)throw new qe.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 qe.ErrnoError(28);if(qe.isClosed(e))throw new qe.ErrnoError(8);if(!(2097155&e.flags))throw new qe.ErrnoError(8);if(qe.isDir(e.node.mode))throw new qe.ErrnoError(31);if(!e.stream_ops.write)throw new qe.ErrnoError(28);e.seekable&&1024&e.flags&&qe.llseek(e,0,2);var a=void 0!==o;if(a){if(!e.seekable)throw new qe.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&&qe.trackingDelegate.onWriteToFile&&qe.trackingDelegate.onWriteToFile(e.path)}catch(t){I("FS.trackingDelegate['onWriteToFile']('"+e.path+"') threw an exception: "+t.message)}return s},allocate:function(e,t,r){if(qe.isClosed(e))throw new qe.ErrnoError(8);if(t<0||r<=0)throw new qe.ErrnoError(28);if(!(2097155&e.flags))throw new qe.ErrnoError(8);if(!qe.isFile(e.node.mode)&&!qe.isDir(e.node.mode))throw new qe.ErrnoError(43);if(!e.stream_ops.allocate)throw new qe.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 qe.ErrnoError(2);if(1==(2097155&e.flags))throw new qe.ErrnoError(2);if(!e.stream_ops.mmap)throw new qe.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 qe.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=qe.open(e,t.flags),o=qe.stat(e).size,i=new Uint8Array(o);return qe.read(n,i,0,o,0),"utf8"===t.encoding?r=Q(i,0):"binary"===t.encoding&&(r=i),qe.close(n),r},writeFile:function(e,t,r){(r=r||{}).flags=r.flags||577;var n=qe.open(e,r.flags,r.mode);if("string"==typeof t){var o=new Uint8Array(S(t)+1),i=M(t,o,0,o.length);qe.write(n,o,0,i,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");qe.write(n,t,0,t.byteLength,void 0,r.canOwn)}qe.close(n)},cwd:function(){return qe.currentPath},chdir:function(e){var t=qe.lookupPath(e,{follow:!0});if(null===t.node)throw new qe.ErrnoError(44);if(!qe.isDir(t.node.mode))throw new qe.ErrnoError(54);var r=qe.nodePermissions(t.node,"x");if(r)throw new qe.ErrnoError(r);qe.currentPath=t.path},createDefaultDirectories:function(){qe.mkdir("/tmp"),qe.mkdir("/home"),qe.mkdir("/home/web_user")},createDefaultDevices:function(){qe.mkdir("/dev"),qe.registerDevice(qe.makedev(1,3),{read:function(){return 0},write:function(e,t,r,n,o){return n}}),qe.mkdev("/dev/null",qe.makedev(1,3)),ze.register(qe.makedev(5,0),ze.default_tty_ops),ze.register(qe.makedev(6,0),ze.default_tty1_ops),qe.mkdev("/dev/tty",qe.makedev(5,0)),qe.mkdev("/dev/tty1",qe.makedev(6,0));var e=We();qe.createDevice("/dev","random",e),qe.createDevice("/dev","urandom",e),qe.mkdir("/dev/shm"),qe.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){qe.mkdir("/proc");var e=qe.mkdir("/proc/self");qe.mkdir("/proc/self/fd"),qe.mount({mount:function(){var t=qe.createNode(e,"fd",16895,73);return t.node_ops={lookup:function(e,t){var r=+t,n=qe.getStream(r);if(!n)throw new qe.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?qe.createDevice("/dev","stdin",o.stdin):qe.symlink("/dev/tty","/dev/stdin"),o.stdout?qe.createDevice("/dev","stdout",null,o.stdout):qe.symlink("/dev/tty","/dev/stdout"),o.stderr?qe.createDevice("/dev","stderr",null,o.stderr):qe.symlink("/dev/tty1","/dev/stderr");var e=qe.open("/dev/stdin",0),t=qe.open("/dev/stdout",1),r=qe.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===r.fd,"invalid handle for stderr ("+r.fd+")")},ensureErrnoError:function(){qe.ErrnoError||(qe.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){for(var t in this.errno=e,Je)if(Je[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=Ne(this.stack))},qe.ErrnoError.prototype=new Error,qe.ErrnoError.prototype.constructor=qe.ErrnoError,[44].forEach((function(e){qe.genericErrors[e]=new qe.ErrnoError(e),qe.genericErrors[e].stack="<generic error, no stack>"})))},staticInit:function(){qe.ensureErrnoError(),qe.nameTable=new Array(4096),qe.mount(Ke,{},"/"),qe.createDefaultDirectories(),qe.createDefaultDevices(),qe.createSpecialDirectories(),qe.filesystems={MEMFS:Ke}},init:function(e,t,r){T(!qe.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)"),qe.init.initialized=!0,qe.ensureErrnoError(),o.stdin=e||o.stdin,o.stdout=t||o.stdout,o.stderr=r||o.stderr,qe.createStandardStreams()},quit:function(){qe.init.initialized=!1;var e=o._fflush;e&&e(0);for(var t=0;t<qe.streams.length;t++){var r=qe.streams[t];r&&qe.close(r)}},getMode:function(e,t){var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:function(e,t){var r=qe.analyzePath(e,t);return r.exists?r.object:null},analyzePath:function(e,t){try{e=(n=qe.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=qe.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=Xe.basename(e),n=qe.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:qe.getPath(e);for(var o=t.split("/").reverse();o.length;){var i=o.pop();if(i){var a=Xe.join2(e,i);try{qe.mkdir(a)}catch(e){}e=a}}return a},createFile:function(e,t,r,n,o){var i=Xe.join2("string"==typeof e?e:qe.getPath(e),t),a=qe.getMode(n,o);return qe.create(i,a)},createDataFile:function(e,t,r,n,o,i){var a=t?Xe.join2("string"==typeof e?e:qe.getPath(e),t):e,s=qe.getMode(n,o),c=qe.create(a,s);if(r){if("string"==typeof r){for(var A=new Array(r.length),u=0,l=r.length;u<l;++u)A[u]=r.charCodeAt(u);r=A}qe.chmod(c,146|s);var d=qe.open(c,577);qe.write(d,r,0,r.length,0,i),qe.close(d),qe.chmod(c,s)}return c},createDevice:function(e,t,r,n){var o=Xe.join2("string"==typeof e?e:qe.getPath(e),t),i=qe.getMode(!!r,!!n);qe.createDevice.major||(qe.createDevice.major=64);var a=qe.makedev(qe.createDevice.major++,0);return qe.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 c;try{c=r()}catch(e){throw new qe.ErrnoError(29)}if(void 0===c&&0===a)throw new qe.ErrnoError(6);if(null==c)break;a++,t[n+s]=c}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 qe.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),a}}),qe.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(!f)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=An(f(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new qe.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||[]):An(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(!l)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 c=qe.createFile(e,t,s,n,o);s.contents?c.contents=s.contents:s.url&&(c.contents=null,c.url=s.url),Object.defineProperties(c,{usedBytes:{get:function(){return this.contents.length}}});var A={};return Object.keys(c.stream_ops).forEach((function(e){var t=c.stream_ops[e];A[e]=function(){return qe.forceLoadFile(c),t.apply(null,arguments)}})),A.read=function(e,t,r,n,o){qe.forceLoadFile(c);var i=e.node.contents;if(o>=i.length)return 0;var a=Math.min(i.length-o,n);if(T(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},c.stream_ops=A,c},createPreloadedFile:function(e,t,r,n,i,a,s,c,A,u){xe.init();var l=t?Ve.resolve(Xe.join2(e,t)):e,d=Ee("cp "+l);function g(r){function g(r){u&&u(),c||qe.createDataFile(e,t,r,n,i,A),a&&a(),Ie(d)}var f=!1;o.preloadPlugins.forEach((function(e){f||e.canHandle(l)&&(e.handle(r,l,g,(function(){s&&s(),Ie(d)})),f=!0)})),f||g(r)}me(d),"string"==typeof r?function(e,t,r,n){var o=n?"":Ee("al "+e);h(e,(function(r){T(r,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(r)),o&&Ie(o)}),(function(t){if(!r)throw'Loading data file "'+e+'" failed.';r()})),o&&me(o)}(r,(function(e){g(e)}),s):g(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=qe.indexedDB();try{var o=n.open(qe.DB_NAME(),qe.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=function(){m("creating db"),o.result.createObjectStore(qe.DB_STORE_NAME)},o.onsuccess=function(){var n=o.result.transaction([qe.DB_STORE_NAME],"readwrite"),i=n.objectStore(qe.DB_STORE_NAME),a=0,s=0,c=e.length;function A(){0==s?t():r()}e.forEach((function(e){var t=i.put(qe.analyzePath(e).object.contents,e);t.onsuccess=function(){++a+s==c&&A()},t.onerror=function(){s++,a+s==c&&A()}})),n.onerror=r},o.onerror=r},loadFilesFromDB:function(e,t,r){t=t||function(){},r=r||function(){};var n=qe.indexedDB();try{var o=n.open(qe.DB_NAME(),qe.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=r,o.onsuccess=function(){var n=o.result;try{var i=n.transaction([qe.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}var a=i.objectStore(qe.DB_STORE_NAME),s=0,c=0,A=e.length;function u(){0==c?t():r()}e.forEach((function(e){var t=a.get(e);t.onsuccess=function(){qe.analyzePath(e).exists&&qe.unlink(e),qe.createDataFile(Xe.dirname(e),Xe.basename(e),t.result,!0,!0,!0),++s+c==A&&u()},t.onerror=function(){c++,s+c==A&&u()}})),i.onerror=r},o.onerror=r},absolutePath:function(){ye("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder:function(){ye("FS.createFolder has been removed; use FS.mkdir instead")},createLink:function(){ye("FS.createLink has been removed; use FS.symlink instead")},joinPath:function(){ye("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc:function(){ye("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath:function(){ye("FS.standardizePath has been removed; use PATH.normalize instead")}},et={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(e,t,r){if("/"===t[0])return t;var n;if(-100===e)n=qe.cwd();else{var o=qe.getStream(e);if(!o)throw new qe.ErrnoError(8);n=o.path}if(0==t.length){if(!r)throw new qe.ErrnoError(44);return n}return Xe.join2(n,t)},doStat:function(e,t,r){try{var n=e(t)}catch(e){if(e&&e.node&&Xe.normalize(t)!==Xe.normalize(qe.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,(Ce=n.size,+Math.abs(Ce)>=1?Ce>0?(0|Math.min(+Math.floor(Ce/4294967296),4294967295))>>>0:~~+Math.ceil((Ce-+(~~Ce>>>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,(Ce=n.ino,+Math.abs(Ce)>=1?Ce>0?(0|Math.min(+Math.floor(Ce/4294967296),4294967295))>>>0:~~+Math.ceil((Ce-+(~~Ce>>>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);qe.msync(t,i,o,r,n)},doMkdir:function(e,t){return"/"===(e=Xe.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),qe.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 qe.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return-28;var n=qe.readlink(e),o=Math.min(r,S(n)),i=x[t+o];return R(n,t,r+1),x[t+o]=i,o},doAccess:function(e,t){if(-8&t)return-28;var r;if(!(r=qe.lookupPath(e,{follow:!0}).node))return-44;var n="";return 4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&qe.nodePermissions(r,n)?-2:0},doDup:function(e,t,r){var n=qe.getStream(r);return n&&qe.close(n),qe.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],c=qe.read(e,x,a,s,n);if(c<0)return-1;if(o+=c,c<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],c=qe.write(e,x,a,s,n);if(c<0)return-1;o+=c}return o},varargs:void 0,get:function(){return T(null!=et.varargs),et.varargs+=4,j[et.varargs-4>>2]},getStr:function(e){return P(e)},getStreamFromFD:function(e){var t=qe.getStream(e);if(!t)throw new qe.ErrnoError(8);return t},get64:function(e,t){return T(e>=0?0===t:-1===t),e}};function tt(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}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)}var nt=[],ot=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function it(){for(var e=0,t=5;t<ot.length;++t)void 0!==ot[t]&&++e;return e}function at(){for(var 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:var t=nt.length?nt.pop():ot.length;return ot[t]={refcount:1,value:e},t}}function ct(e,t){var r=rt(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 At=void 0;var ut=void 0;function lt(e){for(var t="",r=e;k[r];)t+=ut[k[r++]];return t}function dt(){return Object.keys(mt).length}function gt(){var e=[];for(var t in mt)mt.hasOwnProperty(t)&&e.push(mt[t]);return e}var ft=[];function ht(){for(;ft.length;){var e=ft.pop();e.$$.deleteScheduled=!1,e.delete()}}var pt=void 0;function Et(e){pt=e,ft.length&&pt&&pt(ht)}var mt={},It=void 0;function yt(e){throw new It(e)}function _t(e,t){for(void 0===t&&yt("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function wt(e){return e||yt("Cannot use deleted val. handle = "+e),ot[e].value}var Ct={};function bt(e){var t=hn(e),r=lt(t);return dn(t),r}function Bt(e,t){var r=Ct[e];return void 0===r&&yt(t+" has unknown type "+bt(e)),r}function Dt(e){}var Ot=!1;function Tt(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 vt(e){return"undefined"==typeof FinalizationGroup?(vt=function(e){return e},e):(Ot=new FinalizationGroup((function(e){for(var t=e.next();!t.done;t=e.next()){var r=t.value;r.ptr?Tt(r):console.warn("object already deleted: "+r.ptr)}})),Dt=function(e){Ot.unregister(e.$$)},(vt=function(e){return Ot.register(e,e.$$,e.$$),e})(e))}var Qt={};function Pt(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function Mt(e){return this.fromWireType(L[e>>2])}var Rt={},St={},Ft=void 0;function xt(e){throw new Ft(e)}function kt(e,t,r){function n(t){var n=r(t);n.length!==e.length&&xt("Mismatched type converter count");for(var o=0;o<e.length;++o)Ut(e[o],n[o])}e.forEach((function(e){St[e]=t}));var o=new Array(t.length),i=[],a=0;t.forEach((function(e,t){Ct.hasOwnProperty(e)?o[t]=Ct[e]:(i.push(e),Rt.hasOwnProperty(e)||(Rt[e]=[]),Rt[e].push((function(){o[t]=Ct[e],++a===i.length&&n(o)})))})),0===i.length&&n(o)}function Nt(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");var n=t.name;if(e||yt('type "'+n+'" must have a positive integer typeid pointer'),Ct.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;yt("Cannot register type '"+n+"' twice")}if(Ct[e]=t,delete St[e],Rt.hasOwnProperty(e)){var o=Rt[e];delete Rt[e],o.forEach((function(e){e()}))}}function jt(e){if(!(this instanceof Wt))return!1;if(!(e instanceof Wt))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 Lt(e){yt(e.$$.ptrType.registeredClass.name+" instance already deleted")}function Ht(){if(this.$$.ptr||Lt(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e,t=vt(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 Gt(){this.$$.ptr||Lt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&yt("Object already scheduled for deletion"),Dt(this),Tt(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&&yt("Object already scheduled for deletion"),ft.push(this),1===ft.length&&pt&&pt(ht),this.$$.deleteScheduled=!0,this}function Wt(){}var Vt={};function zt(e,t,r){if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||yt("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,r){o.hasOwnProperty(e)?((void 0===r||void 0!==o[e].overloadTable&&void 0!==o[e].overloadTable[r])&&yt("Cannot register public name '"+e+"' twice"),zt(o,e,e),o.hasOwnProperty(r)&&yt("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 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 Zt(e,t,r){for(;t!==r;)t.upcast||yt("Expected null or instance of "+r.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function Jt(e,t){if(null===t)return this.isReference&&yt("null is not a valid "+this.name),0;t.$$||yt('Cannot pass "'+mr(t)+'" as a '+this.name),t.$$.ptr||yt("Cannot pass deleted object as a pointer of type "+this.name);var r=t.$$.ptrType.registeredClass;return Zt(t.$$.ptr,r,this.registeredClass)}function qt(e,t){var r;if(null===t)return this.isReference&&yt("null is not a valid "+this.name),this.isSmartPointer?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t.$$||yt('Cannot pass "'+mr(t)+'" as a '+this.name),t.$$.ptr||yt("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&yt("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=Zt(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&yt("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:yt("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,st((function(){o.delete()}))),null!==e&&e.push(this.rawDestructor,r)}break;default:yt("Unsupporting sharing policy")}return r}function er(e,t){if(null===t)return this.isReference&&yt("null is not a valid "+this.name),0;t.$$||yt('Cannot pass "'+mr(t)+'" as a '+this.name),t.$$.ptr||yt("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&yt("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var r=t.$$.ptrType.registeredClass;return Zt(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;var n=or(e,t,r.baseClass);return null===n?null:r.downcast(n)}function ir(e,t){return t.ptrType&&t.ptr||xt("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!==!!t.smartPtr&&xt("Both smartPtrType and smartPtr must be specified"),t.count={value:1},vt(Object.create(e,{$$:{value:t}}))}function ar(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var r=function(e,t){return t=_t(e,t),mt[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?ir(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):ir(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var i,a=this.registeredClass.getActualType(t),s=Vt[a];if(!s)return o.call(this);i=this.isConst?s.constPointerType:s.pointerType;var c=or(t,this.registeredClass,i.registeredClass);return null===c?o.call(this):this.isSmartPointer?ir(i.registeredClass.instancePrototype,{ptrType:i,ptr:c,smartPtrType:this,smartPtr:e}):ir(i.registeredClass.instancePrototype,{ptrType:i,ptr:c})}function sr(e,t,r,n,o,i,a,s,c,A,u){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=c,this.rawShare=A,this.rawDestructor=u,o||void 0!==t.baseClass?this.toWireType=qt:n?(this.toWireType=Jt,this.destructorFunction=null):(this.toWireType=er,this.destructorFunction=null)}function cr(e,t,r){o.hasOwnProperty(e)||xt("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 Ar(e,t,r){return e.includes("j")?function(e,t,r){T("dynCall_"+e in o,"bad function pointer type - no table for sig '"+e+"'"),r&&r.length?T(r.length===e.substring(1).replace(/j/g,"--").length):T(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):(T(re.get(t),"missing table entry in dynCall: "+t),re.get(t).apply(null,r))}function ur(e,t){var r=(e=lt(e)).includes("j")?function(e,t){T(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 Ar(e,t,r)}}(e,t):re.get(t);return"function"!=typeof r&&yt("unknown function pointer with signature "+e+": "+t),r}var lr=void 0;function dr(e,t){var r=[],n={};throw t.forEach((function e(t){n[t]||Ct[t]||(St[t]?St[t].forEach(e):(r.push(t),n[t]=!0))})),new lr(e+": "+r.map(bt).join([", "]))}function gr(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var r=rt(e.name||"unknownFunctionName",(function(){}));r.prototype=e.prototype;var n=new r,o=e.apply(n,t);return o instanceof Object?o:n}function fr(e,t,r,n,o){var i=t.length;i<2&&yt("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var a=null!==t[1]&&null!==r,s=!1,c=1;c<t.length;++c)if(null!==t[c]&&void 0===t[c].destructorFunction){s=!0;break}var A="void"!==t[0].name,u="",l="";for(c=0;c<i-2;++c)u+=(0!==c?", ":"")+"arg"+c,l+=(0!==c?", ":"")+"arg"+c+"Wired";var d="return function "+tt(e)+"("+u+") {\nif (arguments.length !== "+(i-2)+") {\nthrowBindingError('function "+e+" called with ' + arguments.length + ' arguments, expected "+(i-2)+" args!');\n}\n";s&&(d+="var destructors = [];\n");var g=s?"destructors":"null",f=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],h=[yt,n,o,Pt,t[0],t[1]];a&&(d+="var thisWired = classParam.toWireType("+g+", this);\n");for(c=0;c<i-2;++c)d+="var arg"+c+"Wired = argType"+c+".toWireType("+g+", arg"+c+"); // "+t[c+2].name+"\n",f.push("argType"+c),h.push(t[c+2]);if(a&&(l="thisWired"+(l.length>0?", ":"")+l),d+=(A?"var rv = ":"")+"invoker(fn"+(l.length>0?", ":"")+l+");\n",s)d+="runDestructors(destructors);\n";else for(c=a?1:2;c<t.length;++c){var p=1===c?"thisWired":"arg"+(c-2)+"Wired";null!==t[c].destructorFunction&&(d+=p+"_dtor("+p+"); // "+t[c].name+"\n",f.push(p+"_dtor"),h.push(t[c].destructorFunction))}return A&&(d+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),d+="}\n",f.push(d),gr(Function,f).apply(null,h)}function hr(e,t){for(var r=[],n=0;n<e;n++)r.push(j[(t>>2)+n]);return r}function pr(e,t,r){return e instanceof Object||yt(r+' with invalid "this": '+e),e instanceof t.registeredClass.constructor||yt(r+' incompatible with "this" of type '+e.constructor.name),e.$$.ptr||yt("cannot call emscripten binding method "+r+" on deleted object"),Zt(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)}function Er(e){e>4&&0==--ot[e].refcount&&(ot[e]=void 0,nt.push(e))}function mr(e){if(null===e)return"null";var t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():""+e}function Ir(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 yr(e,t,r){switch(t){case 0:return r?function(e){return x[e]}:function(e){return k[e]};case 1:return r?function(e){return N[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 _r={};var wr=[];var Cr=[];function br(e){try{return b.grow(e-F.byteLength+65535>>>16),ee(b.buffer),1}catch(t){I("emscripten_realloc_buffer: Attempted to grow heap from "+F.byteLength+" bytes to "+e+" bytes, but got error: "+t)}}function Br(e){ye("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}var Dr={};function Or(e){e.forEach((function(e){var t=Br();t&&(Dr[t]=e)}))}var Tr={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){Tr.lastError||(Tr.lastError=e)},getNewId:function(e){for(var t=Tr.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=Tr.log2ceilLookup(Tr.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=Tr.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=tn.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);for(var c=Tr.MAX_TEMP_BUFFER_SIZE>>1,A=new Uint16Array(c),u=(n=0,0);!(A[n++]=u,n>=c||(A[n++]=u+1,n>=c)||(A[n++]=u+2,n>=c)||(A[n++]=u,n>=c)||(A[n++]=u+2,n>=c)||(A[n++]=u+3,n>=c));)u+=4;t.GLctx.bufferData(34963,A,35044),t.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:function(e){var t=Tr.log2ceilLookup(e),r=Tr.currentContext.tempVertexBuffers1[t],n=Tr.currentContext.tempVertexBufferCounters1[t];Tr.currentContext.tempVertexBufferCounters1[t]=Tr.currentContext.tempVertexBufferCounters1[t]+1&Tr.numTempVertexBuffersPerSize-1;var o=r[n];if(o)return o;var i=tn.getParameter(34964);return r[n]=tn.createBuffer(),tn.bindBuffer(34962,r[n]),tn.bufferData(34962,1<<t,35048),tn.bindBuffer(34962,i),r[n]},getTempIndexBuffer:function(e){var t=Tr.log2ceilLookup(e),r=Tr.currentContext.tempIndexBuffers[t];if(r)return r;var n=tn.getParameter(34965);return Tr.currentContext.tempIndexBuffers[t]=tn.createBuffer(),tn.bindBuffer(34963,Tr.currentContext.tempIndexBuffers[t]),tn.bufferData(34963,1<<t,35048),tn.bindBuffer(34963,n),Tr.currentContext.tempIndexBuffers[t]},newRenderingFrameStarted:function(){if(Tr.currentContext){var e=Tr.currentContext.tempVertexBuffers1;Tr.currentContext.tempVertexBuffers1=Tr.currentContext.tempVertexBuffers2,Tr.currentContext.tempVertexBuffers2=e,e=Tr.currentContext.tempVertexBufferCounters1,Tr.currentContext.tempVertexBufferCounters1=Tr.currentContext.tempVertexBufferCounters2,Tr.currentContext.tempVertexBufferCounters2=e;for(var t=Tr.log2ceilLookup(Tr.MAX_TEMP_BUFFER_SIZE),r=0;r<=t;++r)Tr.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*Tr.byteSizeByType[t-Tr.byteSizeByTypeRoot]*n},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(e){Tr.resetBufferBinding=!1;for(var t=0;t<Tr.currentContext.maxVertexAttribs;++t){var r=Tr.currentContext.clientBuffers[t];if(r.clientside&&r.enabled){Tr.resetBufferBinding=!0;var n=Tr.calcBufLength(r.size,r.type,r.stride,e),o=Tr.getTempVertexBuffer(n);tn.bindBuffer(34962,o),tn.bufferSubData(34962,0,k.subarray(r.ptr,r.ptr+n)),r.vertexAttribPointerAdaptor.call(tn,t,r.size,r.type,r.normalized,r.stride,0)}}},postDrawHandleClientVertexAttribBindings:function(){Tr.resetBufferBinding&&tn.bindBuffer(34962,Tr.buffers[tn.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?Tr.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(),Tr.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 c=t.createProgram();t.attachShader(c,a),t.attachShader(c,s),t.linkProgram(c),e.blitProgram=c,e.blitPosLoc=t.getAttribLocation(c,"pos"),t.useProgram(c),t.uniform1i(t.getUniformLocation(c,"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 c=t.getParameter(3042);c&&t.disable(3042);var A=t.getParameter(2884);A&&t.disable(2884);var u=t.getParameter(2929);u&&t.disable(2929);var l=t.getParameter(2960);if(l&&t.disable(2960),e.defaultVao){var d=t.getParameter(34229);t.bindVertexArray(e.defaultVao),r(),t.bindVertexArray(d)}else{for(var 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)},f=t.getParameter(34921),h=[],p=0;p<f;++p){var E=t.getVertexAttrib(p,34338),m=p==e.blitPosLoc;E&&!m&&t.disableVertexAttribArray(p),!E&&m&&t.enableVertexAttribArray(p),h[p]=E}r();for(p=0;p<f;++p){E=h[p];var I=p==e.blitPosLoc;E&&!I&&t.enableVertexAttribArray(p),!E&&I&&t.disableVertexAttribArray(p)}t.bindBuffer(34962,g.buffer),t.vertexAttribPointer(e.blitPosLoc,g.size,g.type,g.normalized,g.stride,g.offset)}l&&t.enable(2960),u&&t.enable(2929),A&&t.enable(2884),c&&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=Tr.getNewId(Tr.contexts),n={handle:r,attributes:t,version:t.majorVersion,GLctx:e};e.canvas&&(e.canvas.GLctxObject=n),Tr.contexts[r]=n,(void 0===t.enableExtensionsByDefault||t.enableExtensionsByDefault)&&Tr.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 Tr.generateTempBuffers(!1,n),t.renderViaOffscreenBackBuffer&&Tr.createOffscreenFramebuffer(n),r},makeContextCurrent:function(e){return Tr.currentContext=Tr.contexts[e],o.ctx=tn=Tr.currentContext&&Tr.currentContext.GLctx,!(e&&!tn)},getContext:function(e){return Tr.contexts[e]},deleteContext:function(e){Tr.currentContext===Tr.contexts[e]&&(Tr.currentContext=null),"object"==typeof vr&&vr.removeAllHandlersOnTarget(Tr.contexts[e].GLctx.canvas),Tr.contexts[e]&&Tr.contexts[e].GLctx.canvas&&(Tr.contexts[e].GLctx.canvas.GLctxObject=void 0),Tr.contexts[e]=null},initExtensions:function(e){if(e||(e=Tr.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)}))}}},vr={inEventHandler:0,removeAllEventListeners:function(){for(var e=vr.eventHandlers.length-1;e>=0;--e)vr._removeHandler(e);vr.eventHandlers=[],vr.deferredCalls=[]},registerRemoveEventListeners:function(){vr.removeEventListenersRegistered||(ce.push(vr.removeAllEventListeners),vr.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 vr.deferredCalls){var i=vr.deferredCalls[o];if(i.targetFunction==e&&n(i.argsList,r))return}vr.deferredCalls.push({targetFunction:e,precedence:t,argsList:r}),vr.deferredCalls.sort((function(e,t){return e.precedence<t.precedence}))},removeDeferredCalls:function(e){for(var t=0;t<vr.deferredCalls.length;++t)vr.deferredCalls[t].targetFunction==e&&(vr.deferredCalls.splice(t,1),--t)},canPerformEventHandlerRequests:function(){return vr.inEventHandler&&vr.currentEventHandler.allowsDeferredCalls},runDeferredCalls:function(){if(vr.canPerformEventHandlerRequests())for(var e=0;e<vr.deferredCalls.length;++e){var t=vr.deferredCalls[e];vr.deferredCalls.splice(e,1),--e,t.targetFunction.apply(null,t.argsList)}},eventHandlers:[],removeAllHandlersOnTarget:function(e,t){for(var r=0;r<vr.eventHandlers.length;++r)vr.eventHandlers[r].target!=e||t&&t!=vr.eventHandlers[r].eventTypeString||vr._removeHandler(r--)},_removeHandler:function(e){var t=vr.eventHandlers[e];t.target.removeEventListener(t.eventTypeString,t.eventListenerFunc,t.useCapture),vr.eventHandlers.splice(e,1)},registerOrRemoveHandler:function(e){var t=function(t){++vr.inEventHandler,vr.currentEventHandler=e,vr.runDeferredCalls(),e.handlerFunc(t),vr.runDeferredCalls(),--vr.inEventHandler};if(e.callbackfunc)e.eventListenerFunc=t,e.target.addEventListener(e.eventTypeString,t,e.useCapture),vr.eventHandlers.push(e),vr.registerRemoveEventListeners();else for(var r=0;r<vr.eventHandlers.length;++r)vr.eventHandlers[r].target==e.target&&vr.eventHandlers[r].eventTypeString==e.eventTypeString&&vr._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}},Qr=["default","low-power","high-performance"],Pr=[0,"undefined"!=typeof document?document:0,"undefined"!=typeof window?window:0];function Mr(e){return"number"==typeof e&&(e=P(e)),e&&"#canvas"!==e?void 0!==Tr&&Tr.offscreenCanvases[e]?Tr.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]||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!==Tr&&Tr.offscreenCanvases.canvas?Tr.offscreenCanvases.canvas:o.canvas}function Rr(){return Tr.currentContext?Tr.currentContext.handle:0}function Sr(e){return Tr.makeContextCurrent(e)?0:-5}o._emscripten_webgl_get_current_context=Rr,o._emscripten_webgl_make_context_current=Sr;var Fr={};function xr(){if(!xr.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",_:c||"./this.program"};for(var t in Fr)void 0===Fr[t]?delete e[t]:e[t]=Fr[t];var r=[];for(var t in e)r.push(t+"="+e[t]);xr.strings=r}return xr.strings}var kr=[];function Nr(e,t,r,n){for(var o=0;o<e;o++){var i=tn[r](),a=i&&Tr.getNewId(n);i?(i.name=a,n[a]=i):Tr.recordError(1282),j[t+4*o>>2]=a}}function Ur(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&&y("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 jr(e){var t=S(e)+1,r=gn(t);return R(e,r,t),r}function Lr(e){return"]"==e.slice(-1)&&e.lastIndexOf("[")}function Hr(e){return 0==(e-=5120)?x:1==e?k:2==e?N:4==e?j:6==e?H:5==e||28922==e||28520==e||30779==e||30782==e?L:U}function Gr(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function Yr(e,t,r,n,o,i){var a=Hr(e),s=Gr(a),c=1<<s,A=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)*c,u=function(e,t,r,n){var o=function(e,t){return e+t-1&-t}(e*r,n);return t*o}(r,n,A,Tr.unpackAlignment);return a.subarray(o>>s,o+u>>s)}function Xr(e){var t=tn.currentProgram;if(t){var r=t.uniformLocsById[e];return"number"==typeof r&&(t.uniformLocsById[e]=r=tn.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?"["+r+"]":""))),r}Tr.recordError(1282)}var Wr=[];var Vr=[];function zr(){if(!zr.called){zr.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[In()>>2]=60*i,j[mn()>>2]=Number(n!=o);var a=u(t),s=u(r),c=Z(a),A=Z(s);o<n?(j[En()>>2]=c,j[En()+4>>2]=A):(j[En()>>2]=A,j[En()+4>>2]=c)}function u(e){var t=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}}function $r(e){return e%4==0&&(e%100!=0||e%400==0)}function Kr(e,t){for(var r=0,n=0;n<=t;r+=e[n++]);return r}var Zr=[31,29,31,30,31,30,31,31,30,31,30,31],Jr=[31,28,31,30,31,30,31,31,30,31,30,31];function qr(e,t){for(var r=new Date(e.getTime());t>0;){var n=$r(r.getFullYear()),o=r.getMonth(),i=(n?Zr:Jr)[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 en(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 c in s)a=a.replace(new RegExp(c,"g"),s[c]);var A=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],u=["January","February","March","April","May","June","July","August","September","October","November","December"];function l(e,t,r){for(var n="number"==typeof e?e.toString():e||"";n.length<t;)n=r[0]+n;return n}function d(e,t){return l(e,t,"0")}function g(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 f(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 h(e){var 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=f(r),i=f(n);return g(o,t)<=0?g(i,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var p={"%a":function(e){return A[e.tm_wday].substring(0,3)},"%A":function(e){return A[e.tm_wday]},"%b":function(e){return u[e.tm_mon].substring(0,3)},"%B":function(e){return u[e.tm_mon]},"%C":function(e){return d((e.tm_year+1900)/100|0,2)},"%d":function(e){return d(e.tm_mday,2)},"%e":function(e){return l(e.tm_mday,2," ")},"%g":function(e){return h(e).toString().substring(2)},"%G":function(e){return h(e)},"%H":function(e){return d(e.tm_hour,2)},"%I":function(e){var t=e.tm_hour;return 0==t?t=12:t>12&&(t-=12),d(t,2)},"%j":function(e){return d(e.tm_mday+Kr($r(e.tm_year+1900)?Zr:Jr,e.tm_mon-1),3)},"%m":function(e){return d(e.tm_mon+1,2)},"%M":function(e){return d(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 d(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:qr(t,7-t.getDay()),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(g(r,n)<0){var o=Kr($r(n.getFullYear())?Zr:Jr,n.getMonth()-1)-31,i=31-r.getDate()+o+n.getDate();return d(Math.ceil(i/7),2)}return 0===g(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=f(r),i=f(n),a=qr(new Date(e.tm_year+1900,0,1),e.tm_yday);return g(a,o)<0?"53":g(i,a)<=0?"01":(t=o.getFullYear()<e.tm_year+1900?e.tm_yday+32-o.getDate():e.tm_yday+1-o.getDate(),d(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:qr(t,0===t.getDay()?1:7-t.getDay()+1),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(g(r,n)<0){var o=Kr($r(n.getFullYear())?Zr:Jr,n.getMonth()-1)-31,i=31-r.getDate()+o+n.getDate();return d(Math.ceil(i/7),2)}return 0===g(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 c in p)a.includes(c)&&(a=a.replace(new RegExp(c,"g"),p[c](i)));var E=An(a,!1);return E.length>t?0:(J(E,e),E.length-1)}o.requestFullscreen=function(e,t){xe.requestFullscreen(e,t)},o.requestFullScreen=function(){xe.requestFullScreen()},o.requestAnimationFrame=function(e){xe.requestAnimationFrame(e)},o.setCanvasSize=function(e,t,r){xe.setCanvasSize(e,t,r)},o.pauseMainLoop=function(){xe.mainLoop.pause()},o.resumeMainLoop=function(){xe.mainLoop.resume()},o.getUserMedia=function(){xe.getUserMedia()},o.createContext=function(e,t,r,n){return xe.createContext(e,t,r,n)};var tn,rn=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=qe.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n},nn=365,on=146;Object.defineProperties(rn.prototype,{read:{get:function(){return(this.mode&nn)===nn},set:function(e){e?this.mode|=nn:this.mode&=-366}},write:{get:function(){return(this.mode&on)===on},set:function(e){e?this.mode|=on:this.mode&=-147}},isFolder:{get:function(){return qe.isDir(this.mode)}},isDevice:{get:function(){return qe.isChrdev(this.mode)}}}),qe.FSNode=rn,qe.staticInit(),o.FS_createPath=qe.createPath,o.FS_createDataFile=qe.createDataFile,o.FS_createPreloadedFile=qe.createPreloadedFile,o.FS_createLazyFile=qe.createLazyFile,o.FS_createDevice=qe.createDevice,o.FS_unlink=qe.unlink,o.count_emval_handles=it,o.get_first_emval=at,At=o.PureVirtualError=ct(Error,"PureVirtualError"),function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);ut=e}(),o.getInheritedInstanceCount=dt,o.getLiveInheritedInstances=gt,o.flushPendingDeletes=ht,o.setDelayFunction=Et,It=o.BindingError=ct(Error,"BindingError"),Ft=o.InternalError=ct(Error,"InternalError"),Wt.prototype.isAliasOf=jt,Wt.prototype.clone=Ht,Wt.prototype.delete=Gt,Wt.prototype.isDeleted=Yt,Wt.prototype.deleteLater=Xt,sr.prototype.getPointee=tr,sr.prototype.destructor=rr,sr.prototype.argPackAdvance=8,sr.prototype.readValueFromPointer=Mt,sr.prototype.deleteObject=nr,sr.prototype.fromWireType=ar,lr=o.UnboundTypeError=ct(Error,"UnboundTypeError");for(var an=0;an<32;++an)kr.push(new Array(an));var sn=new Float32Array(288);for(an=0;an<288;++an)Wr[an]=sn.subarray(0,an+1);var cn=new Int32Array(288);for(an=0;an<288;++an)Vr[an]=cn.subarray(0,an+1);function An(e,t,r){var n=r>0?r:S(e)+1,o=new Array(n),i=M(e,o,0,o.length);return t&&(o.length=i),o}"function"==typeof atob&&atob;var un,ln={HaveOffsetConverter:function(){return"undefined"!=typeof wasmOffsetConverter},__cxa_allocate_exception:function(e){return gn(e+16)+16},__cxa_atexit:function(e,t){},__cxa_begin_catch:function(e){var t=new je(e),r=t.get_exception_info();return r.get_caught()||r.set_caught(!0),r.set_rethrown(!1),Le.push(t),function(e){e.add_ref()}(r),t.get_exception_ptr()},__cxa_end_catch:function(){Cn(0),T(Le.length>0);var e=Le.pop();!function(e){if(e.release_ref()&&!e.get_rethrown()){var t=e.get_destructor();t&&re.get(t)(e.excPtr),Ge(e.excPtr)}}(e.get_exception_info()),e.free(),He=0},__cxa_find_matching_catch_2:function(){var e=He;if(!e)return C(0),0;var t=new Ue(e).get_type(),r=new je;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return C(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 C(i),0|r.ptr}return C(t),0|r.ptr},__cxa_find_matching_catch_3:function(){var e=He;if(!e)return C(0),0;var t=new Ue(e).get_type(),r=new je;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return C(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 C(i),0|r.ptr}return C(t),0|r.ptr},__cxa_free_exception:Ge,__cxa_rethrow:function(){var e=Le.pop();e||ye("no exception to throw");var t=e.get_exception_info(),r=e.get_base_ptr();throw t.get_rethrown()?e.free():(Le.push(e),t.set_rethrown(!0),t.set_caught(!1)),He=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 Ue(e).init(t,r),He=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 je(e),r=t.get_base_ptr();throw He||(He=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){et.varargs=r;try{var n=et.getStreamFromFD(e);switch(t){case 0:return(o=et.get())<0?-28:qe.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=et.get();return n.flags|=o,0;case 12:o=et.get();return N[o+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return Ye(28),-1}}catch(e){return void 0!==qe&&e instanceof qe.ErrnoError||ye(e),-e.errno}},__sys_ioctl:function(e,t,r){et.varargs=r;try{var n=et.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=et.get();return j[o>>2]=0,0;case 21520:return n.tty?-28:-59;case 21531:o=et.get();return qe.ioctl(n,t,o);default:ye("bad ioctl syscall "+t)}}catch(e){return void 0!==qe&&e instanceof qe.ErrnoError||ye(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=$e(t)))return-48;s=!0}else{var c=qe.getStream(o);if(!c)return-8;var A=qe.mmap(c,e,t,i,r,n);a=A.ptr,s=A.allocated}return et.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!==qe&&e instanceof qe.ErrnoError||ye(e),-e.errno}},__sys_open:function(e,t,r){et.varargs=r;try{var n=et.getStr(e),o=r?et.get():0;return qe.open(n,t,o).fd}catch(e){return void 0!==qe&&e instanceof qe.ErrnoError||ye(e),-e.errno}},__sys_stat64:function(e,t){try{return e=et.getStr(e),et.doStat(qe.stat,e,t)}catch(e){return void 0!==qe&&e instanceof qe.ErrnoError||ye(e),-e.errno}},_embind_create_inheriting_constructor:function(e,t,r){e=lt(e),t=Bt(t,"wrapper"),r=wt(r);var n=[].slice,o=t.registeredClass,i=o.instancePrototype,a=o.baseClass.instancePrototype,s=o.baseClass.constructor,c=rt(e,(function(){o.baseClass.pureVirtualFunctions.forEach(function(e){if(this[e]===a[e])throw new At("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 A in i.__construct=function(){this===i&&yt("Pass correct 'this' to __construct");var e=s.implement.apply(void 0,[this].concat(n.call(arguments)));Dt(e);var t,r,a,c=e.$$;e.notifyOnDestruction(),c.preservePointerOnDelete=!0,Object.defineProperties(this,{$$:{value:c}}),vt(this),t=o,r=c.ptr,a=this,r=_t(t,r),mt.hasOwnProperty(r)?yt("Tried to register registered instance: "+r):mt[r]=a},i.__destruct=function(){var e,t;this===i&&yt("Pass correct 'this' to __destruct"),Dt(this),e=o,t=this.$$.ptr,t=_t(e,t),mt.hasOwnProperty(t)?delete mt[t]:yt("Tried to unregister unregistered instance: "+t)},c.prototype=Object.create(i),r)c.prototype[A]=r[A];return st(c)},_embind_finalize_value_object:function(e){var t=Qt[e];delete Qt[e];var r=t.rawConstructor,n=t.rawDestructor,o=t.fields;kt([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,c=t.getterContext,A=e[r+o.length],u=t.setter,l=t.setterContext;i[n]={read:function(e){return a.fromWireType(s(c,e))},write:function(e,t){var r=[];u(l,e,A.toWireType(r,t)),Pt(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:Mt,destructorFunction:n}]}))},_embind_register_bigint:function(e,t,r,n,o){},_embind_register_bool:function(e,t,r,n,o){var i=Nt(r);Ut(e,{name:t=lt(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=x;else if(2===r)n=N;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,c,A,u,l,d){u=lt(u),i=ur(o,i),s&&(s=ur(a,s)),A&&(A=ur(c,A)),d=ur(l,d);var g=tt(u);$t(g,(function(){dr("Cannot construct "+u+" due to unbound types",[n])})),kt([e,t,r],n?[n]:[],(function(t){var r,o;t=t[0],o=n?(r=t.registeredClass).instancePrototype:Wt.prototype;var a=rt(g,(function(){if(Object.getPrototypeOf(this)!==c)throw new It("Use 'new' to construct "+u);if(void 0===l.constructor_body)throw new It(u+" has no accessible constructor");var e=l.constructor_body[arguments.length];if(void 0===e)throw new It("Tried to invoke ctor of "+u+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(l.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)})),c=Object.create(o,{constructor:{value:a}});a.prototype=c;var l=new Kt(u,a,c,d,r,i,s,A),f=new sr(u,l,!0,!1,!1),h=new sr(u+"*",l,!1,!1,!1),p=new sr(u+" const*",l,!1,!0,!1);return Vt[e]={pointerType:h,constPointerType:p},cr(g,a),[f,h,p]}))},_embind_register_class_class_function:function(e,t,r,n,o,i,a){var s=hr(r,n);t=lt(t),i=ur(o,i),kt([],[e],(function(e){var n=(e=e[0]).name+"."+t;function o(){dr("Cannot call "+n+" due to unbound types",s)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]);var c=e.registeredClass.constructor;return void 0===c[t]?(o.argCount=r-1,c[t]=o):(zt(c,t,n),c[t].overloadTable[r-1]=o),kt([],s,(function(e){var o=[e[0],null].concat(e.slice(1)),s=fr(n,o,null,i,a);return void 0===c[t].overloadTable?(s.argCount=r-1,c[t]=s):c[t].overloadTable[r-1]=s,[]})),[]}))},_embind_register_class_constructor:function(e,t,r,n,o,i){T(t>0);var a=hr(t,r);o=ur(n,o),kt([],[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 It("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(){dr("Cannot construct "+e.name+" due to unbound types",a)},kt([],a,(function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=fr(r,n,null,o,i),[]})),[]}))},_embind_register_class_function:function(e,t,r,n,o,i,a,s){var c=hr(r,n);t=lt(t),i=ur(o,i),kt([],[e],(function(e){var n=(e=e[0]).name+"."+t;function o(){dr("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,u=A[t];return void 0===u||void 0===u.overloadTable&&u.className!==e.name&&u.argCount===r-2?(o.argCount=r-2,o.className=e.name,A[t]=o):(zt(A,t,n),A[t].overloadTable[r-2]=o),kt([],c,(function(o){var s=fr(n,o,e,i,a);return void 0===A[t].overloadTable?(s.argCount=r-2,A[t]=s):A[t].overloadTable[r-2]=s,[]})),[]}))},_embind_register_class_property:function(e,t,r,n,o,i,a,s,c,A){t=lt(t),o=ur(n,o),kt([],[e],(function(e){var n=(e=e[0]).name+"."+t,u={get:function(){dr("Cannot access "+n+" due to unbound types",[r,a])},enumerable:!0,configurable:!0};return u.set=c?function(){dr("Cannot access "+n+" due to unbound types",[r,a])}:function(e){yt(n+" is a read-only property")},Object.defineProperty(e.registeredClass.instancePrototype,t,u),kt([],c?[r,a]:[r],(function(r){var a=r[0],u={get:function(){var t=pr(this,e,n+" getter");return a.fromWireType(o(i,t))},enumerable:!0};if(c){c=ur(s,c);var l=r[1];u.set=function(t){var r=pr(this,e,n+" setter"),o=[];c(A,r,l.toWireType(o,t)),Pt(o)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]})),[]}))},_embind_register_emval:function(e,t){Ut(e,{name:t=lt(t),fromWireType:function(e){var t=ot[e].value;return Er(e),t},toWireType:function(e,t){return st(t)},argPackAdvance:8,readValueFromPointer:Mt,destructorFunction:null})},_embind_register_float:function(e,t,r){var n=Nt(r);Ut(e,{name:t=lt(t),fromWireType:function(e){return e},toWireType:function(e,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError('Cannot convert "'+mr(t)+'" to '+this.name);return t},argPackAdvance:8,readValueFromPointer:Ir(t,n),destructorFunction:null})},_embind_register_function:function(e,t,r,n,o,i){var a=hr(t,r);e=lt(e),o=ur(n,o),$t(e,(function(){dr("Cannot call "+e+" due to unbound types",a)}),t-1),kt([],a,(function(r){var n=[r[0],null].concat(r.slice(1));return cr(e,fr(e,n,null,o,i),t-1),[]}))},_embind_register_integer:function(e,t,r,n,o){t=lt(t),-1===o&&(o=4294967295);var i=Nt(r),a=function(e){return e};if(0===n){var s=32-8*r;a=function(e){return e<<s>>>s}}var c=t.includes("unsigned");Ut(e,{name:t,fromWireType:a,toWireType:function(e,r){if("number"!=typeof r&&"boolean"!=typeof r)throw new TypeError('Cannot convert "'+mr(r)+'" to '+this.name);if(r<n||r>o)throw new TypeError('Passing a number "'+mr(r)+'" from JS side to C/C++ side to an argument of type "'+t+'", which is outside the valid range ['+n+", "+o+"]!");return c?r>>>0:0|r},argPackAdvance:8,readValueFromPointer:yr(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)}Ut(e,{name:r=lt(r),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},_embind_register_std_string:function(e,t){var r="std::string"===(t=lt(t));Ut(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 c=new Array(n);for(i=0;i<n;++i)c[i]=String.fromCharCode(k[e+4+i]);t=c.join("")}return dn(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||yt("Cannot pass non-string to std::string");var o=(r&&n?function(){return S(t)}:function(){return t.length})(),i=gn(4+o+1);if(L[i>>2]=o,r&&n)R(t,i+4,o+1);else if(n)for(var a=0;a<o;++a){var s=t.charCodeAt(a);s>255&&(dn(i),yt("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(dn,i),i},argPackAdvance:8,readValueFromPointer:Mt,destructorFunction:function(e){dn(e)}})},_embind_register_std_wstring:function(e,t,r){var n,o,i,a,s;r=lt(r),2===t?(n=X,o=W,a=V,i=function(){return U},s=1):4===t&&(n=z,o=$,a=K,i=function(){return L},s=2),Ut(e,{name:r,fromWireType:function(e){for(var r,o=L[e>>2],a=i(),c=e+4,A=0;A<=o;++A){var u=e+4+A*t;if(A==o||0==a[u>>s]){var l=n(c,u-c);void 0===r?r=l:(r+=String.fromCharCode(0),r+=l),c=u+t}}return dn(e),r},toWireType:function(e,n){"string"!=typeof n&&yt("Cannot pass non-string to C++ string type "+r);var i=a(n),c=gn(4+i+t);return L[c>>2]=i>>s,o(n,c+4,i+t),null!==e&&e.push(dn,c),c},argPackAdvance:8,readValueFromPointer:Mt,destructorFunction:function(e){dn(e)}})},_embind_register_value_object:function(e,t,r,n,o,i){Qt[e]={name:lt(t),rawConstructor:ur(r,n),rawDestructor:ur(o,i),fields:[]}},_embind_register_value_object_field:function(e,t,r,n,o,i,a,s,c,A){Qt[e].fields.push({fieldName:lt(t),getterReturnType:r,getter:ur(n,o),getterContext:i,setterArgumentType:a,setter:ur(s,c),setterContext:A})},_embind_register_void:function(e,t){Ut(e,{isVoid:!0,name:t=lt(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},_emval_call_void_method:function(e,t,r,n){var o,i;(e=wr[e])(t=wt(t),r=void 0===(i=_r[o=r])?lt(o):i,null,n)},_emval_decref:Er,_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]=Bt(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="",c=0;c<e-1;++c)s+=(0!==c?", ":"")+"arg"+c,i.push("argType"+c),a.push(r[1+c]);var A="return function "+tt("methodCaller_"+o)+"(handle, name, destructors, args) {\n",u=0;for(c=0;c<e-1;++c)A+=" var arg"+c+" = argType"+c+".readValueFromPointer(args"+(u?"+"+u:"")+");\n",u+=r[c+1].argPackAdvance;for(A+=" var rv = handle[name]("+s+");\n",c=0;c<e-1;++c)r[c+1].deleteObject&&(A+=" argType"+c+".deleteObject(arg"+c+");\n");n.isVoid||(A+=" return retType.toWireType(destructors, rv);\n"),A+="};\n",i.push(A);var l,d,g=gr(Function,i).apply(null,a);return l=g,d=wr.length,wr.push(l),d},_emval_incref:function(e){e>4&&(ot[e].refcount+=1)},_emval_take_value:function(e,t){return st((e=Bt(e,"_emval_take_value")).readValueFromPointer(t))},abort:function(){ye()},clock_gettime:function(e,t){var r;if(0===e)r=Date.now();else{if(1!==e&&4!==e)return Ye(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){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){var n=function(e,t){var r;for(T(Array.isArray(Cr)),T(t%16==0),Cr.length=0,t>>=2;r=k[e++];){T(100===r||102===r||105===r);var n=r<105;n&&1&t&&t++,Cr.push(n?G[t++>>1]:j[t]),++t}return Cr}(t,r);return Qe.hasOwnProperty(e)||ye("No EM_ASM constant found at address "+e),Qe[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){ye("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")},emscripten_resize_heap:function(e){var t=k.length;T((e>>>=0)>t);var r=2147483648;if(e>r)return I("Cannot enlarge memory, asked to go up to "+e+" bytes, but the limit is "+r+" bytes!"),!1;for(var n=1;n<=4;n*=2){var o=t*(1+.2/n);o=Math.min(o,e+100663296);var i=Math.min(r,q(Math.max(e,o),65536));if(br(i))return!0}return I("Failed to grow the heap from "+t+" bytes to "+i+" bytes, not enough memory!"),!1},emscripten_stack_snapshot:function(){var e=(new Error).stack.split("\n");return"Error"==e[0]&&e.shift(),Or(e),Dr.last_addr=Br(e[2]),Dr.last_stack=e,Dr.last_addr},emscripten_stack_unwind_buffer:function(e,t,r){var n;Dr.last_addr==e?n=Dr.last_stack:("Error"==(n=(new Error).stack.split("\n"))[0]&&n.shift(),Or(n));for(var o=2;n[o]&&Br(n[o])!=e;)++o;for(var i=0;i<r&&n[i+o];++i)j[t+4*i>>2]=Br(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){T(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:Qr[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=Mr(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(!Tr.offscreenCanvases[i.id])return 0}else Tr.offscreenCanvases[i.id]={canvas:i.transferControlToOffscreen(),canvasSharedPtr:gn(12),id:i.id},i.controlTransferredOffscreen=!0;i=Tr.offscreenCanvases[i.id]}return Tr.createContext(i,o)}(e,t)},emscripten_webgl_destroy_context:function(e){Tr.currentContext==e&&(Tr.currentContext=0),Tr.deleteContext(e)},emscripten_webgl_get_context_attributes:function(e,t){if(!t)return-5;if(!(e=Tr.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&&Qr.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:Rr,emscripten_webgl_init_context_attributes:function(e){T(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:Sr,environ_get:function(e,t){var r=0;return xr().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)T(e.charCodeAt(n)==e.charCodeAt(n)&255),x[0|t++]=e.charCodeAt(n);r||(x[0|t]=0)}(n,i),r+=n.length+1})),0},environ_sizes_get:function(e,t){var r=xr();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=et.getStreamFromFD(e);return qe.close(t),0}catch(e){return void 0!==qe&&e instanceof qe.ErrnoError||ye(e),e.errno}},fd_read:function(e,t,r,n){try{var o=et.getStreamFromFD(e),i=et.doReadv(o,t,r);return j[n>>2]=i,0}catch(e){return void 0!==qe&&e instanceof qe.ErrnoError||ye(e),e.errno}},fd_seek:function(e,t,r,n,o){try{var i=et.getStreamFromFD(e),a=4294967296*r+(t>>>0),s=9007199254740992;return a<=-s||a>=s?-61:(qe.llseek(i,a,n),be=[i.position>>>0,(Ce=i.position,+Math.abs(Ce)>=1?Ce>0?(0|Math.min(+Math.floor(Ce/4294967296),4294967295))>>>0:~~+Math.ceil((Ce-+(~~Ce>>>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!==qe&&e instanceof qe.ErrnoError||ye(e),e.errno}},fd_write:function(e,t,r,n){try{var o=et.getStreamFromFD(e),i=et.doWritev(o,t,r);return j[n>>2]=i,0}catch(e){return void 0!==qe&&e instanceof qe.ErrnoError||ye(e),e.errno}},getTempRet0:function(){return w},getentropy:function e(t,r){e.randomDevice||(e.randomDevice=We());for(var n=0;n<r;n++)x[t+n|0]=e.randomDevice();return 0},glActiveTexture:function(e){tn.activeTexture(e)},glAttachShader:function(e,t){tn.attachShader(Tr.programs[e],Tr.shaders[t])},glBindAttribLocation:function(e,t,r){tn.bindAttribLocation(Tr.programs[e],t,P(r))},glBindBuffer:function(e,t){34962==e?tn.currentArrayBufferBinding=t:34963==e&&(tn.currentElementArrayBufferBinding=t),35051==e?tn.currentPixelPackBufferBinding=t:35052==e&&(tn.currentPixelUnpackBufferBinding=t),tn.bindBuffer(e,Tr.buffers[t])},glBindBufferBase:function(e,t,r){tn.bindBufferBase(e,t,Tr.buffers[r])},glBindFramebuffer:function(e,t){tn.bindFramebuffer(e,t?Tr.framebuffers[t]:Tr.currentContext.defaultFbo)},glBindTexture:function(e,t){tn.bindTexture(e,Tr.textures[t])},glBindVertexArray:function(e){tn.bindVertexArray(Tr.vaos[e]);var t=tn.getParameter(34965);tn.currentElementArrayBufferBinding=t?0|t.name:0},glBufferData:function(e,t,r,n){Tr.currentContext.version>=2?r?tn.bufferData(e,k,n,r,t):tn.bufferData(e,t,n):tn.bufferData(e,r?k.subarray(r,r+t):t,n)},glClientWaitSync:function(e,t,r,n){return tn.clientWaitSync(Tr.syncs[e],t,(o=r,T((i=n)===(0|i)),(o>>>0)+4294967296*i));var o,i},glCompileShader:function(e){tn.compileShader(Tr.shaders[e])},glCreateProgram:function(){var e=Tr.getNewId(Tr.programs),t=tn.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,Tr.programs[e]=t,e},glCreateShader:function(e){var t=Tr.getNewId(Tr.shaders);return Tr.shaders[t]=tn.createShader(e),t},glDeleteBuffers:function(e,t){for(var r=0;r<e;r++){var n=j[t+4*r>>2],o=Tr.buffers[n];o&&(tn.deleteBuffer(o),o.name=0,Tr.buffers[n]=null,n==tn.currentArrayBufferBinding&&(tn.currentArrayBufferBinding=0),n==tn.currentElementArrayBufferBinding&&(tn.currentElementArrayBufferBinding=0),n==tn.currentPixelPackBufferBinding&&(tn.currentPixelPackBufferBinding=0),n==tn.currentPixelUnpackBufferBinding&&(tn.currentPixelUnpackBufferBinding=0))}},glDeleteFramebuffers:function(e,t){for(var r=0;r<e;++r){var n=j[t+4*r>>2],o=Tr.framebuffers[n];o&&(tn.deleteFramebuffer(o),o.name=0,Tr.framebuffers[n]=null)}},glDeleteProgram:function(e){if(e){var t=Tr.programs[e];t?(tn.deleteProgram(t),t.name=0,Tr.programs[e]=null):Tr.recordError(1281)}},glDeleteShader:function(e){if(e){var t=Tr.shaders[e];t?(tn.deleteShader(t),Tr.shaders[e]=null):Tr.recordError(1281)}},glDeleteSync:function(e){if(e){var t=Tr.syncs[e];t?(tn.deleteSync(t),t.name=0,Tr.syncs[e]=null):Tr.recordError(1281)}},glDeleteTextures:function(e,t){for(var r=0;r<e;r++){var n=j[t+4*r>>2],o=Tr.textures[n];o&&(tn.deleteTexture(o),o.name=0,Tr.textures[n]=null)}},glDeleteVertexArrays:function(e,t){for(var r=0;r<e;r++){var n=j[t+4*r>>2];tn.deleteVertexArray(Tr.vaos[n]),Tr.vaos[n]=null}},glDisable:function(e){tn.disable(e)},glDisableVertexAttribArray:function(e){Tr.currentContext.clientBuffers[e].enabled=!1,tn.disableVertexAttribArray(e)},glDrawArrays:function(e,t,r){Tr.preDrawHandleClientVertexAttribBindings(t+r),tn.drawArrays(e,t,r),Tr.postDrawHandleClientVertexAttribBindings()},glDrawBuffers:function(e,t){for(var r=kr[e],n=0;n<e;n++)r[n]=j[t+4*n>>2];tn.drawBuffers(r)},glEnableVertexAttribArray:function(e){Tr.currentContext.clientBuffers[e].enabled=!0,tn.enableVertexAttribArray(e)},glFenceSync:function(e,t){var r=tn.fenceSync(e,t);if(r){var n=Tr.getNewId(Tr.syncs);return r.name=n,Tr.syncs[n]=r,n}return 0},glFinish:function(){tn.finish()},glFlush:function(){tn.flush()},glFramebufferTexture2D:function(e,t,r,n,o){tn.framebufferTexture2D(e,t,r,Tr.textures[n],o)},glFramebufferTextureLayer:function(e,t,r,n,o){tn.framebufferTextureLayer(e,t,Tr.textures[r],n,o)},glGenBuffers:function(e,t){Nr(e,t,"createBuffer",Tr.buffers)},glGenFramebuffers:function(e,t){Nr(e,t,"createFramebuffer",Tr.framebuffers)},glGenTextures:function(e,t){Nr(e,t,"createTexture",Tr.textures)},glGenVertexArrays:function(e,t){Nr(e,t,"createVertexArray",Tr.vaos)},glGetAttribLocation:function(e,t){return tn.getAttribLocation(Tr.programs[e],P(t))},glGetError:function(){var e=tn.getError()||Tr.lastError;return Tr.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&&Tr.recordError(1280));case 34814:case 36345:n=0;break;case 34466:var o=tn.getParameter(34467);n=o?o.length:0;break;case 33309:if(Tr.currentContext.version<2)return void Tr.recordError(1282);n=2*(tn.getSupportedExtensions()||[]).length;break;case 33307:case 33308:if(Tr.currentContext.version<2)return void Tr.recordError(1280);n=33307==e?3:0}if(void 0===n){var i=tn.getParameter(e);switch(typeof i){case"number":n=i;break;case"boolean":n=i?1:0;break;case"string":return void Tr.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 Tr.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:x[t+a|0]=i[a]?1:0}return}try{n=0|i.name}catch(t){return Tr.recordError(1280),void I("GL_INVALID_ENUM in glGet"+r+"v: Unknown object returned from WebGL getParameter("+e+")! (error: "+t+")")}}break;default:return Tr.recordError(1280),void I("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:Ur(t,n);break;case 0:j[t>>2]=n;break;case 2:H[t>>2]=n;break;case 4:x[0|t]=n?1:0}}else Tr.recordError(1281)}(e,t,0)},glGetString:function(e){var t=Tr.stringCache[e];if(!t){switch(e){case 7939:var r=tn.getSupportedExtensions()||[];t=jr((r=r.concat(r.map((function(e){return"GL_"+e})))).join(" "));break;case 7936:case 7937:case 37445:case 37446:var n=tn.getParameter(e);n||Tr.recordError(1280),t=n&&jr(n);break;case 7938:var o=tn.getParameter(7938);t=jr(o=Tr.currentContext.version>=2?"OpenGL ES 3.0 ("+o+")":"OpenGL ES 2.0 ("+o+")");break;case 35724:var i=tn.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:Tr.recordError(1280)}Tr.stringCache[e]=t}return t},glGetUniformBlockIndex:function(e,t){return tn.getUniformBlockIndex(Tr.programs[e],P(t))},glGetUniformLocation:function(e,t){if(t=P(t),e=Tr.programs[e]){!function(e){var t,r,n=e.uniformLocsById,o=e.uniformSizeAndIdsByName;if(!n)for(e.uniformLocsById=n={},e.uniformArrayNamesById={},t=0;t<tn.getProgramParameter(e,35718);++t){var i=tn.getActiveUniform(e,t),a=i.name,s=i.size,c=Lr(a),A=c>0?a.slice(0,c):a,u=e.uniformIdCounter;for(e.uniformIdCounter+=s,o[A]=[s,u],r=0;r<s;++r)n[u]=r,e.uniformArrayNamesById[u++]=A}}(e);var r=e.uniformLocsById,n=0,o=t,i=Lr(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]||tn.getUniformLocation(e,t)))return n}else Tr.recordError(1281);var s;return-1},glLinkProgram:function(e){e=Tr.programs[e],tn.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}},glPixelStorei:function(e,t){3317==e&&(Tr.unpackAlignment=t),tn.pixelStorei(e,t)},glReadPixels:function(e,t,r,n,o,i,a){if(Tr.currentContext.version>=2)if(tn.currentPixelPackBufferBinding)tn.readPixels(e,t,r,n,o,i,a);else{var s=Hr(i);tn.readPixels(e,t,r,n,o,i,s,a>>Gr(s))}else{var c=Yr(i,o,r,n,a);c?tn.readPixels(e,t,r,n,o,i,c):Tr.recordError(1280)}},glShaderSource:function(e,t,r,n){var o=Tr.getSource(e,t,r,n);tn.shaderSource(Tr.shaders[e],o)},glTexImage2D:function(e,t,r,n,o,i,a,s,c){if(Tr.currentContext.version>=2)if(tn.currentPixelUnpackBufferBinding)tn.texImage2D(e,t,r,n,o,i,a,s,c);else if(c){var A=Hr(s);tn.texImage2D(e,t,r,n,o,i,a,s,A,c>>Gr(A))}else tn.texImage2D(e,t,r,n,o,i,a,s,null);else tn.texImage2D(e,t,r,n,o,i,a,s,c?Yr(s,a,n,o,c):null)},glTexParameterfv:function(e,t,r){var n=H[r>>2];tn.texParameterf(e,t,n)},glTexParameteri:function(e,t,r){tn.texParameteri(e,t,r)},glTexStorage2D:function(e,t,r,n,o){tn.texStorage2D(e,t,r,n,o)},glTexStorage3D:function(e,t,r,n,o,i){tn.texStorage3D(e,t,r,n,o,i)},glTexSubImage2D:function(e,t,r,n,o,i,a,s,c){if(Tr.currentContext.version>=2)if(tn.currentPixelUnpackBufferBinding)tn.texSubImage2D(e,t,r,n,o,i,a,s,c);else if(c){var A=Hr(s);tn.texSubImage2D(e,t,r,n,o,i,a,s,A,c>>Gr(A))}else tn.texSubImage2D(e,t,r,n,o,i,a,s,null);else{var u=null;c&&(u=Yr(s,a,o,i,c)),tn.texSubImage2D(e,t,r,n,o,i,a,s,u)}},glTexSubImage3D:function(e,t,r,n,o,i,a,s,c,A,u){if(tn.currentPixelUnpackBufferBinding)tn.texSubImage3D(e,t,r,n,o,i,a,s,c,A,u);else if(u){var l=Hr(A);tn.texSubImage3D(e,t,r,n,o,i,a,s,c,A,l,u>>Gr(l))}else tn.texSubImage3D(e,t,r,n,o,i,a,s,c,A,null)},glUniform1f:function(e,t){tn.uniform1f(Xr(e),t)},glUniform1i:function(e,t){tn.uniform1i(Xr(e),t)},glUniform2fv:function(e,t,r){if(Tr.currentContext.version>=2)tn.uniform2fv(Xr(e),H,r>>2,2*t);else{if(t<=144)for(var n=Wr[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);tn.uniform2fv(Xr(e),n)}},glUniform4fv:function(e,t,r){if(Tr.currentContext.version>=2)tn.uniform4fv(Xr(e),H,r>>2,4*t);else{if(t<=72){var n=Wr[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);tn.uniform4fv(Xr(e),n)}},glUniform4iv:function(e,t,r){if(Tr.currentContext.version>=2)tn.uniform4iv(Xr(e),j,r>>2,4*t);else{if(t<=72)for(var n=Vr[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);tn.uniform4iv(Xr(e),n)}},glUniformBlockBinding:function(e,t,r){e=Tr.programs[e],tn.uniformBlockBinding(e,t,r)},glUniformMatrix4fv:function(e,t,r,n){if(Tr.currentContext.version>=2)tn.uniformMatrix4fv(Xr(e),!!r,H,n>>2,16*t);else{if(t<=18){var o=Wr[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);tn.uniformMatrix4fv(Xr(e),!!r,o)}},glUseProgram:function(e){e=Tr.programs[e],tn.useProgram(e),tn.currentProgram=e},glVertexAttribPointer:function(e,t,r,n,o,i){var a=Tr.currentContext.clientBuffers[e];if(!tn.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,tn.vertexAttribPointer(e,t,r,!!n,o,i)},glViewport:function(e,t,r,n){tn.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=Z("GMT")),j[r+40>>2]=e.GMTString,r},invoke_diii:function(e,t,r,n){var o=yn();try{return re.get(e)(t,r,n)}catch(e){if(_n(o),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_i:function(e){var t=yn();try{return re.get(e)()}catch(e){if(_n(t),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_ii:function(e,t){var r=yn();try{return re.get(e)(t)}catch(e){if(_n(r),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_iii:function(e,t,r){var n=yn();try{return re.get(e)(t,r)}catch(e){if(_n(n),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_iiii:function(e,t,r,n){var o=yn();try{return re.get(e)(t,r,n)}catch(e){if(_n(o),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_iiiii:function(e,t,r,n,o){var i=yn();try{return re.get(e)(t,r,n,o)}catch(e){if(_n(i),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_iiiiii:function(e,t,r,n,o,i){var a=yn();try{return re.get(e)(t,r,n,o,i)}catch(e){if(_n(a),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_iiiiiii:function(e,t,r,n,o,i,a){var s=yn();try{return re.get(e)(t,r,n,o,i,a)}catch(e){if(_n(s),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_iiiiiiiddi:function(e,t,r,n,o,i,a,s,c,A){var u=yn();try{return re.get(e)(t,r,n,o,i,a,s,c,A)}catch(e){if(_n(u),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_iiiiiiii:function(e,t,r,n,o,i,a,s){var c=yn();try{return re.get(e)(t,r,n,o,i,a,s)}catch(e){if(_n(c),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_iiiiiiiii:function(e,t,r,n,o,i,a,s,c){var A=yn();try{return re.get(e)(t,r,n,o,i,a,s,c)}catch(e){if(_n(A),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_v:function(e){var t=yn();try{re.get(e)()}catch(e){if(_n(t),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_vdiii:function(e,t,r,n,o){var i=yn();try{re.get(e)(t,r,n,o)}catch(e){if(_n(i),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_vi:function(e,t){var r=yn();try{re.get(e)(t)}catch(e){if(_n(r),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_vididdii:function(e,t,r,n,o,i,a,s){var c=yn();try{re.get(e)(t,r,n,o,i,a,s)}catch(e){if(_n(c),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_vidii:function(e,t,r,n,o){var i=yn();try{re.get(e)(t,r,n,o)}catch(e){if(_n(i),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_vii:function(e,t,r){var n=yn();try{re.get(e)(t,r)}catch(e){if(_n(n),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viid:function(e,t,r,n){var o=yn();try{re.get(e)(t,r,n)}catch(e){if(_n(o),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viidi:function(e,t,r,n,o){var i=yn();try{re.get(e)(t,r,n,o)}catch(e){if(_n(i),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viididii:function(e,t,r,n,o,i,a,s){var c=yn();try{re.get(e)(t,r,n,o,i,a,s)}catch(e){if(_n(c),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viii:function(e,t,r,n){var o=yn();try{re.get(e)(t,r,n)}catch(e){if(_n(o),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiid:function(e,t,r,n,o){var i=yn();try{re.get(e)(t,r,n,o)}catch(e){if(_n(i),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiidd:function(e,t,r,n,o,i){var a=yn();try{re.get(e)(t,r,n,o,i)}catch(e){if(_n(a),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiddi:function(e,t,r,n,o,i,a){var s=yn();try{re.get(e)(t,r,n,o,i,a)}catch(e){if(_n(s),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiidi:function(e,t,r,n,o,i){var a=yn();try{re.get(e)(t,r,n,o,i)}catch(e){if(_n(a),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiii:function(e,t,r,n,o){var i=yn();try{re.get(e)(t,r,n,o)}catch(e){if(_n(i),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiid:function(e,t,r,n,o,i){var a=yn();try{re.get(e)(t,r,n,o,i)}catch(e){if(_n(a),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiidi:function(e,t,r,n,o,i,a){var s=yn();try{re.get(e)(t,r,n,o,i,a)}catch(e){if(_n(s),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiidid:function(e,t,r,n,o,i,a,s){var c=yn();try{re.get(e)(t,r,n,o,i,a,s)}catch(e){if(_n(c),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiidiidiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d,g,f,h){var p=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u,l,d,g,f,h)}catch(e){if(_n(p),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiifiifiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d,g,f,h){var p=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u,l,d,g,f,h)}catch(e){if(_n(p),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiii:function(e,t,r,n,o,i){var a=yn();try{re.get(e)(t,r,n,o,i)}catch(e){if(_n(a),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiid:function(e,t,r,n,o,i,a){var s=yn();try{re.get(e)(t,r,n,o,i,a)}catch(e){if(_n(s),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiif:function(e,t,r,n,o,i,a){var s=yn();try{re.get(e)(t,r,n,o,i,a)}catch(e){if(_n(s),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiii:function(e,t,r,n,o,i,a){var s=yn();try{re.get(e)(t,r,n,o,i,a)}catch(e){if(_n(s),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiid:function(e,t,r,n,o,i,a,s){var c=yn();try{re.get(e)(t,r,n,o,i,a,s)}catch(e){if(_n(c),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiif:function(e,t,r,n,o,i,a,s){var c=yn();try{re.get(e)(t,r,n,o,i,a,s)}catch(e){if(_n(c),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiii:function(e,t,r,n,o,i,a,s){var c=yn();try{re.get(e)(t,r,n,o,i,a,s)}catch(e){if(_n(c),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiiddi:function(e,t,r,n,o,i,a,s,c,A,u){var l=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u)}catch(e){if(_n(l),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiidiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d){var g=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u,l,d)}catch(e){if(_n(g),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiifiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d){var g=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u,l,d)}catch(e){if(_n(g),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiii:function(e,t,r,n,o,i,a,s,c){var A=yn();try{re.get(e)(t,r,n,o,i,a,s,c)}catch(e){if(_n(A),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiiidd:function(e,t,r,n,o,i,a,s,c,A,u){var l=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u)}catch(e){if(_n(l),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiiidf:function(e,t,r,n,o,i,a,s,c,A,u){var l=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u)}catch(e){if(_n(l),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiiii:function(e,t,r,n,o,i,a,s,c,A){var u=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A)}catch(e){if(_n(u),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiiiidd:function(e,t,r,n,o,i,a,s,c,A,u,l){var d=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u,l)}catch(e){if(_n(d),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiiiiddi:function(e,t,r,n,o,i,a,s,c,A,u,l,d){var g=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u,l,d)}catch(e){if(_n(g),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u){var l=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u)}catch(e){if(_n(l),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiiiiiddi:function(e,t,r,n,o,i,a,s,c,A,u,l,d,g){var f=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u,l,d,g)}catch(e){if(_n(f),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u,l){var d=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u,l)}catch(e){if(_n(d),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d){var g=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u,l,d)}catch(e){if(_n(g),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},invoke_viiiiiiiiiiiii:function(e,t,r,n,o,i,a,s,c,A,u,l,d,g){var f=yn();try{re.get(e)(t,r,n,o,i,a,s,c,A,u,l,d,g)}catch(e){if(_n(f),e!==e+0&&"longjmp"!==e)throw e;Cn(1,0)}},llvm_eh_typeid_for:function(e){return e},localtime_r:function(e,t){zr();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 c=j[En()+(s?4:0)>>2];return j[t+40>>2]=c,t},mktime:function(e){zr();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 c=Math.max(a,i),A=r>0?s:c;t.setTime(t.getTime()+6e4*(A-n))}j[e+24>>2]=t.getDay();var u=(t.getTime()-o.getTime())/864e5|0;return j[e+28>>2]=u,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){vn(e)},setTempRet0:function(e){C(e)},strftime:en,strftime_l:function(e,t,r,n){return en(e,t,r,n)}},dn=(function(){var e={env:ln,wasi_snapshot_preview1:ln};function t(e,t){var r,n=e.exports;o.asm=n,T(b=o.asm.memory,"memory not found in wasm exports"),ee(b.buffer),T(re=o.asm.__indirect_function_table,"table not found in wasm exports"),r=o.asm.__wasm_call_ctors,se.unshift(r),Ie("wasm-instantiate")}me("wasm-instantiate");var r=o;function i(e){T(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(!_&&(u||l)){if("function"==typeof fetch&&!De(_e))return fetch(_e,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+_e+"'";return e.arrayBuffer()})).catch((function(){return Te(_e)}));if(h)return new Promise((function(e,t){h(_e,(function(t){e(new Uint8Array(t))}),t)}))}return Promise.resolve().then((function(){return Te(_e)}))}().then((function(t){return WebAssembly.instantiate(t,e)})).then(t,(function(e){I("failed to asynchronously prepare wasm: "+e),De(_e)&&I("warning: Loading from a file URI ("+_e+") 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"),ye(e)}))}if(o.instantiateWasm)try{return o.instantiateWasm(e,t)}catch(e){return I("Module.instantiateWasm callback failed with error: "+e),!1}(_||"function"!=typeof WebAssembly.instantiateStreaming||Be(_e)||De(_e)||"function"!=typeof fetch?a(i):fetch(_e,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(i,(function(e){return I("wasm streaming compile failed: "+e),I("falling back to ArrayBuffer instantiation"),a(i)}))}))).catch(n)}(),o.___wasm_call_ctors=Oe("__wasm_call_ctors"),o._free=Oe("free")),gn=o._malloc=Oe("malloc"),fn=o.___errno_location=Oe("__errno_location"),hn=(o._fflush=Oe("fflush"),o.___getTypeName=Oe("__getTypeName")),pn=(o.___embind_register_native_and_builtin_types=Oe("__embind_register_native_and_builtin_types"),o._emscripten_main_thread_process_queued_calls=Oe("emscripten_main_thread_process_queued_calls"),o._emscripten_stack_get_end=function(){return(pn=o._emscripten_stack_get_end=o.asm.emscripten_stack_get_end).apply(null,arguments)}),En=o.__get_tzname=Oe("_get_tzname"),mn=o.__get_daylight=Oe("_get_daylight"),In=o.__get_timezone=Oe("_get_timezone"),yn=o.stackSave=Oe("stackSave"),_n=o.stackRestore=Oe("stackRestore"),wn=(o.stackAlloc=Oe("stackAlloc"),o._emscripten_stack_init=function(){return(wn=o._emscripten_stack_init=o.asm.emscripten_stack_init).apply(null,arguments)}),Cn=(o._emscripten_stack_get_free=function(){return(o._emscripten_stack_get_free=o.asm.emscripten_stack_get_free).apply(null,arguments)},o._saveSetjmp=Oe("saveSetjmp"),o._setThrew=Oe("setThrew")),bn=o.___cxa_can_catch=Oe("__cxa_can_catch"),Bn=o.___cxa_is_pointer_type=Oe("__cxa_is_pointer_type"),Dn=o._memalign=Oe("memalign");o._emscripten_builtin_malloc=Oe("emscripten_builtin_malloc"),o._emscripten_builtin_free=Oe("emscripten_builtin_free"),o._emscripten_builtin_memalign=Oe("emscripten_builtin_memalign"),o.dynCall_jii=Oe("dynCall_jii"),o.dynCall_viji=Oe("dynCall_viji"),o.dynCall_jjj=Oe("dynCall_jjj"),o.dynCall_iiiijj=Oe("dynCall_iiiijj"),o.dynCall_viijj=Oe("dynCall_viijj"),o.dynCall_viiijjjj=Oe("dynCall_viiijjjj"),o.dynCall_ji=Oe("dynCall_ji"),o.dynCall_vij=Oe("dynCall_vij"),o.dynCall_viijii=Oe("dynCall_viijii"),o.dynCall_vj=Oe("dynCall_vj"),o.dynCall_viij=Oe("dynCall_viij"),o.dynCall_viiiiij=Oe("dynCall_viiiiij"),o.dynCall_iijjiiii=Oe("dynCall_iijjiiii"),o.dynCall_jiji=Oe("dynCall_jiji"),o.dynCall_iiiiij=Oe("dynCall_iiiiij"),o.dynCall_iiiiijj=Oe("dynCall_iiiiijj"),o.dynCall_iiiiiijj=Oe("dynCall_iiiiiijj");function On(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Tn(e){function t(){un||(un=!0,o.calledRun=!0,O||(ie(),T(!ue),ue=!0,o.noFSInit||qe.init.initialized||qe.init(),qe.ignorePermissions=!1,ze.init(),ke(se),r(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),T(!o._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),function(){if(ie(),o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)e=o.postRun.shift(),Ae.unshift(e);var e;ke(Ae)}()))}e=e||s,ge>0||(wn(),oe(),function(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)e=o.preRun.shift(),ae.unshift(e);var e;ke(ae)}(),ge>0||(o.setStatus?(o.setStatus("Running..."),setTimeout((function(){setTimeout((function(){o.setStatus("")}),1),t()}),1)):t(),ie()))}function vn(e){D=e,de()||(o.onExit&&o.onExit(e),O=!0),A(e,new On(e))}if(Object.getOwnPropertyDescriptor(o,"intArrayFromString")||(o.intArrayFromString=function(){ye("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"intArrayToString")||(o.intArrayToString=function(){ye("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ccall")||(o.ccall=function(){ye("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"cwrap")||(o.cwrap=function(){ye("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setValue")||(o.setValue=function(){ye("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getValue")||(o.getValue=function(){ye("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"allocate")||(o.allocate=function(){ye("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF8ArrayToString")||(o.UTF8ArrayToString=function(){ye("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF8ToString")||(o.UTF8ToString=function(){ye("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF8Array")||(o.stringToUTF8Array=function(){ye("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF8")||(o.stringToUTF8=function(){ye("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"lengthBytesUTF8")||(o.lengthBytesUTF8=function(){ye("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackTrace")||(o.stackTrace=function(){ye("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnPreRun")||(o.addOnPreRun=function(){ye("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnInit")||(o.addOnInit=function(){ye("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnPreMain")||(o.addOnPreMain=function(){ye("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnExit")||(o.addOnExit=function(){ye("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnPostRun")||(o.addOnPostRun=function(){ye("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeStringToMemory")||(o.writeStringToMemory=function(){ye("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeArrayToMemory")||(o.writeArrayToMemory=function(){ye("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeAsciiToMemory")||(o.writeAsciiToMemory=function(){ye("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.addRunDependency=me,o.removeRunDependency=Ie,Object.getOwnPropertyDescriptor(o,"FS_createFolder")||(o.FS_createFolder=function(){ye("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.FS_createPath=qe.createPath,o.FS_createDataFile=qe.createDataFile,o.FS_createPreloadedFile=qe.createPreloadedFile,o.FS_createLazyFile=qe.createLazyFile,Object.getOwnPropertyDescriptor(o,"FS_createLink")||(o.FS_createLink=function(){ye("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.FS_createDevice=qe.createDevice,o.FS_unlink=qe.unlink,Object.getOwnPropertyDescriptor(o,"getLEB")||(o.getLEB=function(){ye("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getFunctionTables")||(o.getFunctionTables=function(){ye("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"alignFunctionTables")||(o.alignFunctionTables=function(){ye("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerFunctions")||(o.registerFunctions=function(){ye("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addFunction")||(o.addFunction=function(){ye("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"removeFunction")||(o.removeFunction=function(){ye("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getFuncWrapper")||(o.getFuncWrapper=function(){ye("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"prettyPrint")||(o.prettyPrint=function(){ye("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"dynCall")||(o.dynCall=function(){ye("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getCompilerSetting")||(o.getCompilerSetting=function(){ye("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"print")||(o.print=function(){ye("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"printErr")||(o.printErr=function(){ye("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getTempRet0")||(o.getTempRet0=function(){ye("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setTempRet0")||(o.setTempRet0=function(){ye("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"callMain")||(o.callMain=function(){ye("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"abort")||(o.abort=function(){ye("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"keepRuntimeAlive")||(o.keepRuntimeAlive=function(){ye("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"zeroMemory")||(o.zeroMemory=function(){ye("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToNewUTF8")||(o.stringToNewUTF8=function(){ye("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setFileTime")||(o.setFileTime=function(){ye("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscripten_realloc_buffer")||(o.emscripten_realloc_buffer=function(){ye("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ENV")||(o.ENV=function(){ye("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ERRNO_CODES")||(o.ERRNO_CODES=function(){ye("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ERRNO_MESSAGES")||(o.ERRNO_MESSAGES=function(){ye("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setErrNo")||(o.setErrNo=function(){ye("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetPton4")||(o.inetPton4=function(){ye("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetNtop4")||(o.inetNtop4=function(){ye("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetPton6")||(o.inetPton6=function(){ye("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetNtop6")||(o.inetNtop6=function(){ye("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readSockaddr")||(o.readSockaddr=function(){ye("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeSockaddr")||(o.writeSockaddr=function(){ye("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"DNS")||(o.DNS=function(){ye("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getHostByName")||(o.getHostByName=function(){ye("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GAI_ERRNO_MESSAGES")||(o.GAI_ERRNO_MESSAGES=function(){ye("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"Protocols")||(o.Protocols=function(){ye("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"Sockets")||(o.Sockets=function(){ye("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getRandomDevice")||(o.getRandomDevice=function(){ye("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"traverseStack")||(o.traverseStack=function(){ye("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UNWIND_CACHE")||(o.UNWIND_CACHE=function(){ye("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"withBuiltinMalloc")||(o.withBuiltinMalloc=function(){ye("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readAsmConstArgsArray")||(o.readAsmConstArgsArray=function(){ye("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readAsmConstArgs")||(o.readAsmConstArgs=function(){ye("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"mainThreadEM_ASM")||(o.mainThreadEM_ASM=function(){ye("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"jstoi_q")||(o.jstoi_q=function(){ye("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"jstoi_s")||(o.jstoi_s=function(){ye("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getExecutableName")||(o.getExecutableName=function(){ye("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"listenOnce")||(o.listenOnce=function(){ye("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"autoResumeAudioContext")||(o.autoResumeAudioContext=function(){ye("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"dynCallLegacy")||(o.dynCallLegacy=function(){ye("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getDynCaller")||(o.getDynCaller=function(){ye("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"dynCall")||(o.dynCall=function(){ye("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"callRuntimeCallbacks")||(o.callRuntimeCallbacks=function(){ye("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runtimeKeepalivePush")||(o.runtimeKeepalivePush=function(){ye("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runtimeKeepalivePop")||(o.runtimeKeepalivePop=function(){ye("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"callUserCallback")||(o.callUserCallback=function(){ye("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"maybeExit")||(o.maybeExit=function(){ye("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"safeSetTimeout")||(o.safeSetTimeout=function(){ye("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"asmjsMangle")||(o.asmjsMangle=function(){ye("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"asyncLoad")||(o.asyncLoad=function(){ye("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"alignMemory")||(o.alignMemory=function(){ye("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"mmapAlloc")||(o.mmapAlloc=function(){ye("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"reallyNegative")||(o.reallyNegative=function(){ye("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"unSign")||(o.unSign=function(){ye("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"reSign")||(o.reSign=function(){ye("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"formatString")||(o.formatString=function(){ye("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PATH")||(o.PATH=function(){ye("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PATH_FS")||(o.PATH_FS=function(){ye("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SYSCALLS")||(o.SYSCALLS=function(){ye("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"syscallMmap2")||(o.syscallMmap2=function(){ye("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"syscallMunmap")||(o.syscallMunmap=function(){ye("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getSocketFromFD")||(o.getSocketFromFD=function(){ye("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getSocketAddress")||(o.getSocketAddress=function(){ye("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"JSEvents")||(o.JSEvents=function(){ye("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerKeyEventCallback")||(o.registerKeyEventCallback=function(){ye("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"specialHTMLTargets")||(o.specialHTMLTargets=function(){ye("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"findEventTarget")||(o.findEventTarget=function(){ye("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"findCanvasEventTarget")||(o.findCanvasEventTarget=function(){ye("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getBoundingClientRect")||(o.getBoundingClientRect=function(){ye("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillMouseEventData")||(o.fillMouseEventData=function(){ye("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerMouseEventCallback")||(o.registerMouseEventCallback=function(){ye("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerWheelEventCallback")||(o.registerWheelEventCallback=function(){ye("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerUiEventCallback")||(o.registerUiEventCallback=function(){ye("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerFocusEventCallback")||(o.registerFocusEventCallback=function(){ye("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillDeviceOrientationEventData")||(o.fillDeviceOrientationEventData=function(){ye("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerDeviceOrientationEventCallback")||(o.registerDeviceOrientationEventCallback=function(){ye("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillDeviceMotionEventData")||(o.fillDeviceMotionEventData=function(){ye("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerDeviceMotionEventCallback")||(o.registerDeviceMotionEventCallback=function(){ye("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"screenOrientation")||(o.screenOrientation=function(){ye("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillOrientationChangeEventData")||(o.fillOrientationChangeEventData=function(){ye("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerOrientationChangeEventCallback")||(o.registerOrientationChangeEventCallback=function(){ye("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillFullscreenChangeEventData")||(o.fillFullscreenChangeEventData=function(){ye("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerFullscreenChangeEventCallback")||(o.registerFullscreenChangeEventCallback=function(){ye("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerRestoreOldStyle")||(o.registerRestoreOldStyle=function(){ye("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"hideEverythingExceptGivenElement")||(o.hideEverythingExceptGivenElement=function(){ye("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"restoreHiddenElements")||(o.restoreHiddenElements=function(){ye("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setLetterbox")||(o.setLetterbox=function(){ye("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"currentFullscreenStrategy")||(o.currentFullscreenStrategy=function(){ye("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"restoreOldWindowedStyle")||(o.restoreOldWindowedStyle=function(){ye("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"softFullscreenResizeWebGLRenderTarget")||(o.softFullscreenResizeWebGLRenderTarget=function(){ye("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"doRequestFullscreen")||(o.doRequestFullscreen=function(){ye("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillPointerlockChangeEventData")||(o.fillPointerlockChangeEventData=function(){ye("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerPointerlockChangeEventCallback")||(o.registerPointerlockChangeEventCallback=function(){ye("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerPointerlockErrorEventCallback")||(o.registerPointerlockErrorEventCallback=function(){ye("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"requestPointerLock")||(o.requestPointerLock=function(){ye("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillVisibilityChangeEventData")||(o.fillVisibilityChangeEventData=function(){ye("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerVisibilityChangeEventCallback")||(o.registerVisibilityChangeEventCallback=function(){ye("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerTouchEventCallback")||(o.registerTouchEventCallback=function(){ye("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillGamepadEventData")||(o.fillGamepadEventData=function(){ye("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerGamepadEventCallback")||(o.registerGamepadEventCallback=function(){ye("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerBeforeUnloadEventCallback")||(o.registerBeforeUnloadEventCallback=function(){ye("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillBatteryEventData")||(o.fillBatteryEventData=function(){ye("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"battery")||(o.battery=function(){ye("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerBatteryEventCallback")||(o.registerBatteryEventCallback=function(){ye("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setCanvasElementSize")||(o.setCanvasElementSize=function(){ye("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getCanvasElementSize")||(o.getCanvasElementSize=function(){ye("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"polyfillSetImmediate")||(o.polyfillSetImmediate=function(){ye("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"demangle")||(o.demangle=function(){ye("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"demangleAll")||(o.demangleAll=function(){ye("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"jsStackTrace")||(o.jsStackTrace=function(){ye("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackTrace")||(o.stackTrace=function(){ye("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getEnvStrings")||(o.getEnvStrings=function(){ye("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"checkWasiClock")||(o.checkWasiClock=function(){ye("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToI64")||(o.writeI53ToI64=function(){ye("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToI64Clamped")||(o.writeI53ToI64Clamped=function(){ye("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToI64Signaling")||(o.writeI53ToI64Signaling=function(){ye("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToU64Clamped")||(o.writeI53ToU64Clamped=function(){ye("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToU64Signaling")||(o.writeI53ToU64Signaling=function(){ye("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readI53FromI64")||(o.readI53FromI64=function(){ye("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readI53FromU64")||(o.readI53FromU64=function(){ye("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"convertI32PairToI53")||(o.convertI32PairToI53=function(){ye("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"convertU32PairToI53")||(o.convertU32PairToI53=function(){ye("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"uncaughtExceptionCount")||(o.uncaughtExceptionCount=function(){ye("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exceptionLast")||(o.exceptionLast=function(){ye("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exceptionCaught")||(o.exceptionCaught=function(){ye("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ExceptionInfo")||(o.ExceptionInfo=function(){ye("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"CatchInfo")||(o.CatchInfo=function(){ye("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exception_addRef")||(o.exception_addRef=function(){ye("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exception_decRef")||(o.exception_decRef=function(){ye("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"Browser")||(o.Browser=function(){ye("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"funcWrappers")||(o.funcWrappers=function(){ye("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getFuncWrapper")||(o.getFuncWrapper=function(){ye("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setMainLoop")||(o.setMainLoop=function(){ye("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"wget")||(o.wget=function(){ye("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"FS")||(o.FS=function(){ye("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"MEMFS")||(o.MEMFS=function(){ye("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"TTY")||(o.TTY=function(){ye("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PIPEFS")||(o.PIPEFS=function(){ye("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SOCKFS")||(o.SOCKFS=function(){ye("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"_setNetworkCallback")||(o._setNetworkCallback=function(){ye("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"tempFixedLengthArray")||(o.tempFixedLengthArray=function(){ye("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"miniTempWebGLFloatBuffers")||(o.miniTempWebGLFloatBuffers=function(){ye("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"heapObjectForWebGLType")||(o.heapObjectForWebGLType=function(){ye("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"heapAccessShiftForWebGLHeap")||(o.heapAccessShiftForWebGLHeap=function(){ye("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.GL=Tr,Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGet")||(o.emscriptenWebGLGet=function(){ye("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"computeUnpackAlignedImageSize")||(o.computeUnpackAlignedImageSize=function(){ye("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetTexPixelData")||(o.emscriptenWebGLGetTexPixelData=function(){ye("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetUniform")||(o.emscriptenWebGLGetUniform=function(){ye("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"webglGetUniformLocation")||(o.webglGetUniformLocation=function(){ye("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"webglPrepareUniformLocationsBeforeFirstUse")||(o.webglPrepareUniformLocationsBeforeFirstUse=function(){ye("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"webglGetLeftBracePos")||(o.webglGetLeftBracePos=function(){ye("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetVertexAttrib")||(o.emscriptenWebGLGetVertexAttrib=function(){ye("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetBufferBinding")||(o.emscriptenWebGLGetBufferBinding=function(){ye("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLValidateMapBufferTarget")||(o.emscriptenWebGLValidateMapBufferTarget=function(){ye("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeGLArray")||(o.writeGLArray=function(){ye("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"AL")||(o.AL=function(){ye("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_unicode")||(o.SDL_unicode=function(){ye("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_ttfContext")||(o.SDL_ttfContext=function(){ye("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_audio")||(o.SDL_audio=function(){ye("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL")||(o.SDL=function(){ye("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_gfx")||(o.SDL_gfx=function(){ye("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLUT")||(o.GLUT=function(){ye("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"EGL")||(o.EGL=function(){ye("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLFW_Window")||(o.GLFW_Window=function(){ye("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLFW")||(o.GLFW=function(){ye("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLEW")||(o.GLEW=function(){ye("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"IDBStore")||(o.IDBStore=function(){ye("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runAndAbortIfError")||(o.runAndAbortIfError=function(){ye("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_handle_array")||(o.emval_handle_array=function(){ye("'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(){ye("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_symbols")||(o.emval_symbols=function(){ye("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_emval")||(o.init_emval=function(){ye("'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(){ye("'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(){ye("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getStringOrSymbol")||(o.getStringOrSymbol=function(){ye("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"requireHandle")||(o.requireHandle=function(){ye("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_newers")||(o.emval_newers=function(){ye("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"craftEmvalAllocator")||(o.craftEmvalAllocator=function(){ye("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_get_global")||(o.emval_get_global=function(){ye("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_methodCallers")||(o.emval_methodCallers=function(){ye("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"InternalError")||(o.InternalError=function(){ye("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"BindingError")||(o.BindingError=function(){ye("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UnboundTypeError")||(o.UnboundTypeError=function(){ye("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PureVirtualError")||(o.PureVirtualError=function(){ye("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_embind")||(o.init_embind=function(){ye("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwInternalError")||(o.throwInternalError=function(){ye("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwBindingError")||(o.throwBindingError=function(){ye("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwUnboundTypeError")||(o.throwUnboundTypeError=function(){ye("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ensureOverloadTable")||(o.ensureOverloadTable=function(){ye("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exposePublicSymbol")||(o.exposePublicSymbol=function(){ye("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"replacePublicSymbol")||(o.replacePublicSymbol=function(){ye("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"extendError")||(o.extendError=function(){ye("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"createNamedFunction")||(o.createNamedFunction=function(){ye("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registeredInstances")||(o.registeredInstances=function(){ye("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getBasestPointer")||(o.getBasestPointer=function(){ye("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerInheritedInstance")||(o.registerInheritedInstance=function(){ye("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"unregisterInheritedInstance")||(o.unregisterInheritedInstance=function(){ye("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getInheritedInstance")||(o.getInheritedInstance=function(){ye("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getInheritedInstanceCount")||(o.getInheritedInstanceCount=function(){ye("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getLiveInheritedInstances")||(o.getLiveInheritedInstances=function(){ye("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registeredTypes")||(o.registeredTypes=function(){ye("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"awaitingDependencies")||(o.awaitingDependencies=function(){ye("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"typeDependencies")||(o.typeDependencies=function(){ye("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registeredPointers")||(o.registeredPointers=function(){ye("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerType")||(o.registerType=function(){ye("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"whenDependentTypesAreResolved")||(o.whenDependentTypesAreResolved=function(){ye("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"embind_charCodes")||(o.embind_charCodes=function(){ye("'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(){ye("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readLatin1String")||(o.readLatin1String=function(){ye("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getTypeName")||(o.getTypeName=function(){ye("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"heap32VectorToArray")||(o.heap32VectorToArray=function(){ye("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"requireRegisteredType")||(o.requireRegisteredType=function(){ye("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getShiftFromSize")||(o.getShiftFromSize=function(){ye("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"integerReadValueFromPointer")||(o.integerReadValueFromPointer=function(){ye("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"enumReadValueFromPointer")||(o.enumReadValueFromPointer=function(){ye("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"floatReadValueFromPointer")||(o.floatReadValueFromPointer=function(){ye("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"simpleReadValueFromPointer")||(o.simpleReadValueFromPointer=function(){ye("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runDestructors")||(o.runDestructors=function(){ye("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"new_")||(o.new_=function(){ye("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"craftInvokerFunction")||(o.craftInvokerFunction=function(){ye("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"embind__requireFunction")||(o.embind__requireFunction=function(){ye("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"tupleRegistrations")||(o.tupleRegistrations=function(){ye("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"structRegistrations")||(o.structRegistrations=function(){ye("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"genericPointerToWireType")||(o.genericPointerToWireType=function(){ye("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"constNoSmartPtrRawPointerToWireType")||(o.constNoSmartPtrRawPointerToWireType=function(){ye("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"nonConstNoSmartPtrRawPointerToWireType")||(o.nonConstNoSmartPtrRawPointerToWireType=function(){ye("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_RegisteredPointer")||(o.init_RegisteredPointer=function(){ye("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer")||(o.RegisteredPointer=function(){ye("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_getPointee")||(o.RegisteredPointer_getPointee=function(){ye("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_destructor")||(o.RegisteredPointer_destructor=function(){ye("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_deleteObject")||(o.RegisteredPointer_deleteObject=function(){ye("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_fromWireType")||(o.RegisteredPointer_fromWireType=function(){ye("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runDestructor")||(o.runDestructor=function(){ye("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"releaseClassHandle")||(o.releaseClassHandle=function(){ye("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"finalizationGroup")||(o.finalizationGroup=function(){ye("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"detachFinalizer_deps")||(o.detachFinalizer_deps=function(){ye("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"detachFinalizer")||(o.detachFinalizer=function(){ye("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"attachFinalizer")||(o.attachFinalizer=function(){ye("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"makeClassHandle")||(o.makeClassHandle=function(){ye("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_ClassHandle")||(o.init_ClassHandle=function(){ye("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle")||(o.ClassHandle=function(){ye("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_isAliasOf")||(o.ClassHandle_isAliasOf=function(){ye("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwInstanceAlreadyDeleted")||(o.throwInstanceAlreadyDeleted=function(){ye("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_clone")||(o.ClassHandle_clone=function(){ye("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_delete")||(o.ClassHandle_delete=function(){ye("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"deletionQueue")||(o.deletionQueue=function(){ye("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_isDeleted")||(o.ClassHandle_isDeleted=function(){ye("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_deleteLater")||(o.ClassHandle_deleteLater=function(){ye("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"flushPendingDeletes")||(o.flushPendingDeletes=function(){ye("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"delayFunction")||(o.delayFunction=function(){ye("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setDelayFunction")||(o.setDelayFunction=function(){ye("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredClass")||(o.RegisteredClass=function(){ye("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"shallowCopyInternalPointer")||(o.shallowCopyInternalPointer=function(){ye("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"downcastPointer")||(o.downcastPointer=function(){ye("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"upcastPointer")||(o.upcastPointer=function(){ye("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"validateThis")||(o.validateThis=function(){ye("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"char_0")||(o.char_0=function(){ye("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"char_9")||(o.char_9=function(){ye("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"makeLegalFunctionName")||(o.makeLegalFunctionName=function(){ye("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetIndexed")||(o.emscriptenWebGLGetIndexed=function(){ye("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"warnOnce")||(o.warnOnce=function(){ye("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackSave")||(o.stackSave=function(){ye("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackRestore")||(o.stackRestore=function(){ye("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackAlloc")||(o.stackAlloc=function(){ye("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"AsciiToString")||(o.AsciiToString=function(){ye("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToAscii")||(o.stringToAscii=function(){ye("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF16ToString")||(o.UTF16ToString=function(){ye("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF16")||(o.stringToUTF16=function(){ye("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"lengthBytesUTF16")||(o.lengthBytesUTF16=function(){ye("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF32ToString")||(o.UTF32ToString=function(){ye("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF32")||(o.stringToUTF32=function(){ye("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"lengthBytesUTF32")||(o.lengthBytesUTF32=function(){ye("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"allocateUTF8")||(o.allocateUTF8=function(){ye("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"allocateUTF8OnStack")||(o.allocateUTF8OnStack=function(){ye("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.writeStackCookie=oe,o.checkStackCookie=ie,Object.getOwnPropertyDescriptor(o,"ALLOC_NORMAL")||Object.defineProperty(o,"ALLOC_NORMAL",{configurable:!0,get:function(){ye("'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(){ye("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),he=function e(){un||Tn(),un||(he=e)},o.run=Tn,o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return Tn(),t.ready}}(),selfie_segmentation_solution_wasm_bin_default=createMediapipeSolutionsWasm2,Module=(()=>{var e="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var r,n,o=t;o.ready=new Promise(((e,t)=>{r=e,n=t}));var i,a=Object.assign({},o),s="";"undefined"!=typeof document&&document.currentScript&&(s=document.currentScript.src),e&&(s=e),s=0!==s.indexOf("blob:")?s.substr(0,s.replace(/[?#].*/,"").lastIndexOf("/")+1):"";var c,A,u=o.print||console.log.bind(console),l=o.printErr||console.error.bind(console);function d(e){if(M(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(o,a),a=null,o.arguments&&o.arguments,o.thisProgram&&o.thisProgram,o.quit&&o.quit,o.wasmBinary&&(c=o.wasmBinary),"object"!=typeof WebAssembly&&T("no native wasm support detected");var g,f,h,p,E,m,I,y,_=!1;var w=[],C=[],b=[];var B=0,D=null,O=null;function T(e){o.onAbort&&o.onAbort(e),l(e="Aborted("+e+")"),_=!0,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw n(t),t}var v,Q,P="data:application/octet-stream;base64,",M=e=>e.startsWith(P);function R(e){return Promise.resolve().then((()=>function(e){if(e==v&&c)return new Uint8Array(c);var t=d(e);if(t)return t;if(i)return i(e);throw"both async and sync fetching of the wasm failed"}(e)))}function S(e,t,r,n){return function(e,t,r){return R(e).then((e=>WebAssembly.instantiate(e,t))).then((e=>e)).then(r,(e=>{l(`failed to asynchronously prepare wasm: ${e}`),T(e)}))}(t,r,n)}M(v="data:application/octet-stream;base64,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IAEoAgA2AgAgAiABKAIENgIEIAIgASgCCDYCCCACIAEoAgw2AgwgAiABKAIQNgIQIAIgASgCFDYCFCACIAEoAhg2AhggAiABKAIcNgIcIAIgASgCIDYCICACIAEoAiQ2AiQgAiABKAIoNgIoIAIgASgCLDYCLCACIAEoAjA2AjAgAiABKAI0NgI0IAIgASgCODYCOCACIAEoAjw2AjwgAUFAayEBIAJBQGsiAiAFTQ0ACwsgAiAETw0BA0AgAiABKAIANgIAIAFBBGohASACQQRqIgIgBEkNAAsMAQsgA0EESQRAIAAhAgwBCyAAIANBBGsiBEsEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAIgAS0AAToAASACIAEtAAI6AAIgAiABLQADOgADIAFBBGohASACQQRqIgIgBE0NAAsLIAIgA0kEQANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIANHDQALCyAACwsAIAEgAiAAEEIaCxIAIAFBAXRBsMoAakECIAAQQgv5AQEEfwJ/IAEQKiECIwBBEGsiBSQAAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0AC0H/AHELIgRBAE8EQAJAIAIgAC0AC0EHdgR/IAAoAghB/////wdxQQFrBUEKCyIDIARrTQRAIAJFDQECfyAALQALQQd2BEAgACgCAAwBCyAACyIDIAQEfyACIANqIAMgBBBFIAEgAkEAIAMgBGogAUsbQQAgASADTxtqBSABCyACEEUgACACIARqIgEQMSAFQQA6AA8gASADaiAFLQAPOgAADAELIAAgAyACIARqIANrIARBACACIAEQRAsgBUEQaiQAIAAMAQsQJwALC/ICAgJ/AX4CQCACRQ0AIAAgAToAACAAIAJqIgNBAWsgAToAACACQQNJDQAgACABOgACIAAgAToAASADQQNrIAE6AAAgA0ECayABOgAAIAJBB0kNACAAIAE6AAMgA0EEayABOgAAIAJBCUkNACAAQQAgAGtBA3EiBGoiAyABQf8BcUGBgoQIbCIBNgIAIAMgAiAEa0F8cSIEaiICQQRrIAE2AgAgBEEJSQ0AIAMgATYCCCADIAE2AgQgAkEIayABNgIAIAJBDGsgATYCACAEQRlJDQAgAyABNgIYIAMgATYCFCADIAE2AhAgAyABNgIMIAJBEGsgATYCACACQRRr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ACACQQA6AA8DQCABBEAgACACLQAPOgAAIAFBAWshASAAQQFqIQAMAQsLIAJBEGokAAsaACAALQALQQd2BEAgACgCCBogACgCABAZCwvmAQEFfyMAQRBrIgUkACMAQSBrIgMkACMAQRBrIgQkACAEIAA2AgwgBCAAIAFqNgIIIAMgBCgCDDYCGCADIAQoAgg2AhwgBEEQaiQAIAMoAhghBCADKAIcIQYjAEEQayIBJAAgASAGNgIMIAIgBCAGIARrIgQQQyABIAIgBGo2AgggAyABKAIMNgIQIAMgASgCCDYCFCABQRBqJAAgAyAAIAMoAhAgAGtqNgIMIAMgAiADKAIUIAJrajYCCCAFIAMoAgw2AgggBSADKAIINgIMIANBIGokACAFKAIMIQcgBUEQaiQAIAcLDwAgAgRAIAAgASACEDILC/UCAQV/IwBBEGsiByQAIAIgAUF/c0Hv////B2pNBEACfyAALQALQQd2BEAgACgCAAwBCyAACyEIIAdBBGoiCSAAIAFB5////wNJBH8gByABQQF0NgIMIAcgASACajYCBCMAQRBrIgIkACAJKAIAIAdBDGoiCigCAEkhCyACQRBqJAAgCiAJIAsbKAIAIgJBC08EfyACQRBqQXBxIgIgAkEBayICIAJBC0YbBUEKC0EBagVB7////wcLEDAgBygCBCECIAcoAggaIAQEQCACIAggBBAjCyAFBEAgAiAEaiAGIAUQIwsgAyAEayEGIAMgBEcEQCACIARqIAVqIAQgCGogBhAjCyABQQpHBEAgCBAZCyAAIAI2AgAgACAAKAIIQYCAgIB4cSAHKAIIQf////8HcXI2AgggACAAKAIIQYCAgIB4cjYCCCAAIAQgBWogBmoiADYCBCAHQQA6AAwgACACaiAHLQAMOgAAIAdBEGokAA8LECcACwoAIAAgASACEEMLuQEBBH8jAEEQayIEJAAgBCACNgIMIwBBoAFrIgMkACADIAAgA0GeAWogARsiBjYClAFBfyEFIAMgAUEBayIAQQAgACABTRs2ApgBIANBAEGQARAmIgBBfzYCTCAAQSA2AiQgAEF/NgJQIAAgAEGfAWo2AiwgACAAQZQBajYCVAJAIAFBAEgEQEGo3gBBPTYCAAwBCyAGQQA6AAAgAEH9CiACQR8QTSEFCyAAQaABaiQAIARBEGokACAFCwQA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KAIARQ0AIAIgBCgCGDYCAAsgAEEBRiEFDAELQQAhBQsgBEFAayQAIAULMQAgACABKAIIQQAQHgRAIAEgAiADED0PCyAAKAIIIgAgASACIAMgACgCACgCHBEGAAsYACAAIAEoAghBABAeBEAgASACIAMQPQsLnQEBAn8jAEFAaiIDJAACf0EBIAAgAUEAEB4NABpBACABRQ0AGkEAIAFBzMwAECAiAUUNABogA0EMakEAQTQQJhogA0EBNgI4IANBfzYCFCADIAA2AhAgAyABNgIIIAEgA0EIaiACKAIAQQEgASgCACgCHBEGACADKAIgIgBBAUYEQCACIAMoAhg2AgALIABBAUYLIQQgA0FAayQAIAQLCgAgACABQQAQHgtOAgF/AXwjAEEQayICJAAgAkEANgIMIAEoAgRBlM8AIAJBDGoQCSEDIAIoAgwiAQRAIAEQAQsgACADRAAAAAAAAAAAYjoAOCACQRBqJAALNwEBfyMAQRBrIgIkACACIAEtADg2AgggAEGUzwAgAkEIahAHNgIEIABBlNUANgIAIAJBEGokAAuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECIaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECIaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACC5wBAQJ/IwBBEGsiAiQAQcgAEBwhASAAKAIEIgAQAiACIAA2AgggAUGELSACQQhqEAc2AgQgAUGU1QA2AgAgAUEBNgIcIAFBlNUANgIYIAFBATYCFCABQZTVADYCECABQQE2AgwgAUGU1QA2AgggAUEAOgAgIAFBADYCRCABQoCAgIAwNwI8IAFBADsANyABQQA7ACsgAkEQaiQAIAELigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBSMAQSBrIgAkAAJAIAVC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBUIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBUIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIBQZH3AEkNACADIQIgBUL///////8/g0KAgICAgIDAAIQiBCEGAkAgAUGB9wBrIghBwABxBEAgAyAIQUBqrYYhBkIAIQIMAQsgCEUNACAGIAitIgeGIAJBwAAgCGutiIQhBiACIAeGIQILIAAgAjcDECAAIAY3AxgCQEGB+AAgAWsiAUHAAHEEQCAEIAFBQGqtiCEDQgAhBAwBCyABRQ0AIARBwAAgAWuthiADIAGtIgKIhCEDIAQgAoghBAsgACADNwMAIAAgBDcDCCAAKQMIQgSGIAApAwAiA0I8iIQhAiAAKQMQIAApAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIABBIGokACAJIAIgBUKAgICAgICAgIB/g4S/OQMAC0ABAn8jAEEQayICJAAgAiABNgIMIAJBlNUANgIIIAJBCGogABEBACEDIAIoAgwiAQRAIAEQAwsgAkEQaiQAIAMLBABCAAsEAEEAC/YCAQh/IwBBIGsiAyQAIAMgACgCHCIENgIQIAAoAhQhBSADIAI2AhwgAyABNgIYIAMgBSAEayIBNgIUIAEgAmohBUECIQcCfwJAAkACQCAAKAI8IANBEGoiAUECIANBDGoQDSIEBH9BqN4AIAQ2AgBBfwVBAAsEQCABIQQMAQsDQCAFIAMoAgwiBkYNAiAGQQBIBEAgASEEDAQLIAEgBiABKAIEIghLIglBA3RqIgQgBiAIQQAgCRtrIgggBCgCAGo2AgAgAUEMQQQgCRtqIgEgASgCACAIazYCACAFIAZrIQUgACgCPCAEIgEgByAJayIHIANBDGoQDSIGBH9BqN4AIAY2AgBBfwVBAAtFDQALCyAFQX9HDQELIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhAgAgwBCyAAQQA2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EGokAAsiAQF+IAEgAq0gA61CIIaEIAQgABEMACIFQiCIpyQBIAWnCzcBAX8jAEEQayICJAAgAiABKAI8NgIIIABB3M8AIAJBCGoQBzYCBCAAQZTVADYCACACQRBqJAALC61KFgBBgAgLlCVzZXRCZWF1dHkALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweAB1bnNpZ25lZCBzaG9ydAB1bnNpZ25lZCBpbnQAaW5pdABmbG9hdAB1aW50NjRfdABibHVyUmFkaXVzAHZlY3RvcgBtaXJyb3IAYXR0YWNoU2hhZGVyAGRlbGV0ZVNoYWRlcgBjcmVhdGVTaGFkZXIAY29tcGlsZVNoYWRlcgB1bnNpZ25lZCBjaGFyAHN0ZDo6ZXhjZXB0aW9uAHJvdGF0aW9uAG5hbgBsaW5rUHJvZ3JhbQBkZWxldGVQcm9ncmFtAGNyZWF0ZVByb2dyYW0AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0V2F0ZXJNYXJrAHN0b3BXYXRlck1hcmsAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgAlZgBjbG9zZQBkb3VibGUAdmJNb2RlAHNoYWRlclNvdXJjZQB2b2lkAHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sATkFOAElORgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxmbG9hdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgB2ZWMyIGMgPSB2X3RleENvb3JkOwB2ZWMyIGMgPSB2ZWMyKDEuMCAtIHZfdGV4Q29vcmQueCwgdl90ZXhDb29yZC55KTsAYyA9IHZlYzIoMS4wIC0gYy54LCAxLjAgLSBjLnkpOwBjID0gdmVjMihjLnksIDEuMCAtIGMueCk7AGMgPSB2ZWMyKDEuMCAtIGMueSwgYy54KTsAQWxsSW4xAC4ALjAsAC4wKSpvKSoAKG51bGwpACkqby55KTsgICAgdmVjMiBjb29yZDIgPSB2ZWMyKGZsb2F0KAAgICAgYyA9IHZlYzIodl90ZXhDb29yZC54LCAxLjAgLSB2X3RleENvb3JkLnkpOyAgICB2ZWMyIGNvb3JkMSA9IHZlYzIoZmxvYXQoACksIChjLnkgLWNvb3JkMS55KSAvIG8ueSAvIGZsb2F0KAApKm8ueSk7ICAgIGlmIChjLnggPiBjb29yZDEueCAmJiBjLnggPCBjb29yZDIueCAmJiBjLnkgPiBjb29yZDEueSAmJiBjLnkgPCBjb29yZDIueSkgeyAgICAgIHZlYzQgd2F0ZXJDb2xvciA9IHRleHR1cmUod2F0ZXJNYXJrLCB2ZWMyKChjLnggLSBjb29yZDEueCkgIC8gby54IC8gZmxvYXQoACkgKiBvLngsIGZsb2F0KABvdXRDb2xvci5yZ2IgKz0gdmVjMygAKTsgICAgICAgdmVjMyBzbW9vdGhDb2xvciA9IG91dENvbG9yLnJnYiArIChvdXRDb2xvci5yZ2ItdmVjMyhoaWdoUGFzcykpKmFscGhhKjAuMTsgICAgICAgc21vb3RoQ29sb3IgPSBjbGFtcChwb3coc21vb3RoQ29sb3IsIHZlYzMoAGcrPUcoYyx2ZWMyKAAgICAgICB2ZWMyIG9mZnNldCA9IHZlYzIoAF0gPSB2X3RleENvb3JkLnh5ICsgb2Zmc2V0ICogdmVjMigAOyAAKSksIHZlYzMoMC4wKSwgdmVjMygxLjApKTsgICAgICB2ZWMzIHNjcmVlbiA9IHZlYzMoMS4wKSAtICh2ZWMzKDEuMCktc21vb3RoQ29sb3IpICogKHZlYzMoMS4wKS1vdXRDb2xvci5yZ2IpOyAgICAgICB2ZWMzIGxpZ2h0ZW4gPSBtYXgoc21vb3RoQ29sb3IsIG91dENvbG9yLnJnYik7ICAgICAgIHZlYzMgYmVhdXR5Q29sb3IgPSBtaXgobWl4KG91dENvbG9yLnJnYiwgc2NyZWVuLCBhbHBoYSksIGxpZ2h0ZW4sIGFscGhhKTsgICAgICBvdXRDb2xvci5yZ2IgPSBtaXgob3V0Q29sb3IucmdiLCBiZWF1dHlDb2xvciwgAAogICAgICBjb25zdCBtYXQzIHNhdHVyYXRlTWF0cml4ID0gbWF0MygxLjExMDIsLTAuMDU5OCwtMC4wNjEsLTAuMDc3NCwxLjA4MjYsLTAuMTE4NiwtMC4wMjI4LC0wLjAyMjgsMS4xNzcyKTsKICAgICAgdmVjMyB3YXJtQ29sb3IgPSBvdXRDb2xvci5yZ2IgKiBzYXR1cmF0ZU1hdHJpeDsKICAgICAgb3V0Q29sb3IucmdiID0gbWl4KG91dENvbG9yLnJnYiwgd2FybUNvbG9yLCAAICAgICAgc2FtcGxlQ29sb3IgPSBzYW1wbGVDb2xvciAvIDYyLjA7ICAgICAgIGZsb2F0IGhpZ2hQYXNzID0gb3V0Q29sb3IuZyAtIHNhbXBsZUNvbG9yICsgMC41OyAgICAgICBjb25zdCBoaWdocCB2ZWMzIFcgPSB2ZWMzKDAuMjk5LDAuNTg3LDAuMTE0KTsgICAgICBmbG9hdCBsdW1pbmFuY2UgPSBkb3Qob3V0Q29sb3IucmdiLCBXKTsgICAgICAgZmxvYXQgYWxwaGEgPSBwb3cobHVtaW5hbmNlLCAAXSkuZyAqIAApKSk7ICAgICAgb3V0Q29sb3IgPSBtaXgob3V0Q29sb3Isd2F0ZXJDb2xvciwgIHdhdGVyQ29sb3IuYSk7ICAgIH0gICAgACk7ICAgIAApOyAgICAgIHZlYzIgYmx1ckNvb3JkaW5hdGVzWzI0XTsgICAgICAAICAgICAgZmxvYXQgc2FtcGxlQ29sb3IgPSBvdXRDb2xvci5nICogMjIuMDsgICAgICAgACN2ZXJzaW9uIDMwMCBlcwogICAgcHJlY2lzaW9uIGhpZ2hwIGZsb2F0OwogICAgdW5pZm9ybSBzYW1wbGVyMkQgZnJhbWU7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBtYXNrOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgYmc7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCB3YXRlck1hcms7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBsYXN0TWFzazsKICAgIHVuaWZvcm0gbWF0NCB1X29mZnNldE1hdHJpeDsKICAgIGluIHZlYzIgdl90ZXhDb29yZDsKICAgIG91dCB2ZWM0IG91dENvbG9yOwogICAgdmVjNCBHKHZlYzIgYyx2ZWMyIHMpewogICAgICByZXR1cm4gdGV4dHVyZShmcmFtZSx0ZXh0dXJlKG1hc2ssYytzKS5hPjAuMz9jOmMrcyk7CiAgICB9CiAgICB2b2lkIG1haW4oKSB7CiAgICAgIAAKICAgICAgdmVjMiBvZmZzZXRNYXNrVVYgPSAodV9vZmZzZXRNYXRyaXggKiB2ZWM0KGMsIDAsIDEpKS54eTsKICAgICAgZmxvYXQgaXNJbnNpZGVYID0gKG9mZnNldE1hc2tVVi54ID49IDAuMCkgJiYgKG9mZnNldE1hc2tVVi54IDw9IDEuMCkgPyAxLjAgOiAwLjA7CiAgICAgIGZsb2F0IGlzSW5zaWRlWSA9IChvZmZzZXRNYXNrVVYueSA+PSAwLjApICYmIChvZmZzZXRNYXNrVVYueSA8PSAxLjApID8gMS4wIDogMC4wOwogICAgICBmbG9hdCBpc0luc2lkZSA9IGlzSW5zaWRlWCAqIGlzSW5zaWRlWTsKICAgICAgZmxvYXQgbWFza2VkQWxwaGEgPSB0ZXh0dXJlKG1hc2ssIG9mZnNldE1hc2tVVikuYSAqIGlzSW5zaWRlOwogICAgICBtYXNrZWRBbHBoYSA9IG1hc2tlZEFscGhhPDAuNT8yLjAqbWFza2VkQWxwaGEqbWFza2VkQWxwaGE6MS4wLTIuMCooMS4wLW1hc2tlZEFscGhhKSooMS4wLW1hc2tlZEFscGhhKTsKICAgICAgc3JjX2NvbG9yID0gdGV4dHVyZShmcmFtZSwgb2Zmc2V0TWFza1VWICwgaXNJbnNpZGUpOwogICAgICBvdXRDb2xvciA9IG1peCh0ZXh0dXJlKGJnLCBjKSwgc3JjX2NvbG9yLCBtYXNrZWRBbHBoYSk7CiAgICAACiAgICB2ZWM0IGcgPSB2ZWM0KDAuMCk7CiAgICAACiAgICAgIGMueSA9IDEuMCAtIGMueTsKICAgICAgdmVjNCBzcmNfY29sb3IgPSB0ZXh0dXJlKGZyYW1lLCBjKTsKICAgICAgZmxvYXQgYSA9IHRleHR1cmUobWFzaywgYykuYTsKICAgICAgYSA9IGE8MC41PzIuMCphKmE6MS4wLTIuMCooMS4wLWEpKigxLjAtYSk7CiAgICAgIC8vIGZsb2F0IGEyID0gdGV4dHVyZShsYXN0TWFzaywgYykuYTsKICAgICAgLy8gYTIgPSBhMjwwLjU/Mi4wKmEyKmEyOjEuMC0yLjAqKDEuMC1hMikqKDEuMC1hMik7CiAgICAgIC8vIGZsb2F0IGRlbHRhID0gYSAtIGEyOwogICAgICAvLyBpZiAoZGVsdGEgPCAwLjI1ICYmIGRlbHRhID4gLTAuMjUpCiAgICAgIC8vIHsKICAgICAgLy8gICAgIGEgPSBhICsgMC41KmRlbHRhOwogICAgICAvLyB9CiAgICAgIAogICAgICB2ZWMyIG8gPSAxLjAgLyB2ZWMyKHRleHR1cmVTaXplKGZyYW1lLCAwKSk7CiAgICAACiAgICAgIG91dENvbG9yID0gZzsKICAAI3ZlcnNpb24gMzAwIGVzCmluIHZlYzIgYV9wb3NpdGlvbjsKaW4gdmVjMiBhX3RleENvb3JkOwoKdW5pZm9ybSBtYXQ0IHVfdGV4dHVyZU1hdHJpeDsKCm91dCB2ZWMyIHZfdGV4Q29vcmQ7CnZvaWQgbWFpbigpIHsKICBnbF9Qb3NpdGlvbiA9IHZlYzQoYV9wb3NpdGlvbi54LCBhX3Bvc2l0aW9uLnksIDAsIDEpOwogIHZfdGV4Q29vcmQgPSh1X3RleHR1cmVNYXRyaXggKiB2ZWM0KGFfdGV4Q29vcmQsIDAsIDEpKS54eTsKfQoAc2V0QmVhdXR5ICVmICVmICVmICVmICVmCgBvdXRDb2xvciA9IHNyY19jb2xvcjsKAG91dENvbG9yID0gbWl4KHZlYzQoMC4wLDEuMCwwLjAsMS4wKSxzcmNfY29sb3IsYSk7CgA2QWxsSW4xAEAoAAAYFgAAUDZBbGxJbjEAAAAAxCgAACgWAAAAAAAAIBYAAFBLNkFsbEluMQAAAMQoAABEFgAAAQAAACAWAABpaQB2AHZpADQWAACEFgAATjEwZW1zY3JpcHRlbjN2YWxFAABAKAAAcBYAAGlpaQB2aWlpAEGgLQskfCcAADQWAAAwKAAAMCgAADAoAAAwKAAAMCgAAHZpaWRkZGRkAEHQLQvICHwnAAA0FgAAMCgAADAoAAAwKAAAMCgAAHZpaWRkZGQAfCcAADQWAAB2aWkAfCcAAIQWAACEFgAANBYAAIQWAADcJwAAfCcAAIQWAABgFwAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAAEAoAAAgFwAAhBYAAHwnAACEFgAAhBYAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0loTlNfMTFjaGFyX3RyYWl0c0loRUVOU185YWxsb2NhdG9ySWhFRUVFAABAKAAAeBcAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVOU185YWxsb2NhdG9ySXdFRUVFAABAKAAAwBcAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEc05TXzExY2hhcl90cmFpdHNJRHNFRU5TXzlhbGxvY2F0b3JJRHNFRUVFAAAAQCgAAAgYAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRGlOU18xMWNoYXJfdHJhaXRzSURpRUVOU185YWxsb2NhdG9ySURpRUVFRQAAAEAoAABUGAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3Zp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")||(Q=v,v=o.locateFile?o.locateFile(Q,s):s+Q);var F=e=>{for(;e.length>0;)e.shift()(o)};o.noExitRuntime;function x(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(e){m[this.ptr+4>>2]=e},this.get_type=function(){return m[this.ptr+4>>2]},this.set_destructor=function(e){m[this.ptr+8>>2]=e},this.get_destructor=function(){return m[this.ptr+8>>2]},this.set_caught=function(e){e=e?1:0,g[this.ptr+12|0]=e},this.get_caught=function(){return 0!=g[this.ptr+12|0]},this.set_rethrown=function(e){e=e?1:0,g[this.ptr+13|0]=e},this.get_rethrown=function(){return 0!=g[this.ptr+13|0]},this.init=function(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t)},this.set_adjusted_ptr=function(e){m[this.ptr+16>>2]=e},this.get_adjusted_ptr=function(){return m[this.ptr+16>>2]},this.get_exception_ptr=function(){if(gt(this.get_type()))return m[this.excPtr>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}var k,N,U,j=e=>{for(var t="",r=e;f[r];)t+=k[f[r++]];return t},L={},H={},G={},Y=e=>{throw new N(e)},X=e=>{throw new U(e)},W=(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)V(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 V(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,Z=e=>{},J=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]),ce=(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},ue(Object.create(e,{$$:{value:t}})));function Ae(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?ce(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):ce(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 c=q(t,this.registeredClass,i.registeredClass);return null===c?o.call(this):this.isSmartPointer?ce(i.registeredClass.instancePrototype,{ptrType:i,ptr:c,smartPtrType:this,smartPtr:e}):ce(i.registeredClass.instancePrototype,{ptrType:i,ptr:c})}var ue=e=>"undefined"==typeof FinalizationRegistry?(ue=e=>e,e):(K=new FinalizationRegistry((e=>{J(e.$$)})),Z=e=>K.unregister(e),(ue=e=>{var t=e.$$;if(!!t.smartPtr){var r={$$:t};K.register(e,r,e)}return e})(e));function le(){}var de=(e,t)=>Object.defineProperty(t,"name",{value:e}),ge=(e,t,r)=>{if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||Y(`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 fe(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 he=(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 he(t.$$.ptr,r,this.registeredClass)}function Ee(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.$$||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=he(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,ke.toHandle((()=>o.delete()))),null!==e&&e.push(this.rawDestructor,r)}break;default:Y("Unsupporting sharing policy")}return r}function me(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 he(t.$$.ptr,r,this.registeredClass)}function Ie(e){return this.fromWireType(m[e>>2])}function ye(e,t,r,n,o,i,a,s,c,A,u){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=c,this.rawShare=A,this.rawDestructor=u,o||void 0!==t.baseClass?this.toWireType=Ee:n?(this.toWireType=pe,this.destructorFunction=null):(this.toWireType=me,this.destructorFunction=null)}var _e,we,Ce=[],be=e=>{var t=Ce[e];return t||(e>=Ce.length&&(Ce.length=e+1),Ce[e]=t=_e.get(e)),t},Be=(e,t,r)=>e.includes("j")?((e,t,r)=>{var n=o["dynCall_"+e];return r&&r.length?n.apply(null,[t].concat(r)):n.call(null,t)})(e,t,r):be(t).apply(null,r),De=(e,t)=>{var r,n,o,i=(e=j(e)).includes("j")?(r=e,n=t,o=[],function(){return o.length=0,Object.assign(o,arguments),Be(r,n,o)}):be(t);return"function"!=typeof i&&Y(`unknown function pointer with signature ${e}: ${t}`),i},Oe=e=>{var t=lt(e),r=j(t);return dt(t),r},Te=(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 we(`${e}: `+r.map(Oe).join([", "]))},ve=(e,t)=>{for(var r=[],n=0;n<e;n++)r.push(m[t+4*n>>2]);return r},Qe=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!");for(var s=null!==t[1]&&null!==r,c=!1,A=1;A<t.length;++A)if(null!==t[A]&&void 0===t[A].destructorFunction){c=!0;break}var u="void"!==t[0].name,l=a-2,d=new Array(l),g=[],f=[];return de(e,(function(){var r;arguments.length!==l&&Y(`function ${e} called with ${arguments.length} arguments, expected ${l}`),f.length=0,g.length=s?2:1,g[0]=o,s&&(r=t[1].toWireType(f,this),g[1]=r);for(var i=0;i<l;++i)d[i]=t[i+2].toWireType(f,arguments[i]),g.push(d[i]);return function(e){if(c)Qe(f);else for(var n=s?1:2;n<t.length;n++){var o=1===n?r:d[n-2];null!==t[n].destructorFunction&&t[n].destructorFunction(o)}if(u)return t[0].fromWireType(e)}(n.apply(null,g))}))}var Me=(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`),he(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass));function Re(){this.allocated=[void 0],this.freelist=[]}var Se=new Re,Fe=e=>{e>=Se.reserved&&0==--Se.get(e).refcount&&Se.free(e)},xe=()=>{for(var e=0,t=Se.reserved;t<Se.allocated.length;++t)void 0!==Se.allocated[t]&&++e;return e},ke={toValue:e=>(e||Y("Cannot use deleted val. handle = "+e),Se.get(e).value),toHandle:e=>{switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return Se.allocate({refcount:1,value:e})}}};function Ne(e){return this.fromWireType(E[e>>2])}var Ue,je,Le,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(I[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=>g[e|0]:e=>f[e|0];case 2:return r?e=>h[e>>1]:e=>p[e>>1];case 4:return r?e=>E[e>>2]:e=>m[e>>2];default:throw new TypeError(`invalid integer width (${t}): ${e}`)}},Xe="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,We=(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 c=63&e[t++];if((a=224==(240&a)?(15&a)<<12|s<<6|c:(7&a)<<18|s<<12|c<<6|63&e[t++])<65536)i+=String.fromCharCode(a);else{var A=a-65536;i+=String.fromCharCode(55296|A>>10,56320|1023&A)}}else i+=String.fromCharCode((31&a)<<6|s)}else i+=String.fromCharCode(a)}return i},Ve=(e,t)=>e?We(f,e,t):"",ze="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,$e=(e,t)=>{for(var r=e,n=r>>1,o=n+t/2;!(n>=o)&&p[n];)++n;if((r=n<<1)-e>32&&ze)return ze.decode(f.subarray(e,r));for(var i="",a=0;!(a>=t/2);++a){var s=h[e+2*a>>1];if(0==s)break;i+=String.fromCharCode(s)}return i},Ke=(e,t,r)=>{if(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);h[t>>1]=a,t+=2}return h[t>>1]=0,t-n},Ze=e=>2*e.length,Je=(e,t)=>{for(var r=0,n="";!(r>=t/4);){var o=E[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},qe=(e,t,r)=>{if(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(E[t>>2]=a,(t+=4)+4>o)break}return E[t>>2]=0,t-n},et=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},tt=(e,t)=>{var r=H[e];return void 0===r&&Y(t+" has unknown type "+Oe(e)),r},rt=(e,t,r)=>{var n=[],o=e.toWireType(n,r);return n.length&&(m[t>>2]=ke.toHandle(n)),o},nt={},ot=[],it=Reflect.construct,at=[null,[],[]];(()=>{for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);k=e})(),N=o.BindingError=class extends Error{constructor(e){super(e),this.name="BindingError"}},U=o.InternalError=class extends Error{constructor(e){super(e),this.name="InternalError"}},Object.assign(le.prototype,{isAliasOf(e){if(!(this instanceof le))return!1;if(!(e instanceof le))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=ue(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"),Z(this),J(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}}),o.getInheritedInstanceCount=te,o.getLiveInheritedInstances=re,o.flushPendingDeletes=oe,o.setDelayFunction=ie,Object.assign(ye.prototype,{getPointee(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},destructor(e){this.rawDestructor&&this.rawDestructor(e)},argPackAdvance:8,readValueFromPointer:Ie,deleteObject(e){null!==e&&e.delete()},fromWireType:Ae}),we=o.UnboundTypeError=(Ue=Error,(Le=de(je="UnboundTypeError",(function(e){this.name=je,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(Ue.prototype),Le.prototype.constructor=Le,Le.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`},Le),Object.assign(Re.prototype,{get(e){return this.allocated[e]},has(e){return void 0!==this.allocated[e]},allocate(e){var t=this.freelist.pop()||this.allocated.length;return this.allocated[t]=e,t},free(e){this.allocated[e]=void 0,this.freelist.push(e)}}),Se.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Se.reserved=Se.allocated.length,o.count_emval_handles=xe;var st,ct={w:(e,t,r)=>{throw new x(e).init(t,r),e},q:(e,t,r,n,o)=>{},u:(e,t,r,n)=>{V(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,i,a,s,c,A,u,l,d,g)=>{l=j(l),a=De(i,a),c&&(c=De(s,c)),u&&(u=De(A,u)),g=De(d,g);var f=(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})(l);((e,t,r)=>{o.hasOwnProperty(e)?((void 0===r||void 0!==o[e].overloadTable&&void 0!==o[e].overloadTable[r])&&Y(`Cannot register public name '${e}' twice`),ge(o,e,e),o.hasOwnProperty(r)&&Y(`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))})(f,(function(){Te(`Cannot construct ${l} due to unbound types`,[n])})),W([e,t,r],n?[n]:[],(function(t){var r,i;t=t[0],i=n?(r=t.registeredClass).instancePrototype:le.prototype;var s=de(l,(function(){if(Object.getPrototypeOf(this)!==A)throw new N("Use 'new' to construct "+l);if(void 0===d.constructor_body)throw new N(l+" has no accessible constructor");var e=d.constructor_body[arguments.length];if(void 0===e)throw new N(`Tried to invoke ctor of ${l} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(d.constructor_body).toString()}) parameters instead!`);return e.apply(this,arguments)})),A=Object.create(i,{constructor:{value:s}});s.prototype=A;var d=new fe(l,s,A,g,r,a,c,u);d.baseClass&&(void 0===d.baseClass.__derivedClasses&&(d.baseClass.__derivedClasses=[]),d.baseClass.__derivedClasses.push(d));var h=new ye(l,d,!0,!1,!1),p=new ye(l+"*",d,!1,!1,!1),E=new ye(l+" const*",d,!1,!0,!1);return ee[e]={pointerType:p,constPointerType:E},((e,t,r)=>{o.hasOwnProperty(e)||X("Replacing nonexistant public symbol"),void 0!==o[e].overloadTable&&void 0!==r?o[e].overloadTable[r]=t:(o[e]=t,o[e].argCount=r)})(f,s),[h,p,E]}))},x:(e,t,r,n,o,i)=>{var a=ve(t,r);o=De(n,o),W([],[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 N(`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]=()=>{Te(`Cannot construct ${e.name} due to unbound types`,a)},W([],a,(n=>(n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=Pe(r,n,null,o,i),[]))),[]}))},i:(e,t,r,n,o,i,a,s,c)=>{var A=ve(r,n);t=(e=>{const t=(e=e.trim()).indexOf("(");return-1!==t?e.substr(0,t):e})(t=j(t)),i=De(o,i),W([],[e],(function(e){var n=`${(e=e[0]).name}.${t}`;function o(){Te(`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,u=c[t];return void 0===u||void 0===u.overloadTable&&u.className!==e.name&&u.argCount===r-2?(o.argCount=r-2,o.className=e.name,c[t]=o):(ge(c,t,n),c[t].overloadTable[r-2]=o),W([],A,(function(o){var s=Pe(n,o,e,i,a);return void 0===c[t].overloadTable?(s.argCount=r-2,c[t]=s):c[t].overloadTable[r-2]=s,[]})),[]}))},k:(e,t,r,n,o,i,a,s,c,A)=>{t=j(t),o=De(n,o),W([],[e],(function(e){var n=`${(e=e[0]).name}.${t}`,u={get(){Te(`Cannot access ${n} due to unbound types`,[r,a])},enumerable:!0,configurable:!0};return u.set=c?()=>Te(`Cannot access ${n} due to unbound types`,[r,a]):e=>Y(n+" is a read-only property"),Object.defineProperty(e.registeredClass.instancePrototype,t,u),W([],c?[r,a]:[r],(function(r){var a=r[0],u={get(){var t=Me(this,e,n+" getter");return a.fromWireType(o(i,t))},enumerable:!0};if(c){c=De(s,c);var l=r[1];u.set=function(t){var r=Me(this,e,n+" setter"),o=[];c(A,r,l.toWireType(o,t)),Qe(o)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]})),[]}))},t:(e,t)=>{V(e,{name:t=j(t),fromWireType:e=>{var t=ke.toValue(e);return Fe(e),t},toWireType:(e,t)=>ke.toHandle(t),argPackAdvance:8,readValueFromPointer:Ne,destructorFunction:null})},p:(e,t,r)=>{V(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");V(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(g.buffer,r,t)}V(e,{name:r=j(r),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},o:(e,t)=>{var r="std::string"===(t=j(t));V(e,{name:t,fromWireType(e){var t,n=m[e>>2],o=e+4;if(r)for(var i=o,a=0;a<=n;++a){var s=o+a;if(a==n||0==f[s]){var c=Ve(i,s-i);void 0===t?t=c:(t+=String.fromCharCode(0),t+=c),i=s+1}}else{var A=new Array(n);for(a=0;a<n;++a)A[a]=String.fromCharCode(f[o+a]);t=A.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=ut(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 c=t.charCodeAt(s);c>255&&(dt(a),Y("String has UTF-16 code units that do not fit in 8 bits")),f[a+s]=c}else for(s=0;s<n;++s)f[a+s]=t[s];return null!==e&&e.push(dt,i),i},argPackAdvance:8,readValueFromPointer:Ie,destructorFunction(e){dt(e)}})},l:(e,t,r)=>{var n,o,i,a,s;r=j(r),2===t?(n=$e,o=Ke,a=Ze,i=()=>p,s=1):4===t&&(n=Je,o=qe,a=et,i=()=>m,s=2),V(e,{name:r,fromWireType:e=>{for(var r,o=m[e>>2],a=i(),c=e+4,A=0;A<=o;++A){var u=e+4+A*t;if(A==o||0==a[u>>s]){var l=n(c,u-c);void 0===r?r=l:(r+=String.fromCharCode(0),r+=l),c=u+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),c=ut(4+i+t);return m[c>>2]=i>>s,o(n,c+4,i+t),null!==e&&e.push(dt,c),c},argPackAdvance:8,readValueFromPointer:Ne,destructorFunction(e){dt(e)}})},v:(e,t)=>{V(e,{isVoid:!0,name:t=j(t),argPackAdvance:0,fromWireType:()=>{},toWireType:(e,t)=>{}})},j:(e,t,r)=>(e=ke.toValue(e),t=tt(t,"emval::as"),rt(t,r,e)),e:(e,t,r,n,o)=>{var i,a;return(e=ot[e])(t=ke.toValue(t),t[r=void 0===(a=nt[i=r])?j(i):a],n,o)},d:Fe,f:(e,t,r)=>{var n=((e,t)=>{for(var r=new Array(e),n=0;n<e;++n)r[n]=tt(m[t+4*n>>2],"parameter "+n);return r})(e,t),o=n.shift();e--;var i,a,s=new Array(e),c=`methodCaller<(${n.map((e=>e.name)).join(", ")}) => ${o.name}>`;return i=de(c,((t,i,a,c)=>{for(var A=0,u=0;u<e;++u)s[u]=n[u].readValueFromPointer(c+A),A+=n[u].argPackAdvance;var l=1===r?it(i,s):i.apply(t,s);for(u=0;u<e;++u)n[u].deleteObject&&n[u].deleteObject(s[u]);return rt(o,a,l)})),a=ot.length,ot.push(i),a},c:e=>{e>4&&(Se.get(e).refcount+=1)},b:e=>{var t=ke.toValue(e);Qe(t),Fe(e)},h:(e,t)=>{var r=(e=tt(e,"_emval_take_value")).readValueFromPointer(t);return ke.toHandle(r)},m:()=>{T("")},s:(e,t,r)=>f.copyWithin(e,t,t+r),r:e=>{f.length;T("OOM")},n:(e,t,r,n)=>{for(var o,i,a,s=0,c=0;c<r;c++){var A=m[t>>2],d=m[t+4>>2];t+=8;for(var g=0;g<d;g++)o=e,i=f[A+g],a=void 0,a=at[o],0===i||10===i?((1===o?u:l)(We(a,0)),a.length=0):a.push(i);s+=d}return m[n>>2]=s,0}},At=function(){var e={a:ct};function t(e,t){var r,n;return At=e.exports,A=At.z,r=A.buffer,o.HEAP8=g=new Int8Array(r),o.HEAP16=h=new Int16Array(r),o.HEAPU8=f=new Uint8Array(r),o.HEAPU16=p=new Uint16Array(r),o.HEAP32=E=new Int32Array(r),o.HEAPU32=m=new Uint32Array(r),o.HEAPF32=I=new Float32Array(r),o.HEAPF64=y=new Float64Array(r),_e=At.C,n=At.A,C.unshift(n),function(){if(B--,o.monitorRunDependencies&&o.monitorRunDependencies(B),0==B&&(null!==D&&(clearInterval(D),D=null),O)){var e=O;O=null,e()}}(),At}if(B++,o.monitorRunDependencies&&o.monitorRunDependencies(B),o.instantiateWasm)try{return o.instantiateWasm(e,t)}catch(e){l(`Module.instantiateWasm callback failed with error: ${e}`),n(e)}return S(0,v,e,(function(e){t(e.instance)})).catch(n),{}}(),ut=e=>(ut=At.B)(e),lt=e=>(lt=At.D)(e),dt=e=>(dt=At.E)(e),gt=e=>(gt=At.F)(e);o.dynCall_jiji=(e,t,r,n,i)=>(o.dynCall_jiji=At.G)(e,t,r,n,i),o._vertexShaderSource=10624;function ft(){function e(){st||(st=!0,o.calledRun=!0,_||(F(C),r(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)e=o.postRun.shift(),b.unshift(e);var e;F(b)}()))}B>0||(!function(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)e=o.preRun.shift(),w.unshift(e);var e;F(w)}(),B>0||(o.setStatus?(o.setStatus("Running..."),setTimeout((function(){setTimeout((function(){o.setStatus("")}),1),e()}),1)):e()))}if(O=function e(){st||ft(),st||(O=e)},o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return ft(),t.ready}})(),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_IOS_CHROME=isUserAgentMatch("CriOS"),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 r,i,t="undefined"!=typeof self?self:{};function e(){throw Error("Invalid UTF8")}function n(e,t){return t=String.fromCharCode.apply(null,t),null==e?t:e+t}var o,h,u,l,d,f,p,s="undefined"!=typeof TextDecoder,a="undefined"!=typeof TextEncoder;function c(e){if(a)e=(o||(o=new TextEncoder)).encode(e);else{let r=0;const n=new Uint8Array(3*e.length);for(let o=0;o<e.length;o++){var t=e.charCodeAt(o);if(t<128)n[r++]=t;else{if(t<2048)n[r++]=t>>6|192;else{if(t>=55296&&t<=57343){if(t<=56319&&o<e.length){const i=e.charCodeAt(++o);if(i>=56320&&i<=57343){t=1024*(t-55296)+i-56320+65536,n[r++]=t>>18|240,n[r++]=t>>12&63|128,n[r++]=t>>6&63|128,n[r++]=63&t|128;continue}o--}t=65533}n[r++]=t>>12|224,n[r++]=t>>6&63|128}n[r++]=63&t|128}}e=r===n.length?n:n.subarray(0,r)}return e}e:{for(l=["CLOSURE_FLAGS"],d=t,f=0;f<l.length;f++)if(null==(d=d[l[f]])){u=null;break e}u=d}var g=u&&u[610401301];h=null!=g&&g;var m=t.navigator;function y(e){return!!h&&!!p&&p.brands.some((({brand:t})=>t&&-1!=t.indexOf(e)))}function _(e){var r;return(r=t.navigator)&&(r=r.userAgent)||(r=""),-1!=r.indexOf(e)}function v(){return!!h&&!!p&&p.brands.length>0}function E(){return v()?y("Chromium"):(_("Chrome")||_("CriOS"))&&!(!v()&&_("Edge"))||_("Silk")}function w(e){return w[" "](e),e}p=m&&m.userAgentData||null,w[" "]=function(){};var T=!v()&&(_("Trident")||_("MSIE"));!_("Android")||E(),E(),_("Safari")&&(E()||!v()&&_("Coast")||!v()&&_("Opera")||!v()&&_("Edge")||(v()?y("Microsoft Edge"):_("Edg/"))||v()&&y("Opera"));var A={},b=null;function k(e){const t=e.length;let r=3*t/4;r%3?r=Math.floor(r):-1!="=.".indexOf(e[t-1])&&(r=-1!="=.".indexOf(e[t-2])?r-2:r-1);const n=new Uint8Array(r);let o=0;return function(e,t){function r(t){for(;n<e.length;){const t=e.charAt(n++),r=b[t];if(null!=r)return r;if(!/^[\s\xa0]*$/.test(t))throw Error("Unknown base64 encoding at char: "+t)}return t}S();let n=0;for(;;){const e=r(-1),n=r(0),o=r(64),i=r(64);if(64===i&&-1===e)break;t(e<<2|n>>4),64!=o&&(t(n<<4&240|o>>2),64!=i&&t(o<<6&192|i))}}(e,(function(e){n[o++]=e})),o!==r?n.subarray(0,o):n}function S(){if(!b){b={};var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),t=["+/=","+/","-_=","-_.","-_"];for(let r=0;r<5;r++){const n=e.concat(t[r].split(""));A[r]=n;for(let e=0;e<n.length;e++){const t=n[e];void 0===b[t]&&(b[t]=e)}}}}var x="undefined"!=typeof Uint8Array,L=!T&&"function"==typeof btoa;function R(e){if(!L){var t;void 0===t&&(t=0),S(),t=A[t];var r=Array(Math.floor(e.length/3)),n=t[64]||"";let c=0,u=0;for(;c<e.length-2;c+=3){var o=e[c],i=e[c+1],a=e[c+2],s=t[o>>2];o=t[(3&o)<<4|i>>4],i=t[(15&i)<<2|a>>6],a=t[63&a],r[u++]=s+o+i+a}switch(s=0,a=n,e.length-c){case 2:a=t[(15&(s=e[c+1]))<<2]||n;case 1:e=e[c],r[u]=t[e>>2]+t[(3&e)<<4|s>>4]+a+n}return r.join("")}for(t="",r=0,n=e.length-10240;r<n;)t+=String.fromCharCode.apply(null,e.subarray(r,r+=10240));return t+=String.fromCharCode.apply(null,r?e.subarray(r):e),btoa(t)}var F=/[-_.]/g,I={"-":"+",_:"/",".":"="};function M(e){return I[e]||""}function P(e){if(!L)return k(e);F.test(e)&&(e=e.replace(F,M)),e=atob(e);const t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}function C(e){return x&&null!=e&&e instanceof Uint8Array}var O={};function U(){return B||(B=new N(null,O))}function D(e){j(O);var t=e.g;return null==(t=null==t||C(t)?t:"string"==typeof t?P(t):null)?t:e.g=t}var B,G,N=class{h(){return new Uint8Array(D(this)||0)}constructor(e,t){if(j(t),this.g=e,null!=e&&0===e.length)throw Error("ByteString should be constructed with non-empty values")}};function j(e){if(e!==O)throw Error("illegal external caller")}function V(e,t){e.__closure__error__context__984382||(e.__closure__error__context__984382={}),e.__closure__error__context__984382.severity=t}function X(e){return V(e=Error(e),"warning"),e}function H(e){if(null!=e){var r=null!=G?G:G={},n=r[e]||0;n>=5||(r[e]=n+1,V(e=Error(),"incident"),o=e,t.setTimeout((()=>{throw o}),0))}var o}var W="function"==typeof Symbol&&"symbol"==typeof Symbol();function z(e,t,r=!1){return"function"==typeof Symbol&&"symbol"==typeof Symbol()?r&&Symbol.for&&e?Symbol.for(e):null!=e?Symbol(e):Symbol():t}var ht,K=z("jas",void 0,!0),Y=z(void 0,"0di"),$=z(void 0,"1oa"),q=z(void 0,Symbol()),J=z(void 0,"0actk"),Z=z(void 0,"8utk"),Q=W?K:"Ea",tt={Ea:{value:0,configurable:!0,writable:!0,enumerable:!1}},et=Object.defineProperties;function nt(e,t){W||Q in e||et(e,tt),e[Q]|=t}function rt(e,t){W||Q in e||et(e,tt),e[Q]=t}function it(e){return nt(e,34),e}function st(e,t){rt(t,-15615&e)}function ot(e,t){rt(t,-15581&e|34)}function at(){return"function"==typeof BigInt}function ct(e){return Array.prototype.slice.call(e)}var ut={};function lt(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)&&e.constructor===Object}function dt(e,t){if(null!=e)if("string"==typeof e)e=e?new N(e,O):U();else if(e.constructor!==N)if(C(e))e=e.length?new N(new Uint8Array(e),O):U();else{if(!t)throw Error();e=void 0}return e}var ft=[];function pt(e){if(2&e)throw Error()}rt(ft,55),ht=Object.freeze(ft);var gt=class{constructor(e,t,r){this.g=e,this.h=t,this.l=r}next(){const e=this.g.next();return e.done||(e.value=this.h.call(this.l,e.value)),e}[Symbol.iterator](){return this}};function mt(e){return q?e[q]:void 0}var yt=Object.freeze({});function _t(e){return e.Na=!0,e}var vt=_t((e=>"number"==typeof e)),Et=_t((e=>"string"==typeof e)),wt=_t((e=>"boolean"==typeof e)),Tt="function"==typeof t.BigInt&&"bigint"==typeof t.BigInt(0);function At(e){var t=e;if(Et(t)){if(!/^\s*(?:-?[1-9]\d*|0)?\s*$/.test(t))throw Error(String(t))}else if(vt(t)&&!Number.isSafeInteger(t))throw Error(String(t));return Tt?BigInt(e):e=wt(e)?e?"1":"0":Et(e)?e.trim()||"0":String(e)}var bt=_t((e=>Tt?e>=St&&e<=Lt:"-"===e[0]?Rt(e,kt):Rt(e,xt))),kt=Number.MIN_SAFE_INTEGER.toString(),St=Tt?BigInt(Number.MIN_SAFE_INTEGER):void 0,xt=Number.MAX_SAFE_INTEGER.toString(),Lt=Tt?BigInt(Number.MAX_SAFE_INTEGER):void 0;function Rt(e,t){if(e.length>t.length)return!1;if(e.length<t.length||e===t)return!0;for(let r=0;r<e.length;r++){const n=e[r],o=t[r];if(n>o)return!1;if(n<o)return!0}}var It,Ft="function"==typeof Uint8Array.prototype.slice,Mt=0,Pt=0;function Ct(e){const t=e>>>0;Mt=t,Pt=(e-t)/4294967296>>>0}function Ot(e){if(e<0){Ct(-e);const[t,r]=Xt(Mt,Pt);Mt=t>>>0,Pt=r>>>0}else Ct(e)}function Ut(e){const t=It||(It=new DataView(new ArrayBuffer(8)));t.setFloat32(0,+e,!0),Pt=0,Mt=t.getUint32(0,!0)}function Dt(e,t){const r=4294967296*t+(e>>>0);return Number.isSafeInteger(r)?r:Bt(e,t)}function Nt(e,t){const r=2147483648&t;return r&&(t=~t>>>0,0==(e=1+~e>>>0)&&(t=t+1>>>0)),"number"==typeof(e=Dt(e,t))?r?-e:e:r?"-"+e:e}function Bt(e,t){if(e>>>=0,(t>>>=0)<=2097151)var r=""+(4294967296*t+e);else at()?r=""+(BigInt(t)<<BigInt(32)|BigInt(e)):(e=(16777215&e)+6777216*(r=16777215&(e>>>24|t<<8))+6710656*(t=t>>16&65535),r+=8147497*t,t*=2,e>=1e7&&(r+=e/1e7>>>0,e%=1e7),r>=1e7&&(t+=r/1e7>>>0,r%=1e7),r=t+Gt(r)+Gt(e));return r}function Gt(e){return e=String(e),"0000000".slice(e.length)+e}function jt(){var e=Mt,t=Pt;if(2147483648&t)if(at())e=""+(BigInt(0|t)<<BigInt(32)|BigInt(e>>>0));else{const[r,n]=Xt(e,t);e="-"+Bt(r,n)}else e=Bt(e,t);return e}function Vt(e){if(e.length<16)Ot(Number(e));else if(at())e=BigInt(e),Mt=Number(e&BigInt(4294967295))>>>0,Pt=Number(e>>BigInt(32)&BigInt(4294967295));else{const t=+("-"===e[0]);Pt=Mt=0;const r=e.length;for(let n=t,o=(r-t)%6+t;o<=r;n=o,o+=6){const t=Number(e.slice(n,o));Pt*=1e6,(Mt=1e6*Mt+t)>=4294967296&&(Pt+=Math.trunc(Mt/4294967296),Pt>>>=0,Mt>>>=0)}if(t){const[e,t]=Xt(Mt,Pt);Mt=e,Pt=t}}}function Xt(e,t){return t=~t,e?e=1+~e:t+=1,[e,t]}var Ht="function"==typeof BigInt?BigInt.asIntN:void 0,Wt="function"==typeof BigInt?BigInt.asUintN:void 0,zt=Number.isSafeInteger,Kt=Number.isFinite,Yt=Math.trunc,$t=At(0);function qt(e){return null==e||"number"==typeof e?e:"NaN"===e||"Infinity"===e||"-Infinity"===e?Number(e):void 0}function Jt(e){return null==e||"boolean"==typeof e?e:"number"==typeof e?!!e:void 0}var Zt=/^-?([1-9][0-9]*|0)(\.[0-9]+)?$/;function Qt(e){switch(typeof e){case"bigint":return!0;case"number":return Kt(e);case"string":return Zt.test(e);default:return!1}}function te(e){if(null==e)return e;if("string"==typeof e&&e)e=+e;else if("number"!=typeof e)return;return Kt(e)?0|e:void 0}function ee(e){if(null==e)return e;if("string"==typeof e&&e)e=+e;else if("number"!=typeof e)return;return Kt(e)?e>>>0:void 0}function ne(e){if("-"===e[0])return!1;const t=e.length;return t<20||20===t&&Number(e.substring(0,6))<184467}function re(e){const t=e.length;return"-"===e[0]?t<20||20===t&&Number(e.substring(0,7))>-922337:t<19||19===t&&Number(e.substring(0,6))<922337}function ie(e){return re(e)?e:(Vt(e),jt())}function se(e){return e=Yt(e),zt(e)||(Ot(e),e=Nt(Mt,Pt)),e}function oe(e){var t=Yt(Number(e));return zt(t)?String(t):(-1!==(t=e.indexOf("."))&&(e=e.substring(0,t)),ie(e))}function ae(e){var t=Yt(Number(e));return zt(t)?At(t):(-1!==(t=e.indexOf("."))&&(e=e.substring(0,t)),at()?At(Ht(64,BigInt(e))):At(ie(e)))}function ce(e){if(zt(e))e=At(se(e));else{if(e=Yt(e),zt(e))e=String(e);else{const t=String(e);re(t)?e=t:(Ot(e),e=jt())}e=At(e)}return e}function he(e){return null==e?e:"bigint"==typeof e?(bt(e)?e=Number(e):(e=Ht(64,e),e=bt(e)?Number(e):String(e)),e):Qt(e)?"number"==typeof e?se(e):oe(e):void 0}function ue(e){if(null==e)return e;var t=typeof e;if("bigint"===t)return String(Wt(64,e));if(Qt(e)){if("string"===t)return t=Yt(Number(e)),zt(t)&&t>=0?e=String(t):(-1!==(t=e.indexOf("."))&&(e=e.substring(0,t)),ne(e)||(Vt(e),e=Bt(Mt,Pt))),e;if("number"===t)return(e=Yt(e))>=0&&zt(e)?e:function(e){if(e<0){Ot(e);var t=Bt(Mt,Pt);return e=Number(t),zt(e)?e:t}return ne(t=String(e))?t:(Ot(e),Dt(Mt,Pt))}(e)}}function le(e){if("string"!=typeof e)throw Error();return e}function de(e){if(null!=e&&"string"!=typeof e)throw Error();return e}function fe(e){return null==e||"string"==typeof e?e:void 0}function pe(e,t,r,n){if(null!=e&&"object"==typeof e&&e.W===ut)return e;if(!Array.isArray(e))return r?2&n?((e=t[Y])||(it((e=new t).u),e=t[Y]=e),t=e):t=new t:t=void 0,t;let o=r=0|e[Q];return 0===o&&(o|=32&n),o|=2&n,o!==r&&rt(e,o),new t(e)}function ge(e,t,r){if(t)e:{if(!Qt(t=e))throw X("int64");switch(typeof t){case"string":t=ae(t);break e;case"bigint":t=At(Ht(64,t));break e;default:t=ce(t)}}else e=typeof(t=e),t=null==t?t:"bigint"===e?At(Ht(64,t)):Qt(t)?"string"===e?ae(t):ce(t):void 0;return null==(e=t)?r?$t:void 0:e}function me(e){return e}var ye={},_e=function(){try{return w(new class extends Map{constructor(){super()}}),!1}catch(e){return!0}}(),ve=class{constructor(){this.g=new Map}get(e){return this.g.get(e)}set(e,t){return this.g.set(e,t),this.size=this.g.size,this}delete(e){return e=this.g.delete(e),this.size=this.g.size,e}clear(){this.g.clear(),this.size=this.g.size}has(e){return this.g.has(e)}entries(){return this.g.entries()}keys(){return this.g.keys()}values(){return this.g.values()}forEach(e,t){return this.g.forEach(e,t)}[Symbol.iterator](){return this.entries()}},Ee=_e?(Object.setPrototypeOf(ve.prototype,Map.prototype),Object.defineProperties(ve.prototype,{size:{value:0,configurable:!0,enumerable:!0,writable:!0}}),ve):class extends Map{constructor(){super()}};function we(e){return e}function Te(e){if(2&e.M)throw Error("Cannot mutate an immutable Map")}var xe,Le,Re,Fe,Ae=class extends Ee{constructor(e,t,r=we,n=we){super();let o=0|e[Q];o|=64,rt(e,o),this.M=o,this.I=t,this.S=r,this.X=this.I?be:n;for(let i=0;i<e.length;i++){const a=e[i],s=r(a[0],!1,!0);let c=a[1];t?void 0===c&&(c=null):c=n(a[1],!1,!0,void 0,void 0,o),super.set(s,c)}}La(){var e=Ce;if(0!==this.size)return Array.from(super.entries(),(t=>(t[0]=e(t[0]),t[1]=e(t[1]),t)))}da(e=ke){const t=[],r=super.entries();for(var n;!(n=r.next()).done;)(n=n.value)[0]=e(n[0]),n[1]=e(n[1]),t.push(n);return t}clear(){Te(this),super.clear()}delete(e){return Te(this),super.delete(this.S(e,!0,!1))}entries(){if(this.I){var e=super.keys();e=new gt(e,Se,this)}else e=super.entries();return e}values(){if(this.I){var e=super.keys();e=new gt(e,Ae.prototype.get,this)}else e=super.values();return e}forEach(e,t){this.I?super.forEach(((r,n,o)=>{e.call(t,o.get(n),n,o)})):super.forEach(e,t)}set(e,t){return Te(this),null==(e=this.S(e,!0,!1))?this:null==t?(super.delete(e),this):super.set(e,this.X(t,!0,!0,this.I,!1,this.M))}Ja(e){const t=this.S(e[0],!1,!0);e=e[1],e=this.I?void 0===e?null:e:this.X(e,!1,!0,void 0,!1,this.M),super.set(t,e)}has(e){return super.has(this.S(e,!1,!1))}get(e){e=this.S(e,!1,!1);const t=super.get(e);if(void 0!==t){var r=this.I;return r?((r=this.X(t,!1,!0,r,this.pa,this.M))!==t&&super.set(e,r),r):t}}[Symbol.iterator](){return this.entries()}};function be(e,t,r,n,o,i){return e=pe(e,n,r,i),o&&(e=je(e)),e}function ke(e){return e}function Se(e){return[e,this.get(e)]}function Ie(){return xe||(xe=new Ae(it([]),void 0,void 0,void 0,ye))}function Me(e,t,r,n,o){if(null!=e){if(Array.isArray(e)){const i=0|e[Q];return 0===e.length&&1&i?void 0:o&&2&i?e:Pe(e,t,r,void 0!==n,o)}return t(e,n)}}function Pe(e,t,r,n,o){const i=n||r?0|e[Q]:0,a=n?!!(32&i):void 0;let s=0;const c=(n=ct(e)).length;for(let e=0;e<c;e++){var A=n[e];if(e===c-1&<(A)){var u=t,l=r,d=a,g=o;let e;for(let t in A){const r=Me(A[t],u,l,d,g);null!=r&&((null!=e?e:e={})[t]=r)}A=e}else A=Me(n[e],t,r,a,o);n[e]=A,null!=A&&(s=e+1)}return s<c&&(n.length=s),r&&((e=mt(e))&&(n[q]=ct(e)),r(i,n)),n}function Ce(e){return Me(e,Oe,void 0,void 0,!1)}function Oe(e){switch(typeof e){case"number":return Number.isFinite(e)?e:""+e;case"bigint":return bt(e)?Number(e):""+e;case"boolean":return e?1:0;case"object":if(C(e))return C(e)&&H(Z),R(e);if(e.W===ut)return Ue(e);if(e instanceof N){const t=e.g;return null==t?"":"string"==typeof t?t:e.g=R(t)}return e instanceof Ae?e.La():void 0}return e}function Ue(e){var t=e.u;e=Pe(t,Oe,void 0,void 0,!1);var r=0|t[Q];if((t=e.length)&&!(512&r)){var n=e[t-1],o=!1;lt(n)?(t--,o=!0):n=void 0;var i=t-(r=512&r?0:-1),a=(null!=Le?Le:me)(i,r,e,n);if(n&&(e[t]=void 0),i<a&&n){for(var s in i=!0,n){const c=+s;c<=a?(e[o=c+r]=n[s],t=Math.max(o+1,t),o=!1,delete n[s]):i=!1}i&&(n=void 0)}for(i=t-1;t>0;i=t-1)if(null==(s=e[i]))t--,o=!0;else{if(!((i-=r)>=a))break;(null!=n?n:n={})[i]=s,t--,o=!0}o&&(e.length=t),n&&e.push(n)}return e}function De(e,t,r){return e=Ne(e,t[0],t[1],r?1:2),t!==Re&&r&&nt(e,8192),e}function Ne(e,t,r,n){if(null==e){var o=96;r?(e=[r],o|=512):e=[],t&&(o=-16760833&o|(1023&t)<<14)}else{if(!Array.isArray(e))throw Error("narr");if(8192&(o=0|e[Q])||!(64&o)||2&o||H(J),1024&o)throw Error("farr");if(64&o)return e;if(1===n||2===n||(o|=64),r&&(o|=512,r!==e[0]))throw Error("mid");e:{var i=(r=e).length;if(i){var a=i-1;if(lt(n=r[a])){if((a-=t=512&(o|=256)?0:-1)>=1024)throw Error("pvtlmt");for(var s in n)(i=+s)<a&&(r[i+t]=n[s],delete n[s]);o=-16760833&o|(1023&a)<<14;break e}}if(t){if((s=Math.max(t,i-(512&o?0:-1)))>1024)throw Error("spvt");o=-16760833&o|(1023&s)<<14}}}return rt(e,o),e}function Be(e,t,r=ot){if(null!=e){if(x&&e instanceof Uint8Array)return t?e:new Uint8Array(e);if(Array.isArray(e)){var n=0|e[Q];return 2&n?e:(t&&(t=0===n||!!(32&n)&&!(64&n||!(16&n))),t?(rt(e,34|n),4&n&&Object.freeze(e),e):Pe(e,Be,4&n?ot:r,!0,!0))}return e.W===ut?e=2&(n=0|(r=e.u)[Q])?e:new e.constructor(Ge(r,n,!0)):e instanceof Ae&&!(2&e.M)&&(r=it(e.da(Be)),e=new Ae(r,e.I,e.S,e.X)),e}}function Ge(e,t,r){const n=r||2&t?ot:st,o=!!(32&t);return nt(e=function(e,t,r){const n=ct(e);var o=n.length;const i=256&t?n[o-1]:void 0;for(o+=i?-1:0,t=512&t?1:0;t<o;t++)n[t]=r(n[t]);if(i){t=n[t]={};for(const e in i)t[e]=r(i[e])}return(e=mt(e))&&(n[q]=ct(e)),n}(e,t,(e=>Be(e,o,n))),32|(r?2:0)),e}function je(e){const t=e.u,r=0|t[Q];return 2&r?new e.constructor(Ge(t,r,!1)):e}function Ve(e,t){return Xe(e=e.u,0|e[Q],t)}function Xe(e,t,r){if(-1===r)return null;const n=r+(512&t?0:-1),o=e.length-1;return n>=o&&256&t?e[o][r]:n<=o?e[n]:void 0}function He(e,t,r){const n=e.u;let o=0|n[Q];return pt(o),We(n,o,t,r),e}function We(e,t,r,n){const o=512&t?0:-1,i=r+o;var a=e.length-1;return i>=a&&256&t?(e[a][r]=n,t):i<=a?(e[i]=n,t):(void 0!==n&&(r>=(a=t>>14&1023||536870912)?null!=n&&(e[a+o]={[r]:n},rt(e,t|=256)):e[i]=n),t)}function ze(e,t){let r=0|(e=e.u)[Q];const n=Xe(e,r,t),o=qt(n);return null!=o&&o!==n&&We(e,r,t,o),o}function Ke(e){let t=0|(e=e.u)[Q];const r=Xe(e,t,1),n=dt(r,!0);return null!=n&&n!==r&&We(e,t,1,n),n}function Ye(){return void 0===yt?2:4}function $e(e,t,r,n,o){const i=e.u,a=2&(e=0|i[Q])?1:n;o=!!o;let s=0|(n=qe(i,e,t))[Q];if(!(4&s)){4&s&&(n=ct(n),s=pn(s,e),e=We(i,e,t,n));let o=0,a=0;for(;o<n.length;o++){const e=r(n[o]);null!=e&&(n[a++]=e)}a<o&&(n.length=a),s=Je(s,e),r=-2049&s|20,s=r&=-4097,rt(n,s),2&s&&Object.freeze(n)}return 1===a||4===a&&32&s?Ze(s)||(o=s,s|=2,s!==o&&rt(n,s),Object.freeze(n)):(2===a&&Ze(s)&&(n=ct(n),s=pn(s,e),s=gn(s,e,o),rt(n,s),e=We(i,e,t,n)),Ze(s)||(t=s,s=gn(s,e,o),s!==t&&rt(n,s))),n}function qe(e,t,r){return e=Xe(e,t,r),Array.isArray(e)?e:ht}function Je(e,t){return 0===e&&(e=pn(e,t)),1|e}function Ze(e){return!!(2&e)&&!!(4&e)||!!(1024&e)}function Qe(e){e=ct(e);for(let t=0;t<e.length;t++){const r=e[t]=ct(e[t]);Array.isArray(r[1])&&(r[1]=it(r[1]))}return e}function tn(e,t,r,n){let o=0|(e=e.u)[Q];pt(o),We(e,o,t,("0"===n?0===Number(r):r===n)?void 0:r)}function en(e,t,r,n){pt(t);let o=qe(e,t,r);const i=o!==ht;if(64&t||!(8192&t)||!i){const a=i?0|o[Q]:0;let s=a;(!i||2&s||Ze(s)||4&s&&!(32&s))&&(o=ct(o),s=pn(s,t),t=We(e,t,r,o)),s=-13&Je(s,t),s=gn(n?-17&s:16|s,t,!0),s!==a&&rt(o,s)}return o}function nn(e,t){var r=Ts;return on(rn(e=e.u),e,0|e[Q],r)===t?t:-1}function rn(e){var t;if(W)return null!=(t=e[$])?t:e[$]=new Map;if($ in e)return e[$];const r=new Map;return Object.defineProperty(e,$,{value:r}),r}function sn(e,t,r,n){const o=rn(e),i=on(o,e,t,r);return i!==n&&(i&&(t=We(e,t,i)),o.set(r,n)),t}function on(e,t,r,n){let o=e.get(n);if(null!=o)return o;o=0;for(let e=0;e<n.length;e++){const i=n[e];null!=Xe(t,r,i)&&(0!==o&&(r=We(t,r,o)),o=i)}return e.set(n,o),o}function an(e,t,r){let n=0|e[Q];const o=Xe(e,n,r);let i;if(null!=o&&o.W===ut)return(t=je(o))!==o&&We(e,n,r,t),t.u;if(Array.isArray(o)){const e=0|o[Q];i=2&e?De(Ge(o,e,!1),t,!0):64&e?o:De(i,t,!0)}else i=De(void 0,t,!0);return i!==o&&We(e,n,r,i),i}function cn(e,t,r){let n=0|(e=e.u)[Q];const o=Xe(e,n,r);return(t=pe(o,t,!1,n))!==o&&null!=t&&We(e,n,r,t),t}function hn(e,t,r){if(null==(t=cn(e,t,r)))return t;let n=0|(e=e.u)[Q];if(!(2&n)){const o=je(t);o!==t&&We(e,n,r,t=o)}return t}function un(e,t,r,n,o,i,a){var s=!!(2&t);const c=s?1:o;i=!!i,a&&(a=!s);var A=0|(o=qe(e=e.u,t,n))[Q];if(!(s=!!(4&A))){var u=o,l=t;const e=!!(2&(A=Je(A,t)));e&&(l|=2);let n=!e,i=!0,a=0,s=0;for(;a<u.length;a++){const t=pe(u[a],r,!1,l);if(t instanceof r){if(!e){const e=!!(2&t.u[Q]);n&&(n=!e),i&&(i=e)}u[s++]=t}}s<a&&(u.length=s),A|=4,A=i?16|A:-17&A,rt(u,A=n?8|A:-9&A),e&&Object.freeze(u)}if(a&&!(8&A||!o.length&&(1===c||4===c&&32&A))){for(Ze(A)&&(o=ct(o),A=pn(A,t),t=We(e,t,n,o)),r=o,a=A,u=0;u<r.length;u++)(A=r[u])!==(l=je(A))&&(r[u]=l);a|=8,rt(r,a=r.length?-17&a:16|a),A=a}return 1===c||4===c&&32&A?Ze(A)||(t=A,(A|=!o.length||16&A&&(!s||32&A)?2:1024)!==t&&rt(o,A),Object.freeze(o)):(2===c&&Ze(A)&&(rt(o=ct(o),A=gn(A=pn(A,t),t,i)),t=We(e,t,n,o)),Ze(A)||(n=A,(A=gn(A,t,i))!==n&&rt(o,A))),o}function ln(e,t,r){const n=0|e.u[Q];return un(e,n,t,r,Ye(),!1,!(2&n))}function dn(e,t,r,n){return null==n&&(n=void 0),He(e,r,n)}function fn(e,t,r,n){null==n&&(n=void 0);e:{let o=0|(e=e.u)[Q];if(pt(o),null==n){const n=rn(e);if(on(n,e,o,r)!==t)break e;n.set(r,0)}else o=sn(e,o,r,t);We(e,o,t,n)}}function pn(e,t){return-1025&(2&t?2|e:-3&e)|32}function gn(e,t,r){return 32&t&&r||(e&=-33),e}function mn(e,t,r){pt(0|e.u[Q]),$e(e,t,fe,2,!0).push(le(r))}function yn(e,t,r,n){const o=0|e.u[Q];pt(o),e=un(e,o,r,t,2,!0),n=null!=n?n:new r,e.push(n),e[Q]=2&n.u[Q]?-9&e[Q]:-17&e[Q]}function _n(e,t){return te(Ve(e,t))}function vn(e,t){return fe(Ve(e,t))}function En(e,t){var r;return null!=(r=ze(e,t))?r:0}function wn(e,t,r){if(null!=r&&"boolean"!=typeof r)throw e=typeof r,Error(`Expected boolean but got ${"object"!=e?e:r?Array.isArray(r)?"array":e:"null"}: ${r}`);He(e,t,r)}function Tn(e,t,r){if(null!=r){if("number"!=typeof r)throw X("int32");if(!Kt(r))throw X("int32");r|=0}He(e,t,r)}function An(e,t,r){if(null!=r&&"number"!=typeof r)throw Error(`Value of float/double field must be a number, found ${typeof r}: ${r}`);He(e,t,r)}function bn(e,t,r){{const a=e.u;let s=0|a[Q];if(pt(s),null==r)We(a,s,t);else{var n=e=0|r[Q],o=Ze(e),i=o||Object.isFrozen(r);for(o||(e=0),i||(r=ct(r),n=0,e=gn(e=pn(e,s),s,!0),i=!1),e|=21,o=0;o<r.length;o++){const t=r[o],a=le(t);Object.is(t,a)||(i&&(r=ct(r),n=0,e=gn(e=pn(e,s),s,!0),i=!1),r[o]=a)}e!==n&&(i&&(r=ct(r),e=gn(e=pn(e,s),s,!0)),rt(r,e)),We(a,s,t,r)}}}function kn(e,t){return Error(`Invalid wire type: ${e} (at position ${t})`)}function Sn(){return Error("Failed to read varint, encoding is invalid.")}function xn(e,t){return Error(`Tried to read past the end of the data ${t} > ${e}`)}function Ln(e){if("string"==typeof e)return{buffer:P(e),O:!1};if(Array.isArray(e))return{buffer:new Uint8Array(e),O:!1};if(e.constructor===Uint8Array)return{buffer:e,O:!1};if(e.constructor===ArrayBuffer)return{buffer:new Uint8Array(e),O:!1};if(e.constructor===N)return{buffer:D(e)||new Uint8Array(0),O:!0};if(e instanceof Uint8Array)return{buffer:new Uint8Array(e.buffer,e.byteOffset,e.byteLength),O:!1};throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, a ByteString or an Array of numbers")}function Rn(e,t){let r,n=0,o=0,i=0;const a=e.h;let s=e.g;do{r=a[s++],n|=(127&r)<<i,i+=7}while(i<32&&128&r);for(i>32&&(o|=(127&r)>>4),i=3;i<32&&128&r;i+=7)r=a[s++],o|=(127&r)<<i;if(Dn(e,s),r<128)return t(n>>>0,o>>>0);throw Sn()}function Fn(e){let t=0,r=e.g;const n=r+10,o=e.h;for(;r<n;){const n=o[r++];if(t|=n,!(128&n))return Dn(e,r),!!(127&t)}throw Sn()}function In(e){const t=e.h;let r=e.g,n=t[r++],o=127&n;if(128&n&&(n=t[r++],o|=(127&n)<<7,128&n&&(n=t[r++],o|=(127&n)<<14,128&n&&(n=t[r++],o|=(127&n)<<21,128&n&&(n=t[r++],o|=n<<28,128&n&&128&t[r++]&&128&t[r++]&&128&t[r++]&&128&t[r++]&&128&t[r++])))))throw Sn();return Dn(e,r),o}function Mn(e){return In(e)>>>0}function Pn(e){var t=e.h;const r=e.g,n=t[r],o=t[r+1],i=t[r+2];return t=t[r+3],Dn(e,e.g+4),(n|o<<8|i<<16|t<<24)>>>0}function Cn(e){var t=Pn(e);e=2*(t>>31)+1;const r=t>>>23&255;return t&=8388607,255==r?t?NaN:e*(1/0):0==r?1401298464324817e-60*e*t:e*Math.pow(2,r-150)*(t+8388608)}function On(e){return In(e)}function Un(e,t,{aa:r=!1}={}){e.aa=r,t&&(t=Ln(t),e.h=t.buffer,e.m=t.O,e.j=0,e.l=e.h.length,e.g=e.j)}function Dn(e,t){if(e.g=t,t>e.l)throw xn(e.l,t)}function Nn(e,t){if(t<0)throw Error(`Tried to read a negative byte length: ${t}`);const r=e.g,n=r+t;if(n>e.l)throw xn(t,e.l-r);return e.g=n,r}function Bn(e,t){if(0==t)return U();var r=Nn(e,t);return e.aa&&e.m?r=e.h.subarray(r,r+t):(e=e.h,r=r===(t=r+t)?new Uint8Array(0):Ft?e.slice(r,t):new Uint8Array(e.subarray(r,t))),0==r.length?U():new N(r,O)}Ae.prototype.toJSON=void 0;var Gn=[];function jn(e){var t=e.g;if(t.g==t.l)return!1;e.l=e.g.g;var r=Mn(e.g);if(t=r>>>3,!((r&=7)>=0&&r<=5))throw kn(r,e.l);if(t<1)throw Error(`Invalid field number: ${t} (at position ${e.l})`);return e.m=t,e.h=r,!0}function Vn(e){switch(e.h){case 0:0!=e.h?Vn(e):Fn(e.g);break;case 1:Dn(e=e.g,e.g+8);break;case 2:if(2!=e.h)Vn(e);else{var t=Mn(e.g);Dn(e=e.g,e.g+t)}break;case 5:Dn(e=e.g,e.g+4);break;case 3:for(t=e.m;;){if(!jn(e))throw Error("Unmatched start-group tag: stream EOF");if(4==e.h){if(e.m!=t)throw Error("Unmatched end-group tag");break}Vn(e)}break;default:throw kn(e.h,e.l)}}function Xn(e,t,r){const n=e.g.l,o=Mn(e.g),i=e.g.g+o;let a=i-n;if(a<=0&&(e.g.l=i,r(t,e,void 0,void 0,void 0),a=i-e.g.g),a)throw Error(`Message parsing ended unexpectedly. Expected to read ${o} bytes, instead read ${o-a} bytes, either the data ended unexpectedly or the message misreported its own length`);return e.g.g=i,e.g.l=n,t}function Hn(t){var o=Mn(t.g),a=Nn(t=t.g,o);if(t=t.h,s){var c,A=t;(c=i)||(c=i=new TextDecoder("utf-8",{fatal:!0})),o=a+o,A=0===a&&o===A.length?A:A.subarray(a,o);try{var u=c.decode(A)}catch(e){if(void 0===r){try{c.decode(new Uint8Array([128]))}catch(e){}try{c.decode(new Uint8Array([97])),r=!0}catch(e){r=!1}}throw!r&&(i=void 0),e}}else{o=(u=a)+o,a=[];let r,i=null;for(;u<o;){var l=t[u++];l<128?a.push(l):l<224?u>=o?e():(r=t[u++],l<194||128!=(192&r)?(u--,e()):a.push((31&l)<<6|63&r)):l<240?u>=o-1?e():(r=t[u++],128!=(192&r)||224===l&&r<160||237===l&&r>=160||128!=(192&(c=t[u++]))?(u--,e()):a.push((15&l)<<12|(63&r)<<6|63&c)):l<=244?u>=o-2?e():(r=t[u++],128!=(192&r)||r-144+(l<<28)>>30||128!=(192&(c=t[u++]))||128!=(192&(A=t[u++]))?(u--,e()):(l=(7&l)<<18|(63&r)<<12|(63&c)<<6|63&A,l-=65536,a.push(55296+(l>>10&1023),56320+(1023&l)))):e(),a.length>=8192&&(i=n(i,a),a.length=0)}u=n(i,a)}return u}function Wn(e){const t=Mn(e.g);return Bn(e.g,t)}function zn(e,t,r){var n=Mn(e.g);for(n=e.g.g+n;e.g.g<n;)r.push(t(e.g))}var Kn=[];function Yn(e,t,r){t.g?t.m(e,t.g,t.h,r):t.m(e,t.h,r)}var $n=class{constructor(e,t){this.u=Ne(e,t)}toJSON(){try{var e=Ue(this)}finally{Le=void 0}return e}l(){var e=_o;return e.g?e.l(this,e.g,e.h):e.l(this,e.h,e.defaultValue)}clone(){const e=this.u;return new this.constructor(Ge(e,0|e[Q],!1))}O(){return!!(2&this.u[Q])}};function qn(e){return e?/^\d+$/.test(e)?(Vt(e),new Jn(Mt,Pt)):null:Zn||(Zn=new Jn(0,0))}$n.prototype.W=ut,$n.prototype.toString=function(){return this.u.toString()};var Zn,Jn=class{constructor(e,t){this.h=e>>>0,this.g=t>>>0}};function Qn(e){return e?/^-?\d+$/.test(e)?(Vt(e),new tr(Mt,Pt)):null:er||(er=new tr(0,0))}var er,tr=class{constructor(e,t){this.h=e>>>0,this.g=t>>>0}};function nr(e,t,r){for(;r>0||t>127;)e.g.push(127&t|128),t=(t>>>7|r<<25)>>>0,r>>>=7;e.g.push(t)}function rr(e,t){for(;t>127;)e.g.push(127&t|128),t>>>=7;e.g.push(t)}function ir(e,t){if(t>=0)rr(e,t);else{for(let r=0;r<9;r++)e.g.push(127&t|128),t>>=7;e.g.push(1)}}function sr(e,t){e.g.push(t>>>0&255),e.g.push(t>>>8&255),e.g.push(t>>>16&255),e.g.push(t>>>24&255)}function or(e,t){0!==t.length&&(e.l.push(t),e.h+=t.length)}function ar(e,t,r){rr(e.g,8*t+r)}function cr(e,t){return ar(e,t,2),t=e.g.end(),or(e,t),t.push(e.h),t}function hr(e,t){var r=t.pop();for(r=e.h+e.g.length()-r;r>127;)t.push(127&r|128),r>>>=7,e.h++;t.push(r),e.h++}function ur(e,t,r){ar(e,t,2),rr(e.g,r.length),or(e,e.g.end()),or(e,r)}function lr(e,t,r,n){null!=r&&(t=cr(e,t),n(r,e),hr(e,t))}function dr(){const e=class{constructor(){throw Error()}};return Object.setPrototypeOf(e,e.prototype),e}var fr=dr(),pr=dr(),gr=dr(),mr=dr(),yr=dr(),_r=dr(),vr=dr(),Er=dr(),wr=dr(),Tr=class{constructor(e,t,r){this.g=e,this.h=t,e=fr,this.l=!!e&&r===e||!1}};function Ar(e,t){return new Tr(e,t,fr)}function br(e,t,r,n,o){lr(e,r,Or(t,n),o)}var Ir,Mr,kr=Ar((function(e,t,r,n,o){return 2===e.h&&(Xn(e,an(t,n,r),o),!0)}),br),Sr=Ar((function(e,t,r,n,o){return 2===e.h&&(Xn(e,an(t,n,r),o),!0)}),br),xr=Symbol(),Lr=Symbol(),Rr=Symbol(),Fr=Symbol();function Pr(e,t,r,n){var o=n[e];if(o)return o;(o={}).Ma=n,o.T=function(e){switch(typeof e){case"boolean":return Re||(Re=[0,void 0,!0]);case"number":return e>0?void 0:0===e?Fe||(Fe=[0,void 0]):[-e,void 0];case"string":return[0,e];case"object":return e}}(n[0]);var i=n[1];let a=1;i&&i.constructor===Object&&(o.ga=i,"function"==typeof(i=n[++a])&&(o.la=!0,null!=Ir||(Ir=i),null!=Mr||(Mr=n[a+1]),i=n[a+=2]));const s={};for(;i&&Array.isArray(i)&&i.length&&"number"==typeof i[0]&&i[0]>0;){for(var c=0;c<i.length;c++)s[i[c]]=i;i=n[++a]}for(c=1;void 0!==i;){let e;"number"==typeof i&&(c+=i,i=n[++a]);var A=void 0;if(i instanceof Tr?e=i:(e=kr,a--),null==e?void 0:e.l){i=n[++a],A=n;var u=a;"function"==typeof i&&(i=i(),A[u]=i),A=i}for(u=c+1,"number"==typeof(i=n[++a])&&i<0&&(u-=i,i=n[++a]);c<u;c++){const n=s[c];A?r(o,c,e,A,n):t(o,c,e,n)}}return n[e]=o}function Cr(e){return Array.isArray(e)?e[0]instanceof Tr?e:[Sr,e]:[e,void 0]}function Or(e,t){return e instanceof $n?e.u:Array.isArray(e)?De(e,t,!1):void 0}function Ur(e,t,r,n){const o=r.g;e[t]=n?(e,t,r)=>o(e,t,r,n):o}function Dr(e,t,r,n,o){const i=r.g;let a,s;e[t]=(e,t,r)=>i(e,t,r,s||(s=Pr(Lr,Ur,Dr,n).T),a||(a=Nr(n)),o)}function Nr(e){let t=e[Rr];if(null!=t)return t;const r=Pr(Lr,Ur,Dr,e);return t=r.la?(e,t)=>Ir(e,t,r):(e,t)=>{const n=0|e[Q];for(;jn(t)&&4!=t.h;){var o=t.m,i=r[o];if(null==i){var a=r.ga;a&&(a=a[o])&&null!=(a=Br(a))&&(i=r[o]=a)}null!=i&&i(t,e,o)||(o=(i=t).l,Vn(i),i.fa?i=void 0:(a=i.g.g-o,i.g.g=o,i=Bn(i.g,a)),o=e,i&&((a=o[q])?a.push(i):o[q]=[i]))}return 8192&n&&it(e),!0},e[Rr]=t}function Br(e){const t=(e=Cr(e))[0].g;if(e=e[1]){const r=Nr(e),n=Pr(Lr,Ur,Dr,e).T;return(e,o,i)=>t(e,o,i,n,r)}return t}function Gr(e,t,r){e[t]=r.h}function jr(e,t,r,n){let o,i;const a=r.h;e[t]=(e,t,r)=>a(e,t,r,i||(i=Pr(xr,Gr,jr,n).T),o||(o=Vr(n)))}function Vr(e){let t=e[Fr];if(!t){const r=Pr(xr,Gr,jr,e);t=(e,t)=>Xr(e,t,r),e[Fr]=t}return t}function Xr(e,t,r){!function(e,t,r){const n=512&t?0:-1,o=e.length,i=o+((t=64&t?256&t:!!o&<(e[o-1]))?-1:0);for(let t=0;t<i;t++)r(t-n,e[t]);if(t){e=e[o-1];for(const t in e)!isNaN(t)&&r(+t,e[t])}}(e,e[Q]|(r.T[1]?512:0),((e,n)=>{if(null!=n){var o=function(e,t){var r=e[t];if(r)return r;if((r=e.ga)&&(r=r[t])){var n=(r=Cr(r))[0].h;if(r=r[1]){const t=Vr(r),o=Pr(xr,Gr,jr,r).T;r=e.la?Mr(o,t):(e,r,i)=>n(e,r,i,o,t)}else r=n;return e[t]=r}}(r,e);o&&o(t,n,e)}})),(e=mt(e))&&function(e,t){or(e,e.g.end());for(let r=0;r<t.length;r++)or(e,D(t[r])||new Uint8Array(0))}(t,e)}function Hr(e,t){if(Array.isArray(t)){var r=0|t[Q];if(4&r)return t;for(var n=0,o=0;n<t.length;n++){const r=e(t[n]);null!=r&&(t[o++]=r)}return o<n&&(t.length=o),rt(t,-6145&r|5),2&r&&Object.freeze(t),t}}function Wr(e,t,r){return new Tr(e,t,r)}function zr(e,t,r){return new Tr(e,t,r)}function Kr(e,t,r){We(e,0|e[Q],t,r)}var Yr=Ar((function(e,t,r,n,o){return 2===e.h&&(e=Xn(e,De([void 0,void 0],n,!0),o),pt(n=0|t[Q]),(o=Xe(t,n,r))instanceof Ae?2&o.M?((o=o.da()).push(e),We(t,n,r,o)):o.Ja(e):Array.isArray(o)?(2&o[Q]&&We(t,n,r,o=Qe(o)),o.push(e)):We(t,n,r,[e]),!0)}),(function(e,t,r,n,o){if(t instanceof Ae)t.forEach(((t,i)=>{lr(e,r,De([i,t],n,!1),o)}));else if(Array.isArray(t))for(let i=0;i<t.length;i++){const a=t[i];Array.isArray(a)&&lr(e,r,De(a,n,!1),o)}}));function $r(e,t,r){if(null!=(t=function(e){if(null==e)return e;const t=typeof e;if("bigint"===t)return String(Ht(64,e));if(Qt(e)){if("string"===t)return oe(e);if("number"===t)return se(e)}}(t))&&("string"==typeof t&&Qn(t),null!=t))switch(ar(e,r,0),typeof t){case"number":e=e.g,Ot(t),nr(e,Mt,Pt);break;case"bigint":r=BigInt.asUintN(64,t),r=new tr(Number(r&BigInt(4294967295)),Number(r>>BigInt(32))),nr(e.g,r.h,r.g);break;default:r=Qn(t),nr(e.g,r.h,r.g)}}function qr(e,t,r){null!=(t=te(t))&&null!=t&&(ar(e,r,0),ir(e.g,t))}function Jr(e,t,r){null!=(t=Jt(t))&&(ar(e,r,0),e.g.g.push(t?1:0))}function Zr(e,t,r){null!=(t=fe(t))&&ur(e,r,c(t))}function Qr(e,t,r,n,o){lr(e,r,Or(t,n),o)}function ti(e,t,r){null==t||"string"==typeof t||t instanceof N||(C(t)?C(t)&&H(Z):t=void 0),null!=t&&ur(e,r,Ln(t).buffer)}function ei(e,t,r){return(5===e.h||2===e.h)&&(t=en(t,0|t[Q],r,!1),2==e.h?zn(e,Cn,t):t.push(Cn(e.g)),!0)}var ni=Wr((function(e,t,r){if(1!==e.h)return!1;var n=e.g;e=Pn(n);const o=Pn(n);n=2*(o>>31)+1;const i=o>>>20&2047;return e=4294967296*(1048575&o)+e,Kr(t,r,2047==i?e?NaN:n*(1/0):0==i?5e-324*n*e:n*Math.pow(2,i-1075)*(e+4503599627370496)),!0}),(function(e,t,r){null!=(t=qt(t))&&(ar(e,r,1),e=e.g,(r=It||(It=new DataView(new ArrayBuffer(8)))).setFloat64(0,+t,!0),Mt=r.getUint32(0,!0),Pt=r.getUint32(4,!0),sr(e,Mt),sr(e,Pt))}),dr()),ri=Wr((function(e,t,r){return 5===e.h&&(Kr(t,r,Cn(e.g)),!0)}),(function(e,t,r){null!=(t=qt(t))&&(ar(e,r,5),e=e.g,Ut(t),sr(e,Mt))}),vr),ii=zr(ei,(function(e,t,r){if(null!=(t=Hr(qt,t)))for(let a=0;a<t.length;a++){var n=e,o=r,i=t[a];null!=i&&(ar(n,o,5),n=n.g,Ut(i),sr(n,Mt))}}),vr),si=zr(ei,(function(e,t,r){if(null!=(t=Hr(qt,t))&&t.length){ar(e,r,2),rr(e.g,4*t.length);for(let n=0;n<t.length;n++)r=e.g,Ut(t[n]),sr(r,Mt)}}),vr),oi=Wr((function(e,t,r){return 0===e.h&&(Kr(t,r,Rn(e.g,Nt)),!0)}),$r,_r),ai=Wr((function(e,t,r){return 0===e.h&&(Kr(t,r,0===(e=Rn(e.g,Nt))?void 0:e),!0)}),$r,_r),ci=Wr((function(e,t,r){return 0===e.h&&(Kr(t,r,Rn(e.g,Dt)),!0)}),(function(e,t,r){if(null!=(t=ue(t))&&("string"==typeof t&&qn(t),null!=t))switch(ar(e,r,0),typeof t){case"number":e=e.g,Ot(t),nr(e,Mt,Pt);break;case"bigint":r=BigInt.asUintN(64,t),r=new Jn(Number(r&BigInt(4294967295)),Number(r>>BigInt(32))),nr(e.g,r.h,r.g);break;default:r=qn(t),nr(e.g,r.h,r.g)}}),dr()),hi=Wr((function(e,t,r){return 0===e.h&&(Kr(t,r,In(e.g)),!0)}),qr,mr),ui=zr((function(e,t,r){return(0===e.h||2===e.h)&&(t=en(t,0|t[Q],r,!1),2==e.h?zn(e,In,t):t.push(In(e.g)),!0)}),(function(e,t,r){if(null!=(t=Hr(te,t))&&t.length){r=cr(e,r);for(let r=0;r<t.length;r++)ir(e.g,t[r]);hr(e,r)}}),mr),li=Wr((function(e,t,r){return 0===e.h&&(Kr(t,r,0===(e=In(e.g))?void 0:e),!0)}),qr,mr),di=Wr((function(e,t,r){return 0===e.h&&(Kr(t,r,Fn(e.g)),!0)}),Jr,pr),fi=Wr((function(e,t,r){return 0===e.h&&(Kr(t,r,!1===(e=Fn(e.g))?void 0:e),!0)}),Jr,pr),pi=zr((function(e,t,r){return 2===e.h&&(e=Hn(e),en(t,0|t[Q],r,!1).push(e),!0)}),(function(e,t,r){if(null!=(t=Hr(fe,t)))for(let a=0;a<t.length;a++){var n=e,o=r,i=t[a];null!=i&&ur(n,o,c(i))}}),gr),gi=Wr((function(e,t,r){return 2===e.h&&(Kr(t,r,""===(e=Hn(e))?void 0:e),!0)}),Zr,gr),mi=Wr((function(e,t,r){return 2===e.h&&(Kr(t,r,Hn(e)),!0)}),Zr,gr),yi=function(e,t,r=fr){return new Tr(e,t,r)}((function(e,t,r,n,o){return 2===e.h&&(n=De(void 0,n,!0),en(t,0|t[Q],r,!0).push(n),Xn(e,n,o),!0)}),(function(e,t,r,n,o){if(Array.isArray(t))for(let i=0;i<t.length;i++)Qr(e,t[i],r,n,o)})),_i=Ar((function(e,t,r,n,o,i){return 2===e.h&&(sn(t,0|t[Q],i,r),Xn(e,t=an(t,n,r),o),!0)}),Qr),vi=Wr((function(e,t,r){return 2===e.h&&(Kr(t,r,Wn(e)),!0)}),ti,Er),Ei=zr((function(e,t,r){return(0===e.h||2===e.h)&&(t=en(t,0|t[Q],r,!1),2==e.h?zn(e,Mn,t):t.push(Mn(e.g)),!0)}),(function(e,t,r){if(null!=(t=Hr(ee,t)))for(let a=0;a<t.length;a++){var n=e,o=r,i=t[a];null!=i&&(ar(n,o,0),rr(n.g,i))}}),yr),wi=Wr((function(e,t,r){return 0===e.h&&(Kr(t,r,0===(e=Mn(e.g))?void 0:e),!0)}),(function(e,t,r){null!=(t=ee(t))&&null!=t&&(ar(e,r,0),rr(e.g,t))}),yr),Ti=Wr((function(e,t,r){return 0===e.h&&(Kr(t,r,In(e.g)),!0)}),(function(e,t,r){null!=(t=te(t))&&(t=parseInt(t,10),ar(e,r,0),ir(e.g,t))}),wr),Ai=class{constructor(e,t){this.h=e,this.g=t,this.l=hn,this.m=dn,this.defaultValue=void 0}register(){w(this)}};function bi(e,t){return new Ai(e,t)}function ki(e,t){return(r,n)=>{if(Kn.length){const e=Kn.pop();e.o(n),Un(e.g,r,n),r=e}else r=new class{constructor(e,t){if(Gn.length){const r=Gn.pop();Un(r,e,t),e=r}else e=new class{constructor(e,t){this.h=null,this.m=!1,this.g=this.l=this.j=0,Un(this,e,t)}clear(){this.h=null,this.m=!1,this.g=this.l=this.j=0,this.aa=!1}}(e,t);this.g=e,this.l=this.g.g,this.h=this.m=-1,this.o(t)}o({fa:e=!1}={}){this.fa=e}}(r,n);try{const n=new e,i=n.u;Nr(t)(i,r);var o=n}finally{r.g.clear(),r.m=-1,r.h=-1,Kn.length<100&&Kn.push(r)}return o}}function Si(e){return function(){const t=new class{constructor(){this.l=[],this.h=0,this.g=new class{constructor(){this.g=[]}length(){return this.g.length}end(){const e=this.g;return this.g=[],e}}}};Xr(this.u,t,Pr(xr,Gr,jr,e)),or(t,t.g.end());const r=new Uint8Array(t.h),n=t.l,o=n.length;let i=0;for(let e=0;e<o;e++){const t=n[e];r.set(t,i),i+=t.length}return t.l=[r],r}}var Ri,xi=class extends $n{constructor(e){super(e)}},Li=[0,gi,Wr((function(e,t,r){return 2===e.h&&(Kr(t,r,(e=Wn(e))===U()?void 0:e),!0)}),(function(e,t,r){if(null!=t){if(t instanceof $n){const n=t.Oa;return void(n&&(t=n(t),null!=t&&ur(e,r,Ln(t).buffer)))}if(Array.isArray(t))return}ti(e,t,r)}),Er)],Fi=globalThis.trustedTypes;function Ii(e){void 0===Ri&&(Ri=function(){let e=null;if(!Fi)return e;try{const t=e=>e;e=Fi.createPolicy("goog#html",{createHTML:t,createScript:t,createScriptURL:t})}catch(e){}return e}());var t=Ri;return new class{constructor(e){this.g=e}toString(){return this.g+""}}(t?t.createScriptURL(e):e)}function Mi(e,...t){if(0===t.length)return Ii(e[0]);let r=e[0];for(let n=0;n<t.length;n++)r+=encodeURIComponent(t[n])+e[n+1];return Ii(r)}var Pi=[0,hi,Ti,di,-1,ui,Ti,-1],Ci=class extends $n{constructor(e){super(e)}},Oi=[0,di,mi,di,Ti,-1,zr((function(e,t,r){return(0===e.h||2===e.h)&&(t=en(t,0|t[Q],r,!1),2==e.h?zn(e,On,t):t.push(In(e.g)),!0)}),(function(e,t,r){if(null!=(t=Hr(te,t))&&t.length){r=cr(e,r);for(let r=0;r<t.length;r++)ir(e.g,t[r]);hr(e,r)}}),wr),mi,-1,[0,di,-1],Ti,di,-1],Ui=[0,mi,-2],Di=class extends $n{constructor(e){super(e)}},Ni=[0],Bi=[0,hi,di,1,di,-3],Gi=class extends $n{constructor(e){super(e,2)}},ji={};ji[336783863]=[0,mi,di,-1,hi,[0,[1,2,3,4,5,6,7,8,9],_i,Ni,_i,Oi,_i,Ui,_i,Bi,_i,Pi,_i,[0,mi,-2],_i,[0,mi,Ti],_i,[0,Ti,mi,-1],_i,[0,Ti,-1]],[0,mi],di,[0,[1,3],[2,4],_i,[0,ui],-1,_i,[0,pi],-1,yi,[0,mi,-1]],mi];var Vi=[0,ai,-1,fi,-3,ai,ui,gi,li,ai,-1,fi,li,fi,-2,gi];function Xi(e,t){tn(e,2,de(t),"")}function Hi(e,t){mn(e,3,t)}function Wi(e,t){mn(e,4,t)}var zi=class extends $n{constructor(e){super(e,500)}o(e){return dn(this,0,7,e)}},Ki=[-1,{}],Yi=[0,mi,1,Ki],$i=[0,mi,pi,Ki];function qi(e,t){yn(e,1,zi,t)}function Ji(e,t){mn(e,10,t)}function Zi(e,t){mn(e,15,t)}var Qi=class extends $n{constructor(e){super(e,500)}o(e){return dn(this,0,1001,e)}},ts=[-500,yi,[-500,gi,-1,pi,-3,[-2,ji,di],yi,Li,li,-1,Yi,$i,yi,[0,gi,fi],gi,Vi,li,pi,987,pi],4,yi,[-500,mi,-1,[-1,{}],998,mi],yi,[-500,mi,pi,-1,[-2,{},di],997,pi,-1],li,yi,[-500,mi,pi,Ki,998,pi],pi,li,Yi,$i,yi,[0,gi,-1,Ki],pi,-2,Vi,gi,-1,fi,[0,fi,wi],978,Ki,yi,Li];Qi.prototype.g=Si(ts);var es=ki(Qi,ts),ns=class extends $n{constructor(e){super(e)}},rs=class extends $n{constructor(e){super(e)}g(){return ln(this,ns,1)}},is=[0,yi,[0,hi,ri,mi,-1]],ss=ki(rs,is),os=class extends $n{constructor(e){super(e)}},as=class extends $n{constructor(e){super(e)}},cs=class extends $n{constructor(e){super(e)}h(){return hn(this,os,2)}g(){return ln(this,as,5)}},hs=ki(class extends $n{constructor(e){super(e)}},[0,pi,ui,si,[0,Ti,[0,hi,-3],[0,ri,-3],[0,hi,-1,[0,yi,[0,hi,-2]]],yi,[0,ri,-1,mi,ri]],mi,-1,oi,yi,[0,hi,ri],pi,oi]),us=class extends $n{constructor(e){super(e)}},ls=ki(class extends $n{constructor(e){super(e)}},[0,yi,[0,ri,-4]]),ds=class extends $n{constructor(e){super(e)}},fs=ki(class extends $n{constructor(e){super(e)}},[0,yi,[0,ri,-4]]),ps=class extends $n{constructor(e){super(e)}},gs=[0,hi,-1,si,Ti],ms=class extends $n{constructor(e){super(e)}};ms.prototype.g=Si([0,ri,-4,oi]);var ys=class extends $n{constructor(e){super(e)}},_s=ki(class extends $n{constructor(e){super(e)}},[0,yi,[0,1,hi,mi,is],oi]),vs=class extends $n{constructor(e){super(e)}},Es=class extends $n{constructor(e){super(e)}ma(){const e=Ke(this);return null==e?U():e}},ws=class extends $n{constructor(e){super(e)}},Ts=[1,2],As=ki(class extends $n{constructor(e){super(e)}},[0,yi,[0,Ts,_i,[0,si],_i,[0,vi],hi,mi],oi]),bs=class extends $n{constructor(e){super(e)}},ks=[0,mi,hi,ri,pi,-1],Ss=class extends $n{constructor(e){super(e)}},xs=[0,di,-1],Ls=class extends $n{constructor(e){super(e)}},Rs=[1,2,3,4,5],Fs=class extends $n{constructor(e){super(e)}g(){return null!=Ke(this)}h(){return null!=vn(this,2)}},Is=class extends $n{constructor(e){super(e)}g(){var e;return null!=(e=Jt(Ve(this,2)))&&e}},Ms=[0,vi,mi,[0,hi,oi,-1],[0,ci,oi]],Ps=[0,Ms,di,[0,Rs,_i,Bi,_i,Oi,_i,Pi,_i,Ni,_i,Ui],Ti],Cs=class extends $n{constructor(e){super(e)}},Os=[0,Ps,ri,-1,hi],Us=bi(502141897,Cs);ji[502141897]=Os;var Ds=ki(class extends $n{constructor(e){super(e)}},[0,[0,Ti,-1,ii,Ei],gs]),Ns=class extends $n{constructor(e){super(e)}},Bs=class extends $n{constructor(e){super(e)}},Gs=[0,Ps,ri,[0,Ps],di],js=[0,Ps,Os,Gs,ri,[0,[0,Ms]]],Vs=bi(508968150,Bs);ji[508968150]=js,ji[508968149]=Gs;var Xs=class extends $n{constructor(e){super(e)}},Hs=bi(513916220,Xs);ji[513916220]=[0,Ps,js,hi];var Ws=class extends $n{constructor(e){super(e)}h(){return hn(this,bs,2)}g(){He(this,2)}},zs=[0,Ps,ks];ji[478825465]=zs;var Ks=class extends $n{constructor(e){super(e)}},Ys=class extends $n{constructor(e){super(e)}},$s=class extends $n{constructor(e){super(e)}},qs=class extends $n{constructor(e){super(e)}},Js=class extends $n{constructor(e){super(e)}},Zs=[0,Ps,[0,Ps],zs,-1],Qs=[0,Ps,ri,hi],to=[0,Ps,ri],eo=[0,Ps,Qs,to,ri],no=bi(479097054,Js);ji[479097054]=[0,Ps,eo,Zs],ji[463370452]=Zs,ji[464864288]=Qs;var ro=bi(462713202,qs);ji[462713202]=eo,ji[474472470]=to;var io=class extends $n{constructor(e){super(e)}},so=class extends $n{constructor(e){super(e)}},oo=class extends $n{constructor(e){super(e)}},ao=class extends $n{constructor(e){super(e)}},co=[0,Ps,ri,-1,hi],ho=[0,Ps,ri,di];ao.prototype.g=Si([0,Ps,to,[0,Ps],Os,Gs,co,ho]);var uo=class extends $n{constructor(e){super(e)}},lo=bi(456383383,uo);ji[456383383]=[0,Ps,ks];var fo=class extends $n{constructor(e){super(e)}},po=bi(476348187,fo);ji[476348187]=[0,Ps,xs];var go=class extends $n{constructor(e){super(e)}},mo=class extends $n{constructor(e){super(e)}},yo=[0,Ti,-1],_o=bi(458105876,class extends $n{constructor(e){super(e)}g(){var e=this.u;const t=0|e[Q],r=2&t;return e=function(e,t,r){var n=mo;const o=2&t;let i=!1;if(null==r){if(o)return Ie();r=[]}else if(r.constructor===Ae){if(!(2&r.M)||o)return r;r=r.da()}else Array.isArray(r)?i=!!(2&r[Q]):r=[];if(o){if(!r.length)return Ie();i||(i=!0,it(r))}else i&&(i=!1,r=Qe(r));return i||(64&r[Q]?r[Q]&=-33:32&t&&nt(r,32)),We(e,t,2,n=new Ae(r,n,ge,void 0)),n}(e,t,Xe(e,t,2)),!r&&mo&&(e.pa=!0),e}});ji[458105876]=[0,yo,Yr,[!0,oi,[0,mi,-1,pi]]];var vo=class extends $n{constructor(e){super(e)}},Eo=bi(458105758,vo);ji[458105758]=[0,Ps,mi,yo];var wo=class extends $n{constructor(e){super(e)}},To=bi(443442058,wo);ji[443442058]=[0,Ps,mi,hi,ri,pi,-1,di,ri],ji[514774813]=co;var Mo,Ao=class extends $n{constructor(e){super(e)}},bo=bi(516587230,Ao);function ko(e,t){return t=t?t.clone():new bs,void 0!==e.displayNamesLocale?He(t,1,de(e.displayNamesLocale)):void 0===e.displayNamesLocale&&He(t,1),void 0!==e.maxResults?Tn(t,2,e.maxResults):"maxResults"in e&&He(t,2),void 0!==e.scoreThreshold?An(t,3,e.scoreThreshold):"scoreThreshold"in e&&He(t,3),void 0!==e.categoryAllowlist?bn(t,4,e.categoryAllowlist):"categoryAllowlist"in e&&He(t,4),void 0!==e.categoryDenylist?bn(t,5,e.categoryDenylist):"categoryDenylist"in e&&He(t,5),t}function So(e,t=-1,r=""){return{categories:e.map((e=>{var t,r,n,o,i,a,s;return{index:null!=(r=null!=(t=_n(e,1))?t:0)?r:-1,score:null!=(n=En(e,2))?n:0,categoryName:null!=(i=null!=(o=vn(e,3))?o:"")?i:"",displayName:null!=(s=null!=(a=vn(e,4))?a:"")?s:""}})),headIndex:t,headName:r}}function xo(e){var t,r,n,o,i,a,s,c,A,u,l,d,g,f=$e(e,3,qt,Ye()),h=$e(e,2,te,Ye()),p=$e(e,1,fe,Ye()),E=$e(e,9,fe,Ye());const m={categories:[],keypoints:[]};for(let e=0;e<f.length;e++)m.categories.push({score:f[e],index:null!=(t=h[e])?t:-1,categoryName:null!=(r=p[e])?r:"",displayName:null!=(n=E[e])?n:""});if((f=null==(o=hn(e,cs,4))?void 0:o.h())&&(m.boundingBox={originX:null!=(i=_n(f,1))?i:0,originY:null!=(a=_n(f,2))?a:0,width:null!=(s=_n(f,3))?s:0,height:null!=(c=_n(f,4))?c:0,angle:0}),null==(A=hn(e,cs,4))?void 0:A.g().length)for(const t of hn(e,cs,4).g())m.keypoints.push({x:null!=(u=ze(t,1))?u:0,y:null!=(l=ze(t,2))?l:0,score:null!=(d=ze(t,4))?d:0,label:null!=(g=vn(t,3))?g:""});return m}function Lo(e){var t,r,n,o;const i=[];for(const a of ln(e,ds,1))i.push({x:null!=(t=En(a,1))?t:0,y:null!=(r=En(a,2))?r:0,z:null!=(n=En(a,3))?n:0,visibility:null!=(o=En(a,4))?o:0});return i}function Ro(e){var t,r,n,o;const i=[];for(const a of ln(e,us,1))i.push({x:null!=(t=En(a,1))?t:0,y:null!=(r=En(a,2))?r:0,z:null!=(n=En(a,3))?n:0,visibility:null!=(o=En(a,4))?o:0});return i}function Fo(e){return Array.from(e,(e=>e>127?e-256:e))}function Io(e,t){if(e.length!==t.length)throw Error(`Cannot compute cosine similarity between embeddings of different sizes (${e.length} vs. ${t.length}).`);let r=0,n=0,o=0;for(let i=0;i<e.length;i++)r+=e[i]*t[i],n+=e[i]*e[i],o+=t[i]*t[i];if(n<=0||o<=0)throw Error("Cannot compute cosine similarity on embedding with 0 norm.");return r/Math.sqrt(n*o)}ji[516587230]=[0,Ps,co,ho,ri],ji[518928384]=ho;var Po=new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]);async function Co(){if(void 0===Mo)try{await WebAssembly.instantiate(Po),Mo=!0}catch(e){Mo=!1}return Mo}async function Oo(e,t=Mi``){const r=await Co()?"wasm_internal":"wasm_nosimd_internal";return{wasmLoaderPath:`${t}/${e}_${r}.js`,wasmBinaryPath:`${t}/${e}_${r}.wasm`}}var Uo=class{};function Do(){var e=navigator;return!("undefined"==typeof OffscreenCanvas||function(e=navigator){return(e=e.userAgent).includes("Safari")&&!e.includes("Chrome")}(e)&&!((e=e.userAgent.match(/Version\/([\d]+).*Safari/))&&e.length>=1&&Number(e[1])>=17))}async function No(e){if("function"!=typeof importScripts){const t=document.createElement("script");return t.src=e.toString(),t.crossOrigin="anonymous",new Promise(((e,r)=>{t.addEventListener("load",(()=>{e()}),!1),t.addEventListener("error",(e=>{r(e)}),!1),document.body.appendChild(t)}))}importScripts(e.toString())}function Bo(e){return void 0!==e.videoWidth?[e.videoWidth,e.videoHeight]:void 0!==e.naturalWidth?[e.naturalWidth,e.naturalHeight]:void 0!==e.displayWidth?[e.displayWidth,e.displayHeight]:[e.width,e.height]}function Go(e,t,r){e.m||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target"),r(t=e.i.stringToNewUTF8(t)),e.i._free(t)}function jo(e,t,r){if(!e.i.canvas)throw Error("No OpenGL canvas configured.");if(r?e.i._bindTextureToStream(r):e.i._bindTextureToCanvas(),!(r=e.i.canvas.getContext("webgl2")||e.i.canvas.getContext("webgl")))throw Error("Failed to obtain WebGL context from the provided canvas. `getContext()` should only be invoked with `webgl` or `webgl2`.");e.i.gpuOriginForWebTexturesIsBottomLeft&&r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!0),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,t),e.i.gpuOriginForWebTexturesIsBottomLeft&&r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1);const[n,o]=Bo(t);return!e.l||n===e.i.canvas.width&&o===e.i.canvas.height||(e.i.canvas.width=n,e.i.canvas.height=o),[n,o]}function Vo(e,t,r){e.m||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target");const n=new Uint32Array(t.length);for(let r=0;r<t.length;r++)n[r]=e.i.stringToNewUTF8(t[r]);t=e.i._malloc(4*n.length),e.i.HEAPU32.set(n,t>>2),r(t);for(const t of n)e.i._free(t);e.i._free(t)}function Xo(e,t,r){e.i.simpleListeners=e.i.simpleListeners||{},e.i.simpleListeners[t]=r}function Ho(e,t,r){let n=[];e.i.simpleListeners=e.i.simpleListeners||{},e.i.simpleListeners[t]=(e,t,o)=>{t?(r(n,o),n=[]):n.push(e)}}async function Wo(e,t,r,n){return e=await(async(e,t,r,n,o)=>{if(t&&await No(t),!self.ModuleFactory)throw Error("ModuleFactory not set.");if(r&&(await No(r),!self.ModuleFactory))throw Error("ModuleFactory not set.");return self.Module&&o&&((t=self.Module).locateFile=o.locateFile,o.mainScriptUrlOrBlob&&(t.mainScriptUrlOrBlob=o.mainScriptUrlOrBlob)),o=await self.ModuleFactory(self.Module||o),self.ModuleFactory=self.Module=void 0,new e(o,n)})(e,r.wasmLoaderPath,r.assetLoaderPath,t,{locateFile:e=>e.endsWith(".wasm")?r.wasmBinaryPath.toString():r.assetBinaryPath&&e.endsWith(".data")?r.assetBinaryPath.toString():e}),await e.o(n),e}function zo(e,t){const r=hn(e.baseOptions,Fs,1)||new Fs;"string"==typeof t?(He(r,2,de(t)),He(r,1)):t instanceof Uint8Array&&(He(r,1,dt(t,!1)),He(r,2)),dn(e.baseOptions,0,1,r)}function Ko(e){try{const t=e.G.length;if(1===t)throw Error(e.G[0].message);if(t>1)throw Error("Encountered multiple errors: "+e.G.map((e=>e.message)).join(", "))}finally{e.G=[]}}function Yo(e,t){e.B=Math.max(e.B,t)}function $o(e,t){e.A=new zi,Xi(e.A,"PassThroughCalculator"),Hi(e.A,"free_memory"),Wi(e.A,"free_memory_unused_out"),Ji(t,"free_memory"),qi(t,e.A)}function qo(e,t){Hi(e.A,t),Wi(e.A,t+"_unused_out")}function Jo(e){e.g.addBoolToStream(!0,"free_memory",e.B)}Uo.forVisionTasks=function(e){return Oo("vision",e)},Uo.forTextTasks=function(e){return Oo("text",e)},Uo.forGenAiExperimentalTasks=function(e){return Oo("genai_experimental",e)},Uo.forGenAiTasks=function(e){return Oo("genai",e)},Uo.forAudioTasks=function(e){return Oo("audio",e)},Uo.isSimdSupported=function(){return Co()};var Zo=class{constructor(e){this.g=e,this.G=[],this.B=0,this.g.setAutoRenderToScreen(!1)}l(e,t=!0){var r,n,o,i,a,s;if(t){const t=e.baseOptions||{};if((null==(r=e.baseOptions)?void 0:r.modelAssetBuffer)&&(null==(n=e.baseOptions)?void 0:n.modelAssetPath))throw Error("Cannot set both baseOptions.modelAssetPath and baseOptions.modelAssetBuffer");if(!((null==(o=hn(this.baseOptions,Fs,1))?void 0:o.g())||(null==(i=hn(this.baseOptions,Fs,1))?void 0:i.h())||(null==(a=e.baseOptions)?void 0:a.modelAssetBuffer)||(null==(s=e.baseOptions)?void 0:s.modelAssetPath)))throw Error("Either baseOptions.modelAssetPath or baseOptions.modelAssetBuffer must be set");if(function(e,t){let r=hn(e.baseOptions,Ls,3);if(!r){var n=r=new Ls,o=new Di;fn(n,4,Rs,o)}"delegate"in t&&("GPU"===t.delegate?(t=r,n=new Ci,fn(t,2,Rs,n)):(t=r,n=new Di,fn(t,4,Rs,n))),dn(e.baseOptions,0,3,r)}(this,t),t.modelAssetPath)return fetch(t.modelAssetPath.toString()).then((e=>{if(e.ok)return e.arrayBuffer();throw Error(`Failed to fetch model: ${t.modelAssetPath} (${e.status})`)})).then((e=>{try{this.g.i.FS_unlink("/model.dat")}catch(e){}this.g.i.FS_createDataFile("/","model.dat",new Uint8Array(e),!0,!1,!1),zo(this,"/model.dat"),this.m(),this.J()}));if(t.modelAssetBuffer instanceof Uint8Array)zo(this,t.modelAssetBuffer);else if(t.modelAssetBuffer)return async function(e){const t=[];for(var r=0;;){const{done:n,value:o}=await e.read();if(n)break;t.push(o),r+=o.length}if(0===t.length)return new Uint8Array(0);if(1===t.length)return t[0];e=new Uint8Array(r),r=0;for(const n of t)e.set(n,r),r+=n.length;return e}(t.modelAssetBuffer).then((e=>{zo(this,e),this.m(),this.J()}))}return this.m(),this.J(),Promise.resolve()}J(){}ca(){let e;if(this.g.ca((t=>{e=es(t)})),!e)throw Error("Failed to retrieve CalculatorGraphConfig");return e}setGraph(e,t){this.g.attachErrorListener(((e,t)=>{this.G.push(Error(t))})),this.g.Ha(),this.g.setGraph(e,t),this.A=void 0,Ko(this)}finishProcessing(){this.g.finishProcessing(),Ko(this)}close(){this.A=void 0,this.g.closeGraph()}};function Qo(e,t){if(!e)throw Error(`Unable to obtain required WebGL resource: ${t}`);return e}Zo.prototype.close=Zo.prototype.close;var ta=class{constructor(e,t,r,n){this.g=e,this.h=t,this.m=r,this.l=n}bind(){this.g.bindVertexArray(this.h)}close(){this.g.deleteVertexArray(this.h),this.g.deleteBuffer(this.m),this.g.deleteBuffer(this.l)}};function ea(e,t,r){const n=e.g;if(r=Qo(n.createShader(r),"Failed to create WebGL shader"),n.shaderSource(r,t),n.compileShader(r),!n.getShaderParameter(r,n.COMPILE_STATUS))throw Error(`Could not compile WebGL shader: ${n.getShaderInfoLog(r)}`);return n.attachShader(e.h,r),r}function na(e,t){const r=e.g,n=Qo(r.createVertexArray(),"Failed to create vertex array");r.bindVertexArray(n);const o=Qo(r.createBuffer(),"Failed to create buffer");r.bindBuffer(r.ARRAY_BUFFER,o),r.enableVertexAttribArray(e.P),r.vertexAttribPointer(e.P,2,r.FLOAT,!1,0,0),r.bufferData(r.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),r.STATIC_DRAW);const i=Qo(r.createBuffer(),"Failed to create buffer");return r.bindBuffer(r.ARRAY_BUFFER,i),r.enableVertexAttribArray(e.J),r.vertexAttribPointer(e.J,2,r.FLOAT,!1,0,0),r.bufferData(r.ARRAY_BUFFER,new Float32Array(t?[0,1,0,0,1,0,1,1]:[0,0,0,1,1,1,1,0]),r.STATIC_DRAW),r.bindBuffer(r.ARRAY_BUFFER,null),r.bindVertexArray(null),new ta(r,n,o,i)}function ra(e,t){if(e.g){if(t!==e.g)throw Error("Cannot change GL context once initialized")}else e.g=t}function ia(e,t,r,n){return ra(e,t),e.h||(e.m(),e.C()),r?(e.s||(e.s=na(e,!0)),r=e.s):(e.v||(e.v=na(e,!1)),r=e.v),t.useProgram(e.h),r.bind(),e.l(),e=n(),r.g.bindVertexArray(null),e}function sa(e,t,r){return ra(e,t),e=Qo(t.createTexture(),"Failed to create texture"),t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,null!=r?r:t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,null!=r?r:t.LINEAR),t.bindTexture(t.TEXTURE_2D,null),e}function oa(e,t,r){ra(e,t),e.A||(e.A=Qo(t.createFramebuffer(),"Failed to create framebuffe.")),t.bindFramebuffer(t.FRAMEBUFFER,e.A),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,r,0)}function aa(e){var t;null==(t=e.g)||t.bindFramebuffer(e.g.FRAMEBUFFER,null)}var va,ca=class{G(){return"\n precision mediump float;\n varying vec2 vTex;\n uniform sampler2D inputTexture;\n void main() {\n gl_FragColor = texture2D(inputTexture, vTex);\n }\n "}m(){const e=this.g;if(this.h=Qo(e.createProgram(),"Failed to create WebGL program"),this.Z=ea(this,"\n attribute vec2 aVertex;\n attribute vec2 aTex;\n varying vec2 vTex;\n void main(void) {\n gl_Position = vec4(aVertex, 0.0, 1.0);\n vTex = aTex;\n }",e.VERTEX_SHADER),this.Y=ea(this,this.G(),e.FRAGMENT_SHADER),e.linkProgram(this.h),!e.getProgramParameter(this.h,e.LINK_STATUS))throw Error(`Error during program linking: ${e.getProgramInfoLog(this.h)}`);this.P=e.getAttribLocation(this.h,"aVertex"),this.J=e.getAttribLocation(this.h,"aTex")}C(){}l(){}close(){if(this.h){const e=this.g;e.deleteProgram(this.h),e.deleteShader(this.Z),e.deleteShader(this.Y)}this.A&&this.g.deleteFramebuffer(this.A),this.v&&this.v.close(),this.s&&this.s.close()}},ha=class extends ca{G(){return"\n precision mediump float;\n uniform sampler2D backgroundTexture;\n uniform sampler2D maskTexture;\n uniform sampler2D colorMappingTexture;\n varying vec2 vTex;\n void main() {\n vec4 backgroundColor = texture2D(backgroundTexture, vTex);\n float category = texture2D(maskTexture, vTex).r;\n vec4 categoryColor = texture2D(colorMappingTexture, vec2(category, 0.0));\n gl_FragColor = mix(backgroundColor, categoryColor, categoryColor.a);\n }\n "}C(){const e=this.g;e.activeTexture(e.TEXTURE1),this.B=sa(this,e,e.LINEAR),e.activeTexture(e.TEXTURE2),this.j=sa(this,e,e.NEAREST)}m(){super.m();const e=this.g;this.L=Qo(e.getUniformLocation(this.h,"backgroundTexture"),"Uniform location"),this.U=Qo(e.getUniformLocation(this.h,"colorMappingTexture"),"Uniform location"),this.K=Qo(e.getUniformLocation(this.h,"maskTexture"),"Uniform location")}l(){super.l();const e=this.g;e.uniform1i(this.K,0),e.uniform1i(this.L,1),e.uniform1i(this.U,2)}close(){this.B&&this.g.deleteTexture(this.B),this.j&&this.g.deleteTexture(this.j),super.close()}},ua=class extends ca{G(){return"\n precision mediump float;\n uniform sampler2D maskTexture;\n uniform sampler2D defaultTexture;\n uniform sampler2D overlayTexture;\n varying vec2 vTex;\n void main() {\n float confidence = texture2D(maskTexture, vTex).r;\n vec4 defaultColor = texture2D(defaultTexture, vTex);\n vec4 overlayColor = texture2D(overlayTexture, vTex);\n // Apply the alpha from the overlay and merge in the default color\n overlayColor = mix(defaultColor, overlayColor, overlayColor.a);\n gl_FragColor = mix(defaultColor, overlayColor, confidence);\n }\n "}C(){const e=this.g;e.activeTexture(e.TEXTURE1),this.j=sa(this,e),e.activeTexture(e.TEXTURE2),this.B=sa(this,e)}m(){super.m();const e=this.g;this.K=Qo(e.getUniformLocation(this.h,"defaultTexture"),"Uniform location"),this.L=Qo(e.getUniformLocation(this.h,"overlayTexture"),"Uniform location"),this.H=Qo(e.getUniformLocation(this.h,"maskTexture"),"Uniform location")}l(){super.l();const e=this.g;e.uniform1i(this.H,0),e.uniform1i(this.K,1),e.uniform1i(this.L,2)}close(){this.j&&this.g.deleteTexture(this.j),this.B&&this.g.deleteTexture(this.B),super.close()}};function la(e,t){switch(t){case 0:return e.g.find((e=>e instanceof Uint8Array));case 1:return e.g.find((e=>e instanceof Float32Array));case 2:return e.g.find((e=>"undefined"!=typeof WebGLTexture&&e instanceof WebGLTexture));default:throw Error(`Type is not supported: ${t}`)}}function da(e){var t=la(e,1);if(!t){if(t=la(e,0))t=new Float32Array(t).map((e=>e/255));else{t=new Float32Array(e.width*e.height);const n=pa(e);var r=ma(e);if(oa(r,n,fa(e)),"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"document"in self&&"ontouchend"in self.document){r=new Float32Array(e.width*e.height*4),n.readPixels(0,0,e.width,e.height,n.RGBA,n.FLOAT,r);for(let e=0,n=0;e<t.length;++e,n+=4)t[e]=r[n]}else n.readPixels(0,0,e.width,e.height,n.RED,n.FLOAT,t)}e.g.push(t)}return t}function fa(e){let t=la(e,2);if(!t){const r=pa(e);t=ya(e);const n=da(e),o=ga(e);r.texImage2D(r.TEXTURE_2D,0,o,e.width,e.height,0,r.RED,r.FLOAT,n),_a(e)}return t}function pa(e){if(!e.canvas)throw Error("Conversion to different image formats require that a canvas is passed when initializing the image.");return e.h||(e.h=Qo(e.canvas.getContext("webgl2"),"You cannot use a canvas that is already bound to a different type of rendering context.")),e.h}function ga(e){if(e=pa(e),!va)if(e.getExtension("EXT_color_buffer_float")&&e.getExtension("OES_texture_float_linear")&&e.getExtension("EXT_float_blend"))va=e.R32F;else{if(!e.getExtension("EXT_color_buffer_half_float"))throw Error("GPU does not fully support 4-channel float32 or float16 formats");va=e.R16F}return va}function ma(e){return e.l||(e.l=new ca),e.l}function ya(e){const t=pa(e);t.viewport(0,0,e.width,e.height),t.activeTexture(t.TEXTURE0);let r=la(e,2);return r||(r=sa(ma(e),t,e.m?t.LINEAR:t.NEAREST),e.g.push(r),e.j=!0),t.bindTexture(t.TEXTURE_2D,r),r}function _a(e){e.h.bindTexture(e.h.TEXTURE_2D,null)}var Ea=class{constructor(e,t,r,n,o,i,a){this.g=e,this.m=t,this.j=r,this.canvas=n,this.l=o,this.width=i,this.height=a,this.j&&0==--wa&&console.error("You seem to be creating MPMask instances without invoking .close(). This leaks resources.")}Da(){return!!la(this,0)}ja(){return!!la(this,1)}R(){return!!la(this,2)}ia(){return(e=la(this,0))||(e=da(this),e=new Uint8Array(e.map((e=>255*e))),this.g.push(e)),e;var e}ha(){return da(this)}N(){return fa(this)}clone(){const e=[];for(const t of this.g){let r;if(t instanceof Uint8Array)r=new Uint8Array(t);else if(t instanceof Float32Array)r=new Float32Array(t);else{if(!(t instanceof WebGLTexture))throw Error(`Type is not supported: ${t}`);{const e=pa(this),t=ma(this);e.activeTexture(e.TEXTURE1),r=sa(t,e,this.m?e.LINEAR:e.NEAREST),e.bindTexture(e.TEXTURE_2D,r);const n=ga(this);e.texImage2D(e.TEXTURE_2D,0,n,this.width,this.height,0,e.RED,e.FLOAT,null),e.bindTexture(e.TEXTURE_2D,null),oa(t,e,r),ia(t,e,!1,(()=>{ya(this),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT),e.drawArrays(e.TRIANGLE_FAN,0,4),_a(this)})),aa(t),_a(this)}}e.push(r)}return new Ea(e,this.m,this.R(),this.canvas,this.l,this.width,this.height)}close(){this.j&&pa(this).deleteTexture(la(this,2)),wa=-1}};Ea.prototype.close=Ea.prototype.close,Ea.prototype.clone=Ea.prototype.clone,Ea.prototype.getAsWebGLTexture=Ea.prototype.N,Ea.prototype.getAsFloat32Array=Ea.prototype.ha,Ea.prototype.getAsUint8Array=Ea.prototype.ia,Ea.prototype.hasWebGLTexture=Ea.prototype.R,Ea.prototype.hasFloat32Array=Ea.prototype.ja,Ea.prototype.hasUint8Array=Ea.prototype.Da;var wa=250,Ta={color:"white",lineWidth:4,radius:6};function Aa(e){return __spreadValues(__spreadProps(__spreadValues({},Ta),{fillColor:(e=e||{}).color}),e)}function ba(e,t){return e instanceof Function?e(t):e}function ka(e,t,r){return Math.max(Math.min(t,r),Math.min(Math.max(t,r),e))}function Sa(e){if(!e.l)throw Error("CPU rendering requested but CanvasRenderingContext2D not provided.");return e.l}function xa(e){if(!e.j)throw Error("GPU rendering requested but WebGL2RenderingContext not provided.");return e.j}function La(e,t,r){var n;if(t.R())r(t.N());else{const o=t.ja()?t.ha():t.ia();e.m=null!=(n=e.m)?n:new ca;const i=xa(e);r((e=new Ea([o],t.m,!1,i.canvas,e.m,t.width,t.height)).N()),e.close()}}function Ra(e,t,r,n){const o=((s=e).g||(s.g=new ha),s.g),i=xa(e),a=Array.isArray(r)?new ImageData(new Uint8ClampedArray(r),1,1):r;var s;ia(o,i,!0,(()=>{!function(e,t,r,n){const o=e.g;if(o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,t),o.activeTexture(o.TEXTURE1),o.bindTexture(o.TEXTURE_2D,e.B),o.texImage2D(o.TEXTURE_2D,0,o.RGBA,o.RGBA,o.UNSIGNED_BYTE,r),e.H&&function(e,t){if(e!==t)return!1;e=e.entries(),t=t.entries();for(const[n,o]of e){e=n;const i=o;var r=t.next();if(r.done)return!1;const[a,s]=r.value;if(r=s,e!==a||i[0]!==r[0]||i[1]!==r[1]||i[2]!==r[2]||i[3]!==r[3])return!1}return!!t.next().done}(e.H,n))o.activeTexture(o.TEXTURE2),o.bindTexture(o.TEXTURE_2D,e.j);else{e.H=n;const t=Array(1024).fill(0);n.forEach(((e,r)=>{if(4!==e.length)throw Error(`Color at index ${r} is not a four-channel value.`);t[4*r]=e[0],t[4*r+1]=e[1],t[4*r+2]=e[2],t[4*r+3]=e[3]})),o.activeTexture(o.TEXTURE2),o.bindTexture(o.TEXTURE_2D,e.j),o.texImage2D(o.TEXTURE_2D,0,o.RGBA,256,1,0,o.RGBA,o.UNSIGNED_BYTE,new Uint8Array(t))}}(o,t,a,n),i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT),i.drawArrays(i.TRIANGLE_FAN,0,4);const e=o.g;e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,null),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,null),e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,null)}))}function Fa(e,t,r,n){const o=xa(e),i=((c=e).h||(c.h=new ua),c.h),a=Array.isArray(r)?new ImageData(new Uint8ClampedArray(r),1,1):r,s=Array.isArray(n)?new ImageData(new Uint8ClampedArray(n),1,1):n;var c;ia(i,o,!0,(()=>{var e=i.g;e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,t),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,i.j),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,a),e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,i.B),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,s),o.clearColor(0,0,0,0),o.clear(o.COLOR_BUFFER_BIT),o.drawArrays(o.TRIANGLE_FAN,0,4),o.bindTexture(o.TEXTURE_2D,null),(e=i.g).activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,null),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,null),e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,null)}))}var Ia=class{constructor(e,t){"undefined"!=typeof CanvasRenderingContext2D&&e instanceof CanvasRenderingContext2D||e instanceof OffscreenCanvasRenderingContext2D?(this.l=e,this.j=t):this.j=e}wa(e,t){if(e){var r=Sa(this);t=Aa(t),r.save();var n=r.canvas,o=0;for(const i of e)r.fillStyle=ba(t.fillColor,{index:o,from:i}),r.strokeStyle=ba(t.color,{index:o,from:i}),r.lineWidth=ba(t.lineWidth,{index:o,from:i}),(e=new Path2D).arc(i.x*n.width,i.y*n.height,ba(t.radius,{index:o,from:i}),0,2*Math.PI),r.fill(e),r.stroke(e),++o;r.restore()}}va(e,t,r){if(e&&t){var n=Sa(this);r=Aa(r),n.save();var o=n.canvas,i=0;for(const a of t){n.beginPath(),t=e[a.start];const s=e[a.end];t&&s&&(n.strokeStyle=ba(r.color,{index:i,from:t,to:s}),n.lineWidth=ba(r.lineWidth,{index:i,from:t,to:s}),n.moveTo(t.x*o.width,t.y*o.height),n.lineTo(s.x*o.width,s.y*o.height)),++i,n.stroke()}n.restore()}}sa(e,t){const r=Sa(this);t=Aa(t),r.save(),r.beginPath(),r.lineWidth=ba(t.lineWidth,{}),r.strokeStyle=ba(t.color,{}),r.fillStyle=ba(t.fillColor,{}),r.moveTo(e.originX,e.originY),r.lineTo(e.originX+e.width,e.originY),r.lineTo(e.originX+e.width,e.originY+e.height),r.lineTo(e.originX,e.originY+e.height),r.lineTo(e.originX,e.originY),r.stroke(),r.fill(),r.restore()}ta(e,t,r=[0,0,0,255]){this.l?function(e,t,r,n){const o=xa(e);La(e,t,(t=>{Ra(e,t,r,n),(t=Sa(e)).drawImage(o.canvas,0,0,t.canvas.width,t.canvas.height)}))}(this,e,r,t):Ra(this,e.N(),r,t)}ua(e,t,r){this.l?function(e,t,r,n){const o=xa(e);La(e,t,(t=>{Fa(e,t,r,n),(t=Sa(e)).drawImage(o.canvas,0,0,t.canvas.width,t.canvas.height)}))}(this,e,t,r):Fa(this,e.N(),t,r)}close(){var e,t,r;null==(e=this.g)||e.close(),this.g=void 0,null==(t=this.h)||t.close(),this.h=void 0,null==(r=this.m)||r.close(),this.m=void 0}};function Ma(e,t){switch(t){case 0:return e.g.find((e=>e instanceof ImageData));case 1:return e.g.find((e=>"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap));case 2:return e.g.find((e=>"undefined"!=typeof WebGLTexture&&e instanceof WebGLTexture));default:throw Error(`Type is not supported: ${t}`)}}function Pa(e){var t=Ma(e,0);if(!t){t=Oa(e);const r=Ua(e),n=new Uint8Array(e.width*e.height*4);oa(r,t,Ca(e)),t.readPixels(0,0,e.width,e.height,t.RGBA,t.UNSIGNED_BYTE,n),aa(r),t=new ImageData(new Uint8ClampedArray(n.buffer),e.width,e.height),e.g.push(t)}return t}function Ca(e){let t=Ma(e,2);if(!t){const r=Oa(e);t=Da(e);const n=Ma(e,1)||Pa(e);r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,n),Na(e)}return t}function Oa(e){if(!e.canvas)throw Error("Conversion to different image formats require that a canvas is passed when initializing the image.");return e.h||(e.h=Qo(e.canvas.getContext("webgl2"),"You cannot use a canvas that is already bound to a different type of rendering context.")),e.h}function Ua(e){return e.l||(e.l=new ca),e.l}function Da(e){const t=Oa(e);t.viewport(0,0,e.width,e.height),t.activeTexture(t.TEXTURE0);let r=Ma(e,2);return r||(r=sa(Ua(e),t),e.g.push(r),e.m=!0),t.bindTexture(t.TEXTURE_2D,r),r}function Na(e){e.h.bindTexture(e.h.TEXTURE_2D,null)}function Ba(e){const t=Oa(e);return ia(Ua(e),t,!0,(()=>function(e,t){const r=e.canvas;if(r.width===e.width&&r.height===e.height)return t();const n=r.width,o=r.height;return r.width=e.width,r.height=e.height,e=t(),r.width=n,r.height=o,e}(e,(()=>{if(t.bindFramebuffer(t.FRAMEBUFFER,null),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.drawArrays(t.TRIANGLE_FAN,0,4),!(e.canvas instanceof OffscreenCanvas))throw Error("Conversion to ImageBitmap requires that the MediaPipe Tasks is initialized with an OffscreenCanvas");return e.canvas.transferToImageBitmap()}))))}Ia.prototype.close=Ia.prototype.close,Ia.prototype.drawConfidenceMask=Ia.prototype.ua,Ia.prototype.drawCategoryMask=Ia.prototype.ta,Ia.prototype.drawBoundingBox=Ia.prototype.sa,Ia.prototype.drawConnectors=Ia.prototype.va,Ia.prototype.drawLandmarks=Ia.prototype.wa,Ia.lerp=function(e,t,r,n,o){return ka(n*(1-(e-t)/(r-t))+o*(1-(r-e)/(r-t)),n,o)},Ia.clamp=ka;var Ga=class{constructor(e,t,r,n,o,i,a){this.g=e,this.j=t,this.m=r,this.canvas=n,this.l=o,this.width=i,this.height=a,(this.j||this.m)&&0==--ja&&console.error("You seem to be creating MPImage instances without invoking .close(). This leaks resources.")}Ca(){return!!Ma(this,0)}ka(){return!!Ma(this,1)}R(){return!!Ma(this,2)}Aa(){return Pa(this)}za(){var e=Ma(this,1);return e||(Ca(this),Da(this),e=Ba(this),Na(this),this.g.push(e),this.j=!0),e}N(){return Ca(this)}clone(){const e=[];for(const t of this.g){let r;if(t instanceof ImageData)r=new ImageData(t.data,this.width,this.height);else if(t instanceof WebGLTexture){const e=Oa(this),t=Ua(this);e.activeTexture(e.TEXTURE1),r=sa(t,e),e.bindTexture(e.TEXTURE_2D,r),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,this.width,this.height,0,e.RGBA,e.UNSIGNED_BYTE,null),e.bindTexture(e.TEXTURE_2D,null),oa(t,e,r),ia(t,e,!1,(()=>{Da(this),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT),e.drawArrays(e.TRIANGLE_FAN,0,4),Na(this)})),aa(t),Na(this)}else{if(!(t instanceof ImageBitmap))throw Error(`Type is not supported: ${t}`);Ca(this),Da(this),r=Ba(this),Na(this)}e.push(r)}return new Ga(e,this.ka(),this.R(),this.canvas,this.l,this.width,this.height)}close(){this.j&&Ma(this,1).close(),this.m&&Oa(this).deleteTexture(Ma(this,2)),ja=-1}};Ga.prototype.close=Ga.prototype.close,Ga.prototype.clone=Ga.prototype.clone,Ga.prototype.getAsWebGLTexture=Ga.prototype.N,Ga.prototype.getAsImageBitmap=Ga.prototype.za,Ga.prototype.getAsImageData=Ga.prototype.Aa,Ga.prototype.hasWebGLTexture=Ga.prototype.R,Ga.prototype.hasImageBitmap=Ga.prototype.ka,Ga.prototype.hasImageData=Ga.prototype.Ca;var ja=250;function Va(...e){return e.map((([e,t])=>({start:e,end:t})))}var Ha,Xa=function(e){return class extends e{Ha(){this.i._registerModelResourcesGraphService()}}}((Ha=class{constructor(e,t){this.l=!0,this.i=e,this.g=null,this.h=0,this.m="function"==typeof this.i._addIntToInputStream,void 0!==t?this.i.canvas=t:Do()?this.i.canvas=new OffscreenCanvas(1,1):(console.warn("OffscreenCanvas not supported and GraphRunner constructor glCanvas parameter is undefined. Creating backup canvas."),this.i.canvas=document.createElement("canvas"))}async initializeGraph(e){const t=await(await fetch(e)).arrayBuffer();e=!(e.endsWith(".pbtxt")||e.endsWith(".textproto")),this.setGraph(new Uint8Array(t),e)}setGraphFromString(e){this.setGraph((new TextEncoder).encode(e),!1)}setGraph(e,t){const r=e.length,n=this.i._malloc(r);this.i.HEAPU8.set(e,n),t?this.i._changeBinaryGraph(r,n):this.i._changeTextGraph(r,n),this.i._free(n)}configureAudio(e,t,r,n,o){this.i._configureAudio||console.warn('Attempting to use configureAudio without support for input audio. Is build dep ":gl_graph_runner_audio" missing?'),Go(this,n||"input_audio",(n=>{Go(this,o=o||"audio_header",(o=>{this.i._configureAudio(n,o,e,null!=t?t:0,r)}))}))}setAutoResizeCanvas(e){this.l=e}setAutoRenderToScreen(e){this.i._setAutoRenderToScreen(e)}setGpuBufferVerticalFlip(e){this.i.gpuOriginForWebTexturesIsBottomLeft=e}ca(e){Xo(this,"__graph_config__",(t=>{e(t)})),Go(this,"__graph_config__",(e=>{this.i._getGraphConfig(e,void 0)})),delete this.i.simpleListeners.__graph_config__}attachErrorListener(e){this.i.errorListener=e}attachEmptyPacketListener(e,t){this.i.emptyPacketListeners=this.i.emptyPacketListeners||{},this.i.emptyPacketListeners[e]=t}addAudioToStream(e,t,r){this.addAudioToStreamWithShape(e,0,0,t,r)}addAudioToStreamWithShape(e,t,r,n,o){const i=4*e.length;this.h!==i&&(this.g&&this.i._free(this.g),this.g=this.i._malloc(i),this.h=i),this.i.HEAPF32.set(e,this.g/4),Go(this,n,(e=>{this.i._addAudioToInputStream(this.g,t,r,e,o)}))}addGpuBufferToStream(e,t,r){Go(this,t,(t=>{const[n,o]=jo(this,e,t);this.i._addBoundTextureToStream(t,n,o,r)}))}addBoolToStream(e,t,r){Go(this,t,(t=>{this.i._addBoolToInputStream(e,t,r)}))}addDoubleToStream(e,t,r){Go(this,t,(t=>{this.i._addDoubleToInputStream(e,t,r)}))}addFloatToStream(e,t,r){Go(this,t,(t=>{this.i._addFloatToInputStream(e,t,r)}))}addIntToStream(e,t,r){Go(this,t,(t=>{this.i._addIntToInputStream(e,t,r)}))}addUintToStream(e,t,r){Go(this,t,(t=>{this.i._addUintToInputStream(e,t,r)}))}addStringToStream(e,t,r){Go(this,t,(t=>{Go(this,e,(e=>{this.i._addStringToInputStream(e,t,r)}))}))}addStringRecordToStream(e,t,r){Go(this,t,(t=>{Vo(this,Object.keys(e),(n=>{Vo(this,Object.values(e),(o=>{this.i._addFlatHashMapToInputStream(n,o,Object.keys(e).length,t,r)}))}))}))}addProtoToStream(e,t,r,n){Go(this,r,(r=>{Go(this,t,(t=>{const o=this.i._malloc(e.length);this.i.HEAPU8.set(e,o),this.i._addProtoToInputStream(o,e.length,t,r,n),this.i._free(o)}))}))}addEmptyPacketToStream(e,t){Go(this,e,(e=>{this.i._addEmptyPacketToInputStream(e,t)}))}addBoolVectorToStream(e,t,r){Go(this,t,(t=>{const n=this.i._allocateBoolVector(e.length);if(!n)throw Error("Unable to allocate new bool vector on heap.");for(const t of e)this.i._addBoolVectorEntry(n,t);this.i._addBoolVectorToInputStream(n,t,r)}))}addDoubleVectorToStream(e,t,r){Go(this,t,(t=>{const n=this.i._allocateDoubleVector(e.length);if(!n)throw Error("Unable to allocate new double vector on heap.");for(const t of e)this.i._addDoubleVectorEntry(n,t);this.i._addDoubleVectorToInputStream(n,t,r)}))}addFloatVectorToStream(e,t,r){Go(this,t,(t=>{const n=this.i._allocateFloatVector(e.length);if(!n)throw Error("Unable to allocate new float vector on heap.");for(const t of e)this.i._addFloatVectorEntry(n,t);this.i._addFloatVectorToInputStream(n,t,r)}))}addIntVectorToStream(e,t,r){Go(this,t,(t=>{const n=this.i._allocateIntVector(e.length);if(!n)throw Error("Unable to allocate new int vector on heap.");for(const t of e)this.i._addIntVectorEntry(n,t);this.i._addIntVectorToInputStream(n,t,r)}))}addUintVectorToStream(e,t,r){Go(this,t,(t=>{const n=this.i._allocateUintVector(e.length);if(!n)throw Error("Unable to allocate new unsigned int vector on heap.");for(const t of e)this.i._addUintVectorEntry(n,t);this.i._addUintVectorToInputStream(n,t,r)}))}addStringVectorToStream(e,t,r){Go(this,t,(t=>{const n=this.i._allocateStringVector(e.length);if(!n)throw Error("Unable to allocate new string vector on heap.");for(const t of e)Go(this,t,(e=>{this.i._addStringVectorEntry(n,e)}));this.i._addStringVectorToInputStream(n,t,r)}))}addBoolToInputSidePacket(e,t){Go(this,t,(t=>{this.i._addBoolToInputSidePacket(e,t)}))}addDoubleToInputSidePacket(e,t){Go(this,t,(t=>{this.i._addDoubleToInputSidePacket(e,t)}))}addFloatToInputSidePacket(e,t){Go(this,t,(t=>{this.i._addFloatToInputSidePacket(e,t)}))}addIntToInputSidePacket(e,t){Go(this,t,(t=>{this.i._addIntToInputSidePacket(e,t)}))}addUintToInputSidePacket(e,t){Go(this,t,(t=>{this.i._addUintToInputSidePacket(e,t)}))}addStringToInputSidePacket(e,t){Go(this,t,(t=>{Go(this,e,(e=>{this.i._addStringToInputSidePacket(e,t)}))}))}addProtoToInputSidePacket(e,t,r){Go(this,r,(r=>{Go(this,t,(t=>{const n=this.i._malloc(e.length);this.i.HEAPU8.set(e,n),this.i._addProtoToInputSidePacket(n,e.length,t,r),this.i._free(n)}))}))}addBoolVectorToInputSidePacket(e,t){Go(this,t,(t=>{const r=this.i._allocateBoolVector(e.length);if(!r)throw Error("Unable to allocate new bool vector on heap.");for(const t of e)this.i._addBoolVectorEntry(r,t);this.i._addBoolVectorToInputSidePacket(r,t)}))}addDoubleVectorToInputSidePacket(e,t){Go(this,t,(t=>{const r=this.i._allocateDoubleVector(e.length);if(!r)throw Error("Unable to allocate new double vector on heap.");for(const t of e)this.i._addDoubleVectorEntry(r,t);this.i._addDoubleVectorToInputSidePacket(r,t)}))}addFloatVectorToInputSidePacket(e,t){Go(this,t,(t=>{const r=this.i._allocateFloatVector(e.length);if(!r)throw Error("Unable to allocate new float vector on heap.");for(const t of e)this.i._addFloatVectorEntry(r,t);this.i._addFloatVectorToInputSidePacket(r,t)}))}addIntVectorToInputSidePacket(e,t){Go(this,t,(t=>{const r=this.i._allocateIntVector(e.length);if(!r)throw Error("Unable to allocate new int vector on heap.");for(const t of e)this.i._addIntVectorEntry(r,t);this.i._addIntVectorToInputSidePacket(r,t)}))}addUintVectorToInputSidePacket(e,t){Go(this,t,(t=>{const r=this.i._allocateUintVector(e.length);if(!r)throw Error("Unable to allocate new unsigned int vector on heap.");for(const t of e)this.i._addUintVectorEntry(r,t);this.i._addUintVectorToInputSidePacket(r,t)}))}addStringVectorToInputSidePacket(e,t){Go(this,t,(t=>{const r=this.i._allocateStringVector(e.length);if(!r)throw Error("Unable to allocate new string vector on heap.");for(const t of e)Go(this,t,(e=>{this.i._addStringVectorEntry(r,e)}));this.i._addStringVectorToInputSidePacket(r,t)}))}attachBoolListener(e,t){Xo(this,e,t),Go(this,e,(e=>{this.i._attachBoolListener(e)}))}attachBoolVectorListener(e,t){Ho(this,e,t),Go(this,e,(e=>{this.i._attachBoolVectorListener(e)}))}attachIntListener(e,t){Xo(this,e,t),Go(this,e,(e=>{this.i._attachIntListener(e)}))}attachIntVectorListener(e,t){Ho(this,e,t),Go(this,e,(e=>{this.i._attachIntVectorListener(e)}))}attachUintListener(e,t){Xo(this,e,t),Go(this,e,(e=>{this.i._attachUintListener(e)}))}attachUintVectorListener(e,t){Ho(this,e,t),Go(this,e,(e=>{this.i._attachUintVectorListener(e)}))}attachDoubleListener(e,t){Xo(this,e,t),Go(this,e,(e=>{this.i._attachDoubleListener(e)}))}attachDoubleVectorListener(e,t){Ho(this,e,t),Go(this,e,(e=>{this.i._attachDoubleVectorListener(e)}))}attachFloatListener(e,t){Xo(this,e,t),Go(this,e,(e=>{this.i._attachFloatListener(e)}))}attachFloatVectorListener(e,t){Ho(this,e,t),Go(this,e,(e=>{this.i._attachFloatVectorListener(e)}))}attachStringListener(e,t){Xo(this,e,t),Go(this,e,(e=>{this.i._attachStringListener(e)}))}attachStringVectorListener(e,t){Ho(this,e,t),Go(this,e,(e=>{this.i._attachStringVectorListener(e)}))}attachProtoListener(e,t,r){Xo(this,e,t),Go(this,e,(e=>{this.i._attachProtoListener(e,r||!1)}))}attachProtoVectorListener(e,t,r){Ho(this,e,t),Go(this,e,(e=>{this.i._attachProtoVectorListener(e,r||!1)}))}attachAudioListener(e,t,r){this.i._attachAudioListener||console.warn('Attempting to use attachAudioListener without support for output audio. Is build dep ":gl_graph_runner_audio_out" missing?'),Xo(this,e,((e,r)=>{e=new Float32Array(e.buffer,e.byteOffset,e.length/4),t(e,r)})),Go(this,e,(e=>{this.i._attachAudioListener(e,r||!1)}))}finishProcessing(){this.i._waitUntilIdle()}closeGraph(){this.i._closeGraph(),this.i.simpleListeners=void 0,this.i.emptyPacketListeners=void 0}},class extends Ha{get ea(){return this.i}oa(e,t,r){Go(this,t,(t=>{const[n,o]=jo(this,e,t);this.ea._addBoundTextureAsImageToStream(t,n,o,r)}))}V(e,t){Xo(this,e,t),Go(this,e,(e=>{this.ea._attachImageListener(e)}))}ba(e,t){Ho(this,e,t),Go(this,e,(e=>{this.ea._attachImageVectorListener(e)}))}})),Wa=class extends Xa{};async function za(e,t,r){var n;return async function(e,t,r,n){return Wo(e,t,r,n)}(e,null!=(n=r.canvas)?n:Do()?void 0:document.createElement("canvas"),t,r)}function Ka(e,t,r,n){if(e.U){const i=new ms;if(null==r?void 0:r.regionOfInterest){if(!e.na)throw Error("This task doesn't support region-of-interest.");var o=r.regionOfInterest;if(o.left>=o.right||o.top>=o.bottom)throw Error("Expected RectF with left < right and top < bottom.");if(o.left<0||o.top<0||o.right>1||o.bottom>1)throw Error("Expected RectF values to be in [0,1].");An(i,1,(o.left+o.right)/2),An(i,2,(o.top+o.bottom)/2),An(i,4,o.right-o.left),An(i,3,o.bottom-o.top)}else An(i,1,.5),An(i,2,.5),An(i,4,1),An(i,3,1);if(null==r?void 0:r.rotationDegrees){if((null==r?void 0:r.rotationDegrees)%90!=0)throw Error("Expected rotation to be a multiple of 90°.");if(An(i,5,-Math.PI*r.rotationDegrees/180),(null==r?void 0:r.rotationDegrees)%180!=0){const[e,n]=Bo(t);r=En(i,3)*n/e,o=En(i,4)*e/n,An(i,4,r),An(i,3,o)}}e.g.addProtoToStream(i.g(),"mediapipe.NormalizedRect",e.U,n)}e.g.oa(t,e.Z,null!=n?n:performance.now()),e.finishProcessing()}function Ya(e,t,r){var n;if(null==(n=e.baseOptions)?void 0:n.g())throw Error("Task is not initialized with image mode. 'runningMode' must be set to 'IMAGE'.");Ka(e,t,r,e.B+1)}function $a(e,t,r,n){var o;if(!(null==(o=e.baseOptions)?void 0:o.g()))throw Error("Task is not initialized with video mode. 'runningMode' must be set to 'VIDEO'.");Ka(e,t,r,n)}function qa(e,t,r,n){var o=t.data;const i=t.width,a=i*(t=t.height);if((o instanceof Uint8Array||o instanceof Float32Array)&&o.length!==a)throw Error("Unsupported channel count: "+o.length/a);return e=new Ea([o],r,!1,e.g.i.canvas,e.P,i,t),n?e.clone():e}var Ja=class extends Zo{constructor(e,t,r,n){super(e),this.g=e,this.Z=t,this.U=r,this.na=n,this.P=new ca}l(e,t=!0){if("runningMode"in e&&wn(this.baseOptions,2,!!e.runningMode&&"IMAGE"!==e.runningMode),void 0!==e.canvas&&this.g.i.canvas!==e.canvas)throw Error("You must create a new task to reset the canvas.");return super.l(e,t)}close(){this.P.close(),super.close()}};Ja.prototype.close=Ja.prototype.close;var Za=class extends Ja{constructor(e,t){super(new Wa(e,t),"image_in","norm_rect_in",!1),this.j={detections:[]},dn(e=this.h=new Cs,0,1,t=new Is),An(this.h,2,.5),An(this.h,3,.3)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(e){dn(this.h,0,1,e)}o(e){var t,r;return"minDetectionConfidence"in e&&An(this.h,2,null!=(t=e.minDetectionConfidence)?t:.5),"minSuppressionThreshold"in e&&An(this.h,3,null!=(r=e.minSuppressionThreshold)?r:.3),this.l(e)}D(e,t){return this.j={detections:[]},Ya(this,e,t),this.j}F(e,t,r){return this.j={detections:[]},$a(this,e,r,t),this.j}m(){var e=new Qi;Ji(e,"image_in"),Ji(e,"norm_rect_in"),Zi(e,"detections");const t=new Gi;Yn(t,Us,this.h);const r=new zi;Xi(r,"mediapipe.tasks.vision.face_detector.FaceDetectorGraph"),Hi(r,"IMAGE:image_in"),Hi(r,"NORM_RECT:norm_rect_in"),Wi(r,"DETECTIONS:detections"),r.o(t),qi(e,r),this.g.attachProtoVectorListener("detections",((e,t)=>{for(const t of e)e=hs(t),this.j.detections.push(xo(e));Yo(this,t)})),this.g.attachEmptyPacketListener("detections",(e=>{Yo(this,e)})),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};Za.prototype.detectForVideo=Za.prototype.F,Za.prototype.detect=Za.prototype.D,Za.prototype.setOptions=Za.prototype.o,Za.createFromModelPath=async function(e,t){return za(Za,e,{baseOptions:{modelAssetPath:t}})},Za.createFromModelBuffer=function(e,t){return za(Za,e,{baseOptions:{modelAssetBuffer:t}})},Za.createFromOptions=function(e,t){return za(Za,e,t)};var Qa=Va([61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]),tc=Va([263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]),ec=Va([276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]),nc=Va([474,475],[475,476],[476,477],[477,474]),rc=Va([33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]),ic=Va([46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]),sc=Va([469,470],[470,471],[471,472],[472,469]),oc=Va([10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]),ac=[...Qa,...tc,...ec,...rc,...ic,...oc],cc=Va([127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]);function hc(e){e.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]}}var uc=class extends Ja{constructor(e,t){super(new Wa(e,t),"image_in","norm_rect",!1),this.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]},this.outputFacialTransformationMatrixes=this.outputFaceBlendshapes=!1,dn(e=this.h=new Bs,0,1,t=new Is),this.v=new Ns,dn(this.h,0,3,this.v),this.s=new Cs,dn(this.h,0,2,this.s),Tn(this.s,4,1),An(this.s,2,.5),An(this.v,2,.5),An(this.h,4,.5)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(e){dn(this.h,0,1,e)}o(e){var t,r,n,o;return"numFaces"in e&&Tn(this.s,4,null!=(t=e.numFaces)?t:1),"minFaceDetectionConfidence"in e&&An(this.s,2,null!=(r=e.minFaceDetectionConfidence)?r:.5),"minTrackingConfidence"in e&&An(this.h,4,null!=(n=e.minTrackingConfidence)?n:.5),"minFacePresenceConfidence"in e&&An(this.v,2,null!=(o=e.minFacePresenceConfidence)?o:.5),"outputFaceBlendshapes"in e&&(this.outputFaceBlendshapes=!!e.outputFaceBlendshapes),"outputFacialTransformationMatrixes"in e&&(this.outputFacialTransformationMatrixes=!!e.outputFacialTransformationMatrixes),this.l(e)}D(e,t){return hc(this),Ya(this,e,t),this.j}F(e,t,r){return hc(this),$a(this,e,r,t),this.j}m(){var e=new Qi;Ji(e,"image_in"),Ji(e,"norm_rect"),Zi(e,"face_landmarks");const t=new Gi;Yn(t,Vs,this.h);const r=new zi;Xi(r,"mediapipe.tasks.vision.face_landmarker.FaceLandmarkerGraph"),Hi(r,"IMAGE:image_in"),Hi(r,"NORM_RECT:norm_rect"),Wi(r,"NORM_LANDMARKS:face_landmarks"),r.o(t),qi(e,r),this.g.attachProtoVectorListener("face_landmarks",((e,t)=>{for(const t of e)e=fs(t),this.j.faceLandmarks.push(Lo(e));Yo(this,t)})),this.g.attachEmptyPacketListener("face_landmarks",(e=>{Yo(this,e)})),this.outputFaceBlendshapes&&(Zi(e,"blendshapes"),Wi(r,"BLENDSHAPES:blendshapes"),this.g.attachProtoVectorListener("blendshapes",((e,t)=>{var r;if(this.outputFaceBlendshapes)for(const t of e)e=ss(t),this.j.faceBlendshapes.push(So(null!=(r=e.g())?r:[]));Yo(this,t)})),this.g.attachEmptyPacketListener("blendshapes",(e=>{Yo(this,e)}))),this.outputFacialTransformationMatrixes&&(Zi(e,"face_geometry"),Wi(r,"FACE_GEOMETRY:face_geometry"),this.g.attachProtoVectorListener("face_geometry",((e,t)=>{var r,n,o,i,a;if(this.outputFacialTransformationMatrixes)for(const t of e)(e=hn(Ds(t),ps,2))&&this.j.facialTransformationMatrixes.push({rows:null!=(n=null!=(r=_n(e,1))?r:0)?n:0,columns:null!=(i=null!=(o=_n(e,2))?o:0)?i:0,data:null!=(a=$e(e,3,qt,Ye()).slice())?a:[]});Yo(this,t)})),this.g.attachEmptyPacketListener("face_geometry",(e=>{Yo(this,e)}))),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};uc.prototype.detectForVideo=uc.prototype.F,uc.prototype.detect=uc.prototype.D,uc.prototype.setOptions=uc.prototype.o,uc.createFromModelPath=function(e,t){return za(uc,e,{baseOptions:{modelAssetPath:t}})},uc.createFromModelBuffer=function(e,t){return za(uc,e,{baseOptions:{modelAssetBuffer:t}})},uc.createFromOptions=function(e,t){return za(uc,e,t)},uc.FACE_LANDMARKS_LIPS=Qa,uc.FACE_LANDMARKS_LEFT_EYE=tc,uc.FACE_LANDMARKS_LEFT_EYEBROW=ec,uc.FACE_LANDMARKS_LEFT_IRIS=nc,uc.FACE_LANDMARKS_RIGHT_EYE=rc,uc.FACE_LANDMARKS_RIGHT_EYEBROW=ic,uc.FACE_LANDMARKS_RIGHT_IRIS=sc,uc.FACE_LANDMARKS_FACE_OVAL=oc,uc.FACE_LANDMARKS_CONTOURS=ac,uc.FACE_LANDMARKS_TESSELATION=cc;var lc=class extends Ja{constructor(e,t){super(new Wa(e,t),"image_in","norm_rect",!0),dn(e=this.j=new Xs,0,1,t=new Is)}get baseOptions(){return hn(this.j,Is,1)}set baseOptions(e){dn(this.j,0,1,e)}o(e){return super.l(e)}Ka(e,t,r){const n="function"!=typeof t?t:{};if(this.h="function"==typeof t?t:r,Ya(this,e,null!=n?n:{}),!this.h)return this.s}m(){var e=new Qi;Ji(e,"image_in"),Ji(e,"norm_rect"),Zi(e,"stylized_image");const t=new Gi;Yn(t,Hs,this.j);const r=new zi;Xi(r,"mediapipe.tasks.vision.face_stylizer.FaceStylizerGraph"),Hi(r,"IMAGE:image_in"),Hi(r,"NORM_RECT:norm_rect"),Wi(r,"STYLIZED_IMAGE:stylized_image"),r.o(t),qi(e,r),this.g.V("stylized_image",((e,t)=>{var r=!this.h,n=e.data,o=e.width;const i=o*(e=e.height);if(n instanceof Uint8Array)if(n.length===3*i){const t=new Uint8ClampedArray(4*i);for(let e=0;e<i;++e)t[4*e]=n[3*e],t[4*e+1]=n[3*e+1],t[4*e+2]=n[3*e+2],t[4*e+3]=255;n=new ImageData(t,o,e)}else{if(n.length!==4*i)throw Error("Unsupported channel count: "+n.length/i);n=new ImageData(new Uint8ClampedArray(n.buffer,n.byteOffset,n.length),o,e)}else if(!(n instanceof WebGLTexture))throw Error(`Unsupported format: ${n.constructor.name}`);o=new Ga([n],!1,!1,this.g.i.canvas,this.P,o,e),this.s=r=r?o.clone():o,this.h&&this.h(r),Yo(this,t)})),this.g.attachEmptyPacketListener("stylized_image",(e=>{this.s=null,this.h&&this.h(null),Yo(this,e)})),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};lc.prototype.stylize=lc.prototype.Ka,lc.prototype.setOptions=lc.prototype.o,lc.createFromModelPath=function(e,t){return za(lc,e,{baseOptions:{modelAssetPath:t}})},lc.createFromModelBuffer=function(e,t){return za(lc,e,{baseOptions:{modelAssetBuffer:t}})},lc.createFromOptions=function(e,t){return za(lc,e,t)};var dc=Va([0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]);function fc(e){e.gestures=[],e.landmarks=[],e.worldLandmarks=[],e.handedness=[]}function pc(e){return 0===e.gestures.length?{gestures:[],landmarks:[],worldLandmarks:[],handedness:[],handednesses:[]}:{gestures:e.gestures,landmarks:e.landmarks,worldLandmarks:e.worldLandmarks,handedness:e.handedness,handednesses:e.handedness}}function gc(e,t=!0){var r,n,o,i,a,s;const c=[];for(const u of e){var A=ss(u);e=[];for(const c of A.g())A=t&&null!=_n(c,1)?null!=(r=_n(c,1))?r:0:-1,e.push({score:null!=(n=En(c,2))?n:0,index:A,categoryName:null!=(i=null!=(o=vn(c,3))?o:"")?i:"",displayName:null!=(s=null!=(a=vn(c,4))?a:"")?s:""});c.push(e)}return c}var mc=class extends Ja{constructor(e,t){super(new Wa(e,t),"image_in","norm_rect",!1),this.gestures=[],this.landmarks=[],this.worldLandmarks=[],this.handedness=[],dn(e=this.j=new Js,0,1,t=new Is),this.s=new qs,dn(this.j,0,2,this.s),this.C=new $s,dn(this.s,0,3,this.C),this.v=new Ys,dn(this.s,0,2,this.v),this.h=new Ks,dn(this.j,0,3,this.h),An(this.v,2,.5),An(this.s,4,.5),An(this.C,2,.5)}get baseOptions(){return hn(this.j,Is,1)}set baseOptions(e){dn(this.j,0,1,e)}o(e){var t,r,n,o,i,a,s,c;if(Tn(this.v,3,null!=(t=e.numHands)?t:1),"minHandDetectionConfidence"in e&&An(this.v,2,null!=(r=e.minHandDetectionConfidence)?r:.5),"minTrackingConfidence"in e&&An(this.s,4,null!=(n=e.minTrackingConfidence)?n:.5),"minHandPresenceConfidence"in e&&An(this.C,2,null!=(o=e.minHandPresenceConfidence)?o:.5),e.cannedGesturesClassifierOptions){var A=new Ws,u=A,l=ko(e.cannedGesturesClassifierOptions,null==(i=hn(this.h,Ws,3))?void 0:i.h());dn(u,0,2,l),dn(this.h,0,3,A)}else void 0===e.cannedGesturesClassifierOptions&&(null==(a=hn(this.h,Ws,3))||a.g());return e.customGesturesClassifierOptions?(dn(u=A=new Ws,0,2,l=ko(e.customGesturesClassifierOptions,null==(s=hn(this.h,Ws,4))?void 0:s.h())),dn(this.h,0,4,A)):void 0===e.customGesturesClassifierOptions&&(null==(c=hn(this.h,Ws,4))||c.g()),this.l(e)}Fa(e,t){return fc(this),Ya(this,e,t),pc(this)}Ga(e,t,r){return fc(this),$a(this,e,r,t),pc(this)}m(){var e=new Qi;Ji(e,"image_in"),Ji(e,"norm_rect"),Zi(e,"hand_gestures"),Zi(e,"hand_landmarks"),Zi(e,"world_hand_landmarks"),Zi(e,"handedness");const t=new Gi;Yn(t,no,this.j);const r=new zi;Xi(r,"mediapipe.tasks.vision.gesture_recognizer.GestureRecognizerGraph"),Hi(r,"IMAGE:image_in"),Hi(r,"NORM_RECT:norm_rect"),Wi(r,"HAND_GESTURES:hand_gestures"),Wi(r,"LANDMARKS:hand_landmarks"),Wi(r,"WORLD_LANDMARKS:world_hand_landmarks"),Wi(r,"HANDEDNESS:handedness"),r.o(t),qi(e,r),this.g.attachProtoVectorListener("hand_landmarks",((e,t)=>{var r,n,o,i;for(const t of e){e=fs(t);const a=[];for(const t of ln(e,ds,1))a.push({x:null!=(r=En(t,1))?r:0,y:null!=(n=En(t,2))?n:0,z:null!=(o=En(t,3))?o:0,visibility:null!=(i=En(t,4))?i:0});this.landmarks.push(a)}Yo(this,t)})),this.g.attachEmptyPacketListener("hand_landmarks",(e=>{Yo(this,e)})),this.g.attachProtoVectorListener("world_hand_landmarks",((e,t)=>{var r,n,o,i;for(const t of e){e=ls(t);const a=[];for(const t of ln(e,us,1))a.push({x:null!=(r=En(t,1))?r:0,y:null!=(n=En(t,2))?n:0,z:null!=(o=En(t,3))?o:0,visibility:null!=(i=En(t,4))?i:0});this.worldLandmarks.push(a)}Yo(this,t)})),this.g.attachEmptyPacketListener("world_hand_landmarks",(e=>{Yo(this,e)})),this.g.attachProtoVectorListener("hand_gestures",((e,t)=>{this.gestures.push(...gc(e,!1)),Yo(this,t)})),this.g.attachEmptyPacketListener("hand_gestures",(e=>{Yo(this,e)})),this.g.attachProtoVectorListener("handedness",((e,t)=>{this.handedness.push(...gc(e)),Yo(this,t)})),this.g.attachEmptyPacketListener("handedness",(e=>{Yo(this,e)})),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};function yc(e){return{landmarks:e.landmarks,worldLandmarks:e.worldLandmarks,handednesses:e.handedness,handedness:e.handedness}}mc.prototype.recognizeForVideo=mc.prototype.Ga,mc.prototype.recognize=mc.prototype.Fa,mc.prototype.setOptions=mc.prototype.o,mc.createFromModelPath=function(e,t){return za(mc,e,{baseOptions:{modelAssetPath:t}})},mc.createFromModelBuffer=function(e,t){return za(mc,e,{baseOptions:{modelAssetBuffer:t}})},mc.createFromOptions=function(e,t){return za(mc,e,t)},mc.HAND_CONNECTIONS=dc;var _c=class extends Ja{constructor(e,t){super(new Wa(e,t),"image_in","norm_rect",!1),this.landmarks=[],this.worldLandmarks=[],this.handedness=[],dn(e=this.h=new qs,0,1,t=new Is),this.s=new $s,dn(this.h,0,3,this.s),this.j=new Ys,dn(this.h,0,2,this.j),Tn(this.j,3,1),An(this.j,2,.5),An(this.s,2,.5),An(this.h,4,.5)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(e){dn(this.h,0,1,e)}o(e){var t,r,n,o;return"numHands"in e&&Tn(this.j,3,null!=(t=e.numHands)?t:1),"minHandDetectionConfidence"in e&&An(this.j,2,null!=(r=e.minHandDetectionConfidence)?r:.5),"minTrackingConfidence"in e&&An(this.h,4,null!=(n=e.minTrackingConfidence)?n:.5),"minHandPresenceConfidence"in e&&An(this.s,2,null!=(o=e.minHandPresenceConfidence)?o:.5),this.l(e)}D(e,t){return this.landmarks=[],this.worldLandmarks=[],this.handedness=[],Ya(this,e,t),yc(this)}F(e,t,r){return this.landmarks=[],this.worldLandmarks=[],this.handedness=[],$a(this,e,r,t),yc(this)}m(){var e=new Qi;Ji(e,"image_in"),Ji(e,"norm_rect"),Zi(e,"hand_landmarks"),Zi(e,"world_hand_landmarks"),Zi(e,"handedness");const t=new Gi;Yn(t,ro,this.h);const r=new zi;Xi(r,"mediapipe.tasks.vision.hand_landmarker.HandLandmarkerGraph"),Hi(r,"IMAGE:image_in"),Hi(r,"NORM_RECT:norm_rect"),Wi(r,"LANDMARKS:hand_landmarks"),Wi(r,"WORLD_LANDMARKS:world_hand_landmarks"),Wi(r,"HANDEDNESS:handedness"),r.o(t),qi(e,r),this.g.attachProtoVectorListener("hand_landmarks",((e,t)=>{for(const t of e)e=fs(t),this.landmarks.push(Lo(e));Yo(this,t)})),this.g.attachEmptyPacketListener("hand_landmarks",(e=>{Yo(this,e)})),this.g.attachProtoVectorListener("world_hand_landmarks",((e,t)=>{for(const t of e)e=ls(t),this.worldLandmarks.push(Ro(e));Yo(this,t)})),this.g.attachEmptyPacketListener("world_hand_landmarks",(e=>{Yo(this,e)})),this.g.attachProtoVectorListener("handedness",((e,t)=>{var r,n,o,i,a,s,c,A=this.handedness,u=A.push;const l=[];for(const t of e){e=ss(t);const A=[];for(const t of e.g())A.push({score:null!=(r=En(t,2))?r:0,index:null!=(o=null!=(n=_n(t,1))?n:0)?o:-1,categoryName:null!=(a=null!=(i=vn(t,3))?i:"")?a:"",displayName:null!=(c=null!=(s=vn(t,4))?s:"")?c:""});l.push(A)}u.call(A,...l),Yo(this,t)})),this.g.attachEmptyPacketListener("handedness",(e=>{Yo(this,e)})),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};_c.prototype.detectForVideo=_c.prototype.F,_c.prototype.detect=_c.prototype.D,_c.prototype.setOptions=_c.prototype.o,_c.createFromModelPath=function(e,t){return za(_c,e,{baseOptions:{modelAssetPath:t}})},_c.createFromModelBuffer=function(e,t){return za(_c,e,{baseOptions:{modelAssetBuffer:t}})},_c.createFromOptions=function(e,t){return za(_c,e,t)},_c.HAND_CONNECTIONS=dc;var vc=Va([0,1],[1,2],[2,3],[3,7],[0,4],[4,5],[5,6],[6,8],[9,10],[11,12],[11,13],[13,15],[15,17],[15,19],[15,21],[17,19],[12,14],[14,16],[16,18],[16,20],[16,22],[18,20],[11,23],[12,24],[23,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,31],[30,32],[27,31],[28,32]);function Ec(e){e.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]}}function wc(e){try{if(!e.C)return e.h;e.C(e.h)}finally{Jo(e)}}function Tc(e,t){e=fs(e),t.push(Lo(e))}var Ac=class extends Ja{constructor(e,t){super(new Wa(e,t),"input_frames_image",null,!1),this.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]},this.outputPoseSegmentationMasks=this.outputFaceBlendshapes=!1,dn(e=this.j=new ao,0,1,t=new Is),this.K=new $s,dn(this.j,0,2,this.K),this.Y=new io,dn(this.j,0,3,this.Y),this.s=new Cs,dn(this.j,0,4,this.s),this.H=new Ns,dn(this.j,0,5,this.H),this.v=new so,dn(this.j,0,6,this.v),this.L=new oo,dn(this.j,0,7,this.L),An(this.s,2,.5),An(this.s,3,.3),An(this.H,2,.5),An(this.v,2,.5),An(this.v,3,.3),An(this.L,2,.5),An(this.K,2,.5)}get baseOptions(){return hn(this.j,Is,1)}set baseOptions(e){dn(this.j,0,1,e)}o(e){var t,r,n,o,i,a,s;return"minFaceDetectionConfidence"in e&&An(this.s,2,null!=(t=e.minFaceDetectionConfidence)?t:.5),"minFaceSuppressionThreshold"in e&&An(this.s,3,null!=(r=e.minFaceSuppressionThreshold)?r:.3),"minFacePresenceConfidence"in e&&An(this.H,2,null!=(n=e.minFacePresenceConfidence)?n:.5),"outputFaceBlendshapes"in e&&(this.outputFaceBlendshapes=!!e.outputFaceBlendshapes),"minPoseDetectionConfidence"in e&&An(this.v,2,null!=(o=e.minPoseDetectionConfidence)?o:.5),"minPoseSuppressionThreshold"in e&&An(this.v,3,null!=(i=e.minPoseSuppressionThreshold)?i:.3),"minPosePresenceConfidence"in e&&An(this.L,2,null!=(a=e.minPosePresenceConfidence)?a:.5),"outputPoseSegmentationMasks"in e&&(this.outputPoseSegmentationMasks=!!e.outputPoseSegmentationMasks),"minHandLandmarksConfidence"in e&&An(this.K,2,null!=(s=e.minHandLandmarksConfidence)?s:.5),this.l(e)}D(e,t,r){const n="function"!=typeof t?t:{};return this.C="function"==typeof t?t:r,Ec(this),Ya(this,e,n),wc(this)}F(e,t,r,n){const o="function"!=typeof r?r:{};return this.C="function"==typeof r?r:n,Ec(this),$a(this,e,o,t),wc(this)}m(){var e=new Qi;Ji(e,"input_frames_image"),Zi(e,"pose_landmarks"),Zi(e,"pose_world_landmarks"),Zi(e,"face_landmarks"),Zi(e,"left_hand_landmarks"),Zi(e,"left_hand_world_landmarks"),Zi(e,"right_hand_landmarks"),Zi(e,"right_hand_world_landmarks");const t=new Gi,r=new xi;tn(r,1,de("type.googleapis.com/mediapipe.tasks.vision.holistic_landmarker.proto.HolisticLandmarkerGraphOptions"),""),function(e,t){if(null!=t)if(Array.isArray(t))He(e,2,Pe(t,Oe,void 0,void 0,!1));else{if(!("string"==typeof t||t instanceof N||C(t)))throw Error("invalid value in Any.value field: "+t+" expected a ByteString, a base64 encoded string, a Uint8Array or a jspb array");tn(e,2,dt(t,!1),U())}}(r,this.j.g());const n=new zi;Xi(n,"mediapipe.tasks.vision.holistic_landmarker.HolisticLandmarkerGraph"),yn(n,8,xi,r),Hi(n,"IMAGE:input_frames_image"),Wi(n,"POSE_LANDMARKS:pose_landmarks"),Wi(n,"POSE_WORLD_LANDMARKS:pose_world_landmarks"),Wi(n,"FACE_LANDMARKS:face_landmarks"),Wi(n,"LEFT_HAND_LANDMARKS:left_hand_landmarks"),Wi(n,"LEFT_HAND_WORLD_LANDMARKS:left_hand_world_landmarks"),Wi(n,"RIGHT_HAND_LANDMARKS:right_hand_landmarks"),Wi(n,"RIGHT_HAND_WORLD_LANDMARKS:right_hand_world_landmarks"),n.o(t),qi(e,n),$o(this,e),this.g.attachProtoListener("pose_landmarks",((e,t)=>{Tc(e,this.h.poseLandmarks),Yo(this,t)})),this.g.attachEmptyPacketListener("pose_landmarks",(e=>{Yo(this,e)})),this.g.attachProtoListener("pose_world_landmarks",((e,t)=>{var r=this.h.poseWorldLandmarks;e=ls(e),r.push(Ro(e)),Yo(this,t)})),this.g.attachEmptyPacketListener("pose_world_landmarks",(e=>{Yo(this,e)})),this.outputPoseSegmentationMasks&&(Wi(n,"POSE_SEGMENTATION_MASK:pose_segmentation_mask"),qo(this,"pose_segmentation_mask"),this.g.V("pose_segmentation_mask",((e,t)=>{this.h.poseSegmentationMasks=[qa(this,e,!0,!this.C)],Yo(this,t)})),this.g.attachEmptyPacketListener("pose_segmentation_mask",(e=>{this.h.poseSegmentationMasks=[],Yo(this,e)}))),this.g.attachProtoListener("face_landmarks",((e,t)=>{Tc(e,this.h.faceLandmarks),Yo(this,t)})),this.g.attachEmptyPacketListener("face_landmarks",(e=>{Yo(this,e)})),this.outputFaceBlendshapes&&(Zi(e,"extra_blendshapes"),Wi(n,"FACE_BLENDSHAPES:extra_blendshapes"),this.g.attachProtoListener("extra_blendshapes",((e,t)=>{var r,n=this.h.faceBlendshapes;this.outputFaceBlendshapes&&(e=ss(e),n.push(So(null!=(r=e.g())?r:[]))),Yo(this,t)})),this.g.attachEmptyPacketListener("extra_blendshapes",(e=>{Yo(this,e)}))),this.g.attachProtoListener("left_hand_landmarks",((e,t)=>{Tc(e,this.h.leftHandLandmarks),Yo(this,t)})),this.g.attachEmptyPacketListener("left_hand_landmarks",(e=>{Yo(this,e)})),this.g.attachProtoListener("left_hand_world_landmarks",((e,t)=>{var r=this.h.leftHandWorldLandmarks;e=ls(e),r.push(Ro(e)),Yo(this,t)})),this.g.attachEmptyPacketListener("left_hand_world_landmarks",(e=>{Yo(this,e)})),this.g.attachProtoListener("right_hand_landmarks",((e,t)=>{Tc(e,this.h.rightHandLandmarks),Yo(this,t)})),this.g.attachEmptyPacketListener("right_hand_landmarks",(e=>{Yo(this,e)})),this.g.attachProtoListener("right_hand_world_landmarks",((e,t)=>{var r=this.h.rightHandWorldLandmarks;e=ls(e),r.push(Ro(e)),Yo(this,t)})),this.g.attachEmptyPacketListener("right_hand_world_landmarks",(e=>{Yo(this,e)})),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};Ac.prototype.detectForVideo=Ac.prototype.F,Ac.prototype.detect=Ac.prototype.D,Ac.prototype.setOptions=Ac.prototype.o,Ac.createFromModelPath=function(e,t){return za(Ac,e,{baseOptions:{modelAssetPath:t}})},Ac.createFromModelBuffer=function(e,t){return za(Ac,e,{baseOptions:{modelAssetBuffer:t}})},Ac.createFromOptions=function(e,t){return za(Ac,e,t)},Ac.HAND_CONNECTIONS=dc,Ac.POSE_CONNECTIONS=vc,Ac.FACE_LANDMARKS_LIPS=Qa,Ac.FACE_LANDMARKS_LEFT_EYE=tc,Ac.FACE_LANDMARKS_LEFT_EYEBROW=ec,Ac.FACE_LANDMARKS_LEFT_IRIS=nc,Ac.FACE_LANDMARKS_RIGHT_EYE=rc,Ac.FACE_LANDMARKS_RIGHT_EYEBROW=ic,Ac.FACE_LANDMARKS_RIGHT_IRIS=sc,Ac.FACE_LANDMARKS_FACE_OVAL=oc,Ac.FACE_LANDMARKS_CONTOURS=ac,Ac.FACE_LANDMARKS_TESSELATION=cc;var bc=class extends Ja{constructor(e,t){super(new Wa(e,t),"input_image","norm_rect",!0),this.j={classifications:[]},dn(e=this.h=new uo,0,1,t=new Is)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(e){dn(this.h,0,1,e)}o(e){return dn(this.h,0,2,ko(e,hn(this.h,bs,2))),this.l(e)}qa(e,t){return this.j={classifications:[]},Ya(this,e,t),this.j}ra(e,t,r){return this.j={classifications:[]},$a(this,e,r,t),this.j}m(){var e=new Qi;Ji(e,"input_image"),Ji(e,"norm_rect"),Zi(e,"classifications");const t=new Gi;Yn(t,lo,this.h);const r=new zi;Xi(r,"mediapipe.tasks.vision.image_classifier.ImageClassifierGraph"),Hi(r,"IMAGE:input_image"),Hi(r,"NORM_RECT:norm_rect"),Wi(r,"CLASSIFICATIONS:classifications"),r.o(t),qi(e,r),this.g.attachProtoListener("classifications",((e,t)=>{this.j=function(e){var t;const r={classifications:ln(e,ys,1).map((e=>{var t,r,n,o;return So(null!=(r=null==(t=hn(e,rs,4))?void 0:t.g())?r:[],null!=(n=_n(e,2))?n:0,null!=(o=vn(e,3))?o:"")}))};return null!=he(Ve(e,2))&&(r.timestampMs=null!=(t=he(Ve(e,2)))?t:0),r}(_s(e)),Yo(this,t)})),this.g.attachEmptyPacketListener("classifications",(e=>{Yo(this,e)})),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};bc.prototype.classifyForVideo=bc.prototype.ra,bc.prototype.classify=bc.prototype.qa,bc.prototype.setOptions=bc.prototype.o,bc.createFromModelPath=function(e,t){return za(bc,e,{baseOptions:{modelAssetPath:t}})},bc.createFromModelBuffer=function(e,t){return za(bc,e,{baseOptions:{modelAssetBuffer:t}})},bc.createFromOptions=function(e,t){return za(bc,e,t)};var kc=class extends Ja{constructor(e,t){super(new Wa(e,t),"image_in","norm_rect",!0),this.h=new fo,this.embeddings={embeddings:[]},dn(e=this.h,0,1,t=new Is)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(e){dn(this.h,0,1,e)}o(e){var t=this.h,r=hn(this.h,Ss,2);return r=r?r.clone():new Ss,void 0!==e.l2Normalize?wn(r,1,e.l2Normalize):"l2Normalize"in e&&He(r,1),void 0!==e.quantize?wn(r,2,e.quantize):"quantize"in e&&He(r,2),dn(t,0,2,r),this.l(e)}xa(e,t){return Ya(this,e,t),this.embeddings}ya(e,t,r){return $a(this,e,r,t),this.embeddings}m(){var e=new Qi;Ji(e,"image_in"),Ji(e,"norm_rect"),Zi(e,"embeddings_out");const t=new Gi;Yn(t,po,this.h);const r=new zi;Xi(r,"mediapipe.tasks.vision.image_embedder.ImageEmbedderGraph"),Hi(r,"IMAGE:image_in"),Hi(r,"NORM_RECT:norm_rect"),Wi(r,"EMBEDDINGS:embeddings_out"),r.o(t),qi(e,r),this.g.attachProtoListener("embeddings_out",((e,t)=>{var r,n;e=As(e),this.embeddings={embeddings:ln(r=e,ws,1).map((e=>{var t,r,n,o,i,a,s;const c={headIndex:null!=(r=null!=(t=_n(e,3))?t:0)?r:-1,headName:null!=(o=null!=(n=vn(e,4))?n:"")?o:""};if(void 0!==cn(e,vs,nn(e,1)))e=$e(e=hn(e,vs,nn(e,1)),1,qt,Ye()),c.floatEmbedding=e.slice();else{const t=new Uint8Array(0);c.quantizedEmbedding=null!=(s=null==(a=null==(i=hn(e,Es,nn(e,2)))?void 0:i.ma())?void 0:a.h())?s:t}return c})),timestampMs:null!=(n=he(Ve(r,2)))?n:0},Yo(this,t)})),this.g.attachEmptyPacketListener("embeddings_out",(e=>{Yo(this,e)})),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};kc.cosineSimilarity=function(e,t){if(e.floatEmbedding&&t.floatEmbedding)e=Io(e.floatEmbedding,t.floatEmbedding);else{if(!e.quantizedEmbedding||!t.quantizedEmbedding)throw Error("Cannot compute cosine similarity between quantized and float embeddings.");e=Io(Fo(e.quantizedEmbedding),Fo(t.quantizedEmbedding))}return e},kc.prototype.embedForVideo=kc.prototype.ya,kc.prototype.embed=kc.prototype.xa,kc.prototype.setOptions=kc.prototype.o,kc.createFromModelPath=function(e,t){return za(kc,e,{baseOptions:{modelAssetPath:t}})},kc.createFromModelBuffer=function(e,t){return za(kc,e,{baseOptions:{modelAssetBuffer:t}})},kc.createFromOptions=function(e,t){return za(kc,e,t)};var Sc=class{constructor(e,t,r){this.confidenceMasks=e,this.categoryMask=t,this.qualityScores=r}close(){var e,t;null==(e=this.confidenceMasks)||e.forEach((e=>{e.close()})),null==(t=this.categoryMask)||t.close()}};function xc(e){e.categoryMask=void 0,e.confidenceMasks=void 0,e.qualityScores=void 0}function Lc(e){try{const t=new Sc(e.confidenceMasks,e.categoryMask,e.qualityScores);if(!e.j)return t;e.j(t)}finally{Jo(e)}}Sc.prototype.close=Sc.prototype.close;var Rc=class extends Ja{constructor(e,t){super(new Wa(e,t),"image_in","norm_rect",!1),this.s=[],this.outputCategoryMask=!1,this.outputConfidenceMasks=!0,this.h=new vo,this.v=new go,dn(this.h,0,3,this.v),dn(e=this.h,0,1,t=new Is)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(e){dn(this.h,0,1,e)}o(e){var t,r;return void 0!==e.displayNamesLocale?He(this.h,2,de(e.displayNamesLocale)):"displayNamesLocale"in e&&He(this.h,2),"outputCategoryMask"in e&&(this.outputCategoryMask=null!=(t=e.outputCategoryMask)&&t),"outputConfidenceMasks"in e&&(this.outputConfidenceMasks=null==(r=e.outputConfidenceMasks)||r),super.l(e)}J(){!function(e){var t,r,n;const o=ln(e.ca(),zi,1).filter((e=>{var t;return(null!=(t=vn(e,1))?t:"").includes("mediapipe.tasks.TensorsToSegmentationCalculator")}));if(e.s=[],o.length>1)throw Error("The graph has more than one mediapipe.tasks.TensorsToSegmentationCalculator.");1===o.length&&(null!=(n=null==(r=null==(t=hn(o[0],Gi,7))?void 0:t.l())?void 0:r.g())?n:new Map).forEach(((t,r)=>{var n;e.s[Number(r)]=null!=(n=vn(t,1))?n:""}))}(this)}segment(e,t,r){const n="function"!=typeof t?t:{};return this.j="function"==typeof t?t:r,xc(this),Ya(this,e,n),Lc(this)}Ia(e,t,r,n){const o="function"!=typeof r?r:{};return this.j="function"==typeof r?r:n,xc(this),$a(this,e,o,t),Lc(this)}Ba(){return this.s}m(){var e=new Qi;Ji(e,"image_in"),Ji(e,"norm_rect");const t=new Gi;Yn(t,Eo,this.h);const r=new zi;Xi(r,"mediapipe.tasks.vision.image_segmenter.ImageSegmenterGraph"),Hi(r,"IMAGE:image_in"),Hi(r,"NORM_RECT:norm_rect"),r.o(t),qi(e,r),$o(this,e),this.outputConfidenceMasks&&(Zi(e,"confidence_masks"),Wi(r,"CONFIDENCE_MASKS:confidence_masks"),qo(this,"confidence_masks"),this.g.ba("confidence_masks",((e,t)=>{this.confidenceMasks=e.map((e=>qa(this,e,!0,!this.j))),Yo(this,t)})),this.g.attachEmptyPacketListener("confidence_masks",(e=>{this.confidenceMasks=[],Yo(this,e)}))),this.outputCategoryMask&&(Zi(e,"category_mask"),Wi(r,"CATEGORY_MASK:category_mask"),qo(this,"category_mask"),this.g.V("category_mask",((e,t)=>{this.categoryMask=qa(this,e,!1,!this.j),Yo(this,t)})),this.g.attachEmptyPacketListener("category_mask",(e=>{this.categoryMask=void 0,Yo(this,e)}))),Zi(e,"quality_scores"),Wi(r,"QUALITY_SCORES:quality_scores"),this.g.attachFloatVectorListener("quality_scores",((e,t)=>{this.qualityScores=e,Yo(this,t)})),this.g.attachEmptyPacketListener("quality_scores",(e=>{this.categoryMask=void 0,Yo(this,e)})),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};Rc.prototype.getLabels=Rc.prototype.Ba,Rc.prototype.segmentForVideo=Rc.prototype.Ia,Rc.prototype.segment=Rc.prototype.segment,Rc.prototype.setOptions=Rc.prototype.o,Rc.createFromModelPath=function(e,t){return za(Rc,e,{baseOptions:{modelAssetPath:t}})},Rc.createFromModelBuffer=function(e,t){return za(Rc,e,{baseOptions:{modelAssetBuffer:t}})},Rc.createFromOptions=function(e,t){return za(Rc,e,t)};var Fc=class{constructor(e,t,r){this.confidenceMasks=e,this.categoryMask=t,this.qualityScores=r}close(){var e,t;null==(e=this.confidenceMasks)||e.forEach((e=>{e.close()})),null==(t=this.categoryMask)||t.close()}};Fc.prototype.close=Fc.prototype.close;var Ic=class extends $n{constructor(e){super(e)}},Mc=[0,hi,-2],Pc=[0,ni,-3,di,ni,-1],Cc=[0,Pc],Oc=[0,Pc,hi,-1],Uc=class extends $n{constructor(e){super(e)}},Dc=[0,ni,-1,di],Nc=class extends $n{constructor(e){super(e)}},Bc=class extends $n{constructor(e){super(e)}},Gc=[1,2,3,4,5,6,7,8,9,10,14,15],jc=class extends $n{constructor(e){super(e)}};jc.prototype.g=Si([0,yi,[0,Gc,_i,Pc,_i,[0,Pc,Mc],_i,Cc,_i,[0,Cc,Mc],_i,Dc,_i,[0,ni,-3,di,Ti],_i,[0,ni,-3,di],_i,[0,mi,ni,-2,di,hi,di,-1,2,ni,Mc],_i,Oc,_i,[0,Oc,Mc],ni,Mc,mi,_i,[0,ni,-3,di,Mc,-1],_i,[0,yi,Dc]],mi,[0,mi,hi,-1,di]]);var Vc=class extends Ja{constructor(e,t){super(new Wa(e,t),"image_in","norm_rect_in",!1),this.outputCategoryMask=!1,this.outputConfidenceMasks=!0,this.h=new vo,this.s=new go,dn(this.h,0,3,this.s),dn(e=this.h,0,1,t=new Is)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(e){dn(this.h,0,1,e)}o(e){var t,r;return"outputCategoryMask"in e&&(this.outputCategoryMask=null!=(t=e.outputCategoryMask)&&t),"outputConfidenceMasks"in e&&(this.outputConfidenceMasks=null==(r=e.outputConfidenceMasks)||r),super.l(e)}segment(e,t,r,n){const o="function"!=typeof r?r:{};this.j="function"==typeof r?r:n,this.qualityScores=this.categoryMask=this.confidenceMasks=void 0,r=this.B+1,n=new jc;const i=new Bc;var a=new Ic;if(Tn(a,1,255),dn(i,0,12,a),t.keypoint&&t.scribble)throw Error("Cannot provide both keypoint and scribble.");if(t.keypoint){var s=new Uc;wn(s,3,!0),An(s,1,t.keypoint.x),An(s,2,t.keypoint.y),fn(i,5,Gc,s)}else{if(!t.scribble)throw Error("Must provide either a keypoint or a scribble.");for(s of(a=new Nc,t.scribble))wn(t=new Uc,3,!0),An(t,1,s.x),An(t,2,s.y),yn(a,1,Uc,t);fn(i,15,Gc,a)}yn(n,1,Bc,i),this.g.addProtoToStream(n.g(),"drishti.RenderData","roi_in",r),Ya(this,e,o);e:{try{const e=new Fc(this.confidenceMasks,this.categoryMask,this.qualityScores);if(!this.j){var c=e;break e}this.j(e)}finally{Jo(this)}c=void 0}return c}m(){var e=new Qi;Ji(e,"image_in"),Ji(e,"roi_in"),Ji(e,"norm_rect_in");const t=new Gi;Yn(t,Eo,this.h);const r=new zi;Xi(r,"mediapipe.tasks.vision.interactive_segmenter.InteractiveSegmenterGraph"),Hi(r,"IMAGE:image_in"),Hi(r,"ROI:roi_in"),Hi(r,"NORM_RECT:norm_rect_in"),r.o(t),qi(e,r),$o(this,e),this.outputConfidenceMasks&&(Zi(e,"confidence_masks"),Wi(r,"CONFIDENCE_MASKS:confidence_masks"),qo(this,"confidence_masks"),this.g.ba("confidence_masks",((e,t)=>{this.confidenceMasks=e.map((e=>qa(this,e,!0,!this.j))),Yo(this,t)})),this.g.attachEmptyPacketListener("confidence_masks",(e=>{this.confidenceMasks=[],Yo(this,e)}))),this.outputCategoryMask&&(Zi(e,"category_mask"),Wi(r,"CATEGORY_MASK:category_mask"),qo(this,"category_mask"),this.g.V("category_mask",((e,t)=>{this.categoryMask=qa(this,e,!1,!this.j),Yo(this,t)})),this.g.attachEmptyPacketListener("category_mask",(e=>{this.categoryMask=void 0,Yo(this,e)}))),Zi(e,"quality_scores"),Wi(r,"QUALITY_SCORES:quality_scores"),this.g.attachFloatVectorListener("quality_scores",((e,t)=>{this.qualityScores=e,Yo(this,t)})),this.g.attachEmptyPacketListener("quality_scores",(e=>{this.categoryMask=void 0,Yo(this,e)})),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};Vc.prototype.segment=Vc.prototype.segment,Vc.prototype.setOptions=Vc.prototype.o,Vc.createFromModelPath=function(e,t){return za(Vc,e,{baseOptions:{modelAssetPath:t}})},Vc.createFromModelBuffer=function(e,t){return za(Vc,e,{baseOptions:{modelAssetBuffer:t}})},Vc.createFromOptions=function(e,t){return za(Vc,e,t)};var Xc=class extends Ja{constructor(e,t){super(new Wa(e,t),"input_frame_gpu","norm_rect",!1),this.j={detections:[]},dn(e=this.h=new wo,0,1,t=new Is)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(e){dn(this.h,0,1,e)}o(e){return void 0!==e.displayNamesLocale?He(this.h,2,de(e.displayNamesLocale)):"displayNamesLocale"in e&&He(this.h,2),void 0!==e.maxResults?Tn(this.h,3,e.maxResults):"maxResults"in e&&He(this.h,3),void 0!==e.scoreThreshold?An(this.h,4,e.scoreThreshold):"scoreThreshold"in e&&He(this.h,4),void 0!==e.categoryAllowlist?bn(this.h,5,e.categoryAllowlist):"categoryAllowlist"in e&&He(this.h,5),void 0!==e.categoryDenylist?bn(this.h,6,e.categoryDenylist):"categoryDenylist"in e&&He(this.h,6),this.l(e)}D(e,t){return this.j={detections:[]},Ya(this,e,t),this.j}F(e,t,r){return this.j={detections:[]},$a(this,e,r,t),this.j}m(){var e=new Qi;Ji(e,"input_frame_gpu"),Ji(e,"norm_rect"),Zi(e,"detections");const t=new Gi;Yn(t,To,this.h);const r=new zi;Xi(r,"mediapipe.tasks.vision.ObjectDetectorGraph"),Hi(r,"IMAGE:input_frame_gpu"),Hi(r,"NORM_RECT:norm_rect"),Wi(r,"DETECTIONS:detections"),r.o(t),qi(e,r),this.g.attachProtoVectorListener("detections",((e,t)=>{for(const t of e)e=hs(t),this.j.detections.push(xo(e));Yo(this,t)})),this.g.attachEmptyPacketListener("detections",(e=>{Yo(this,e)})),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};Xc.prototype.detectForVideo=Xc.prototype.F,Xc.prototype.detect=Xc.prototype.D,Xc.prototype.setOptions=Xc.prototype.o,Xc.createFromModelPath=async function(e,t){return za(Xc,e,{baseOptions:{modelAssetPath:t}})},Xc.createFromModelBuffer=function(e,t){return za(Xc,e,{baseOptions:{modelAssetBuffer:t}})},Xc.createFromOptions=function(e,t){return za(Xc,e,t)};var Hc=class{constructor(e,t,r){this.landmarks=e,this.worldLandmarks=t,this.segmentationMasks=r}close(){var e;null==(e=this.segmentationMasks)||e.forEach((e=>{e.close()}))}};function Wc(e){e.landmarks=[],e.worldLandmarks=[],e.segmentationMasks=void 0}function zc(e){try{const t=new Hc(e.landmarks,e.worldLandmarks,e.segmentationMasks);if(!e.s)return t;e.s(t)}finally{Jo(e)}}Hc.prototype.close=Hc.prototype.close;var Kc=class extends Ja{constructor(e,t){super(new Wa(e,t),"image_in","norm_rect",!1),this.landmarks=[],this.worldLandmarks=[],this.outputSegmentationMasks=!1,dn(e=this.h=new Ao,0,1,t=new Is),this.v=new oo,dn(this.h,0,3,this.v),this.j=new so,dn(this.h,0,2,this.j),Tn(this.j,4,1),An(this.j,2,.5),An(this.v,2,.5),An(this.h,4,.5)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(e){dn(this.h,0,1,e)}o(e){var t,r,n,o,i;return"numPoses"in e&&Tn(this.j,4,null!=(t=e.numPoses)?t:1),"minPoseDetectionConfidence"in e&&An(this.j,2,null!=(r=e.minPoseDetectionConfidence)?r:.5),"minTrackingConfidence"in e&&An(this.h,4,null!=(n=e.minTrackingConfidence)?n:.5),"minPosePresenceConfidence"in e&&An(this.v,2,null!=(o=e.minPosePresenceConfidence)?o:.5),"outputSegmentationMasks"in e&&(this.outputSegmentationMasks=null!=(i=e.outputSegmentationMasks)&&i),this.l(e)}D(e,t,r){const n="function"!=typeof t?t:{};return this.s="function"==typeof t?t:r,Wc(this),Ya(this,e,n),zc(this)}F(e,t,r,n){const o="function"!=typeof r?r:{};return this.s="function"==typeof r?r:n,Wc(this),$a(this,e,o,t),zc(this)}m(){var e=new Qi;Ji(e,"image_in"),Ji(e,"norm_rect"),Zi(e,"normalized_landmarks"),Zi(e,"world_landmarks"),Zi(e,"segmentation_masks");const t=new Gi;Yn(t,bo,this.h);const r=new zi;Xi(r,"mediapipe.tasks.vision.pose_landmarker.PoseLandmarkerGraph"),Hi(r,"IMAGE:image_in"),Hi(r,"NORM_RECT:norm_rect"),Wi(r,"NORM_LANDMARKS:normalized_landmarks"),Wi(r,"WORLD_LANDMARKS:world_landmarks"),r.o(t),qi(e,r),$o(this,e),this.g.attachProtoVectorListener("normalized_landmarks",((e,t)=>{this.landmarks=[];for(const t of e)e=fs(t),this.landmarks.push(Lo(e));Yo(this,t)})),this.g.attachEmptyPacketListener("normalized_landmarks",(e=>{this.landmarks=[],Yo(this,e)})),this.g.attachProtoVectorListener("world_landmarks",((e,t)=>{this.worldLandmarks=[];for(const t of e)e=ls(t),this.worldLandmarks.push(Ro(e));Yo(this,t)})),this.g.attachEmptyPacketListener("world_landmarks",(e=>{this.worldLandmarks=[],Yo(this,e)})),this.outputSegmentationMasks&&(Wi(r,"SEGMENTATION_MASK:segmentation_masks"),qo(this,"segmentation_masks"),this.g.ba("segmentation_masks",((e,t)=>{this.segmentationMasks=e.map((e=>qa(this,e,!0,!this.s))),Yo(this,t)})),this.g.attachEmptyPacketListener("segmentation_masks",(e=>{this.segmentationMasks=[],Yo(this,e)}))),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};Kc.prototype.detectForVideo=Kc.prototype.F,Kc.prototype.detect=Kc.prototype.D,Kc.prototype.setOptions=Kc.prototype.o,Kc.createFromModelPath=function(e,t){return za(Kc,e,{baseOptions:{modelAssetPath:t}})},Kc.createFromModelBuffer=function(e,t){return za(Kc,e,{baseOptions:{modelAssetBuffer:t}})},Kc.createFromOptions=function(e,t){return za(Kc,e,t)},Kc.POSE_CONNECTIONS=vc;var EPSILON=1e-6,ARRAY_TYPE="undefined"!=typeof Float32Array?Float32Array:Array,degree=Math.PI/180;Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});var mat4_exports={};function create(){var e=new ARRAY_TYPE(16);return ARRAY_TYPE!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function clone(e){var t=new ARRAY_TYPE(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function copy(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function fromValues(e,t,r,n,o,i,a,s,c,A,u,l,d,g,f,h){var p=new ARRAY_TYPE(16);return p[0]=e,p[1]=t,p[2]=r,p[3]=n,p[4]=o,p[5]=i,p[6]=a,p[7]=s,p[8]=c,p[9]=A,p[10]=u,p[11]=l,p[12]=d,p[13]=g,p[14]=f,p[15]=h,p}function set(e,t,r,n,o,i,a,s,c,A,u,l,d,g,f,h,p){return e[0]=t,e[1]=r,e[2]=n,e[3]=o,e[4]=i,e[5]=a,e[6]=s,e[7]=c,e[8]=A,e[9]=u,e[10]=l,e[11]=d,e[12]=g,e[13]=f,e[14]=h,e[15]=p,e}function identity(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function transpose(e,t){if(e===t){var r=t[1],n=t[2],o=t[3],i=t[6],a=t[7],s=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=r,e[6]=t[9],e[7]=t[13],e[8]=n,e[9]=i,e[11]=t[14],e[12]=o,e[13]=a,e[14]=s}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function invert(e,t){var r=t[0],n=t[1],o=t[2],i=t[3],a=t[4],s=t[5],c=t[6],A=t[7],u=t[8],l=t[9],d=t[10],g=t[11],f=t[12],h=t[13],p=t[14],E=t[15],m=r*s-n*a,I=r*c-o*a,y=r*A-i*a,_=n*c-o*s,w=n*A-i*s,C=o*A-i*c,b=u*h-l*f,B=u*p-d*f,D=u*E-g*f,O=l*p-d*h,T=l*E-g*h,v=d*E-g*p,Q=m*v-I*T+y*O+_*D-w*B+C*b;return Q?(Q=1/Q,e[0]=(s*v-c*T+A*O)*Q,e[1]=(o*T-n*v-i*O)*Q,e[2]=(h*C-p*w+E*_)*Q,e[3]=(d*w-l*C-g*_)*Q,e[4]=(c*D-a*v-A*B)*Q,e[5]=(r*v-o*D+i*B)*Q,e[6]=(p*y-f*C-E*I)*Q,e[7]=(u*C-d*y+g*I)*Q,e[8]=(a*T-s*D+A*b)*Q,e[9]=(n*D-r*T-i*b)*Q,e[10]=(f*w-h*y+E*m)*Q,e[11]=(l*y-u*w-g*m)*Q,e[12]=(s*B-a*O-c*b)*Q,e[13]=(r*O-n*B+o*b)*Q,e[14]=(h*I-f*_-p*m)*Q,e[15]=(u*_-l*I+d*m)*Q,e):null}function adjoint(e,t){var r=t[0],n=t[1],o=t[2],i=t[3],a=t[4],s=t[5],c=t[6],A=t[7],u=t[8],l=t[9],d=t[10],g=t[11],f=t[12],h=t[13],p=t[14],E=t[15];return e[0]=s*(d*E-g*p)-l*(c*E-A*p)+h*(c*g-A*d),e[1]=-(n*(d*E-g*p)-l*(o*E-i*p)+h*(o*g-i*d)),e[2]=n*(c*E-A*p)-s*(o*E-i*p)+h*(o*A-i*c),e[3]=-(n*(c*g-A*d)-s*(o*g-i*d)+l*(o*A-i*c)),e[4]=-(a*(d*E-g*p)-u*(c*E-A*p)+f*(c*g-A*d)),e[5]=r*(d*E-g*p)-u*(o*E-i*p)+f*(o*g-i*d),e[6]=-(r*(c*E-A*p)-a*(o*E-i*p)+f*(o*A-i*c)),e[7]=r*(c*g-A*d)-a*(o*g-i*d)+u*(o*A-i*c),e[8]=a*(l*E-g*h)-u*(s*E-A*h)+f*(s*g-A*l),e[9]=-(r*(l*E-g*h)-u*(n*E-i*h)+f*(n*g-i*l)),e[10]=r*(s*E-A*h)-a*(n*E-i*h)+f*(n*A-i*s),e[11]=-(r*(s*g-A*l)-a*(n*g-i*l)+u*(n*A-i*s)),e[12]=-(a*(l*p-d*h)-u*(s*p-c*h)+f*(s*d-c*l)),e[13]=r*(l*p-d*h)-u*(n*p-o*h)+f*(n*d-o*l),e[14]=-(r*(s*p-c*h)-a*(n*p-o*h)+f*(n*c-o*s)),e[15]=r*(s*d-c*l)-a*(n*d-o*l)+u*(n*c-o*s),e}function determinant(e){var t=e[0],r=e[1],n=e[2],o=e[3],i=e[4],a=e[5],s=e[6],c=e[7],A=e[8],u=e[9],l=e[10],d=e[11],g=e[12],f=e[13],h=e[14],p=e[15];return(t*a-r*i)*(l*p-d*h)-(t*s-n*i)*(u*p-d*f)+(t*c-o*i)*(u*h-l*f)+(r*s-n*a)*(A*p-d*g)-(r*c-o*a)*(A*h-l*g)+(n*c-o*s)*(A*f-u*g)}function multiply(e,t,r){var n=t[0],o=t[1],i=t[2],a=t[3],s=t[4],c=t[5],A=t[6],u=t[7],l=t[8],d=t[9],g=t[10],f=t[11],h=t[12],p=t[13],E=t[14],m=t[15],I=r[0],y=r[1],_=r[2],w=r[3];return e[0]=I*n+y*s+_*l+w*h,e[1]=I*o+y*c+_*d+w*p,e[2]=I*i+y*A+_*g+w*E,e[3]=I*a+y*u+_*f+w*m,I=r[4],y=r[5],_=r[6],w=r[7],e[4]=I*n+y*s+_*l+w*h,e[5]=I*o+y*c+_*d+w*p,e[6]=I*i+y*A+_*g+w*E,e[7]=I*a+y*u+_*f+w*m,I=r[8],y=r[9],_=r[10],w=r[11],e[8]=I*n+y*s+_*l+w*h,e[9]=I*o+y*c+_*d+w*p,e[10]=I*i+y*A+_*g+w*E,e[11]=I*a+y*u+_*f+w*m,I=r[12],y=r[13],_=r[14],w=r[15],e[12]=I*n+y*s+_*l+w*h,e[13]=I*o+y*c+_*d+w*p,e[14]=I*i+y*A+_*g+w*E,e[15]=I*a+y*u+_*f+w*m,e}function translate(e,t,r){var n,o,i,a,s,c,A,u,l,d,g,f,h=r[0],p=r[1],E=r[2];return t===e?(e[12]=t[0]*h+t[4]*p+t[8]*E+t[12],e[13]=t[1]*h+t[5]*p+t[9]*E+t[13],e[14]=t[2]*h+t[6]*p+t[10]*E+t[14],e[15]=t[3]*h+t[7]*p+t[11]*E+t[15]):(n=t[0],o=t[1],i=t[2],a=t[3],s=t[4],c=t[5],A=t[6],u=t[7],l=t[8],d=t[9],g=t[10],f=t[11],e[0]=n,e[1]=o,e[2]=i,e[3]=a,e[4]=s,e[5]=c,e[6]=A,e[7]=u,e[8]=l,e[9]=d,e[10]=g,e[11]=f,e[12]=n*h+s*p+l*E+t[12],e[13]=o*h+c*p+d*E+t[13],e[14]=i*h+A*p+g*E+t[14],e[15]=a*h+u*p+f*E+t[15]),e}function scale(e,t,r){var n=r[0],o=r[1],i=r[2];return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*o,e[5]=t[5]*o,e[6]=t[6]*o,e[7]=t[7]*o,e[8]=t[8]*i,e[9]=t[9]*i,e[10]=t[10]*i,e[11]=t[11]*i,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function rotate(e,t,r,n){var o,i,a,s,c,A,u,l,d,g,f,h,p,E,m,I,y,_,w,C,b,B,D,O,T=n[0],v=n[1],Q=n[2],P=Math.hypot(T,v,Q);return P<EPSILON?null:(T*=P=1/P,v*=P,Q*=P,o=Math.sin(r),a=1-(i=Math.cos(r)),s=t[0],c=t[1],A=t[2],u=t[3],l=t[4],d=t[5],g=t[6],f=t[7],h=t[8],p=t[9],E=t[10],m=t[11],I=T*T*a+i,y=v*T*a+Q*o,_=Q*T*a-v*o,w=T*v*a-Q*o,C=v*v*a+i,b=Q*v*a+T*o,B=T*Q*a+v*o,D=v*Q*a-T*o,O=Q*Q*a+i,e[0]=s*I+l*y+h*_,e[1]=c*I+d*y+p*_,e[2]=A*I+g*y+E*_,e[3]=u*I+f*y+m*_,e[4]=s*w+l*C+h*b,e[5]=c*w+d*C+p*b,e[6]=A*w+g*C+E*b,e[7]=u*w+f*C+m*b,e[8]=s*B+l*D+h*O,e[9]=c*B+d*D+p*O,e[10]=A*B+g*D+E*O,e[11]=u*B+f*D+m*O,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function rotateX(e,t,r){var n=Math.sin(r),o=Math.cos(r),i=t[4],a=t[5],s=t[6],c=t[7],A=t[8],u=t[9],l=t[10],d=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=i*o+A*n,e[5]=a*o+u*n,e[6]=s*o+l*n,e[7]=c*o+d*n,e[8]=A*o-i*n,e[9]=u*o-a*n,e[10]=l*o-s*n,e[11]=d*o-c*n,e}function rotateY(e,t,r){var n=Math.sin(r),o=Math.cos(r),i=t[0],a=t[1],s=t[2],c=t[3],A=t[8],u=t[9],l=t[10],d=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*o-A*n,e[1]=a*o-u*n,e[2]=s*o-l*n,e[3]=c*o-d*n,e[8]=i*n+A*o,e[9]=a*n+u*o,e[10]=s*n+l*o,e[11]=c*n+d*o,e}function rotateZ(e,t,r){var n=Math.sin(r),o=Math.cos(r),i=t[0],a=t[1],s=t[2],c=t[3],A=t[4],u=t[5],l=t[6],d=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*o+A*n,e[1]=a*o+u*n,e[2]=s*o+l*n,e[3]=c*o+d*n,e[4]=A*o-i*n,e[5]=u*o-a*n,e[6]=l*o-s*n,e[7]=d*o-c*n,e}function fromTranslation(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e}function fromScaling(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function fromRotation(e,t,r){var n,o,i,a=r[0],s=r[1],c=r[2],A=Math.hypot(a,s,c);return A<EPSILON?null:(a*=A=1/A,s*=A,c*=A,n=Math.sin(t),i=1-(o=Math.cos(t)),e[0]=a*a*i+o,e[1]=s*a*i+c*n,e[2]=c*a*i-s*n,e[3]=0,e[4]=a*s*i-c*n,e[5]=s*s*i+o,e[6]=c*s*i+a*n,e[7]=0,e[8]=a*c*i+s*n,e[9]=s*c*i-a*n,e[10]=c*c*i+o,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)}function fromXRotation(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=n,e[6]=r,e[7]=0,e[8]=0,e[9]=-r,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function fromYRotation(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=0,e[2]=-r,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=r,e[9]=0,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function fromZRotation(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=r,e[2]=0,e[3]=0,e[4]=-r,e[5]=n,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function fromRotationTranslation(e,t,r){var n=t[0],o=t[1],i=t[2],a=t[3],s=n+n,c=o+o,A=i+i,u=n*s,l=n*c,d=n*A,g=o*c,f=o*A,h=i*A,p=a*s,E=a*c,m=a*A;return e[0]=1-(g+h),e[1]=l+m,e[2]=d-E,e[3]=0,e[4]=l-m,e[5]=1-(u+h),e[6]=f+p,e[7]=0,e[8]=d+E,e[9]=f-p,e[10]=1-(u+g),e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}function fromQuat2(e,t){var r=new ARRAY_TYPE(3),n=-t[0],o=-t[1],i=-t[2],a=t[3],s=t[4],c=t[5],A=t[6],u=t[7],l=n*n+o*o+i*i+a*a;return l>0?(r[0]=2*(s*a+u*n+c*i-A*o)/l,r[1]=2*(c*a+u*o+A*n-s*i)/l,r[2]=2*(A*a+u*i+s*o-c*n)/l):(r[0]=2*(s*a+u*n+c*i-A*o),r[1]=2*(c*a+u*o+A*n-s*i),r[2]=2*(A*a+u*i+s*o-c*n)),fromRotationTranslation(e,t,r),e}function getTranslation(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function getScaling(e,t){var r=t[0],n=t[1],o=t[2],i=t[4],a=t[5],s=t[6],c=t[8],A=t[9],u=t[10];return e[0]=Math.hypot(r,n,o),e[1]=Math.hypot(i,a,s),e[2]=Math.hypot(c,A,u),e}function getRotation(e,t){var r=new ARRAY_TYPE(3);getScaling(r,t);var n=1/r[0],o=1/r[1],i=1/r[2],a=t[0]*n,s=t[1]*o,c=t[2]*i,A=t[4]*n,u=t[5]*o,l=t[6]*i,d=t[8]*n,g=t[9]*o,f=t[10]*i,h=a+u+f,p=0;return h>0?(p=2*Math.sqrt(h+1),e[3]=.25*p,e[0]=(l-g)/p,e[1]=(d-c)/p,e[2]=(s-A)/p):a>u&&a>f?(p=2*Math.sqrt(1+a-u-f),e[3]=(l-g)/p,e[0]=.25*p,e[1]=(s+A)/p,e[2]=(d+c)/p):u>f?(p=2*Math.sqrt(1+u-a-f),e[3]=(d-c)/p,e[0]=(s+A)/p,e[1]=.25*p,e[2]=(l+g)/p):(p=2*Math.sqrt(1+f-a-u),e[3]=(s-A)/p,e[0]=(d+c)/p,e[1]=(l+g)/p,e[2]=.25*p),e}function fromRotationTranslationScale(e,t,r,n){var o=t[0],i=t[1],a=t[2],s=t[3],c=o+o,A=i+i,u=a+a,l=o*c,d=o*A,g=o*u,f=i*A,h=i*u,p=a*u,E=s*c,m=s*A,I=s*u,y=n[0],_=n[1],w=n[2];return e[0]=(1-(f+p))*y,e[1]=(d+I)*y,e[2]=(g-m)*y,e[3]=0,e[4]=(d-I)*_,e[5]=(1-(l+p))*_,e[6]=(h+E)*_,e[7]=0,e[8]=(g+m)*w,e[9]=(h-E)*w,e[10]=(1-(l+f))*w,e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}function fromRotationTranslationScaleOrigin(e,t,r,n,o){var i=t[0],a=t[1],s=t[2],c=t[3],A=i+i,u=a+a,l=s+s,d=i*A,g=i*u,f=i*l,h=a*u,p=a*l,E=s*l,m=c*A,I=c*u,y=c*l,_=n[0],w=n[1],C=n[2],b=o[0],B=o[1],D=o[2],O=(1-(h+E))*_,T=(g+y)*_,v=(f-I)*_,Q=(g-y)*w,P=(1-(d+E))*w,M=(p+m)*w,R=(f+I)*C,S=(p-m)*C,F=(1-(d+h))*C;return e[0]=O,e[1]=T,e[2]=v,e[3]=0,e[4]=Q,e[5]=P,e[6]=M,e[7]=0,e[8]=R,e[9]=S,e[10]=F,e[11]=0,e[12]=r[0]+b-(O*b+Q*B+R*D),e[13]=r[1]+B-(T*b+P*B+S*D),e[14]=r[2]+D-(v*b+M*B+F*D),e[15]=1,e}function fromQuat(e,t){var r=t[0],n=t[1],o=t[2],i=t[3],a=r+r,s=n+n,c=o+o,A=r*a,u=n*a,l=n*s,d=o*a,g=o*s,f=o*c,h=i*a,p=i*s,E=i*c;return e[0]=1-l-f,e[1]=u+E,e[2]=d-p,e[3]=0,e[4]=u-E,e[5]=1-A-f,e[6]=g+h,e[7]=0,e[8]=d+p,e[9]=g-h,e[10]=1-A-l,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function frustum(e,t,r,n,o,i,a){var s=1/(r-t),c=1/(o-n),A=1/(i-a);return e[0]=2*i*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*i*c,e[6]=0,e[7]=0,e[8]=(r+t)*s,e[9]=(o+n)*c,e[10]=(a+i)*A,e[11]=-1,e[12]=0,e[13]=0,e[14]=a*i*2*A,e[15]=0,e}function perspectiveNO(e,t,r,n,o){var i,a=1/Math.tan(t/2);return e[0]=a/r,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=o&&o!==1/0?(i=1/(n-o),e[10]=(o+n)*i,e[14]=2*o*n*i):(e[10]=-1,e[14]=-2*n),e}__export(mat4_exports,{add:()=>add,adjoint:()=>adjoint,clone:()=>clone,copy:()=>copy,create:()=>create,determinant:()=>determinant,equals:()=>equals,exactEquals:()=>exactEquals,frob:()=>frob,fromQuat:()=>fromQuat,fromQuat2:()=>fromQuat2,fromRotation:()=>fromRotation,fromRotationTranslation:()=>fromRotationTranslation,fromRotationTranslationScale:()=>fromRotationTranslationScale,fromRotationTranslationScaleOrigin:()=>fromRotationTranslationScaleOrigin,fromScaling:()=>fromScaling,fromTranslation:()=>fromTranslation,fromValues:()=>fromValues,fromXRotation:()=>fromXRotation,fromYRotation:()=>fromYRotation,fromZRotation:()=>fromZRotation,frustum:()=>frustum,getRotation:()=>getRotation,getScaling:()=>getScaling,getTranslation:()=>getTranslation,identity:()=>identity,invert:()=>invert,lookAt:()=>lookAt,mul:()=>mul,multiply:()=>multiply,multiplyScalar:()=>multiplyScalar,multiplyScalarAndAdd:()=>multiplyScalarAndAdd,ortho:()=>ortho,orthoNO:()=>orthoNO,orthoZO:()=>orthoZO,perspective:()=>perspective,perspectiveFromFieldOfView:()=>perspectiveFromFieldOfView,perspectiveNO:()=>perspectiveNO,perspectiveZO:()=>perspectiveZO,rotate:()=>rotate,rotateX:()=>rotateX,rotateY:()=>rotateY,rotateZ:()=>rotateZ,scale:()=>scale,set:()=>set,str:()=>str,sub:()=>sub,subtract:()=>subtract,targetTo:()=>targetTo,translate:()=>translate,transpose:()=>transpose});var perspective=perspectiveNO;function perspectiveZO(e,t,r,n,o){var i,a=1/Math.tan(t/2);return e[0]=a/r,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=o&&o!==1/0?(i=1/(n-o),e[10]=o*i,e[14]=o*n*i):(e[10]=-1,e[14]=-n),e}function perspectiveFromFieldOfView(e,t,r,n){var o=Math.tan(t.upDegrees*Math.PI/180),i=Math.tan(t.downDegrees*Math.PI/180),a=Math.tan(t.leftDegrees*Math.PI/180),s=Math.tan(t.rightDegrees*Math.PI/180),c=2/(a+s),A=2/(o+i);return e[0]=c,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=A,e[6]=0,e[7]=0,e[8]=-(a-s)*c*.5,e[9]=(o-i)*A*.5,e[10]=n/(r-n),e[11]=-1,e[12]=0,e[13]=0,e[14]=n*r/(r-n),e[15]=0,e}function orthoNO(e,t,r,n,o,i,a){var s=1/(t-r),c=1/(n-o),A=1/(i-a);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*c,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*A,e[11]=0,e[12]=(t+r)*s,e[13]=(o+n)*c,e[14]=(a+i)*A,e[15]=1,e}var ortho=orthoNO;function orthoZO(e,t,r,n,o,i,a){var s=1/(t-r),c=1/(n-o),A=1/(i-a);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*c,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=A,e[11]=0,e[12]=(t+r)*s,e[13]=(o+n)*c,e[14]=i*A,e[15]=1,e}function lookAt(e,t,r,n){var o,i,a,s,c,A,u,l,d,g,f=t[0],h=t[1],p=t[2],E=n[0],m=n[1],I=n[2],y=r[0],_=r[1],w=r[2];return Math.abs(f-y)<EPSILON&&Math.abs(h-_)<EPSILON&&Math.abs(p-w)<EPSILON?identity(e):(u=f-y,l=h-_,d=p-w,o=m*(d*=g=1/Math.hypot(u,l,d))-I*(l*=g),i=I*(u*=g)-E*d,a=E*l-m*u,(g=Math.hypot(o,i,a))?(o*=g=1/g,i*=g,a*=g):(o=0,i=0,a=0),s=l*a-d*i,c=d*o-u*a,A=u*i-l*o,(g=Math.hypot(s,c,A))?(s*=g=1/g,c*=g,A*=g):(s=0,c=0,A=0),e[0]=o,e[1]=s,e[2]=u,e[3]=0,e[4]=i,e[5]=c,e[6]=l,e[7]=0,e[8]=a,e[9]=A,e[10]=d,e[11]=0,e[12]=-(o*f+i*h+a*p),e[13]=-(s*f+c*h+A*p),e[14]=-(u*f+l*h+d*p),e[15]=1,e)}function targetTo(e,t,r,n){var o=t[0],i=t[1],a=t[2],s=n[0],c=n[1],A=n[2],u=o-r[0],l=i-r[1],d=a-r[2],g=u*u+l*l+d*d;g>0&&(u*=g=1/Math.sqrt(g),l*=g,d*=g);var f=c*d-A*l,h=A*u-s*d,p=s*l-c*u;return(g=f*f+h*h+p*p)>0&&(f*=g=1/Math.sqrt(g),h*=g,p*=g),e[0]=f,e[1]=h,e[2]=p,e[3]=0,e[4]=l*p-d*h,e[5]=d*f-u*p,e[6]=u*h-l*f,e[7]=0,e[8]=u,e[9]=l,e[10]=d,e[11]=0,e[12]=o,e[13]=i,e[14]=a,e[15]=1,e}function str(e){return"mat4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+", "+e[9]+", "+e[10]+", "+e[11]+", "+e[12]+", "+e[13]+", "+e[14]+", "+e[15]+")"}function frob(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])}function add(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e[4]=t[4]+r[4],e[5]=t[5]+r[5],e[6]=t[6]+r[6],e[7]=t[7]+r[7],e[8]=t[8]+r[8],e[9]=t[9]+r[9],e[10]=t[10]+r[10],e[11]=t[11]+r[11],e[12]=t[12]+r[12],e[13]=t[13]+r[13],e[14]=t[14]+r[14],e[15]=t[15]+r[15],e}function subtract(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e[4]=t[4]-r[4],e[5]=t[5]-r[5],e[6]=t[6]-r[6],e[7]=t[7]-r[7],e[8]=t[8]-r[8],e[9]=t[9]-r[9],e[10]=t[10]-r[10],e[11]=t[11]-r[11],e[12]=t[12]-r[12],e[13]=t[13]-r[13],e[14]=t[14]-r[14],e[15]=t[15]-r[15],e}function multiplyScalar(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*r,e[5]=t[5]*r,e[6]=t[6]*r,e[7]=t[7]*r,e[8]=t[8]*r,e[9]=t[9]*r,e[10]=t[10]*r,e[11]=t[11]*r,e[12]=t[12]*r,e[13]=t[13]*r,e[14]=t[14]*r,e[15]=t[15]*r,e}function multiplyScalarAndAdd(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e[4]=t[4]+r[4]*n,e[5]=t[5]+r[5]*n,e[6]=t[6]+r[6]*n,e[7]=t[7]+r[7]*n,e[8]=t[8]+r[8]*n,e[9]=t[9]+r[9]*n,e[10]=t[10]+r[10]*n,e[11]=t[11]+r[11]*n,e[12]=t[12]+r[12]*n,e[13]=t[13]+r[13]*n,e[14]=t[14]+r[14]*n,e[15]=t[15]+r[15]*n,e}function exactEquals(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[11]===t[11]&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[15]===t[15]}function equals(e,t){var r=e[0],n=e[1],o=e[2],i=e[3],a=e[4],s=e[5],c=e[6],A=e[7],u=e[8],l=e[9],d=e[10],g=e[11],f=e[12],h=e[13],p=e[14],E=e[15],m=t[0],I=t[1],y=t[2],_=t[3],w=t[4],C=t[5],b=t[6],B=t[7],D=t[8],O=t[9],T=t[10],v=t[11],Q=t[12],P=t[13],M=t[14],R=t[15];return Math.abs(r-m)<=EPSILON*Math.max(1,Math.abs(r),Math.abs(m))&&Math.abs(n-I)<=EPSILON*Math.max(1,Math.abs(n),Math.abs(I))&&Math.abs(o-y)<=EPSILON*Math.max(1,Math.abs(o),Math.abs(y))&&Math.abs(i-_)<=EPSILON*Math.max(1,Math.abs(i),Math.abs(_))&&Math.abs(a-w)<=EPSILON*Math.max(1,Math.abs(a),Math.abs(w))&&Math.abs(s-C)<=EPSILON*Math.max(1,Math.abs(s),Math.abs(C))&&Math.abs(c-b)<=EPSILON*Math.max(1,Math.abs(c),Math.abs(b))&&Math.abs(A-B)<=EPSILON*Math.max(1,Math.abs(A),Math.abs(B))&&Math.abs(u-D)<=EPSILON*Math.max(1,Math.abs(u),Math.abs(D))&&Math.abs(l-O)<=EPSILON*Math.max(1,Math.abs(l),Math.abs(O))&&Math.abs(d-T)<=EPSILON*Math.max(1,Math.abs(d),Math.abs(T))&&Math.abs(g-v)<=EPSILON*Math.max(1,Math.abs(g),Math.abs(v))&&Math.abs(f-Q)<=EPSILON*Math.max(1,Math.abs(f),Math.abs(Q))&&Math.abs(h-P)<=EPSILON*Math.max(1,Math.abs(h),Math.abs(P))&&Math.abs(p-M)<=EPSILON*Math.max(1,Math.abs(p),Math.abs(M))&&Math.abs(E-R)<=EPSILON*Math.max(1,Math.abs(E),Math.abs(R))}var mul=multiply,sub=subtract,ch2={},wk=function(e,t,r,n,o){var i=new Worker(ch2[t]||(ch2[t]=URL.createObjectURL(new Blob([e+';addEventListener("error",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'],{type:"text/javascript"}))));return i.onmessage=function(e){var t=e.data,r=t.$e$;if(r){var n=new Error(r[0]);n.code=r[1],n.stack=r[2],o(n,null)}else o(null,t)},i.postMessage(r,n),i},u8=Uint8Array,u16=Uint16Array,i32=Int32Array,fleb=new u8([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),fdeb=new u8([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),clim=new u8([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),freb=function(e,t){for(var r=new u16(31),n=0;n<31;++n)r[n]=t+=1<<e[n-1];var o=new i32(r[30]);for(n=1;n<30;++n)for(var i=r[n];i<r[n+1];++i)o[i]=i-r[n]<<5|n;return{b:r,r:o}},_a2=freb(fleb,2),fl=_a2.b,revfl=_a2.r;fl[28]=258,revfl[258]=28;var x2,_b=freb(fdeb,0),fd=_b.b,revfd=_b.r,rev=new u16(32768);for(i2=0;i2<32768;++i2)x2=(61680&(x2=(52428&(x2=(43690&i2)>>1|(21845&i2)<<1))>>2|(13107&x2)<<2))>>4|(3855&x2)<<4,rev[i2]=((65280&x2)>>8|(255&x2)<<8)>>1;var hMap=function(e,t,r){for(var n=e.length,o=0,i=new u16(t);o<n;++o)e[o]&&++i[e[o]-1];var a,s=new u16(t);for(o=1;o<t;++o)s[o]=s[o-1]+i[o-1]<<1;if(r){a=new u16(1<<t);var c=15-t;for(o=0;o<n;++o)if(e[o])for(var A=o<<4|e[o],u=t-e[o],l=s[e[o]-1]++<<u,d=l|(1<<u)-1;l<=d;++l)a[rev[l]>>c]=A}else for(a=new u16(n),o=0;o<n;++o)e[o]&&(a[o]=rev[s[e[o]-1]++]>>15-e[o]);return a},flt=new u8(288);for(i2=0;i2<144;++i2)flt[i2]=8;for(i2=144;i2<256;++i2)flt[i2]=9;for(i2=256;i2<280;++i2)flt[i2]=7;for(i2=280;i2<288;++i2)flt[i2]=8;var i2,fdt=new u8(32);for(i2=0;i2<32;++i2)fdt[i2]=5;var flrm=hMap(flt,9,1),fdrm=hMap(fdt,5,1),max=function(e){for(var t=e[0],r=1;r<e.length;++r)e[r]>t&&(t=e[r]);return t},bits=function(e,t,r){var n=t/8|0;return(e[n]|e[n+1]<<8)>>(7&t)&r},bits16=function(e,t){var r=t/8|0;return(e[r]|e[r+1]<<8|e[r+2]<<16)>>(7&t)},shft=function(e){return(e+7)/8|0},slc=function(e,t,r){return(null==t||t<0)&&(t=0),(null==r||r>e.length)&&(r=e.length),new u8(e.subarray(t,r))},ec2=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],err=function(e,t,r){var n=new Error(t||ec2[e]);if(n.code=e,Error.captureStackTrace&&Error.captureStackTrace(n,err),!r)throw n;return n},inflt=function(e,t,r,n){var o=e.length,i=n?n.length:0;if(!o||t.f&&!t.l)return r||new u8(0);var a=!r,s=a||2!=t.i,c=t.i;a&&(r=new u8(3*o));var A=function(e){var t=r.length;if(e>t){var n=new u8(Math.max(2*t,e));n.set(r),r=n}},u=t.f||0,l=t.p||0,d=t.b||0,g=t.l,f=t.d,h=t.m,p=t.n,E=8*o;do{if(!g){u=bits(e,l,1);var m=bits(e,l+1,3);if(l+=3,!m){var I=e[(Q=shft(l)+4)-4]|e[Q-3]<<8,y=Q+I;if(y>o){c&&err(0);break}s&&A(d+I),r.set(e.subarray(Q,y),d),t.b=d+=I,t.p=l=8*y,t.f=u;continue}if(1==m)g=flrm,f=fdrm,h=9,p=5;else if(2==m){var _=bits(e,l,31)+257,w=bits(e,l+10,15)+4,C=_+bits(e,l+5,31)+1;l+=14;for(var b=new u8(C),B=new u8(19),D=0;D<w;++D)B[clim[D]]=bits(e,l+3*D,7);l+=3*w;var O=max(B),T=(1<<O)-1,v=hMap(B,O,1);for(D=0;D<C;){var Q,P=v[bits(e,l,T)];if(l+=15&P,(Q=P>>4)<16)b[D++]=Q;else{var M=0,R=0;for(16==Q?(R=3+bits(e,l,3),l+=2,M=b[D-1]):17==Q?(R=3+bits(e,l,7),l+=3):18==Q&&(R=11+bits(e,l,127),l+=7);R--;)b[D++]=M}}var S=b.subarray(0,_),F=b.subarray(_);h=max(S),p=max(F),g=hMap(S,h,1),f=hMap(F,p,1)}else err(1);if(l>E){c&&err(0);break}}s&&A(d+131072);for(var x=(1<<h)-1,k=(1<<p)-1,N=l;;N=l){var U=(M=g[bits16(e,l)&x])>>4;if((l+=15&M)>E){c&&err(0);break}if(M||err(2),U<256)r[d++]=U;else{if(256==U){N=l,g=null;break}var j=U-254;if(U>264){var L=fleb[D=U-257];j=bits(e,l,(1<<L)-1)+fl[D],l+=L}var H=f[bits16(e,l)&k],G=H>>4;H||err(3),l+=15&H;F=fd[G];if(G>3){L=fdeb[G];F+=bits16(e,l)&(1<<L)-1,l+=L}if(l>E){c&&err(0);break}s&&A(d+131072);var Y=d+j;if(d<F){var X=i-F,W=Math.min(F,Y);for(X+d<0&&err(3);d<W;++d)r[d]=n[X+d]}for(;d<Y;++d)r[d]=r[d-F]}}t.l=g,t.p=N,t.b=d,t.f=u,g&&(u=1,t.m=h,t.d=f,t.n=p)}while(!u);return d!=r.length&&a?slc(r,0,d):r.subarray(0,d)},et2=new u8(0),mrg=function(e,t){var r={};for(var n in e)r[n]=e[n];for(var n in t)r[n]=t[n];return r},wcln=function(e,t,r){for(var n=e(),o=e.toString(),i=o.slice(o.indexOf("[")+1,o.lastIndexOf("]")).replace(/\s+/g,"").split(","),a=0;a<n.length;++a){var s=n[a],c=i[a];if("function"==typeof s){t+=";"+c+"=";var A=s.toString();if(s.prototype)if(-1!=A.indexOf("[native code]")){var u=A.indexOf(" ",8)+1;t+=A.slice(u,A.indexOf("(",u))}else for(var l in t+=A,s.prototype)t+=";"+c+".prototype."+l+"="+s.prototype[l].toString();else t+=A}else r[c]=s}return t},ch=[],cbfs=function(e){var t=[];for(var r in e)e[r].buffer&&t.push((e[r]=new e[r].constructor(e[r])).buffer);return t},wrkr=function(e,t,r,n){if(!ch[r]){for(var o="",i={},a=e.length-1,s=0;s<a;++s)o=wcln(e[s],o,i);ch[r]={c:wcln(e[a],o,i),e:i}}var c=mrg({},ch[r].e);return wk(ch[r].c+";onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage="+t.toString()+"}",r,c,cbfs(c),n)},bInflt=function(){return[u8,u16,i32,fleb,fdeb,clim,fl,fd,flrm,fdrm,rev,ec2,hMap,max,bits,bits16,shft,slc,err,inflt,inflateSync,pbf,gopt]},guze=function(){return[gzs,gzl]},pbf=function(e){return postMessage(e,[e.buffer])},gopt=function(e){return e&&{out:e.size&&new u8(e.size),dictionary:e.dictionary}},cbify=function(e,t,r,n,o,i){var a=wrkr(r,n,o,(function(e,t){a.terminate(),i(e,t)}));return a.postMessage([e,t],t.consume?[e.buffer]:[]),function(){a.terminate()}},gzs=function(e){31==e[0]&&139==e[1]&&8==e[2]||err(6,"invalid gzip data");var t=e[3],r=10;4&t&&(r+=2+(e[10]|e[11]<<8));for(var n=(t>>3&1)+(t>>4&1);n>0;n-=!e[r++]);return r+(2&t)},gzl=function(e){var t=e.length;return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0};function inflateSync(e,t){return inflt(e,{i:2},t&&t.out,t&&t.dictionary)}function gunzip(e,t,r){return r||(r=t,t={}),"function"!=typeof r&&err(7),cbify(e,t,[bInflt,guze,function(){return[gunzipSync]}],(function(e){return pbf(gunzipSync(e.data[0],e.data[1]))}),3,r)}function gunzipSync(e,t){var r=gzs(e);return r+8>e.length&&err(6,"invalid gzip data"),inflt(e.subarray(r,-8),{i:2},t&&t.out||new u8(gzl(e)),t&&t.dictionary)}var td="undefined"!=typeof TextDecoder&&new TextDecoder,tds=0;try{td.decode(et2,{stream:!0}),tds=1}catch(e){}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),__publicField(this,"faceDetector"),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,this.initFaceDetector.bind(this,e),mat4_exports)}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}`})}}isWasmFile(e){return e.byteLength>=4&&0===e[0]&&97===e[1]&&115===e[2]&&109===e[3]}async loadAndDecompressGz(e){const t=await fetch(e);if(!t.ok)throw Error(`Failed to fetch ${e}: ${t.status} ${t.statusText}`);const r=await t.arrayBuffer();return new Promise(((e,t)=>{gunzip(new Uint8Array(r),((r,n)=>{r&&t(r),this.isWasmFile(n)?e(new Blob([n],{type:"application/wasm"})):t(new Error("Decompressed data is not a valid WASM file"))}))}))}async initFaceDetector(e){try{if(!this.faceDetector){const t=t=>`${e}/${t}`.replace(/([^:]\/)\/+/g,"$1"),r=t(`/face_detection/${await Uo.isSimdSupported()?"vision_wasm_internal":"vision_wasm_nosimd_internal"}`),n=`${r}.gz`,o=await this.loadAndDecompressGz(n);if(!o)return;const i=URL.createObjectURL(o),a=await Uo.forVisionTasks("");a.wasmBinaryPath=i,a.wasmLoaderPath=`${r}.js`,this.faceDetector=await Za.createFromOptions(a,{baseOptions:{modelAssetPath:t("/face_detection/blaze_face_short_range.tflite"),delegate:"GPU"},runningMode:"VIDEO"})}return this.faceDetector}catch(e){this.log.error("Init FaceDetetor",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,enableFaceCentering:e.enableFaceCentering,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,enableFaceCentering:e.enableFaceCentering}).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};
|